///<summary> /// Renders the specified item of the inventory slot at the specified location. Args: slot, x, y, partialTick ///</summary> private void RenderInventorySlot(int par1, int par2, int par3, float par4) { ItemStack itemstack = mc.ThePlayer.Inventory.MainInventory[par1]; if (itemstack == null) { return; } float f = (float)itemstack.AnimationsToGo - par4; if (f > 0.0F) { //GL.PushMatrix(); float f1 = 1.0F + f / 5F; //GL.Translate(par2 + 8, par3 + 12, 0.0F); //GL.Scale(1.0F / f1, (f1 + 1.0F) / 2.0F, 1.0F); //GL.Translate(-(par2 + 8), -(par3 + 12), 0.0F); } itemRenderer.RenderItemIntoGUI(mc.FontRenderer, mc.RenderEngineOld, itemstack, par2, par3); if (f > 0.0F) { //GL.PopMatrix(); } itemRenderer.RenderItemOverlayIntoGUI(mc.FontRenderer, mc.RenderEngineOld, itemstack, par2, par3); }
protected void GenAchievementBackground(int par1, int par2, float par3) { int i = MathHelper2.Floor_double(Field_27116_m + (GuiMapX - Field_27116_m) * (double)par3); int j = MathHelper2.Floor_double(Field_27115_n + (GuiMapY - Field_27115_n) * (double)par3); if (i < guiMapTop) { i = guiMapTop; } if (j < guiMapLeft) { j = guiMapLeft; } if (i >= guiMapBottom) { i = guiMapBottom - 1; } if (j >= guiMapRight) { j = guiMapRight - 1; } int k = Mc.RenderEngineOld.GetTexture("/terrain.png"); int l = Mc.RenderEngineOld.GetTexture("/achievement/bg.png"); int i1 = (Width - AchievementsPaneWidth) / 2; int j1 = (Height - AchievementsPaneHeight) / 2; int k1 = i1 + 16; int l1 = j1 + 17; ZLevel = 0.0F; //GL.DepthFunc(DepthFunction.Gequal); //GL.PushMatrix(); //GL.Translate(0.0F, 0.0F, -200F); //GL.Enable(EnableCap.Texture2D); //GL.Disable(EnableCap.Lighting); //GL.Enable(EnableCap.RescaleNormal); //GL.Enable(EnableCap.ColorMaterial); Mc.RenderEngineOld.BindTexture(k); int i2 = i + 288 >> 4; int j2 = j + 288 >> 4; int k2 = (i + 288) % 16; int l2 = (j + 288) % 16; Random random = new Random(); for (int i3 = 0; i3 * 16 - l2 < 155; i3++) { float f = 0.6F - ((float)(j2 + i3) / 25F) * 0.3F; //GL.Color4(f, f, f, 1.0F); for (int k3 = 0; k3 * 16 - k2 < 224; k3++) { random = new Random(1234 + i2 + k3); random.Next(); int j4 = random.Next(1 + j2 + i3) + (j2 + i3) / 2; int l4 = Block.Sand.BlockIndexInTexture; if (j4 > 37 || j2 + i3 == 35) { l4 = Block.Bedrock.BlockIndexInTexture; } else if (j4 == 22) { if (random.Next(2) == 0) { l4 = Block.OreDiamond.BlockIndexInTexture; } else { l4 = Block.OreRedstone.BlockIndexInTexture; } } else if (j4 == 10) { l4 = Block.OreIron.BlockIndexInTexture; } else if (j4 == 8) { l4 = Block.OreCoal.BlockIndexInTexture; } else if (j4 > 4) { l4 = Block.Stone.BlockIndexInTexture; } else if (j4 > 0) { l4 = Block.Dirt.BlockIndexInTexture; } DrawTexturedModalRect((k1 + k3 * 16) - k2, (l1 + i3 * 16) - l2, l4 % 16 << 4, (l4 >> 4) << 4, 16, 16); } } //GL.Enable(EnableCap.DepthTest); //GL.DepthFunc(DepthFunction.Lequal); //GL.Disable(EnableCap.Texture2D); for (int j3 = 0; j3 < AchievementList.Achievements.Count; j3++) { Achievement achievement1 = (Achievement)AchievementList.Achievements[j3]; if (achievement1.ParentAchievement == null) { continue; } int l3 = (achievement1.DisplayColumn * 24 - i) + 11 + k1; int k4 = (achievement1.DisplayRow * 24 - j) + 11 + l1; int i5 = (achievement1.ParentAchievement.DisplayColumn * 24 - i) + 11 + k1; int l5 = (achievement1.ParentAchievement.DisplayRow * 24 - j) + 11 + l1; bool flag = statFileWriter.HasAchievementUnlocked(achievement1); bool flag1 = statFileWriter.CanUnlockAchievement(achievement1); int c = Math.Sin(((double)(JavaHelper.CurrentTimeMillis() % 600L) / 600D) * Math.PI * 2D) <= 0.59999999999999998D ? 202 : 377; long i8 = 0xff000000; if (flag) { i8 = 0xff707070; } else if (flag1) { i8 = 65280 + (c << 24); } DrawHorizontalLine(l3, i5, k4, (int)i8); DrawVerticalLine(i5, k4, l5, (int)i8); } Achievement achievement = null; RenderItem renderitem = new RenderItem(); RenderHelper.EnableGUIStandardItemLighting(); //GL.Disable(EnableCap.Lighting); //GL.Enable(EnableCap.RescaleNormal); //GL.Enable(EnableCap.ColorMaterial); for (int i4 = 0; i4 < AchievementList.Achievements.Count; i4++) { Achievement achievement2 = (Achievement)AchievementList.Achievements[i4]; int j5 = achievement2.DisplayColumn * 24 - i; int i6 = achievement2.DisplayRow * 24 - j; if (j5 < -24 || i6 < -24 || j5 > 224 || i6 > 155) { continue; } if (statFileWriter.HasAchievementUnlocked(achievement2)) { float f1 = 1.0F; //GL.Color4(f1, f1, f1, 1.0F); } else if (statFileWriter.CanUnlockAchievement(achievement2)) { float f2 = Math.Sin(((double)(JavaHelper.CurrentTimeMillis() % 600L) / 600D) * Math.PI * 2D) >= 0.59999999999999998D ? 0.8F : 0.6F; //GL.Color4(f2, f2, f2, 1.0F); } else { float f3 = 0.3F; //GL.Color4(f3, f3, f3, 1.0F); } Mc.RenderEngineOld.BindTexture(l); int k6 = k1 + j5; int j7 = l1 + i6; if (achievement2.GetSpecial()) { DrawTexturedModalRect(k6 - 2, j7 - 2, 26, 202, 26, 26); } else { DrawTexturedModalRect(k6 - 2, j7 - 2, 0, 202, 26, 26); } if (!statFileWriter.CanUnlockAchievement(achievement2)) { float f4 = 0.1F; //GL.Color4(f4, f4, f4, 1.0F); renderitem.Field_27004_a = false; } //GL.Enable(EnableCap.Lighting); //GL.Enable(EnableCap.CullFace); renderitem.RenderItemIntoGUI(Mc.FontRenderer, Mc.RenderEngineOld, achievement2.TheItemStack, k6 + 3, j7 + 3); //GL.Disable(EnableCap.Lighting); if (!statFileWriter.CanUnlockAchievement(achievement2)) { renderitem.Field_27004_a = true; } //GL.Color4(1.0F, 1.0F, 1.0F, 1.0F); if (par1 >= k1 && par2 >= l1 && par1 < k1 + 224 && par2 < l1 + 155 && par1 >= k6 && par1 <= k6 + 22 && par2 >= j7 && par2 <= j7 + 22) { achievement = achievement2; } } //GL.Disable(EnableCap.DepthTest); //GL.Enable(EnableCap.Blend); //GL.Color4(1.0F, 1.0F, 1.0F, 1.0F); Mc.RenderEngineOld.BindTexture(l); DrawTexturedModalRect(i1, j1, 0, 0, AchievementsPaneWidth, AchievementsPaneHeight); //GL.PopMatrix(); ZLevel = 0.0F; //GL.DepthFunc(DepthFunction.Lequal); //GL.Disable(EnableCap.DepthTest); //GL.Enable(EnableCap.Texture2D); base.DrawScreen(par1, par2, par3); if (achievement != null) { string s = StatCollector.TranslateToLocal(achievement.GetName()); string s1 = achievement.GetDescription(); int k5 = par1 + 12; int j6 = par2 - 4; if (statFileWriter.CanUnlockAchievement(achievement)) { int l6 = Math.Max(FontRenderer.GetStringWidth(s), 120); int k7 = FontRenderer.SplitStringWidth(s1, l6); if (statFileWriter.HasAchievementUnlocked(achievement)) { k7 += 12; } DrawGradientRect(k5 - 3, j6 - 3, k5 + l6 + 3, j6 + k7 + 3 + 12, 0xc000000, 0xc000000); FontRenderer.DrawSplitString(s1, k5, j6 + 12, l6, 0xffa0a0a); if (statFileWriter.HasAchievementUnlocked(achievement)) { FontRenderer.DrawStringWithShadow(StatCollector.TranslateToLocal("achievement.taken"), k5, j6 + k7 + 4, 0xff9090f); } } else { int i7 = Math.Max(FontRenderer.GetStringWidth(s), 120); string s2 = StatCollector.TranslateToLocalFormatted("achievement.requires", new Object[] { StatCollector.TranslateToLocal(achievement.ParentAchievement.GetName()) }); int l7 = FontRenderer.SplitStringWidth(s2, i7); DrawGradientRect(k5 - 3, j6 - 3, k5 + i7 + 3, j6 + l7 + 12 + 3, 0xc000000, 0xc000000); FontRenderer.DrawSplitString(s2, k5, j6 + 12, i7, 0xff70505); } FontRenderer.DrawStringWithShadow(s, k5, j6, statFileWriter.CanUnlockAchievement(achievement) ? achievement.GetSpecial() ? -128 : -1 : achievement.GetSpecial() ? 0xff80804 : 0xff80808); } //GL.Enable(EnableCap.DepthTest); //GL.Enable(EnableCap.Lighting); RenderHelper.DisableStandardItemLighting(); }
/// <summary> /// Updates the small achievement tooltip window, showing a queued achievement if is needed. /// </summary> public virtual void UpdateAchievementWindow() { if (TheAchievement == null || AchievementTime == 0L) { return; } double d = (JavaHelper.CurrentTimeMillis() - AchievementTime) / 3000D; if (!HaveAchiement && (d < 0.0F || d > 1.0D)) { AchievementTime = 0L; return; } UpdateAchievementWindowScale(); //GL.Disable(EnableCap.DepthTest); //GL.DepthMask(false); double d1 = d * 2D; if (d1 > 1.0D) { d1 = 2D - d1; } d1 *= 4D; d1 = 1.0D - d1; if (d1 < 0.0F) { d1 = 0.0F; } d1 *= d1; d1 *= d1; int i = AchievementWindowWidth - 160; int j = 0 - (int)(d1 * 36D); int k = TheGame.RenderEngineOld.GetTexture("Minecraft.Resources.achievement.bg.png"); //GL.Color4(1.0F, 1.0F, 1.0F, 1.0F); //GL.Enable(EnableCap.Texture2D); //GL.BindTexture(TextureTarget.Texture2D, k); //GL.Disable(EnableCap.Lighting); DrawTexturedModalRect(i, j, 96, 202, 160, 32); if (HaveAchiement) { TheGame.FontRendererOld.DrawSplitString(AchievementStatName, i + 30, j + 7, 120, -1); } else { TheGame.FontRendererOld.DrawString(AchievementGetLocalText, i + 30, j + 7, -256); TheGame.FontRendererOld.DrawString(AchievementStatName, i + 30, j + 18, -1); } RenderHelper.EnableGUIStandardItemLighting(); //GL.Disable(EnableCap.Lighting); //GL.Enable(EnableCap.RescaleNormal); //GL.Enable(EnableCap.ColorMaterial); //GL.Enable(EnableCap.Lighting); ItemRender.RenderItemIntoGUI(TheGame.FontRenderer, TheGame.RenderEngineOld, TheAchievement.TheItemStack, i + 8, j + 8); //GL.Disable(EnableCap.Lighting); //GL.DepthMask(true); //GL.Enable(EnableCap.DepthTest); }
/// <summary> /// Draws the screen and all the components in it. /// </summary> public override void DrawScreen(int par1, int par2, float par3) { DrawDefaultBackground(); int i = GuiLeft; int j = GuiTop; DrawGuiContainerBackgroundLayer(par3, par1, par2); RenderHelper.EnableGUIStandardItemLighting(); //GL.PushMatrix(); //GL.Translate(i, j, 0.0F); //GL.Color4(1.0F, 1.0F, 1.0F, 1.0F); //GL.Enable(EnableCap.RescaleNormal); Slot slot = null; int k = 240; int i1 = 240; OpenGlHelper.SetLightmapTextureCoords(OpenGlHelper.LightmapTexUnit, (float)k / 1.0F, (float)i1 / 1.0F); //GL.Color4(1.0F, 1.0F, 1.0F, 1.0F); for (int l = 0; l < InventorySlots.InventorySlots.Count; l++) { Slot slot1 = (Slot)InventorySlots.InventorySlots[l]; DrawSlotInventory(slot1); if (IsMouseOverSlot(slot1, par1, par2)) { slot = slot1; //GL.Disable(EnableCap.Lighting); //GL.Disable(EnableCap.DepthTest); int j1 = slot1.XDisplayPosition; int k1 = slot1.YDisplayPosition; DrawGradientRect(j1, k1, j1 + 16, k1 + 16, 0x80fffff, 0x80fffff); //GL.Enable(EnableCap.Lighting); //GL.Enable(EnableCap.DepthTest); } } DrawGuiContainerForegroundLayer(); InventoryPlayer inventoryplayer = Mc.ThePlayer.Inventory; if (inventoryplayer.GetItemStack() != null) { //GL.Translate(0.0F, 0.0F, 32F); ZLevel = 200F; ItemRenderer.ZLevel = 200F; ItemRenderer.RenderItemIntoGUI(FontRenderer, Mc.RenderEngineOld, inventoryplayer.GetItemStack(), par1 - i - 8, par2 - j - 8); ItemRenderer.RenderItemOverlayIntoGUI(FontRenderer, Mc.RenderEngineOld, inventoryplayer.GetItemStack(), par1 - i - 8, par2 - j - 8); ZLevel = 0.0F; ItemRenderer.ZLevel = 0.0F; } //GL.Disable(EnableCap.RescaleNormal); RenderHelper.DisableStandardItemLighting(); //GL.Disable(EnableCap.Lighting); //GL.Disable(EnableCap.DepthTest); if (inventoryplayer.GetItemStack() == null && slot != null && slot.GetHasStack()) { ItemStack itemstack = slot.GetStack(); List <string> list = itemstack.GetItemNameandInformation(); if (list.Count > 0) { int l1 = 0; for (int i2 = 0; i2 < list.Count; i2++) { int k2 = FontRenderer.GetStringWidth(list[i2]); if (k2 > l1) { l1 = k2; } } int j2 = (par1 - i) + 12; int l2 = par2 - j - 12; int i3 = l1; int j3 = 8; if (list.Count > 1) { j3 += 2 + (list.Count - 1) * 10; } ZLevel = 300F; ItemRenderer.ZLevel = 300F; int k3 = 0xf010001; DrawGradientRect(j2 - 3, l2 - 4, j2 + i3 + 3, l2 - 3, k3, k3); DrawGradientRect(j2 - 3, l2 + j3 + 3, j2 + i3 + 3, l2 + j3 + 4, k3, k3); DrawGradientRect(j2 - 3, l2 - 3, j2 + i3 + 3, l2 + j3 + 3, k3, k3); DrawGradientRect(j2 - 4, l2 - 3, j2 - 3, l2 + j3 + 3, k3, k3); DrawGradientRect(j2 + i3 + 3, l2 - 3, j2 + i3 + 4, l2 + j3 + 3, k3, k3); int l3 = 0x505000ff; int i4 = (l3 & 0xfefefe) >> 1 | l3 & 0xff00000; DrawGradientRect(j2 - 3, (l2 - 3) + 1, (j2 - 3) + 1, (l2 + j3 + 3) - 1, l3, i4); DrawGradientRect(j2 + i3 + 2, (l2 - 3) + 1, j2 + i3 + 3, (l2 + j3 + 3) - 1, l3, i4); DrawGradientRect(j2 - 3, l2 - 3, j2 + i3 + 3, (l2 - 3) + 1, l3, l3); DrawGradientRect(j2 - 3, l2 + j3 + 2, j2 + i3 + 3, l2 + j3 + 3, i4, i4); for (int j4 = 0; j4 < list.Count; j4++) { string s = list[j4]; if (j4 == 0) { //s = (new StringBuilder()).Append((char)0xa7).Append(int.ToHexString(itemstack.GetRarity().NameColor)).Append(s).ToString(); } else { s = (new StringBuilder()).Append((char)0xa7).Append(s).ToString(); } FontRenderer.DrawStringWithShadow(s, j2, l2, -1); if (j4 == 0) { l2 += 2; } l2 += 10; } ZLevel = 0.0F; ItemRenderer.ZLevel = 0.0F; } } //GL.PopMatrix(); base.DrawScreen(par1, par2, par3); //GL.Enable(EnableCap.Lighting); //GL.Enable(EnableCap.DepthTest); }