aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/goodgenerator/blocks/tileEntity
diff options
context:
space:
mode:
authorMaxim <maxim235@gmx.de>2023-07-17 10:21:49 +0200
committerGitHub <noreply@github.com>2023-07-17 10:21:49 +0200
commit328376ff618b14aac4ba57d790066129c8ad95e8 (patch)
tree9a59d8ff7708ae1565d074b8805b28882e7b7581 /src/main/java/goodgenerator/blocks/tileEntity
parentd80fe13bf409ad11ffc8ddc34375c64be06da771 (diff)
downloadGT5-Unofficial-328376ff618b14aac4ba57d790066129c8ad95e8.tar.gz
GT5-Unofficial-328376ff618b14aac4ba57d790066129c8ad95e8.tar.bz2
GT5-Unofficial-328376ff618b14aac4ba57d790066129c8ad95e8.zip
Implement generic processing logic (#176)
* Removed deprecated bartworks interface * Migrated PrAss * Migrated CoAL * Migrated CoolantTower * Migrated EHE * Migrated compacts * Migrated large turbine base * Migrated UCFE * Migrated FRF * Migrated naq gen * Migrated YOTTA * Migrated LEG * Migrated LES * Migrated NA * Updated deps * Updated deps * Derp * Fixed PrAss in precise mode * Added missing GPL getters in NA * Fixed power of NA * Enabled batch mode and void protection in FRF * Addressed reviews * Deleted LongPowerUsageBase in favor of ExtendedPowerMultiBlockBase * Addressed reviews * Limit recipe duration to 1 tick * Updated dep
Diffstat (limited to 'src/main/java/goodgenerator/blocks/tileEntity')
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/ComponentAssemblyLine.java61
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/CoolantTower.java8
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/ExtremeHeatExchanger.java12
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/FuelRefineFactory.java129
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaGenerator.java8
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaSmeltery.java14
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/MegaPlasmaTurbine.java52
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java30
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/NeutronActivator.java102
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/PreciseAssembler.java111
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/UniversalChemicalFuelEngine.java14
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/YottaFluidTank.java13
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/base/GT_MetaTileEntity_LargeTurbineBase.java30
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/base/GT_MetaTileEntity_LongPowerUsageBase.java174
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/base/LargeFusionComputer.java18
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/base/LargeFusionComputerPP.java18
16 files changed, 260 insertions, 534 deletions
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/ComponentAssemblyLine.java b/src/main/java/goodgenerator/blocks/tileEntity/ComponentAssemblyLine.java
index 1dfdfa91eb..88527f803e 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/ComponentAssemblyLine.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/ComponentAssemblyLine.java
@@ -5,7 +5,6 @@ import static goodgenerator.util.DescTextLocalization.BLUE_PRINT_INFO;
import static gregtech.api.enums.GT_HatchElement.*;
import static gregtech.api.enums.Textures.BlockIcons.*;
-import java.util.ArrayList;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
@@ -15,16 +14,15 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.StatCollector;
import net.minecraftforge.common.util.ForgeDirection;
-import net.minecraftforge.fluids.FluidStack;
import org.apache.commons.lang3.tuple.Pair;
+import org.jetbrains.annotations.NotNull;
import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable;
import com.gtnewhorizon.structurelib.structure.IStructureDefinition;
import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment;
import com.gtnewhorizon.structurelib.structure.StructureDefinition;
-import goodgenerator.blocks.tileEntity.base.GT_MetaTileEntity_LongPowerUsageBase;
import goodgenerator.loader.Loaders;
import goodgenerator.util.MyRecipeAdder;
import gregtech.api.GregTech_API;
@@ -34,18 +32,20 @@ import gregtech.api.enums.Textures;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_InputBus;
+import gregtech.api.logic.ProcessingLogic;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_ExtendedPowerMultiBlockBase;
+import gregtech.api.recipe.check.CheckRecipeResult;
+import gregtech.api.recipe.check.CheckRecipeResultRegistry;
import gregtech.api.render.TextureFactory;
import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_StructureUtility;
import gregtech.api.util.GT_Utility;
-public class ComponentAssemblyLine extends GT_MetaTileEntity_LongPowerUsageBase<ComponentAssemblyLine>
+public class ComponentAssemblyLine extends GT_MetaTileEntity_ExtendedPowerMultiBlockBase<ComponentAssemblyLine>
implements ISurvivalConstructable {
private int casingTier;
- private GT_Recipe lastRecipe;
protected static final String STRUCTURE_PIECE_MAIN = "main";
private static final IStructureDefinition<ComponentAssemblyLine> STRUCTURE_DEFINITION = StructureDefinition
.<ComponentAssemblyLine>builder()
@@ -262,45 +262,24 @@ public class ComponentAssemblyLine extends GT_MetaTileEntity_LongPowerUsageBase<
}
@Override
- public boolean checkRecipe(ItemStack aStack) {
- this.mEfficiencyIncrease = 10000;
- this.mEfficiency = (10000 - (this.getIdealStatus() - this.getRepairStatus()) * 1000);
- FluidStack[] tFluids = getStoredFluids().toArray(new FluidStack[0]);
-
- if (inputSeparation) {
- ArrayList<ItemStack> tInputList = new ArrayList<>();
- for (GT_MetaTileEntity_Hatch_InputBus tHatch : mInputBusses) {
- IGregTechTileEntity tInputBus = tHatch.getBaseMetaTileEntity();
- for (int i = tInputBus.getSizeInventory() - 1; i >= 0; i--) {
- if (tInputBus.getStackInSlot(i) != null) tInputList.add(tInputBus.getStackInSlot(i));
+ protected ProcessingLogic createProcessingLogic() {
+ return new ProcessingLogic() {
+
+ @NotNull
+ @Override
+ protected CheckRecipeResult validateRecipe(@NotNull GT_Recipe recipe) {
+ if (recipe.mSpecialValue > casingTier + 1) {
+ return CheckRecipeResultRegistry.insufficientMachineTier(recipe.mSpecialValue);
}
- ItemStack[] tInputs = tInputList.toArray(new ItemStack[0]);
- if (processRecipe(tInputs, tFluids)) return true;
- else tInputList.clear();
+ return CheckRecipeResultRegistry.SUCCESSFUL;
}
- } else {
- ItemStack[] tItems = getStoredInputs().toArray(new ItemStack[0]);
- return processRecipe(tItems, tFluids);
- }
- return false;
+ };
}
- private boolean processRecipe(ItemStack[] tInputs, FluidStack[] tFluidInputs) {
- long totalEU = getRealVoltage();
- this.lastRecipe = getRecipeMap()
- .findRecipe(getBaseMetaTileEntity(), this.lastRecipe, false, totalEU, tFluidInputs, tInputs);
- if (this.lastRecipe == null) return false;
- if (this.lastRecipe.mSpecialValue > casingTier + 1) return false;
- if (!this.lastRecipe.isRecipeInputEqual(true, tFluidInputs, tInputs)) return false;
-
- calculateOverclockedNessMulti((long) this.lastRecipe.mEUt, this.lastRecipe.mDuration, 1, totalEU);
- if (this.lEUt > 0) {
- this.lEUt = (-this.lEUt);
- }
-
- mOutputItems = this.lastRecipe.mOutputs;
- updateSlots();
- return true;
+ @Override
+ protected void setProcessingLogicPower(ProcessingLogic logic) {
+ logic.setAvailableVoltage(getMaxInputEu());
+ logic.setAvailableAmperage(1);
}
@Override
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/CoolantTower.java b/src/main/java/goodgenerator/blocks/tileEntity/CoolantTower.java
index 73d33f961f..c1edce0e15 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/CoolantTower.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/CoolantTower.java
@@ -10,6 +10,8 @@ import net.minecraft.item.ItemStack;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.FluidStack;
+import org.jetbrains.annotations.NotNull;
+
import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM;
import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable;
import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable;
@@ -29,6 +31,8 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_MultiInput;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output;
+import gregtech.api.recipe.check.CheckRecipeResult;
+import gregtech.api.recipe.check.CheckRecipeResultRegistry;
import gregtech.api.render.TextureFactory;
import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
@@ -188,7 +192,7 @@ public class CoolantTower extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
}
@Override
- public boolean checkRecipe_EM(ItemStack aStack) {
+ protected @NotNull CheckRecipeResult checkProcessing_EM() {
this.mMaxProgresstime = 20;
int steam = 0;
@@ -196,7 +200,7 @@ public class CoolantTower extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
steam += maybeDrainHatch(tHatch);
}
addOutput(GT_ModHandler.getDistilledWater(steam / 160));
- return true;
+ return CheckRecipeResultRegistry.SUCCESSFUL;
}
private int maybeDrainHatch(GT_MetaTileEntity_Hatch_Input tHatch) {
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/ExtremeHeatExchanger.java b/src/main/java/goodgenerator/blocks/tileEntity/ExtremeHeatExchanger.java
index 9e30e744c7..4abbe01058 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/ExtremeHeatExchanger.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/ExtremeHeatExchanger.java
@@ -21,6 +21,8 @@ import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidStack;
+import org.jetbrains.annotations.NotNull;
+
import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable;
import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable;
import com.gtnewhorizon.structurelib.structure.IItemSource;
@@ -41,6 +43,8 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output;
import gregtech.api.multitileentity.multiblock.casing.Glasses;
+import gregtech.api.recipe.check.CheckRecipeResult;
+import gregtech.api.recipe.check.CheckRecipeResultRegistry;
import gregtech.api.render.TextureFactory;
import gregtech.api.util.*;
@@ -190,12 +194,12 @@ public class ExtremeHeatExchanger extends GT_MetaTileEntity_TooltipMultiBlockBas
}
@Override
- public boolean checkRecipe_EM(ItemStack aStack) {
+ public @NotNull CheckRecipeResult checkProcessing_EM() {
tRunningRecipe = null;
- if (mHotFluidHatch.getFluid() == null) return true;
+ if (mHotFluidHatch.getFluid() == null) return CheckRecipeResultRegistry.SUCCESSFUL;
MyRecipeAdder.ExtremeHeatExchangerRecipe tRecipe = MyRecipeAdder.mXHeatExchangerFuelMap
.get(mHotFluidHatch.getFluid().getFluid());
- if (tRecipe == null) return false;
+ if (tRecipe == null) return CheckRecipeResultRegistry.NO_RECIPE;
tRunningRecipe = tRecipe;
this.hotName = mHotFluidHatch.getFluid().getFluid().getName();
int tMaxConsume = tRecipe.getMaxHotFluidConsume();
@@ -224,7 +228,7 @@ public class ExtremeHeatExchanger extends GT_MetaTileEntity_TooltipMultiBlockBas
mCooledFluidHatch.fill(new FluidStack(tRecipe.getCooledFluid(), tRealConsume), true);
this.mEfficiencyIncrease = 160;
- return true;
+ return CheckRecipeResultRegistry.SUCCESSFUL;
}
@Override
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/FuelRefineFactory.java b/src/main/java/goodgenerator/blocks/tileEntity/FuelRefineFactory.java
index d386cff34a..60dd527f83 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/FuelRefineFactory.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/FuelRefineFactory.java
@@ -2,12 +2,8 @@ package goodgenerator.blocks.tileEntity;
import static com.gtnewhorizon.structurelib.structure.StructureUtility.*;
import static goodgenerator.util.DescTextLocalization.BLUE_PRINT_INFO;
-import static gregtech.api.enums.GT_Values.V;
import static gregtech.api.util.GT_StructureUtility.buildHatchAdder;
-import java.util.ArrayList;
-import java.util.List;
-
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack;
@@ -15,11 +11,10 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
-import net.minecraftforge.fluids.FluidStack;
-import com.github.bartimaeusnek.crossmod.tectech.TecTechEnabledMulti;
+import org.jetbrains.annotations.NotNull;
+
import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti;
-import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyTunnel;
import com.gtnewhorizon.structurelib.StructureLibAPI;
import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable;
import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable;
@@ -37,15 +32,19 @@ import gregtech.api.enums.Textures;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.logic.ProcessingLogic;
import gregtech.api.metatileentity.implementations.*;
import gregtech.api.objects.GT_RenderedTexture;
+import gregtech.api.recipe.check.CheckRecipeResult;
+import gregtech.api.recipe.check.CheckRecipeResultRegistry;
import gregtech.api.render.TextureFactory;
import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
+import gregtech.api.util.GT_OverclockCalculator;
+import gregtech.api.util.GT_ParallelHelper;
import gregtech.api.util.GT_Recipe;
-import gregtech.api.util.GT_Utility;
public class FuelRefineFactory extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
- implements TecTechEnabledMulti, IConstructable, ISurvivalConstructable {
+ implements IConstructable, ISurvivalConstructable {
private IStructureDefinition<FuelRefineFactory> multiDefinition = null;
private int Tier = -1;
@@ -54,25 +53,17 @@ public class FuelRefineFactory extends GT_MetaTileEntity_TooltipMultiBlockBase_E
public FuelRefineFactory(String name) {
super(name);
+ turnOffMaintenance();
}
public FuelRefineFactory(int id, String name, String nameRegional) {
super(id, name, nameRegional);
+ turnOffMaintenance();
}
@Override
- public List<GT_MetaTileEntity_Hatch_Energy> getVanillaEnergyHatches() {
- return this.mEnergyHatches;
- }
-
- @Override
- public List<GT_MetaTileEntity_Hatch_EnergyTunnel> getTecTechEnergyTunnels() {
- return new ArrayList<>();
- }
-
- @Override
- public List<GT_MetaTileEntity_Hatch_EnergyMulti> getTecTechEnergyMultis() {
- return new ArrayList<>();
+ public void onFirstTick_EM(IGregTechTileEntity aBaseMetaTileEntity) {
+ if (!hasMaintenanceChecks) turnOffMaintenance();
}
@Override
@@ -190,12 +181,6 @@ public class FuelRefineFactory extends GT_MetaTileEntity_TooltipMultiBlockBase_E
cnt[0] = 0;
cnt[1] = 0;
cnt[2] = 0;
- mWrench = true;
- mScrewdriver = true;
- mSoftHammer = true;
- mHardHammer = true;
- mSolderingTool = true;
- mCrowbar = true;
return structureCheck_EM(mName, 7, 12, 1) && getTier() != -1;
}
@@ -211,64 +196,38 @@ public class FuelRefineFactory extends GT_MetaTileEntity_TooltipMultiBlockBase_E
}
@Override
- public boolean checkRecipe_EM(ItemStack aStack) {
-
- mWrench = true;
- mScrewdriver = true;
- mSoftHammer = true;
- mHardHammer = true;
- mSolderingTool = true;
- mCrowbar = true;
-
- ArrayList<FluidStack> tFluids = getStoredFluids();
- ArrayList<ItemStack> tItems = getStoredInputs();
- MyRecipeAdder.NaqFuelRefineMapper tRecipes = MyRecipeAdder.instance.FRF;
-
- for (int i = 0; i < tFluids.size() - 1; i++) {
- for (int j = i + 1; j < tFluids.size(); j++) {
- if (GT_Utility.areFluidsEqual(tFluids.get(i), tFluids.get(j))) {
- if ((tFluids.get(i)).amount >= (tFluids.get(j)).amount) {
- tFluids.remove(j--);
- } else {
- tFluids.remove(i--);
- break;
- }
- }
- }
- }
+ public GT_Recipe.GT_Recipe_Map getRecipeMap() {
+ return MyRecipeAdder.instance.FRF;
+ }
- for (int i = 0; i < tItems.size() - 1; i++) {
- for (int j = i + 1; j < tItems.size(); j++) {
- if (GT_Utility.areStacksEqual(tItems.get(i), tItems.get(j))) {
- if ((tItems.get(i)).stackSize >= (tItems.get(j)).stackSize) {
- tItems.remove(j--);
- } else {
- tItems.remove(i--);
- break;
- }
+ @Override
+ protected ProcessingLogic createProcessingLogic() {
+ return new ProcessingLogic() {
+
+ @NotNull
+ @Override
+ protected CheckRecipeResult validateRecipe(@NotNull GT_Recipe recipe) {
+ if (recipe.mSpecialValue > Tier) {
+ return CheckRecipeResultRegistry.insufficientMachineTier(recipe.mSpecialValue);
}
+ return CheckRecipeResultRegistry.SUCCESSFUL;
}
- }
- FluidStack[] inFluids = tFluids.toArray(new FluidStack[0]);
- ItemStack[] inItems = tItems.toArray(new ItemStack[0]);
- this.mEfficiency = 10000;
-
- long tPower = getMaxInputEnergy_EM();
- byte tTier = (byte) Math.max(1, GT_Utility.getTier(tPower));
- GT_Recipe recipe = tRecipes.findRecipe(this.getBaseMetaTileEntity(), false, V[tTier], inFluids, inItems);
- if (recipe != null) {
- if (recipe.mSpecialValue > Tier) return false;
- if (recipe.isRecipeInputEqual(true, inFluids, inItems)) {
- mEUt = recipe.mEUt * (1 << (Tier - recipe.mSpecialValue));
- mEUt = -Math.abs(mEUt);
- mMaxProgresstime = recipe.mDuration / (1 << (Tier - recipe.mSpecialValue));
- this.mOutputFluids = recipe.mFluidOutputs;
- this.updateSlots();
- return true;
+ @NotNull
+ @Override
+ protected GT_OverclockCalculator createOverclockCalculator(@NotNull GT_Recipe recipe,
+ @NotNull GT_ParallelHelper helper) {
+ long ocFactor = 1L << (Tier - recipe.mSpecialValue);
+ return GT_OverclockCalculator
+ .ofNoOverclock(((long) recipe.mEUt) * ocFactor, (int) Math.max(recipe.mDuration / ocFactor, 1));
}
- }
- return false;
+ };
+ }
+
+ @Override
+ protected void setProcessingLogicPower(ProcessingLogic logic) {
+ logic.setAvailableVoltage(getMaxInputEu());
+ logic.setAvailableAmperage(1);
}
public final boolean addToFRFList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) {
@@ -338,6 +297,16 @@ public class FuelRefineFactory extends GT_MetaTileEntity_TooltipMultiBlockBase_E
}
@Override
+ public boolean supportsBatchMode() {
+ return true;
+ }
+
+ @Override
+ public boolean supportsVoidProtection() {
+ return true;
+ }
+
+ @Override
@SuppressWarnings("ALL")
public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, ForgeDirection side, ForgeDirection facing,
int colorIndex, boolean aActive, boolean aRedstone) {
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaGenerator.java b/src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaGenerator.java
index a1c02cb838..8b35e0be66 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaGenerator.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaGenerator.java
@@ -16,6 +16,8 @@ import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.FluidRegistry;
+import org.jetbrains.annotations.NotNull;
+
import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader;
import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_DynamoMulti;
import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_DynamoTunnel;
@@ -43,6 +45,8 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Maintenance;
import gregtech.api.objects.GT_RenderedTexture;
import gregtech.api.objects.XSTR;
+import gregtech.api.recipe.check.CheckRecipeResult;
+import gregtech.api.recipe.check.CheckRecipeResultRegistry;
import gregtech.api.render.TextureFactory;
import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
import gregtech.api.util.GT_Utility;
@@ -237,11 +241,11 @@ public class LargeEssentiaGenerator extends GT_MetaTileEntity_TooltipMultiBlockB
}
@Override
- public boolean checkRecipe_EM(ItemStack aStack) {
+ public @NotNull CheckRecipeResult checkProcessing_EM() {
this.mEfficiency = 10000;
this.mMaxProgresstime = 1;
setEssentiaToEUVoltageAndAmp(getVoltageLimit(), getAmpLimit());
- return true;
+ return CheckRecipeResultRegistry.GENERATING;
}
public int getVoltageLimit() {
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaSmeltery.java b/src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaSmeltery.java
index 71ee2203df..ce2b6b4c65 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaSmeltery.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaSmeltery.java
@@ -17,6 +17,8 @@ import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
+import org.jetbrains.annotations.NotNull;
+
import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti;
import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM;
import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable;
@@ -37,6 +39,9 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.implementations.*;
import gregtech.api.objects.XSTR;
+import gregtech.api.recipe.check.CheckRecipeResult;
+import gregtech.api.recipe.check.CheckRecipeResultRegistry;
+import gregtech.api.recipe.check.SimpleCheckRecipeResult;
import gregtech.api.render.TextureFactory;
import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
import thaumcraft.api.aspects.Aspect;
@@ -279,13 +284,12 @@ public class LargeEssentiaSmeltery extends GT_MetaTileEntity_TooltipMultiBlockBa
}
@Override
- public boolean checkRecipe_EM(ItemStack aStack) {
- if (!isFullPower()) return false;
+ public @NotNull CheckRecipeResult checkProcessing_EM() {
+ if (!isFullPower()) return SimpleCheckRecipeResult.ofFailure("node_too_small");
ArrayList<ItemStack> tInputList = getStoredInputs();
- // ArrayList<FluidStack> tFluidList = getStoredFluids();
- if (tInputList.size() == 0) return false;
+ if (tInputList.size() == 0) return CheckRecipeResultRegistry.NO_RECIPE;
int p = (int) this.mParallel;
for (int i = tInputList.size() - 1; i >= 0; i--) {
@@ -327,7 +331,7 @@ public class LargeEssentiaSmeltery extends GT_MetaTileEntity_TooltipMultiBlockBa
this.updateSlots();
if (this.mEUt > 0) this.mEUt = -this.mEUt;
- return true;
+ return CheckRecipeResultRegistry.SUCCESSFUL;
}
private AspectList getEssentia(ItemStack itemStack, int amount) {
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/MegaPlasmaTurbine.java b/src/main/java/goodgenerator/blocks/tileEntity/MegaPlasmaTurbine.java
deleted file mode 100644
index 364b030b26..0000000000
--- a/src/main/java/goodgenerator/blocks/tileEntity/MegaPlasmaTurbine.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package goodgenerator.blocks.tileEntity;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import net.minecraft.item.ItemStack;
-
-import com.github.bartimaeusnek.crossmod.tectech.TecTechEnabledMulti;
-import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti;
-import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyTunnel;
-import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable;
-import com.gtnewhorizon.structurelib.structure.IStructureDefinition;
-
-import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy;
-import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_LargeTurbine_Plasma;
-
-public class MegaPlasmaTurbine extends GT_MetaTileEntity_LargeTurbine_Plasma
- implements TecTechEnabledMulti, IConstructable {
-
- private IStructureDefinition<MegaPlasmaTurbine> multiDefinition = null;
-
- public MegaPlasmaTurbine(String name) {
- super(name);
- }
-
- public MegaPlasmaTurbine(int id, String name, String nameRegional) {
- super(id, name, nameRegional);
- }
-
- @Override
- public void construct(ItemStack itemStack, boolean b) {}
-
- @Override
- public String[] getStructureDescription(ItemStack itemStack) {
- return new String[0];
- }
-
- @Override
- public List<GT_MetaTileEntity_Hatch_Energy> getVanillaEnergyHatches() {
- return this.mEnergyHatches;
- }
-
- @Override
- public List<GT_MetaTileEntity_Hatch_EnergyTunnel> getTecTechEnergyTunnels() {
- return new ArrayList<>();
- }
-
- @Override
- public List<GT_MetaTileEntity_Hatch_EnergyMulti> getTecTechEnergyMultis() {
- return new ArrayList<>();
- }
-}
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java b/src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java
index 81db81a048..7e86888ea6 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java
@@ -17,11 +17,10 @@ import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fluids.FluidStack;
+import org.jetbrains.annotations.NotNull;
+
import com.github.bartimaeusnek.bartworks.util.Pair;
-import com.github.bartimaeusnek.crossmod.tectech.TecTechEnabledMulti;
import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_DynamoMulti;
-import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti;
-import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyTunnel;
import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable;
import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable;
import com.gtnewhorizon.structurelib.structure.IItemSource;
@@ -43,13 +42,15 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.implementations.*;
import gregtech.api.objects.GT_RenderedTexture;
+import gregtech.api.recipe.check.CheckRecipeResult;
+import gregtech.api.recipe.check.CheckRecipeResultRegistry;
import gregtech.api.render.TextureFactory;
import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Utility;
public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
- implements TecTechEnabledMulti, IConstructable, ISurvivalConstructable {
+ implements IConstructable, ISurvivalConstructable {
protected IStructureDefinition<MultiNqGenerator> multiDefinition = null;
protected long leftEnergy = 0;
@@ -184,7 +185,7 @@ public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
}
@Override
- public boolean checkRecipe_EM(ItemStack aStack) {
+ public @NotNull CheckRecipeResult checkProcessing_EM() {
ArrayList<FluidStack> tFluids = getStoredFluids();
@@ -215,11 +216,11 @@ public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
times = pall;
lockedFluid = excitedInfo == null ? null : excitedInfo.getKey();
mMaxProgresstime = tRecipe.mDuration;
- return true;
+ return CheckRecipeResultRegistry.GENERATING;
}
}
- return false;
+ return CheckRecipeResultRegistry.NO_FUEL_FOUND;
}
@Override
@@ -417,21 +418,6 @@ public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
}
@Override
- public List<GT_MetaTileEntity_Hatch_Energy> getVanillaEnergyHatches() {
- return this.mEnergyHatches;
- }
-
- @Override
- public List<GT_MetaTileEntity_Hatch_EnergyTunnel> getTecTechEnergyTunnels() {
- return new ArrayList<>();
- }
-
- @Override
- public List<GT_MetaTileEntity_Hatch_EnergyMulti> getTecTechEnergyMultis() {
- return new ArrayList<>();
- }
-
- @Override
public int survivalConstruct(ItemStack stackSize, int elementBudget, IItemSource source, EntityPlayerMP actor) {
if (mMachine) return -1;
return survivialBuildPiece(mName, stackSize, 3, 7, 0, elementBudget, source, actor, false, true);
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/NeutronActivator.java b/src/main/java/goodgenerator/blocks/tileEntity/NeutronActivator.java
index 8bbf7d8030..e555069e16 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/NeutronActivator.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/NeutronActivator.java
@@ -1,7 +1,5 @@
package goodgenerator.blocks.tileEntity;
-import static com.github.bartimaeusnek.bartworks.util.RecipeFinderForParallel.getMultiOutput;
-import static com.github.bartimaeusnek.bartworks.util.RecipeFinderForParallel.handleParallelRecipe;
import static com.gtnewhorizon.structurelib.structure.StructureUtility.*;
import static goodgenerator.util.DescTextLocalization.BLUE_PRINT_INFO;
import static gregtech.api.util.GT_StructureUtility.buildHatchAdder;
@@ -16,9 +14,9 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.StatCollector;
import net.minecraftforge.common.util.ForgeDirection;
-import net.minecraftforge.fluids.FluidStack;
-import com.github.bartimaeusnek.bartworks.util.Pair;
+import org.jetbrains.annotations.NotNull;
+
import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable;
import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable;
import com.gtnewhorizon.structurelib.structure.IItemSource;
@@ -46,9 +44,11 @@ import gregtech.api.interfaces.IIconContainer;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.logic.ProcessingLogic;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch;
import gregtech.api.multitileentity.multiblock.casing.Glasses;
import gregtech.api.objects.XSTR;
+import gregtech.api.recipe.check.CheckRecipeResult;
import gregtech.api.render.TextureFactory;
import gregtech.api.util.*;
@@ -85,50 +85,42 @@ public class NeutronActivator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
}
@Override
- public boolean checkRecipe_EM(ItemStack aStack) {
- this.mEfficiency = 10000;
-
- FluidStack[] inFluids = getStoredFluids().toArray(new FluidStack[0]);
- ItemStack[] inItems = getStoredInputs().toArray(new ItemStack[0]);
- int minNKE, maxNKE;
-
- lastRecipe = getRecipeMap()
- .findRecipe(this.getBaseMetaTileEntity(), lastRecipe, false, Integer.MAX_VALUE, inFluids, inItems);
-
- if (lastRecipe != null) {
- minNKE = (lastRecipe.mSpecialValue % 10000) * 1000000;
- maxNKE = (lastRecipe.mSpecialValue / 10000) * 1000000;
- if (batchMode) {
- int pall = handleParallelRecipe(lastRecipe, inFluids, inItems, 128);
- if (pall > 0) {
- mFloor = minNKE;
- mCeil = maxNKE;
- mMaxProgresstime = Math.max((int) (lastRecipe.mDuration * pall * Math.pow(0.9, height - 4)), 1);
- Pair<ArrayList<FluidStack>, ArrayList<ItemStack>> Outputs = getMultiOutput(this.lastRecipe, pall);
- if (eV <= maxNKE && eV >= minNKE) {
- this.mOutputFluids = Outputs.getKey().toArray(new FluidStack[0]);
- this.mOutputItems = Outputs.getValue().toArray(new ItemStack[0]);
- } else {
- this.mOutputFluids = null;
- this.mOutputItems = new ItemStack[] { ItemRefer.Radioactive_Waste.get(4) };
- }
- return true;
+ protected ProcessingLogic createProcessingLogic() {
+ return new ProcessingLogic() {
+
+ @NotNull
+ @Override
+ protected GT_OverclockCalculator createOverclockCalculator(@NotNull GT_Recipe recipe,
+ @NotNull GT_ParallelHelper helper) {
+ return GT_OverclockCalculator.ofNoOverclock(recipe)
+ .setDuration((int) (recipe.mDuration * Math.pow(0.9f, height - 4)));
+ }
+
+ @NotNull
+ @Override
+ public CheckRecipeResult process() {
+ CheckRecipeResult result = super.process();
+ if (!result.wasSuccessful()) {
+ return result;
}
- } else if (lastRecipe.isRecipeInputEqual(true, inFluids, inItems)) {
- mFloor = minNKE;
- mCeil = maxNKE;
- mMaxProgresstime = Math.max((int) (lastRecipe.mDuration * Math.pow(0.9, height - 4)), 1);
- if (eV <= maxNKE && eV >= minNKE) {
- this.mOutputFluids = lastRecipe.mFluidOutputs;
- this.mOutputItems = lastRecipe.mOutputs;
- } else {
- this.mOutputFluids = null;
- this.mOutputItems = new ItemStack[] { ItemRefer.Radioactive_Waste.get(4) };
+ mFloor = (lastRecipe.mSpecialValue % 10000) * 1000000;
+ mCeil = (lastRecipe.mSpecialValue / 10000) * 1000000;
+ if (eV > mCeil || eV < mFloor) {
+ setOutputItems(ItemRefer.Radioactive_Waste.get(4));
}
- return true;
+ // NA does not consume power, its hatches do. Set it to 0 to be sure
+ calculatedEut = 0;
+ return result;
}
- }
- return false;
+ };
+ }
+
+ @Override
+ protected void setProcessingLogicPower(ProcessingLogic logic) {
+ // NA does not use power, to prevent GT_ParallelHelper from failing we trick it into thinking
+ // we have infinite power
+ logic.setAvailableVoltage(Long.MAX_VALUE);
+ logic.setAvailableAmperage(1);
}
@Override
@@ -283,6 +275,26 @@ public class NeutronActivator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
}
@Override
+ public boolean supportsBatchMode() {
+ return true;
+ }
+
+ @Override
+ public boolean supportsVoidProtection() {
+ return true;
+ }
+
+ @Override
+ public boolean protectsExcessItem() {
+ return !eSafeVoid;
+ }
+
+ @Override
+ public boolean protectsExcessFluid() {
+ return !eSafeVoid;
+ }
+
+ @Override
public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
return new NeutronActivator(this.mName);
}
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/PreciseAssembler.java b/src/main/java/goodgenerator/blocks/tileEntity/PreciseAssembler.java
index eb4ad6a79f..86b16fe67d 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/PreciseAssembler.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/PreciseAssembler.java
@@ -1,15 +1,12 @@
package goodgenerator.blocks.tileEntity;
import static com.github.bartimaeusnek.bartworks.util.BW_Util.ofGlassTieredMixed;
-import static com.github.bartimaeusnek.bartworks.util.RecipeFinderForParallel.getMultiOutput;
-import static com.github.bartimaeusnek.bartworks.util.RecipeFinderForParallel.handleParallelRecipe;
import static com.gtnewhorizon.structurelib.structure.StructureUtility.*;
import static goodgenerator.util.DescTextLocalization.BLUE_PRINT_INFO;
import static gregtech.api.enums.GT_HatchElement.*;
import static gregtech.api.metatileentity.BaseTileEntity.TOOLTIP_DELAY;
import static gregtech.api.util.GT_StructureUtility.ofFrame;
-import java.util.ArrayList;
import java.util.Collections;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
@@ -20,9 +17,9 @@ import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.StatCollector;
import net.minecraftforge.common.util.ForgeDirection;
-import net.minecraftforge.fluids.FluidStack;
-import com.github.bartimaeusnek.bartworks.util.Pair;
+import org.jetbrains.annotations.NotNull;
+
import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti;
import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable;
import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable;
@@ -34,7 +31,6 @@ import com.gtnewhorizons.modularui.api.screen.ModularWindow;
import com.gtnewhorizons.modularui.api.screen.UIBuildContext;
import com.gtnewhorizons.modularui.common.widget.CycleButtonWidget;
-import goodgenerator.blocks.tileEntity.base.GT_MetaTileEntity_LongPowerUsageBase;
import goodgenerator.client.GUI.GG_UITextures;
import goodgenerator.loader.Loaders;
import goodgenerator.util.DescTextLocalization;
@@ -48,15 +44,20 @@ import gregtech.api.interfaces.IIconContainer;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.logic.ProcessingLogic;
import gregtech.api.metatileentity.GregTechTileClientEvents;
import gregtech.api.metatileentity.implementations.*;
+import gregtech.api.recipe.check.CheckRecipeResult;
+import gregtech.api.recipe.check.CheckRecipeResultRegistry;
import gregtech.api.render.TextureFactory;
import gregtech.api.util.GT_HatchElementBuilder;
import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
+import gregtech.api.util.GT_OverclockCalculator;
+import gregtech.api.util.GT_ParallelHelper;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Utility;
-public class PreciseAssembler extends GT_MetaTileEntity_LongPowerUsageBase<PreciseAssembler>
+public class PreciseAssembler extends GT_MetaTileEntity_ExtendedPowerMultiBlockBase<PreciseAssembler>
implements IConstructable, ISurvivalConstructable {
private static final IIconContainer textureFontOn = new Textures.BlockIcons.CustomIcon("iconsets/OVERLAY_QTANK");
@@ -72,7 +73,6 @@ public class PreciseAssembler extends GT_MetaTileEntity_LongPowerUsageBase<Preci
protected int machineTier;
protected int mode;
protected int energyHatchTier;
- private GT_Recipe lastRecipe;
public PreciseAssembler(String name) {
super(name);
@@ -202,68 +202,33 @@ public class PreciseAssembler extends GT_MetaTileEntity_LongPowerUsageBase<Preci
}
@Override
- public boolean checkRecipe(ItemStack itemStack) {
- if (casingTier < 0 || machineTier < 0) return false;
- FluidStack[] inputFluids = getStoredFluids().toArray(new FluidStack[0]);
- if (this.mode == 0) {
- for (GT_MetaTileEntity_Hatch_InputBus bus : mInputBusses) {
- if (!isValidMetaTileEntity(bus)) continue;
- this.lastRecipe = getRecipeMap().findRecipe(
- this.getBaseMetaTileEntity(),
- this.lastRecipe,
- false,
- Math.min(getMachineVoltageLimit(), getRealVoltage()),
- inputFluids,
- getStoredItemFromHatch(bus));
- if (this.lastRecipe != null && this.lastRecipe.mSpecialValue <= (casingTier + 1)) {
- this.mEfficiency = (10000 - (this.getIdealStatus() - this.getRepairStatus()) * 1000);
- this.mEfficiencyIncrease = 10000;
- this.lastRecipe.isRecipeInputEqual(true, inputFluids, getStoredItemFromHatch(bus));
- mOutputItems = this.lastRecipe.mOutputs;
- calculateOverclockedNessMulti(this.lastRecipe.mEUt, this.lastRecipe.mDuration, 1, getRealVoltage());
- this.updateSlots();
- if (this.lEUt > 0) {
- this.lEUt = (-this.lEUt);
+ protected ProcessingLogic createProcessingLogic() {
+ return new ProcessingLogic() {
+
+ @NotNull
+ @Override
+ protected CheckRecipeResult validateRecipe(@NotNull GT_Recipe recipe) {
+ if (mode == 0) {
+ if (recipe.mSpecialValue > (casingTier + 1)) {
+ return CheckRecipeResultRegistry.insufficientMachineTier(recipe.mSpecialValue);
}
- return true;
}
+ return CheckRecipeResultRegistry.SUCCESSFUL;
}
- } else {
- for (GT_MetaTileEntity_Hatch_InputBus bus : mInputBusses) {
- if (!isValidMetaTileEntity(bus) || getStoredItemFromHatch(bus).length < 1) continue;
- this.lastRecipe = getRecipeMap().findRecipe(
- this.getBaseMetaTileEntity(),
- this.lastRecipe,
- false,
- Math.min(getMachineVoltageLimit(), getRealVoltage()),
- inputFluids,
- getStoredItemFromHatch(bus));
- if (this.lastRecipe != null) {
- this.mEfficiency = (10000 - (this.getIdealStatus() - this.getRepairStatus()) * 1000);
- this.mEfficiencyIncrease = 10000;
- long fullInput = getRealVoltage();
- int pall = handleParallelRecipe(
- this.lastRecipe,
- inputFluids,
- getStoredItemFromHatch(bus),
- (int) Math.min((long) Math.pow(2, 4 + (casingTier + 1)), fullInput / this.lastRecipe.mEUt));
- if (pall <= 0) continue;
- Pair<ArrayList<FluidStack>, ArrayList<ItemStack>> Outputs = getMultiOutput(this.lastRecipe, pall);
- mOutputItems = Outputs.getValue().toArray(new ItemStack[0]);
- calculateOverclockedNessMulti(
- (long) this.lastRecipe.mEUt * (long) pall,
- this.lastRecipe.mDuration / 2,
- 1,
- getRealVoltage());
- this.updateSlots();
- if (this.lEUt > 0) {
- this.lEUt = (-this.lEUt);
- }
- return true;
- }
+
+ @NotNull
+ @Override
+ protected GT_OverclockCalculator createOverclockCalculator(@NotNull GT_Recipe recipe,
+ @NotNull GT_ParallelHelper helper) {
+ return super.createOverclockCalculator(recipe, helper).setSpeedBoost(0.5F);
}
- }
- return false;
+ }.setMaxParallelSupplier(() -> (int) Math.pow(2, 4 + (casingTier + 1)));
+ }
+
+ @Override
+ protected void setProcessingLogicPower(ProcessingLogic logic) {
+ logic.setAvailableVoltage(getMachineVoltageLimit());
+ logic.setAvailableAmperage(getMaxInputAmps());
}
@Override
@@ -277,15 +242,6 @@ public class PreciseAssembler extends GT_MetaTileEntity_LongPowerUsageBase<Preci
else return GT_Values.V[Math.min(machineTier, energyHatchTier)];
}
- public ItemStack[] getStoredItemFromHatch(GT_MetaTileEntity_Hatch_InputBus tHatch) {
- ArrayList<ItemStack> rList = new ArrayList<>();
- for (int i = tHatch.getBaseMetaTileEntity().getSizeInventory() - 1; i >= 0; i--) {
- if (tHatch.getBaseMetaTileEntity().getStackInSlot(i) != null)
- rList.add(tHatch.getBaseMetaTileEntity().getStackInSlot(i));
- }
- return rList.toArray(new ItemStack[0]);
- }
-
@Override
public GT_Recipe.GT_Recipe_Map getRecipeMap() {
if (this.mode == 0) return MyRecipeAdder.instance.PA;
@@ -476,4 +432,9 @@ public class PreciseAssembler extends GT_MetaTileEntity_LongPowerUsageBase<Preci
public boolean isInputSeparationEnabled() {
return true;
}
+
+ @Override
+ public boolean supportsBatchMode() {
+ return true;
+ }
}
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/UniversalChemicalFuelEngine.java b/src/main/java/goodgenerator/blocks/tileEntity/UniversalChemicalFuelEngine.java
index b38717e9ab..0bc623c2b6 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/UniversalChemicalFuelEngine.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/UniversalChemicalFuelEngine.java
@@ -17,6 +17,8 @@ import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fluids.FluidStack;
+import org.jetbrains.annotations.NotNull;
+
import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_DynamoMulti;
import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable;
import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable;
@@ -34,6 +36,8 @@ import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.implementations.*;
+import gregtech.api.recipe.check.CheckRecipeResult;
+import gregtech.api.recipe.check.CheckRecipeResultRegistry;
import gregtech.api.render.TextureFactory;
import gregtech.api.util.GTPP_Recipe;
import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
@@ -205,7 +209,7 @@ public class UniversalChemicalFuelEngine extends GT_MetaTileEntity_TooltipMultiB
}
@Override
- public boolean checkRecipe_EM(ItemStack aStack) {
+ public @NotNull CheckRecipeResult checkProcessing_EM() {
ArrayList<FluidStack> tFluids = getStoredFluids();
@@ -228,7 +232,7 @@ public class UniversalChemicalFuelEngine extends GT_MetaTileEntity_TooltipMultiB
this.lEUt = (long) ((long) FuelAmount * recipe.mSpecialValue / 20.0D);
this.mMaxProgresstime = 20;
this.updateSlots();
- return true;
+ return CheckRecipeResultRegistry.GENERATING;
}
for (GT_Recipe recipe : tGasFuels) {
@@ -245,7 +249,7 @@ public class UniversalChemicalFuelEngine extends GT_MetaTileEntity_TooltipMultiB
this.lEUt = (long) ((long) FuelAmount * recipe.mSpecialValue / 20.0D);
this.mMaxProgresstime = 20;
this.updateSlots();
- return true;
+ return CheckRecipeResultRegistry.GENERATING;
}
if (LoadedList.GTPP) {
@@ -264,11 +268,11 @@ public class UniversalChemicalFuelEngine extends GT_MetaTileEntity_TooltipMultiB
this.lEUt = (long) ((long) FuelAmount * recipe.mSpecialValue * 3 / 20.0D);
this.mMaxProgresstime = 20;
this.updateSlots();
- return true;
+ return CheckRecipeResultRegistry.GENERATING;
}
}
- return false;
+ return CheckRecipeResultRegistry.NO_FUEL_FOUND;
}
@Override
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/YottaFluidTank.java b/src/main/java/goodgenerator/blocks/tileEntity/YottaFluidTank.java
index 1db70a5045..45357016cf 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/YottaFluidTank.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/YottaFluidTank.java
@@ -21,6 +21,8 @@ import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidTankInfo;
+import org.jetbrains.annotations.NotNull;
+
import com.github.bartimaeusnek.bartworks.API.BorosilicateGlass;
import com.github.technus.tectech.TecTech;
import com.github.technus.tectech.thing.gui.TecTechUITextures;
@@ -47,6 +49,8 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output;
+import gregtech.api.recipe.check.CheckRecipeResult;
+import gregtech.api.recipe.check.SimpleCheckRecipeResult;
import gregtech.api.render.TextureFactory;
import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
@@ -141,10 +145,10 @@ public class YottaFluidTank extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
}
@Override
- public boolean checkRecipe_EM(ItemStack aStack) {
+ public @NotNull CheckRecipeResult checkProcessing_EM() {
this.mEUt = 0;
this.mMaxProgresstime = 20;
- return true;
+ return SimpleCheckRecipeResult.ofSuccess("");
}
public boolean getIsVoidExcessEnabled() {
@@ -542,6 +546,11 @@ public class YottaFluidTank extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
}
@Override
+ protected boolean shouldDisplayCheckRecipeResult() {
+ return false;
+ }
+
+ @Override
protected void drawTexts(DynamicPositionedColumn screenElements, SlotWidget inventorySlot) {
super.drawTexts(screenElements, inventorySlot);
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/base/GT_MetaTileEntity_LargeTurbineBase.java b/src/main/java/goodgenerator/blocks/tileEntity/base/GT_MetaTileEntity_LargeTurbineBase.java
index bb85923c5a..fe67924096 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/base/GT_MetaTileEntity_LargeTurbineBase.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/base/GT_MetaTileEntity_LargeTurbineBase.java
@@ -19,6 +19,8 @@ import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.StatCollector;
import net.minecraftforge.fluids.FluidStack;
+import org.jetbrains.annotations.NotNull;
+
import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable;
import com.gtnewhorizon.structurelib.structure.IItemSource;
import com.gtnewhorizon.structurelib.structure.IStructureDefinition;
@@ -30,6 +32,8 @@ import gregtech.api.items.GT_MetaGenerated_Tool;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_EnhancedMultiBlockBase;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Dynamo;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Muffler;
+import gregtech.api.recipe.check.CheckRecipeResult;
+import gregtech.api.recipe.check.CheckRecipeResultRegistry;
import gregtech.api.util.GT_Utility;
import gregtech.common.items.GT_MetaGenerated_Tool_01;
@@ -133,12 +137,14 @@ public abstract class GT_MetaTileEntity_LargeTurbineBase extends
}
@Override
- public boolean checkRecipe(ItemStack aStack) {
- if ((counter & 7) == 0 && (aStack == null || !(aStack.getItem() instanceof GT_MetaGenerated_Tool)
- || aStack.getItemDamage() < 170
- || aStack.getItemDamage() > 179)) {
+ public @NotNull CheckRecipeResult checkProcessing() {
+ ItemStack controllerSlot = getControllerSlot();
+ if ((counter & 7) == 0
+ && (controllerSlot == null || !(controllerSlot.getItem() instanceof GT_MetaGenerated_Tool)
+ || controllerSlot.getItemDamage() < 170
+ || controllerSlot.getItemDamage() > 179)) {
stopMachine();
- return false;
+ return CheckRecipeResultRegistry.NO_TURBINE_FOUND;
}
ArrayList<FluidStack> tFluids = getStoredFluids();
if (tFluids.size() > 0) {
@@ -148,16 +154,18 @@ public abstract class GT_MetaTileEntity_LargeTurbineBase extends
|| this.getBaseMetaTileEntity().hasInventoryBeenModified()) {
counter = 0;
baseEff = GT_Utility.safeInt(
- (long) ((5F + ((GT_MetaGenerated_Tool) aStack.getItem()).getToolCombatDamage(aStack)) * 1000F));
+ (long) ((5F + ((GT_MetaGenerated_Tool) controllerSlot.getItem())
+ .getToolCombatDamage(controllerSlot)) * 1000F));
optFlow = GT_Utility.safeInt(
(long) Math.max(
Float.MIN_NORMAL,
- ((GT_MetaGenerated_Tool) aStack.getItem()).getToolStats(aStack).getSpeedMultiplier()
- * GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mToolSpeed
+ ((GT_MetaGenerated_Tool) controllerSlot.getItem()).getToolStats(controllerSlot)
+ .getSpeedMultiplier()
+ * GT_MetaGenerated_Tool.getPrimaryMaterial(controllerSlot).mToolSpeed
* 50));
if (optFlow <= 0 || baseEff <= 0) {
stopMachine(); // in case the turbine got removed
- return false;
+ return CheckRecipeResultRegistry.NO_FUEL_FOUND;
}
} else {
counter++;
@@ -182,12 +190,12 @@ public abstract class GT_MetaTileEntity_LargeTurbineBase extends
// stopMachine();
this.mEUt = 0;
this.mEfficiency = 0;
- return false;
+ return CheckRecipeResultRegistry.NO_FUEL_FOUND;
} else {
this.mMaxProgresstime = 1;
this.mEfficiencyIncrease = 10;
// Overvoltage is handled inside the MultiBlockBase when pushing out to dynamos. no need to do it here.
- return true;
+ return CheckRecipeResultRegistry.GENERATING;
}
}
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/base/GT_MetaTileEntity_LongPowerUsageBase.java b/src/main/java/goodgenerator/blocks/tileEntity/base/GT_MetaTileEntity_LongPowerUsageBase.java
deleted file mode 100644
index c36cfd7abc..0000000000
--- a/src/main/java/goodgenerator/blocks/tileEntity/base/GT_MetaTileEntity_LongPowerUsageBase.java
+++ /dev/null
@@ -1,174 +0,0 @@
-package goodgenerator.blocks.tileEntity.base;
-
-import net.minecraft.util.EnumChatFormatting;
-import net.minecraft.util.StatCollector;
-
-import com.github.bartimaeusnek.bartworks.util.BW_Util;
-import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti;
-
-import gregtech.api.metatileentity.implementations.*;
-import gregtech.api.util.GT_Utility;
-
-/**
- * Base class for multiblocks that supports TT energy hatches.
- *
- * @param <T>
- */
-public abstract class GT_MetaTileEntity_LongPowerUsageBase<T extends GT_MetaTileEntity_LongPowerUsageBase<T>>
- extends GT_MetaTileEntity_ExtendedPowerMultiBlockBase<T> {
-
- protected GT_MetaTileEntity_LongPowerUsageBase(int aID, String aName, String aNameRegional) {
- super(aID, aName, aNameRegional);
- }
-
- protected GT_MetaTileEntity_LongPowerUsageBase(String aName) {
- super(aName);
- }
-
- @Override
- public void clearHatches() {
- mExoticEnergyHatches.clear();
- super.clearHatches();
- }
-
- @Override
- public long getMaxInputVoltage() {
- long rVoltage = 0;
- for (GT_MetaTileEntity_Hatch_Energy tHatch : mEnergyHatches) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(tHatch)) {
- rVoltage += tHatch.maxEUInput();
- }
- }
- for (GT_MetaTileEntity_Hatch tHatch : mExoticEnergyHatches) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(tHatch)) {
- rVoltage += tHatch.maxEUInput();
- }
- }
- return rVoltage;
- }
-
- @Override
- public String[] getInfoData() {
- return getInfoDataArray(this);
- }
-
- protected long getRealVoltage() {
- long rEnergy = 0;
- if (mEnergyHatches.size() == 1 && mExoticEnergyHatches.isEmpty()) {
- // it works like most of the gt multies
- return mEnergyHatches.get(0).getBaseMetaTileEntity().getInputVoltage();
- }
- for (GT_MetaTileEntity_Hatch_Energy tHatch : mEnergyHatches) {
- if (isValidMetaTileEntity(tHatch)) {
- rEnergy += tHatch.maxEUInput() * tHatch.maxAmperesIn();
- }
- }
- for (GT_MetaTileEntity_Hatch tHatch : mExoticEnergyHatches) {
- if (isValidMetaTileEntity(tHatch)) {
- rEnergy += tHatch.maxEUInput() * ((GT_MetaTileEntity_Hatch_EnergyMulti) tHatch).Amperes;
- }
- }
- return rEnergy;
- }
-
- @Override
- public long getMaxInputAmps() {
- long rAmps = 0;
- for (GT_MetaTileEntity_Hatch_Energy tHatch : mEnergyHatches) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(tHatch)) {
- rAmps += tHatch.maxAmperesIn();
- }
- }
- for (GT_MetaTileEntity_Hatch tHatch : mExoticEnergyHatches) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(tHatch)) {
- rAmps += ((GT_MetaTileEntity_Hatch_EnergyMulti) tHatch).Amperes;
- }
- }
- return rAmps;
- }
-
- protected String[] getInfoDataArray(GT_MetaTileEntity_MultiBlockBase multiBlockBase) {
- int mPollutionReduction = 0;
-
- for (GT_MetaTileEntity_Hatch_Muffler tHatch : this.mMufflerHatches) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(tHatch)) {
- mPollutionReduction = Math.max(tHatch.calculatePollutionReduction(100), mPollutionReduction);
- }
- }
-
- long storedEnergy = 0;
- long maxEnergy = 0;
-
- for (GT_MetaTileEntity_Hatch_Energy tHatch : this.mEnergyHatches) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(tHatch)) {
- storedEnergy += tHatch.getBaseMetaTileEntity().getStoredEU();
- maxEnergy += tHatch.getBaseMetaTileEntity().getEUCapacity();
- }
- }
- for (GT_MetaTileEntity_Hatch tHatch : this.mExoticEnergyHatches) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(tHatch)) {
- storedEnergy += tHatch.getBaseMetaTileEntity().getStoredEU();
- maxEnergy += tHatch.getBaseMetaTileEntity().getEUCapacity();
- }
- }
-
- long nominalV = getRealVoltage();
- String tName = BW_Util.getTierNameFromVoltage(this.getMaxInputVoltage());
- if (tName.equals("MAX+")) tName = EnumChatFormatting.OBFUSCATED + "MAX+";
-
- return new String[] {
- StatCollector.translateToLocal("GT5U.multiblock.Progress") + ": "
- + EnumChatFormatting.GREEN
- + GT_Utility.formatNumbers(this.mProgresstime / 20)
- + EnumChatFormatting.RESET
- + " s / "
- + EnumChatFormatting.YELLOW
- + GT_Utility.formatNumbers(this.mMaxProgresstime / 20)
- + EnumChatFormatting.RESET
- + " s",
- StatCollector.translateToLocal("GT5U.multiblock.energy") + ": "
- + EnumChatFormatting.GREEN
- + GT_Utility.formatNumbers(storedEnergy)
- + EnumChatFormatting.RESET
- + " EU / "
- + EnumChatFormatting.YELLOW
- + GT_Utility.formatNumbers(maxEnergy)
- + EnumChatFormatting.RESET
- + " EU",
- StatCollector.translateToLocal("GT5U.multiblock.usage") + ": "
- + EnumChatFormatting.RED
- + GT_Utility.formatNumbers(-this.lEUt)
- + EnumChatFormatting.RESET
- + " EU/t",
- StatCollector.translateToLocal("GT5U.multiblock.mei") + ": "
- + EnumChatFormatting.YELLOW
- + GT_Utility.formatNumbers(this.getMaxInputVoltage())
- + EnumChatFormatting.RESET
- + " EU/t(*"
- + GT_Utility.formatNumbers(this.getMaxInputAmps())
- + "A) = "
- + EnumChatFormatting.YELLOW
- + GT_Utility.formatNumbers(nominalV)
- + EnumChatFormatting.RESET,
- StatCollector.translateToLocal("GT5U.machines.tier") + ": "
- + EnumChatFormatting.YELLOW
- + tName
- + EnumChatFormatting.RESET,
- StatCollector.translateToLocal("GT5U.multiblock.problems") + ": "
- + EnumChatFormatting.RED
- + (this.getIdealStatus() - this.getRepairStatus())
- + EnumChatFormatting.RESET
- + " "
- + StatCollector.translateToLocal("GT5U.multiblock.efficiency")
- + ": "
- + EnumChatFormatting.YELLOW
- + (float) this.mEfficiency / 100.0F
- + EnumChatFormatting.RESET
- + " %",
- StatCollector.translateToLocal("GT5U.multiblock.pollution") + ": "
- + EnumChatFormatting.GREEN
- + mPollutionReduction
- + EnumChatFormatting.RESET
- + " %" };
- }
-}
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/base/LargeFusionComputer.java b/src/main/java/goodgenerator/blocks/tileEntity/base/LargeFusionComputer.java
index 92f5144175..c997fd7bfd 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/base/LargeFusionComputer.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/base/LargeFusionComputer.java
@@ -19,6 +19,8 @@ import net.minecraft.world.ChunkCoordIntPair;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.FluidStack;
+import org.jetbrains.annotations.NotNull;
+
import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti;
import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable;
import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable;
@@ -43,6 +45,8 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output;
import gregtech.api.objects.GT_ChunkManager;
import gregtech.api.objects.GT_ItemStack;
+import gregtech.api.recipe.check.CheckRecipeResult;
+import gregtech.api.recipe.check.CheckRecipeResultRegistry;
import gregtech.api.render.TextureFactory;
import gregtech.api.util.GT_HatchElementBuilder;
import gregtech.api.util.GT_Recipe;
@@ -233,7 +237,7 @@ public abstract class LargeFusionComputer extends GT_MetaTileEntity_TooltipMulti
if (mEfficiency < 0) mEfficiency = 0;
if (mRunningOnLoad && checkMachine(aBaseMetaTileEntity, mInventory[1])) {
this.mEUStore = (int) aBaseMetaTileEntity.getStoredEU();
- checkRecipe(mInventory[1]);
+ checkRecipe();
}
if (mUpdated) {
mUpdate = 50;
@@ -305,7 +309,7 @@ public abstract class LargeFusionComputer extends GT_MetaTileEntity_TooltipMulti
mMaxProgresstime = 0;
mEfficiencyIncrease = 0;
this.mEUStore = (int) getBaseMetaTileEntity().getStoredEU();
- if (aBaseMetaTileEntity.isAllowedToWork()) checkRecipe(mInventory[1]);
+ if (aBaseMetaTileEntity.isAllowedToWork()) checkRecipe();
}
} else {
if (aTick % 100 == 0 || aBaseMetaTileEntity.hasWorkJustBeenEnabled()
@@ -313,7 +317,7 @@ public abstract class LargeFusionComputer extends GT_MetaTileEntity_TooltipMulti
turnCasingActive(mMaxProgresstime > 0);
if (aBaseMetaTileEntity.isAllowedToWork()) {
this.mEUStore = (int) getBaseMetaTileEntity().getStoredEU();
- if (checkRecipe(mInventory[1])) {
+ if (checkRecipe()) {
if (this.mEUStore < this.mLastRecipe.mSpecialValue - this.mEUt) {
mMaxProgresstime = 0;
turnCasingActive(false);
@@ -425,7 +429,7 @@ public abstract class LargeFusionComputer extends GT_MetaTileEntity_TooltipMulti
}
@Override
- public boolean checkRecipe_EM(ItemStack aStack) {
+ public @NotNull CheckRecipeResult checkProcessing_EM() {
ArrayList<FluidStack> tFluidList = getStoredFluids();
@@ -437,7 +441,7 @@ public abstract class LargeFusionComputer extends GT_MetaTileEntity_TooltipMulti
if ((tRecipe == null && !mRunningOnLoad) || (tRecipe != null && (maxEUStore() < tRecipe.mSpecialValue))) {
turnCasingActive(false);
this.mLastRecipe = null;
- return false;
+ return CheckRecipeResultRegistry.NO_RECIPE;
}
int pall = handleParallelRecipe(
tRecipe,
@@ -456,10 +460,10 @@ public abstract class LargeFusionComputer extends GT_MetaTileEntity_TooltipMulti
this.mOutputFluids = getMultiOutput(mLastRecipe, pall).getKey().toArray(new FluidStack[0]);
turnCasingActive(true);
mRunningOnLoad = false;
- return true;
+ return CheckRecipeResultRegistry.SUCCESSFUL;
}
}
- return false;
+ return CheckRecipeResultRegistry.NO_RECIPE;
}
public long getMaxEUInput() {
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/base/LargeFusionComputerPP.java b/src/main/java/goodgenerator/blocks/tileEntity/base/LargeFusionComputerPP.java
index c3adbe93ce..ecee690a74 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/base/LargeFusionComputerPP.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/base/LargeFusionComputerPP.java
@@ -19,6 +19,8 @@ import net.minecraft.world.ChunkCoordIntPair;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.FluidStack;
+import org.jetbrains.annotations.NotNull;
+
import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti;
import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable;
import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable;
@@ -43,6 +45,8 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output;
import gregtech.api.objects.GT_ChunkManager;
import gregtech.api.objects.GT_ItemStack;
+import gregtech.api.recipe.check.CheckRecipeResult;
+import gregtech.api.recipe.check.CheckRecipeResultRegistry;
import gregtech.api.render.TextureFactory;
import gregtech.api.util.AdvFusionPower;
import gregtech.api.util.GT_HatchElementBuilder;
@@ -232,7 +236,7 @@ public abstract class LargeFusionComputerPP extends GT_MetaTileEntity_TooltipMul
if (mEfficiency < 0) mEfficiency = 0;
if (mRunningOnLoad && checkMachine(aBaseMetaTileEntity, mInventory[1])) {
this.mEUStore = aBaseMetaTileEntity.getStoredEU();
- checkRecipe(mInventory[1]);
+ checkRecipe();
}
if (mUpdated) {
mUpdate = 50;
@@ -304,7 +308,7 @@ public abstract class LargeFusionComputerPP extends GT_MetaTileEntity_TooltipMul
mMaxProgresstime = 0;
mEfficiencyIncrease = 0;
this.mEUStore = getBaseMetaTileEntity().getStoredEU();
- if (aBaseMetaTileEntity.isAllowedToWork()) checkRecipe(mInventory[1]);
+ if (aBaseMetaTileEntity.isAllowedToWork()) checkRecipe();
}
} else {
if (aTick % 100 == 0 || aBaseMetaTileEntity.hasWorkJustBeenEnabled()
@@ -312,7 +316,7 @@ public abstract class LargeFusionComputerPP extends GT_MetaTileEntity_TooltipMul
turnCasingActive(mMaxProgresstime > 0);
if (aBaseMetaTileEntity.isAllowedToWork()) {
this.mEUStore = getBaseMetaTileEntity().getStoredEU();
- if (checkRecipe(mInventory[1])) {
+ if (checkRecipe()) {
if (this.mEUStore < this.mLastRecipe.mSpecialValue - this.mEUt) {
mMaxProgresstime = 0;
turnCasingActive(false);
@@ -409,7 +413,7 @@ public abstract class LargeFusionComputerPP extends GT_MetaTileEntity_TooltipMul
public abstract int extraPara(int startEnergy);
@Override
- public boolean checkRecipe_EM(ItemStack aStack) {
+ public @NotNull CheckRecipeResult checkProcessing_EM() {
ArrayList<FluidStack> tFluidList = getStoredFluids();
if (tFluidList.size() > 1) {
@@ -420,7 +424,7 @@ public abstract class LargeFusionComputerPP extends GT_MetaTileEntity_TooltipMul
if ((tRecipe == null && !mRunningOnLoad) || (tRecipe != null && (maxEUStore() < tRecipe.mSpecialValue))) {
turnCasingActive(false);
this.mLastRecipe = null;
- return false;
+ return CheckRecipeResultRegistry.NO_RECIPE;
}
int pall = handleParallelRecipe(
tRecipe,
@@ -439,10 +443,10 @@ public abstract class LargeFusionComputerPP extends GT_MetaTileEntity_TooltipMul
this.mOutputFluids = getMultiOutput(mLastRecipe, pall).getKey().toArray(new FluidStack[0]);
turnCasingActive(true);
mRunningOnLoad = false;
- return true;
+ return CheckRecipeResultRegistry.SUCCESSFUL;
}
}
- return false;
+ return CheckRecipeResultRegistry.NO_RECIPE;
}
public long getMaxEUInput() {