diff --git a/src/main/java/mekanism/client/gui/GuiMatrixStats.java b/src/main/java/mekanism/client/gui/GuiMatrixStats.java index 7fc97c66b..d73507d53 100644 --- a/src/main/java/mekanism/client/gui/GuiMatrixStats.java +++ b/src/main/java/mekanism/client/gui/GuiMatrixStats.java @@ -3,6 +3,7 @@ package mekanism.client.gui; import mekanism.api.energy.IStrictEnergyStorage; import mekanism.client.gui.GuiEnergyGauge.IEnergyInfoHandler; import mekanism.client.gui.GuiMatrixTab.MatrixTab; +import mekanism.client.gui.GuiRateBar.IRateInfoHandler; import mekanism.common.inventory.container.ContainerNull; import mekanism.common.tile.TileEntityInductionCasing; import mekanism.common.util.MekanismUtils; @@ -32,6 +33,20 @@ public class GuiMatrixStats extends GuiMekanism return tileEntity; } }, GuiEnergyGauge.Type.STANDARD, this, MekanismUtils.getResource(ResourceType.GUI, "GuiMatrixStats.png"), 6, 13)); + guiElements.add(new GuiRateBar(this, new IRateInfoHandler() + { + @Override + public String getTooltip() + { + return MekanismUtils.localize("gui.outputting") + ": " + MekanismUtils.getEnergyDisplay(tileEntity.structure.lastOutput) + "/t"; + } + + @Override + public double getLevel() + { + return tileEntity.structure.lastOutput/tileEntity.structure.outputCap; + } + }, MekanismUtils.getResource(ResourceType.GUI, "GuiMatrixStats.png"), 30, 13)); } @Override @@ -41,10 +56,16 @@ public class GuiMatrixStats extends GuiMekanism int yAxis = (mouseY - (height - ySize) / 2); fontRendererObj.drawString(MekanismUtils.localize("gui.matrixStats"), 45, 6, 0x404040); - fontRendererObj.drawString(MekanismUtils.localize("gui.energy") + ":", 53, 26, 0x00CD00); - fontRendererObj.drawString(MekanismUtils.getEnergyDisplay(tileEntity.getEnergy()) + "/" + MekanismUtils.getEnergyDisplay(tileEntity.getMaxEnergy()), 53, 35, 0x00CD00); - fontRendererObj.drawString(MekanismUtils.localize("gui.output") + ":", 53, 44, 0x00CD00); - fontRendererObj.drawString(MekanismUtils.getEnergyDisplay(tileEntity.structure.lastOutput) + "/" + MekanismUtils.getEnergyDisplay(tileEntity.structure.outputCap), 53, 53, 0x00CD00); + fontRendererObj.drawString(MekanismUtils.localize("gui.energy") + ":", 53, 26, 0x797979); + fontRendererObj.drawString(MekanismUtils.getEnergyDisplay(tileEntity.getEnergy()) + "/" + MekanismUtils.getEnergyDisplay(tileEntity.getMaxEnergy()), 59, 35, 0x404040); + fontRendererObj.drawString(MekanismUtils.localize("gui.output") + ":", 53, 46, 0x797979); + fontRendererObj.drawString(MekanismUtils.getEnergyDisplay(tileEntity.structure.lastOutput) + "/" + MekanismUtils.getEnergyDisplay(tileEntity.structure.outputCap), 59, 55, 0x404040); + + fontRendererObj.drawString(MekanismUtils.localize("gui.dimensions") + ":", 8, 82, 0x797979); + fontRendererObj.drawString(tileEntity.structure.volWidth + " x " + tileEntity.structure.volHeight + " x " + tileEntity.structure.volLength, 14, 91, 0x404040); + fontRendererObj.drawString(MekanismUtils.localize("gui.constituents") + ":", 8, 102, 0x797979); + fontRendererObj.drawString(tileEntity.clientCells + " " + MekanismUtils.localize("gui.cells"), 14, 111, 0x404040); + fontRendererObj.drawString(tileEntity.clientProviders + " " + MekanismUtils.localize("gui.providers"), 14, 120, 0x404040); super.drawGuiContainerForegroundLayer(mouseX, mouseY); } @@ -52,12 +73,12 @@ public class GuiMatrixStats extends GuiMekanism @Override protected void drawGuiContainerBackgroundLayer(float partialTick, int mouseX, int mouseY) { - super.drawGuiContainerBackgroundLayer(partialTick, mouseX, mouseY); - mc.renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.GUI, "GuiMatrixStats.png")); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); int guiWidth = (width - xSize) / 2; int guiHeight = (height - ySize) / 2; drawTexturedModalRect(guiWidth, guiHeight, 0, 0, xSize, ySize); + + super.drawGuiContainerBackgroundLayer(partialTick, mouseX, mouseY); } } diff --git a/src/main/java/mekanism/client/gui/GuiPowerBar.java b/src/main/java/mekanism/client/gui/GuiPowerBar.java index 3a9917bf7..d541f60ce 100644 --- a/src/main/java/mekanism/client/gui/GuiPowerBar.java +++ b/src/main/java/mekanism/client/gui/GuiPowerBar.java @@ -3,13 +3,11 @@ package mekanism.client.gui; import mekanism.common.tile.TileEntityElectricBlock; import mekanism.common.util.MekanismUtils; import mekanism.common.util.MekanismUtils.ResourceType; - import net.minecraft.util.ResourceLocation; +import codechicken.lib.vec.Rectangle4i; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import codechicken.lib.vec.Rectangle4i; - @SideOnly(Side.CLIENT) public class GuiPowerBar extends GuiElement { @@ -52,6 +50,7 @@ public class GuiPowerBar extends GuiElement super(MekanismUtils.getResource(ResourceType.GUI_ELEMENT, "GuiPowerBar.png"), gui, def); handler = h; + xLocation = x; yLocation = y; } diff --git a/src/main/java/mekanism/client/gui/GuiRateBar.java b/src/main/java/mekanism/client/gui/GuiRateBar.java new file mode 100644 index 000000000..888901c71 --- /dev/null +++ b/src/main/java/mekanism/client/gui/GuiRateBar.java @@ -0,0 +1,81 @@ +package mekanism.client.gui; + +import mekanism.common.util.MekanismUtils; +import mekanism.common.util.MekanismUtils.ResourceType; +import net.minecraft.util.ResourceLocation; +import codechicken.lib.vec.Rectangle4i; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +@SideOnly(Side.CLIENT) +public class GuiRateBar extends GuiElement +{ + private int xLocation; + private int yLocation; + + private int width = 8; + private int height = 60; + + private IRateInfoHandler handler; + + public GuiRateBar(IGuiWrapper gui, IRateInfoHandler h, ResourceLocation def, int x, int y) + { + super(MekanismUtils.getResource(ResourceType.GUI_ELEMENT, "GuiRateBar.png"), gui, def); + + handler = h; + + xLocation = x; + yLocation = y; + } + + @Override + public Rectangle4i getBounds(int guiWidth, int guiHeight) + { + return new Rectangle4i(guiWidth + xLocation, guiHeight + yLocation, width, height); + } + + public static abstract class IRateInfoHandler + { + public String getTooltip() + { + return null; + } + + public abstract double getLevel(); + } + + @Override + public void renderBackground(int xAxis, int yAxis, int guiWidth, int guiHeight) + { + mc.renderEngine.bindTexture(RESOURCE); + + guiObj.drawTexturedRect(guiWidth + xLocation, guiHeight + yLocation, 0, 0, width, height); + + if(handler.getLevel() > 0) + { + int displayInt = (int)(handler.getLevel()*58); + guiObj.drawTexturedRect(guiWidth + xLocation+1, guiHeight + yLocation + height-1 - displayInt, 8, height-2 - displayInt, width-2, displayInt); + } + + mc.renderEngine.bindTexture(defaultLocation); + } + + @Override + public void renderForeground(int xAxis, int yAxis) + { + mc.renderEngine.bindTexture(RESOURCE); + + if(handler.getTooltip() != null && xAxis >= xLocation+1 && xAxis <= xLocation + width-1 && yAxis >= yLocation+1 && yAxis <= yLocation + height-1) + { + displayTooltip(handler.getTooltip(), xAxis, yAxis); + } + + mc.renderEngine.bindTexture(defaultLocation); + } + + @Override + public void preMouseClicked(int xAxis, int yAxis, int button) {} + + @Override + public void mouseClicked(int xAxis, int yAxis, int button) {} +} diff --git a/src/main/java/mekanism/common/tile/TileEntityInductionCasing.java b/src/main/java/mekanism/common/tile/TileEntityInductionCasing.java index 488f17a83..33323ec26 100644 --- a/src/main/java/mekanism/common/tile/TileEntityInductionCasing.java +++ b/src/main/java/mekanism/common/tile/TileEntityInductionCasing.java @@ -15,6 +15,9 @@ import net.minecraft.item.ItemStack; public class TileEntityInductionCasing extends TileEntityMultiblock implements IStrictEnergyStorage { + public int clientCells; + public int clientProviders; + public TileEntityInductionCasing() { this("InductionCasing"); @@ -55,6 +58,13 @@ public class TileEntityInductionCasing extends TileEntityMultiblock