aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common
diff options
context:
space:
mode:
authorBlueWeabo <ilia.iliev2005@gmail.com>2023-02-12 17:02:54 +0200
committerGitHub <noreply@github.com>2023-02-12 16:02:54 +0100
commit8e1fc766d8f01211644932468a3ae453b7afcd62 (patch)
treee7851b9bfdb5d07ae298b4a15cf4d9170b78fdb0 /src/main/java/gregtech/common
parent136a147529adc83eb775a2e8a8c81ff055ce8838 (diff)
downloadGT5-Unofficial-8e1fc766d8f01211644932468a3ae453b7afcd62.tar.gz
GT5-Unofficial-8e1fc766d8f01211644932468a3ae453b7afcd62.tar.bz2
GT5-Unofficial-8e1fc766d8f01211644932468a3ae453b7afcd62.zip
Add a recipe check to MuTEs (#1727)
* working recipes! * clean up and save items which need to be outputted * reviews
Diffstat (limited to 'src/main/java/gregtech/common')
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multiblock/MultiBlock_Macerator.java53
1 files changed, 50 insertions, 3 deletions
diff --git a/src/main/java/gregtech/common/tileentities/machines/multiblock/MultiBlock_Macerator.java b/src/main/java/gregtech/common/tileentities/machines/multiblock/MultiBlock_Macerator.java
index fa0a6298f6..d4810aa195 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multiblock/MultiBlock_Macerator.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multiblock/MultiBlock_Macerator.java
@@ -3,8 +3,10 @@ package gregtech.common.tileentities.machines.multiblock;
import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofChain;
import static com.gtnewhorizon.structurelib.structure.StructureUtility.transpose;
import static gregtech.api.enums.Textures.BlockIcons.MACHINE_CASINGS;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE;
import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ACTIVE;
import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ACTIVE_GLOW;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_GLOW;
import static gregtech.api.multitileentity.multiblock.base.MultiBlockPart.ENERGY_IN;
import static gregtech.api.multitileentity.multiblock.base.MultiBlockPart.FLUID_IN;
import static gregtech.api.multitileentity.multiblock.base.MultiBlockPart.FLUID_OUT;
@@ -13,15 +15,21 @@ import static gregtech.api.multitileentity.multiblock.base.MultiBlockPart.ITEM_O
import static gregtech.api.multitileentity.multiblock.base.MultiBlockPart.NOTHING;
import net.minecraft.block.Block;
+import net.minecraft.item.ItemStack;
+
+import org.apache.commons.lang3.tuple.Pair;
import com.gtnewhorizon.structurelib.structure.IStructureDefinition;
import com.gtnewhorizon.structurelib.structure.StructureDefinition;
import com.gtnewhorizon.structurelib.util.Vec3Impl;
+import gregtech.api.enums.TierEU;
import gregtech.api.interfaces.ITexture;
import gregtech.api.multitileentity.multiblock.base.MultiBlock_Stackable;
import gregtech.api.render.TextureFactory;
import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
+import gregtech.api.util.GT_Recipe;
+import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
public class MultiBlock_Macerator extends MultiBlock_Stackable<MultiBlock_Macerator> {
@@ -135,12 +143,51 @@ public class MultiBlock_Macerator extends MultiBlock_Stackable<MultiBlock_Macera
// Base Texture
MACHINE_CASINGS[1][0],
// Active
- TextureFactory.builder().addIcon(OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ACTIVE).extFacing().build(),
+ isActive()
+ ? TextureFactory.builder().addIcon(OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ACTIVE).extFacing()
+ .build()
+ : TextureFactory.builder().addIcon(OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE).extFacing()
+ .build(),
// Active Glow
- TextureFactory.builder().addIcon(OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ACTIVE_GLOW).extFacing()
- .glow().build() };
+ isActive()
+ ? TextureFactory.builder().addIcon(OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ACTIVE_GLOW)
+ .extFacing().glow().build()
+ : TextureFactory.builder().addIcon(OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_GLOW).extFacing()
+ .glow().build() };
}
// Base Texture
return new ITexture[] { MACHINE_CASINGS[1][0] };
}
+
+ @Override
+ public boolean checkRecipe(ItemStack aStack) {
+ if (isSeparateInputs()) {
+ for (Pair<ItemStack[], String> tItemInputs : getItemInputsForEachInventory()) {
+ if (processRecipe(aStack, tItemInputs.getLeft(), tItemInputs.getRight())) {
+ return true;
+ }
+ }
+ return false;
+ } else {
+ ItemStack[] tItemInputs = getInventoriesForInput().getStacks().toArray(new ItemStack[0]);
+ return processRecipe(aStack, tItemInputs, null);
+ }
+ }
+
+ private boolean processRecipe(ItemStack aStack, ItemStack[] aItemInputs, String aInventory) {
+ GT_Recipe_Map tRecipeMap = GT_Recipe_Map.sMaceratorRecipes;
+ GT_Recipe tRecipe = tRecipeMap.findRecipe(this, false, TierEU.IV, null, aItemInputs);
+ if (tRecipe == null) {
+ return false;
+ }
+
+ if (!tRecipe.isRecipeInputEqual(true, false, 1, null, aItemInputs)) {
+ return false;
+ }
+
+ mMaxProgressTime = tRecipe.mDuration;
+
+ setItemOutputs(tRecipe.mOutputs, aInventory);
+ return true;
+ }
}