package mods.tinker.tconstruct.client.gui; import mods.tinker.tconstruct.container.ArmorExtendedContainer; import mods.tinker.tconstruct.player.ArmorExtended; import mods.tinker.tconstruct.player.TPlayerStats; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.InventoryEffectRenderer; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.entity.player.InventoryPlayer; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; public class ArmorExtendedGui extends InventoryEffectRenderer { public InventoryPlayer inv; public ArmorExtended stats; private float xSize_lo; private float ySize_lo; public ArmorExtendedGui(InventoryPlayer inventoryplayer, ArmorExtended holder) { super(new ArmorExtendedContainer(inventoryplayer, holder)); inv = inventoryplayer; stats = holder; } protected void drawGuiContainerForegroundLayer(int par1, int par2) { //fontRenderer.drawString("This Gui is broken :D", 8, -10, 0x404040); //fontRenderer.drawString(StatCollector.translateToLocal("inventory.armorextended"), 60, 6, 0x404040); //fontRenderer.drawString(StatCollector.translateToLocal("container.inventory"), 17, (ySize - 96) + 2, 0x404040); } public void drawScreen(int par1, int par2, float par3) { super.drawScreen(par1, par2, par3); this.xSize_lo = (float)par1; this.ySize_lo = (float)par2; } protected void drawGuiContainerBackgroundLayer(float f, int i, int j) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); mc.renderEngine.bindTexture("/mods/tinker/textures/gui/armorextended.png"); int cornerX = (width - xSize) / 2; int cornerY = (height - ySize) / 2; drawTexturedModalRect(cornerX, cornerY, 0, 0, xSize, ySize); if (!stats.isStackInSlot(0)) drawTexturedModalRect(cornerX+79, cornerY+16, 176, 9, 18, 18); if (!stats.isStackInSlot(1)) drawTexturedModalRect(cornerX+79, cornerY+34, 176, 27, 18, 18); if (!stats.isStackInSlot(2)) drawTexturedModalRect(cornerX+115, cornerY+16, 212, 9, 18, 18); if (!stats.isStackInSlot(3)) drawTexturedModalRect(cornerX+115, cornerY+34, 212, 27, 18, 18); if (!stats.isStackInSlot(4)) drawTexturedModalRect(cornerX+151, cornerY+16, 230, 0, 18, 18); if (!stats.isStackInSlot(5)) drawTexturedModalRect(cornerX+151, cornerY+34, 230, 18, 18, 18); if (!stats.isStackInSlot(6)) drawTexturedModalRect(cornerX+151, cornerY+52, 230, 36, 18, 18); cornerX = this.guiLeft; cornerY = this.guiTop; drawPlayerOnGui(this.mc, cornerX + 33, cornerY + 75, 30, (float)(cornerX + 51) - this.xSize_lo, (float)(cornerY + 75 - 50) - this.ySize_lo); } public static void drawPlayerOnGui(Minecraft par0Minecraft, int par1, int par2, int par3, float par4, float par5) { GL11.glEnable(GL11.GL_COLOR_MATERIAL); GL11.glPushMatrix(); GL11.glTranslatef((float)par1, (float)par2, 50.0F); GL11.glScalef((float)(-par3), (float)par3, (float)par3); GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); float f2 = par0Minecraft.thePlayer.renderYawOffset; float f3 = par0Minecraft.thePlayer.rotationYaw; float f4 = par0Minecraft.thePlayer.rotationPitch; par4 -= 19; GL11.glRotatef(135.0F, 0.0F, 1.0F, 0.0F); RenderHelper.enableStandardItemLighting(); GL11.glRotatef(-135.0F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(-((float)Math.atan((double)(par5 / 40.0F))) * 20.0F, 1.0F, 0.0F, 0.0F); par0Minecraft.thePlayer.renderYawOffset = (float)Math.atan((double)(par4 / 40.0F)) * 20.0F; par0Minecraft.thePlayer.rotationYaw = (float)Math.atan((double)(par4 / 40.0F)) * 40.0F; par0Minecraft.thePlayer.rotationPitch = -((float)Math.atan((double)(par5 / 40.0F))) * 20.0F; par0Minecraft.thePlayer.rotationYawHead = par0Minecraft.thePlayer.rotationYaw; GL11.glTranslatef(0.0F, par0Minecraft.thePlayer.yOffset, 0.0F); RenderManager.instance.playerViewY = 180.0F; RenderManager.instance.renderEntityWithPosYaw(par0Minecraft.thePlayer, 0.0D, 0.0D, 0.0D, 0.0F, 1.0F); par0Minecraft.thePlayer.renderYawOffset = f2; par0Minecraft.thePlayer.rotationYaw = f3; par0Minecraft.thePlayer.rotationPitch = f4; GL11.glPopMatrix(); RenderHelper.disableStandardItemLighting(); GL11.glDisable(GL12.GL_RESCALE_NORMAL); OpenGlHelper.setActiveTexture(OpenGlHelper.lightmapTexUnit); GL11.glDisable(GL11.GL_TEXTURE_2D); OpenGlHelper.setActiveTexture(OpenGlHelper.defaultTexUnit); } }