package imdutch21.oilcraft.inventory.gui; import imdutch21.oilcraft.inventory.container.ContainerOilFurnace; import imdutch21.oilcraft.tileentity.TileEntityOilFurnace; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; import java.util.ArrayList; import java.util.List; public class GuiOilFurnace extends OCGui { private static ResourceLocation oilFurnaceGui = new ResourceLocation("oilcraft:textures/gui/oil_furnace.png"); private TileEntityOilFurnace tileOilFurnace; private int tick = 0; private int frame = 0; public GuiOilFurnace(EntityPlayer player, TileEntityOilFurnace tile) { super(new ContainerOilFurnace(player, tile)); this.tileOilFurnace = tile; } @Override protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) { String s = this.tileOilFurnace.hasCustomName() ? this.tileOilFurnace.getName() : I18n.format(this.tileOilFurnace.getName()); this.fontRendererObj.drawString(s, this.xSize / 2 - this.fontRendererObj.getStringWidth(s) / 2, 4, 4210752); GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); int amount = getScaled(tileOilFurnace.tank.getCapacity(), tileOilFurnace.tank.getFluidAmount(), 58); if (tileOilFurnace.tank.getFluid() != null) { mc.getTextureManager().bindTexture(new ResourceLocation("oilcraft:textures/blocks/oil_still.png")); drawScaledCustomSizeModalRect(143, 72 - amount, 0, frame % 200, 8, amount, 16, amount, 16, 320); } tick++; if (tick % 10 == 0) frame += 8; amount = getScaled(tileOilFurnace.energyStorage.getMaxEnergyStored(), tileOilFurnace.energyStorage.getEnergyStored(), 71); Minecraft.getMinecraft().getTextureManager().bindTexture(new ResourceLocation("oilcraft:textures/gui/energy_bar.png")); drawModalRectWithCustomSizedTexture(10, 78 - amount, 16, 71 - amount, 16, amount, 16, 71); int k = (this.width - this.xSize) / 2; int l = (this.height - this.ySize) / 2; Minecraft.getMinecraft().getTextureManager().bindTexture(oilFurnaceGui); amount = getScaled((int) (tileOilFurnace.timeToProcess * (tileOilFurnace.timesLeft > 0 ? 0.6f : 1)), tileOilFurnace.progress , 22); drawTexturedModalRect(75, 36, 177, 3, amount, 16); if (mouseX >= 143 + k && mouseX <= 159 + k && mouseY >= 14 + l && mouseY <= 72 + l) { List<String> list = new ArrayList<String>(); list.add("Fluid: Oil"); list.add(String.format("Tank: %s mB / %s mB", tileOilFurnace.tank.getFluidAmount(), tileOilFurnace.tank.getCapacity())); drawHoveringText(list, mouseX - k, mouseY - l); } if (mouseX >= 10 + k && mouseX <= 26 + k && mouseY >= 7 + l && mouseY <= 78 + l) { List<String> list = new ArrayList<String>(); list.add(String.format("Energie: %s RF / %s RF", tileOilFurnace.energyStorage.getEnergyStored(), tileOilFurnace.energyStorage.getMaxEnergyStored())); drawHoveringText(list, mouseX - k, mouseY - l); } } private int getScaled(int whole, int part, int height) { if (whole <= 0) return height; return part * height / whole; } @Override protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); mc.getTextureManager().bindTexture(oilFurnaceGui); int k = (this.width - this.xSize) / 2; int l = (this.height - this.ySize) / 2; this.drawTexturedModalRect(k, l, 0, 0, this.xSize, this.ySize); } }