From 6f9e13a798ab9b627b0e8eb56d6b5e9ba6aecb96 Mon Sep 17 00:00:00 2001 From: Ben Spiers Date: Tue, 5 Aug 2014 02:43:03 +0100 Subject: [PATCH] Add passive and steam generation Stats to reactor. --- .../mekanism/api/reactor/IFusionReactor.java | 4 +++ .../client/gui/GuiReactorController.java | 28 +++++++++++-------- .../generators/client/gui/GuiReactorFuel.java | 4 +-- .../generators/client/gui/GuiReactorHeat.java | 9 +++--- .../client/gui/GuiReactorStats.java | 18 +++++++----- .../generators/common/FusionReactor.java | 14 ++++++++++ .../resources/assets/mekanism/lang/en_US.lang | 2 ++ 7 files changed, 54 insertions(+), 25 deletions(-) diff --git a/src/main/java/mekanism/api/reactor/IFusionReactor.java b/src/main/java/mekanism/api/reactor/IFusionReactor.java index f27168d4a..78c05c64a 100644 --- a/src/main/java/mekanism/api/reactor/IFusionReactor.java +++ b/src/main/java/mekanism/api/reactor/IFusionReactor.java @@ -53,4 +53,8 @@ public interface IFusionReactor public double getMaxCasingTemperature(boolean active); public double getIgnitionTemperature(boolean active); + + public double getPassiveGeneration(boolean active, boolean current); + + public int getSteamPerTick(boolean current); } diff --git a/src/main/java/mekanism/generators/client/gui/GuiReactorController.java b/src/main/java/mekanism/generators/client/gui/GuiReactorController.java index d21ea028d..1026cd2f0 100644 --- a/src/main/java/mekanism/generators/client/gui/GuiReactorController.java +++ b/src/main/java/mekanism/generators/client/gui/GuiReactorController.java @@ -1,5 +1,6 @@ package mekanism.generators.client.gui; +import java.util.ArrayList; import java.util.List; import mekanism.api.util.ListUtils; @@ -27,20 +28,23 @@ public class GuiReactorController extends GuiMekanism { super(new ContainerReactorController(inventory, tentity)); tileEntity = tentity; - guiElements.add(new GuiEnergyInfo(new IInfoHandler() + if(tileEntity.isFormed()) { - @Override - public List getInfo() + guiElements.add(new GuiEnergyInfo(new IInfoHandler() { - return ListUtils.asList( - "Storing: " + MekanismUtils.getEnergyDisplay(tileEntity.getEnergy()), - "Max Output: " + MekanismUtils.getEnergyDisplay(tileEntity.getMaxOutput()) + "/t"); - } - }, this, MekanismUtils.getResource(ResourceType.GUI, "GuiBlank.png"))); - guiElements.add(new GuiSlot(SlotType.NORMAL, this, MekanismUtils.getResource(ResourceType.GUI, "GuiBlank.png"), 79, 38)); - guiElements.add(new GuiHeatTab(this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiBlank.png"))); - guiElements.add(new GuiFuelTab(this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiBlank.png"))); - guiElements.add(new GuiStatTab(this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiBlank.png"))); + @Override + public List getInfo() + { + return tileEntity.isFormed() ? ListUtils.asList( + "Storing: " + MekanismUtils.getEnergyDisplay(tileEntity.getEnergy()), + "Producing: " + MekanismUtils.getEnergyDisplay(tileEntity.getReactor().getPassiveGeneration(false, true)) + "/t") : new ArrayList(); + } + }, this, MekanismUtils.getResource(ResourceType.GUI, "GuiBlank.png"))); + guiElements.add(new GuiSlot(SlotType.NORMAL, this, MekanismUtils.getResource(ResourceType.GUI, "GuiBlank.png"), 79, 38)); + guiElements.add(new GuiHeatTab(this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiBlank.png"))); + guiElements.add(new GuiFuelTab(this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiBlank.png"))); + guiElements.add(new GuiStatTab(this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiBlank.png"))); + } } @Override diff --git a/src/main/java/mekanism/generators/client/gui/GuiReactorFuel.java b/src/main/java/mekanism/generators/client/gui/GuiReactorFuel.java index 61f834855..18c7c4043 100644 --- a/src/main/java/mekanism/generators/client/gui/GuiReactorFuel.java +++ b/src/main/java/mekanism/generators/client/gui/GuiReactorFuel.java @@ -51,9 +51,9 @@ public class GuiReactorFuel extends GuiMekanism @Override public List getInfo() { - return ListUtils.asList( + return tileEntity.isFormed() ? ListUtils.asList( "Storing: " + MekanismUtils.getEnergyDisplay(tileEntity.getEnergy()), - "Max Output: " + MekanismUtils.getEnergyDisplay(tileEntity.getMaxOutput()) + "/t"); + "Producing: " + MekanismUtils.getEnergyDisplay(tileEntity.getReactor().getPassiveGeneration(false, true)) + "/t") : new ArrayList(); } }, this, MekanismUtils.getResource(ResourceType.GUI, "GuiTall.png"))); guiElements.add(new GuiGasGauge(new IGasInfoHandler() diff --git a/src/main/java/mekanism/generators/client/gui/GuiReactorHeat.java b/src/main/java/mekanism/generators/client/gui/GuiReactorHeat.java index 37064ca5b..9e4b310a8 100644 --- a/src/main/java/mekanism/generators/client/gui/GuiReactorHeat.java +++ b/src/main/java/mekanism/generators/client/gui/GuiReactorHeat.java @@ -1,5 +1,6 @@ package mekanism.generators.client.gui; +import java.util.ArrayList; import java.util.List; import mekanism.api.Coord4D; @@ -48,9 +49,9 @@ public class GuiReactorHeat extends GuiMekanism @Override public List getInfo() { - return ListUtils.asList( + return tileEntity.isFormed() ? ListUtils.asList( "Storing: " + MekanismUtils.getEnergyDisplay(tileEntity.getEnergy()), - "Max Output: " + MekanismUtils.getEnergyDisplay(tileEntity.getMaxOutput()) + "/t"); + "Producing: " + MekanismUtils.getEnergyDisplay(tileEntity.getReactor().getPassiveGeneration(false, true)) + "/t") : new ArrayList(); } }, this, MekanismUtils.getResource(ResourceType.GUI, "GuiTall.png"))); guiElements.add(new GuiNumberGauge(new INumberInfoHandler() @@ -76,7 +77,7 @@ public class GuiReactorHeat extends GuiMekanism @Override public String getText(double level) { - return "Plasma: " + (int)(level+23) + "C"; + return "Plasma: " + (int)level + "C"; } }, Type.STANDARD, this, MekanismUtils.getResource(ResourceType.GUI, "GuiTall.png"), 7, 50)); guiElements.add(new GuiProgress(new IProgressInfoHandler() @@ -110,7 +111,7 @@ public class GuiReactorHeat extends GuiMekanism @Override public String getText(double level) { - return "Case: " + (int)(level+23) + "C"; + return "Case: " + (int)level + "C"; } }, Type.STANDARD, this, MekanismUtils.getResource(ResourceType.GUI, "GuiTall.png"), 61, 50)); guiElements.add(new GuiProgress(new IProgressInfoHandler() diff --git a/src/main/java/mekanism/generators/client/gui/GuiReactorStats.java b/src/main/java/mekanism/generators/client/gui/GuiReactorStats.java index 8f814413a..7e9378624 100644 --- a/src/main/java/mekanism/generators/client/gui/GuiReactorStats.java +++ b/src/main/java/mekanism/generators/client/gui/GuiReactorStats.java @@ -1,6 +1,7 @@ package mekanism.generators.client.gui; import java.text.NumberFormat; +import java.util.ArrayList; import java.util.List; import mekanism.api.Coord4D; @@ -37,9 +38,9 @@ public class GuiReactorStats extends GuiMekanism @Override public List getInfo() { - return ListUtils.asList( + return tileEntity.isFormed() ? ListUtils.asList( "Storing: " + MekanismUtils.getEnergyDisplay(tileEntity.getEnergy()), - "Max Output: " + MekanismUtils.getEnergyDisplay(tileEntity.getMaxOutput()) + "/t"); + "Producing: " + MekanismUtils.getEnergyDisplay(tileEntity.getReactor().getPassiveGeneration(false, true)) + "/t") : new ArrayList(); } }, this, MekanismUtils.getResource(ResourceType.GUI, "GuiTall.png"))); guiElements.add(new GuiHeatTab(this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiTall.png"))); @@ -59,12 +60,15 @@ public class GuiReactorStats extends GuiMekanism fontRendererObj.drawString(MekanismUtils.localize("gui.ignition") + ": " + (nf.format(tileEntity.getReactor().getIgnitionTemperature(false))), 16, 46, 0x404040); fontRendererObj.drawString(MekanismUtils.localize("gui.maxPlasma") + ": " + (nf.format(tileEntity.getReactor().getMaxPlasmaTemperature(false))), 16, 56, 0x404040); fontRendererObj.drawString(MekanismUtils.localize("gui.maxCasing") + ": " + (nf.format(tileEntity.getReactor().getMaxCasingTemperature(false))), 16, 66, 0x404040); + fontRendererObj.drawString(MekanismUtils.localize("gui.passiveGeneration") + ": " + MekanismUtils.getEnergyDisplay(tileEntity.getReactor().getPassiveGeneration(false, false))+"/t", 16, 76, 0x404040); - fontRendererObj.drawString(MekanismUtils.localize("gui.active"), 6, 86, 0x404040); - fontRendererObj.drawString(MekanismUtils.localize("gui.minInject") + ": " + (tileEntity.getReactor().getMinInjectionRate(true)), 16, 96, 0x404040); - fontRendererObj.drawString(MekanismUtils.localize("gui.ignition") + ": " + (nf.format(tileEntity.getReactor().getIgnitionTemperature(true))), 16, 106, 0x404040); - fontRendererObj.drawString(MekanismUtils.localize("gui.maxPlasma") + ": " + (nf.format(tileEntity.getReactor().getMaxPlasmaTemperature(true))), 16, 116, 0x404040); - fontRendererObj.drawString(MekanismUtils.localize("gui.maxCasing") + ": " + (nf.format(tileEntity.getReactor().getMaxCasingTemperature(true))), 16, 126, 0x404040); + fontRendererObj.drawString(MekanismUtils.localize("gui.active"), 6, 96, 0x404040); + fontRendererObj.drawString(MekanismUtils.localize("gui.minInject") + ": " + (tileEntity.getReactor().getMinInjectionRate(true)), 16, 106, 0x404040); + fontRendererObj.drawString(MekanismUtils.localize("gui.ignition") + ": " + (nf.format(tileEntity.getReactor().getIgnitionTemperature(true))), 16, 116, 0x404040); + fontRendererObj.drawString(MekanismUtils.localize("gui.maxPlasma") + ": " + (nf.format(tileEntity.getReactor().getMaxPlasmaTemperature(true))), 16, 126, 0x404040); + fontRendererObj.drawString(MekanismUtils.localize("gui.maxCasing") + ": " + (nf.format(tileEntity.getReactor().getMaxCasingTemperature(true))), 16, 136, 0x404040); + fontRendererObj.drawString(MekanismUtils.localize("gui.passiveGeneration") + ": " + MekanismUtils.getEnergyDisplay(tileEntity.getReactor().getPassiveGeneration(true, false))+"/t", 16, 146, 0x404040); + fontRendererObj.drawString(MekanismUtils.localize("gui.steamProduction") + ": " + nf.format(tileEntity.getReactor().getSteamPerTick(false)) + "mB/t", 16, 156, 0x404040); } } diff --git a/src/main/java/mekanism/generators/common/FusionReactor.java b/src/main/java/mekanism/generators/common/FusionReactor.java index 7f70f7b39..423bb9b56 100644 --- a/src/main/java/mekanism/generators/common/FusionReactor.java +++ b/src/main/java/mekanism/generators/common/FusionReactor.java @@ -494,4 +494,18 @@ public class FusionReactor implements IFusionReactor double k = active ? caseWaterConductivity : 0; return burnTemperature * energyPerFuel * burnRatio * (plasmaCaseConductivity+k+caseAirConductivity) / (energyPerFuel * burnRatio * (plasmaCaseConductivity+k+caseAirConductivity) - plasmaCaseConductivity * (k + caseAirConductivity)); } + + public double getPassiveGeneration(boolean active, boolean current) + { + double temperature = current ? caseTemperature : getMaxCasingTemperature(active); + + return thermocoupleEfficiency * caseAirConductivity * temperature; + } + + public int getSteamPerTick(boolean current) + { + double temperature = current ? caseTemperature : getMaxCasingTemperature(true); + + return (int)(steamTransferEfficiency * caseWaterConductivity * temperature / enthalpyOfVaporization); + } } diff --git a/src/main/resources/assets/mekanism/lang/en_US.lang b/src/main/resources/assets/mekanism/lang/en_US.lang index 3eca7f28f..2a40c5272 100644 --- a/src/main/resources/assets/mekanism/lang/en_US.lang +++ b/src/main/resources/assets/mekanism/lang/en_US.lang @@ -688,6 +688,8 @@ gui.minInject=Min. Inject Rate gui.ignition=Ignition Temp gui.maxPlasma=Max. Plasma Temp gui.maxCasing=Max. Casing Temp +gui.passiveGeneration=Passive Generation +gui.steamProduction=Steam Production //*****// //TOOLS//