private void renderInventorySlot(int i, int j, int k, float f) { ItemStack itemstack = mc.thePlayer.inventory.mainInventory[i]; if (itemstack == null) { return; } float f1 = (float) itemstack.animationsToGo - f; if (f1 > 0.0F) { GL11.glPushMatrix(); float f2 = 1.0F + f1 / 5F; GL11.glTranslatef(j + 8, k + 12, 0.0F); GL11.glScalef(1.0F / f2, (f2 + 1.0F) / 2.0F, 1.0F); GL11.glTranslatef(-(j + 8), -(k + 12), 0.0F); } itemRenderer.renderItemIntoGUI(mc.fontRenderer, mc.renderEngine, itemstack, j, k); if (f1 > 0.0F) { GL11.glPopMatrix(); } itemRenderer.renderItemOverlayIntoGUI(mc.fontRenderer, mc.renderEngine, itemstack, j, k); }
/** * Renders the specified item of the inventory slot at the specified location. Args: slot, x, y, * partialTick */ private void renderInventorySlot(int par1, int par2, int par3, float par4) { ItemStack var5 = this.mc.thePlayer.inventory.mainInventory[par1]; if (var5 != null) { float var6 = (float) var5.animationsToGo - par4; if (var6 > 0.0F) { GL11.glPushMatrix(); float var7 = 1.0F + var6 / 5.0F; GL11.glTranslatef((float) (par2 + 8), (float) (par3 + 12), 0.0F); GL11.glScalef(1.0F / var7, (var7 + 1.0F) / 2.0F, 1.0F); GL11.glTranslatef((float) (-(par2 + 8)), (float) (-(par3 + 12)), 0.0F); } itemRenderer.renderItemIntoGUI(this.mc.fontRenderer, this.mc.renderEngine, var5, par2, par3); if (var6 > 0.0F) { GL11.glPopMatrix(); } itemRenderer.renderItemOverlayIntoGUI( this.mc.fontRenderer, this.mc.renderEngine, var5, par2, par3); } }
public void func_1197_a(int i, int j, int k) { if (i == field_1761_c && j == field_1760_d && k == field_1759_e) { return; } else { func_1195_b(); field_1761_c = i; field_1760_d = j; field_1759_e = k; field_1746_q = i + field_1758_f / 2; field_1743_r = j + field_1757_g / 2; field_1741_s = k + field_1756_h / 2; field_1752_l = i & 0x3ff; field_1751_m = j; field_1750_n = k & 0x3ff; field_1755_i = i - field_1752_l; field_1754_j = j - field_1751_m; field_1753_k = k - field_1750_n; float f = 6F; field_1736_v = AxisAlignedBB.func_1168_a( (float) i - f, (float) j - f, (float) k - f, (float) (i + field_1758_f) + f, (float) (j + field_1757_g) + f, (float) (k + field_1756_h) + f); GL11.glNewList(field_1744_C + 2, 4864); RenderItem.func_142_a( AxisAlignedBB.func_1161_b( (float) field_1752_l - f, (float) field_1751_m - f, (float) field_1750_n - f, (float) (field_1752_l + field_1758_f) + f, (float) (field_1751_m + field_1757_g) + f, (float) (field_1750_n + field_1756_h) + f)); GL11.glEndList(); func_1194_f(); return; } }
/** The main rendering method. You will need to implement this to draw 3D objects. */ private void draw(RenderItem renderItem) { Matrix4f t = new Matrix4f(mergedDisplayMatrix); t.mul(renderItem.getT()); drawTrianglesSeparately(renderItem.getShape(), t); // drawDotty(renderItem.getShape(), t); }
public boolean updateRenderer(long var1) { if (this.worldObj == null) { return true; } else { this.needsUpdate = false; if (!this.isUpdating) { if (this.needsBoxUpdate) { float var3 = 0.0F; GL11.glNewList(this.glRenderList + 2, GL11.GL_COMPILE); RenderItem.renderAABB( AxisAlignedBB.getAABBPool() .getAABB( (double) ((float) this.posXClip - var3), (double) ((float) this.posYClip - var3), (double) ((float) this.posZClip - var3), (double) ((float) (this.posXClip + 16) + var3), (double) ((float) (this.posYClip + 16) + var3), (double) ((float) (this.posZClip + 16) + var3))); GL11.glEndList(); this.needsBoxUpdate = false; } if (Reflector.LightCache.exists()) { Object var25 = Reflector.getFieldValue(Reflector.LightCache_cache); Reflector.callVoid(var25, Reflector.LightCache_clear, new Object[0]); Reflector.callVoid(Reflector.BlockCoord_resetPool, new Object[0]); } Chunk.isLit = false; } int var26 = this.posX; int var4 = this.posY; int var5 = this.posZ; int var6 = this.posX + 16; int var7 = this.posY + 16; int var8 = this.posZ + 16; ChunkCache var9 = null; RenderBlocks var10 = null; HashSet var11 = null; if (!this.isUpdating) { for (int var12 = 0; var12 < 2; ++var12) { this.tempSkipRenderPass[var12] = true; } byte var27 = 1; var9 = new ChunkCache( this.worldObj, var26 - var27, var4 - var27, var5 - var27, var6 + var27, var7 + var27, var8 + var27, var27); var10 = new RenderBlocks(var9); var11 = new HashSet(); var11.addAll(this.tileEntityRenderers); this.tileEntityRenderers.clear(); } if (this.isUpdating || !var9.extendedLevelsInChunkCache()) { this.bytesDrawn = 0; Tessellator var28 = Tessellator.instance; boolean var13 = Reflector.ForgeHooksClient.exists(); for (int var14 = 0; var14 < 2; ++var14) { boolean var15 = false; boolean var16 = false; boolean var17 = false; for (int var18 = var4; var18 < var7; ++var18) { if (this.isUpdating) { this.isUpdating = false; var9 = this.updateState.chunkcache; var10 = this.updateState.renderblocks; var11 = this.updateState.setOldEntityRenders; var14 = this.updateState.renderPass; var18 = this.updateState.y; var15 = this.updateState.flag; var16 = this.updateState.hasRenderedBlocks; var17 = this.updateState.hasGlList; if (var17) { GL11.glNewList( this.glWorkLists[this.activeSet][var14][this.activeListIndex[var14]], GL11.GL_COMPILE); var28.setRenderingChunk(true); var28.startDrawingQuads(); var28.setTranslation( (double) (-globalChunkOffsetX), 0.0D, (double) (-globalChunkOffsetZ)); } } else if (var17 && var1 != 0L && System.nanoTime() - var1 > 0L && this.activeListIndex[var14] < 15) { var28.draw(); GL11.glEndList(); var28.setRenderingChunk(false); var28.setTranslation(0.0D, 0.0D, 0.0D); ++this.activeListIndex[var14]; this.updateState.chunkcache = var9; this.updateState.renderblocks = var10; this.updateState.setOldEntityRenders = var11; this.updateState.renderPass = var14; this.updateState.y = var18; this.updateState.flag = var15; this.updateState.hasRenderedBlocks = var16; this.updateState.hasGlList = var17; this.isUpdating = true; return false; } for (int var19 = var5; var19 < var8; ++var19) { for (int var20 = var26; var20 < var6; ++var20) { int var21 = var9.getBlockId(var20, var18, var19); if (var21 > 0) { if (!var17) { var17 = true; GL11.glNewList( this.glWorkLists[this.activeSet][var14][this.activeListIndex[var14]], GL11.GL_COMPILE); var28.setRenderingChunk(true); var28.startDrawingQuads(); var28.setTranslation( (double) (-globalChunkOffsetX), 0.0D, (double) (-globalChunkOffsetZ)); } Block var22 = Block.blocksList[var21]; if (var14 == 0 && var22.hasTileEntity()) { TileEntity var23 = var9.getBlockTileEntity(var20, var18, var19); if (TileEntityRenderer.instance.hasSpecialRenderer(var23)) { this.tileEntityRenderers.add(var23); } } int var30 = var22.getRenderBlockPass(); boolean var24 = true; if (var30 != var14) { var15 = true; var24 = false; } if (var13) { var24 = Reflector.callBoolean( var22, Reflector.ForgeBlock_canRenderInPass, new Object[] {Integer.valueOf(var14)}); } if (var24) { var16 |= var10.renderBlockByRenderType(var22, var20, var18, var19); } } } } } if (var17) { this.bytesDrawn += var28.draw(); GL11.glEndList(); var28.setRenderingChunk(false); var28.setTranslation(0.0D, 0.0D, 0.0D); } else { var16 = false; } if (var16) { this.tempSkipRenderPass[var14] = false; } if (!var15) { break; } } } HashSet var29 = new HashSet(); var29.addAll(this.tileEntityRenderers); var29.removeAll(var11); this.tileEntities.addAll(var29); var11.removeAll(this.tileEntityRenderers); this.tileEntities.removeAll(var11); this.isChunkLit = Chunk.isLit; this.isInitialized = true; ++chunksUpdated; this.isVisible = true; this.isVisibleFromPosition = false; this.skipRenderPass[0] = this.tempSkipRenderPass[0]; this.skipRenderPass[1] = this.tempSkipRenderPass[1]; this.isUpdating = false; return true; } }
protected void genAchievementBackground(int par1, int par2, float par3) { int i = MathHelper.floor_double(field_27116_m + (guiMapX - field_27116_m) * (double) par3); int j = MathHelper.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.renderEngine.getTexture("/terrain.png"); int l = mc.renderEngine.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; GL11.glDepthFunc(GL11.GL_GEQUAL); GL11.glPushMatrix(); GL11.glTranslatef(0.0F, 0.0F, -200F); GL11.glEnable(GL11.GL_TEXTURE_2D); GL11.glDisable(GL11.GL_LIGHTING); GL11.glEnable(GL12.GL_RESCALE_NORMAL); GL11.glEnable(GL11.GL_COLOR_MATERIAL); mc.renderEngine.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; GL11.glColor4f(f, f, f, 1.0F); for (int k3 = 0; k3 * 16 - k2 < 224; k3++) { random.setSeed(1234 + i2 + k3); random.nextInt(); int j4 = random.nextInt(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.nextInt(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); } } GL11.glEnable(GL11.GL_DEPTH_TEST); GL11.glDepthFunc(GL11.GL_LEQUAL); GL11.glDisable(GL11.GL_TEXTURE_2D); for (int j3 = 0; j3 < AchievementList.achievementList.size(); j3++) { Achievement achievement1 = (Achievement) AchievementList.achievementList.get(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; boolean flag = statFileWriter.hasAchievementUnlocked(achievement1); boolean flag1 = statFileWriter.canUnlockAchievement(achievement1); char c = Math.sin(((double) (System.currentTimeMillis() % 600L) / 600D) * Math.PI * 2D) <= 0.59999999999999998D ? '\202' : '\377'; int i8 = 0xff000000; if (flag) { i8 = 0xff707070; } else if (flag1) { i8 = 65280 + (c << 24); } drawHorizontalLine(l3, i5, k4, i8); drawVerticalLine(i5, k4, l5, i8); } Achievement achievement = null; RenderItem renderitem = new RenderItem(); RenderHelper.enableGUIStandardItemLighting(); GL11.glDisable(GL11.GL_LIGHTING); GL11.glEnable(GL12.GL_RESCALE_NORMAL); GL11.glEnable(GL11.GL_COLOR_MATERIAL); for (int i4 = 0; i4 < AchievementList.achievementList.size(); i4++) { Achievement achievement2 = (Achievement) AchievementList.achievementList.get(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; GL11.glColor4f(f1, f1, f1, 1.0F); } else if (statFileWriter.canUnlockAchievement(achievement2)) { float f2 = Math.sin(((double) (System.currentTimeMillis() % 600L) / 600D) * Math.PI * 2D) >= 0.59999999999999998D ? 0.8F : 0.6F; GL11.glColor4f(f2, f2, f2, 1.0F); } else { float f3 = 0.3F; GL11.glColor4f(f3, f3, f3, 1.0F); } mc.renderEngine.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; GL11.glColor4f(f4, f4, f4, 1.0F); renderitem.field_27004_a = false; } GL11.glEnable(GL11.GL_LIGHTING); GL11.glEnable(GL11.GL_CULL_FACE); renderitem.renderItemIntoGUI( mc.fontRenderer, mc.renderEngine, achievement2.theItemStack, k6 + 3, j7 + 3); GL11.glDisable(GL11.GL_LIGHTING); if (!statFileWriter.canUnlockAchievement(achievement2)) { renderitem.field_27004_a = true; } GL11.glColor4f(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; } } GL11.glDisable(GL11.GL_DEPTH_TEST); GL11.glEnable(GL11.GL_BLEND); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); mc.renderEngine.bindTexture(l); drawTexturedModalRect(i1, j1, 0, 0, achievementsPaneWidth, achievementsPaneHeight); GL11.glPopMatrix(); zLevel = 0.0F; GL11.glDepthFunc(GL11.GL_LEQUAL); GL11.glDisable(GL11.GL_DEPTH_TEST); GL11.glEnable(GL11.GL_TEXTURE_2D); super.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, 0xc0000000, 0xc0000000); fontRenderer.drawSplitString(s1, k5, j6 + 12, l6, 0xffa0a0a0); if (statFileWriter.hasAchievementUnlocked(achievement)) { fontRenderer.drawStringWithShadow( StatCollector.translateToLocal("achievement.taken"), k5, j6 + k7 + 4, 0xff9090ff); } } 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, 0xc0000000, 0xc0000000); fontRenderer.drawSplitString(s2, k5, j6 + 12, i7, 0xff705050); } fontRenderer.drawStringWithShadow( s, k5, j6, statFileWriter.canUnlockAchievement(achievement) ? achievement.getSpecial() ? -128 : -1 : achievement.getSpecial() ? 0xff808040 : 0xff808080); } GL11.glEnable(GL11.GL_DEPTH_TEST); GL11.glEnable(GL11.GL_LIGHTING); RenderHelper.disableStandardItemLighting(); }