aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/goodgenerator/blocks/tileEntity
diff options
context:
space:
mode:
authorGlease <4586901+Glease@users.noreply.github.com>2023-12-03 21:06:14 +0800
committerGitHub <noreply@github.com>2023-12-03 14:06:14 +0100
commit89af4774ba803dc15a74e155962aa8f4fe93ef70 (patch)
treed0561615e6ee34f14779003f8af6fd9c330d0a78 /src/main/java/goodgenerator/blocks/tileEntity
parentd74691e304390b82754205ba0a87b2d6ee8ae938 (diff)
downloadGT5-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/blocks/tileEntity')
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/ComponentAssemblyLine.java5
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/CoolantTower.java37
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/ExtremeHeatExchanger.java48
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/FuelRefineFactory.java13
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaGenerator.java61
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaSmeltery.java69
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java7
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/NeutronActivator.java47
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/PreciseAssembler.java21
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/UniversalChemicalFuelEngine.java28
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/YottaFluidTank.java79
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/base/GT_MetaTileEntity_LargeTurbineBase.java7
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/base/LargeFusionComputer.java23
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);
- while (heights > 0) {
- built += survivialBuildPiece(
- NA_MID,
- stackSize,
- 2,
- heights,
- 0,
- elementBudget - built,
- source,
- actor,
- false,
- true);
- heights--;
+ for (int i = 1; i <= heights; i++) {
+ built = survivialBuildPiece(NA_MID, stackSize, 2, i, 0, elementBudget, env, false, true);
+ if (built >= 0) return built;
}
- return built;
+ return survivialBuildPiece(NA_TOP, stackSize, 2, heights + 1, 0, elementBudget, env, false, true);
}
protected void onCasingFound() {
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/PreciseAssembler.java b/src/main/java/goodgenerator/blocks/tileEntity/PreciseAssembler.java
index c40b2697b5..3242ff8778 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/PreciseAssembler.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/PreciseAssembler.java
@@ -15,7 +15,6 @@ import java.util.stream.IntStream;
import javax.annotation.Nullable;
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.StatCollector;
@@ -26,8 +25,8 @@ import org.jetbrains.annotations.NotNull;
import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti;
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.gtnewhorizon.structurelib.structure.StructureUtility;
import com.gtnewhorizons.modularui.api.screen.ModularWindow;
@@ -49,6 +48,7 @@ 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.GT_MetaTileEntity_ExtendedPowerMultiBlockBase;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy;
@@ -285,12 +285,9 @@ public class PreciseAssembler extends GT_MetaTileEntity_ExtendedPowerMultiBlockB
}
@Override
- public int survivalConstruct(ItemStack stackSize, int elementBudget, IItemSource source, EntityPlayerMP actor) {
- if (mMachine) {
- return -1;
- } else {
- return survivialBuildPiece(mName, stackSize, 4, 4, 0, elementBudget, source, actor, false, true);
- }
+ public int survivalConstruct(ItemStack stackSize, int elementBudget, ISurvivalBuildEnvironment env) {
+ if (mMachine) return -1;
+ return survivialBuildPiece(mName, stackSize, 4, 4, 0, elementBudget, env, false, true);
}
@Override
@@ -388,10 +385,14 @@ public class PreciseAssembler extends GT_MetaTileEntity_ExtendedPowerMultiBlockB
public void reUpdate(int texture) {
for (IDualInputHatch hatch : mDualInputHatches) {
- hatch.updateTexture(texture);
+ if (isValidMetaTileEntity((MetaTileEntity) hatch)) {
+ hatch.updateTexture(texture);
+ }
}
for (GT_MetaTileEntity_Hatch hatch : mInputHatches) {
- hatch.updateTexture(texture);
+ if (isValidMetaTileEntity(hatch)) {
+ hatch.updateTexture(texture);
+ }
}
for (GT_MetaTileEntity_Hatch hatch : mInputBusses) {
hatch.updateTexture(texture);
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/UniversalChemicalFuelEngine.java b/src/main/java/goodgenerator/blocks/tileEntity/UniversalChemicalFuelEngine.java
index 8e11b31e36..c89342aad4 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/UniversalChemicalFuelEngine.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/UniversalChemicalFuelEngine.java
@@ -4,14 +4,12 @@ import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlock;
import static com.gtnewhorizon.structurelib.structure.StructureUtility.transpose;
import static goodgenerator.util.DescTextLocalization.BLUE_PRINT_INFO;
import static gregtech.api.enums.Textures.BlockIcons.*;
-import static gregtech.api.util.GT_StructureUtility.buildHatchAdder;
import static gregtech.api.util.GT_Utility.filterValidMTEs;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
-import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
import net.minecraftforge.common.util.ForgeDirection;
@@ -23,8 +21,8 @@ import org.jetbrains.annotations.NotNull;
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;
@@ -141,22 +139,10 @@ public class UniversalChemicalFuelEngine extends GT_MetaTileEntity_TooltipMultiB
{ "TTWTT", "TTTTT", "TTTTT", "TTTTT", "TTTTT", "TTTTT", "TTTTT", "TTTTT",
"TTTTT" } }))
.addElement('T', ofBlock(GregTech_API.sBlockCasings4, 2))
- .addElement(
- 'W',
- buildHatchAdder(UniversalChemicalFuelEngine.class).atLeast(GT_HatchElement.Maintenance)
- .casingIndex(50).dot(1).build())
- .addElement(
- 'M',
- buildHatchAdder(UniversalChemicalFuelEngine.class).atLeast(GT_HatchElement.Muffler)
- .casingIndex(50).dot(2).build())
- .addElement(
- 'S',
- buildHatchAdder(UniversalChemicalFuelEngine.class).atLeast(GT_HatchElement.InputHatch)
- .casingIndex(50).dot(3).build())
- .addElement(
- 'E',
- buildHatchAdder(UniversalChemicalFuelEngine.class).atLeast(GT_HatchElement.Dynamo)
- .casingIndex(50).dot(4).build())
+ .addElement('W', GT_HatchElement.Maintenance.newAny(50, 1))
+ .addElement('M', GT_HatchElement.Muffler.newAny(50, 2))
+ .addElement('S', GT_HatchElement.InputHatch.newAny(50, 3))
+ .addElement('E', GT_HatchElement.Dynamo.newAny(50, 4))
.addElement('P', ofBlock(GregTech_API.sBlockCasings2, 14))
.addElement('C', ofBlock(Loaders.titaniumPlatedCylinder, 0))
.addElement('G', ofBlock(GregTech_API.sBlockCasings2, 4))
@@ -378,8 +364,8 @@ public class UniversalChemicalFuelEngine extends GT_MetaTileEntity_TooltipMultiB
}
@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, 2, 0, elementBudget, source, actor, false, true);
+ return survivialBuildPiece(mName, stackSize, 2, 2, 0, elementBudget, env, false, true);
}
}
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/YottaFluidTank.java b/src/main/java/goodgenerator/blocks/tileEntity/YottaFluidTank.java
index 5fe6257ff2..b16b361358 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/YottaFluidTank.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/YottaFluidTank.java
@@ -10,7 +10,6 @@ import java.util.ArrayList;
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.ChatComponentTranslation;
@@ -28,9 +27,9 @@ import com.github.technus.tectech.TecTech;
import com.github.technus.tectech.thing.gui.TecTechUITextures;
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 com.gtnewhorizons.modularui.api.drawable.IDrawable;
import com.gtnewhorizons.modularui.api.drawable.UITexture;
@@ -54,7 +53,6 @@ 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_Output;
import gregtech.api.recipe.check.CheckRecipeResult;
import gregtech.api.recipe.check.SimpleCheckRecipeResult;
@@ -190,11 +188,16 @@ public class YottaFluidTank extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
}
@Override
+ protected void clearHatches_EM() {
+ super.clearHatches_EM();
+ mYottaHatch.clear();
+ }
+
+ @Override
public boolean checkMachine_EM(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) {
mStorage = BigInteger.ZERO;
glassMeta = 0;
maxCell = 0;
- mYottaHatch.clear();
if (!structureCheck_EM(YOTTANK_BOTTOM, 2, 0, 0)) return false;
int cnt = 0;
while (structureCheck_EM(YOTTANK_MID, 2, cnt + 1, 0)) {
@@ -248,27 +251,20 @@ public class YottaFluidTank extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
Byte.MAX_VALUE,
YottaFluidTank::setMeta,
te -> (byte) te.getMeta())))
- .addElement('R', ofChain(cells(10))).addElement(
- 'F',
- ofFrame(Materials.Steel))
+ .addElement('R', ofChain(cells(10))).addElement('F', ofFrame(Materials.Steel))
.addElement(
'I',
- ofChain(
- buildHatchAdder(YottaFluidTank.class).atLeast(GT_HatchElement.InputHatch)
- .adder(YottaFluidTank::addInput).casingIndex(1537).dot(1).build(),
- ofBlock(Loaders.yottaFluidTankCasing, 0)))
+ buildHatchAdder(YottaFluidTank.class).atLeast(GT_HatchElement.InputHatch).casingIndex(1537)
+ .dot(1).buildAndChain(Loaders.yottaFluidTankCasing, 0))
.addElement(
'M',
- ofChain(
- buildHatchAdder(YottaFluidTank.class).atLeast(GT_HatchElement.Maintenance)
- .casingIndex(1537).dot(2).build(),
- ofBlock(Loaders.yottaFluidTankCasing, 0)))
+ buildHatchAdder(YottaFluidTank.class).atLeast(GT_HatchElement.Maintenance).casingIndex(1537)
+ .dot(2).buildAndChain(Loaders.yottaFluidTankCasing, 0))
.addElement(
'O',
- ofChain(
- buildHatchAdder(YottaFluidTank.class).atLeast(GT_HatchElement.OutputHatch)
- .adder(YottaFluidTank::addOutput).casingIndex(1537).dot(1).build(),
- ofBlock(Loaders.yottaFluidTankCasing, 0)))
+ buildHatchAdder(YottaFluidTank.class).atLeast(GT_HatchElement.OutputHatch)
+ .adder(YottaFluidTank::addOutput).casingIndex(1537).dot(1)
+ .buildAndChain(Loaders.yottaFluidTankCasing, 0))
.build();
}
return multiDefinition;
@@ -286,23 +282,6 @@ public class YottaFluidTank extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
return out;
}
- public final boolean addInput(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);
- }
- }
- }
- return false;
- }
-
public final boolean addOutput(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) {
if (aTileEntity == null) {
return false;
@@ -519,35 +498,15 @@ public class YottaFluidTank 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(YOTTANK_BOTTOM, stackSize, 2, 0, 0, elementBudget, source, actor, false, true);
+ built += survivialBuildPiece(YOTTANK_BOTTOM, stackSize, 2, 0, 0, elementBudget, env, false, true);
int height = stackSize.stackSize;
if (height > 15) height = 15;
- built += survivialBuildPiece(
- YOTTANK_TOP,
- stackSize,
- 2,
- height + 2,
- 0,
- elementBudget - built,
- source,
- actor,
- false,
- true);
+ built += survivialBuildPiece(YOTTANK_TOP, stackSize, 2, height + 2, 0, elementBudget - built, env, false, true);
while (height > 0) {
- built += survivialBuildPiece(
- YOTTANK_MID,
- stackSize,
- 2,
- height,
- 0,
- elementBudget - built,
- source,
- actor,
- false,
- true);
+ built += survivialBuildPiece(YOTTANK_MID, stackSize, 2, height, 0, elementBudget - built, env, false, true);
height--;
}
return built;
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/base/GT_MetaTileEntity_LargeTurbineBase.java b/src/main/java/goodgenerator/blocks/tileEntity/base/GT_MetaTileEntity_LargeTurbineBase.java
index e44278743a..0ccd83d059 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/base/GT_MetaTileEntity_LargeTurbineBase.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/base/GT_MetaTileEntity_LargeTurbineBase.java
@@ -12,7 +12,6 @@ import static gregtech.api.util.GT_Utility.filterValidMTEs;
import java.util.ArrayList;
import net.minecraft.block.Block;
-import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
@@ -23,9 +22,9 @@ import net.minecraftforge.fluids.FluidStack;
import org.jetbrains.annotations.NotNull;
import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable;
-import com.gtnewhorizon.structurelib.structure.IItemSource;
import com.gtnewhorizon.structurelib.structure.IStructureDefinition;
import com.gtnewhorizon.structurelib.structure.IStructureElementCheckOnly;
+import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment;
import com.gtnewhorizon.structurelib.structure.StructureDefinition;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
@@ -336,8 +335,8 @@ public abstract class GT_MetaTileEntity_LargeTurbineBase extends
}
@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(STRUCTURE_PIECE_MAIN, stackSize, 2, 2, 1, elementBudget, source, actor, false, true);
+ return survivialBuildPiece(STRUCTURE_PIECE_MAIN, stackSize, 2, 2, 1, elementBudget, env, false, true);
}
}
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/base/LargeFusionComputer.java b/src/main/java/goodgenerator/blocks/tileEntity/base/LargeFusionComputer.java
index 1e542f857d..ec6c40a282 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/base/LargeFusionComputer.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/base/LargeFusionComputer.java
@@ -6,7 +6,6 @@ import static gregtech.api.util.GT_StructureUtility.ofFrame;
import static gregtech.api.util.GT_Utility.filterValidMTEs;
import net.minecraft.block.Block;
-import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
@@ -22,8 +21,8 @@ import org.jetbrains.annotations.NotNull;
import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti;
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;
@@ -184,22 +183,10 @@ public abstract class LargeFusionComputer extends GT_MetaTileEntity_TooltipMulti
}
@Override
- public int survivalConstruct(ItemStack stackSize, int elementBudget, IItemSource source, EntityPlayerMP actor) {
- if (mMachine) {
- return -1;
- } else {
- return survivialBuildPiece(
- MAIN_NAME,
- stackSize,
- 23,
- 3,
- 40,
- elementBudget >= 200 ? elementBudget : Math.min(200, elementBudget * 5),
- source,
- actor,
- false,
- true);
- }
+ 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(MAIN_NAME, stackSize, 23, 3, 40, realBudget, env, false, true);
}
@Override