package minefantasy.mf2.client.render.block; import java.util.Random; import minefantasy.mf2.block.tileentity.TileEntityForge; import minefantasy.mf2.api.helpers.TextureHelperMF; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import org.lwjgl.opengl.GL11; public class TileEntityForgeRenderer extends TileEntitySpecialRenderer { public TileEntityForgeRenderer() { model = new ModelForge(); topModel = new ModelForgeTop(); } public void renderAModelAt(TileEntityForge tile, double d, double d1, double d2, float f) { int i = 0; if (tile.getWorldObj() != null) { i = tile.getBlockMetadata(); } this.renderModelAt(tile, tile.getTextureName(), i, d, d1, d2, f, tile.getWorldObj() == null, tile.hasFuel()); } public void renderModelAt(TileEntityForge tile, String tex, int meta, double d, double d1, double d2, float f, boolean inv, boolean hasFuel) { int i = meta; int j = 90 * i; if (i == 0) { j = 0; } if (i == 1) { j = 270; } if (i == 2) { j = 180; } if (i == 3) { j = 90; } if (i == 4) { j = 90; } bindTextureByName("textures/models/tileentity/"+tex+".png"); //texture GL11.glPushMatrix(); //start float scale = 1.0F; float yOffset = inv ? 1.75F : 1.5F; GL11.glTranslatef((float) d + 0.5F, (float) d1 + yOffset, (float) d2 + 0.5F); //size GL11.glRotatef(j-90F, 0.0F, 1.0F, 0.0F); //rotate based on metadata GL11.glScalef(scale, -scale, -scale); //if you read this comment out this line and you can see what happens GL11.glPushMatrix(); float level = 0F; if(tile.fuel > 0 && tile.maxFuel > 0) { level = tile.fuel / tile.maxFuel; } model.renderModel(tile, 0.0625F, hasFuel, level); if(tile.hasCrucibleAbove()) { bindTextureByName("textures/models/tileentity/forge_top.png"); //texture topModel.render(0.0625F); } GL11.glPopMatrix(); GL11.glColor3f(255, 255, 255); GL11.glPopMatrix(); //end } private void bindTextureByName(String image) { Minecraft.getMinecraft().renderEngine.bindTexture(TextureHelperMF.getResource(image)); } @Override public void renderTileEntityAt(TileEntity tileentity, double d, double d1, double d2, float f) { renderAModelAt((TileEntityForge) tileentity, d, d1, d2, f); //where to render } private ModelForge model; private ModelForgeTop topModel; private Random random = new Random(); private boolean shouldRender(TileEntityForge tile, int p) { Minecraft mc = Minecraft.getMinecraft(); EntityPlayer sp = mc.thePlayer; if(p == 1)//GRID { return false; } return true; } }