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 }