diff options
author | Lyft <127234178+Lyfts@users.noreply.github.com> | 2024-11-23 15:17:17 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-23 14:17:17 +0000 |
commit | 3605cfcc3f4b0a77294a98867f2d6f12c146e664 (patch) | |
tree | f8460ff19b578003bb2a09904d0e8014e8a4fcc0 /src/main/java | |
parent | 65f01576cae54415ada2153d6b013543e14ea3c4 (diff) | |
download | GT5-Unofficial-3605cfcc3f4b0a77294a98867f2d6f12c146e664.tar.gz GT5-Unofficial-3605cfcc3f4b0a77294a98867f2d6f12c146e664.tar.bz2 GT5-Unofficial-3605cfcc3f4b0a77294a98867f2d6f12c146e664.zip |
Use ofBlocksTiered for steam water pump structure (#3521)
Co-authored-by: Martin Robertz <dream-master@gmx.net>
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/steam/MTESteamWaterPump.java | 94 |
1 files changed, 40 insertions, 54 deletions
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/steam/MTESteamWaterPump.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/steam/MTESteamWaterPump.java index 8765866b68..8b592a1cc1 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/steam/MTESteamWaterPump.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/steam/MTESteamWaterPump.java @@ -1,15 +1,16 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.processing.steam; import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlock; +import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlocksTiered; import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofChain; import static com.gtnewhorizon.structurelib.structure.StructureUtility.onElementPass; import static com.gtnewhorizon.structurelib.structure.StructureUtility.transpose; import static gregtech.api.enums.HatchElement.OutputHatch; import static gregtech.api.util.GTStructureUtility.buildHatchAdder; -import static gregtech.api.util.GTStructureUtility.ofFrame; import java.util.List; +import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -22,8 +23,10 @@ import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; +import org.apache.commons.lang3.tuple.Pair; import org.jetbrains.annotations.NotNull; +import com.google.common.collect.ImmutableList; import com.gtnewhorizon.structurelib.alignment.IAlignmentLimits; import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable; import com.gtnewhorizon.structurelib.structure.IStructureDefinition; @@ -76,8 +79,7 @@ public class MTESteamWaterPump extends MTESteamMultiBase<MTESteamWaterPump> impl private static final int HORIZONTAL_OFF_SET = 1; private static final int VERTICAL_OFF_SET = 2; private static final int DEPTH_OFF_SET = 0; - private static final String tier1 = "tier1"; - private static final String tier2 = "tier2"; + private static final String STRUCTURE_PIECE_MAIN = "main"; // Base amount of water produced per second, before applying humidity and tier modifiers. private static final int BASE_WATER_PER_SECOND = 1_500; @@ -85,7 +87,7 @@ public class MTESteamWaterPump extends MTESteamMultiBase<MTESteamWaterPump> impl private static final int BASE_STEAM_PER_SECOND = 1_500; - private int mSetTier = 1; + private int mSetTier = -1; private float currentHumidity; @@ -99,8 +101,7 @@ public class MTESteamWaterPump extends MTESteamMultiBase<MTESteamWaterPump> impl private float getHumidity() { return this.getBaseMetaTileEntity() - .getWorld() - .getBiomeGenForCoords(getBaseMetaTileEntity().getXCoord(), getBaseMetaTileEntity().getZCoord()).rainfall; + .getBiome().rainfall; } private int calculateFinalWaterOutput() { @@ -113,23 +114,15 @@ public class MTESteamWaterPump extends MTESteamMultiBase<MTESteamWaterPump> impl if (STRUCTURE_DEFINITION == null) { STRUCTURE_DEFINITION = StructureDefinition.<MTESteamWaterPump>builder() - .addShape( - tier1, + STRUCTURE_PIECE_MAIN, transpose( new String[][] { { " A ", " A ", "AAA", " A " }, { " A ", " ", "A A", " A " }, { "C~C", "CCC", "CCC", "CCC" } })) - .addShape( - tier2, - transpose( - new String[][] { - { " D ", " D ", "DDD", " D " }, - { " D ", " ", "D D", " D " }, - { "C~C", "CCC", "CCC", "CCC" } })) - .addElement('A', ofFrame(Materials.Bronze)) - .addElement('D', ofFrame(Materials.Steel)) + .addElement('A', ofBlocksTiered(MTESteamWaterPump::getFrameTier, ImmutableList.of(Pair.of(GregTechAPI.sBlockFrames, Materials.Bronze.mMetaItemSubID), + Pair.of(GregTechAPI.sBlockFrames, Materials.Steel.mMetaItemSubID)), -1, (pump, tier) -> pump.mSetTier = tier , pump -> pump.mSetTier)) .addElement( 'C', ofChain( @@ -151,59 +144,52 @@ public class MTESteamWaterPump extends MTESteamMultiBase<MTESteamWaterPump> impl } // spotless:on + public static int getFrameTier(Block block, int meta) { + if (block == GregTechAPI.sBlockFrames) { + if (meta == Materials.Bronze.mMetaItemSubID) return 1; + if (meta == Materials.Steel.mMetaItemSubID) return 2; + } + return 0; + } + @Override public void construct(ItemStack stackSize, boolean hintsOnly) { - if (stackSize.stackSize == 1) { - this.buildPiece(tier1, stackSize, hintsOnly, HORIZONTAL_OFF_SET, VERTICAL_OFF_SET, DEPTH_OFF_SET); - } else { - this.buildPiece(tier2, stackSize, hintsOnly, HORIZONTAL_OFF_SET, VERTICAL_OFF_SET, DEPTH_OFF_SET); - } + this.buildPiece( + STRUCTURE_PIECE_MAIN, + stackSize, + hintsOnly, + HORIZONTAL_OFF_SET, + VERTICAL_OFF_SET, + DEPTH_OFF_SET); } @Override public int survivalConstruct(ItemStack stackSize, int elementBudget, ISurvivalBuildEnvironment env) { if (this.mMachine) return -1; - int built = 0; - if (stackSize.stackSize == 1) { - mSetTier = 1; - built += this.survivialBuildPiece( - tier1, - stackSize, - HORIZONTAL_OFF_SET, - VERTICAL_OFF_SET, - DEPTH_OFF_SET, - elementBudget, - env, - false, - true); - } else { - mSetTier = 2; - built += this.survivialBuildPiece( - tier2, - stackSize, - HORIZONTAL_OFF_SET, - VERTICAL_OFF_SET, - DEPTH_OFF_SET, - elementBudget, - env, - false, - true); - } - return built; + return this.survivialBuildPiece( + STRUCTURE_PIECE_MAIN, + stackSize, + HORIZONTAL_OFF_SET, + VERTICAL_OFF_SET, + DEPTH_OFF_SET, + elementBudget, + env, + false, + true); } public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { mCountCasing = 0; - mSetTier = 1; - if (!checkPiece(tier1, HORIZONTAL_OFF_SET, VERTICAL_OFF_SET, DEPTH_OFF_SET)) { - if (!checkPiece(tier2, HORIZONTAL_OFF_SET, VERTICAL_OFF_SET, DEPTH_OFF_SET)) return false; - mSetTier = 2; + mSetTier = -1; + + if (!checkPiece(STRUCTURE_PIECE_MAIN, HORIZONTAL_OFF_SET, VERTICAL_OFF_SET, DEPTH_OFF_SET)) { + return false; } if (this.mOutputHatches.size() != 1 || this.mSteamInputFluids.size() != 1) return false; currentHumidity = getHumidity(); - return mCountCasing >= 9; + return mCountCasing >= 9 && mSetTier > 0; } @Override |