@Override
  public boolean renderWorldBlock(
      IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) {
    int metadata = world.getBlockMetadata(x, y, z);

    if (MachineType.get(block.blockID, metadata) != null) {
      if (!MachineType.get(block.blockID, metadata).hasModel) {
        renderer.renderStandardBlock(block, x, y, z);
        renderer.setRenderBoundsFromBlock(block);
        return true;
      }
    }

    return false;
  }
  @Override
  public void updateEntity() {
    if (!worldObj.isRemote && general.destroyDisabledBlocks) {
      MachineType type = MachineType.get(getBlockType(), getBlockMetadata());

      if (type != null && !type.isEnabled()) {
        Mekanism.logger.info(
            "[Mekanism] Destroying machine of type '"
                + type.name
                + "' at coords "
                + Coord4D.get(this)
                + " as according to config.");
        worldObj.setBlockToAir(xCoord, yCoord, zCoord);
        return;
      }
    }

    for (ITileComponent component : components) {
      component.tick();
    }

    onUpdate();

    if (!worldObj.isRemote) {
      openedThisTick.clear();

      if (doAutoSync && playersUsing.size() > 0) {
        for (EntityPlayer player : playersUsing) {
          Mekanism.packetHandler.sendTo(
              new TileEntityMessage(Coord4D.get(this), getNetworkedData(new ArrayList())),
              (EntityPlayerMP) player);
        }
      }
    }

    ticker++;
    redstoneLastTick = redstone;
  }
  @Override
  public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderer) {
    if (block == null || renderer == null || MachineType.get(block.blockID, metadata) == null) {
      return;
    }

    GL11.glPushMatrix();
    GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F);

    MachineType type = MachineType.get(block.blockID, metadata);

    if (type == MachineType.ELECTRIC_PUMP) {
      GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
      GL11.glRotatef(90F, 0.0F, -1.0F, 0.0F);
      GL11.glTranslatef(0.0F, -0.85F, 0.0F);
      Minecraft.getMinecraft()
          .renderEngine
          .bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "ElectricPump.png"));
      electricPump.render(0.0560F);
    } else if (type == MachineType.METALLURGIC_INFUSER) {
      GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
      GL11.glRotatef(270F, 0.0F, -1.0F, 0.0F);
      GL11.glTranslatef(0.0F, -1.0F, 0.0F);
      Minecraft.getMinecraft()
          .renderEngine
          .bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "MetallurgicInfuser.png"));
      metallurgicInfuser.render(0.0625F);
    } else if (type == MachineType.CHARGEPAD) {
      GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F);
      GL11.glTranslatef(0.0F, -1.1F, 0.0F);
      Minecraft.getMinecraft()
          .renderEngine
          .bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "Chargepad.png"));
      chargepad.render(0.0625F);
    } else if (type == MachineType.LOGISTICAL_SORTER) {
      GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
      GL11.glRotatef(270F, 0.0F, -1.0F, 0.0F);
      GL11.glTranslatef(0.0F, -0.85F, -0.15F);
      Minecraft.getMinecraft()
          .renderEngine
          .bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "LogisticalSorter.png"));
      logisticalSorter.render(0.0625F, false);
    } else if (type == MachineType.DIGITAL_MINER) {
      GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
      GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F);
      GL11.glTranslatef(-0.2F, -0.3F, 0.0F);
      Minecraft.getMinecraft()
          .renderEngine
          .bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "DigitalMiner.png"));
      digitalMiner.render(0.03125F, false);
    } else if (type == MachineType.ROTARY_CONDENSENTRATOR) {
      GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
      GL11.glRotatef(270F, 0.0F, -1.0F, 0.0F);
      GL11.glTranslatef(0.0F, -1.06F, 0.05F);
      Minecraft.getMinecraft()
          .renderEngine
          .bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "RotaryCondensentrator.png"));
      rotaryCondensentrator.render(0.0625F);
    } else if (type == MachineType.CHEMICAL_OXIDIZER) {
      GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
      GL11.glRotatef(270F, 0.0F, -1.0F, 0.0F);
      GL11.glTranslatef(0.0F, -1.06F, 0.05F);
      Minecraft.getMinecraft()
          .renderEngine
          .bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "ChemicalOxidizer.png"));
      chemicalOxidizer.render(0.0625F);
      chemicalOxidizer.renderGlass(0.0625F);
    } else if (type == MachineType.CHEMICAL_INFUSER) {
      GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
      GL11.glRotatef(270F, 0.0F, -1.0F, 0.0F);
      GL11.glTranslatef(0.0F, -1.06F, 0.05F);
      Minecraft.getMinecraft()
          .renderEngine
          .bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "ChemicalInfuser.png"));
      chemicalInfuser.render(0.0625F);
      chemicalInfuser.renderGlass(0.0625F);
    } else if (type == MachineType.ELECTROLYTIC_SEPARATOR) {
      GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
      GL11.glTranslated(0.0F, -1.0F, 0.0F);
      Minecraft.getMinecraft()
          .renderEngine
          .bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "ElectrolyticSeparator.png"));
      electrolyticSeparator.render(0.0625F);
    } else if (type == MachineType.CHEMICAL_DISSOLUTION_CHAMBER) {
      GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
      GL11.glRotatef(270F, 0.0F, -1.0F, 0.0F);
      GL11.glTranslatef(0.0F, -1.06F, 0.05F);
      Minecraft.getMinecraft()
          .renderEngine
          .bindTexture(
              MekanismUtils.getResource(ResourceType.RENDER, "ChemicalDissolutionChamber.png"));
      chemicalDissolutionChamber.render(0.0625F);
    } else if (type == MachineType.CHEMICAL_WASHER) {
      GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
      GL11.glRotatef(270F, 0.0F, -1.0F, 0.0F);
      GL11.glTranslatef(0.0F, -1.06F, 0.05F);
      Minecraft.getMinecraft()
          .renderEngine
          .bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "ChemicalWasher.png"));
      chemicalWasher.render(0.0625F);
    } else if (type == MachineType.CHEMICAL_CRYSTALLIZER) {
      GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
      GL11.glRotatef(270F, 0.0F, -1.0F, 0.0F);
      GL11.glTranslatef(0.0F, -1.06F, 0.05F);
      Minecraft.getMinecraft()
          .renderEngine
          .bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "ChemicalCrystallizer.png"));
      chemicalCrystallizer.render(0.0625F);
    } else {
      MekanismRenderer.renderItem(renderer, metadata, block);
    }

    GL11.glPopMatrix();
  }