diff options
| author | Maxim <maxim235@gmx.de> | 2022-10-12 19:59:27 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-10-12 19:59:27 +0200 |
| commit | c770197d9b5b74c23bc83879da5678eaccffd4ce (patch) | |
| tree | 000a4504dec29c8b7261ffadaaeb81267a7c5a09 /src/main/java/goodgenerator | |
| parent | ca665ff165429d751b2c5142fa5b26d335692b43 (diff) | |
| download | GT5-Unofficial-c770197d9b5b74c23bc83879da5678eaccffd4ce.tar.gz GT5-Unofficial-c770197d9b5b74c23bc83879da5678eaccffd4ce.tar.bz2 GT5-Unofficial-c770197d9b5b74c23bc83879da5678eaccffd4ce.zip | |
Auto place integration (#83)
* Updated needed dependancies
* Added autoplace integration for compact fusion reactors
* Corrected energy hatch type and increased budget for large fusion
* Applied spotless
* Added autoplace integration to precise assembler
* Reverted check for now
* survival build multis
* spotless
* spotless annoyance
* Added structure check from normal compact to gtpp compact
* SC Steam turbine survival
Co-authored-by: BlueWeabo <76872108+BlueWeabo@users.noreply.github.com>
Diffstat (limited to 'src/main/java/goodgenerator')
16 files changed, 560 insertions, 179 deletions
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/CoolantTower.java b/src/main/java/goodgenerator/blocks/tileEntity/CoolantTower.java index f011934b66..3cee14c86f 100644 --- a/src/main/java/goodgenerator/blocks/tileEntity/CoolantTower.java +++ b/src/main/java/goodgenerator/blocks/tileEntity/CoolantTower.java @@ -3,16 +3,18 @@ package goodgenerator.blocks.tileEntity; import static com.gtnewhorizon.structurelib.structure.StructureUtility.*; import static goodgenerator.util.DescTextLocalization.BLUE_PRINT_INFO; import static gregtech.api.enums.Textures.BlockIcons.*; -import static gregtech.api.util.GT_StructureUtility.ofFrame; -import static gregtech.api.util.GT_StructureUtility.ofHatchAdder; +import static gregtech.api.util.GT_StructureUtility.*; 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.StructureDefinition; import goodgenerator.blocks.tileEntity.base.GT_MetaTileEntity_TooltipMultiBlockBase_EM; import goodgenerator.util.DescTextLocalization; import gregtech.api.GregTech_API; +import gregtech.api.enums.GT_HatchElement; import gregtech.api.enums.Materials; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; @@ -24,10 +26,12 @@ import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.GT_Utility; +import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; -public class CoolantTower extends GT_MetaTileEntity_TooltipMultiBlockBase_EM implements IConstructable { +public class CoolantTower extends GT_MetaTileEntity_TooltipMultiBlockBase_EM + implements IConstructable, ISurvivalConstructable { protected IStructureDefinition<CoolantTower> multiDefinition = null; private final int CASING_INDEX = 1542; @@ -219,9 +223,11 @@ public class CoolantTower extends GT_MetaTileEntity_TooltipMultiBlockBase_EM imp .addElement('C', ofFrame(Materials.TungstenCarbide)) .addElement( 'H', - ofChain( - ofHatchAdder(CoolantTower::addIOFluidToMachineList, CASING_INDEX, 1), - ofBlockAnyMeta(GregTech_API.sBlockConcretes, 8))) + ofChain(buildHatchAdder(CoolantTower.class) + .atLeast(GT_HatchElement.InputHatch, GT_HatchElement.OutputHatch) + .casingIndex(CASING_INDEX) + .dot(1) + .buildAndChain(ofBlockAnyMeta(GregTech_API.sBlockConcretes, 8)))) .build(); } return multiDefinition; @@ -362,4 +368,10 @@ public class CoolantTower extends GT_MetaTileEntity_TooltipMultiBlockBase_EM imp } return new ITexture[] {casingTexturePages[12][6]}; } + + @Override + public int survivalConstruct(ItemStack stackSize, int elementBudget, IItemSource source, EntityPlayerMP actor) { + if (mMachine) return -1; + return survivialBuildPiece(mName, stackSize, 5, 11, 0, elementBudget, source, actor, false, true); + } } diff --git a/src/main/java/goodgenerator/blocks/tileEntity/ExtremeHeatExchanger.java b/src/main/java/goodgenerator/blocks/tileEntity/ExtremeHeatExchanger.java index c7472acfbe..75d131aff3 100644 --- a/src/main/java/goodgenerator/blocks/tileEntity/ExtremeHeatExchanger.java +++ b/src/main/java/goodgenerator/blocks/tileEntity/ExtremeHeatExchanger.java @@ -4,9 +4,12 @@ import static com.gtnewhorizon.structurelib.structure.StructureUtility.*; 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 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.StructureDefinition; import goodgenerator.blocks.tileEntity.base.GT_MetaTileEntity_TooltipMultiBlockBase_EM; @@ -14,6 +17,8 @@ import goodgenerator.loader.Loaders; import goodgenerator.util.DescTextLocalization; import goodgenerator.util.MyRecipeAdder; import gregtech.api.GregTech_API; +import gregtech.api.enums.GT_HatchElement; +import gregtech.api.interfaces.IHatchElement; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -21,12 +26,13 @@ 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_Output; import gregtech.api.render.TextureFactory; -import gregtech.api.util.GT_Log; -import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_Multiblock_Tooltip_Builder; -import gregtech.api.util.GT_Utility; +import gregtech.api.util.*; import ic2.core.Ic2Items; +import java.util.Arrays; +import java.util.Collections; +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; import net.minecraft.util.EnumChatFormatting; @@ -34,7 +40,8 @@ import net.minecraft.util.StatCollector; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; -public class ExtremeHeatExchanger extends GT_MetaTileEntity_TooltipMultiBlockBase_EM implements IConstructable { +public class ExtremeHeatExchanger extends GT_MetaTileEntity_TooltipMultiBlockBase_EM + implements IConstructable, ISurvivalConstructable { protected IStructureDefinition<ExtremeHeatExchanger> multiDefinition = null; @@ -87,17 +94,35 @@ public class ExtremeHeatExchanger extends GT_MetaTileEntity_TooltipMultiBlockBas .addElement( 'B', ofChain( - ofHatchAdder(ExtremeHeatExchanger::addClassicInputToMachineList, 48, 1), - ofHatchAdder(ExtremeHeatExchanger::addMaintenanceToMachineList, 48, 1), + buildHatchAdder(ExtremeHeatExchanger.class) + .atLeast(GT_HatchElement.InputHatch, GT_HatchElement.Maintenance) + .casingIndex(48) + .dot(1) + .build(), onElementPass(x -> x.casingAmount++, ofBlock(GregTech_API.sBlockCasings4, 0)))) .addElement( 'T', ofChain( - ofHatchAdder(ExtremeHeatExchanger::addClassicOutputToMachineList, 48, 2), - ofHatchAdder(ExtremeHeatExchanger::addMaintenanceToMachineList, 48, 2), + buildHatchAdder(ExtremeHeatExchanger.class) + .atLeast(GT_HatchElement.OutputHatch, GT_HatchElement.Maintenance) + .casingIndex(48) + .dot(1) + .build(), onElementPass(x -> x.casingAmount++, ofBlock(GregTech_API.sBlockCasings4, 0)))) - .addElement('F', ofHatchAdder(ExtremeHeatExchanger::addHotFluidInputToMachineList, 48, 3)) - .addElement('E', ofHatchAdder(ExtremeHeatExchanger::addColdFluidOutputToMachineList, 48, 4)) + .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( 'C', ofChain( @@ -331,4 +356,44 @@ public class ExtremeHeatExchanger extends GT_MetaTileEntity_TooltipMultiBlockBas } return new ITexture[] {casingTexturePages[0][48]}; } + + @Override + public int survivalConstruct(ItemStack stackSize, int elementBudget, IItemSource source, EntityPlayerMP actor) { + if (mMachine) return -1; + return survivialBuildPiece(mName, stackSize, 2, 5, 0, elementBudget, source, actor, false, true); + } + + private enum EHEHatches implements IHatchElement<ExtremeHeatExchanger> { + HotInputHatch(ExtremeHeatExchanger::addHotFluidInputToMachineList, GT_MetaTileEntity_Hatch_Input.class) { + @Override + public long count(ExtremeHeatExchanger t) { + if (t.mHotFluidHatch == null) return 0; + return 1; + } + }, + ColdOutputHatch(ExtremeHeatExchanger::addColdFluidOutputToMachineList, GT_MetaTileEntity_Hatch_Output.class) { + @Override + public long count(ExtremeHeatExchanger t) { + if (t.mCooledFluidHatch == null) return 0; + return 1; + } + }; + + private final List<Class<? extends IMetaTileEntity>> mteClasses; + private final IGT_HatchAdder<ExtremeHeatExchanger> adder; + + EHEHatches(IGT_HatchAdder<ExtremeHeatExchanger> adder, Class<? extends IMetaTileEntity>... mteClasses) { + this.mteClasses = Collections.unmodifiableList(Arrays.asList(mteClasses)); + this.adder = adder; + } + + @Override + public List<? extends Class<? extends IMetaTileEntity>> mteClasses() { + return mteClasses; + } + + public IGT_HatchAdder<? super ExtremeHeatExchanger> adder() { + return adder; + } + } } diff --git a/src/main/java/goodgenerator/blocks/tileEntity/FuelRefineFactory.java b/src/main/java/goodgenerator/blocks/tileEntity/FuelRefineFactory.java index f964303394..80f5757e83 100644 --- a/src/main/java/goodgenerator/blocks/tileEntity/FuelRefineFactory.java +++ b/src/main/java/goodgenerator/blocks/tileEntity/FuelRefineFactory.java @@ -3,13 +3,15 @@ package goodgenerator.blocks.tileEntity; import static com.gtnewhorizon.structurelib.structure.StructureUtility.*; import static goodgenerator.util.DescTextLocalization.BLUE_PRINT_INFO; import static gregtech.api.enums.GT_Values.V; -import static gregtech.api.util.GT_StructureUtility.ofHatchAdder; +import static gregtech.api.util.GT_StructureUtility.buildHatchAdder; import com.github.bartimaeusnek.crossmod.tectech.TecTechEnabledMulti; import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti; import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyTunnel; 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.StructureDefinition; @@ -17,6 +19,7 @@ import goodgenerator.blocks.tileEntity.base.GT_MetaTileEntity_TooltipMultiBlockB import goodgenerator.loader.Loaders; import goodgenerator.util.DescTextLocalization; import goodgenerator.util.MyRecipeAdder; +import gregtech.api.enums.GT_HatchElement; import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; @@ -30,6 +33,7 @@ import gregtech.api.util.GT_Utility; import java.util.ArrayList; 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; import net.minecraft.util.StatCollector; @@ -37,7 +41,7 @@ import net.minecraft.world.World; import net.minecraftforge.fluids.FluidStack; public class FuelRefineFactory extends GT_MetaTileEntity_TooltipMultiBlockBase_EM - implements TecTechEnabledMulti, IConstructable { + implements TecTechEnabledMulti, IConstructable, ISurvivalConstructable { private IStructureDefinition<FuelRefineFactory> multiDefinition = null; private int Tier = -1; @@ -95,9 +99,16 @@ public class FuelRefineFactory extends GT_MetaTileEntity_TooltipMultiBlockBase_E })) .addElement( 'X', - ofChain( - ofHatchAdder(FuelRefineFactory::addToFRFList, 179, Loaders.FRF_Casings, 0), - ofBlock(Loaders.FRF_Casings, 0))) + buildHatchAdder(FuelRefineFactory.class) + .atLeast( + GT_HatchElement.Maintenance, + GT_HatchElement.InputHatch, + GT_HatchElement.InputBus, + GT_HatchElement.OutputHatch, + HatchElement.EnergyMulti.or(GT_HatchElement.Energy)) + .casingIndex(50) + .dot(1) + .buildAndChain(ofBlock(Loaders.FRF_Casings, 0))) .addElement('C', ofBlock(Loaders.FRF_Casings, 0)) .addElement('G', ofBlock(Loaders.fieldRestrictingGlass, 0)) .addElement( @@ -358,4 +369,10 @@ public class FuelRefineFactory extends GT_MetaTileEntity_TooltipMultiBlockBase_E } return new ITexture[] {Textures.BlockIcons.getCasingTextureForId(179)}; } + + @Override + public int survivalConstruct(ItemStack stackSize, int elementBudget, IItemSource source, EntityPlayerMP actor) { + if (mMachine) return -1; + return survivialBuildPiece(mName, stackSize, 7, 12, 1, elementBudget, source, actor, false, true); + } } diff --git a/src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaGenerator.java b/src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaGenerator.java index 6af68c59ea..080bb188bc 100644 --- a/src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaGenerator.java +++ b/src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaGenerator.java @@ -2,11 +2,13 @@ package goodgenerator.blocks.tileEntity; import static com.gtnewhorizon.structurelib.structure.StructureUtility.*; import static goodgenerator.util.DescTextLocalization.BLUE_PRINT_INFO; -import static gregtech.api.util.GT_StructureUtility.ofHatchAdder; +import static gregtech.api.util.GT_StructureUtility.buildHatchAdder; import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader; 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.StructureDefinition; import goodgenerator.blocks.tileEntity.base.GT_MetaTileEntity_TooltipMultiBlockBase_EM; @@ -15,6 +17,7 @@ import goodgenerator.items.MyMaterial; import goodgenerator.loader.Loaders; import goodgenerator.util.DescTextLocalization; import goodgenerator.util.ItemRefer; +import gregtech.api.enums.GT_HatchElement; import gregtech.api.enums.Materials; import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; @@ -31,6 +34,7 @@ import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.GT_Utility; 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; @@ -41,7 +45,8 @@ import thaumcraft.api.aspects.Aspect; import thaumcraft.api.aspects.AspectList; import thaumcraft.common.config.ConfigBlocks; -public class LargeEssentiaGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM implements IConstructable { +public class LargeEssentiaGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM + implements IConstructable, ISurvivalConstructable { private IStructureDefinition<LargeEssentiaGenerator> multiDefinition = null; protected int mStableValue = 0; @@ -218,7 +223,14 @@ public class LargeEssentiaGenerator extends GT_MetaTileEntity_TooltipMultiBlockB .addElement( 'X', ofChain( - ofHatchAdder(LargeEssentiaGenerator::addLargeEssentiaGeneratorList, 1536, 1), + buildHatchAdder(LargeEssentiaGenerator.class) + .atLeast( + HatchElement.DynamoMulti.or(GT_HatchElement.Dynamo), + GT_HatchElement.Maintenance, + GT_HatchElement.InputHatch) + .casingIndex(1536) + .dot(1) + .build(), ofBlock(Loaders.magicCasing, 0), ofTileAdder(LargeEssentiaGenerator::addEssentiaHatch, Loaders.magicCasing, 0))) .build(); @@ -556,4 +568,10 @@ public class LargeEssentiaGenerator extends GT_MetaTileEntity_TooltipMultiBlockB int type = LargeEssentiaEnergyData.getAspectTypeIndex(aspect); return type != -1 && (mUpgrade & (1 << type)) != 0; } + + @Override + public int survivalConstruct(ItemStack stackSize, int elementBudget, IItemSource source, EntityPlayerMP actor) { + if (mMachine) return -1; + return survivialBuildPiece(mName, stackSize, 4, 0, 4, elementBudget, source, actor, false, true); + } } diff --git a/src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaSmeltery.java b/src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaSmeltery.java index 900f527344..0c5b28b2f2 100644 --- a/src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaSmeltery.java +++ b/src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaSmeltery.java @@ -2,17 +2,20 @@ package goodgenerator.blocks.tileEntity; import static com.gtnewhorizon.structurelib.structure.StructureUtility.*; import static goodgenerator.util.DescTextLocalization.BLUE_PRINT_INFO; -import static gregtech.api.util.GT_StructureUtility.ofHatchAdder; +import static gregtech.api.util.GT_StructureUtility.buildHatchAdder; import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti; 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.StructureDefinition; import goodgenerator.blocks.tileEntity.base.GT_MetaTileEntity_TooltipMultiBlockBase_EM; import goodgenerator.crossmod.LoadedList; import goodgenerator.loader.Loaders; import goodgenerator.util.DescTextLocalization; +import gregtech.api.enums.GT_HatchElement; import gregtech.api.enums.Textures; import gregtech.api.interfaces.IIconContainer; import gregtech.api.interfaces.ITexture; @@ -25,6 +28,7 @@ import gregtech.api.util.GT_Multiblock_Tooltip_Builder; 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; @@ -38,7 +42,8 @@ import thaumcraft.api.visnet.VisNetHandler; import thaumcraft.common.config.ConfigBlocks; import thaumcraft.common.lib.crafting.ThaumcraftCraftingManager; -public class LargeEssentiaSmeltery extends GT_MetaTileEntity_TooltipMultiBlockBase_EM implements IConstructable { +public class LargeEssentiaSmeltery extends GT_MetaTileEntity_TooltipMultiBlockBase_EM + implements IConstructable, ISurvivalConstructable { private static final IIconContainer textureFontOn = new Textures.BlockIcons.CustomIcon("icons/LargeEssentiaSmeltery_On"); @@ -148,16 +153,27 @@ public class LargeEssentiaSmeltery extends GT_MetaTileEntity_TooltipMultiBlockBa .addElement( 'A', ofChain( - ofHatchAdder(LargeEssentiaSmeltery::addMaintenanceToMachineList, CASING_INDEX, 1), - ofHatchAdder(LargeEssentiaSmeltery::addInputToMachineList, CASING_INDEX, 1), - ofHatchAdder(LargeEssentiaSmeltery::addEnergyHatchToMachineList, CASING_INDEX, 1), + buildHatchAdder(LargeEssentiaSmeltery.class) + .atLeast( + GT_HatchElement.Maintenance, + GT_HatchElement.Energy, + GT_HatchElement.InputBus) + .casingIndex(CASING_INDEX) + .dot(1) + .build(), ofTileAdder( LargeEssentiaSmeltery::addEssentiaOutputHatchToMachineList, Loaders.magicCasing, 0), onElementPass( LargeEssentiaSmeltery::onCasingFound, ofBlock(Loaders.magicCasing, 0)))) - .addElement('B', ofHatchAdder(LargeEssentiaSmeltery::addMufflerToMachineList, CASING_INDEX, 2)) + .addElement( + 'B', + buildHatchAdder(LargeEssentiaSmeltery.class) + .atLeast(GT_HatchElement.Muffler) + .casingIndex(CASING_INDEX) + .dot(2) + .build()) .build(); } return this.multiDefinition; @@ -508,4 +524,22 @@ public class LargeEssentiaSmeltery extends GT_MetaTileEntity_TooltipMultiBlockBa protected void maintenance_EM() { super.maintenance_EM(); } + + @Override + public int survivalConstruct(ItemStack stackSize, int elementBudget, IItemSource source, EntityPlayerMP actor) { + if (mMachine) return -1; + int built = 0; + built += survivialBuildPiece( + STRUCTURE_PIECE_FIRST, stackSize, 2, 2, 0, elementBudget, source, actor, false, true); + int lenght = stackSize.stackSize + 2; + if (lenght > MAX_CONFIGURABLE_LENGTH) lenght = MAX_CONFIGURABLE_LENGTH + 2; + built += survivialBuildPiece( + STRUCTURE_PIECE_LAST, stackSize, 2, 2, lenght + 1, elementBudget - built, source, actor, false, true); + while (lenght > 0) { + built += survivialBuildPiece( + STRUCTURE_PIECE_LATER, stackSize, 2, 2, lenght, elementBudget - built, source, actor, false, true); + lenght--; + } + return built; + } } diff --git a/src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer1.java b/src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer1.java index 2aefa6a5d4..5098c5c5ef 100644 --- a/src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer1.java +++ b/src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer1.java @@ -57,7 +57,7 @@ public class LargeFusionComputer1 extends LargeFusionComputer { .addCasingInfo("LuV Machine Casing", 1664) .addCasingInfo("Ameliorated Superconduct Coil", 560) .addCasingInfo("Naquadah Alloy Frame Boxes", 128) - .addCasingInfo("Chrome Reinforced Borosilicate Glass Block", 63) + .addCasingInfo("Rhodium-Plated Palladium Reinforced Borosilicate Glass Block", 63) .addEnergyHatch("1-32, Hint block with dot 3", 3) .addInputHatch("2-16, Hint block with dot 1", 1) .addOutputHatch("1-16, Hint block with dot 2", 2) diff --git a/src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer4.java b/src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer4.java index ad6ab36a93..40404a3c16 100644 --- a/src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer4.java +++ b/src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer4.java @@ -64,7 +64,7 @@ public class LargeFusionComputer4 extends LargeFusionComputerPP { .addCasingInfo("Fusion Machine Casing MK III", 1664) .addCasingInfo("Compact Fusion Coil MK-II Prototype", 560) .addCasingInfo("Infinity Catalyst Frame Box", 128) - .addCasingInfo("Uranium Reinforced Borosilicate Glass Block", 63) + .addCasingInfo("Neutronium Reinforced Borosilicate Glass Block", 63) .addEnergyHatch("1-32, Hint block with dot 3", 3) .addInputHatch("2-16, Hint block with dot 1", 1) .addOutputHatch("1-16, Hint block with dot 2", 2) diff --git a/src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer5.java b/src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer5.java index 3f7ab9cdc3..5057f6471f 100644 --- a/src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer5.java +++ b/src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer5.java @@ -60,7 +60,7 @@ public class LargeFusionComputer5 extends LargeFusionComputerPP { .addCasingInfo("Fusion Machine Casing MK IV", 1664) .addCasingInfo("Compact Fusion Coil MK-II Finaltype", 560) .addCasingInfo("Infinity Frame Box", 128) - .addCasingInfo("Europium Reinforced Borosilicate Glass Block", 63) + .addCasingInfo("Cosmic Neutronium Reinforced Borosilicate Glass Block", 63) .addEnergyHatch("1-32, Hint block with dot 3", 3) .addInputHatch("2-16, Hint block with dot 1", 1) .addOutputHatch("1-16, Hint block with dot 2", 2) diff --git a/src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java b/src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java index b1d4518e27..1cfc589372 100644 --- a/src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java +++ b/src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java @@ -3,7 +3,7 @@ package goodgenerator.blocks.tileEntity; import static com.gtnewhorizon.structurelib.structure.StructureUtility.*; import static goodgenerator.main.GG_Config_Loader.*; import static goodgenerator.util.DescTextLocalization.BLUE_PRINT_INFO; -import static gregtech.api.util.GT_StructureUtility.ofHatchAdder; +import static gregtech.api.util.GT_StructureUtility.buildHatchAdder; import com.github.bartimaeusnek.bartworks.util.Pair; import com.github.bartimaeusnek.crossmod.tectech.TecTechEnabledMulti; @@ -11,6 +11,8 @@ import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_H import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti; import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyTunnel; 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.StructureDefinition; import goodgenerator.blocks.tileEntity.base.GT_MetaTileEntity_TooltipMultiBlockBase_EM; @@ -20,6 +22,7 @@ import goodgenerator.util.CrackRecipeAdder; import goodgenerator.util.DescTextLocalization; import goodgenerator.util.MyRecipeAdder; import gregtech.api.GregTech_API; +import gregtech.api.enums.GT_HatchElement; import gregtech.api.enums.Materials; import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; @@ -34,6 +37,7 @@ import gregtech.api.util.GT_Utility; 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; @@ -41,7 +45,7 @@ import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM - implements TecTechEnabledMulti, IConstructable { + implements TecTechEnabledMulti, IConstructable, ISurvivalConstructable { protected IStructureDefinition<MultiNqGenerator> multiDefinition = null; protected long leftEnergy = 0; @@ -122,8 +126,15 @@ public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM .addElement( 'X', ofChain( - ofHatchAdder( - MultiNqGenerator::addToGeneratorList, 44, GregTech_API.sBlockCasings3, 12), + buildHatchAdder(MultiNqGenerator.class) + .atLeast( + HatchElement.DynamoMulti.or(GT_HatchElement.Dynamo), + GT_HatchElement.InputHatch, + GT_HatchElement.OutputHatch, + GT_HatchElement.Maintenance) + .casingIndex(44) + .dot(1) + .build(), ofBlock(GregTech_API.sBlockCasings3, 12))) .addElement('A', ofBlock(GregTech_API.sBlockCasings3, 12)) .addElement('N', ofBlock(Loaders.radiationProtectionSteelFrame, 0)) @@ -424,4 +435,10 @@ public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM public List<GT_MetaTileEntity_Hatch_EnergyMulti> getTecTechEnergyMultis() { return new ArrayList<>(); } + + @Override + public int survivalConstruct(ItemStack stackSize, int elementBudget, IItemSource source, EntityPlayerMP actor) { + if (mMachine) return -1; + return survivialBuildPiece(mName, stackSize, 3, 7, 0, elementBudget, source, actor, false, true); + } } diff --git a/src/main/java/goodgenerator/blocks/tileEntity/NeutronActivator.java b/src/main/java/goodgenerator/blocks/tileEntity/NeutronActivator.java index ea3d637a47..a524146fed 100644 --- a/src/main/java/goodgenerator/blocks/tileEntity/NeutronActivator.java +++ b/src/main/java/goodgenerator/blocks/tileEntity/NeutronActivator.java @@ -2,10 +2,12 @@ package goodgenerator.blocks.tileEntity; import static com.gtnewhorizon.structurelib.structure.StructureUtility.*; import static goodgenerator.util.DescTextLocalization.BLUE_PRINT_INFO; -import static goodgenerator.util.StructureHelper.addFrame; -import static gregtech.api.util.GT_StructureUtility.ofHatchAdder; +import static gregtech.api.util.GT_StructureUtility.buildHatchAdder; +import static gregtech.ap |
