From ba7a419aacf0b0eb33afbde5663640a0908b77ce Mon Sep 17 00:00:00 2001 From: TheEpicGamer274 <102255081+TheEpicGamer274@users.noreply.github.com> Date: Fri, 6 Sep 2024 23:27:33 -0400 Subject: Fluid solidifer multiblock balance and cleanup (#3094) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: boubou19 --- .../machines/multi/MTEMultiSolidifier.java | 324 +++------------------ 1 file changed, 42 insertions(+), 282 deletions(-) (limited to 'src/main/java/gregtech/common/tileentities') diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/MTEMultiSolidifier.java b/src/main/java/gregtech/common/tileentities/machines/multi/MTEMultiSolidifier.java index 471815f1f9..d77c6a9e53 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/MTEMultiSolidifier.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/MTEMultiSolidifier.java @@ -1,10 +1,6 @@ package gregtech.common.tileentities.machines.multi; -import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlock; -import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlocksTiered; -import static com.gtnewhorizon.structurelib.structure.StructureUtility.onElementPass; -import static com.gtnewhorizon.structurelib.structure.StructureUtility.transpose; -import static com.gtnewhorizon.structurelib.structure.StructureUtility.withChannel; +import static com.gtnewhorizon.structurelib.structure.StructureUtility.*; import static gregtech.api.enums.GTValues.AuthorFourIsTheNumber; import static gregtech.api.enums.GTValues.AuthorOmdaCZ; import static gregtech.api.enums.GTValues.authorBaps; @@ -17,48 +13,34 @@ import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_MULTI_CANNER; import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_MULTI_CANNER_ACTIVE; import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_MULTI_CANNER_ACTIVE_GLOW; import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_MULTI_CANNER_GLOW; -import static gregtech.api.util.GTUtility.filterValidMTEs; +import static gregtech.api.util.GTStructureUtility.buildHatchAdder; import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; import java.util.List; -import java.util.Map; -import net.minecraft.block.Block; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.common.util.ForgeDirection; 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.constructable.ISurvivalConstructable; import com.gtnewhorizon.structurelib.structure.IStructureDefinition; import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; import com.gtnewhorizon.structurelib.structure.StructureDefinition; +import bartworks.API.BorosilicateGlass; import gregtech.api.GregTechAPI; import gregtech.api.enums.Textures; +import gregtech.api.enums.VoltageIndex; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.logic.ProcessingLogic; -import gregtech.api.metatileentity.GregTechTileClientEvents; -import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.MTEExtendedPowerMultiBlockBase; -import gregtech.api.metatileentity.implementations.MTEHatch; -import gregtech.api.metatileentity.implementations.MTEHatchEnergy; import gregtech.api.metatileentity.implementations.MTEHatchInput; import gregtech.api.metatileentity.implementations.MTEHatchInputBus; -import gregtech.api.metatileentity.implementations.MTEHatchMaintenance; -import gregtech.api.metatileentity.implementations.MTEHatchMuffler; -import gregtech.api.metatileentity.implementations.MTEHatchOutput; -import gregtech.api.metatileentity.implementations.MTEHatchOutputBus; -import gregtech.api.multitileentity.multiblock.casing.Glasses; import gregtech.api.recipe.RecipeMap; import gregtech.api.recipe.RecipeMaps; import gregtech.api.recipe.check.CheckRecipeResult; @@ -66,18 +48,14 @@ import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.render.TextureFactory; import gregtech.api.util.GTRecipe; import gregtech.api.util.GTUtility; -import gregtech.api.util.HatchElementBuilder; import gregtech.api.util.MultiblockTooltipBuilder; -import gregtech.common.blocks.BlockCasings1; import gregtech.common.blocks.BlockCasings10; import gregtech.common.tileentities.machines.IDualInputHatch; import gregtech.common.tileentities.machines.IDualInputInventory; import gregtech.common.tileentities.machines.MTEHatchCraftingInputME; -import gtPlusPlus.core.block.ModBlocks; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.MTEHatchSolidifier; import mcp.mobius.waila.api.IWailaConfigHandler; import mcp.mobius.waila.api.IWailaDataAccessor; -import tectech.thing.metaTileEntity.hatch.MTEHatchEnergyMulti; public class MTEMultiSolidifier extends MTEExtendedPowerMultiBlockBase implements ISurvivalConstructable { @@ -86,46 +64,7 @@ public class MTEMultiSolidifier extends MTEExtendedPowerMultiBlockBase> tieredFluidSolidifierCasings = new HashMap<>() { - - { - // Solidifier Casing - put(13, Pair.of(GregTechAPI.sBlockCasings10, 0)); - // Laurenium Casing - put(2, Pair.of(ModBlocks.blockCustomMachineCasings, 1)); - // Dimensionally Transcendent Casing - put(12, Pair.of(GregTechAPI.sBlockCasings1, 2)); - - } - }; - - private final Map> tieredPipeCasings = new HashMap<>() { - - { - // Solidifier Radiator - put(14, Pair.of(GregTechAPI.sBlockCasings10, 0)); - // Cinobite Pipe Casing - put(13, Pair.of(ModBlocks.blockCustomPipeGearCasings, 1)); - // Abyssal Pipe Casing - put(15, Pair.of(ModBlocks.blockCustomPipeGearCasings, 2)); - - } - }; - - private final List casingIndices = new ArrayList<>( - Arrays.asList(SOLIDIFIER_CASING_INDEX, 84, DTPF_CASING_INDEX)); + private byte glassTier = 0; private final String STRUCTURE_PIECE_MAIN = "main"; private final IStructureDefinition STRUCTURE_DEFINITION = StructureDefinition @@ -153,53 +92,21 @@ public class MTEMultiSolidifier extends MTEExtendedPowerMultiBlockBase te.glassTier = t, te -> te.glassTier)) .addElement( 'B', - HatchElementBuilder.builder() - .atLeast(InputBus, OutputBus, Maintenance, Energy, InputHatch) - .adder(MTEMultiSolidifier::addToSolidifierList) - .casingIndex(SOLIDIFIER_CASING_INDEX) + buildHatchAdder(MTEMultiSolidifier.class).atLeast(InputBus, InputHatch, OutputBus, Maintenance, Energy) + .casingIndex(((BlockCasings10) GregTechAPI.sBlockCasings10).getTextureIndex(13)) .dot(1) .buildAndChain( - withChannel( - "casing", - onElementPass( - x -> x.casingAmount++, - ofBlocksTiered( - this::casingTierExtractor, - ImmutableList.of( - Pair.of(GregTechAPI.sBlockCasings10, 13), - Pair.of(ModBlocks.blockCustomMachineCasings, 2), - Pair.of(GregTechAPI.sBlockCasings1, 12)), - -1, - MTEMultiSolidifier::setCasingTier, - MTEMultiSolidifier::getCasingTier))))) - .addElement( - 'C', - onElementPass( - x -> x.pipeCasingAmount++, - ofBlocksTiered( - this::pipeTierExtractor, - ImmutableList.of( - Pair.of(GregTechAPI.sBlockCasings10, 14), - Pair.of(ModBlocks.blockCustomPipeGearCasings, 13), - Pair.of(ModBlocks.blockCustomPipeGearCasings, 15)), - -1, - MTEMultiSolidifier::setPipeCasingTier, - MTEMultiSolidifier::getPipeCasingTier))) + onElementPass(MTEMultiSolidifier::onCasingAdded, ofBlock(GregTechAPI.sBlockCasings10, 13)))) + + .addElement('C', ofBlock(GregTechAPI.sBlockCasings10, 14)) .addElement('F', ofBlock(GregTechAPI.sBlockCasings1, 11)) - /* - * TinkerConstruct.isModLoaded()// maybe temporary if someone makes textures for new special decorative block - * ? ofChain(ofBlock(Block.getBlockFromName("TConstruct:SearedBlock"), 0)) - * : ofChain(ofBlock(Blocks.cauldron, 0))) - */ .addElement('D', ofBlock(GregTechAPI.sBlockCasings4, 1)) - /* - * BuildCraftFactory.isModLoaded()// maybe temporary if someone makes textures for new special decorative block - * ? ofChain(ofBlock(Block.getBlockFromName("BuildCraft|Factory:blockHopper"), 10)) - * : ofChain(ofBlock(Blocks.hopper, 0))) - */ .build(); public MTEMultiSolidifier(final int aID, final String aName, final String aNameRegional) { @@ -224,10 +131,11 @@ public class MTEMultiSolidifier extends MTEExtendedPowerMultiBlockBase -1 ? casingIndices.get(casingTier) : SOLIDIFIER_CASING_INDEX; if (side == aFacing) { if (aActive) { - rTexture = new ITexture[] { Textures.BlockIcons.getCasingTextureForId(casingIndex), + rTexture = new ITexture[] { + Textures.BlockIcons + .getCasingTextureForId(GTUtility.getCasingTextureIndex(GregTechAPI.sBlockCasings10, 13)), TextureFactory.builder() .addIcon(OVERLAY_FRONT_MULTI_CANNER_ACTIVE) .extFacing() @@ -238,7 +146,9 @@ public class MTEMultiSolidifier extends MTEExtendedPowerMultiBlockBase> mOutputHatchesByLayer = new ArrayList<>(); protected int mWidth; protected int nWidth; @@ -320,7 +225,7 @@ public class MTEMultiSolidifier extends MTEExtendedPowerMultiBlockBase= 0) return built; - int tTotalWidth = Math.min(3 + machineTier, stackSize.stackSize + 3); + int tTotalWidth = Math.min(stackSize.stackSize + 1, 6); for (int i = 1; i < tTotalWidth - 1; i++) { mWidth = i; nWidth = i; @@ -351,44 +256,23 @@ public class MTEMultiSolidifier extends MTEExtendedPowerMultiBlockBase pipeCasingTier) { - mTier = pipeCasingTier; - } else if (casingTier <= pipeCasingTier) { - mTier = casingTier; - } - - } - - private void onCasingAdded() { - mCasingAmount++; - } - @Override public IStructureDefinition getStructureDefinition() { return STRUCTURE_DEFINITION; } - protected boolean mTopLayerFound; protected int mCasing; + private int mCasingAmount; - protected void onCasingFound() { - mCasing++; - } - - protected void onTopLayerFound(boolean aIsCasing) { - mTopLayerFound = true; - if (aIsCasing) onCasingFound(); + private void onCasingAdded() { + mCasingAmount++; } @Override public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { mWidth = 0; - casingTier = -1; - pipeCasingTier = -1; + mCasingAmount = 0; + if (checkPiece(STRUCTURE_PIECE_MAIN, 3, 4, 0)) { while (mWidth < (6)) { if (checkPiece(MS_RIGHT_MID, (-2 * (mWidth + 1)) - 2, 4, 0) @@ -400,20 +284,11 @@ public class MTEMultiSolidifier extends MTEExtendedPowerMultiBlockBase (2 * (machineTier + 1))) { - return false; - } - if (casingTier > -1) { - updateHatchTextures(casingIndices.get(casingTier)); - getBaseMetaTileEntity().sendBlockEvent(GregTechTileClientEvents.CHANGE_CUSTOM_DATA, getUpdateData()); - } - return true; + if (glassTier >= VoltageIndex.UMV) return true; + for (int i = 0; i < this.mEnergyHatches.size(); ++i) + if (this.mEnergyHatches.get(i).mTier > glassTier) return false; + return mCasingAmount >= (100 + mWidth * 23); } @Override @@ -442,121 +317,7 @@ public class MTEMultiSolidifier extends MTEExtendedPowerMultiBlockBase currentTip, IWailaDataAccessor accessor, IWailaConfigHandler config) { super.getWailaBody(itemStack, currentTip, accessor, config); - final NBTTagCompound tag = accessor.getNBTData(); } @Override -- cgit