Prevent Osmium Compressor and Combiner from using secondary energy upgrades.
Also make them deterministic again to prevent them getting stuck
This commit is contained in:
parent
0819c0ad5f
commit
17f9f88b34
4 changed files with 50 additions and 13 deletions
|
@ -99,7 +99,21 @@ public abstract class TileEntityAdvancedElectricMachine extends TileEntityBasicM
|
||||||
|
|
||||||
boolean changed = false;
|
boolean changed = false;
|
||||||
|
|
||||||
if(canOperate() && MekanismUtils.canFunction(this) && getEnergy() >= MekanismUtils.getEnergyPerTick(this, ENERGY_PER_TICK) && gasTank.getStored() >= (int)MekanismUtils.getSecondaryEnergyPerTick(this, SECONDARY_ENERGY_PER_TICK))
|
double secondaryToUse = SECONDARY_ENERGY_PER_TICK;
|
||||||
|
|
||||||
|
if(upgradeableSecondaryEfficiency())
|
||||||
|
{
|
||||||
|
secondaryToUse = MekanismUtils.getSecondaryEnergyPerTickMean(this, SECONDARY_ENERGY_PER_TICK);
|
||||||
|
}
|
||||||
|
|
||||||
|
int actualSecondaryToUse = (int)Math.ceil(secondaryToUse);
|
||||||
|
|
||||||
|
if(useStatisticalMechanics())
|
||||||
|
{
|
||||||
|
actualSecondaryToUse = StatUtils.inversePoisson(secondaryToUse);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(canOperate() && MekanismUtils.canFunction(this) && getEnergy() >= MekanismUtils.getEnergyPerTick(this, ENERGY_PER_TICK) && gasTank.getStored() >= actualSecondaryToUse)
|
||||||
{
|
{
|
||||||
setActive(true);
|
setActive(true);
|
||||||
|
|
||||||
|
@ -112,7 +126,7 @@ public abstract class TileEntityAdvancedElectricMachine extends TileEntityBasicM
|
||||||
operatingTicks = 0;
|
operatingTicks = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
gasTank.draw(StatUtils.inversePoisson(MekanismUtils.getSecondaryEnergyPerTickMean(this, SECONDARY_ENERGY_PER_TICK)), true);
|
gasTank.draw(actualSecondaryToUse, true);
|
||||||
electricityStored -= MekanismUtils.getEnergyPerTick(this, ENERGY_PER_TICK);
|
electricityStored -= MekanismUtils.getEnergyPerTick(this, ENERGY_PER_TICK);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -178,6 +192,16 @@ public abstract class TileEntityAdvancedElectricMachine extends TileEntityBasicM
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean upgradeableSecondaryEfficiency()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean useStatisticalMechanics()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isItemValidForSlot(int slotID, ItemStack itemstack)
|
public boolean isItemValidForSlot(int slotID, ItemStack itemstack)
|
||||||
{
|
{
|
||||||
|
|
|
@ -89,4 +89,16 @@ public class TileEntityChemicalInjectionChamber extends TileEntityAdvancedElectr
|
||||||
{
|
{
|
||||||
return gas == GasRegistry.getGas("sulfuricAcid") || gas == GasRegistry.getGas("water") || gas == GasRegistry.getGas("hydrogenChloride");
|
return gas == GasRegistry.getGas("sulfuricAcid") || gas == GasRegistry.getGas("water") || gas == GasRegistry.getGas("hydrogenChloride");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean upgradeableSecondaryEfficiency()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean useStatisticalMechanics()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -82,4 +82,16 @@ public class TileEntityPurificationChamber extends TileEntityAdvancedElectricMac
|
||||||
{
|
{
|
||||||
return gas == GasRegistry.getGas("oxygen");
|
return gas == GasRegistry.getGas("oxygen");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean upgradeableSecondaryEfficiency()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean useStatisticalMechanics()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -626,17 +626,6 @@ public final class MekanismUtils
|
||||||
return def * Math.pow(Mekanism.maxUpgradeMultiplier, (2*mgmt.getSpeedMultiplier()-mgmt.getEnergyMultiplier())/8.0);
|
return def * Math.pow(Mekanism.maxUpgradeMultiplier, (2*mgmt.getSpeedMultiplier()-mgmt.getEnergyMultiplier())/8.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the secondary energy required per tick for a machine via upgrades.
|
|
||||||
* @param mgmt - tile containing upgrades
|
|
||||||
* @param def - the original, default secondary energy required
|
|
||||||
* @return max secondary energy per tick
|
|
||||||
*/
|
|
||||||
public static int getSecondaryEnergyPerTick(IUpgradeManagement mgmt, int def)
|
|
||||||
{
|
|
||||||
return (int)getSecondaryEnergyPerTickMean(mgmt, def);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the secondary energy required per tick for a machine via upgrades.
|
* Gets the secondary energy required per tick for a machine via upgrades.
|
||||||
* @param mgmt - tile containing upgrades
|
* @param mgmt - tile containing upgrades
|
||||||
|
|
Loading…
Reference in a new issue