    001    package net.minecraft.src;
    002
    003    import cpw.mods.fml.common.Side;
    004    import cpw.mods.fml.common.asm.SideOnly;
    005
    006    @SideOnly(Side.CLIENT)
    007    public abstract class TileEntitySpecialRenderer
    008    {
    009        /**
    010         * The TileEntityRenderer instance associated with this TileEntitySpecialRenderer
    011         */
    012        protected TileEntityRenderer tileEntityRenderer;
    013
    014        public abstract void renderTileEntityAt(TileEntity var1, double var2, double var4, double var6, float var8);
    015
    016        /**
    017         * Binds a texture to the renderEngine given a filename from the JAR.
    018         */
    019        protected void bindTextureByName(String par1Str)
    020        {
    021            RenderEngine var2 = this.tileEntityRenderer.renderEngine;
    022
    023            if (var2 != null)
    024            {
    025                var2.bindTexture(var2.getTexture(par1Str));
    026            }
    027        }
    028
    029        /**
    030         * Associate a TileEntityRenderer with this TileEntitySpecialRenderer
    031         */
    032        public void setTileEntityRenderer(TileEntityRenderer par1TileEntityRenderer)
    033        {
    034            this.tileEntityRenderer = par1TileEntityRenderer;
    035        }
    036
    037        /**
    038         * Called when the ingame world being rendered changes (e.g. on world -> nether travel) due to using one renderer
    039         * per tile entity type, rather than instance
    040         */
    041        public void onWorldChange(World par1World) {}
    042
    043        public FontRenderer getFontRenderer()
    044        {
    045            return this.tileEntityRenderer.getFontRenderer();
    046        }
    047    }