package minefantasy.mf2.client.render.block; import minefantasy.mf2.api.helpers.TextureHelperMF; import minefantasy.mf2.block.tileentity.TileEntityTanningRack; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.ItemRenderer; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; public class TileEntityTanningRackRenderer extends TileEntitySpecialRenderer { public TileEntityTanningRackRenderer() { engmodel = new ModelEngTanningRack(); model = new ModelTanningRack(); } public void renderAModelAt(TileEntityTanningRack tile, double d, double d1, double d2, float f) { if (tile != null); int i = 0; if (tile.getWorldObj() != null) { i = tile.blockMetadata; } 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/tanner"+tile.tex+".png"); GL11.glPushMatrix(); GL11.glTranslatef((float) d + 0.5F, (float) d1+1.45F, (float) d2 + 0.5F); GL11.glRotatef(j, 0.0F, 1.0F, 0.0F); GL11.glScalef(1.0F, -1F, -1F); if(tile.isAutomated()) { engmodel.renderModel(0.0625F); GL11.glPushMatrix(); GL11.glTranslatef(0F, tile.acTime, 0F); engmodel.renderBlade(0.0625F); GL11.glPopMatrix(); engmodel.rotateLever(tile.acTime); engmodel.renderLever(0.0625F); } else { model.renderModel(0.0625F); } renderHungItem((TileEntityTanningRack) tile, d, d1, d2, f); GL11.glPopMatrix(); } private void bindTextureByName(String image) { bindTexture(TextureHelperMF.getResource(image)); } public void renderTileEntityAt(TileEntity tileentity, double d, double d1, double d2, float f) { renderAModelAt((TileEntityTanningRack) tileentity, d, d1, d2, f); } private void renderHungItem(TileEntityTanningRack tile, double d, double d1, double d2, float f) { Minecraft mc = Minecraft.getMinecraft(); ItemStack itemstack = tile.getStackInSlot(0); if(itemstack != null && itemstack.getItem().getIconFromDamage(itemstack.getItemDamage()) != null) { Item item = itemstack.getItem(); mc.renderEngine.bindTexture(TextureMap.locationItemsTexture); Tessellator image = Tessellator.instance; IIcon index = item.getIconFromDamage(itemstack.getItemDamage()); float x1 = index.getMinU(); float x2 = index.getMaxU(); float y1 = index.getMinV(); float y2 = index.getMaxV(); float xPos = 0.5F; float yPos = -0.5F; GL11.glEnable(GL12.GL_RESCALE_NORMAL); GL11.glTranslatef(-xPos, -yPos, 0.0F); float var13 = 1F; GL11.glScalef(var13, var13, var13); GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); GL11.glTranslatef(-1F, -1F, 0.0F); ItemRenderer.renderItemIn2D(image, x2, y1, x1, y2, index.getIconWidth(), index.getIconHeight(), 0.0625F); } } private ModelTanningRack model; private ModelEngTanningRack engmodel; }