/** Render this TileEntity at a given set of coordinates */
  public void renderTileEntityAt(
      TileEntity par1TileEntity, double par2, double par4, double par6, float par8) {
    TileEntitySpecialRenderer var9 = this.getSpecialRendererForEntity(par1TileEntity);

    if (var9 != null) {
      var9.renderTileEntityAt(par1TileEntity, par2, par4, par6, par8);
    }
  }
  /** Render this TileEntity at a given set of coordinates */
  public void renderTileEntityAt(
      TileEntity par1TileEntity, double par2, double par4, double par6, float par8) {
    TileEntitySpecialRenderer tileentityspecialrenderer =
        getSpecialRendererForEntity(par1TileEntity);

    if (tileentityspecialrenderer != null) {
      tileentityspecialrenderer.renderTileEntityAt(par1TileEntity, par2, par4, par6, par8);
    }
  }
  /**
   * Sets the world used by all TileEntitySpecialRender instances and notifies them of this change.
   */
  public void setWorld(World par1World) {
    this.worldObj = par1World;
    Iterator var2 = this.specialRendererMap.values().iterator();

    while (var2.hasNext()) {
      TileEntitySpecialRenderer var3 = (TileEntitySpecialRenderer) var2.next();

      if (var3 != null) {
        var3.onWorldChange(par1World);
      }
    }
  }
  private TileEntityRenderer() {
    this.specialRendererMap.put(TileEntitySign.class, new TileEntitySignRenderer());
    this.specialRendererMap.put(TileEntityMobSpawner.class, new TileEntityMobSpawnerRenderer());
    this.specialRendererMap.put(TileEntityPiston.class, new TileEntityRendererPiston());
    this.specialRendererMap.put(TileEntityChest.class, new TileEntityChestRenderer());
    this.specialRendererMap.put(TileEntityEnderChest.class, new TileEntityEnderChestRenderer());
    this.specialRendererMap.put(TileEntityEnchantmentTable.class, new RenderEnchantmentTable());
    this.specialRendererMap.put(TileEntityEndPortal.class, new RenderEndPortal());
    Iterator var1 = this.specialRendererMap.values().iterator();

    while (var1.hasNext()) {
      TileEntitySpecialRenderer var2 = (TileEntitySpecialRenderer) var1.next();
      var2.setTileEntityRenderer(this);
    }
  }
  /**
   * Sets the world used by all TileEntitySpecialRender instances and notifies them of this change.
   */
  public void setWorld(World par1World) {
    worldObj = par1World;
    Iterator iterator = specialRendererMap.values().iterator();

    do {
      if (!iterator.hasNext()) {
        break;
      }

      TileEntitySpecialRenderer tileentityspecialrenderer =
          (TileEntitySpecialRenderer) iterator.next();

      if (tileentityspecialrenderer != null) {
        tileentityspecialrenderer.onWorldChange(par1World);
      }
    } while (true);
  }
  private TileEntityRenderer() {
    specialRendererMap = new HashMap();
    specialRendererMap.put(net.minecraft.src.TileEntitySign.class, new TileEntitySignRenderer());
    specialRendererMap.put(
        net.minecraft.src.TileEntityMobSpawner.class, new TileEntityMobSpawnerRenderer());
    specialRendererMap.put(
        net.minecraft.src.TileEntityPiston.class, new TileEntityRendererPiston());
    specialRendererMap.put(net.minecraft.src.TileEntityChest.class, new TileEntityChestRenderer());
    specialRendererMap.put(
        net.minecraft.src.TileEntityEnderChest.class, new TileEntityEnderChestRenderer());
    specialRendererMap.put(
        net.minecraft.src.TileEntityEnchantmentTable.class, new RenderEnchantmentTable());
    specialRendererMap.put(net.minecraft.src.TileEntityEndPortal.class, new RenderEndPortal());
    TileEntitySpecialRenderer tileentityspecialrenderer;

    for (Iterator iterator = specialRendererMap.values().iterator();
        iterator.hasNext();
        tileentityspecialrenderer.setTileEntityRenderer(this)) {
      tileentityspecialrenderer = (TileEntitySpecialRenderer) iterator.next();
    }
  }