@Override protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) { fontRenderer.drawString(StatCollector.translateToLocal("crafters.Smeltery"), 86, 5, 0x404040); fontRenderer.drawString( StatCollector.translateToLocal("container.inventory"), 90, (ySize - 96) + 2, 0x404040); int base = 0; int cornerX = (width - xSize) / 2 + 36; int cornerY = (height - ySize) / 2; FluidTankInfo[] info = logic.getTankInfo(ForgeDirection.UNKNOWN); int capacity = 0; for (int i = 0; i < info.length - 1; i++) { FluidStack liquid = info[i].fluid; if (liquid != null) capacity += info[i].capacity; } for (int i = 0; i < info.length - 1; i++) { FluidStack liquid = info[i].fluid; int basePos = 54; int initialLiquidSize = 0; int liquidSize = 0; if (capacity > 0) { liquidSize = liquid.amount * 52 / capacity; if (liquidSize == 0) liquidSize = 1; base += liquidSize; } int leftX = cornerX + basePos; int topY = (cornerY + 68) - base; int sizeX = 52; int sizeY = liquidSize; if (mouseX >= leftX && mouseX <= leftX + sizeX && mouseY >= topY && mouseY < topY + sizeY) { drawFluidStackTooltip(liquid, mouseX - cornerX + 36, mouseY - cornerY); } } if (scomp.fuelGague > 0) { int leftX = cornerX + 117; int topY = (cornerY + 68) - scomp.getScaledFuelGague(52); int sizeX = 12; int sizeY = scomp.getScaledFuelGague(52); if (mouseX >= leftX && mouseX <= leftX + sizeX && mouseY >= topY && mouseY < topY + sizeY) { drawFluidStackTooltip( new FluidStack(-37, scomp.fuelAmount), mouseX - cornerX + 36, mouseY - cornerY); } } }
public AdaptiveSmelteryGui( InventoryPlayer inventoryplayer, AdaptiveSmelteryLogic smeltery, World world, int x, int y, int z) { super((ActiveContainer) smeltery.getGuiContainer(inventoryplayer, world, x, y, z)); logic = smeltery; username = inventoryplayer.player.username; xSize = 248; scomp = logic.getSmeltery(); multitank = logic.getMultiTank(); scomp.update(); }
@Override protected void drawGuiContainerBackgroundLayer(float f, int mouseX, int mouseY) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); this.mc.getTextureManager().bindTexture(background); int cornerX = (width - xSize) / 2 + 36; int cornerY = (height - ySize) / 2; drawTexturedModalRect(cornerX + 46, cornerY, 0, 0, 176, ySize); // Fuel - Lava this.mc.getTextureManager().bindTexture(TextureMap.locationBlocksTexture); if (scomp.fuelGague > 0) { Icon lavaIcon = Block.lavaStill.getIcon(0, 0); int fuel = scomp.getScaledFuelGague(52); int count = 0; while (fuel > 0) { int size = fuel >= 16 ? 16 : fuel; fuel -= size; drawLiquidRect(cornerX + 117, (cornerY + 68) - size - 16 * count, lavaIcon, 12, size); count++; } } FluidTankInfo[] info = logic.getTankInfo(ForgeDirection.UNKNOWN); int capacity = 0; for (int i = 0; i < info.length - 1; i++) { FluidStack liquid = info[i].fluid; if (liquid != null) capacity += info[i].capacity; } // Liquids - molten metal int base = 0; for (int i = 0; i < info.length - 1; i++) { FluidStack liquid = info[i].fluid; Icon renderIndex = liquid.getFluid().getStillIcon(); int basePos = 54; if (capacity > 0) { int liquidSize = liquid.amount * 52 / capacity; if (liquidSize == 0) liquidSize = 1; while (liquidSize > 0) { int size = liquidSize >= 16 ? 16 : liquidSize; drawLiquidRect(cornerX + basePos, (cornerY + 68) - size - base, renderIndex, 16, size); drawLiquidRect( cornerX + basePos + 16, (cornerY + 68) - size - base, renderIndex, 16, size); drawLiquidRect( cornerX + basePos + 32, (cornerY + 68) - size - base, renderIndex, 16, size); drawLiquidRect( cornerX + basePos + 48, (cornerY + 68) - size - base, renderIndex, 4, size); liquidSize -= size; base += size; } } } // Liquid gague GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); this.mc.getTextureManager().bindTexture(background); drawTexturedModalRect(cornerX + 54, cornerY + 16, 176, 76, 52, 52); // Side inventory GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); this.mc.getTextureManager().bindTexture(backgroundSide); // if (logic.layers > 0) { /*if (logic.layers == 1) { drawTexturedModalRect(cornerX - 46, cornerY, 0, 0, 98, 43); drawTexturedModalRect(cornerX - 46, cornerY + 43, 0, 133, 98, 25); } else if (logic.layers == 2) { drawTexturedModalRect(cornerX - 46, cornerY, 0, 0, 98, 61); drawTexturedModalRect(cornerX - 46, cornerY + 61, 0, 97, 98, 61); } else*/ { drawTexturedModalRect(cornerX - 46, cornerY, 0, 0, 98, ySize - 8); } drawTexturedModalRect(cornerX + 32, (int) (cornerY + 8 + 127 * currentScroll), 98, 0, 12, 15); } // Temperature int slotSize = logic.getSizeInventory(); if (slotSize > 24) slotSize = 24; for (int iter = 0; iter < slotSize; iter++) { int slotTemp = logic.getTempForSlot(iter + slotPos * 3) - 20; int maxTemp = logic.getMeltingPointForSlot(iter + slotPos * 3) - 20; if (slotTemp > 0 && maxTemp > 0) { int size = 16 * slotTemp / maxTemp + 1; drawTexturedModalRect( cornerX - 38 + (iter % 3 * 22), cornerY + 8 + (iter / 3 * 18) + 16 - size, 98, 15 + 16 - size, 5, size); } } }