Remove some legacy config handling, make all turbine values configurable

This commit is contained in:
aidancbrady 2016-01-30 08:46:36 -07:00
parent 345feedf70
commit 7c52d03cb5
5 changed files with 38 additions and 42 deletions

View file

@ -131,6 +131,11 @@ public class MekanismConfig
public static int windGenerationMinY;
public static int windGenerationMaxY;
public static int turbineBladesPerCoil;
public static double turbineBaseEnergyPerSteam;
public static double turbineVentGasFlow;
public static double turbineDisperserGasFlow;
}
public static class tools

View file

@ -1,5 +1,6 @@
package mekanism.generators.client.gui;
import mekanism.api.MekanismConfig.generators;
import mekanism.client.gui.GuiMekanism;
import mekanism.client.gui.element.GuiPowerBar;
import mekanism.client.gui.element.GuiRateBar;
@ -42,8 +43,8 @@ public class GuiIndustrialTurbine extends GuiMekanism
@Override
public double getLevel()
{
double rate = tileEntity.structure.lowerVolume*(tileEntity.structure.clientDispersers*TileEntityTurbineCasing.DISPERSER_GAS_FLOW);
rate = Math.min(rate, tileEntity.structure.vents*TileEntityTurbineCasing.VENT_GAS_FLOW);
double rate = tileEntity.structure.lowerVolume*(tileEntity.structure.clientDispersers*generators.turbineDisperserGasFlow);
rate = Math.min(rate, tileEntity.structure.vents*generators.turbineVentGasFlow);
return (double)tileEntity.structure.lastSteamInput/rate;
}
@ -58,10 +59,10 @@ public class GuiIndustrialTurbine extends GuiMekanism
fontRendererObj.drawString(tileEntity.getInventoryName(), (xSize/2)-(fontRendererObj.getStringWidth(tileEntity.getInventoryName())/2), 5, 0x404040);
double energyMultiplier = TileEntityTurbineCasing.ENERGY_PER_STEAM*Math.min(tileEntity.structure.blades, tileEntity.structure.coils*TileEntityTurbineCasing.BLADE_TO_COIL_RATIO);
double energyMultiplier = generators.turbineBaseEnergyPerSteam*Math.min(tileEntity.structure.blades, tileEntity.structure.coils*generators.turbineBladesPerCoil);
double rate = tileEntity.structure.lowerVolume*(tileEntity.structure.clientDispersers*TileEntityTurbineCasing.DISPERSER_GAS_FLOW);
rate = Math.min(rate, tileEntity.structure.vents*TileEntityTurbineCasing.VENT_GAS_FLOW);
double rate = tileEntity.structure.lowerVolume*(tileEntity.structure.clientDispersers*generators.turbineDisperserGasFlow);
rate = Math.min(rate, tileEntity.structure.vents*generators.turbineVentGasFlow);
renderScaledText(LangUtils.localize("gui.production") + ": " + MekanismUtils.getEnergyDisplay(tileEntity.structure.clientFlow*energyMultiplier), 53, 26, 0x00CD00, 106);
renderScaledText(LangUtils.localize("gui.flowRate") + ": " + tileEntity.structure.clientFlow + " mB/t", 53, 35, 0x00CD00, 106);

View file

@ -1,6 +1,7 @@
package mekanism.generators.client.gui;
import mekanism.api.EnumColor;
import mekanism.api.MekanismConfig.generators;
import mekanism.client.gui.GuiMekanism;
import mekanism.common.inventory.container.ContainerNull;
import mekanism.common.util.LangUtils;
@ -41,10 +42,10 @@ public class GuiTurbineStats extends GuiMekanism
fontRendererObj.drawString(LangUtils.localize("gui.tankVolume") + ": " + tileEntity.structure.lowerVolume, 8, 26, 0x404040);
boolean dispersersLimiting = tileEntity.structure.lowerVolume*tileEntity.structure.clientDispersers*TileEntityTurbineCasing.DISPERSER_GAS_FLOW <
tileEntity.structure.vents*TileEntityTurbineCasing.VENT_GAS_FLOW;
boolean ventsLimiting = tileEntity.structure.lowerVolume*tileEntity.structure.clientDispersers*TileEntityTurbineCasing.DISPERSER_GAS_FLOW >
tileEntity.structure.vents*TileEntityTurbineCasing.VENT_GAS_FLOW;
boolean dispersersLimiting = tileEntity.structure.lowerVolume*tileEntity.structure.clientDispersers*generators.turbineDisperserGasFlow <
tileEntity.structure.vents*generators.turbineVentGasFlow;
boolean ventsLimiting = tileEntity.structure.lowerVolume*tileEntity.structure.clientDispersers*generators.turbineDisperserGasFlow >
tileEntity.structure.vents*generators.turbineVentGasFlow;
fontRendererObj.drawString(LangUtils.localize("gui.steamFlow"), 8, 40, 0x797979);
fontRendererObj.drawString(LangUtils.localize("gui.dispersers") + ": " + tileEntity.structure.clientDispersers + (dispersersLimiting ? limiting : ""), 14, 49, 0x404040);
@ -57,9 +58,9 @@ public class GuiTurbineStats extends GuiMekanism
fontRendererObj.drawString(LangUtils.localize("gui.blades") + ": " + tileEntity.structure.blades + (bladesLimiting ? limiting : ""), 14, 81, 0x404040);
fontRendererObj.drawString(LangUtils.localize("gui.coils") + ": " + tileEntity.structure.coils + (coilsLimiting ? limiting : ""), 14, 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);
double energyMultiplier = generators.turbineBaseEnergyPerSteam*Math.min(tileEntity.structure.blades, tileEntity.structure.coils*generators.turbineBladesPerCoil);
double rate = tileEntity.structure.lowerVolume*(tileEntity.structure.clientDispersers*generators.turbineDisperserGasFlow);
rate = Math.min(rate, tileEntity.structure.vents*generators.turbineVentGasFlow);
fontRendererObj.drawString(LangUtils.localize("gui.maxProduction") + ": " + MekanismUtils.getEnergyDisplay(rate*energyMultiplier), 8, 104, 0x404040);

View file

@ -92,14 +92,19 @@ public class GeneratorsCommonProxy implements IGuiProvider
*/
public void loadConfiguration()
{
generators.advancedSolarGeneration = Mekanism.configuration.get("generation", "AdvancedSolarGeneration", 300D).getDouble(300D);
generators.bioGeneration = Mekanism.configuration.get("generation", "BioGeneration", 350D).getDouble(350D);
generators.heatGeneration = Mekanism.configuration.get("generation", "HeatGeneration", 150D).getDouble(150D);
generators.heatGenerationLava = Mekanism.configuration.get("generation", "HeatGenerationLava", 5D).getDouble(5D);
generators.heatGenerationNether = Mekanism.configuration.get("generation", "HeatGenerationNether", 100D).getDouble(100D);
generators.solarGeneration = Mekanism.configuration.get("generation", "SolarGeneration", 50D).getDouble(50D);
generators.advancedSolarGeneration = Mekanism.configuration.get("generation", "AdvancedSolarGeneration", 300D).getDouble();
generators.bioGeneration = Mekanism.configuration.get("generation", "BioGeneration", 350D).getDouble();
generators.heatGeneration = Mekanism.configuration.get("generation", "HeatGeneration", 150D).getDouble();
generators.heatGenerationLava = Mekanism.configuration.get("generation", "HeatGenerationLava", 5D).getDouble();
generators.heatGenerationNether = Mekanism.configuration.get("generation", "HeatGenerationNether", 100D).getDouble();
generators.solarGeneration = Mekanism.configuration.get("generation", "SolarGeneration", 50D).getDouble();
loadWindConfiguration();
generators.turbineBladesPerCoil = Mekanism.configuration.get("generation", "TurbineBladesPerCoil", 4).getInt();
generators.turbineBaseEnergyPerSteam = Mekanism.configuration.get("generation", "TurbineBaseEnergyPerSteam", 10D).getDouble();
generators.turbineVentGasFlow = Mekanism.configuration.get("generation", "TurbineVentGasFlow", 16000D).getDouble();
generators.turbineDisperserGasFlow = Mekanism.configuration.get("generation", "TurbineDisperserGasFlow", 640D).getDouble();
if(Mekanism.configuration.hasChanged())
{
@ -109,24 +114,12 @@ public class GeneratorsCommonProxy implements IGuiProvider
private void loadWindConfiguration()
{
if(Mekanism.configuration.hasKey("generation", "WindGeneration"))
{
//Migrate the old wind generation config
final double legacyWindGeneration = Mekanism.configuration.get("generation", "WindGeneration", 60D).getDouble(60D);
final double windGenerationMax = legacyWindGeneration * 8D;
Mekanism.configuration.getCategory("generation").remove("WindGeneration");
generators.windGenerationMin = Mekanism.configuration.get("generation", "WindGenerationMin", legacyWindGeneration).getDouble(legacyWindGeneration);
generators.windGenerationMax = Mekanism.configuration.get("generation", "WindGenerationMax", windGenerationMax).getDouble(windGenerationMax);
}
else {
generators.windGenerationMin = Mekanism.configuration.get("generation", "WindGenerationMin", 60D).getDouble(60D);
generators.windGenerationMax = Mekanism.configuration.get("generation", "WindGenerationMax", 480D).getDouble(480D);
}
generators.windGenerationMin = Mekanism.configuration.get("generation", "WindGenerationMin", 60D).getDouble();
generators.windGenerationMax = Mekanism.configuration.get("generation", "WindGenerationMax", 480D).getDouble();
//Ensure max > min to avoid division by zero later
final int minY = Mekanism.configuration.get("generation", "WindGenerationMinY", 24).getInt(24);
final int maxY = Mekanism.configuration.get("generation", "WindGenerationMaxY", 255).getInt(255);
final int minY = Mekanism.configuration.get("generation", "WindGenerationMinY", 24).getInt();
final int maxY = Mekanism.configuration.get("generation", "WindGenerationMaxY", 255).getInt();
generators.windGenerationMinY = minY;
generators.windGenerationMaxY = Math.max(minY + 1, maxY);

View file

@ -5,6 +5,7 @@ import io.netty.buffer.ByteBuf;
import java.util.ArrayList;
import mekanism.api.Coord4D;
import mekanism.api.MekanismConfig.generators;
import mekanism.api.Range4D;
import mekanism.api.energy.IStrictEnergyStorage;
import mekanism.common.Mekanism;
@ -26,11 +27,6 @@ import net.minecraftforge.fluids.FluidStack;
public class TileEntityTurbineCasing extends TileEntityMultiblock<SynchronizedTurbineData> 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()
@ -82,9 +78,9 @@ public class TileEntityTurbineCasing extends TileEntityMultiblock<SynchronizedTu
if(stored > 0 && getEnergy() < 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);
rate = Math.min(rate, structure.vents*VENT_GAS_FLOW);
double energyMultiplier = generators.turbineBaseEnergyPerSteam*Math.min(structure.blades, structure.coils*generators.turbineBladesPerCoil);
double rate = structure.lowerVolume*(structure.getDispersers()*generators.turbineDisperserGasFlow);
rate = Math.min(rate, structure.vents*generators.turbineVentGasFlow);
double origRate = rate;