Add passive and steam generation Stats to reactor.

This commit is contained in:
Ben Spiers 2014-08-05 02:43:03 +01:00
parent e6957c1561
commit 6f9e13a798
7 changed files with 54 additions and 25 deletions

View file

@ -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);
}

View file

@ -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<String> 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<String> 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

View file

@ -51,9 +51,9 @@ public class GuiReactorFuel extends GuiMekanism
@Override
public List<String> 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()

View file

@ -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<String> 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()

View file

@ -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<String> 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);
}
}

View file

@ -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);
}
}

View file

@ -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//