diff options
author | HoleFish <48403212+HoleFish@users.noreply.github.com> | 2024-04-13 00:45:04 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-12 18:45:04 +0200 |
commit | 3873c9d8eb8097c75f6f5c9571dfff75d0453299 (patch) | |
tree | ebd105c88b91dff5b4f3512a7c48493d21542717 /src/main/java/gregtech/common/tileentities | |
parent | 6adb40777b5b1633d6967eb96fb206c65d43e958 (diff) | |
download | GT5-Unofficial-3873c9d8eb8097c75f6f5c9571dfff75d0453299.tar.gz GT5-Unofficial-3873c9d8eb8097c75f6f5c9571dfff75d0453299.tar.bz2 GT5-Unofficial-3873c9d8eb8097c75f6f5c9571dfff75d0453299.zip |
Oil cracker supports stocking input hatches (#2563)
fix
Diffstat (limited to 'src/main/java/gregtech/common/tileentities')
-rw-r--r-- | src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilCracker.java | 47 |
1 files changed, 45 insertions, 2 deletions
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilCracker.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilCracker.java index f8d8e359b0..9ca671aa49 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilCracker.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilCracker.java @@ -13,12 +13,15 @@ import static gregtech.api.util.GT_StructureUtility.ofCoil; import static gregtech.api.util.GT_Utility.filterValidMTEs; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import javax.annotation.Nonnull; import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable; @@ -43,6 +46,8 @@ import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.api.recipe.maps.OilCrackerBackend; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; +import gregtech.common.tileentities.machines.GT_MetaTileEntity_Hatch_Input_ME; +import gregtech.common.tileentities.machines.IRecipeProcessingAwareHatch; public class GT_MetaTileEntity_OilCracker extends GT_MetaTileEntity_EnhancedMultiBlockBase<GT_MetaTileEntity_OilCracker> implements ISurvivalConstructable { @@ -324,9 +329,17 @@ public class GT_MetaTileEntity_OilCracker extends GT_MetaTileEntity_EnhancedMult @Override public ArrayList<FluidStack> getStoredFluids() { final ArrayList<FluidStack> rList = new ArrayList<>(); + Map<Fluid, FluidStack> inputsFromME = new HashMap<>(); for (final GT_MetaTileEntity_Hatch_Input tHatch : filterValidMTEs(mInputHatches)) { tHatch.mRecipeMap = getRecipeMap(); - if (tHatch instanceof GT_MetaTileEntity_Hatch_MultiInput) { + if (tHatch instanceof GT_MetaTileEntity_Hatch_Input_ME meHatch) { + for (FluidStack tFluid : meHatch.getStoredFluids()) { + if (tFluid != null && !getRecipeMap().getBackend() + .isValidCatalystFluid(tFluid)) { + inputsFromME.put(tFluid.getFluid(), tFluid); + } + } + } else if (tHatch instanceof GT_MetaTileEntity_Hatch_MultiInput) { for (final FluidStack tFluid : ((GT_MetaTileEntity_Hatch_MultiInput) tHatch).getStoredFluid()) { if (tFluid != null && !getRecipeMap().getBackend() .isValidCatalystFluid(tFluid)) { @@ -342,7 +355,14 @@ public class GT_MetaTileEntity_OilCracker extends GT_MetaTileEntity_EnhancedMult } for (final GT_MetaTileEntity_Hatch_Input tHatch : filterValidMTEs(mMiddleInputHatches)) { tHatch.mRecipeMap = getRecipeMap(); - if (tHatch instanceof GT_MetaTileEntity_Hatch_MultiInput) { + if (tHatch instanceof GT_MetaTileEntity_Hatch_Input_ME meHatch) { + for (FluidStack tFluid : meHatch.getStoredFluids()) { + if (tFluid != null && getRecipeMap().getBackend() + .isValidCatalystFluid(tFluid)) { + inputsFromME.put(tFluid.getFluid(), tFluid); + } + } + } else if (tHatch instanceof GT_MetaTileEntity_Hatch_MultiInput) { for (final FluidStack tFluid : ((GT_MetaTileEntity_Hatch_MultiInput) tHatch).getStoredFluid()) { if (tFluid != null && getRecipeMap().getBackend() .isValidCatalystFluid(tFluid)) { @@ -359,6 +379,9 @@ public class GT_MetaTileEntity_OilCracker extends GT_MetaTileEntity_EnhancedMult } } } + if (!inputsFromME.isEmpty()) { + rList.addAll(inputsFromME.values()); + } return rList; } @@ -377,4 +400,24 @@ public class GT_MetaTileEntity_OilCracker extends GT_MetaTileEntity_EnhancedMult public boolean supportsVoidProtection() { return true; } + + @Override + protected void startRecipeProcessing() { + for (GT_MetaTileEntity_Hatch_Input hatch : filterValidMTEs(mMiddleInputHatches)) { + if (hatch instanceof IRecipeProcessingAwareHatch aware) { + aware.startRecipeProcessing(); + } + } + super.startRecipeProcessing(); + } + + @Override + protected void endRecipeProcessing() { + super.endRecipeProcessing(); + for (GT_MetaTileEntity_Hatch_Input hatch : filterValidMTEs(mMiddleInputHatches)) { + if (hatch instanceof IRecipeProcessingAwareHatch aware) { + setResultIfFailure(aware.endRecipeProcessing(this)); + } + } + } } |