diff --git a/dependencies.gradle b/dependencies.gradle index 506c4d65b..21a281a99 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -2,16 +2,16 @@ dependencies { shadowImplementation('com.github.GTNewHorizons:AVRcore:1.0.1') - api('com.github.GTNewHorizons:GT5-Unofficial:5.09.43.104:dev') + api('com.github.GTNewHorizons:GT5-Unofficial:5.09.43.122:dev') api('com.github.GTNewHorizons:Yamcl:0.5.86:dev') implementation('com.github.GTNewHorizons:GTNEIOrePlugin:1.1.1:dev') compileOnly("TGregworks:TGregworks:1.7.10-GTNH-1.0.23:deobf") {transitive=false} compileOnly('com.github.GTNewHorizons:TinkersConstruct:1.9.38-GTNH:dev') {transitive=false} compileOnly('com.github.GTNewHorizons:OpenModularTurrets:2.2.11-247:dev') {transitive=false} - compileOnly('com.github.GTNewHorizons:OpenComputers:1.9.8-GTNH:dev') {transitive=false} - compileOnly('com.github.GTNewHorizons:GTplusplus:1.9.52:dev') {transitive=false} - compileOnly('com.github.GTNewHorizons:Avaritia:1.43:dev') {transitive=false} + compileOnly('com.github.GTNewHorizons:OpenComputers:1.9.12-GTNH:dev') {transitive=false} + compileOnly('com.github.GTNewHorizons:GTplusplus:1.9.54:dev') {transitive=false} + compileOnly('com.github.GTNewHorizons:Avaritia:1.45:dev') {transitive=false} compileOnly('curse.maven:cofh-lib-220333:2388748') {transitive=false} compileOnly('curse.maven:computercraft-67504:2269339') {transitive=false} @@ -21,10 +21,10 @@ dependencies { // for testing EOH recipes //runtimeOnlyNonPublishable("TGregworks:TGregworks:1.7.10-GTNH-1.0.23:deobf") //runtimeOnlyNonPublishable('com.github.GTNewHorizons:TinkersConstruct:1.9.38-GTNH:dev') - //runtimeOnlyNonPublishable('com.github.GTNewHorizons:NewHorizonsCoreMod:2.1.66:dev') + //runtimeOnlyNonPublishable('com.github.GTNewHorizons:NewHorizonsCoreMod:2.1.79:dev') //runtimeOnlyNonPublishable('com.github.GTNewHorizons:GoodGenerator:0.6.11:dev') { // exclude group: "com.github.GTNewHorizons", module: "TecTech" //} //runtimeOnlyNonPublishable("curse.maven:extra-utilities-225561:2264384") {transitive=false} - //runtimeOnlyNonPublishable('com.github.GTNewHorizons:Avaritia:1.43:dev') {transitive=false} + //runtimeOnlyNonPublishable('com.github.GTNewHorizons:Avaritia:1.45:dev') {transitive=false} } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_EyeOfHarmony.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_EyeOfHarmony.java index eff092620..a140a921d 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_EyeOfHarmony.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_EyeOfHarmony.java @@ -46,6 +46,7 @@ import net.minecraftforge.fluids.FluidStack; import org.apache.commons.lang3.tuple.Pair; +import org.jetbrains.annotations.NotNull; import com.github.technus.tectech.recipe.EyeOfHarmonyRecipe; import com.github.technus.tectech.thing.block.TileEyeOfHarmony; @@ -72,6 +73,9 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input; +import gregtech.api.recipe.check.CheckRecipeResult; +import gregtech.api.recipe.check.CheckRecipeResultRegistry; +import gregtech.api.recipe.check.SimpleCheckRecipeResult; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.common.tileentities.machines.GT_MetaTileEntity_Hatch_OutputBus_ME; import gregtech.common.tileentities.machines.GT_MetaTileEntity_Hatch_Output_ME; @@ -1072,9 +1076,11 @@ private void drainFluidFromHatchesAndStoreInternally() { private long currentCircuitMultiplier = 0; @Override - public boolean checkRecipe_EM(ItemStack aStack) { - if (aStack == null) { - return false; + @NotNull + protected CheckRecipeResult checkProcessing_EM() { + ItemStack controllerStack = getControllerSlot(); + if (controllerStack == null) { + return SimpleCheckRecipeResult.ofFailure("no_planet_block"); } lagPreventer++; @@ -1082,17 +1088,19 @@ public boolean checkRecipe_EM(ItemStack aStack) { lagPreventer = 0; // No item in multi gui slot. - currentRecipe = eyeOfHarmonyRecipeStorage.recipeLookUp(aStack); + currentRecipe = eyeOfHarmonyRecipeStorage.recipeLookUp(controllerStack); if (currentRecipe == null) { - return false; + return CheckRecipeResultRegistry.NO_RECIPE; } - if (processRecipe(currentRecipe)) { - return true; + CheckRecipeResult result = processRecipe(currentRecipe); + + if (result.wasSuccessful()) { + return result; } currentRecipe = null; } - return false; + return CheckRecipeResultRegistry.NO_RECIPE; } private long getHydrogenStored() { @@ -1103,7 +1111,7 @@ private long getHeliumStored() { return validFluidMap.get(Materials.Helium.getGas(1)); } - public boolean processRecipe(EyeOfHarmonyRecipe recipeObject) { + public CheckRecipeResult processRecipe(EyeOfHarmonyRecipe recipeObject) { // Get circuit damage, clamp it and then use it later for overclocking. ItemStack circuit = mInputBusses.get(0).getStackInSlot(0); @@ -1114,34 +1122,32 @@ public boolean processRecipe(EyeOfHarmonyRecipe recipeObject) { } // Debug mode, overwrites the required fluids to initiate the recipe to 100L of each. - if (EOH_DEBUG_MODE) { - if ((getHydrogenStored() < 100) || (getHeliumStored() < 100)) { - return false; - } - } else { - if ((getHydrogenStored() < currentRecipe.getHydrogenRequirement()) - || (getHeliumStored() < currentRecipe.getHeliumRequirement())) { - return false; - } + if ((EOH_DEBUG_MODE && getHydrogenStored() < 100) + || (getHydrogenStored() < currentRecipe.getHydrogenRequirement())) { + return SimpleCheckRecipeResult.ofFailure("no_hydrogen"); + } + if ((EOH_DEBUG_MODE && getHeliumStored() < 100) || (getHeliumStored() < currentRecipe.getHeliumRequirement())) { + return SimpleCheckRecipeResult.ofFailure("no_helium"); } if (spacetimeCompressionFieldMetadata == -1) { - return false; + return CheckRecipeResultRegistry + .insufficientMachineTier((int) recipeObject.getSpacetimeCasingTierRequired()); } // Check tier of spacetime compression blocks is high enough. if ((spacetimeCompressionFieldMetadata + 1) < recipeObject.getSpacetimeCasingTierRequired()) { - return false; + return CheckRecipeResultRegistry + .insufficientMachineTier((int) recipeObject.getSpacetimeCasingTierRequired()); } startEU = recipeObject.getEUStartCost(); // Remove EU from the users network. - if (!addEUToGlobalEnergyMap( - userUUID, - (long) (-startEU * (Math.log(currentCircuitMultiplier + 1) / LOG_BASE_CONSTANT + 1) - * pow(0.77, currentCircuitMultiplier)))) { - return false; + long usedEU = (long) (-startEU * (Math.log(currentCircuitMultiplier + 1) / LOG_BASE_CONSTANT + 1) + * pow(0.77, currentCircuitMultiplier)); + if (!addEUToGlobalEnergyMap(userUUID, usedEU)) { + return CheckRecipeResultRegistry.insufficientPower(usedEU); } mMaxProgresstime = recipeProcessTimeCalculator( @@ -1194,7 +1200,7 @@ public boolean processRecipe(EyeOfHarmonyRecipe recipeObject) { } recipeRunning = true; - return true; + return CheckRecipeResultRegistry.SUCCESSFUL; } private void createRenderBlock(final EyeOfHarmonyRecipe currentRecipe) { diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java index 68e4e0d70..46f325988 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java @@ -28,6 +28,8 @@ import net.minecraft.util.ResourceLocation; import net.minecraftforge.common.util.ForgeDirection; +import org.jetbrains.annotations.NotNull; + import com.github.technus.tectech.mechanics.dataTransport.QuantumDataPacket; import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_InputData; import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_OutputData; @@ -54,6 +56,9 @@ import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; +import gregtech.api.recipe.check.CheckRecipeResult; +import gregtech.api.recipe.check.CheckRecipeResultRegistry; +import gregtech.api.recipe.check.SimpleCheckRecipeResult; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.IGT_HatchAdder; @@ -232,14 +237,15 @@ public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { } @Override - public boolean checkRecipe_EM(ItemStack itemStack) { + @NotNull + protected CheckRecipeResult checkProcessing_EM() { parametrization.setToDefaults(false, true); eAvailableData = 0; double maxTemp = 0; double overClockRatio = overclock.get(); double overVoltageRatio = overvolt.get(); if (Double.isNaN(overClockRatio) || Double.isNaN(overVoltageRatio)) { - return false; + return SimpleCheckRecipeResult.ofFailure("no_computing"); } if (overclock.getStatus(true).isOk && overvolt.getStatus(true).isOk) { float eut = V[8] * (float) overVoltageRatio * (float) overClockRatio; @@ -247,7 +253,7 @@ public boolean checkRecipe_EM(ItemStack itemStack) { mEUt = -(int) eut; } else { mEUt = -(int) V[8]; - return false; + return CheckRecipeResultRegistry.POWER_OVERFLOW; } short thingsActive = 0; int rackComputation; @@ -281,7 +287,7 @@ public boolean checkRecipe_EM(ItemStack itemStack) { mEfficiencyIncrease = 10000; maxCurrentTemp.set(maxTemp); availableData.set(eAvailableData); - return true; + return SimpleCheckRecipeResult.ofSuccess("computing"); } else { eAvailableData = 0; mEUt = -(int) V[8]; @@ -290,10 +296,10 @@ public boolean checkRecipe_EM(ItemStack itemStack) { mEfficiencyIncrease = 10000; maxCurrentTemp.set(maxTemp); availableData.set(eAvailableData); - return true; + return SimpleCheckRecipeResult.ofSuccess("no_computing"); } } - return false; + return SimpleCheckRecipeResult.ofFailure("no_computing"); } @Override diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dataBank.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dataBank.java index 3bc30c383..5de86299b 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dataBank.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dataBank.java @@ -22,6 +22,8 @@ import net.minecraft.util.ResourceLocation; import net.minecraftforge.common.util.ForgeDirection; +import org.jetbrains.annotations.NotNull; + import com.github.technus.tectech.Reference; import com.github.technus.tectech.mechanics.dataTransport.InventoryDataPacket; import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_InputDataItems; @@ -42,6 +44,8 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_DataAccess; +import gregtech.api.recipe.check.CheckRecipeResult; +import gregtech.api.recipe.check.SimpleCheckRecipeResult; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.IGT_HatchAdder; @@ -137,15 +141,16 @@ public boolean checkMachine_EM(IGregTechTileEntity iGregTechTileEntity, ItemStac } @Override - public boolean checkRecipe_EM(ItemStack itemStack) { + @NotNull + protected CheckRecipeResult checkProcessing_EM() { if (eDataAccessHatches.size() > 0 && eStacksDataOutputs.size() > 0) { mEUt = -(int) V[slave ? 6 : 4]; eAmpereFlow = 1 + eStacksDataOutputs.size() * eDataAccessHatches.size(); mMaxProgresstime = 20; mEfficiencyIncrease = 10000; - return true; + return SimpleCheckRecipeResult.ofSuccess("providing_data"); } - return false; + return SimpleCheckRecipeResult.ofFailure("no_data"); } @Override diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_infuser.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_infuser.java index 77a5e2909..cb19536f7 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_infuser.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_infuser.java @@ -15,6 +15,8 @@ import net.minecraft.util.ResourceLocation; import net.minecraftforge.fluids.FluidStack; +import org.jetbrains.annotations.NotNull; + import com.github.technus.tectech.Reference; import com.github.technus.tectech.TecTech; import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; @@ -29,6 +31,8 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_InputBus; +import gregtech.api.recipe.check.CheckRecipeResult; +import gregtech.api.recipe.check.SimpleCheckRecipeResult; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.common.tileentities.machines.GT_MetaTileEntity_Hatch_InputBus_ME; import ic2.api.item.ElectricItem; @@ -152,7 +156,8 @@ public boolean checkMachine_EM(IGregTechTileEntity iGregTechTileEntity, ItemStac } @Override - public boolean checkRecipe_EM(ItemStack itemStack) { + @NotNull + protected CheckRecipeResult checkProcessing_EM() { for (GT_MetaTileEntity_Hatch_InputBus inputBus : mInputBusses) { if (inputBus instanceof GT_MetaTileEntity_Hatch_InputBus_ME) continue; for (int i = 0; i < inputBus.getSizeInventory(); i++) { @@ -167,11 +172,11 @@ public boolean checkRecipe_EM(ItemStack itemStack) { } else { mEfficiencyIncrease = 10000; mMaxProgresstime = 20; - return true; + return SimpleCheckRecipeResult.ofSuccess("charging"); } } } - return false; + return SimpleCheckRecipeResult.ofFailure("no_chargeable_item"); } @Override diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java index 7116641de..c9cf28ca4 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java @@ -36,6 +36,7 @@ import net.minecraftforge.common.util.ForgeDirection; import org.apache.commons.lang3.reflect.FieldUtils; +import org.jetbrains.annotations.NotNull; import com.github.technus.tectech.recipe.TT_recipe; import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti; @@ -58,6 +59,9 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; +import gregtech.api.recipe.check.CheckRecipeResult; +import gregtech.api.recipe.check.CheckRecipeResultRegistry; +import gregtech.api.recipe.check.SimpleCheckRecipeResult; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.GT_Recipe; @@ -346,27 +350,29 @@ public boolean checkMachine_EM(IGregTechTileEntity iGregTechTileEntity, ItemStac } @Override - public boolean checkRecipe_EM(ItemStack itemStack) { + @NotNull + protected CheckRecipeResult checkProcessing_EM() { + ItemStack controllerStack = getControllerSlot(); tRecipe = null; aRecipe = null; if (!eHolders.isEmpty() && eHolders.get(0).mInventory[0] != null) { holdItem = eHolders.get(0).mInventory[0].copy(); - if (ItemList.Tool_DataStick.isStackEqual(itemStack, false, true)) { + if (ItemList.Tool_DataStick.isStackEqual(controllerStack, false, true)) { for (GT_Recipe.GT_Recipe_AssemblyLine assRecipe : TT_recipe.GT_Recipe_MapTT.sAssemblylineRecipes) { if (GT_Utility.areStacksEqual(assRecipe.mResearchItem, holdItem, true)) { machineType = assembly; tRecipe = assRecipe; // if found - if (iterateRecipes()) return true; + if (iterateRecipes()) return SimpleCheckRecipeResult.ofSuccess("researching"); } } - } else if (ItemList.Tool_DataOrb.isStackEqual(itemStack, false, true)) { + } else if (ItemList.Tool_DataOrb.isStackEqual(controllerStack, false, true)) { for (TT_recipe.TT_assLineRecipe assRecipeTT : TT_recipe.TT_Recipe_Map.sMachineRecipes.recipeList()) { if (GT_Utility.areStacksEqual(assRecipeTT.mResearchItem, holdItem, true)) { aRecipe = assRecipeTT; machineType = machine; // if found - if (iterateRecipes()) return true; + if (iterateRecipes()) return SimpleCheckRecipeResult.ofSuccess("researching"); } } for (TT_recipe.TT_assLineRecipe assRecipeTT : TT_recipe.TT_Recipe_Map.sCrafterRecipes.recipeList()) { @@ -374,9 +380,11 @@ public boolean checkRecipe_EM(ItemStack itemStack) { aRecipe = assRecipeTT; machineType = crafter; // if found - if (iterateRecipes()) return true; + if (iterateRecipes()) return SimpleCheckRecipeResult.ofSuccess("researching"); } } + } else { + return CheckRecipeResultRegistry.NO_DATA_STICKS; } } holdItem = null; @@ -384,7 +392,7 @@ public boolean checkRecipe_EM(ItemStack itemStack) { for (GT_MetaTileEntity_Hatch_Holder r : eHolders) { r.getBaseMetaTileEntity().setActive(false); } - return false; + return SimpleCheckRecipeResult.ofFailure("no_research_item"); } @Override diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_scanner.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_scanner.java index 93de5d24d..2ef33377c 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_scanner.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_scanner.java @@ -23,6 +23,7 @@ import net.minecraft.util.EnumChatFormatting; import org.apache.commons.lang3.reflect.FieldUtils; +import org.jetbrains.annotations.NotNull; import com.github.technus.tectech.TecTech; import com.github.technus.tectech.mechanics.elementalMatter.core.EMException; @@ -49,6 +50,9 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; +import gregtech.api.recipe.check.CheckRecipeResult; +import gregtech.api.recipe.check.CheckRecipeResultRegistry; +import gregtech.api.recipe.check.SimpleCheckRecipeResult; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.GT_Recipe; @@ -231,12 +235,14 @@ public boolean checkMachine_EM(IGregTechTileEntity iGregTechTileEntity, ItemStac } @Override - public boolean checkRecipe_EM(ItemStack itemStack) { + @NotNull + protected CheckRecipeResult checkProcessing_EM() { + ItemStack controllerStack = getControllerSlot(); eRecipe = null; if (!eInputHatches.isEmpty() && eInputHatches.get(0).getContentHandler().hasStacks() && !eOutputHatches.isEmpty()) { EMInstanceStackMap researchEM = eInputHatches.get(0).getContentHandler(); - if (ItemList.Tool_DataOrb.isStackEqual(itemStack, false, true)) { + if (ItemList.Tool_DataOrb.isStackEqual(controllerStack, false, true)) { GT_Recipe scannerRecipe = null; for (EMInstanceStack stackEM : researchEM.valuesToArray()) { objectsScanned = null; @@ -268,9 +274,9 @@ public boolean checkRecipe_EM(ItemStack itemStack) { eRequiredData = (short) (scannerRecipe.mSpecialValue >>> 16); eAmpereFlow = (short) (scannerRecipe.mSpecialValue & 0xFFFF); mEUt = scannerRecipe.mEUt; - return true; + return SimpleCheckRecipeResult.ofSuccess("researching"); } - } else if (CustomItemList.scanContainer.isStackEqual(itemStack, false, true)) { + } else if (CustomItemList.scanContainer.isStackEqual(controllerStack, false, true)) { eRecipe = null; if (researchEM.hasStacks()) { objectsScanned = researchEM.takeAll(); @@ -302,13 +308,15 @@ public boolean checkRecipe_EM(ItemStack itemStack) { computationRemaining = computationRequired *= 20; mMaxProgresstime = 20; // const mEfficiencyIncrease = 10000; - return true; + return SimpleCheckRecipeResult.ofSuccess("researching"); } + } else { + return CheckRecipeResultRegistry.NO_DATA_STICKS; } } objectResearched = null; computationRemaining = 0; - return false; + return SimpleCheckRecipeResult.ofFailure("no_research_item"); } @Override diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_switch.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_switch.java index e5a67c074..c4be17ea4 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_switch.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_switch.java @@ -21,6 +21,8 @@ import net.minecraft.util.ResourceLocation; import net.minecraftforge.common.util.ForgeDirection; +import org.jetbrains.annotations.NotNull; + import com.github.technus.tectech.Reference; import com.github.technus.tectech.mechanics.dataTransport.QuantumDataPacket; import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_InputData; @@ -41,6 +43,8 @@ import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.recipe.check.CheckRecipeResult; +import gregtech.api.recipe.check.SimpleCheckRecipeResult; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; /** @@ -119,7 +123,8 @@ public boolean checkMachine_EM(IGregTechTileEntity iGregTechTileEntity, ItemStac } @Override - public boolean checkRecipe_EM(ItemStack itemStack) { + @NotNull + protected CheckRecipeResult checkProcessing_EM() { short thingsActive = 0; for (GT_MetaTileEntity_Hatch_InputData di : eInputData) { if (di.q != null) { @@ -133,9 +138,9 @@ public boolean checkRecipe_EM(ItemStack itemStack) { eAmpereFlow = 1 + (thingsActive >> 2); mMaxProgresstime = 20; mEfficiencyIncrease = 10000; - return true; + return SimpleCheckRecipeResult.ofSuccess("routing"); } - return false; + return SimpleCheckRecipeResult.ofFailure("no_routing"); } @Override diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_transformer.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_transformer.java index 5b369edb7..72f7c9790 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_transformer.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_transformer.java @@ -19,6 +19,8 @@ import net.minecraft.util.ResourceLocation; import net.minecraftforge.common.util.ForgeDirection; +import org.jetbrains.annotations.NotNull; + import com.github.technus.tectech.Reference; import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; import com.github.technus.tectech.thing.metaTileEntity.multi.base.render.TT_RenderedExtendedFacingTexture; @@ -33,6 +35,8 @@ import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.recipe.check.CheckRecipeResult; +import gregtech.api.recipe.check.SimpleCheckRecipeResult; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; /** @@ -99,7 +103,8 @@ public boolean checkMachine_EM(IGregTechTileEntity iGregTechTileEntity, ItemStac } @Override - public boolean checkRecipe_EM(ItemStack itemStack) { + @NotNull + protected CheckRecipeResult checkProcessing_EM() { if (ePowerPass) { mEfficiencyIncrease = 10000; mMaxProgresstime = 20; @@ -109,7 +114,8 @@ public boolean checkRecipe_EM(ItemStack itemStack) { } eAmpereFlow = 0; mEUt = 0; - return ePowerPass; + return ePowerPass ? SimpleCheckRecipeResult.ofSuccess("routing") + : SimpleCheckRecipeResult.ofFailure("no_routing"); } @Override diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_microwave.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_microwave.java index fb559e888..291bdd169 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_microwave.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_microwave.java @@ -24,6 +24,8 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.common.util.ForgeDirection; +import org.jetbrains.annotations.NotNull; + import com.github.technus.tectech.Reference; import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; import com.github.technus.tectech.thing.metaTileEntity.multi.base.INameFunction; @@ -40,6 +42,8 @@ import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.recipe.check.CheckRecipeResult; +import gregtech.api.recipe.check.SimpleCheckRecipeResult; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; @@ -129,10 +133,11 @@ public boolean checkMachine_EM(IGregTechTileEntity iGregTechTileEntity, ItemStac } @Override - public boolean checkRecipe_EM(ItemStack itemStack) { + @NotNull + public CheckRecipeResult checkProcessing_EM() { hasBeenPausedThisCycle = false; if ((int) powerSetting.get() < 300 || timerSetting.get() <= 0 || timerSetting.get() > 3000) { - return false; + return SimpleCheckRecipeResult.ofFailure("invalid_timer"); } if (remainingTime.get() <= 0) { remainingTime.set(timerSetting.get()); @@ -142,7 +147,7 @@ public boolean checkRecipe_EM(ItemStack itemStack) { eAmpereFlow = 1; mMaxProgresstime = 20; mEfficiencyIncrease = 10000; - return true; + return SimpleCheckRecipeResult.ofSuccess("microwaving"); } @Override diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_teslaCoil.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_teslaCoil.java index 4806b6a6b..65a2e540e 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_teslaCoil.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_teslaCoil.java @@ -55,6 +55,7 @@ import net.minecraftforge.fluids.FluidStack; import org.apache.commons.lang3.tuple.Pair; +import org.jetbrains.annotations.NotNull; import com.github.technus.tectech.TecTech; import com.github.technus.tectech.loader.NetworkDispatcher; @@ -101,6 +102,8 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Maintenance; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; +import gregtech.api.recipe.check.CheckRecipeResult; +import gregtech.api.recipe.check.SimpleCheckRecipeResult; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; @@ -587,18 +590,22 @@ public boolean checkMachine_EM(IGregTechTileEntity iGregTechTileEntity, ItemStac } @Override - public boolean checkRecipe_EM(ItemStack itemStack) { + @NotNull + protected CheckRecipeResult checkProcessing_EM() { checkPlasmaBoost(); - if (!histHighSetting.getStatus(false).isOk || !histLowSetting.getStatus(false).isOk - || !transferRadiusTowerSetting.getStatus(false).isOk - || !transferRadiusTransceiverSetting.getStatus(false).isOk - || !transferRadiusCoverUltimateSetting.getStatus(false).isOk - || !outputVoltageSetting.getStatus(false).isOk - || !outputCurrentSetting.getStatus(false).isOk - || !sortTimeMinSetting.getStatus(false).isOk - || !overDriveSetting.getStatus(false).isOk) - return false; + if (!histHighSetting.getStatus(false).isOk || !histLowSetting.getStatus(false).isOk) + return SimpleCheckRecipeResult.ofFailure("invalid_hysteresis"); + if (!transferRadiusTowerSetting.getStatus(false).isOk || !transferRadiusTransceiverSetting.getStatus(false).isOk + || !transferRadiusCoverUltimateSetting.getStatus(false).isOk) + return SimpleCheckRecipeResult.ofFailure("invalid_transfer_radius"); + if (!outputVoltageSetting.getStatus(false).isOk) + return SimpleCheckRecipeResult.ofFailure("invalid_voltage_setting"); + if (!outputCurrentSetting.getStatus(false).isOk) + return SimpleCheckRecipeResult.ofFailure("invalid_current_setting"); + if (!sortTimeMinSetting.getStatus(false).isOk) return SimpleCheckRecipeResult.ofFailure("invalid_time_setting"); + if (!overDriveSetting.getStatus(false).isOk) + return SimpleCheckRecipeResult.ofFailure("invalid_overdrive_setting"); mEfficiencyIncrease = 10000; mMaxProgresstime = 20; @@ -619,7 +626,7 @@ public boolean checkRecipe_EM(ItemStack itemStack) { if (vTier < 0) { // Returning true to allow for 'passive running' outputVoltageMax = 0; - return true; + return SimpleCheckRecipeResult.ofSuccess("routing"); } else if (vTier > mTier && getEUVar() > 0) { explodeMultiblock(); } @@ -641,7 +648,7 @@ public boolean checkRecipe_EM(ItemStack itemStack) { energyCapacity += capacitorData[2]; } } - return true; + return SimpleCheckRecipeResult.ofSuccess("routing"); } @Override diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java index 5995d6c9b..0ce8c2aff 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java @@ -37,6 +37,7 @@ import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; +import org.jetbrains.annotations.NotNull; import org.lwjgl.opengl.GL11; import com.github.technus.tectech.Reference; @@ -105,6 +106,8 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_OutputBus; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; +import gregtech.api.recipe.check.CheckRecipeResult; +import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.util.GT_HatchElementBuilder; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.GT_Recipe; @@ -311,14 +314,26 @@ protected boolean checkMachine_EM(IGregTechTileEntity iGregTechTileEntity, ItemS * Checks Recipes (when all machine is complete and can work) *

* can get/set Parameters here also + * + * @deprecated Use {@link #createProcessingLogic()} ()} or {@link #checkProcessing_EM()} * * @param itemStack item in the controller * @return is recipe is valid */ + @Deprecated public boolean checkRecipe_EM(ItemStack itemStack) { return false; } + @NotNull + protected CheckRecipeResult checkProcessing_EM() { + if (processingLogic == null) { + return checkRecipe_EM(getControllerSlot()) ? CheckRecipeResultRegistry.SUCCESSFUL + : CheckRecipeResultRegistry.NO_RECIPE; + } + return super.checkProcessing(); + } + /** * Put EM stuff from outputEM into EM output hatches here or do other stuff - it is basically on recipe succeded *

@@ -1104,6 +1119,15 @@ public final boolean checkRecipe(ItemStack itemStack) { // do recipe checks, bas return result; } + @NotNull + @Override + public final CheckRecipeResult checkProcessing() { + hatchesStatusUpdate_EM(); + CheckRecipeResult result = checkProcessing_EM(); + hatchesStatusUpdate_EM(); + return result; + } + /** * callback for updating parameters and new hatches */ @@ -1295,7 +1319,7 @@ public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { mEfficiencyIncrease = 0; if (aBaseMetaTileEntity.isAllowedToWork()) { - if (checkRecipe(mInventory[1])) { + if (checkRecipe()) { mEfficiency = Math.max( 0, min( @@ -1315,7 +1339,7 @@ public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { // } } else if (RECIPE_AT == Tick || aBaseMetaTileEntity.hasWorkJustBeenEnabled()) { if (aBaseMetaTileEntity.isAllowedToWork()) { - if (checkRecipe(mInventory[1])) { + if (checkRecipe()) { mEfficiency = Math.max( 0, min( diff --git a/src/main/resources/assets/tectech/lang/en_US.lang b/src/main/resources/assets/tectech/lang/en_US.lang index 21f7333a4..8fc11ec9d 100644 --- a/src/main/resources/assets/tectech/lang/en_US.lang +++ b/src/main/resources/assets/tectech/lang/en_US.lang @@ -958,6 +958,28 @@ gt.blockmachines.debug.tt.writer.desc.0=Scans Blocks Around gt.blockmachines.debug.tt.writer.desc.1=Prints Multiblock NonTE structure check code gt.blockmachines.debug.tt.writer.desc.2=ABC axises aligned to machine front +GT5U.gui.text.computing=§aComputing +GT5U.gui.text.providing_data=§aProviding Data +GT5U.gui.text.routing=§aRouting +GT5U.gui.text.researching=§aResearching +GT5U.gui.text.charging=§aCharging +GT5U.gui.text.microwaving=§aMicrowaving +GT5U.gui.text.no_routing=§7Can't route +GT5U.gui.text.invalid_timer=§7Invalid timer +GT5U.gui.text.no_research_item=§7No valid item to research +GT5U.gui.text.no_chargeable_item=§7No chargeable item +GT5U.gui.text.no_computing=§7Can't compute +GT5U.gui.text.no_data=§7Can't output data +GT5U.gui.text.no_planet_block=§7Missing planet block +GT5U.gui.text.no_helium=§7Not enough Helium +GT5U.gui.text.no_hydrogen=§7Not enough Hydrogen +GT5U.gui.text.invalid_hysteresis=§7Invalid hysteresis settings +GT5U.gui.text.invalid_transfer_radius=§7Invalid transfer radius settings +GT5U.gui.text.invalid_voltage_setting=§7Invalid voltage setting +GT5U.gui.text.invalid_current_setting=§7Invalid current setting +GT5U.gui.text.invalid_time_setting=§7Invalid time setting +GT5U.gui.text.invalid_overdrive_setting=§7Invalid overdrive setting + #Keywords and phrases #Example: ID:3 tt.keyword.ID=ID