diff options
| author | Maxim <maxim235@gmx.de> | 2023-07-17 10:21:49 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-07-17 10:21:49 +0200 |
| commit | 328376ff618b14aac4ba57d790066129c8ad95e8 (patch) | |
| tree | 9a59d8ff7708ae1565d074b8805b28882e7b7581 /src/main/java/goodgenerator | |
| parent | d80fe13bf409ad11ffc8ddc34375c64be06da771 (diff) | |
| download | GT5-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')
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 |
