@SubscribeEvent() public void renderOverlay(RenderGameOverlayEvent.Post event) { if (ClientUtils.mc().thePlayer != null && ClientUtils.mc().thePlayer.getCurrentEquippedItem() != null && event.type == RenderGameOverlayEvent.ElementType.TEXT) { if (OreDictionary.itemMatches( new ItemStack(IEContent.itemTool, 1, 2), ClientUtils.mc().thePlayer.getCurrentEquippedItem(), false) || OreDictionary.itemMatches( new ItemStack(IEContent.itemWireCoil, 1, OreDictionary.WILDCARD_VALUE), ClientUtils.mc().thePlayer.getCurrentEquippedItem(), false)) { if (ItemNBTHelper.hasKey( ClientUtils.mc().thePlayer.getCurrentEquippedItem(), "linkingPos")) { int[] link = ItemNBTHelper.getIntArray( ClientUtils.mc().thePlayer.getCurrentEquippedItem(), "linkingPos"); if (link != null && link.length > 3) { String s = StatCollector.translateToLocalFormatted( Lib.DESC_INFO + "attachedTo", link[1], link[2], link[3]); ClientUtils.font() .drawString( s, event.resolution.getScaledWidth() / 2 - ClientUtils.font().getStringWidth(s) / 2, event.resolution.getScaledHeight() - GuiIngameForge.left_height - 10, WireType.ELECTRUM.getColour(null), true); } } } else if (Utils.isHammer(ClientUtils.mc().thePlayer.getCurrentEquippedItem())) { MovingObjectPosition mop = ClientUtils.mc().objectMouseOver; if (mop != null && ClientUtils.mc().thePlayer.worldObj.getTileEntity(mop.blockX, mop.blockY, mop.blockZ) instanceof IEBlockInterfaces.IBlockOverlayText) { IEBlockInterfaces.IBlockOverlayText overlayBlock = (IBlockOverlayText) ClientUtils.mc() .thePlayer .worldObj .getTileEntity(mop.blockX, mop.blockY, mop.blockZ); String[] s = overlayBlock.getOverlayText(mop); if (s != null && s.length > 0) for (int is = 0; is < s.length; is++) ClientUtils.font() .drawString( s[is], event.resolution.getScaledWidth() / 2 + 8, event.resolution.getScaledHeight() / 2 + 8 + is * ClientUtils.font().FONT_HEIGHT, 0xcccccc, true); } } else if (ClientUtils.mc().thePlayer.getCurrentEquippedItem().getItem() instanceof ItemRevolver && ClientUtils.mc().thePlayer.getCurrentEquippedItem().getItemDamage() != 2) { ClientUtils.bindTexture("immersiveengineering:textures/gui/revolver.png"); ItemStack[] bullets = ((ItemRevolver) ClientUtils.mc().thePlayer.getCurrentEquippedItem().getItem()) .getBullets(ClientUtils.mc().thePlayer.getCurrentEquippedItem()); int bulletAmount = bullets.length; float dx = event.resolution.getScaledWidth() - 32 - 48; float dy = event.resolution.getScaledHeight() - 64; GL11.glPushMatrix(); GL11.glEnable(GL11.GL_BLEND); GL11.glTranslated(dx, dy, 0); GL11.glScalef(.5f, .5f, 1); ClientUtils.drawTexturedRect(0, 1, 74, 74, 0 / 256f, 74 / 256f, 51 / 256f, 125 / 256f); if (bulletAmount >= 18) ClientUtils.drawTexturedRect( 47, 1, 103, 74, 74 / 256f, 177 / 256f, 51 / 256f, 125 / 256f); else if (bulletAmount > 8) ClientUtils.drawTexturedRect(57, 1, 79, 39, 57 / 256f, 136 / 256f, 12 / 256f, 51 / 256f); RenderItem ir = RenderItem.getInstance(); int[][] slots = ContainerRevolver.slotPositions[bulletAmount >= 18 ? 2 : bulletAmount > 8 ? 1 : 0]; for (int i = 0; i < bulletAmount; i++) { if (bullets[i] != null) { int x = 0; int y = 0; if (i == 0) { x = 29; y = 3; } else if (i - 1 < slots.length) { x = slots[i - 1][0]; y = slots[i - 1][1]; } else { int ii = i - (slots.length + 1); x = ii == 0 ? 48 : ii == 1 ? 29 : ii == 3 ? 2 : 10; y = ii == 1 ? 57 : ii == 3 ? 30 : ii == 4 ? 11 : 49; } ir.renderItemIntoGUI( ClientUtils.mc().fontRenderer, ClientUtils.mc().renderEngine, bullets[i], x, y); } } RenderHelper.disableStandardItemLighting(); GL11.glDisable(GL11.GL_BLEND); GL11.glPopMatrix(); } else if (ClientUtils.mc().thePlayer.getCurrentEquippedItem().getItem() instanceof ItemDrill && ClientUtils.mc().thePlayer.getCurrentEquippedItem().getItemDamage() == 0) { ItemStack drill = ClientUtils.mc().thePlayer.getCurrentEquippedItem(); ClientUtils.bindTexture("immersiveengineering:textures/gui/fuelGauge.png"); GL11.glColor4f(1, 1, 1, 1); float dx = event.resolution.getScaledWidth() - 16; float dy = event.resolution.getScaledHeight() - 12; GL11.glPushMatrix(); GL11.glTranslated(dx, dy, 0); ClientUtils.drawTexturedRect(-24, -68, 33, 81, 179 / 256f, 210 / 256f, 0 / 96f, 80 / 96f); GL11.glTranslated(-23, -28, 0); FluidStack fuel = ((ItemDrill) drill.getItem()).getFluid(drill); // for(float angle=80; angle>=-80; angle-=20) // { float angle = 80 - (160 * (fuel != null ? fuel.amount / (float) ((ItemDrill) drill.getItem()).getCapacity(drill) : 0)); GL11.glRotatef(angle, 0, 0, 1); ClientUtils.drawTexturedRect(6, -2, 24, 4, 91 / 256f, 123 / 256f, 80 / 96f, 87 / 96f); GL11.glRotatef(-angle, 0, 0, 1); // } GL11.glTranslated(23, 28, 0); ClientUtils.drawTexturedRect( -33 - 17, -40 - 26, 33 + 30, 40 + 37, 108 / 256f, 174 / 256f, 0 / 96f, 80 / 96f); RenderItem ir = RenderItem.getInstance(); float scale = 1; // .75f; GL11.glScalef(scale, scale, scale); ItemStack head = ((ItemDrill) drill.getItem()).getHead(drill); if (head != null) { ir.renderItemIntoGUI( ClientUtils.mc().fontRenderer, ClientUtils.mc().renderEngine, head, (int) (-48 / scale), (int) (-36 / scale)); ir.renderItemOverlayIntoGUI( ClientUtils.font(), ClientUtils.mc().renderEngine, head, (int) (-48 / scale), (int) (-36 / scale)); RenderHelper.disableStandardItemLighting(); } GL11.glPopMatrix(); } } }