From ea1c6f981ef6d01cd7dd42937283e140be08a144 Mon Sep 17 00:00:00 2001 From: miozune Date: Thu, 27 Jul 2023 04:19:51 +0900 Subject: Allow using ME output hatches for fusion reactor (#2184) --- .../implementations/GT_MetaTileEntity_Hatch.java | 10 ++++++++++ .../machines/GT_MetaTileEntity_Hatch_Output_ME.java | 5 +++++ .../machines/multi/GT_MetaTileEntity_FusionComputer.java | 4 ++-- 3 files changed, 17 insertions(+), 2 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java index 6da0331131..1e974f5e9d 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java @@ -134,6 +134,16 @@ public abstract class GT_MetaTileEntity_Hatch extends GT_MetaTileEntity_BasicTan return this.ae2CraftingIcon; } + /** + * Some multiblocks restrict hatches by tier. This method allows hatches to specify custom tier used for + * structure check, while keeping {@link #mTier} for other uses. + * + * @return Tier used for multiblock structure + */ + public byte getTierForStructure() { + return mTier; + } + /** * Sets texture with page and index, rather unusable, but kept FFS * diff --git a/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_Output_ME.java b/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_Output_ME.java index 5ba4fb85c9..06934ac2c1 100644 --- a/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_Output_ME.java +++ b/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_Output_ME.java @@ -91,6 +91,11 @@ public class GT_MetaTileEntity_Hatch_Output_ME extends GT_MetaTileEntity_Hatch_O return new ITexture[] { aBaseTexture, TextureFactory.of(OVERLAY_ME_FLUID_HATCH_ACTIVE) }; } + @Override + public byte getTierForStructure() { + return (byte) (GT_Values.V.length - 2); + } + @Override public void onFirstTick(IGregTechTileEntity aBaseMetaTileEntity) { super.onFirstTick(aBaseMetaTileEntity); diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java index 9f839ccdda..9b390ae822 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java @@ -225,7 +225,7 @@ public abstract class GT_MetaTileEntity_FusionComputer IMetaTileEntity aMetaTileEntity = aBaseMetaTileEntity.getMetaTileEntity(); if (aMetaTileEntity == null) return false; if (!(aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Input tHatch)) return false; - if (tHatch.mTier < tier()) return false; + if (tHatch.getTierForStructure() < tier()) return false; tHatch.updateTexture(aBaseCasingIndex); tHatch.mRecipeMap = getRecipeMap(); return mInputHatches.add(tHatch); @@ -236,7 +236,7 @@ public abstract class GT_MetaTileEntity_FusionComputer IMetaTileEntity aMetaTileEntity = aBaseMetaTileEntity.getMetaTileEntity(); if (aMetaTileEntity == null) return false; if (!(aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Output tHatch)) return false; - if (tHatch.mTier < tier()) return false; + if (tHatch.getTierForStructure() < tier()) return false; tHatch.updateTexture(aBaseCasingIndex); return mOutputHatches.add(tHatch); } -- cgit