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        protected void func_82392_a(String par1Str, String par2Str)
030        {
031            RenderEngine var3 = this.tileEntityRenderer.renderEngine;
032    
033            if (var3 != null)
034            {
035                var3.bindTexture(var3.getTextureForDownloadableImage(par1Str, par2Str));
036            }
037        }
038    
039        /**
040         * Associate a TileEntityRenderer with this TileEntitySpecialRenderer
041         */
042        public void setTileEntityRenderer(TileEntityRenderer par1TileEntityRenderer)
043        {
044            this.tileEntityRenderer = par1TileEntityRenderer;
045        }
046    
047        /**
048         * Called when the ingame world being rendered changes (e.g. on world -> nether travel) due to using one renderer
049         * per tile entity type, rather than instance
050         */
051        public void onWorldChange(World par1World) {}
052    
053        public FontRenderer getFontRenderer()
054        {
055            return this.tileEntityRenderer.getFontRenderer();
056        }
057    }