aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorMaxim <maxim235@gmx.de>2023-07-10 10:44:23 +0200
committerGitHub <noreply@github.com>2023-07-10 10:44:23 +0200
commit423d4c47d8bd6cb01841c95f67667d9dac992931 (patch)
tree4fbaf510124fa1301fe9727ea26960791b928c03 /src/main
parentd47057911716b1a03ad212928f8c2dad649eafd2 (diff)
downloadGT5-Unofficial-423d4c47d8bd6cb01841c95f67667d9dac992931.tar.gz
GT5-Unofficial-423d4c47d8bd6cb01841c95f67667d9dac992931.tar.bz2
GT5-Unofficial-423d4c47d8bd6cb01841c95f67667d9dac992931.zip
Implement generic processing logic (#226)
* Migrated EoH * Added deprecation for checkRecipe_EM * Migrated QC * Migrated DB * Migrated AT * Migrated RS and scanner * Migrated EI * Migrated switch * Migrated microwave * Migrated tesla tower * Fixed implementation of texts * update deps * Addressed review comments * Update dependencies.gradle * Update dependencies.gradle * update deps --------- Co-authored-by: Martin Robertz <dream-master@gmx.net>
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_EyeOfHarmony.java58
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java18
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dataBank.java11
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_infuser.java11
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java22
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_scanner.java20
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_switch.java11
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_transformer.java10
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_microwave.java11
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_teslaCoil.java31
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java28
-rw-r--r--src/main/resources/assets/tectech/lang/en_US.lang22
12 files changed, 180 insertions, 73 deletions
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 eff092620e..a140a921d6 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.common.util.ForgeDirection;
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.ITexture;
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 @@ public class GT_MetaTileEntity_EM_EyeOfHarmony extends GT_MetaTileEntity_Multibl
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 class GT_MetaTileEntity_EM_EyeOfHarmony extends GT_MetaTileEntity_Multibl
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 @@ public class GT_MetaTileEntity_EM_EyeOfHarmony extends GT_MetaTileEntity_Multibl
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 class GT_MetaTileEntity_EM_EyeOfHarmony extends GT_MetaTileEntity_Multibl
}
// 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 class GT_MetaTileEntity_EM_EyeOfHarmony extends GT_MetaTileEntity_Multibl
}
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 68e4e0d70d..46f325988a 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.EnumChatFormatting;
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.interfaces.tileentity.IGregTechTileEntity;
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 class GT_MetaTileEntity_EM_computer extends GT_MetaTileEntity_MultiblockB
}
@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 class GT_MetaTileEntity_EM_computer extends GT_MetaTileEntity_MultiblockB
mEUt = -(int) eut;
} else {
mEUt = -(int) V[8];
- return false;
+ return CheckRecipeResultRegistry.POWER_OVERFLOW;
}
short thingsActive = 0;
int rackComputation;
@@ -281,7 +287,7 @@ public class GT_MetaTileEntity_EM_computer extends GT_MetaTileEntity_MultiblockB
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 class GT_MetaTileEntity_EM_computer extends GT_MetaTileEntity_MultiblockB
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 3bc30c383d..5de86299b0 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.EnumChatFormatting;
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.metatileentity.IMetaTileEntity;
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 class GT_MetaTileEntity_EM_dataBank extends GT_MetaTileEntity_MultiblockB
}
@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 77a5e29093..cb19536f78 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.EnumChatFormatting;
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.enums.Materials;
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 class GT_MetaTileEntity_EM_infuser extends GT_MetaTileEntity_MultiblockBa
}
@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 class GT_MetaTileEntity_EM_infuser extends GT_MetaTileEntity_MultiblockBa
} 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 7116641de4..c9cf28ca43 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.minecraft.world.World;
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.MetaTileEntity;
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 class GT_MetaTileEntity_EM_research extends GT_MetaTileEntity_MultiblockB
}
@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 class GT_MetaTileEntity_EM_research extends GT_MetaTileEntity_MultiblockB
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 class GT_MetaTileEntity_EM_research extends GT_MetaTileEntity_MultiblockB
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 93de5d24dd..2ef33377c8 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.nbt.NBTTagCompound;
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.metatileentity.IMetaTileEntity;
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 class GT_MetaTileEntity_EM_scanner extends GT_MetaTileEntity_MultiblockBa
}
@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 class GT_MetaTileEntity_EM_scanner extends GT_MetaTileEntity_MultiblockBa
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 class GT_MetaTileEntity_EM_scanner extends GT_MetaTileEntity_MultiblockBa
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 e5a67c074b..c4be17ea46 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.EnumChatFormatting;
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.enums.Textures;
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 class GT_MetaTileEntity_EM_switch extends GT_MetaTileEntity_MultiblockBas
}
@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 class GT_MetaTileEntity_EM_switch extends GT_MetaTileEntity_MultiblockBas
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 5b369edb7d..72f7c97906 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.EnumChatFormatting;
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.enums.Textures;
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 class GT_MetaTileEntity_EM_transformer extends GT_MetaTileEntity_Multiblo
}
@Override
- public boolean checkRecipe_EM(ItemStack itemStack) {
+ @NotNull
+ protected CheckRecipeResult checkProcessing_EM() {
if (ePowerPass) {
mEfficiencyIncrease = 10000;
mMaxProgresstime = 20;
@@ -109,7 +114,8 @@ public class GT_MetaTileEntity_EM_transformer extends GT_MetaTileEntity_Multiblo
}
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 fb559e8882..291bdd1691 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.AxisAlignedBB;
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.enums.Textures;
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 class GT_MetaTileEntity_TM_microwave extends GT_MetaTileEntity_Multiblock
}
@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 class GT_MetaTileEntity_TM_microwave extends GT_MetaTileEntity_Multiblock
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 4806b6a6b8..65a2e540e1 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.common.util.ForgeDirection;
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_Input
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 class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock
}
@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 class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock
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 class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock
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 5995d6c9b0..0ce8c2affb 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.minecraft.util.ResourceLocation;
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_Muffl
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 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM
* Checks Recipes (when all machine is complete and can work)
* <p>
* 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
* <p>
@@ -1104,6 +1119,15 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM
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 abstract class GT_MetaTileEntity_MultiblockBase_EM
mEfficiencyIncrease = 0;
if (aBaseMetaTileEntity.isAllowedToWork()) {
- if (checkRecipe(mInventory[1])) {
+ if (checkRecipe()) {
mEfficiency = Math.max(
0,
min(
@@ -1315,7 +1339,7 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM
// }
} 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 21f7333a4a..8fc11ec9dc 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