aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/goodgenerator
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
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')
-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