aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorHoleFish <48403212+HoleFish@users.noreply.github.com>2024-01-21 03:43:16 +0800
committerGitHub <noreply@github.com>2024-01-20 20:43:16 +0100
commita27af22b433051a7e6c250930cf57c4776c9a20a (patch)
tree9b143b954639c11479c630c5d4ed91a680997eba /src/main/java
parent5de527ce6b4e0ab7adceea323a494852ff6d1c16 (diff)
downloadGT5-Unofficial-a27af22b433051a7e6c250930cf57c4776c9a20a.tar.gz
GT5-Unofficial-a27af22b433051a7e6c250930cf57c4776c9a20a.tar.bz2
GT5-Unofficial-a27af22b433051a7e6c250930cf57c4776c9a20a.zip
Fix chemical plant (#821)
* Fix chemical plant * mistake
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java6
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/chemplant/GregtechMTE_ChemicalPlant.java42
2 files changed, 27 insertions, 21 deletions
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java b/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java
index d387a6e1a0..079b90f81c 100644
--- a/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java
+++ b/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java
@@ -75,6 +75,7 @@ import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Utility;
import gregtech.api.util.IGT_HatchAdder;
import gregtech.common.items.GT_MetaGenerated_Tool_01;
+import gregtech.common.tileentities.machines.IDualInputHatch;
import gtPlusPlus.GTplusplus;
import gtPlusPlus.GTplusplus.INIT_PHASE;
import gtPlusPlus.api.objects.Logger;
@@ -725,7 +726,10 @@ public abstract class GregtechMeta_MultiBlockBase<T extends GT_MetaTileEntity_Ex
aDidAdd = addToMachineListInternal(mOutputHatches, aMetaTileEntity, aBaseCasingIndex);
// Process Remaining hatches using Vanilla GT Logic
- else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_InputBus)
+ else if (aMetaTileEntity instanceof IDualInputHatch hatch) {
+ hatch.updateCraftingIcon(this.getMachineCraftingIcon());
+ aDidAdd = addToMachineListInternal(mDualInputHatches, aMetaTileEntity, aBaseCasingIndex);
+ } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_InputBus)
aDidAdd = addToMachineListInternal(mInputBusses, aMetaTileEntity, aBaseCasingIndex);
else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_OutputBus)
aDidAdd = addToMachineListInternal(mOutputBusses, aMetaTileEntity, aBaseCasingIndex);
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/chemplant/GregtechMTE_ChemicalPlant.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/chemplant/GregtechMTE_ChemicalPlant.java
index 1df1c3f047..2fe69059a2 100644
--- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/chemplant/GregtechMTE_ChemicalPlant.java
+++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/chemplant/GregtechMTE_ChemicalPlant.java
@@ -14,7 +14,9 @@ import static gregtech.api.util.GT_StructureUtility.ofCoil;
import static gregtech.api.util.GT_Utility.filterValidMTEs;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashMap;
+import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
@@ -61,6 +63,7 @@ import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
import gregtech.api.util.GT_ParallelHelper;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Utility;
+import gregtech.common.tileentities.machines.IDualInputHatch;
import gtPlusPlus.api.objects.data.AutoMap;
import gtPlusPlus.api.objects.data.Triplet;
import gtPlusPlus.api.recipe.GTPPRecipeMaps;
@@ -351,13 +354,14 @@ public class GregtechMTE_ChemicalPlant extends GregtechMeta_MultiBlockBase<Gregt
mCoilTier = checkCoil.getTier();
getBaseMetaTileEntity().sendBlockEvent(GregTechTileClientEvents.CHANGE_CUSTOM_DATA, getUpdateData());
updateHatchTexture();
- return mMachineCasingTier >= 9 || mMachineCasingTier >= maxTierOfHatch;
+ return (mMachineCasingTier >= 9 || mMachineCasingTier >= maxTierOfHatch) && mCatalystBuses.size() <= 1;
}
return false;
}
public void updateHatchTexture() {
for (GT_MetaTileEntity_Hatch h : mCatalystBuses) h.updateTexture(getCasingTextureID());
+ for (IDualInputHatch h : mDualInputHatches) h.updateTexture(getCasingTextureID());
for (GT_MetaTileEntity_Hatch h : mInputBusses) h.updateTexture(getCasingTextureID());
for (GT_MetaTileEntity_Hatch h : mMaintenanceHatches) h.updateTexture(getCasingTextureID());
for (GT_MetaTileEntity_Hatch h : mEnergyHatches) h.updateTexture(getCasingTextureID());
@@ -573,21 +577,19 @@ public class GregtechMTE_ChemicalPlant extends GregtechMeta_MultiBlockBase<Gregt
return CheckRecipeResultRegistry.insufficientMachineTier(recipe.mSpecialValue);
}
// checks if it has a catalyst
-
- boolean needsCalayst = false;
+ ItemStack catalyst = null;
for (ItemStack item : recipe.mInputs) {
if (ItemUtils.isCatalyst(item)) {
- needsCalayst = true;
+ catalyst = item;
break;
}
}
- if (needsCalayst) {
- catalystRecipe = findCatalyst(inputItems, recipe.mInputs);
- if (catalystRecipe == null || mCatalystBuses.size() != 1) {
+
+ if (catalyst != null) {
+ catalystRecipe = findCatalyst(getCatalystInputs().toArray(new ItemStack[0]), catalyst);
+ if (catalystRecipe == null) {
return SimpleCheckRecipeResult.ofFailure("no_catalyst");
}
- } else {
- catalystRecipe = null;
}
// checks if it has enough catalyst durability
@@ -641,18 +643,12 @@ public class GregtechMTE_ChemicalPlant extends GregtechMeta_MultiBlockBase<Gregt
return 0;
}
- private ItemStack findCatalyst(ItemStack[] aItemInputs, ItemStack[] aRecipeInputs) {
+ private ItemStack findCatalyst(ItemStack[] aItemInputs, ItemStack catalyst) {
if (aItemInputs != null) {
- for (final ItemStack aInput : aItemInputs) {
- if (aInput != null) {
- if (ItemUtils.isCatalyst(aInput)) {
- for (ItemStack aRecipeInput : aRecipeInputs) {
- if (GT_Utility.areStacksEqual(aRecipeInput, aInput, true)) {
- return aInput;
- }
- }
- }
- }
+ Optional<ItemStack> foundCatalyst = Arrays.stream(aItemInputs)
+ .filter(i -> GT_Utility.areStacksEqual(i, catalyst, true)).findFirst();
+ if (foundCatalyst.isPresent()) {
+ return foundCatalyst.get();
}
}
return null;
@@ -675,6 +671,12 @@ public class GregtechMTE_ChemicalPlant extends GregtechMeta_MultiBlockBase<Gregt
if (this.getControllerSlot() != null) {
tItems.add(this.getControllerSlot());
}
+ tItems.addAll(getCatalystInputs());
+ return tItems;
+ }
+
+ public ArrayList<ItemStack> getCatalystInputs() {
+ ArrayList<ItemStack> tItems = new ArrayList<>();
for (GT_MetaTileEntity_Hatch_Catalysts tHatch : filterValidMTEs(mCatalystBuses)) {
AutoMap<ItemStack> aHatchContent = tHatch.getContentUsageSlots();
if (!aHatchContent.isEmpty()) {