From 2984bf45a8b038b8909b155cc8b87b6c4ede5ec9 Mon Sep 17 00:00:00 2001 From: aidancbrady Date: Mon, 25 Jan 2016 00:13:42 -0500 Subject: [PATCH] Loads of untested work on turbine interface --- .../mekanism/client/gui/GuiMatrixStats.java | 14 +-- .../gui/GuiOredictionificatorFilter.java | 6 +- .../client/gui/GuiSideConfiguration.java | 2 +- .../client/gui/GuiTransporterConfig.java | 2 +- .../client/gui/GuiUpgradeManagement.java | 2 +- .../client/gui/element/GuiMatrixTab.java | 2 +- .../client/gui/element/GuiPowerBar.java | 6 +- .../gui/element/GuiSideConfigurationTab.java | 2 +- .../gui/element/GuiTransporterConfigTab.java | 2 +- .../client/gui/element/GuiUpgradeTab.java | 2 +- .../java/mekanism/common/CommonProxy.java | 25 +--- src/main/java/mekanism/common/Mekanism.java | 4 + .../mekanism/common/base/IGuiProvider.java | 32 +++++ .../common/network/PacketSimpleGui.java | 34 +++-- .../client/GeneratorsClientProxy.java | 3 + .../client/gui/GuiIndustrialTurbine.java | 114 +++++++++++++++++ .../client/gui/GuiReactorController.java | 3 + .../generators/client/gui/GuiReactorFuel.java | 2 + .../generators/client/gui/GuiReactorHeat.java | 2 + .../client/gui/GuiReactorStats.java | 2 + .../client/gui/GuiTurbineStats.java | 80 ++++++++++++ .../client/gui/{ => element}/GuiFuelTab.java | 2 +- .../client/gui/{ => element}/GuiHeatTab.java | 2 +- .../client/gui/{ => element}/GuiStatTab.java | 2 +- .../client/gui/element/GuiTurbineTab.java | 118 ++++++++++++++++++ .../common/GeneratorsCommonProxy.java | 29 +---- .../generators/common/MekanismGenerators.java | 4 + .../turbine/SynchronizedTurbineData.java | 13 ++ .../turbine/TurbineUpdateProtocol.java | 1 + .../tile/turbine/TileEntityTurbineCasing.java | 59 ++++++++- .../tile/turbine/TileEntityTurbineValve.java | 9 +- .../mekanism/gui/GuiIndustrialTurbine.png | Bin 0 -> 3721 bytes .../gui/{GuiMatrixStats.png => GuiNull.png} | Bin .../resources/assets/mekanism/lang/en_US.lang | 13 ++ 34 files changed, 511 insertions(+), 82 deletions(-) create mode 100644 src/main/java/mekanism/common/base/IGuiProvider.java create mode 100644 src/main/java/mekanism/generators/client/gui/GuiTurbineStats.java rename src/main/java/mekanism/generators/client/gui/{ => element}/GuiFuelTab.java (97%) rename src/main/java/mekanism/generators/client/gui/{ => element}/GuiHeatTab.java (97%) rename src/main/java/mekanism/generators/client/gui/{ => element}/GuiStatTab.java (97%) create mode 100644 src/main/java/mekanism/generators/client/gui/element/GuiTurbineTab.java create mode 100644 src/main/resources/assets/mekanism/gui/GuiIndustrialTurbine.png rename src/main/resources/assets/mekanism/gui/{GuiMatrixStats.png => GuiNull.png} (100%) diff --git a/src/main/java/mekanism/client/gui/GuiMatrixStats.java b/src/main/java/mekanism/client/gui/GuiMatrixStats.java index 57450ea28..3a48e0c19 100644 --- a/src/main/java/mekanism/client/gui/GuiMatrixStats.java +++ b/src/main/java/mekanism/client/gui/GuiMatrixStats.java @@ -2,10 +2,10 @@ package mekanism.client.gui; import mekanism.api.energy.IStrictEnergyStorage; import mekanism.client.gui.element.GuiEnergyGauge; -import mekanism.client.gui.element.GuiMatrixTab; -import mekanism.client.gui.element.GuiRateBar; import mekanism.client.gui.element.GuiEnergyGauge.IEnergyInfoHandler; +import mekanism.client.gui.element.GuiMatrixTab; import mekanism.client.gui.element.GuiMatrixTab.MatrixTab; +import mekanism.client.gui.element.GuiRateBar; import mekanism.client.gui.element.GuiRateBar.IRateInfoHandler; import mekanism.common.inventory.container.ContainerNull; import mekanism.common.tile.TileEntityInductionCasing; @@ -28,7 +28,7 @@ public class GuiMatrixStats extends GuiMekanism { super(tentity, new ContainerNull(inventory.player, tentity)); tileEntity = tentity; - guiElements.add(new GuiMatrixTab(this, tileEntity, MatrixTab.MAIN, 6, MekanismUtils.getResource(ResourceType.GUI, "GuiMatrixStats.png"))); + guiElements.add(new GuiMatrixTab(this, tileEntity, MatrixTab.MAIN, 6, MekanismUtils.getResource(ResourceType.GUI, "GuiNull.png"))); guiElements.add(new GuiEnergyGauge(new IEnergyInfoHandler() { @Override @@ -36,7 +36,7 @@ public class GuiMatrixStats extends GuiMekanism { return tileEntity; } - }, GuiEnergyGauge.Type.STANDARD, this, MekanismUtils.getResource(ResourceType.GUI, "GuiMatrixStats.png"), 6, 13)); + }, GuiEnergyGauge.Type.STANDARD, this, MekanismUtils.getResource(ResourceType.GUI, "GuiNull.png"), 6, 13)); guiElements.add(new GuiRateBar(this, new IRateInfoHandler() { @Override @@ -50,7 +50,7 @@ public class GuiMatrixStats extends GuiMekanism { return tileEntity.structure.lastInput/tileEntity.structure.transferCap; } - }, MekanismUtils.getResource(ResourceType.GUI, "GuiMatrixStats.png"), 30, 13)); + }, MekanismUtils.getResource(ResourceType.GUI, "GuiNull.png"), 30, 13)); guiElements.add(new GuiRateBar(this, new IRateInfoHandler() { @Override @@ -64,7 +64,7 @@ public class GuiMatrixStats extends GuiMekanism { return tileEntity.structure.lastOutput/tileEntity.structure.transferCap; } - }, MekanismUtils.getResource(ResourceType.GUI, "GuiMatrixStats.png"), 38, 13)); + }, MekanismUtils.getResource(ResourceType.GUI, "GuiNull.png"), 38, 13)); } @Override @@ -93,7 +93,7 @@ public class GuiMatrixStats extends GuiMekanism @Override protected void drawGuiContainerBackgroundLayer(float partialTick, int mouseX, int mouseY) { - mc.renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.GUI, "GuiMatrixStats.png")); + mc.renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.GUI, "GuiNull.png")); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); int guiWidth = (width - xSize) / 2; int guiHeight = (height - ySize) / 2; diff --git a/src/main/java/mekanism/client/gui/GuiOredictionificatorFilter.java b/src/main/java/mekanism/client/gui/GuiOredictionificatorFilter.java index 6e17fc2e0..fb8e41b84 100644 --- a/src/main/java/mekanism/client/gui/GuiOredictionificatorFilter.java +++ b/src/main/java/mekanism/client/gui/GuiOredictionificatorFilter.java @@ -277,13 +277,13 @@ public class GuiOredictionificatorFilter extends GuiMekanism Mekanism.packetHandler.sendToServer(new EditFilterMessage(Coord4D.get(tileEntity), false, origFilter, filter)); } - Mekanism.packetHandler.sendToServer(new SimpleGuiMessage(Coord4D.get(tileEntity), 52)); + Mekanism.packetHandler.sendToServer(new SimpleGuiMessage(Coord4D.get(tileEntity), 0, 52)); } } else if(guibutton.id == 1) { Mekanism.packetHandler.sendToServer(new EditFilterMessage(Coord4D.get(tileEntity), true, origFilter, null)); - Mekanism.packetHandler.sendToServer(new SimpleGuiMessage(Coord4D.get(tileEntity), 52)); + Mekanism.packetHandler.sendToServer(new SimpleGuiMessage(Coord4D.get(tileEntity), 0, 52)); } } @@ -310,7 +310,7 @@ public class GuiOredictionificatorFilter extends GuiMekanism if(xAxis >= 5 && xAxis <= 16 && yAxis >= 5 && yAxis <= 16) { SoundHandler.playSound("gui.button.press"); - Mekanism.packetHandler.sendToServer(new SimpleGuiMessage(Coord4D.get(tileEntity), 52)); + Mekanism.packetHandler.sendToServer(new SimpleGuiMessage(Coord4D.get(tileEntity), 0, 52)); } if(xAxis >= 130 && xAxis <= 142 && yAxis >= 48 && yAxis <= 60) diff --git a/src/main/java/mekanism/client/gui/GuiSideConfiguration.java b/src/main/java/mekanism/client/gui/GuiSideConfiguration.java index 1d4bb32a7..c00bcdc6c 100644 --- a/src/main/java/mekanism/client/gui/GuiSideConfiguration.java +++ b/src/main/java/mekanism/client/gui/GuiSideConfiguration.java @@ -222,7 +222,7 @@ public class GuiSideConfiguration extends GuiMekanism { int guiId = MachineType.get(tile.getBlockType(), tile.getBlockMetadata()).guiId; SoundHandler.playSound("gui.button.press"); - Mekanism.packetHandler.sendToServer(new SimpleGuiMessage(Coord4D.get(tile), guiId)); + Mekanism.packetHandler.sendToServer(new SimpleGuiMessage(Coord4D.get(tile), 0, guiId)); } if(xAxis >= 156 && xAxis <= 170 && yAxis >= 6 && yAxis <= 20) diff --git a/src/main/java/mekanism/client/gui/GuiTransporterConfig.java b/src/main/java/mekanism/client/gui/GuiTransporterConfig.java index a5c288aee..477417dcf 100644 --- a/src/main/java/mekanism/client/gui/GuiTransporterConfig.java +++ b/src/main/java/mekanism/client/gui/GuiTransporterConfig.java @@ -187,7 +187,7 @@ public class GuiTransporterConfig extends GuiMekanism { int guiId = MachineType.get(tile.getBlockType(), tile.getBlockMetadata()).guiId; SoundHandler.playSound("gui.button.press"); - Mekanism.packetHandler.sendToServer(new SimpleGuiMessage(Coord4D.get(tile), guiId)); + Mekanism.packetHandler.sendToServer(new SimpleGuiMessage(Coord4D.get(tile), 0, guiId)); } if(xAxis >= 156 && xAxis <= 170 && yAxis >= 6 && yAxis <= 20) diff --git a/src/main/java/mekanism/client/gui/GuiUpgradeManagement.java b/src/main/java/mekanism/client/gui/GuiUpgradeManagement.java index 53d863684..af3a2b300 100644 --- a/src/main/java/mekanism/client/gui/GuiUpgradeManagement.java +++ b/src/main/java/mekanism/client/gui/GuiUpgradeManagement.java @@ -302,7 +302,7 @@ public class GuiUpgradeManagement extends GuiMekanism { int guiId = MachineType.get(tile.getBlockType(), tile.getBlockMetadata()).guiId; SoundHandler.playSound("gui.button.press"); - Mekanism.packetHandler.sendToServer(new SimpleGuiMessage(Coord4D.get(tile), guiId)); + Mekanism.packetHandler.sendToServer(new SimpleGuiMessage(Coord4D.get(tile), 0, guiId)); } if(selectedType != null && xAxis >= 136 && xAxis <= 148 && yAxis >= 57 && yAxis <= 69) diff --git a/src/main/java/mekanism/client/gui/element/GuiMatrixTab.java b/src/main/java/mekanism/client/gui/element/GuiMatrixTab.java index 4166ca8b8..db464f2f6 100644 --- a/src/main/java/mekanism/client/gui/element/GuiMatrixTab.java +++ b/src/main/java/mekanism/client/gui/element/GuiMatrixTab.java @@ -106,7 +106,7 @@ public class GuiMatrixTab extends GuiElement public void openGui(TileEntity tile) { - Mekanism.packetHandler.sendToServer(new SimpleGuiMessage(Coord4D.get(tile), guiId)); + Mekanism.packetHandler.sendToServer(new SimpleGuiMessage(Coord4D.get(tile), 0, guiId)); } public String getDesc() diff --git a/src/main/java/mekanism/client/gui/element/GuiPowerBar.java b/src/main/java/mekanism/client/gui/element/GuiPowerBar.java index 8ba61a3fb..16d3d2826 100644 --- a/src/main/java/mekanism/client/gui/element/GuiPowerBar.java +++ b/src/main/java/mekanism/client/gui/element/GuiPowerBar.java @@ -1,7 +1,7 @@ package mekanism.client.gui.element; +import mekanism.api.energy.IStrictEnergyStorage; import mekanism.client.gui.IGuiWrapper; -import mekanism.common.tile.TileEntityElectricBlock; import mekanism.common.util.MekanismUtils; import mekanism.common.util.MekanismUtils.ResourceType; import net.minecraft.util.ResourceLocation; @@ -19,10 +19,10 @@ public class GuiPowerBar extends GuiElement private int height = 56; private int innerOffsetY = 2; - private TileEntityElectricBlock tileEntity; + private IStrictEnergyStorage tileEntity; private IPowerInfoHandler handler; - public GuiPowerBar(IGuiWrapper gui, TileEntityElectricBlock tile, ResourceLocation def, int x, int y) + public GuiPowerBar(IGuiWrapper gui, IStrictEnergyStorage tile, ResourceLocation def, int x, int y) { super(MekanismUtils.getResource(ResourceType.GUI_ELEMENT, "GuiPowerBar.png"), gui, def); diff --git a/src/main/java/mekanism/client/gui/element/GuiSideConfigurationTab.java b/src/main/java/mekanism/client/gui/element/GuiSideConfigurationTab.java index a09df11d9..477f95a73 100644 --- a/src/main/java/mekanism/client/gui/element/GuiSideConfigurationTab.java +++ b/src/main/java/mekanism/client/gui/element/GuiSideConfigurationTab.java @@ -73,7 +73,7 @@ public class GuiSideConfigurationTab extends GuiElement { if(xAxis >= -21 && xAxis <= -3 && yAxis >= 10 && yAxis <= 28) { - Mekanism.packetHandler.sendToServer(new SimpleGuiMessage(Coord4D.get(tileEntity), 9)); + Mekanism.packetHandler.sendToServer(new SimpleGuiMessage(Coord4D.get(tileEntity), 0, 9)); SoundHandler.playSound("gui.button.press"); } } diff --git a/src/main/java/mekanism/client/gui/element/GuiTransporterConfigTab.java b/src/main/java/mekanism/client/gui/element/GuiTransporterConfigTab.java index f1e128ae9..35457b507 100644 --- a/src/main/java/mekanism/client/gui/element/GuiTransporterConfigTab.java +++ b/src/main/java/mekanism/client/gui/element/GuiTransporterConfigTab.java @@ -75,7 +75,7 @@ public class GuiTransporterConfigTab extends GuiElement { if(xAxis >= -21 && xAxis <= -3 && yAxis >= yPos+4 && yAxis <= yPos+22) { - Mekanism.packetHandler.sendToServer(new SimpleGuiMessage(Coord4D.get(tileEntity), 51)); + Mekanism.packetHandler.sendToServer(new SimpleGuiMessage(Coord4D.get(tileEntity), 0, 51)); SoundHandler.playSound("gui.button.press"); } } diff --git a/src/main/java/mekanism/client/gui/element/GuiUpgradeTab.java b/src/main/java/mekanism/client/gui/element/GuiUpgradeTab.java index b25dc1e9e..051a8eb8a 100644 --- a/src/main/java/mekanism/client/gui/element/GuiUpgradeTab.java +++ b/src/main/java/mekanism/client/gui/element/GuiUpgradeTab.java @@ -70,7 +70,7 @@ public class GuiUpgradeTab extends GuiElement { if(xAxis >= 179 && xAxis <= 197 && yAxis >= 10 && yAxis <= 28) { - Mekanism.packetHandler.sendToServer(new SimpleGuiMessage(Coord4D.get(tileEntity), 43)); + Mekanism.packetHandler.sendToServer(new SimpleGuiMessage(Coord4D.get(tileEntity), 0, 43)); SoundHandler.playSound("gui.button.press"); } } diff --git a/src/main/java/mekanism/common/CommonProxy.java b/src/main/java/mekanism/common/CommonProxy.java index cd12536db..00da85dfe 100644 --- a/src/main/java/mekanism/common/CommonProxy.java +++ b/src/main/java/mekanism/common/CommonProxy.java @@ -12,6 +12,7 @@ import mekanism.api.Pos3D; import mekanism.api.util.UnitDisplayUtils.EnergyType; import mekanism.api.util.UnitDisplayUtils.TempType; import mekanism.client.SparkleAnimation.INodeChecker; +import mekanism.common.base.IGuiProvider; import mekanism.common.base.IUpgradeTile; import mekanism.common.block.BlockMachine.MachineType; import mekanism.common.entity.EntityRobit; @@ -130,7 +131,7 @@ import cpw.mods.fml.relauncher.FMLInjectionData; * @author AidanBrady * */ -public class CommonProxy +public class CommonProxy implements IGuiProvider { public static int MACHINE_RENDER_ID = RenderingRegistry.getNextAvailableRenderId(); public static int BASIC_RENDER_ID = RenderingRegistry.getNextAvailableRenderId(); @@ -392,31 +393,13 @@ public class CommonProxy */ public void doMultiblockSparkle(TileEntityMultiblock tileEntity) {} - /** - * Get the actual interface for a GUI. Client-only. - * @param ID - gui ID - * @param player - player that opened the GUI - * @param world - world the GUI was opened in - * @param x - gui's x position - * @param y - gui's y position - * @param z - gui's z position - * @return the GuiScreen of the GUI - */ + @Override public Object getClientGui(int ID, EntityPlayer player, World world, int x, int y, int z) { return null; } - /** - * Get the container for a GUI. Common. - * @param ID - gui ID - * @param player - player that opened the GUI - * @param world - world the GUI was opened in - * @param x - gui's x position - * @param y - gui's y position - * @param z - gui's z position - * @return the Container of the GUI - */ + @Override public Container getServerGui(int ID, EntityPlayer player, World world, int x, int y, int z) { TileEntity tileEntity = world.getTileEntity(x, y, z); diff --git a/src/main/java/mekanism/common/Mekanism.java b/src/main/java/mekanism/common/Mekanism.java index 33f8124bc..7936a4cc2 100644 --- a/src/main/java/mekanism/common/Mekanism.java +++ b/src/main/java/mekanism/common/Mekanism.java @@ -59,6 +59,7 @@ import mekanism.common.integration.OreDictManager; import mekanism.common.multiblock.MultiblockManager; import mekanism.common.multipart.MultipartMekanism; import mekanism.common.network.PacketDataRequest.DataRequestMessage; +import mekanism.common.network.PacketSimpleGui; import mekanism.common.network.PacketTransmitterUpdate.PacketType; import mekanism.common.network.PacketTransmitterUpdate.TransmitterUpdateMessage; import mekanism.common.recipe.BinRecipe; @@ -1203,6 +1204,9 @@ public class Mekanism //Register to receive subscribed events FMLCommonHandler.instance().bus().register(this); MinecraftForge.EVENT_BUS.register(this); + + //Register this module's GUI handler in the simple packet protocol + PacketSimpleGui.handlers.add(0, proxy); //Set up VoiceServerManager if(general.voiceServerEnabled) diff --git a/src/main/java/mekanism/common/base/IGuiProvider.java b/src/main/java/mekanism/common/base/IGuiProvider.java new file mode 100644 index 000000000..681546895 --- /dev/null +++ b/src/main/java/mekanism/common/base/IGuiProvider.java @@ -0,0 +1,32 @@ +package mekanism.common.base; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.world.World; + +public interface IGuiProvider +{ + /** + * Get the container for a GUI. Common. + * @param ID - gui ID + * @param player - player that opened the GUI + * @param world - world the GUI was opened in + * @param x - gui's x position + * @param y - gui's y position + * @param z - gui's z position + * @return the Container of the GUI + */ + public Container getServerGui(int ID, EntityPlayer player, World world, int x, int y, int z); + + /** + * Get the actual interface for a GUI. Client-only. + * @param ID - gui ID + * @param player - player that opened the GUI + * @param world - world the GUI was opened in + * @param x - gui's x position + * @param y - gui's y position + * @param z - gui's z position + * @return the GuiScreen of the GUI + */ + public Object getClientGui(int ID, EntityPlayer player, World world, int x, int y, int z); +} diff --git a/src/main/java/mekanism/common/network/PacketSimpleGui.java b/src/main/java/mekanism/common/network/PacketSimpleGui.java index 367d4f2bb..6a2d7d713 100644 --- a/src/main/java/mekanism/common/network/PacketSimpleGui.java +++ b/src/main/java/mekanism/common/network/PacketSimpleGui.java @@ -1,11 +1,16 @@ package mekanism.common.network; +import io.netty.buffer.ByteBuf; + +import java.util.ArrayList; +import java.util.List; + import mekanism.api.Coord4D; import mekanism.common.Mekanism; import mekanism.common.PacketHandler; +import mekanism.common.base.IGuiProvider; import mekanism.common.network.PacketSimpleGui.SimpleGuiMessage; import mekanism.common.tile.TileEntityBasicBlock; - import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; @@ -17,10 +22,10 @@ import cpw.mods.fml.common.network.simpleimpl.MessageContext; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import io.netty.buffer.ByteBuf; - public class PacketSimpleGui implements IMessageHandler { + public static List handlers = new ArrayList(); + @Override public IMessage onMessage(SimpleGuiMessage message, MessageContext context) { @@ -37,11 +42,11 @@ public class PacketSimpleGui implements IMessageHandler= 7 && xAxis <= 39 && yAxis >= 14 && yAxis <= 72) + { + drawCreativeTabHoveringText(tileEntity.structure.fluidStored != null ? LangUtils.localizeFluidStack(tileEntity.structure.fluidStored) + ": " + tileEntity.structure.fluidStored.amount + "mB" : LangUtils.localize("gui.empty"), xAxis, yAxis); + } + } + + @Override + protected void drawGuiContainerBackgroundLayer(float partialTick, int mouseX, int mouseY) + { + mc.renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.GUI, "GuiIndustrialTurbine.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); + + if(tileEntity.getScaledFluidLevel(58) > 0) + { + displayGauge(7, 14, tileEntity.getScaledFluidLevel(58), tileEntity.structure.fluidStored, 0); + displayGauge(23, 14, tileEntity.getScaledFluidLevel(58), tileEntity.structure.fluidStored, 1); + } + + super.drawGuiContainerBackgroundLayer(partialTick, mouseX, mouseY); + } + + public void displayGauge(int xPos, int yPos, int scale, FluidStack fluid, int side /*0-left, 1-right*/) + { + if(fluid == null) + { + return; + } + + int guiWidth = (width - xSize) / 2; + int guiHeight = (height - ySize) / 2; + + int start = 0; + + while(true) + { + int renderRemaining = 0; + + if(scale > 16) + { + renderRemaining = 16; + scale -= 16; + } + else { + renderRemaining = scale; + scale = 0; + } + + mc.renderEngine.bindTexture(MekanismRenderer.getBlocksTexture()); + drawTexturedModelRectFromIcon(guiWidth + xPos, guiHeight + yPos + 58 - renderRemaining - start, fluid.getFluid().getIcon(), 16, 16 - (16 - renderRemaining)); + start+=16; + + if(renderRemaining == 0 || scale == 0) + { + break; + } + } + + mc.renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.GUI, "GuiIndustrialTurbine.png")); + drawTexturedModalRect(guiWidth + xPos, guiHeight + yPos, 176, side == 0 ? 0 : 54, 16, 54); } } diff --git a/src/main/java/mekanism/generators/client/gui/GuiReactorController.java b/src/main/java/mekanism/generators/client/gui/GuiReactorController.java index 52022b484..af35860a7 100644 --- a/src/main/java/mekanism/generators/client/gui/GuiReactorController.java +++ b/src/main/java/mekanism/generators/client/gui/GuiReactorController.java @@ -12,6 +12,9 @@ import mekanism.client.gui.element.GuiSlot.SlotType; import mekanism.common.util.LangUtils; import mekanism.common.util.MekanismUtils; import mekanism.common.util.MekanismUtils.ResourceType; +import mekanism.generators.client.gui.element.GuiFuelTab; +import mekanism.generators.client.gui.element.GuiHeatTab; +import mekanism.generators.client.gui.element.GuiStatTab; import mekanism.generators.common.inventory.container.ContainerReactorController; import mekanism.generators.common.tile.reactor.TileEntityReactorController; import net.minecraft.entity.player.InventoryPlayer; diff --git a/src/main/java/mekanism/generators/client/gui/GuiReactorFuel.java b/src/main/java/mekanism/generators/client/gui/GuiReactorFuel.java index 355de7149..b82df8792 100644 --- a/src/main/java/mekanism/generators/client/gui/GuiReactorFuel.java +++ b/src/main/java/mekanism/generators/client/gui/GuiReactorFuel.java @@ -22,6 +22,8 @@ import mekanism.common.network.PacketTileEntity.TileEntityMessage; import mekanism.common.util.LangUtils; import mekanism.common.util.MekanismUtils; import mekanism.common.util.MekanismUtils.ResourceType; +import mekanism.generators.client.gui.element.GuiHeatTab; +import mekanism.generators.client.gui.element.GuiStatTab; import mekanism.generators.common.MekanismGenerators; import mekanism.generators.common.network.PacketGeneratorsGui.GeneratorsGuiMessage; import mekanism.generators.common.tile.reactor.TileEntityReactorController; diff --git a/src/main/java/mekanism/generators/client/gui/GuiReactorHeat.java b/src/main/java/mekanism/generators/client/gui/GuiReactorHeat.java index e06baa379..ee232ee98 100644 --- a/src/main/java/mekanism/generators/client/gui/GuiReactorHeat.java +++ b/src/main/java/mekanism/generators/client/gui/GuiReactorHeat.java @@ -25,6 +25,8 @@ import mekanism.common.inventory.container.ContainerNull; import mekanism.common.util.LangUtils; import mekanism.common.util.MekanismUtils; import mekanism.common.util.MekanismUtils.ResourceType; +import mekanism.generators.client.gui.element.GuiFuelTab; +import mekanism.generators.client.gui.element.GuiStatTab; import mekanism.generators.common.MekanismGenerators; import mekanism.generators.common.network.PacketGeneratorsGui.GeneratorsGuiMessage; import mekanism.generators.common.tile.reactor.TileEntityReactorController; diff --git a/src/main/java/mekanism/generators/client/gui/GuiReactorStats.java b/src/main/java/mekanism/generators/client/gui/GuiReactorStats.java index 4b7732071..1a31c6f4f 100644 --- a/src/main/java/mekanism/generators/client/gui/GuiReactorStats.java +++ b/src/main/java/mekanism/generators/client/gui/GuiReactorStats.java @@ -16,6 +16,8 @@ import mekanism.common.inventory.container.ContainerNull; import mekanism.common.util.LangUtils; import mekanism.common.util.MekanismUtils; import mekanism.common.util.MekanismUtils.ResourceType; +import mekanism.generators.client.gui.element.GuiFuelTab; +import mekanism.generators.client.gui.element.GuiHeatTab; import mekanism.generators.common.MekanismGenerators; import mekanism.generators.common.network.PacketGeneratorsGui.GeneratorsGuiMessage; import mekanism.generators.common.tile.reactor.TileEntityReactorController; diff --git a/src/main/java/mekanism/generators/client/gui/GuiTurbineStats.java b/src/main/java/mekanism/generators/client/gui/GuiTurbineStats.java new file mode 100644 index 000000000..4dd413f67 --- /dev/null +++ b/src/main/java/mekanism/generators/client/gui/GuiTurbineStats.java @@ -0,0 +1,80 @@ +package mekanism.generators.client.gui; + +import mekanism.api.EnumColor; +import mekanism.client.gui.GuiMekanism; +import mekanism.common.inventory.container.ContainerNull; +import mekanism.common.util.LangUtils; +import mekanism.common.util.MekanismUtils; +import mekanism.common.util.MekanismUtils.ResourceType; +import mekanism.generators.client.gui.element.GuiTurbineTab; +import mekanism.generators.client.gui.element.GuiTurbineTab.TurbineTab; +import mekanism.generators.common.tile.turbine.TileEntityTurbineCasing; +import net.minecraft.entity.player.InventoryPlayer; + +import org.lwjgl.opengl.GL11; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +@SideOnly(Side.CLIENT) +public class GuiTurbineStats extends GuiMekanism +{ + public TileEntityTurbineCasing tileEntity; + + public GuiTurbineStats(InventoryPlayer inventory, TileEntityTurbineCasing tentity) + { + super(tentity, new ContainerNull(inventory.player, tentity)); + tileEntity = tentity; + guiElements.add(new GuiTurbineTab(this, tileEntity, TurbineTab.MAIN, 6, MekanismUtils.getResource(ResourceType.GUI, "GuiNull.png"))); + } + + @Override + protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) + { + int xAxis = (mouseX - (width - xSize) / 2); + int yAxis = (mouseY - (height - ySize) / 2); + + String stats = LangUtils.localize("gui.matrixStats"); + String limiting = EnumColor.DARK_RED + " (" + LangUtils.localize("gui.limiting") + ")"; + + fontRendererObj.drawString(stats, (xSize/2)-(fontRendererObj.getStringWidth(stats)/2), 6, 0x404040); + + fontRendererObj.drawString(LangUtils.localize("gui.tankVolume") + ": " + tileEntity.structure.lowerVolume, 8, 26, 0x404040); + + boolean dispersersLimiting = tileEntity.structure.clientDispersers*TileEntityTurbineCasing.DISPERSER_GAS_FLOW < + tileEntity.structure.vents*TileEntityTurbineCasing.VENT_GAS_FLOW; + boolean ventsLimiting = tileEntity.structure.clientDispersers*TileEntityTurbineCasing.DISPERSER_GAS_FLOW > + tileEntity.structure.vents*TileEntityTurbineCasing.VENT_GAS_FLOW; + + fontRendererObj.drawString(LangUtils.localize("gui.steamFlow"), 8, 40, 0x797979); + fontRendererObj.drawString(LangUtils.localize("gui.dispersers") + ": " + tileEntity.structure.clientDispersers + (dispersersLimiting ? limiting : ""), 14, 49, 0x404040); + fontRendererObj.drawString(LangUtils.localize("gui.vents") + ": " + tileEntity.structure.vents + (ventsLimiting ? limiting : ""), 8, 58, 0x404040); + + boolean bladesLimiting = tileEntity.structure.coils*4 > tileEntity.structure.blades; + boolean coilsLimiting = tileEntity.structure.coils*4 < tileEntity.structure.blades; + + fontRendererObj.drawString(LangUtils.localize("gui.generation"), 8, 72, 0x797979); + fontRendererObj.drawString(LangUtils.localize("gui.blades") + ": " + tileEntity.structure.blades + (bladesLimiting ? limiting : ""), 14, 81, 0x404040); + fontRendererObj.drawString(LangUtils.localize("gui.coils") + ": " + tileEntity.structure.coils + (bladesLimiting ? limiting : ""), 8, 90, 0x404040); + + double energyMultiplier = TileEntityTurbineCasing.ENERGY_PER_STEAM*Math.min(tileEntity.structure.blades, tileEntity.structure.coils*TileEntityTurbineCasing.BLADE_TO_COIL_RATIO); + double rate = tileEntity.structure.lowerVolume*(tileEntity.structure.clientDispersers*TileEntityTurbineCasing.DISPERSER_GAS_FLOW); + rate = Math.min(rate, tileEntity.structure.vents*TileEntityTurbineCasing.VENT_GAS_FLOW); + + fontRendererObj.drawString(LangUtils.localize("gui.maxProduction") + ": " + MekanismUtils.getEnergyDisplay(rate*energyMultiplier), 8, 104, 0x404040); + + super.drawGuiContainerForegroundLayer(mouseX, mouseY); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float partialTick, int mouseX, int mouseY) + { + mc.renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.GUI, "GuiNull.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/generators/client/gui/GuiFuelTab.java b/src/main/java/mekanism/generators/client/gui/element/GuiFuelTab.java similarity index 97% rename from src/main/java/mekanism/generators/client/gui/GuiFuelTab.java rename to src/main/java/mekanism/generators/client/gui/element/GuiFuelTab.java index c346d5891..68d663b5f 100644 --- a/src/main/java/mekanism/generators/client/gui/GuiFuelTab.java +++ b/src/main/java/mekanism/generators/client/gui/element/GuiFuelTab.java @@ -1,4 +1,4 @@ -package mekanism.generators.client.gui; +package mekanism.generators.client.gui.element; import mekanism.api.Coord4D; import mekanism.client.gui.IGuiWrapper; diff --git a/src/main/java/mekanism/generators/client/gui/GuiHeatTab.java b/src/main/java/mekanism/generators/client/gui/element/GuiHeatTab.java similarity index 97% rename from src/main/java/mekanism/generators/client/gui/GuiHeatTab.java rename to src/main/java/mekanism/generators/client/gui/element/GuiHeatTab.java index de136a874..5f926664b 100644 --- a/src/main/java/mekanism/generators/client/gui/GuiHeatTab.java +++ b/src/main/java/mekanism/generators/client/gui/element/GuiHeatTab.java @@ -1,4 +1,4 @@ -package mekanism.generators.client.gui; +package mekanism.generators.client.gui.element; import mekanism.api.Coord4D; import mekanism.client.gui.IGuiWrapper; diff --git a/src/main/java/mekanism/generators/client/gui/GuiStatTab.java b/src/main/java/mekanism/generators/client/gui/element/GuiStatTab.java similarity index 97% rename from src/main/java/mekanism/generators/client/gui/GuiStatTab.java rename to src/main/java/mekanism/generators/client/gui/element/GuiStatTab.java index db1cc9308..87e268ee5 100644 --- a/src/main/java/mekanism/generators/client/gui/GuiStatTab.java +++ b/src/main/java/mekanism/generators/client/gui/element/GuiStatTab.java @@ -1,4 +1,4 @@ -package mekanism.generators.client.gui; +package mekanism.generators.client.gui.element; import mekanism.api.Coord4D; import mekanism.client.gui.IGuiWrapper; diff --git a/src/main/java/mekanism/generators/client/gui/element/GuiTurbineTab.java b/src/main/java/mekanism/generators/client/gui/element/GuiTurbineTab.java new file mode 100644 index 000000000..392d5628e --- /dev/null +++ b/src/main/java/mekanism/generators/client/gui/element/GuiTurbineTab.java @@ -0,0 +1,118 @@ +package mekanism.generators.client.gui.element; + +import mekanism.api.Coord4D; +import mekanism.client.gui.IGuiWrapper; +import mekanism.client.gui.element.GuiElement; +import mekanism.client.sound.SoundHandler; +import mekanism.common.Mekanism; +import mekanism.common.network.PacketSimpleGui.SimpleGuiMessage; +import mekanism.common.util.LangUtils; +import mekanism.common.util.MekanismUtils; +import mekanism.common.util.MekanismUtils.ResourceType; +import net.minecraft.tileentity.TileEntity; +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 GuiTurbineTab extends GuiElement +{ + private TileEntity tileEntity; + private TurbineTab tabType; + private int yPos; + + public GuiTurbineTab(IGuiWrapper gui, TileEntity tile, TurbineTab type, int y, ResourceLocation def) + { + super(type.getResource(), gui, def); + + tileEntity = tile; + tabType = type; + yPos = y; + } + + @Override + public Rectangle4i getBounds(int guiWidth, int guiHeight) + { + return new Rectangle4i(guiWidth - 26, guiHeight + yPos, 26, 26); + } + + @Override + public void renderBackground(int xAxis, int yAxis, int guiWidth, int guiHeight) + { + mc.renderEngine.bindTexture(RESOURCE); + + guiObj.drawTexturedRect(guiWidth - 26, guiHeight + yPos, 0, 0, 26, 26); + + if(xAxis >= -21 && xAxis <= -3 && yAxis >= yPos+4 && yAxis <= yPos+22) + { + guiObj.drawTexturedRect(guiWidth - 21, guiHeight + yPos+4, 26, 0, 18, 18); + } + else { + guiObj.drawTexturedRect(guiWidth - 21, guiHeight + yPos+4, 26, 18, 18, 18); + } + + mc.renderEngine.bindTexture(defaultLocation); + } + + @Override + public void renderForeground(int xAxis, int yAxis) + { + mc.renderEngine.bindTexture(RESOURCE); + + if(xAxis >= -21 && xAxis <= -3 && yAxis >= yPos+4 && yAxis <= yPos+22) + { + displayTooltip(tabType.getDesc(), 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) + { + if(button == 0) + { + if(xAxis >= -21 && xAxis <= -3 && yAxis >= yPos+4 && yAxis <= yPos+22) + { + tabType.openGui(tileEntity); + SoundHandler.playSound("gui.button.press"); + } + } + } + + public static enum TurbineTab + { + MAIN("GuiGasesTab.png", 6, "gui.main"), + STAT("GuiStatsTab.png", 7, "gui.stats"); + + private String path; + private int guiId; + private String desc; + + private TurbineTab(String s, int id, String s1) + { + path = s; + guiId = id; + desc = s1; + } + + public ResourceLocation getResource() + { + return MekanismUtils.getResource(ResourceType.GUI_ELEMENT, path); + } + + public void openGui(TileEntity tile) + { + Mekanism.packetHandler.sendToServer(new SimpleGuiMessage(Coord4D.get(tile), 1, guiId)); + } + + public String getDesc() + { + return LangUtils.localize(desc); + } + } +} \ No newline at end of file diff --git a/src/main/java/mekanism/generators/common/GeneratorsCommonProxy.java b/src/main/java/mekanism/generators/common/GeneratorsCommonProxy.java index 2e0756e8e..a85973901 100644 --- a/src/main/java/mekanism/generators/common/GeneratorsCommonProxy.java +++ b/src/main/java/mekanism/generators/common/GeneratorsCommonProxy.java @@ -2,7 +2,7 @@ package mekanism.generators.common; import mekanism.api.MekanismConfig.generators; import mekanism.common.Mekanism; -import mekanism.common.inventory.container.ContainerFilter; +import mekanism.common.base.IGuiProvider; import mekanism.common.inventory.container.ContainerNull; import mekanism.common.tile.TileEntityContainerBlock; import mekanism.generators.common.inventory.container.ContainerBioGenerator; @@ -44,7 +44,7 @@ import cpw.mods.fml.common.registry.GameRegistry; * @author AidanBrady * */ -public class GeneratorsCommonProxy +public class GeneratorsCommonProxy implements IGuiProvider { public static int GENERATOR_RENDER_ID = RenderingRegistry.getNextAvailableRenderId(); @@ -132,31 +132,13 @@ public class GeneratorsCommonProxy generators.windGenerationMaxY = Math.max(minY + 1, maxY); } - /** - * Get the actual interface for a GUI. Client-only. - * @param ID - gui ID - * @param player - player that opened the GUI - * @param world - world the GUI was opened in - * @param x - gui's x position - * @param y - gui's y position - * @param z - gui's z position - * @return the GuiScreen of the GUI - */ + @Override public Object getClientGui(int ID, EntityPlayer player, World world, int x, int y, int z) { return null; } - /** - * Get the container for a GUI. Common. - * @param ID - gui ID - * @param player - player that opened the GUI - * @param world - world the GUI was opened in - * @param x - gui's x position - * @param y - gui's y position - * @param z - gui's z position - * @return the Container of the GUI - */ + @Override public Container getServerGui(int ID, EntityPlayer player, World world, int x, int y, int z) { TileEntity tileEntity = world.getTileEntity(x, y, z); @@ -174,7 +156,8 @@ public class GeneratorsCommonProxy case 5: return new ContainerWindGenerator(player.inventory, (TileEntityWindGenerator)tileEntity); case 6: - return new ContainerFilter(player.inventory, (TileEntityTurbineCasing)tileEntity); + case 7: + return new ContainerNull(player, (TileEntityTurbineCasing)tileEntity); case 10: return new ContainerReactorController(player.inventory, (TileEntityReactorController)tileEntity); case 11: diff --git a/src/main/java/mekanism/generators/common/MekanismGenerators.java b/src/main/java/mekanism/generators/common/MekanismGenerators.java index 4dd72ec76..d7c4f2d1a 100644 --- a/src/main/java/mekanism/generators/common/MekanismGenerators.java +++ b/src/main/java/mekanism/generators/common/MekanismGenerators.java @@ -17,6 +17,7 @@ import mekanism.common.Tier.BaseTier; import mekanism.common.Version; import mekanism.common.base.IModule; import mekanism.common.multiblock.MultiblockManager; +import mekanism.common.network.PacketSimpleGui; import mekanism.common.recipe.RecipeHandler; import mekanism.common.recipe.ShapedMekanismRecipe; import mekanism.common.util.MekanismUtils; @@ -73,6 +74,9 @@ public class MekanismGenerators implements IModule packetHandler.initialize(); + //Register this module's GUI handler in the simple packet protocol + PacketSimpleGui.handlers.add(1, proxy); + //Set up the GUI handler NetworkRegistry.INSTANCE.registerGuiHandler(this, new GeneratorsGuiHandler()); FMLCommonHandler.instance().bus().register(this); diff --git a/src/main/java/mekanism/generators/common/content/turbine/SynchronizedTurbineData.java b/src/main/java/mekanism/generators/common/content/turbine/SynchronizedTurbineData.java index e6f7a4ba3..85d905842 100644 --- a/src/main/java/mekanism/generators/common/content/turbine/SynchronizedTurbineData.java +++ b/src/main/java/mekanism/generators/common/content/turbine/SynchronizedTurbineData.java @@ -1,5 +1,6 @@ package mekanism.generators.common.content.turbine; +import mekanism.api.Coord4D; import mekanism.common.multiblock.SynchronizedData; import net.minecraftforge.fluids.FluidStack; @@ -17,6 +18,18 @@ public class SynchronizedTurbineData extends SynchronizedData implements IStrictEnergyStorage { + public static final double DISPERSER_GAS_FLOW = 640; + public static final double VENT_GAS_FLOW = 16000; + public static final double ENERGY_PER_STEAM = 10; + public static final double BLADE_TO_COIL_RATIO = 4; + public float prevScale; public TileEntityTurbineCasing() @@ -58,6 +64,8 @@ public class TileEntityTurbineCasing extends TileEntityMultiblock 0 && structure.electricityStored < structure.getEnergyCapacity()) + { + double energyMultiplier = ENERGY_PER_STEAM*Math.min(structure.blades, structure.coils*BLADE_TO_COIL_RATIO); + double rate = structure.lowerVolume*(structure.getDispersers()*DISPERSER_GAS_FLOW)*proportion; + double origRate = rate; + + rate = Math.min(Math.min(stored, rate), structure.vents*VENT_GAS_FLOW); + rate = Math.min(rate, (getMaxEnergy()-getEnergy())/energyMultiplier); + + flowRate = proportion*(rate/origRate); + setEnergy(getEnergy()+((int)rate)*energyMultiplier); + + structure.fluidStored.amount -= rate; + structure.clientFlow = (int)rate; + + if(structure.fluidStored.amount == 0) + { + structure.fluidStored = null; + } + } + else { + structure.clientFlow = 0; + } + + TileEntity tile = structure.complex.getTileEntity(worldObj); + + if(tile instanceof TileEntityRotationalComplex) + { + ((TileEntityRotationalComplex)tile).setRotation((float)flowRate); + } + if(structure.needsRenderUpdate()) { sendPacketToRenderer(); @@ -83,7 +126,7 @@ public class TileEntityTurbineCasing extends TileEntityMultiblockYyRBcVhlGaI=lsS(Lc>`<{0 z?TN`WqA0gSvB|Z>pxlOB24^|X+0V1j`E)*>59iZ**ZbkOez*UBo=LQ|IVvV1D*^z3 zn8h(uI{*OTBM6{`;D=jCkq-bM#QaT6Y%NSo2(}>?eEiR!0|5QhR7ZC|IY+D!JJeTs zN2~q$eQ{w$#$r3gGEVM$P+1+_*QXmqx6tiT8uMQG(R%l7tG*6<^#R$;HcD&!9=84^ zi%L+P-_mPTsc}bSXHO?V)u?hY#&#^ZU?S^~PL_XldH=Z|QFHgFadYD=u+}ebF0ih!EsJ3kJ9Wlw zW$*r-qeCa^Eg#=vm}$K9JkEHXQ+v6dwcllS_7H-bSnZlU(-5)}XrDVfIx@aLyXk6# zsbKj<#IXfR2;;zaUewrJESWFKkR7pzR=<@m z?yB*{J+NS`%~BMv*QsEMn^>mVG1pBil0&Gar-YuINJ%C45Ua)~mQK8G#YZus;&h+T zqB&v}!bsJ-n(;Lv*3O$Gyj4j;1GsL#M=|0;+Sn58)+CPyKKN~;T!Yzzm02ydoL9Hk z8XG-gmY%m(?(vQ{`W5$7R&b*j*KuyR-{Ef&%*YJ*A< zNe0#n8FEjhyr-7CkDoU?ZJ_sQ^+k$~UBNxGz5|tPrsulO9xFHdu3|OuKdvh`?Os8; z*9hKtl)LfN^iKRSy!C#yQ|pq)(u6>JVXq+Ix54PIPBW~K2A5{`Q>(hk^Uk5+jBqH2ytp_7*8u z^`ki}qFj#g%;bvt@Qq43z1!T6)Srv(dD>empMER~J=pnka^dB&_LXa^ zoxIQWp~a&_>NCAV_g@Z7g?%z2tv>;LQ=>s9Bg)a%bL|2Ei0E0E9(K3_e(yVMx9tEH zu)Ui-FPDUM71!Q-q3E4h!rqkwC`(n30Cg_mu@x$jV@RwDoiqZ$e&a?W(J*yE9;8;4743$flZc|I|@4f@o9-Gw7$J$tGPvYhIlm z-sZtoC%KACQ+17N+SEMpOd@y&T>RO~8gE};UVhfI5G|Xh_4{c&ScAgo-zPZ(k?vpH z`CT%~vL4%L%@7XM@%5PGA+c0`AwX@0hKSr_ngcJR75uC5dR;3kE6Mjdw4|P*gH!BQ zbvm$A$-DvCVwHmdRW&uK*&5X?@V6shL70;FKV4oVzbQk%r@Pe%%Socpq|#)A?0Q)* z(=Wd$-#o=t^87ZLY*<5uZmwa0o2Ljbkd30s3tEUgcdD0CBPXEkT9#@f82JovJ^DTEiWm~6P4i~Tou zQBGsMZw!BDy+jA+WRNACRWUeVFCXoANm(-ij_I)Exom`uA`{3t@=;4zR0-1$iAu)! z@4{`k6NO~9kf(Gu+F%KX0n0y)j%}A&(;&Hq%L0_JWW1D8NP@ZC4d!D0xm23(ekBeFT%gpC)8nU)B7kPTe& zMKXi(&q>0^dDH7ig3E)cXIJp4XYkBieIgk4fF1Rd?r1<)1j$WZ3a4Y)0TqgIV9>h)99gbS)kNkSfDsxyJkz)H;B z(Qme-!7tmLxD*1gxuHAuElof#qSlu*L#5nI^ z0%~_U(zpmngp07iLbQj_W;~d=-Pst*RKk46dV82U0O})Z`_nRny;^E*x;<#|5xcuEX z0{SfE;HM>Wp~B0FJXl@>nknW_Er0652gFXKZyb&BOIOBnWuA zeq%qiCN>-rhF49j1zwv5TV0kpZ9{kf?*vWWkzHkY{pYCX>&$Q{U!)sZ#QaycN}34>Or;-HQ3?I?7nBF5o)=`%;u zHWnMtUX27@0yo0mkUew(inO!Ni8h*8tk3rgl$bVU#zp3$uyyl%e~OZ=LC5EkAuf!}mV~$wpPAMFW8RBC$>UFUBYasx!osBAj#FlikOWk7V`U`57X9 zm52>Smtk!5ARUw{pyPc)6oC^_1<*rb%9=4G*xEnOXM0U9g>^SH9G!cFYMvAp73 z1E&e_Y=^uEIs5E|!MyH9ZVmP{uYCGR7C?+#mXv|z${5fJ$V@X5=-1wn$sL57Gbp@| z0uf<`$+;Ya5Uf~;%;ZV=N!S7|eEv?&=kOR^fvg#%WGeJNuTX@o@z(0&Q zLyE8{?3!pUsYB(x5)-H#<5_wJ!^NFOWE;_Na8zbw4=4s5+qP-Cvsa%T^=T&YXnT*+ z;3F)paq+cdL1^IKaYU_NCJR`nT_f1M?8Q12hGq62LJ#7 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/mekanism/gui/GuiMatrixStats.png b/src/main/resources/assets/mekanism/gui/GuiNull.png similarity index 100% rename from src/main/resources/assets/mekanism/gui/GuiMatrixStats.png rename to src/main/resources/assets/mekanism/gui/GuiNull.png diff --git a/src/main/resources/assets/mekanism/lang/en_US.lang b/src/main/resources/assets/mekanism/lang/en_US.lang index 5365c1287..62b58e3f6 100644 --- a/src/main/resources/assets/mekanism/lang/en_US.lang +++ b/src/main/resources/assets/mekanism/lang/en_US.lang @@ -440,6 +440,7 @@ gui.formed=Formed gui.incomplete=Incomplete gui.inductionMatrix=Induction Matrix gui.matrixStats=Matrix Statistics +gui.turbineStats=Turbine Statistics gui.main=Main gui.outputting=Outputting gui.receiving=Receiving @@ -483,6 +484,18 @@ gui.redstoneOutputMode=Redstone mode gui.entityDetection=Entity Detection gui.moveUp=Move Up gui.moveDown=Move Down +gui.flowRate=Flow rate +gui.maxFlow=Max flow +gui.tankVolume=Tank volume +gui.steamFlow=Steam Flow +gui.production=Production +gui.blades=Blades +gui.coils=Coils +gui.dispersers=Dispersers +gui.vents=Vents +gui.maxProduction=Max Production +gui.limiting=Limiting +gui.steamInput=Steam Input gui.reactor.injectionRate=Injection Rate