Fixing turbine switching off.
This commit is contained in:
parent
28d13b27b3
commit
570114be0e
5 changed files with 20 additions and 17 deletions
|
@ -142,23 +142,22 @@ public abstract class GT_MetaTileEntity_LargeTurbine extends GT_MetaTileEntity_M
|
||||||
((GT_MetaGenerated_Tool) aStack.getItem()).getToolStats(aStack).getSpeedMultiplier()
|
((GT_MetaGenerated_Tool) aStack.getItem()).getToolStats(aStack).getSpeedMultiplier()
|
||||||
* ((GT_MetaGenerated_Tool) aStack.getItem()).getPrimaryMaterial(aStack).mToolSpeed
|
* ((GT_MetaGenerated_Tool) aStack.getItem()).getPrimaryMaterial(aStack).mToolSpeed
|
||||||
* 50));
|
* 50));
|
||||||
|
if(optFlow<=0 || baseEff<=0){
|
||||||
|
stopMachine();//in case the turbine got removed
|
||||||
|
return false;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
counter++;
|
counter++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(optFlow<=0 || baseEff<=0){
|
|
||||||
stopMachine();//in case the turbine got removed
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
int newPower = fluidIntoPower(tFluids, optFlow, baseEff); // How much the turbine should be producing with this flow
|
int newPower = fluidIntoPower(tFluids, optFlow, baseEff); // How much the turbine should be producing with this flow
|
||||||
|
|
||||||
int difference = newPower - this.mEUt; // difference between current output and new output
|
int difference = newPower - this.mEUt; // difference between current output and new output
|
||||||
|
|
||||||
// Magic numbers: can always change by at least 10 eu/t, but otherwise by at most 1 percent of the difference in power level (per tick)
|
// Magic numbers: can always change by at least 10 eu/t, but otherwise by at most 1 percent of the difference in power level (per tick)
|
||||||
// This is how much the turbine can actually change during this tick
|
// This is how much the turbine can actually change during this tick
|
||||||
int maxChangeAllowed = Math.max(10, GT_Utility.safeInt((long)Math.ceil(Math.abs(difference) * 0.01)));
|
int maxChangeAllowed = Math.max(10, GT_Utility.safeInt((long)Math.abs(difference)/100));
|
||||||
|
|
||||||
if (Math.abs(difference) > maxChangeAllowed) { // If this difference is too big, use the maximum allowed change
|
if (Math.abs(difference) > maxChangeAllowed) { // If this difference is too big, use the maximum allowed change
|
||||||
int change = maxChangeAllowed * (difference > 0 ? 1 : -1); // Make the change positive or negative.
|
int change = maxChangeAllowed * (difference > 0 ? 1 : -1); // Make the change positive or negative.
|
||||||
|
@ -166,8 +165,10 @@ public abstract class GT_MetaTileEntity_LargeTurbine extends GT_MetaTileEntity_M
|
||||||
} else
|
} else
|
||||||
this.mEUt = newPower;
|
this.mEUt = newPower;
|
||||||
|
|
||||||
if (mEUt <= 0) {
|
if (this.mEUt <= 0) {
|
||||||
stopMachine();
|
//stopMachine();
|
||||||
|
this.mEUt=0;
|
||||||
|
this.mEfficiency=0;
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
this.mMaxProgresstime = 1;
|
this.mMaxProgresstime = 1;
|
||||||
|
|
|
@ -106,7 +106,7 @@ public class GT_MetaTileEntity_LargeTurbine_Gas extends GT_MetaTileEntity_LargeT
|
||||||
totalFlow += flow; // track total input used
|
totalFlow += flow; // track total input used
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(totalFlow<=0)return 0;
|
||||||
tEU = GT_Utility.safeInt((long)totalFlow * fuelValue);
|
tEU = GT_Utility.safeInt((long)totalFlow * fuelValue);
|
||||||
|
|
||||||
if (totalFlow != actualOptimalFlow) {
|
if (totalFlow != actualOptimalFlow) {
|
||||||
|
|
|
@ -96,10 +96,10 @@ public class GT_MetaTileEntity_LargeTurbine_HPSteam extends GT_MetaTileEntity_La
|
||||||
depleteInput(new FluidStack(aFluids.get(i), aFluids.get(i).amount));
|
depleteInput(new FluidStack(aFluids.get(i), aFluids.get(i).amount));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(totalFlow<=0)return 0;
|
||||||
tEU = totalFlow;
|
tEU = totalFlow;
|
||||||
addOutput(GT_ModHandler.getSteam(totalFlow));
|
addOutput(GT_ModHandler.getSteam(totalFlow));
|
||||||
if (totalFlow > 0 && totalFlow != aOptFlow) {
|
if (totalFlow != aOptFlow) {
|
||||||
float efficiency = 1.0f - Math.abs((totalFlow - aOptFlow) / (float)aOptFlow);
|
float efficiency = 1.0f - Math.abs((totalFlow - aOptFlow) / (float)aOptFlow);
|
||||||
//if(totalFlow>aOptFlow){efficiency = 1.0f;}
|
//if(totalFlow>aOptFlow){efficiency = 1.0f;}
|
||||||
tEU *= efficiency;
|
tEU *= efficiency;
|
||||||
|
|
|
@ -127,7 +127,7 @@ public class GT_MetaTileEntity_LargeTurbine_Plasma extends GT_MetaTileEntity_Lar
|
||||||
addOutput(output);
|
addOutput(output);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(totalFlow<=0)return 0;
|
||||||
tEU = GT_Utility.safeInt((long)((fuelValue / 20D) * (double)totalFlow));
|
tEU = GT_Utility.safeInt((long)((fuelValue / 20D) * (double)totalFlow));
|
||||||
|
|
||||||
//System.out.println(totalFlow+" : "+fuelValue+" : "+aOptFlow+" : "+actualOptimalFlow+" : "+tEU);
|
//System.out.println(totalFlow+" : "+fuelValue+" : "+aOptFlow+" : "+actualOptimalFlow+" : "+tEU);
|
||||||
|
@ -181,7 +181,7 @@ public class GT_MetaTileEntity_LargeTurbine_Plasma extends GT_MetaTileEntity_Lar
|
||||||
|
|
||||||
// Magic numbers: can always change by at least 10 eu/t, but otherwise by at most 1 percent of the difference in power level (per tick)
|
// Magic numbers: can always change by at least 10 eu/t, but otherwise by at most 1 percent of the difference in power level (per tick)
|
||||||
// This is how much the turbine can actually change during this tick
|
// This is how much the turbine can actually change during this tick
|
||||||
int maxChangeAllowed = Math.max(200, GT_Utility.safeInt((long)Math.ceil(Math.abs(difference) * 0.2)));
|
int maxChangeAllowed = Math.max(200, GT_Utility.safeInt((long)Math.abs(difference)/5));
|
||||||
|
|
||||||
if (Math.abs(difference) > maxChangeAllowed) { // If this difference is too big, use the maximum allowed change
|
if (Math.abs(difference) > maxChangeAllowed) { // If this difference is too big, use the maximum allowed change
|
||||||
int change = maxChangeAllowed * (difference > 0 ? 1 : -1); // Make the change positive or negative.
|
int change = maxChangeAllowed * (difference > 0 ? 1 : -1); // Make the change positive or negative.
|
||||||
|
@ -189,8 +189,10 @@ public class GT_MetaTileEntity_LargeTurbine_Plasma extends GT_MetaTileEntity_Lar
|
||||||
} else
|
} else
|
||||||
this.mEUt = newPower;
|
this.mEUt = newPower;
|
||||||
|
|
||||||
if (mEUt <= 0) {
|
if (this.mEUt <= 0) {
|
||||||
stopMachine();
|
//stopMachine();
|
||||||
|
this.mEUt=0;
|
||||||
|
this.mEfficiency=0;
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
this.mMaxProgresstime = 20;
|
this.mMaxProgresstime = 20;
|
||||||
|
|
|
@ -106,11 +106,11 @@ public class GT_MetaTileEntity_LargeTurbine_Steam extends GT_MetaTileEntity_Larg
|
||||||
depleteInput(new FluidStack(aFluids.get(i), aFluids.get(i).amount));
|
depleteInput(new FluidStack(aFluids.get(i), aFluids.get(i).amount));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(totalFlow<=0)return 0;
|
||||||
tEU = totalFlow;
|
tEU = totalFlow;
|
||||||
int waterToOutput = useWater(totalFlow / 160.0f);
|
int waterToOutput = useWater(totalFlow / 160.0f);
|
||||||
addOutput(GT_ModHandler.getDistilledWater(waterToOutput));
|
addOutput(GT_ModHandler.getDistilledWater(waterToOutput));
|
||||||
if (totalFlow > 0 && totalFlow != aOptFlow) {
|
if (totalFlow != aOptFlow) {
|
||||||
float efficiency = 1.0f - Math.abs((totalFlow - aOptFlow) / (float)aOptFlow);
|
float efficiency = 1.0f - Math.abs((totalFlow - aOptFlow) / (float)aOptFlow);
|
||||||
//if(totalFlow>aOptFlow){efficiency = 1.0f;}
|
//if(totalFlow>aOptFlow){efficiency = 1.0f;}
|
||||||
tEU *= efficiency;
|
tEU *= efficiency;
|
||||||
|
|
Loading…
Reference in a new issue