diff options
Diffstat (limited to 'src/main/java/gregtech/api/util')
-rw-r--r-- | src/main/java/gregtech/api/util/GT_ExoticEnergyInputHelper.java | 26 | ||||
-rw-r--r-- | src/main/java/gregtech/api/util/GT_Utility.java | 9 |
2 files changed, 24 insertions, 11 deletions
diff --git a/src/main/java/gregtech/api/util/GT_ExoticEnergyInputHelper.java b/src/main/java/gregtech/api/util/GT_ExoticEnergyInputHelper.java index 8e5301bd0b..f167651825 100644 --- a/src/main/java/gregtech/api/util/GT_ExoticEnergyInputHelper.java +++ b/src/main/java/gregtech/api/util/GT_ExoticEnergyInputHelper.java @@ -1,6 +1,6 @@ package gregtech.api.util; -import static gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity; +import static gregtech.api.util.GT_Utility.filterValidMTEs; import java.util.ArrayList; import java.util.Collection; @@ -63,42 +63,46 @@ public class GT_ExoticEnergyInputHelper { public static long getTotalEuMulti(Collection<? extends GT_MetaTileEntity_Hatch> hatches) { long rEU = 0L; - for (GT_MetaTileEntity_Hatch tHatch : hatches) - if (isValidMetaTileEntity(tHatch)) rEU += tHatch.getBaseMetaTileEntity() + for (GT_MetaTileEntity_Hatch tHatch : filterValidMTEs(hatches)) { + rEU += tHatch.getBaseMetaTileEntity() .getInputVoltage() * tHatch.maxWorkingAmperesIn(); + } return rEU; } public static long getMaxInputVoltageMulti(Collection<? extends GT_MetaTileEntity_Hatch> hatches) { long rVoltage = 0; - for (GT_MetaTileEntity_Hatch tHatch : hatches) - if (isValidMetaTileEntity(tHatch)) rVoltage += tHatch.getBaseMetaTileEntity() + for (GT_MetaTileEntity_Hatch tHatch : filterValidMTEs(hatches)) { + rVoltage += tHatch.getBaseMetaTileEntity() .getInputVoltage(); + } return rVoltage; } public static long getAverageInputVoltageMulti(Collection<? extends GT_MetaTileEntity_Hatch> hatches) { long rVoltage = 0; - if (hatches.size() == 0) { + if (hatches.isEmpty()) { return rVoltage; } - for (GT_MetaTileEntity_Hatch tHatch : hatches) - if (isValidMetaTileEntity(tHatch)) rVoltage += tHatch.getBaseMetaTileEntity() + for (GT_MetaTileEntity_Hatch tHatch : filterValidMTEs(hatches)) { + rVoltage += tHatch.getBaseMetaTileEntity() .getInputVoltage(); + } return rVoltage / hatches.size(); } public static long getMaxInputAmpsMulti(Collection<? extends GT_MetaTileEntity_Hatch> hatches) { long rAmp = 0; - for (GT_MetaTileEntity_Hatch tHatch : hatches) - if (isValidMetaTileEntity(tHatch)) rAmp += tHatch.getBaseMetaTileEntity() + for (GT_MetaTileEntity_Hatch tHatch : filterValidMTEs(hatches)) { + rAmp += tHatch.getBaseMetaTileEntity() .getInputAmperage(); + } return rAmp; } public static long getMaxWorkingInputAmpsMulti(Collection<? extends GT_MetaTileEntity_Hatch> hatches) { long rAmp = 0; - for (GT_MetaTileEntity_Hatch tHatch : hatches) if (isValidMetaTileEntity(tHatch)) { + for (GT_MetaTileEntity_Hatch tHatch : filterValidMTEs(hatches)) { rAmp += tHatch.maxWorkingAmperesIn(); } return rAmp; diff --git a/src/main/java/gregtech/api/util/GT_Utility.java b/src/main/java/gregtech/api/util/GT_Utility.java index a946686e55..0bac435d9a 100644 --- a/src/main/java/gregtech/api/util/GT_Utility.java +++ b/src/main/java/gregtech/api/util/GT_Utility.java @@ -151,6 +151,7 @@ import gregtech.api.interfaces.tileentity.IUpgradableMachine; import gregtech.api.items.GT_EnergyArmor_Item; import gregtech.api.items.GT_Generic_Item; import gregtech.api.items.GT_MetaGenerated_Tool; +import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.net.GT_Packet_Sound; import gregtech.api.objects.CollectorUtils; import gregtech.api.objects.GT_ItemStack; @@ -3893,6 +3894,14 @@ public class GT_Utility { return -1; } + /** + * @return Supplied collection that doesn't contain invalid MetaTileEntities + */ + public static <T extends Collection<E>, E extends MetaTileEntity> T filterValidMTEs(T metaTileEntities) { + metaTileEntities.removeIf(mte -> mte == null || !mte.isValid()); + return metaTileEntities; + } + public static class ItemNBT { public static void setNBT(ItemStack aStack, NBTTagCompound aNBT) { |