aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_ExtendedPowerMultiBlockBase.java21
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java290
-rw-r--r--src/main/java/gregtech/api/util/GT_ExoticEnergyInputHelper.java26
-rw-r--r--src/main/java/gregtech/api/util/GT_Utility.java9
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AssemblyLine.java30
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DieselEngine.java19
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DrillerBase.java25
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java11
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ExtremeDieselEngine.java19
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java16
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_HeatExchanger.java4
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java27
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java19
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiFurnace.java5
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilCracker.java25
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PCBFactory.java17
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PlasmaForge.java13
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java13
18 files changed, 274 insertions, 315 deletions
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_ExtendedPowerMultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_ExtendedPowerMultiBlockBase.java
index a691e3a352..85fb98cafd 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_ExtendedPowerMultiBlockBase.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_ExtendedPowerMultiBlockBase.java
@@ -1,6 +1,7 @@
package gregtech.api.metatileentity.implementations;
import static gregtech.api.enums.GT_Values.VN;
+import static gregtech.api.util.GT_Utility.filterValidMTEs;
import java.util.ArrayList;
import java.util.List;
@@ -106,8 +107,8 @@ public abstract class GT_MetaTileEntity_ExtendedPowerMultiBlockBase<T extends GT
public List<GT_MetaTileEntity_Hatch> getExoticAndNormalEnergyHatchList() {
List<GT_MetaTileEntity_Hatch> tHatches = new ArrayList<>();
- tHatches.addAll(mExoticEnergyHatches);
- tHatches.addAll(mEnergyHatches);
+ tHatches.addAll(filterValidMTEs(mExoticEnergyHatches));
+ tHatches.addAll(filterValidMTEs(mEnergyHatches));
return tHatches;
}
@@ -155,21 +156,17 @@ public abstract class GT_MetaTileEntity_ExtendedPowerMultiBlockBase<T extends GT
@Override
public String[] getInfoData() {
int mPollutionReduction = 0;
- for (GT_MetaTileEntity_Hatch_Muffler tHatch : mMufflerHatches) {
- if (isValidMetaTileEntity(tHatch)) {
- mPollutionReduction = Math.max(tHatch.calculatePollutionReduction(100), mPollutionReduction);
- }
+ for (GT_MetaTileEntity_Hatch_Muffler tHatch : filterValidMTEs(mMufflerHatches)) {
+ mPollutionReduction = Math.max(tHatch.calculatePollutionReduction(100), mPollutionReduction);
}
long storedEnergy = 0;
long maxEnergy = 0;
for (GT_MetaTileEntity_Hatch tHatch : getExoticAndNormalEnergyHatchList()) {
- if (isValidMetaTileEntity(tHatch)) {
- storedEnergy += tHatch.getBaseMetaTileEntity()
- .getStoredEU();
- maxEnergy += tHatch.getBaseMetaTileEntity()
- .getEUCapacity();
- }
+ storedEnergy += tHatch.getBaseMetaTileEntity()
+ .getStoredEU();
+ maxEnergy += tHatch.getBaseMetaTileEntity()
+ .getEUCapacity();
}
long voltage = getAverageInputVoltage();
long amps = getMaxInputAmps();
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
index 8890f025e9..97d8abd05a 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
@@ -2,6 +2,7 @@ package gregtech.api.metatileentity.implementations;
import static gregtech.api.enums.GT_Values.V;
import static gregtech.api.enums.GT_Values.VN;
+import static gregtech.api.util.GT_Utility.filterValidMTEs;
import static gregtech.api.util.GT_Utility.formatNumbers;
import static mcp.mobius.waila.api.SpecialChars.GREEN;
import static mcp.mobius.waila.api.SpecialChars.RED;
@@ -9,7 +10,6 @@ import static mcp.mobius.waila.api.SpecialChars.RESET;
import java.util.*;
import java.util.function.Function;
-import java.util.stream.Collectors;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
@@ -160,15 +160,20 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
.get(ConfigCategories.machineconfig, "MultiBlockMachines.damageFactorHigh", 0.6f);
}
- // maybe remove this at some point?
+ /**
+ * @deprecated Use {@link MetaTileEntity#isValid()}
+ */
+ @Deprecated
public static boolean isValidMetaTileEntity(MetaTileEntity aMetaTileEntity) {
return aMetaTileEntity.isValid();
}
+ /**
+ * @deprecated Use {@link GT_Utility#filterValidMTEs)}
+ */
+ @Deprecated
public static <T extends MetaTileEntity> List<T> filterValidMetaTileEntities(Collection<T> metaTileEntities) {
- return metaTileEntities.stream()
- .filter(MetaTileEntity::isValid)
- .collect(Collectors.toList());
+ return new ArrayList<>(filterValidMTEs(metaTileEntities));
}
@Override
@@ -446,25 +451,22 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
return;
}
- for (GT_MetaTileEntity_Hatch_Maintenance tHatch : mMaintenanceHatches) {
- if (isValidMetaTileEntity(tHatch)) {
- if (tHatch.mAuto
- && !(mWrench && mScrewdriver && mSoftHammer && mHardHammer && mSolderingTool && mCrowbar))
- tHatch.autoMaintainance();
- if (tHatch.mWrench) mWrench = true;
- if (tHatch.mScrewdriver) mScrewdriver = true;
- if (tHatch.mSoftHammer) mSoftHammer = true;
- if (tHatch.mHardHammer) mHardHammer = true;
- if (tHatch.mSolderingTool) mSolderingTool = true;
- if (tHatch.mCrowbar) mCrowbar = true;
-
- tHatch.mWrench = false;
- tHatch.mScrewdriver = false;
- tHatch.mSoftHammer = false;
- tHatch.mHardHammer = false;
- tHatch.mSolderingTool = false;
- tHatch.mCrowbar = false;
- }
+ for (GT_MetaTileEntity_Hatch_Maintenance tHatch : filterValidMTEs(mMaintenanceHatches)) {
+ if (tHatch.mAuto && !(mWrench && mScrewdriver && mSoftHammer && mHardHammer && mSolderingTool && mCrowbar))
+ tHatch.autoMaintainance();
+ if (tHatch.mWrench) mWrench = true;
+ if (tHatch.mScrewdriver) mScrewdriver = true;
+ if (tHatch.mSoftHammer) mSoftHammer = true;
+ if (tHatch.mHardHammer) mHardHammer = true;
+ if (tHatch.mSolderingTool) mSolderingTool = true;
+ if (tHatch.mCrowbar) mCrowbar = true;
+
+ tHatch.mWrench = false;
+ tHatch.mScrewdriver = false;
+ tHatch.mSoftHammer = false;
+ tHatch.mHardHammer = false;
+ tHatch.mSolderingTool = false;
+ tHatch.mCrowbar = false;
}
}
@@ -581,15 +583,13 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
public boolean polluteEnvironment(int aPollutionLevel) {
mPollution += aPollutionLevel;
- for (GT_MetaTileEntity_Hatch_Muffler tHatch : mMufflerHatches) {
- if (isValidMetaTileEntity(tHatch)) {
- if (mPollution >= 10000) {
- if (tHatch.polluteEnvironment(this)) {
- mPollution -= 10000;
- }
- } else {
- break;
+ for (GT_MetaTileEntity_Hatch_Muffler tHatch : filterValidMTEs(mMufflerHatches)) {
+ if (mPollution >= 10000) {
+ if (tHatch.polluteEnvironment(this)) {
+ mPollution -= 10000;
}
+ } else {
+ break;
}
}
return mPollution < 10000;
@@ -1003,23 +1003,18 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
long totalOutput = 0;
long aFirstVoltageFound = -1;
boolean aFoundMixedDynamos = false;
- for (GT_MetaTileEntity_Hatch_Dynamo aDynamo : mDynamoHatches) {
- if (aDynamo == null) {
- return false;
- }
- if (isValidMetaTileEntity(aDynamo)) {
- long aVoltage = aDynamo.maxEUOutput();
- long aTotal = aDynamo.maxAmperesOut() * aVoltage;
- // Check against voltage to check when hatch mixing
- if (aFirstVoltageFound == -1) {
- aFirstVoltageFound = aVoltage;
- } else {
- if (aFirstVoltageFound != aVoltage) {
- aFoundMixedDynamos = true;
- }
+ for (GT_MetaTileEntity_Hatch_Dynamo aDynamo : filterValidMTEs(mDynamoHatches)) {
+ long aVoltage = aDynamo.maxEUOutput();
+ long aTotal = aDynamo.maxAmperesOut() * aVoltage;
+ // Check against voltage to check when hatch mixing
+ if (aFirstVoltageFound == -1) {
+ aFirstVoltageFound = aVoltage;
+ } else {
+ if (aFirstVoltageFound != aVoltage) {
+ aFoundMixedDynamos = true;
}
- totalOutput += aTotal;
}
+ totalOutput += aTotal;
}
if (totalOutput < aEU || (aFoundMixedDynamos && !aAllowMixedVoltageDynamos)) {
@@ -1032,23 +1027,21 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
int aAmpsToInject;
int aRemainder;
int ampsOnCurrentHatch;
- for (GT_MetaTileEntity_Hatch_Dynamo aDynamo : mDynamoHatches) {
- if (isValidMetaTileEntity(aDynamo)) {
- leftToInject = aEU - injected;
- aVoltage = aDynamo.maxEUOutput();
- aAmpsToInject = (int) (leftToInject / aVoltage);
- aRemainder = (int) (leftToInject - (aAmpsToInject * aVoltage));
- ampsOnCurrentHatch = (int) Math.min(aDynamo.maxAmperesOut(), aAmpsToInject);
- for (int i = 0; i < ampsOnCurrentHatch; i++) {
- aDynamo.getBaseMetaTileEntity()
- .increaseStoredEnergyUnits(aVoltage, false);
- }
- injected += aVoltage * ampsOnCurrentHatch;
- if (aRemainder > 0 && ampsOnCurrentHatch < aDynamo.maxAmperesOut()) {
- aDynamo.getBaseMetaTileEntity()
- .increaseStoredEnergyUnits(aRemainder, false);
- injected += aRemainder;
- }
+ for (GT_MetaTileEntity_Hatch_Dynamo aDynamo : filterValidMTEs(mDynamoHatches)) {
+ leftToInject = aEU - injected;
+ aVoltage = aDynamo.maxEUOutput();
+ aAmpsToInject = (int) (leftToInject / aVoltage);
+ aRemainder = (int) (leftToInject - (aAmpsToInject * aVoltage));
+ ampsOnCurrentHatch = (int) Math.min(aDynamo.maxAmperesOut(), aAmpsToInject);
+ for (int i = 0; i < ampsOnCurrentHatch; i++) {
+ aDynamo.getBaseMetaTileEntity()
+ .increaseStoredEnergyUnits(aVoltage, false);
+ }
+ injected += aVoltage * ampsOnCurrentHatch;
+ if (aRemainder > 0 && ampsOnCurrentHatch < aDynamo.maxAmperesOut()) {
+ aDynamo.getBaseMetaTileEntity()
+ .increaseStoredEnergyUnits(aRemainder, false);
+ injected += aRemainder;
}
}
return injected > 0;
@@ -1059,8 +1052,8 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
*/
public long getMaxInputVoltage() {
long rVoltage = 0;
- for (GT_MetaTileEntity_Hatch_Energy tHatch : mEnergyHatches)
- if (isValidMetaTileEntity(tHatch)) rVoltage += tHatch.getBaseMetaTileEntity()
+ for (GT_MetaTileEntity_Hatch_Energy tHatch : filterValidMTEs(mEnergyHatches))
+ rVoltage += tHatch.getBaseMetaTileEntity()
.getInputVoltage();
return rVoltage;
}
@@ -1082,7 +1075,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
*/
public long getMaxInputPower() {
long eut = 0;
- for (GT_MetaTileEntity_Hatch_Energy tHatch : mEnergyHatches) if (isValidMetaTileEntity(tHatch)) {
+ for (GT_MetaTileEntity_Hatch_Energy tHatch : filterValidMTEs(mEnergyHatches)) {
IGregTechTileEntity baseTile = tHatch.getBaseMetaTileEntity();
eut += baseTile.getInputVoltage() * baseTile.getInputAmperage();
}
@@ -1183,7 +1176,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
public boolean drainEnergyInput(long aEU) {
if (aEU <= 0) return true;
- for (GT_MetaTileEntity_Hatch_Energy tHatch : mEnergyHatches) if (isValidMetaTileEntity(tHatch)) {
+ for (GT_MetaTileEntity_Hatch_Energy tHatch : filterValidMTEs(mEnergyHatches)) {
if (tHatch.getBaseMetaTileEntity()
.decreaseStoredEnergyUnits(aEU, false)) return true;
}
@@ -1192,8 +1185,8 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
protected static boolean dumpFluid(List<GT_MetaTileEntity_Hatch_Output> aOutputHatches, FluidStack copiedFluidStack,
boolean restrictiveHatchesOnly) {
- for (GT_MetaTileEntity_Hatch_Output tHatch : aOutputHatches) {
- if (!isValidMetaTileEntity(tHatch) || (restrictiveHatchesOnly && tHatch.mMode == 0)) {
+ for (GT_MetaTileEntity_Hatch_Output tHatch : filterValidMTEs(aOutputHatches)) {
+ if (restrictiveHatchesOnly && tHatch.mMode == 0) {
continue;
}
if (!tHatch.canStoreFluid(copiedFluidStack)) continue;
@@ -1231,17 +1224,15 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
public boolean depleteInput(FluidStack aLiquid, boolean simulate) {
if (aLiquid == null) return false;
- for (GT_MetaTileEntity_Hatch_Input tHatch : mInputHatches) {
+ for (GT_MetaTileEntity_Hatch_Input tHatch : filterValidMTEs(mInputHatches)) {
tHatch.mRecipeMap = getRecipeMap();
- if (isValidMetaTileEntity(tHatch)) {
- FluidStack tLiquid = tHatch.drain(ForgeDirection.UNKNOWN, aLiquid, false);
- if (tLiquid != null && tLiquid.amount >= aLiquid.amount) {
- if (simulate) {
- return true;
- }
- tLiquid = tHatch.drain(ForgeDirection.UNKNOWN, aLiquid, true);
- return tLiquid != null && tLiquid.amount >= aLiquid.amount;
+ FluidStack tLiquid = tHatch.drain(ForgeDirection.UNKNOWN, aLiquid, false);
+ if (tLiquid != null && tLiquid.amount >= aLiquid.amount) {
+ if (simulate) {
+ return true;
}
+ tLiquid = tHatch.drain(ForgeDirection.UNKNOWN, aLiquid, true);
+ return tLiquid != null && tLiquid.amount >= aLiquid.amount;
}
}
return false;
@@ -1250,8 +1241,8 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
public boolean addOutput(ItemStack aStack) {
if (GT_Utility.isStackInvalid(aStack)) return false;
aStack = GT_Utility.copyOrNull(aStack);
- for (GT_MetaTileEntity_Hatch_OutputBus tHatch : mOutputBusses) {
- if (isValidMetaTileEntity(tHatch) && tHatch.storeAll(aStack)) {
+ for (GT_MetaTileEntity_Hatch_OutputBus tHatch : filterValidMTEs(mOutputBusses)) {
+ if (tHatch.storeAll(aStack)) {
return true;
}
}
@@ -1259,8 +1250,8 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
while (outputSuccess && aStack.stackSize > 0) {
outputSuccess = false;
ItemStack single = aStack.splitStack(1);
- for (GT_MetaTileEntity_Hatch_Output tHatch : mOutputHatches) {
- if (!outputSuccess && isValidMetaTileEntity(tHatch) && tHatch.outputsItems()) {
+ for (GT_MetaTileEntity_Hatch_Output tHatch : filterValidMTEs(mOutputHatches)) {
+ if (!outputSuccess && tHatch.outputsItems()) {
if (tHatch.getBaseMetaTileEntity()
.addStackToSlot(1, single)) outputSuccess = true;
}
@@ -1273,37 +1264,33 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
if (GT_Utility.isStackInvalid(aStack)) return false;
FluidStack aLiquid = GT_Utility.getFluidForFilledItem(aStack, true);
if (aLiquid != null) return depleteInput(aLiquid);
- for (GT_MetaTileEntity_Hatch_Input tHatch : mInputHatches) {
+ for (GT_MetaTileEntity_Hatch_Input tHatch : filterValidMTEs(mInputHatches)) {
tHatch.mRecipeMap = getRecipeMap();
- if (isValidMetaTileEntity(tHatch)) {
- if (GT_Utility.areStacksEqual(
- aStack,
+ if (GT_Utility.areStacksEqual(
+ aStack,
+ tHatch.getBaseMetaTileEntity()
+ .getStackInSlot(0))) {
+ if (tHatch.getBaseMetaTileEntity()
+ .getStackInSlot(0).stackSize >= aStack.stackSize) {
tHatch.getBaseMetaTileEntity()
- .getStackInSlot(0))) {
- if (tHatch.getBaseMetaTileEntity()
- .getStackInSlot(0).stackSize >= aStack.stackSize) {
- tHatch.getBaseMetaTileEntity()
- .decrStackSize(0, aStack.stackSize);
- return true;
- }
+ .decrStackSize(0, aStack.stackSize);
+ return true;
}
}
}
- for (GT_MetaTileEntity_Hatch_InputBus tHatch : mInputBusses) {
+ for (GT_MetaTileEntity_Hatch_InputBus tHatch : filterValidMTEs(mInputBusses)) {
tHatch.mRecipeMap = getRecipeMap();
- if (isValidMetaTileEntity(tHatch)) {
- for (int i = tHatch.getBaseMetaTileEntity()
- .getSizeInventory() - 1; i >= 0; i--) {
- if (GT_Utility.areStacksEqual(
- aStack,
+ for (int i = tHatch.getBaseMetaTileEntity()
+ .getSizeInventory() - 1; i >= 0; i--) {
+ if (GT_Utility.areStacksEqual(
+ aStack,
+ tHatch.getBaseMetaTileEntity()
+ .getStackInSlot(i))) {
+ if (tHatch.getBaseMetaTileEntity()
+ .getStackInSlot(i).stackSize >= aStack.stackSize) {
tHatch.getBaseMetaTileEntity()
- .getStackInSlot(i))) {
- if (tHatch.getBaseMetaTileEntity()
- .getStackInSlot(i).stackSize >= aStack.stackSize) {
- tHatch.getBaseMetaTileEntity()
- .decrStackSize(i, aStack.stackSize);
- return true;
- }
+ .decrStackSize(i, aStack.stackSize);
+ return true;
}
}
}
@@ -1313,14 +1300,12 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
public ArrayList<ItemStack> getStoredOutputs() {
ArrayList<ItemStack> rList = new ArrayList<>();
- for (GT_MetaTileEntity_Hatch_OutputBus tHatch : mOutputBusses) {
- if (isValidMetaTileEntity(tHatch)) {
- for (int i = tHatch.getBaseMetaTileEntity()
- .getSizeInventory() - 1; i >= 0; i--) {
- rList.add(
- tHatch.getBaseMetaTileEntity()
- .getStackInSlot(i));
- }
+ for (GT_MetaTileEntity_Hatch_OutputBus tHatch : filterValidMTEs(mOutputBusses)) {
+ for (int i = tHatch.getBaseMetaTileEntity()
+ .getSizeInventory() - 1; i >= 0; i--) {
+ rList.add(
+ tHatch.getBaseMetaTileEntity()
+ .getStackInSlot(i));
}
}
return rList;
@@ -1341,19 +1326,17 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
}
ArrayList<FluidStack> rList = new ArrayList<>();
- for (GT_MetaTileEntity_Hatch_Input tHatch : mInputHatches) {
+ for (GT_MetaTileEntity_Hatch_Input tHatch : filterValidMTEs(mInputHatches)) {
tHatch.mRecipeMap = getRecipeMap();
if (tHatch instanceof GT_MetaTileEntity_Hatch_MultiInput) {
- if (isValidMetaTileEntity(tHatch)) {
- for (FluidStack tFluid : ((GT_MetaTileEntity_Hatch_MultiInput) tHatch).getStoredFluid()) {
- if (tFluid != null) {
- // GT_Log.out.print("mf: " + tFluid + "\n");
- rList.add(tFluid);
- }
+ for (FluidStack tFluid : ((GT_MetaTileEntity_Hatch_MultiInput) tHatch).getStoredFluid()) {
+ if (tFluid != null) {
+ // GT_Log.out.print("mf: " + tFluid + "\n");
+ rList.add(tFluid);
}
}
} else {
- if (isValidMetaTileEntity(tHatch) && tHatch.getFillableStack() != null) {
+ if (tHatch.getFillableStack() != null) {
// GT_Log.out.print("sf: " + tHatch.getFillableStack() + "\n");
rList.add(tHatch.getFillableStack());
}
@@ -1377,21 +1360,18 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
ArrayList<ItemStack> rList = new ArrayList<>();
HashMap<String, ItemStack> rInputBusMeList = new HashMap<>();
-
- for (GT_MetaTileEntity_Hatch_InputBus tHatch : mInputBusses) {
+ for (GT_MetaTileEntity_Hatch_InputBus tHatch : filterValidMTEs(mInputBusses)) {
tHatch.mRecipeMap = getRecipeMap();
- if (isValidMetaTileEntity(tHatch)) {
- IGregTechTileEntity tileEntity = tHatch.getBaseMetaTileEntity();
- if (tHatch instanceof GT_MetaTileEntity_Hatch_InputBus_ME) {
- for (int i = tileEntity.getSizeInventory() - 1; i >= 0; i--) {
- ItemStack itemStack = tileEntity.getStackInSlot(i);
- if (itemStack != null) rInputBusMeList.put(itemStack.toString(), itemStack);
- }
- } else {
- for (int i = tileEntity.getSizeInventory() - 1; i >= 0; i--) {
- ItemStack itemStack = tileEntity.getStackInSlot(i);
- if (itemStack != null) rList.add(itemStack);
- }
+ IGregTechTileEntity tileEntity = tHatch.getBaseMetaTileEntity();
+ if (tHatch instanceof GT_MetaTileEntity_Hatch_InputBus_ME) {
+ for (int i = tileEntity.getSizeInventory() - 1; i >= 0; i--) {
+ ItemStack itemStack = tileEntity.getStackInSlot(i);
+ if (itemStack != null) rInputBusMeList.put(itemStack.toString(), itemStack);
+ }
+ } else {
+ for (int i = tileEntity.getSizeInventory() - 1; i >= 0; i--) {
+ ItemStack itemStack = tileEntity.getStackInSlot(i);
+ if (itemStack != null) rList.add(itemStack);
}
}
}
@@ -1418,20 +1398,16 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
}
public void updateSlots() {
- for (GT_MetaTileEntity_Hatch_Input tHatch : mInputHatches)
- if (isValidMetaTileEntity(tHatch)) tHatch.updateSlots();
- for (GT_MetaTileEntity_Hatch_InputBus tHatch : mInputBusses)
- if (isValidMetaTileEntity(tHatch)) tHatch.updateSlots();
+ for (GT_MetaTileEntity_Hatch_Input tHatch : filterValidMTEs(mInputHatches)) tHatch.updateSlots();
+ for (GT_MetaTileEntity_Hatch_InputBus tHatch : filterValidMTEs(mInputBusses)) tHatch.updateSlots();
}
protected void startRecipeProcessing() {
- for (GT_MetaTileEntity_Hatch_InputBus tHatch : mInputBusses)
- if (isValidMetaTileEntity(tHatch)) tHatch.startRecipeProcessing();
+ for (GT_MetaTileEntity_Hatch_InputBus tHatch : filterValidMTEs(mInputBusses)) tHatch.startRecipeProcessing();
}
protected void endRecipeProcessing() {
- for (GT_MetaTileEntity_Hatch_InputBus tHatch : mInputBusses)
- if (isValidMetaTileEntity(tHatch)) tHatch.endRecipeProcessing();
+ for (GT_MetaTileEntity_Hatch_InputBus tHatch : filterValidMTEs(mInputBusses)) tHatch.endRecipeProcessing();
}
protected static <T extends GT_MetaTileEntity_Hatch> T identifyHatch(IGregTechTileEntity aTileEntity,
@@ -1612,21 +1588,17 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
@Override
public String[] getInfoData() {
int mPollutionReduction = 0;
- for (GT_MetaTileEntity_Hatch_Muffler tHatch : mMufflerHatches) {
- if (isValidMetaTileEntity(tHatch)) {
- mPollutionReduction = Math.max(tHatch.calculatePollutionReduction(100), mPollutionReduction);
- }
+ for (GT_MetaTileEntity_Hatch_Muffler tHatch : filterValidMTEs(mMufflerHatches)) {
+ mPollutionReduction = Math.max(tHatch.calculatePollutionReduction(100), mPollutionReduction);
}
long storedEnergy = 0;
long maxEnergy = 0;
- for (GT_MetaTileEntity_Hatch_Energy tHatch : mEnergyHatches) {
- if (isValidMetaTileEntity(tHatch)) {
- storedEnergy += tHatch.getBaseMetaTileEntity()
- .getStoredEU();
- maxEnergy += tHatch.getBaseMetaTileEntity()
- .getEUCapacity();
- }
+ for (GT_MetaTileEntity_Hatch_Energy tHatch : filterValidMTEs(mEnergyHatches)) {
+ storedEnergy += tHatch.getBaseMetaTileEntity()
+ .getStoredEU();
+ maxEnergy += tHatch.getBaseMetaTileEntity()
+ .getEUCapacity();
}
return new String[] {
@@ -1990,7 +1962,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
@Override
public List<ItemStack> getItemOutputSlots(ItemStack[] toOutput) {
List<ItemStack> ret = new ArrayList<>();
- for (final GT_MetaTileEntity_Hatch tBus : filterValidMetaTileEntities(mOutputBusses)) {
+ for (final GT_MetaTileEntity_Hatch tBus : filterValidMTEs(mOutputBusses)) {
final IInventory tBusInv = tBus.getBaseMetaTileEntity();
for (int i = 0; i < tBusInv.getSizeInventory(); i++) {
ret.add(tBus.getStackInSlot(i));
@@ -2001,7 +1973,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
@Override
public List<? extends IFluidStore> getFluidOutputSlots(FluidStack[] toOutput) {
- return filterValidMetaTileEntities(mOutputHatches);
+ return filterValidMTEs(mOutputHatches);
}
/**
@@ -2029,7 +2001,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
@Override
public boolean canDumpItemToME() {
- for (GT_MetaTileEntity_Hatch tHatch : filterValidMetaTileEntities(mOutputBusses)) {
+ for (GT_MetaTileEntity_Hatch tHatch : filterValidMTEs(mOutputBusses)) {
if (tHatch instanceof GT_MetaTileEntity_Hatch_OutputBus_ME) {
return true;
}
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) {
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AssemblyLine.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AssemblyLine.java
index 3ad798c98a..117aa46b3f 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AssemblyLine.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AssemblyLine.java
@@ -15,6 +15,7 @@ import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_ASSEMBLY_LINE
import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_ASSEMBLY_LINE_GLOW;
import static gregtech.api.util.GT_StructureUtility.buildHatchAdder;
import static gregtech.api.util.GT_StructureUtility.ofHatchAdder;
+import static gregtech.api.util.GT_Utility.filterValidMTEs;
import java.util.ArrayList;
import java.util.Collections;
@@ -248,7 +249,7 @@ public class GT_MetaTileEntity_AssemblyLine
tStack = new int[aItemCount];
for (int i = 0; i < aItemCount; i++) {
GT_MetaTileEntity_Hatch_InputBus tInputBus = mInputBusses.get(i);
- if (!isValidMetaTileEntity(tInputBus)) {
+ if (!tInputBus.isValid()) {
continue nextDataStick;
}
ItemStack tSlotStack = tInputBus.getStackInSlot(0);
@@ -266,7 +267,8 @@ public class GT_MetaTileEntity_AssemblyLine
tFluids = new int[aFluidCount];
tFluidSlot = new int[aFluidCount];
for (int i = 0; i < aFluidCount; i++) {
- if (!isValidMetaTileEntity(mInputHatches.get(i))) {
+ if (!mInputHatches.get(i)
+ .isValid()) {
continue nextDataStick;
} else {
if (mInputHatches.get(i) instanceof GT_MetaTileEntity_Hatch_MultiInput tMultiHatch) {
@@ -410,19 +412,17 @@ public class GT_MetaTileEntity_AssemblyLine
if (GT_Utility.isStackValid(mInventory[1]) && isCorrectDataItem(mInventory[1], state)) {
rList.add(mInventory[1]);
}
- for (GT_MetaTileEntity_Hatch_DataAccess tHatch : mDataAccessHatches) {
- if (isValidMetaTileEntity(tHatch)) {
- for (int i = 0; i < tHatch.getBaseMetaTileEntity()
- .getSizeInventory(); i++) {
- if (tHatch.getBaseMetaTileEntity()
- .getStackInSlot(i) != null && isCorrectDataItem(
- tHatch.getBaseMetaTileEntity()
- .getStackInSlot(i),
- state))
- rList.add(
- tHatch.getBaseMetaTileEntity()
- .getStackInSlot(i));
- }
+ for (GT_MetaTileEntity_Hatch_DataAccess tHatch : filterValidMTEs(mDataAccessHatches)) {
+ for (int i = 0; i < tHatch.getBaseMetaTileEntity()
+ .getSizeInventory(); i++) {
+ if (tHatch.getBaseMetaTileEntity()
+ .getStackInSlot(i) != null && isCorrectDataItem(
+ tHatch.getBaseMetaTileEntity()
+ .getStackInSlot(i),
+ state))
+ rList.add(
+ tHatch.getBaseMetaTileEntity()
+ .getStackInSlot(i));
}
}
return rList;
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DieselEngine.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DieselEngine.java
index ff8fa7eeb1..94334d9ade 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DieselEngine.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DieselEngine.java
@@ -13,6 +13,7 @@ import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_DIESEL_ENGINE
import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_DIESEL_ENGINE_GLOW;
import static gregtech.api.enums.Textures.BlockIcons.casingTexturePages;
import static gregtech.api.util.GT_StructureUtility.buildHatchAdder;
+import static gregtech.api.util.GT_Utility.filterValidMTEs;
import java.util.ArrayList;
@@ -328,21 +329,17 @@ public class GT_MetaTileEntity_DieselEngine
@Override
public String[] getInfoData() {
int mPollutionReduction = 0;
- for (GT_MetaTileEntity_Hatch_Muffler tHatch : mMufflerHatches) {
- if (isValidMetaTileEntity(tHatch)) {
- mPollutionReduction = Math.max(tHatch.calculatePollutionReduction(100), mPollutionReduction);
- }
+ for (GT_MetaTileEntity_Hatch_Muffler tHatch : filterValidMTEs(mMufflerHatches)) {
+ mPollutionReduction = Math.max(tHatch.calculatePollutionReduction(100), mPollutionReduction);
}
long storedEnergy = 0;
long maxEnergy = 0;
- for (GT_MetaTileEntity_Hatch_Dynamo tHatch : mDynamoHatches) {
- if (isValidMetaTileEntity(tHatch)) {
- storedEnergy += tHatch.getBaseMetaTileEntity()
- .getStoredEU();
- maxEnergy += tHatch.getBaseMetaTileEntity()
- .getEUCapacity();
- }
+ for (GT_MetaTileEntity_Hatch_Dynamo tHatch : filterValidMTEs(mDynamoHatches)) {
+ storedEnergy += tHatch.getBaseMetaTileEntity()
+ .getStoredEU();
+ maxEnergy += tHatch.getBaseMetaTileEntity()
+ .getEUCapacity();
}
return new String[] { EnumChatFormatting.BLUE + "Diesel Engine" + EnumChatFormatting.RESET,
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DrillerBase.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DrillerBase.java
index efb4b8e6d2..6470065923 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DrillerBase.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DrillerBase.java
@@ -19,6 +19,7 @@ import static gregtech.api.enums.Textures.BlockIcons.getCasingTextureForId;
import static gregtech.api.metatileentity.BaseTileEntity.TOOLTIP_DELAY;
import static gregtech.api.util.GT_StructureUtility.buildHatchAdder;
import static gregtech.api.util.GT_StructureUtility.ofFrame;
+import static gregtech.api.util.GT_Utility.filterValidMTEs;
import java.util.ArrayList;
import java.util.Collections;
@@ -757,19 +758,17 @@ public abstract class GT_MetaTileEntity_DrillerBase
if (GT_Utility.isStackValid(mInventory[1]) && isCorrectDataItem(mInventory[1], state)) {
rList.add(mInventory[1]);
}
- for (GT_MetaTileEntity_Hatch_DataAccess tHatch : mDataAccessHatches) {
- if (isValidMetaTileEntity(tHatch)) {
- for (int i = 0; i < tHatch.getBaseMetaTileEntity()
- .getSizeInventory(); i++) {
- if (tHatch.getBaseMetaTileEntity()
- .getStackInSlot(i) != null && isCorrectDataItem(
- tHatch.getBaseMetaTileEntity()
- .getStackInSlot(i),
- state))
- rList.add(
- tHatch.getBaseMetaTileEntity()
- .getStackInSlot(i));
- }
+ for (GT_MetaTileEntity_Hatch_DataAccess tHatch : filterValidMTEs(mDataAccessHatches)) {
+ for (int i = 0; i < tHatch.getBaseMetaTileEntity()
+ .getSizeInventory(); i++) {
+ if (tHatch.getBaseMetaTileEntity()
+ .getStackInSlot(i) != null && isCorrectDataItem(
+ tHatch.getBaseMetaTileEntity()
+ .getStackInSlot(i),
+ state))
+ rList.add(
+ tHatch.getBaseMetaTileEntity()
+ .getStackInSlot(i));
}
}
return rList;
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java
index 2a4bb0f907..e2bd0b089b 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java
@@ -16,6 +16,7 @@ import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_ELECTRIC_BLAS
import static gregtech.api.enums.Textures.BlockIcons.casingTexturePages;
import static gregtech.api.util.GT_StructureUtility.buildHatchAdder;
import static gregtech.api.util.GT_StructureUtility.ofCoil;
+import static gregtech.api.util.GT_Utility.filterValidMTEs;
import java.util.ArrayList;
import java.util.Arrays;
@@ -265,9 +266,9 @@ public class GT_MetaTileEntity_ElectricBlastFurnace extends
public List<? extends IFluidStore> getFluidOutputSlots(FluidStack[] toOutput) {
if (Arrays.stream(toOutput)
.anyMatch(this::isPollutionFluid)) {
- return filterValidMetaTileEntities(mPollutionOutputHatches);
+ return filterValidMTEs(mPollutionOutputHatches);
}
- return filterValidMetaTileEntities(mOutputHatches);
+ return filterValidMTEs(mOutputHatches);
}
/**
@@ -275,8 +276,7 @@ public class GT_MetaTileEntity_ElectricBlastFurnace extends
*/
public int getPollutionReduction() {
int reduction = 100;
- for (GT_MetaTileEntity_Hatch_Muffler tHatch : mMufflerHatches) {
- if (!isValidMetaTileEntity(tHatch)) continue;
+ for (GT_MetaTileEntity_Hatch_Muffler tHatch : filterValidMTEs(mMufflerHatches)) {
reduction = Math.min(tHatch.calculatePollutionReduction(100), reduction);
}
return reduction;
@@ -291,8 +291,7 @@ public class GT_MetaTileEntity_ElectricBlastFurnace extends
int mPollutionReduction = getPollutionReduction();
long storedEnergy = 0;
long maxEnergy = 0;
- for (GT_MetaTileEntity_Hatch_Energy tHatch : mEnergyHatches) {
- if (!isValidMetaTileEntity(tHatch)) continue;
+ for (GT_MetaTileEntity_Hatch_Energy tHatch : filterValidMTEs(mEnergyHatches)) {
storedEnergy += tHatch.getBaseMetaTileEntity()
.getStoredEU();
maxEnergy += tHatch.getBaseMetaTileEntity()
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ExtremeDieselEngine.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ExtremeDieselEngine.java
index 9503f11026..fcb301d7c6 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ExtremeDieselEngine.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ExtremeDieselEngine.java
@@ -5,6 +5,7 @@ import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_EXTREME_DIESE
import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_EXTREME_DIESEL_ENGINE_ACTIVE_GLOW;
import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_EXTREME_DIESEL_ENGINE_GLOW;
import static gregtech.api.enums.Textures.BlockIcons.casingTexturePages;
+import static gregtech.api.util.GT_Utility.filterValidMTEs;
import net.minecraft.block.Block;
import net.minecraft.item.ItemStack;
@@ -172,21 +173,17 @@ public class GT_MetaTileEntity_ExtremeDieselEngine extends GT_MetaTileEntity_Die
@Override
public String[] getInfoData() {
int mPollutionReduction = 0;
- for (GT_MetaTileEntity_Hatch_Muffler tHatch : mMufflerHatches) {
- if (isValidMetaTileEntity(tHatch)) {
- mPollutionReduction = Math.max(tHatch.calculatePollutionReduction(100), mPollutionReduction);
- }
+ for (GT_MetaTileEntity_Hatch_Muffler tHatch : filterValidMTEs(mMufflerHatches)) {
+ mPollutionReduction = Math.max(tHatch.calculatePollutionReduction(100), mPollutionReduction);
}
long storedEnergy = 0;
long maxEnergy = 0;
- for (GT_MetaTileEntity_Hatch_Dynamo tHatch : mDynamoHatches) {
- if (isValidMetaTileEntity(tHatch)) {
- storedEnergy += tHatch.getBaseMetaTileEntity()
- .getStoredEU();
- maxEnergy += tHatch.getBaseMetaTileEntity()
- .getEUCapacity();
- }
+ for (GT_MetaTileEntity_Hatch_Dynamo tHatch : filterValidMTEs(mDynamoHatches)) {
+ storedEnergy += tHatch.getBaseMetaTileEntity()
+ .getStoredEU();
+ maxEnergy += tHatch.getBaseMetaTileEntity()
+ .getEUCapacity();
}
return new String[] { EnumChatFormatting.BLUE + "Extreme Diesel Engine" + EnumChatFormatting.RESET,
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java
index 141e27ba16..477419bbd0 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java
@@ -11,6 +11,7 @@ import static gregtech.api.enums.Textures.BlockIcons.MACHINE_CASING_FUSION_GLASS
import static gregtech.api.enums.Textures.BlockIcons.MACHINE_CASING_FUSION_GLASS_YELLOW_GLOW;
import static gregtech.api.util.GT_StructureUtility.buildHatchAdder;
import static gregtech.api.util.GT_StructureUtility.filterByMTETier;
+import static gregtech.api.util.GT_Utility.filterValidMTEs;
import java.util.Set;
@@ -384,15 +385,14 @@ public abstract class GT_MetaTileEntity_FusionComputer
if (mMachine) {
this.mEUStore = aBaseMetaTileEntity.getStoredEU();
if (this.mEnergyHatches != null) {
- for (GT_MetaTileEntity_Hatch_Energy tHatch : mEnergyHatches)
- if (isValidMetaTileEntity(tHatch)) {
- long energyToMove = GT_Values.V[tier()] / 16;
- if (aBaseMetaTileEntity.getStoredEU() + energyToMove < maxEUStore()
- && tHatch.getBaseMetaTileEntity()
- .decreaseStoredEnergyUnits(energyToMove, false)) {
- aBaseMetaTileEntity.increaseStoredEnergyUnits(energyToMove, true);
- }
+ for (GT_MetaTileEntity_Hatch_Energy tHatch : filterValidMTEs(mEnergyHatches)) {
+ long energyToMove = GT_Values.V[tier()] / 16;
+ if (aBaseMetaTileEntity.getStoredEU() + energyToMove < maxEUStore()
+ && tHatch.getBaseMetaTileEntity()
+ .decreaseStoredEnergyUnits(energyToMove, false)) {
+ aBaseMetaTileEntity.increaseStoredEnergyUnits(energyToMove, true);
}
+ }
}
if (this.mEUStore <= 0 && mMaxProgresstime > 0) {
criticalStopMachine();
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_HeatExchanger.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_HeatExchanger.java
index 90413888b2..d0e9af397e 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_HeatExchanger.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_HeatExchanger.java
@@ -66,12 +66,12 @@ public class GT_MetaTileEntity_HeatExchanger extends
.addElement(
'C',
OutputHatch.withAdder(GT_MetaTileEntity_HeatExchanger::addColdFluidOutputToMachineList)
- .withCount(t -> isValidMetaTileEntity(t.mOutputColdFluidHatch) ? 1 : 0)
+ .withCount(t -> t.mOutputColdFluidHatch.isValid() ? 1 : 0)
.newAny(CASING_INDEX, 3))
.addElement(
'H',
OutputHatch.withAdder(GT_MetaTileEntity_HeatExchanger::addHotFluidInputToMachineList)
- .withCount(t -> isValidMetaTileEntity(t.mInputHotFluidHatch) ? 1 : 0)
+ .withCount(t -> t.mInputHotFluidHatch.isValid() ? 1 : 0)
.newAny(CASING_INDEX, 3))
.addElement(
'c',
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java
index dc30cc79f0..3f16bb3f0e 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java
@@ -14,6 +14,7 @@ import static gregtech.api.enums.Textures.BlockIcons.TURBINE_NEW;
import static gregtech.api.enums.Textures.BlockIcons.TURBINE_NEW_ACTIVE;
import static gregtech.api.enums.Textures.BlockIcons.TURBINE_NEW_EMPTY;
import static gregtech.api.util.GT_StructureUtility.buildHatchAdder;
+import static gregtech.api.util.GT_Utility.filterValidMTEs;
import java.util.ArrayList;
@@ -337,11 +338,9 @@ public abstract class GT_MetaTileEntity_LargeTurbine
// Gets the maximum output that the turbine currently can handle. Going above this will cause the turbine to explode
public long getMaximumOutput() {
long aTotal = 0;
- for (GT_MetaTileEntity_Hatch_Dynamo aDynamo : mDynamoHatches) {
- if (isValidMetaTileEntity(aDynamo)) {
- long aVoltage = aDynamo.maxEUOutput();
- aTotal = aDynamo.maxAmperesOut() * aVoltage;
- }
+ for (GT_MetaTileEntity_Hatch_Dynamo aDynamo : filterValidMTEs(mDynamoHatches)) {
+ long aVoltage = aDynamo.maxEUOutput();
+ aTotal = aDynamo.maxAmperesOut() * aVoltage;
}
return aTotal;
}
@@ -383,10 +382,8 @@ public abstract class GT_MetaTileEntity_LargeTurbine
@Override
public String[] getInfoData() {
int mPollutionReduction = 0;
- for (GT_MetaTileEntity_Hatch_Muffler tHatch : mMufflerHatches) {
- if (isValidMetaTileEntity(tHatch)) {
- mPollutionReduction = Math.max(tHatch.calculatePollutionReduction(100), mPollutionReduction);
- }
+ for (GT_MetaTileEntity_Hatch_Muffler tHatch : filterValidMTEs(mMufflerHatches)) {
+ mPollutionReduction = Math.max(tHatch.calculatePollutionReduction(100), mPollutionReduction);
}
String tRunning = mMaxProgresstime > 0
@@ -409,13 +406,11 @@ public abstract class GT_MetaTileEntity_LargeTurbine
long storedEnergy = 0;
long maxEnergy = 0;
- for (GT_MetaTileEntity_Hatch_Dynamo tHatch : mDynamoHatches) {
- if (isValidMetaTileEntity(tHatch)) {
- storedEnergy += tHatch.getBaseMetaTileEntity()
- .getStoredEU();
- maxEnergy += tHatch.getBaseMetaTileEntity()
- .getEUCapacity();
- }
+ for (GT_MetaTileEntity_Hatch_Dynamo tHatch : filterValidMTEs(mDynamoHatches)) {
+ storedEnergy += tHatch.getBaseMetaTileEntity()
+ .getStoredEU();
+ maxEnergy += tHatch.getBaseMetaTileEntity()
+ .getEUCapacity();
}
String[] ret = new String[] {
// 8 Lines available for information panels
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java
index 0eec9ef238..839e52ffc1 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java
@@ -5,6 +5,7 @@ import static gregtech.api.enums.Textures.BlockIcons.LARGETURBINE_NEW_ACTIVE5;
import static gregtech.api.enums.Textures.BlockIcons.LARGETURBINE_NEW_EMPTY5;
import static gregtech.api.enums.Textures.BlockIcons.MACHINE_CASINGS;
import static gregtech.api.enums.Textures.BlockIcons.casingTexturePages;
+import static gregtech.api.util.GT_Utility.filterValidMTEs;
import java.util.ArrayList;
@@ -284,10 +285,8 @@ public class GT_MetaTileEntity_LargeTurbine_Plasma extends GT_MetaTileEntity_Lar
@Override
public String[] getInfoData() {
int mPollutionReduction = 0;
- for (GT_MetaTileEntity_Hatch_Muffler tHatch : mMufflerHatches) {
- if (isValidMetaTileEntity(tHatch)) {
- mPollutionReduction = Math.max(tHatch.calculatePollutionReduction(100), mPollutionReduction);
- }
+ for (GT_MetaTileEntity_Hatch_Muffler tHatch : filterValidMTEs(mMufflerHatches)) {
+ mPollutionReduction = Math.max(tHatch.calculatePollutionReduction(100), mPollutionReduction);
}
String tRunning = mMaxProgresstime > 0
@@ -310,13 +309,11 @@ public class GT_MetaTileEntity_LargeTurbine_Plasma extends GT_MetaTileEntity_Lar
long storedEnergy = 0;
long maxEnergy = 0;
- for (GT_MetaTileEntity_Hatch_Dynamo tHatch : mDynamoHatches) {
- if (isValidMetaTileEntity(tHatch)) {
- storedEnergy += tHatch.getBaseMetaTileEntity()
- .getStoredEU();
- maxEnergy += tHatch.getBaseMetaTileEntity()
- .getEUCapacity();
- }
+ for (GT_MetaTileEntity_Hatch_Dynamo tHatch : filterValidMTEs(mDynamoHatches)) {
+ storedEnergy += tHatch.getBaseMetaTileEntity()
+ .getStoredEU();
+ maxEnergy += tHatch.getBaseMetaTileEntity()
+ .getEUCapacity();
}
String[] ret = new String[] {
// 8 Lines available for information panels
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiFurnace.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiFurnace.java
index c80062ff09..d210e6bd55 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiFurnace.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiFurnace.java
@@ -14,6 +14,7 @@ import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_MULTI_SMELTER
import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_MULTI_SMELTER_ACTIVE_GLOW;
import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_MULTI_SMELTER_GLOW;
import static gregtech.api.enums.Textures.BlockIcons.casingTexturePages;
+import static gregtech.api.util.GT_Utility.filterValidMTEs;
import java.util.ArrayList;
@@ -248,12 +249,12 @@ public class GT_MetaTileEntity_MultiFurnace
@Override
public String[] getInfoData() {
int mPollutionReduction = 0;
- for (final GT_MetaTileEntity_Hatch_Muffler tHatch : mMufflerHatches) if (isValidMetaTileEntity(tHatch))
+ for (final GT_MetaTileEntity_Hatch_Muffler tHatch : filterValidMTEs(mMufflerHatches))
mPollutionReduction = Math.max(tHatch.calculatePollutionReduction(100), mPollutionReduction);
long storedEnergy = 0;
long maxEnergy = 0;
- for (final GT_MetaTileEntity_Hatch_Energy tHatch : mEnergyHatches) if (isValidMetaTileEntity(tHatch)) {
+ for (final GT_MetaTileEntity_Hatch_Energy tHatch : filterValidMTEs(mEnergyHatches)) {
storedEnergy += tHatch.getBaseMetaTileEntity()
.getStoredEU();
maxEnergy += tHatch.getBaseMetaTileEntity()
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilCracker.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilCracker.java
index dce2a4f93d..1e4e83b114 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilCracker.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilCracker.java
@@ -10,6 +10,7 @@ import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_OIL_CRACKER_G
import static gregtech.api.enums.Textures.BlockIcons.casingTexturePages;
import static gregtech.api.util.GT_StructureUtility.buildHatchAdder;
import static gregtech.api.util.GT_StructureUtility.ofCoil;
+import static gregtech.api.util.GT_Utility.filterValidMTEs;
import java.util.ArrayList;
import java.util.List;
@@ -319,35 +320,31 @@ public class GT_MetaTileEntity_OilCracker extends GT_MetaTileEntity_EnhancedMult
@Override
public ArrayList<FluidStack> getStoredFluids() {
final ArrayList<FluidStack> rList = new ArrayList<>();
- for (final GT_MetaTileEntity_Hatch_Input tHatch : mInputHatches) {
+ for (final GT_MetaTileEntity_Hatch_Input tHatch : filterValidMTEs(mInputHatches)) {
tHatch.mRecipeMap = getRecipeMap();
if (tHatch instanceof GT_MetaTileEntity_Hatch_MultiInput) {
- if (isValidMetaTileEntity(tHatch)) {
- for (final FluidStack tFluid : ((GT_MetaTileEntity_Hatch_MultiInput) tHatch).getStoredFluid()) {
- if (tFluid != null && !GT_Recipe.GT_Recipe_Map.sCrackingRecipes.isValidCatalystFluid(tFluid)) {
- rList.add(tFluid);
- }
+ for (final FluidStack tFluid : ((GT_MetaTileEntity_Hatch_MultiInput) tHatch).getStoredFluid()) {
+ if (tFluid != null && !GT_Recipe.GT_Recipe_Map.sCrackingRecipes.isValidCatalystFluid(tFluid)) {
+ rList.add(tFluid);
}
}
} else {
- if (isValidMetaTileEntity(tHatch) && tHatch.getFillableStack() != null) {
+ if (tHatch.getFillableStack() != null) {
if (!GT_Recipe.GT_Recipe_Map.sCrackingRecipes.isValidCatalystFluid(tHatch.getFillableStack()))
rList.add(tHatch.getFillableStack());
}
}
}
- for (final GT_MetaTileEntity_Hatch_Input tHatch : mMiddleInputHatches) {
+ for (final GT_MetaTileEntity_Hatch_Input tHatch : filterValidMTEs(mMiddleInputHatches)) {
tHatch.mRecipeMap = getRecipeMap();
if (tHatch instanceof GT_MetaTileEntity_Hatch_MultiInput) {
- if (isValidMetaTileEntity(tHatch)) {
- for (final FluidStack tFluid : ((GT_MetaTileEntity_Hatch_MultiInput) tHatch).getStoredFluid()) {
- if (tFluid != null && GT_Recipe.GT_Recipe_Map.sCrackingRecipes.isValidCatalystFluid(tFluid)) {
- rList.add(tFluid);
- }
+ for (final FluidStack tFluid : ((GT_MetaTileEntity_Hatch_MultiInput) tHatch).getStoredFluid()) {
+ if (tFluid != null && GT_Recipe.GT_Recipe_Map.sCrackingRecipes.isValidCatalystFluid(tFluid)) {
+ rList.add(tFluid);
}
}
} else {
- if (isValidMetaTileEntity(tHatch) && tHatch.getFillableStack() != null) {
+ if (tHatch.getFillableStack() != null) {
final FluidStack tStack = tHatch.getFillableStack();
if (GT_Recipe.GT_Recipe_Map.sCrackingRecipes.isValidCatalystFluid(tStack)) {
rList.add(tStack);
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PCBFactory.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PCBFactory.java
index faceb85e46..60d0d5b5a3 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PCBFactory.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PCBFactory.java
@@ -16,6 +16,7 @@ import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_ASSEMBLY_LINE
import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_ASSEMBLY_LINE_GLOW;
import static gregtech.api.util.GT_StructureUtility.buildHatchAdder;
import static gregtech.api.util.GT_StructureUtility.ofFrame;
+import static gregtech.api.util.GT_Utility.filterValidMTEs;
import java.util.ArrayList;
import java.util.List;
@@ -773,21 +774,17 @@ public class GT_MetaTileEntity_PCBFactory extends
@Override
public String[] getInfoData() {
int mPollutionReduction = 0;
- for (GT_MetaTileEntity_Hatch_Muffler tHatch : mMufflerHatches) {
- if (isValidMetaTileEntity(tHatch)) {
- mPollutionReduction = Math.max(tHatch.calculatePollutionReduction(100), mPollutionReduction);
- }
+ for (GT_MetaTileEntity_Hatch_Muffler tHatch : filterValidMTEs(mMufflerHatches)) {
+ mPollutionReduction = Math.max(tHatch.calculatePollutionReduction(100), mPollutionReduction);
}
long storedEnergy = 0;
long maxEnergy = 0;
for (GT_MetaTileEntity_Hatch tHatch : getExoticAndNormalEnergyHatchList()) {
- if (isValidMetaTileEntity(tHatch)) {
- storedEnergy += tHatch.getBaseMetaTileEntity()
- .getStoredEU();
- maxEnergy += tHatch.getBaseMetaTileEntity()
- .getEUCapacity();
- }
+ storedEnergy += tHatch.getBaseMetaTileEntity()
+ .getStoredEU();
+ maxEnergy += tHatch.getBaseMetaTileEntity()
+ .getEUCapacity();
}
long voltage = getAverageInputVoltage();
long amps = getMaxInputAmps();
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PlasmaForge.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PlasmaForge.java
index 7beb6e65b6..7c17018cf9 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PlasmaForge.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PlasmaForge.java
@@ -16,6 +16,7 @@ import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FUSION1_GLOW;
import static gregtech.api.enums.Textures.BlockIcons.casingTexturePages;
import static gregtech.api.util.GT_StructureUtility.buildHatchAdder;
import static gregtech.api.util.GT_StructureUtility.ofCoil;
+import static gregtech.api.util.GT_Utility.filterValidMTEs;
import static java.lang.Math.floor;
import static java.lang.Math.log;
import static java.lang.Math.pow;
@@ -847,13 +848,11 @@ public class GT_MetaTileEntity_PlasmaForge extends GT_MetaTileEntity_AbstractMul
long storedEnergy = 0;
long maxEnergy = 0;
- for (GT_MetaTileEntity_Hatch tHatch : mExoticEnergyHatches) {
- if (isValidMetaTileEntity(tHatch)) {
- storedEnergy += tHatch.getBaseMetaTileEntity()
- .getStoredEU();
- maxEnergy += tHatch.getBaseMetaTileEntity()
- .getEUCapacity();
- }
+ for (GT_MetaTileEntity_Hatch tHatch : filterValidMTEs(mExoticEnergyHatches)) {
+ storedEnergy += tHatch.getBaseMetaTileEntity()
+ .getStoredEU();
+ maxEnergy += tHatch.getBaseMetaTileEntity()
+ .getEUCapacity();
}
return new String[] { "------------ Critical Information ------------",
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java
index fa8d927bc1..67500e8e59 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java
@@ -19,6 +19,7 @@ import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_PROCESSING_AR
import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_PROCESSING_ARRAY_GLOW;
import static gregtech.api.metatileentity.BaseTileEntity.TOOLTIP_DELAY;
import static gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine.isValidForLowGravity;
+import static gregtech.api.util.GT_Utility.filterValidMTEs;
import java.util.List;
@@ -399,13 +400,11 @@ public class GT_MetaTileEntity_ProcessingArray extends
public String[] getInfoData() {
long storedEnergy = 0;
long maxEnergy = 0;
- for (GT_MetaTileEntity_Hatch tHatch : mExoticEnergyHatches) {
- if (isValidMetaTileEntity(tHatch)) {
- storedEnergy += tHatch.getBaseMetaTileEntity()
- .getStoredEU();
- maxEnergy += tHatch.getBaseMetaTileEntity()
- .getEUCapacity();
- }
+ for (GT_MetaTileEntity_Hatch tHatch : filterValidMTEs(mExoticEnergyHatches)) {
+ storedEnergy += tHatch.getBaseMetaTileEntity()
+ .getStoredEU();
+ maxEnergy += tHatch.getBaseMetaTileEntity()
+ .getEUCapacity();
}
return new String[] {