aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaSmeltery.java
diff options
context:
space:
mode:
authorMaxim <maxim235@gmx.de>2022-10-12 19:59:27 +0200
committerGitHub <noreply@github.com>2022-10-12 19:59:27 +0200
commitc770197d9b5b74c23bc83879da5678eaccffd4ce (patch)
tree000a4504dec29c8b7261ffadaaeb81267a7c5a09 /src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaSmeltery.java
parentca665ff165429d751b2c5142fa5b26d335692b43 (diff)
downloadGT5-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/blocks/tileEntity/LargeEssentiaSmeltery.java')
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaSmeltery.java46
1 files changed, 40 insertions, 6 deletions
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;
+ }
}