diff options
| author | Glease <4586901+Glease@users.noreply.github.com> | 2023-12-03 21:06:14 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-12-03 14:06:14 +0100 |
| commit | 89af4774ba803dc15a74e155962aa8f4fe93ef70 (patch) | |
| tree | d0561615e6ee34f14779003f8af6fd9c330d0a78 /src/main/java/goodgenerator | |
| parent | d74691e304390b82754205ba0a87b2d6ee8ae938 (diff) | |
| download | GT5-Unofficial-89af4774ba803dc15a74e155962aa8f4fe93ef70.tar.gz GT5-Unofficial-89af4774ba803dc15a74e155962aa8f4fe93ef70.tar.bz2 GT5-Unofficial-89af4774ba803dc15a74e155962aa8f4fe93ef70.zip | |
structure cleanup (#220)
* structure cleanup
* spotlessApply
---------
Co-authored-by: GitHub GTNH Actions <unknown>
Diffstat (limited to 'src/main/java/goodgenerator')
13 files changed, 139 insertions, 306 deletions
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/ComponentAssemblyLine.java b/src/main/java/goodgenerator/blocks/tileEntity/ComponentAssemblyLine.java index 32198b6ab5..f50729f565 100644 --- a/src/main/java/goodgenerator/blocks/tileEntity/ComponentAssemblyLine.java +++ b/src/main/java/goodgenerator/blocks/tileEntity/ComponentAssemblyLine.java @@ -138,7 +138,7 @@ public class ComponentAssemblyLine extends GT_MetaTileEntity_ExtendedPowerMultiB (block, meta) -> block == Loaders.componentAssemblylineCasing ? meta : -1, IntStream.range(0, 14).mapToObj(i -> Pair.of(Loaders.componentAssemblylineCasing, i)) .collect(Collectors.toList()), - -1, + -2, (t, meta) -> t.casingTier = meta, t -> t.casingTier)) .addElement( @@ -284,13 +284,14 @@ public class ComponentAssemblyLine extends GT_MetaTileEntity_ExtendedPowerMultiB @Override public int survivalConstruct(ItemStack stackSize, int elementBudget, ISurvivalBuildEnvironment env) { + if (mMachine) return -1; int realBudget = elementBudget >= 200 ? elementBudget : Math.min(200, elementBudget * 5); return survivialBuildPiece(STRUCTURE_PIECE_MAIN, stackSize, 4, 2, 0, realBudget, env, false, true); } @Override public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { - casingTier = -1; + casingTier = -2; return checkPiece(STRUCTURE_PIECE_MAIN, 4, 2, 0); } diff --git a/src/main/java/goodgenerator/blocks/tileEntity/CoolantTower.java b/src/main/java/goodgenerator/blocks/tileEntity/CoolantTower.java index 4eadd4ed4b..3fd7108603 100644 --- a/src/main/java/goodgenerator/blocks/tileEntity/CoolantTower.java +++ b/src/main/java/goodgenerator/blocks/tileEntity/CoolantTower.java @@ -6,7 +6,6 @@ import static gregtech.api.enums.Textures.BlockIcons.*; import static gregtech.api.util.GT_StructureUtility.*; import static gregtech.api.util.GT_Utility.filterValidMTEs; -import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; @@ -16,8 +15,8 @@ import org.jetbrains.annotations.NotNull; import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable; import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable; -import com.gtnewhorizon.structurelib.structure.IItemSource; import com.gtnewhorizon.structurelib.structure.IStructureDefinition; +import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; import com.gtnewhorizon.structurelib.structure.StructureDefinition; import goodgenerator.blocks.tileEntity.base.GT_MetaTileEntity_TooltipMultiBlockBase_EM; @@ -28,10 +27,8 @@ import gregtech.api.enums.Materials; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_MultiInput; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output; import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.render.TextureFactory; @@ -104,35 +101,15 @@ public class CoolantTower extends GT_MetaTileEntity_TooltipMultiBlockBase_EM .addElement('C', ofFrame(Materials.TungstenCarbide)) .addElement( 'H', - ofChain( - buildHatchAdder(CoolantTower.class) - .atLeast(GT_HatchElement.InputHatch, GT_HatchElement.OutputHatch) - .casingIndex(CASING_INDEX).dot(1) - .buildAndChain(ofBlockAnyMeta(GregTech_API.sBlockConcretes, 8)))) + buildHatchAdder(CoolantTower.class) + .atLeast(GT_HatchElement.InputHatch, GT_HatchElement.OutputHatch) + .casingIndex(CASING_INDEX).dot(1) + .buildAndChain(ofBlockAnyMeta(GregTech_API.sBlockConcretes, 8))) .build(); } return multiDefinition; } - public final boolean addIOFluidToMachineList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { - if (aTileEntity == null) { - return false; - } else { - IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); - if (aMetaTileEntity == null) { - return false; - } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Input) { - ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex); - return this.mInputHatches.add((GT_MetaTileEntity_Hatch_Input) aMetaTileEntity); - } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Output) { - ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex); - return this.mOutputHatches.add((GT_MetaTileEntity_Hatch_Output) aMetaTileEntity); - } else { - return false; - } - } - } - @Override public boolean checkMachine_EM(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { mWrench = true; @@ -238,8 +215,8 @@ public class CoolantTower extends GT_MetaTileEntity_TooltipMultiBlockBase_EM } @Override - public int survivalConstruct(ItemStack stackSize, int elementBudget, IItemSource source, EntityPlayerMP actor) { + public int survivalConstruct(ItemStack stackSize, int elementBudget, ISurvivalBuildEnvironment env) { if (mMachine) return -1; - return survivialBuildPiece(mName, stackSize, 5, 11, 0, elementBudget, source, actor, false, true); + return survivialBuildPiece(mName, stackSize, 5, 11, 0, elementBudget, env, false, true); } } diff --git a/src/main/java/goodgenerator/blocks/tileEntity/ExtremeHeatExchanger.java b/src/main/java/goodgenerator/blocks/tileEntity/ExtremeHeatExchanger.java index 664edbc809..b88bc0efbf 100644 --- a/src/main/java/goodgenerator/blocks/tileEntity/ExtremeHeatExchanger.java +++ b/src/main/java/goodgenerator/blocks/tileEntity/ExtremeHeatExchanger.java @@ -5,13 +5,11 @@ import static goodgenerator.util.DescTextLocalization.BLUE_PRINT_INFO; import static gregtech.api.enums.GT_Values.V; import static gregtech.api.enums.Textures.BlockIcons.*; import static gregtech.api.util.GT_StructureUtility.buildHatchAdder; -import static gregtech.api.util.GT_StructureUtility.ofHatchAdder; import java.util.Arrays; import java.util.Collections; import java.util.List; -import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; @@ -25,8 +23,8 @@ import org.jetbrains.annotations.NotNull; import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable; import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable; -import com.gtnewhorizon.structurelib.structure.IItemSource; import com.gtnewhorizon.structurelib.structure.IStructureDefinition; +import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; import com.gtnewhorizon.structurelib.structure.StructureDefinition; import goodgenerator.blocks.tileEntity.base.GT_MetaTileEntity_TooltipMultiBlockBase_EM; @@ -102,24 +100,15 @@ public class ExtremeHeatExchanger extends GT_MetaTileEntity_TooltipMultiBlockBas ofChain( buildHatchAdder(ExtremeHeatExchanger.class) .atLeast(GT_HatchElement.OutputHatch, GT_HatchElement.Maintenance) - .casingIndex(48).dot(1).build(), + .casingIndex(48).dot(2).build(), onElementPass(x -> x.casingAmount++, ofBlock(GregTech_API.sBlockCasings4, 0)))) - .addElement( - 'F', - buildHatchAdder(ExtremeHeatExchanger.class).atLeast(EHEHatches.HotInputHatch) - .casingIndex(48).dot(3).build()) - .addElement( - 'E', - buildHatchAdder(ExtremeHeatExchanger.class).atLeast(EHEHatches.ColdOutputHatch) - .casingIndex(48).dot(4).build()) + .addElement('F', EHEHatches.HotInputHatch.newAny(48, 3)) + .addElement('E', EHEHatches.ColdOutputHatch.newAny(48, 4)) .addElement( 'C', ofChain( - ofHatchAdder( - ExtremeHeatExchanger::addMaintenanceToMachineList, - 48, - GregTech_API.sBlockCasings4, - 0), + buildHatchAdder(ExtremeHeatExchanger.class).atLeast(GT_HatchElement.Maintenance) + .casingIndex(48).dot(5).build(), onElementPass(x -> x.casingAmount++, ofBlock(GregTech_API.sBlockCasings4, 0)))) .addElement('G', Glasses.chainAllGlasses()) .addElement('P', ofBlock(GregTech_API.sBlockCasings2, 15)) @@ -173,10 +162,15 @@ public class ExtremeHeatExchanger extends GT_MetaTileEntity_TooltipMultiBlockBas } @Override - public boolean checkMachine_EM(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { - this.casingAmount = 0; + protected void clearHatches_EM() { + super.clearHatches_EM(); mCooledFluidHatch = null; mHotFluidHatch = null; + } + + @Override + public boolean checkMachine_EM(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + this.casingAmount = 0; return structureCheck_EM(mName, 2, 5, 0) && mMaintenanceHatches.size() == 1 && casingAmount >= 25; } @@ -187,13 +181,11 @@ public class ExtremeHeatExchanger extends GT_MetaTileEntity_TooltipMultiBlockBas .addInfo("Controller block for the Extreme Heat Exchanger.") .addInfo("Accept Hot fluid like lava, hot coolant or plasma.") .addInfo("Output SC Steam/SH Steam/Steam.").addInfo("Check NEI for more info.").addInfo(BLUE_PRINT_INFO) - .addSeparator().addController("Front bottom") - .addOtherStructurePart("Input Hatch: distilled water", "Hint block with dot 1") - .addOtherStructurePart("Output Hatch: SC Steam/SH Steam/Steam", "Hint block with dot 2") - .addOtherStructurePart("Input Hatch: Hot fluid or plasma", "Hint block with dot 3") - .addOtherStructurePart("Output Hatch: Cold fluid", "Hint block with dot 4") - .addMaintenanceHatch("Any Casing").addCasingInfo("Robust Tungstensteel Machine Casings", 25) - .toolTipFinisher("Good Generator"); + .addSeparator().addController("Front bottom").addOtherStructurePart("Input Hatch", "distilled water", 1) + .addOtherStructurePart("Output Hatch", "SC Steam/SH Steam/Steam", 2) + .addOtherStructurePart("Input Hatch", "Hot fluid or plasma", 3) + .addOtherStructurePart("Output Hatch", "Cold fluid", 4).addMaintenanceHatch("Any Casing", 1, 2, 5) + .addCasingInfoMin("Robust Tungstensteel Machine Casings", 25, false).toolTipFinisher("Good Generator"); return tt; } @@ -337,9 +329,9 @@ public class ExtremeHeatExchanger extends GT_MetaTileEntity_TooltipMultiBlockBas } @Override - public int survivalConstruct(ItemStack stackSize, int elementBudget, IItemSource source, EntityPlayerMP actor) { + public int survivalConstruct(ItemStack stackSize, int elementBudget, ISurvivalBuildEnvironment env) { if (mMachine) return -1; - return survivialBuildPiece(mName, stackSize, 2, 5, 0, elementBudget, source, actor, false, true); + return survivialBuildPiece(mName, stackSize, 2, 5, 0, elementBudget, env, false, true); } private enum EHEHatches implements IHatchElement<ExtremeHeatExchanger> { diff --git a/src/main/java/goodgenerator/blocks/tileEntity/FuelRefineFactory.java b/src/main/java/goodgenerator/blocks/tileEntity/FuelRefineFactory.java index 1905569ad2..7917e7890a 100644 --- a/src/main/java/goodgenerator/blocks/tileEntity/FuelRefineFactory.java +++ b/src/main/java/goodgenerator/blocks/tileEntity/FuelRefineFactory.java @@ -5,7 +5,6 @@ import static goodgenerator.util.DescTextLocalization.BLUE_PRINT_INFO; import static gregtech.api.util.GT_StructureUtility.buildHatchAdder; import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.StatCollector; @@ -18,9 +17,9 @@ import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_H import com.gtnewhorizon.structurelib.StructureLibAPI; import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable; import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable; -import com.gtnewhorizon.structurelib.structure.IItemSource; import com.gtnewhorizon.structurelib.structure.IStructureDefinition; import com.gtnewhorizon.structurelib.structure.IStructureElement; +import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; import com.gtnewhorizon.structurelib.structure.StructureDefinition; import goodgenerator.blocks.tileEntity.base.GT_MetaTileEntity_TooltipMultiBlockBase_EM; @@ -163,9 +162,9 @@ public class FuelRefineFactory extends GT_MetaTileEntity_TooltipMultiBlockBase_E .addInfo("Use higher tier coils to unlock more fuel types and reduce the processing times.") .addInfo("The structure is too complex!").addInfo(BLUE_PRINT_INFO).addSeparator() .beginStructureBlock(3, 15, 15, false).addInputHatch("The casings adjoin the field restriction glass.") - .addInputBus("The casings adjoin the field restriction glass.") - .addOutputHatch("The casings adjoin the field restriction glass.") - .addEnergyHatch("The casings adjoin the field restriction glass.").toolTipFinisher("Good Generator"); + .addInputBus("The casings adjoin the field restriction glass.", 1) + .addOutputHatch("The casings adjoin the field restriction glass.", 1) + .addEnergyHatch("The casings adjoin the field restriction glass.", 1).toolTipFinisher("Good Generator"); return tt; } @@ -332,8 +331,8 @@ public class FuelRefineFactory extends GT_MetaTileEntity_TooltipMultiBlockBase_E } @Override - public int survivalConstruct(ItemStack stackSize, int elementBudget, IItemSource source, EntityPlayerMP actor) { + public int survivalConstruct(ItemStack stackSize, int elementBudget, ISurvivalBuildEnvironment env) { if (mMachine) return -1; - return survivialBuildPiece(mName, stackSize, 7, 12, 1, elementBudget, source, actor, false, true); + return survivialBuildPiece(mName, stackSize, 7, 12, 1, elementBudget, env, false, true); } } diff --git a/src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaGenerator.java b/src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaGenerator.java index 8b35e0be66..db676bbf2e 100644 --- a/src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaGenerator.java +++ b/src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaGenerator.java @@ -7,10 +7,8 @@ import static gregtech.api.util.GT_StructureUtility.buildHatchAdder; import java.util.ArrayList; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.StatCollector; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -23,8 +21,8 @@ import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_H import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_DynamoTunnel; import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable; import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable; -import com.gtnewhorizon.structurelib.structure.IItemSource; import com.gtnewhorizon.structurelib.structure.IStructureDefinition; +import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; import com.gtnewhorizon.structurelib.structure.StructureDefinition; import goodgenerator.blocks.tileEntity.base.GT_MetaTileEntity_TooltipMultiBlockBase_EM; @@ -42,7 +40,6 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Dynamo; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Maintenance; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.objects.XSTR; import gregtech.api.recipe.check.CheckRecipeResult; @@ -79,9 +76,14 @@ public class LargeEssentiaGenerator extends GT_MetaTileEntity_TooltipMultiBlockB } @Override + protected void clearHatches_EM() { + super.clearHatches_EM(); + mEssentiaHatch.clear(); + } + + @Override public boolean checkMachine_EM(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { mStableValue = 0; - mEssentiaHatch.clear(); return structureCheck_EM(mName, 4, 0, 4) && (mDynamoHatches.size() + eDynamoMulti.size()) == 1 && checkHatchTier() && checkNoLaser() @@ -183,7 +185,8 @@ public class LargeEssentiaGenerator extends GT_MetaTileEntity_TooltipMultiBlockB "TCCCXCCCT", " TCCXCCT ", " TCXCT ", "T TXT T" } })) .addElement('A', ofBlock(ConfigBlocks.blockCosmeticOpaque, 1)) .addElement('T', ofBlock(ConfigBlocks.blockCosmeticSolid, 7)) - .addElement('C', ofBlock(Loaders.magicCasing, 0)).addElement('E', ofChain(onElementPass(x -> { + .addElement('C', ofBlock(Loaders.magicCasing, 0)) // + .addElement('E', ofChain(onElementPass(x -> { ++x.mStableValue; x.mTierLimit = Math.max(x.mTierLimit, 4); }, ofBlock(Loaders.essentiaCell, 0)), onElementPass(x -> { @@ -205,39 +208,18 @@ public class LargeEssentiaGenerator extends GT_MetaTileEntity_TooltipMultiBlockB GT_HatchElement.Maintenance, GT_HatchElement.InputHatch).casingIndex(1536).dot(1).build(), ofBlock(Loaders.magicCasing, 0), - ofTileAdder(LargeEssentiaGenerator::addEssentiaHatch, Loaders.magicCasing, 0))) + ofSpecificTileAdder( + LargeEssentiaGenerator::addEssentiaHatch, + EssentiaHatch.class, + Loaders.magicCasing, + 0))) .build(); } return multiDefinition; } - public final boolean addEssentiaHatch(TileEntity aTileEntity) { - if (aTileEntity instanceof EssentiaHatch) { - return this.mEssentiaHatch.add((EssentiaHatch) aTileEntity); - } - return false; - } - - public final boolean addLargeEssentiaGeneratorList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { - if (aTileEntity == null) { - return false; - } else { - IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); - if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Input) { - ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex); - return this.mInputHatches.add((GT_MetaTileEntity_Hatch_Input) aMetaTileEntity); - } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Maintenance) { - ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex); - return this.mMaintenanceHatches.add((GT_MetaTileEntity_Hatch_Maintenance) aMetaTileEntity); - } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Dynamo) { - ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex); - return this.mDynamoHatches.add((GT_MetaTileEntity_Hatch_Dynamo) aMetaTileEntity); - } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_DynamoMulti) { - ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex); - return this.eDynamoMulti.add((GT_MetaTileEntity_Hatch_DynamoMulti) aMetaTileEntity); - } - } - return false; + public final boolean addEssentiaHatch(EssentiaHatch aTileEntity) { + return this.mEssentiaHatch.add(aTileEntity); } @Override @@ -499,10 +481,9 @@ public class LargeEssentiaGenerator extends GT_MetaTileEntity_TooltipMultiBlockB .addInfo("Supports normal Dynamo Hatches or TecTech ones for up to 64A, but no Laser Hatches.") .addInfo("You can find more information about this generator in the Thaumonomicon.") .addInfo("The structure is too complex!").addInfo(BLUE_PRINT_INFO).addSeparator() - .addMaintenanceHatch("Hint block with dot 1").addInputHatch("Hint block with dot 1") - .addDynamoHatch("Hint block with dot 1") - .addOtherStructurePart("Essentia Input Hatch", "Hint block with dot 1") - .toolTipFinisher("Good Generator"); + .addMaintenanceHatch("Hint block with dot 1", 1).addInputHatch("Hint block with dot 1", 1) + .addDynamoHatch("Hint block with dot 1", 1) + .addOtherStructurePart("Essentia Input Hatch", "Essentia Input", 1).toolTipFinisher("Good Generator"); return tt; } @@ -526,8 +507,8 @@ public class LargeEssentiaGenerator extends GT_MetaTileEntity_TooltipMultiBlockB } @Override - public int survivalConstruct(ItemStack stackSize, int elementBudget, IItemSource source, EntityPlayerMP actor) { + public int survivalConstruct(ItemStack stackSize, int elementBudget, ISurvivalBuildEnvironment env) { if (mMachine) return -1; - return survivialBuildPiece(mName, stackSize, 4, 0, 4, elementBudget, source, actor, false, true); + return survivialBuildPiece(mName, stackSize, 4, 0, 4, elementBudget, env, false, true); } } diff --git a/src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaSmeltery.java b/src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaSmeltery.java index 944b52f9a0..bd2e471e3e 100644 --- a/src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaSmeltery.java +++ b/src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaSmeltery.java @@ -8,11 +8,9 @@ import java.util.ArrayList; import java.util.Map; import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -23,8 +21,8 @@ import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_H import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable; import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable; -import com.gtnewhorizon.structurelib.structure.IItemSource; import com.gtnewhorizon.structurelib.structure.IStructureDefinition; +import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; import com.gtnewhorizon.structurelib.structure.StructureDefinition; import goodgenerator.blocks.tileEntity.base.GT_MetaTileEntity_TooltipMultiBlockBase_EM; @@ -110,6 +108,12 @@ public class LargeEssentiaSmeltery extends GT_MetaTileEntity_TooltipMultiBlockBa } @Override + protected void clearHatches_EM() { + super.clearHatches_EM(); + mEssentiaOutputHatches.clear(); + } + + @Override protected boolean checkMachine_EM(IGregTechTileEntity iGregTechTileEntity, ItemStack itemStack) { this.mCasing = 0; this.mParallel = 0; @@ -117,7 +121,6 @@ public class LargeEssentiaSmeltery extends GT_MetaTileEntity_TooltipMultiBlockBa this.nodePower = 0; this.nodePurificationEfficiency = 0; this.nodeIncrease = 0; - this.mEssentiaOutputHatches.clear(); if (!structureCheck_EM(STRUCTURE_PIECE_FIRST, 2, 2, 0)) return false; if (!structureCheck_EM(STRUCTURE_PIECE_LATER, 2, 2, -1)) return false; @@ -171,18 +174,15 @@ public class LargeEssentiaSmeltery extends GT_MetaTileEntity_TooltipMultiBlockBa GT_HatchElement.Maintenance, GT_HatchElement.Energy, GT_HatchElement.InputBus).casingIndex(CASING_INDEX).dot(1).build(), - ofTileAdder( + ofSpecificTileAdder( LargeEssentiaSmeltery::addEssentiaOutputHatchToMachineList, - Loaders.magicCasing, + EssentiaOutputHatch.class, + Loaders.essentiaOutputHatch, 0), onElementPass( LargeEssentiaSmeltery::onCasingFound, ofBlock(Loaders.magicCasing, 0)))) - .addElement( - 'B', - buildHatchAdder(LargeEssentiaSmeltery.class).atLeast(GT_HatchElement.Muffler) - .casingIndex(CASING_INDEX).dot(2).build()) - .build(); + .addElement('B', GT_HatchElement.Muffler.newAny(CASING_INDEX, 2)).build(); } return this.multiDefinition; } @@ -271,7 +271,7 @@ public class LargeEssentiaSmeltery extends GT_MetaTileEntity_TooltipMultiBlockBa } } - private boolean addEssentiaOutputHatchToMachineList(TileEntity aTileEntity) { + private boolean addEssentiaOutputHatchToMachineList(EssentiaOutputHatch aTileEntity) { if (aTileEntity instanceof EssentiaOutputHatch) { return this.mEssentiaOutputHatches.add((EssentiaOutputHatch) aTileEntity); } @@ -520,47 +520,16 @@ public class LargeEssentiaSmeltery extends GT_MetaTileEntity_TooltipMultiBlockBa } @Override - public int survivalConstruct(ItemStack stackSize, int elementBudget, IItemSource source, EntityPlayerMP actor) { + public int survivalConstruct(ItemStack stackSize, int elementBudget, ISurvivalBuildEnvironment env) { if (mMachine) return -1; - int built = 0; - built += survivialBuildPiece( - STRUCTURE_PIECE_FIRST, - stackSize, - 2, - 2, - 0, - elementBudget, - source, - actor, - false, - true); + int built = survivialBuildPiece(STRUCTURE_PIECE_FIRST, stackSize, 2, 2, 0, elementBudget, env, false, true); + if (built >= 0) return built; int length = stackSize.stackSize + 2; if (length > MAX_CONFIGURABLE_LENGTH) length = MAX_CONFIGURABLE_LENGTH + 2; - built += survivialBuildPiece( - STRUCTURE_PIECE_LAST, - stackSize, - 2, - 2, - -length - 1, - elementBudget - built, - source, - actor, - false, - true); - while (length > 0) { - built += survivialBuildPiece( - STRUCTURE_PIECE_LATER, - stackSize, - 2, - 2, - -length, - elementBudget - built, - source, - actor, - false, - true); - length--; + for (int i = 1; i <= length; i++) { + built = survivialBuildPiece(STRUCTURE_PIECE_LATER, stackSize, 2, 2, -i, elementBudget, env, false, true); + if (built >= 0) return built; } - return built; + return survivialBuildPiece(STRUCTURE_PIECE_LAST, stackSize, 2, 2, -length - 1, elementBudget, env, false, true); } } diff --git a/src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java b/src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java index 35f27145cb..51a8dfded9 100644 --- a/src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java +++ b/src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java @@ -9,7 +9,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; @@ -23,8 +22,8 @@ import com.github.bartimaeusnek.bartworks.util.Pair; import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_DynamoMulti; import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable; import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable; -import com.gtnewhorizon.structurelib.structure.IItemSource; import com.gtnewhorizon.structurelib.structure.IStructureDefinition; +import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; import com.gtnewhorizon.structurelib.structure.StructureDefinition; import goodgenerator.blocks.tileEntity.base.GT_MetaTileEntity_TooltipMultiBlockBase_EM; @@ -427,8 +426,8 @@ public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM } @Override - public int survivalConstruct(ItemStack stackSize, int elementBudget, IItemSource source, EntityPlayerMP actor) { + public int survivalConstruct(ItemStack stackSize, int elementBudget, ISurvivalBuildEnvironment env) { if (mMachine) return -1; - return survivialBuildPiece(mName, stackSize, 3, 7, 0, elementBudget, source, actor, false, true); + return survivialBuildPiece(mName, stackSize, 3, 7, 0, elementBudget, env, false, true); } } diff --git a/src/main/java/goodgenerator/blocks/tileEntity/NeutronActivator.java b/src/main/java/goodgenerator/blocks/tileEntity/NeutronActivator.java index bf49d81f84..e1317c1174 100644 --- a/src/main/java/goodgenerator/blocks/tileEntity/NeutronActivator.java +++ b/src/main/java/goodgenerator/blocks/tileEntity/NeutronActivator.java @@ -11,7 +11,6 @@ import java.util.Collections; import java.util.List; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; @@ -22,8 +21,8 @@ import org.jetbrains.annotations.NotNull; import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable; import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable; -import com.gtnewhorizon.structurelib.structure.IItemSource; import com.gtnewhorizon.structurelib.structure.IStructureDefinition; +import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; import com.gtnewhorizon.structurelib.structure.StructureDefinition; import com.gtnewhorizons.modularui.common.widget.DynamicPositionedColumn; import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget; @@ -244,10 +243,15 @@ public class NeutronActivator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM } @Override - public boolean checkMachine_EM(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { - this.casingAmount = 0; + protected void clearHatches_EM() { + super.clearHatches_EM(); this.mNeutronAccelerator.clear(); this.mNeutronSensor.clear(); + } + + @Override + public boolean checkMachine_EM(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + this.casingAmount = 0; if (!structureCheck_EM(NA_BOTTOM, 2, 0, 0)) return false; height = 0; while (structureCheck_EM(NA_MID, 2, height + 1, 0)) { @@ -439,38 +443,17 @@ public class NeutronActivator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM } @Override - public int survivalConstruct(ItemStack stackSize, int elementBudget, IItemSource source, EntityPlayerMP actor) { + public int survivalConstruct(ItemStack stackSize, int elementBudget, ISurvivalBuildEnvironment env) { if (mMachine) return -1; - int built = 0; - built += survivialBuildPiece(NA_BOTTOM, stackSize, 2, 0, 0, elementBudget, source, actor, false, true); + int built = survivialBuildPiece(NA_BOTTOM, stackSize, 2, 0, 0, elementBudget, env, false, true); + if (built >= 0) return built; int heights = stackSize.stackSize + 3; - built += survivialBuildPiece( - NA_TOP, - stackSize, - 2, - heights + 1, - 0, - elementBudget - built, - source, - actor, - false, - true); - |
