001 package net.minecraft.client.renderer.tileentity; 002 003 import cpw.mods.fml.relauncher.Side; 004 import cpw.mods.fml.relauncher.SideOnly; 005 import net.minecraft.client.gui.FontRenderer; 006 import net.minecraft.client.renderer.RenderEngine; 007 import net.minecraft.tileentity.TileEntity; 008 import net.minecraft.world.World; 009 010 @SideOnly(Side.CLIENT) 011 public abstract class TileEntitySpecialRenderer 012 { 013 /** 014 * The TileEntityRenderer instance associated with this TileEntitySpecialRenderer 015 */ 016 protected TileEntityRenderer tileEntityRenderer; 017 018 public abstract void renderTileEntityAt(TileEntity var1, double var2, double var4, double var6, float var8); 019 020 /** 021 * Binds a texture to the renderEngine given a filename from the JAR. 022 */ 023 protected void bindTextureByName(String par1Str) 024 { 025 RenderEngine var2 = this.tileEntityRenderer.renderEngine; 026 027 if (var2 != null) 028 { 029 var2.bindTexture(var2.getTexture(par1Str)); 030 } 031 } 032 033 /** 034 * Binds a texture that Minecraft will attempt to load from the given URL. (arguments: url, localFallback) 035 */ 036 protected void bindTextureByURL(String par1Str, String par2Str) 037 { 038 RenderEngine var3 = this.tileEntityRenderer.renderEngine; 039 040 if (var3 != null) 041 { 042 var3.bindTexture(var3.getTextureForDownloadableImage(par1Str, par2Str)); 043 } 044 } 045 046 /** 047 * Associate a TileEntityRenderer with this TileEntitySpecialRenderer 048 */ 049 public void setTileEntityRenderer(TileEntityRenderer par1TileEntityRenderer) 050 { 051 this.tileEntityRenderer = par1TileEntityRenderer; 052 } 053 054 /** 055 * Called when the ingame world being rendered changes (e.g. on world -> nether travel) due to using one renderer 056 * per tile entity type, rather than instance 057 */ 058 public void onWorldChange(World par1World) {} 059 060 public FontRenderer getFontRenderer() 061 { 062 return this.tileEntityRenderer.getFontRenderer(); 063 } 064 }