Merge pull request #590 from snyke7/patch-2

Fix fuel burning mechanic in EngineIron
This commit is contained in:
SirSengir 2013-01-23 10:25:47 -08:00
commit 5b68af8bee

View file

@ -37,6 +37,7 @@ public class EngineIron extends Engine {
int heat = 0; int heat = 0;
private LiquidTank fuelTank; private LiquidTank fuelTank;
private LiquidTank coolantTank; private LiquidTank coolantTank;
private IronEngineFuel currentFuel = null;
public int penaltyCooling = 0; public int penaltyCooling = 0;
@ -92,7 +93,9 @@ public class EngineIron extends Engine {
public void burn() { public void burn() {
currentOutput = 0; currentOutput = 0;
LiquidStack fuel = this.fuelTank.getLiquid(); LiquidStack fuel = this.fuelTank.getLiquid();
IronEngineFuel currentFuel = IronEngineFuel.getFuelForLiquid(fuel); if(currentFuel == null) {
currentFuel = IronEngineFuel.getFuelForLiquid(fuel);
}
if (currentFuel == null) if (currentFuel == null)
return; return;
@ -104,20 +107,25 @@ public class EngineIron extends Engine {
if (burnTime > 0 || fuel.amount > 0) { if (burnTime > 0 || fuel.amount > 0) {
if (burnTime > 0) { if (burnTime > 0) {
burnTime--; burnTime--;
} else { }
if (--fuel.amount <= 0) { if (burnTime <= 0) {
fuelTank.setLiquid(null); if(fuel != null) {
if (--fuel.amount <= 0) {
fuelTank.setLiquid(null);
}
burnTime = currentFuel.totalBurningTime / LiquidContainerRegistry.BUCKET_VOLUME;
} else {
currentFuel = null;
return;
} }
burnTime = currentFuel.totalBurningTime / LiquidContainerRegistry.BUCKET_VOLUME;
} }
currentOutput = currentFuel.powerPerCycle; currentOutput = currentFuel.powerPerCycle;
addEnergy(currentFuel.powerPerCycle); addEnergy(currentFuel.powerPerCycle);
heat += currentFuel.powerPerCycle; heat += currentFuel.powerPerCycle;
} }
} else if (penaltyCooling <= 0) { } else if (penaltyCooling <= 0) {
if (lastPowered) { if (lastPowered) {
lastPowered = false; lastPowered = false;
penaltyCooling = 30 * 20; penaltyCooling = 30 * 20;
// 30 sec of penalty on top of the cooling // 30 sec of penalty on top of the cooling
} }