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 }