From 0393b582eb3edcb5c575330804b6747577a55e27 Mon Sep 17 00:00:00 2001 From: Lyfts <127234178+Lyfts@users.noreply.github.com> Date: Sat, 2 Sep 2023 08:08:21 +0200 Subject: Add survival autobuild to Elemental Duplicator (#731) * add survival autobuild * fix nei preview --- .../multi/production/GregtechMTE_ElementalDuplicator.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/main') diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_ElementalDuplicator.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_ElementalDuplicator.java index c4926f5fc7..310986768b 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_ElementalDuplicator.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_ElementalDuplicator.java @@ -24,7 +24,9 @@ import net.minecraftforge.fluids.FluidStack; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable; import com.gtnewhorizon.structurelib.structure.IStructureDefinition; +import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; import com.gtnewhorizon.structurelib.structure.StructureDefinition; import gregtech.api.GregTech_API; @@ -51,7 +53,8 @@ import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEn import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; -public class GregtechMTE_ElementalDuplicator extends GregtechMeta_MultiBlockBase { +public class GregtechMTE_ElementalDuplicator extends GregtechMeta_MultiBlockBase + implements ISurvivalConstructable { private final ArrayList mReplicatorDataOrbHatches = new ArrayList(); private static final int CASING_TEXTURE_ID = TAE.getIndexFromPage(0, 3); @@ -154,6 +157,7 @@ public class GregtechMTE_ElementalDuplicator extends GregtechMeta_MultiBlockBase Energy).casingIndex(getCasingTextureIndex()).dot(1).build(), buildHatchAdder(GregtechMTE_ElementalDuplicator.class) .hatchClass(GT_MetaTileEntity_Hatch_ElementalDataOrbHolder.class) + .shouldReject(x -> x.mReplicatorDataOrbHatches.size() >= 1) .adder(GregtechMTE_ElementalDuplicator::addDataOrbHatch) .casingIndex(getCasingTextureIndex()).dot(1).build(), onElementPass( @@ -182,6 +186,12 @@ public class GregtechMTE_ElementalDuplicator extends GregtechMeta_MultiBlockBase return aDidBuild && mCasing >= 138 && checkHatch(); } + @Override + public int survivalConstruct(ItemStack itemStack, int elementBudget, ISurvivalBuildEnvironment env) { + if (mMachine) return -1; + return survivialBuildPiece(STRUCTURE_PIECE_MAIN, itemStack, 4, 4, 0, elementBudget, env, false, true); + } + protected static int getCasingTextureIndex() { return CASING_TEXTURE_ID; } -- cgit