diff options
author | Tec <daniel112092@gmail.com> | 2021-01-08 19:24:34 +0100 |
---|---|---|
committer | Tec <daniel112092@gmail.com> | 2021-01-08 19:24:34 +0100 |
commit | db2f5941735d34c2cbf375f395d98ee4140231c8 (patch) | |
tree | 943499c1102639a828e445324c4c2a6edb3fbd12 /src/main/java/com | |
parent | 775f3f6ca467af78c0d5b1b530d1a3d8964124f2 (diff) | |
download | GT5-Unofficial-db2f5941735d34c2cbf375f395d98ee4140231c8.tar.gz GT5-Unofficial-db2f5941735d34c2cbf375f395d98ee4140231c8.tar.bz2 GT5-Unofficial-db2f5941735d34c2cbf375f395d98ee4140231c8.zip |
Apply power GT compat
Diffstat (limited to 'src/main/java/com')
-rw-r--r-- | src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java | 100 |
1 files changed, 50 insertions, 50 deletions
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java index 85111682ee..810b02617d 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java @@ -1104,6 +1104,20 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt */ @Override public boolean onRunningTick(ItemStack aStack) { + return onRunningTickCheck(aStack); + } + + public boolean onRunningTickCheck_EM(ItemStack aStack) { + if (eRequiredData > eAvailableData) { + if (energyFlowOnRunningTick_EM(aStack, false)) { + stopMachine(); + } + return false; + } + return energyFlowOnRunningTick_EM(aStack, true); + } + + public boolean onRunningTickCheck(ItemStack aStack) { if (eRequiredData > eAvailableData) { if (energyFlowOnRunningTick(aStack, false)) { stopMachine(); @@ -1564,7 +1578,7 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt //region ENERGY!!!! //new method - private boolean energyFlowOnRunningTick(ItemStack aStack, boolean allowProduction) { + public boolean energyFlowOnRunningTick_EM(ItemStack aStack, boolean allowProduction) { long euFlow = mEUt * eAmpereFlow;//quick scope sign if (allowProduction && euFlow > 0) { addEnergyOutput_EM((long) mEUt * (long) mEfficiency / getMaxEfficiency(aStack), eAmpereFlow); @@ -1576,6 +1590,18 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt } return true; } + public boolean energyFlowOnRunningTick(ItemStack aStack, boolean allowProduction) { + long euFlow = mEUt * eAmpereFlow;//quick scope sign + if (allowProduction && euFlow > 0) { + addEnergyOutput_EM((long) mEUt * (long) mEfficiency / getMaxEfficiency(aStack), eAmpereFlow); + } else if (euFlow < 0) { + if (!drainEnergyInput_EM(getMaxInputEnergy(), (long) mEUt * getMaxEfficiency(aStack) / Math.max(1000L, mEfficiency), eAmpereFlow)) { + stopMachine(); + return false; + } + } + return true; + } //public final boolean energyFlowWithoutEffieciencyComputation(int eu,long ampere) { // long temp = eu * ampere;//quick scope sign @@ -1612,39 +1638,11 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt @Deprecated @Override - public final boolean addEnergyOutput(long EU) { - if (EU <= 0L) { - return true; - } - for (GT_MetaTileEntity_Hatch tHatch : eDynamoMulti) { - if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(tHatch)) { - if (tHatch.maxEUOutput() < EU) { - explodeMultiblock(); - } - if (tHatch.getBaseMetaTileEntity().increaseStoredEnergyUnits(EU, false)) { - return true; - } - } - } - for (GT_MetaTileEntity_Hatch tHatch : mDynamoHatches) { - if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(tHatch)) { - if (tHatch.maxEUOutput() < EU) { - explodeMultiblock(); - } - if (tHatch.getBaseMetaTileEntity().increaseStoredEnergyUnits(EU, false)) { - return true; - } - } - } - return false; + public final boolean addEnergyOutput(long eu) { + return addEnergyOutput_EM(eu,1); } - /** - * @param EU - * @param Amperes - * @return if was able to put inside the hatches - */ - private boolean addEnergyOutput_EM(long EU, long Amperes) { + public boolean addEnergyOutput_EM(long EU, long Amperes) { if (EU < 0) { EU = -EU; } @@ -1693,24 +1691,11 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt @Deprecated @Override - public final boolean drainEnergyInput(long EU) { - if (EU <= 0L) { - return true; - } - for (GT_MetaTileEntity_Hatch tHatch : eEnergyMulti) { - if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(tHatch) && tHatch.maxEUInput() > EU && tHatch.getBaseMetaTileEntity().decreaseStoredEnergyUnits(EU, false)) { - return true; - } - } - for (GT_MetaTileEntity_Hatch tHatch : mEnergyHatches) { - if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(tHatch) && tHatch.maxEUInput() > EU && tHatch.getBaseMetaTileEntity().decreaseStoredEnergyUnits(EU, false)) { - return true; - } - } - return false; + public final boolean drainEnergyInput(long eu) { + return drainEnergyInput_EM(0,eu,1); } - private boolean drainEnergyInput_EM(long EUtTierVoltage, long EUtEffective, long Amperes) { + public boolean drainEnergyInput_EM(long EUtTierVoltage, long EUtEffective, long Amperes) { if(maxEUinputMin==0){ return false; } @@ -1725,7 +1710,7 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt } long EUuse = EUtEffective * Amperes; if (EUuse > getEUVar() || //not enough power - EUtTierVoltage > maxEUinputMax || //TIER IS BASED ON BEST HATCH! not total EUtEffective input + (EUtTierVoltage > maxEUinputMax) || //TIER IS BASED ON BEST HATCH! not total EUtEffective input (EUtTierVoltage * Amperes - 1) / maxEUinputMin + 1 > eMaxAmpereFlow) {// EUuse==0? --> (EUuse - 1) / maxEUinputMin + 1 = 1! //if not too much A if (DEBUG_MODE) { TecTech.LOGGER.debug("L1 " + EUuse + ' ' + getEUVar() + ' ' + (EUuse > getEUVar())); @@ -1747,7 +1732,7 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt mMaxProgresstime = time; return true; } - long tempEUt = EU < V[1] ? V[1] : EU; + long tempEUt = Math.max(EU, V[1]); long tempTier = maxEUinputMax >> 2; while (tempEUt < tempTier) { tempEUt <<= 2; @@ -1796,6 +1781,21 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt return energy; } + public final long getMaxTheoreticalInputEnergy() { + long energy = 0; + for (GT_MetaTileEntity_Hatch_Energy tHatch : mEnergyHatches) { + if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(tHatch)) { + energy += tHatch.maxEUInput()*tHatch.maxAmperesIn(); + } + } + for (GT_MetaTileEntity_Hatch_EnergyMulti tHatch : eEnergyMulti) { + if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(tHatch)) { + energy += tHatch.maxEUInput() * tHatch.maxAmperesIn(); + } + } + return energy; + } + //new Method public final int getMaxEnergyInputTier_EM() { return getTier(maxEUinputMax); |