aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gtPlusPlus
diff options
context:
space:
mode:
authorJakub <53441451+kuba6000@users.noreply.github.com>2022-06-24 19:13:36 +0200
committerGitHub <noreply@github.com>2022-06-24 19:13:36 +0200
commit0934e1d8e3ab8aef6a402816b51904a8b544c379 (patch)
tree06ba35fead03fbddbe1a2cae4c60683e60877ee5 /src/main/java/gtPlusPlus
parent3702facb3ddf2b56773d44b76d57bae1cb240f11 (diff)
downloadGT5-Unofficial-0934e1d8e3ab8aef6a402816b51904a8b544c379.tar.gz
GT5-Unofficial-0934e1d8e3ab8aef6a402816b51904a8b544c379.tar.bz2
GT5-Unofficial-0934e1d8e3ab8aef6a402816b51904a8b544c379.zip
Fix Dangote Distillus structure (#221)
Co-authored-by: Martin Robertz <dream-master@gmx.net>
Diffstat (limited to 'src/main/java/gtPlusPlus')
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_DistillationTower.java61
1 files changed, 34 insertions, 27 deletions
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_DistillationTower.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_DistillationTower.java
index fcd511aabb..c8607628be 100644
--- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_DistillationTower.java
+++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_DistillationTower.java
@@ -30,13 +30,14 @@ import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.fluids.FluidStack;
-import static com.gtnewhorizon.structurelib.structure.StructureUtility.transpose;
+import static com.gtnewhorizon.structurelib.structure.StructureUtility.*;
import static gregtech.api.util.GT_StructureUtility.ofHatchAdderOptional;
public class GregtechMetaTileEntity_Adv_DistillationTower extends GregtechMeta_MultiBlockBase<GregtechMetaTileEntity_Adv_DistillationTower> {
private byte mMode = 0;
private boolean mUpgraded = false;
+ private byte mTopLayerFound = 0;
private IStructureDefinition<GregtechMetaTileEntity_Adv_DistillationTower> STRUCTURE_DEFINITION = null;
public GregtechMetaTileEntity_Adv_DistillationTower(int aID, String aName, String aNameRegional) {
@@ -58,10 +59,13 @@ public class GregtechMetaTileEntity_Adv_DistillationTower extends GregtechMeta_M
.addShape(mName + "bottom", transpose(new String[][]{
{"I~I", "III", "III"}
}))
- .addShape(mName + "mid", transpose(new String[][]{
+ .addShape(mName + "layer", transpose(new String[][]{
+ {"CCC", "CAC", "CCC"}
+ }))
+ .addShape(mName + "hintlayer", transpose(new String[][]{
{"CCC", "C-C", "CCC"}
}))
- .addShape(mName + "top", transpose(new String[][]{
+ .addShape(mName + "hinttop", transpose(new String[][]{
{"MMM", "MMM", "MMM"}
}))
.addElement(
@@ -74,17 +78,27 @@ public class GregtechMetaTileEntity_Adv_DistillationTower extends GregtechMeta_M
.addElement(
'C',
ofHatchAdderOptional(
- GregtechMetaTileEntity_Adv_DistillationTower::addAdvDistillationTowerMidList, getCasingTextureID(),
+ GregtechMetaTileEntity_Adv_DistillationTower::addAdvDistillationTowerLayerList, getCasingTextureID(),
2, GregTech_API.sBlockCasings4, 1
)
)
.addElement(
'M',
ofHatchAdderOptional(
- GregtechMetaTileEntity_Adv_DistillationTower::addAdvDistillationTowerTopList, getCasingTextureID(),
+ GregtechMetaTileEntity_Adv_DistillationTower::addAdvDistillationTowerLayerList, getCasingTextureID(),
3, GregTech_API.sBlockCasings4, 1
)
)
+ .addElement(
+ 'A',
+ ofChain(
+ onElementPass(t -> t.mTopLayerFound |= 1, ofHatchAdderOptional(
+ GregtechMetaTileEntity_Adv_DistillationTower::addAdvDistillationTowerLayerList, getCasingTextureID(),
+ 2, GregTech_API.sBlockCasings4, 1
+ )),
+ isAir()
+ )
+ )
.build();
}
return STRUCTURE_DEFINITION;
@@ -110,19 +124,7 @@ public class GregtechMetaTileEntity_Adv_DistillationTower extends GregtechMeta_M
return false;
}
- public final boolean addAdvDistillationTowerMidList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) {
- if (aTileEntity == null) {
- return false;
- } else {
- IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity();
- if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Output){
- return addToMachineList(aTileEntity, aBaseCasingIndex);
- }
- }
- return false;
- }
-
- public final boolean addAdvDistillationTowerTopList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) {
+ public final boolean addAdvDistillationTowerLayerList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) {
if (aTileEntity == null) {
return false;
} else {
@@ -130,6 +132,7 @@ public class GregtechMetaTileEntity_Adv_DistillationTower extends GregtechMeta_M
if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Output){
return addToMachineList(aTileEntity, aBaseCasingIndex);
} else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Muffler){
+ mTopLayerFound |= 2;
return addToMachineList(aTileEntity, aBaseCasingIndex);
}
}
@@ -166,23 +169,27 @@ public class GregtechMetaTileEntity_Adv_DistillationTower extends GregtechMeta_M
int layer = Math.min(stackSize.stackSize + 2, 12);
buildPiece(mName + "bottom", stackSize, hintsOnly, 1, 0, 0);
for (int i = 1; i < layer - 1; i++) {
- buildPiece(mName + "mid", stackSize, hintsOnly, 1, i, 0);
+ buildPiece(mName + "hintlayer", stackSize, hintsOnly, 1, i, 0);
}
- buildPiece(mName + "top", stackSize, hintsOnly, 1, layer - 1, 0);
+ buildPiece(mName + "hinttop", stackSize, hintsOnly, 1, layer - 1, 0);
}
@Override
public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) {
if (!checkPiece(mName + "bottom", 1, 0, 0))
return false;
- int layer = 1;
- while (checkPiece(mName + "mid", 1, layer, 0)) {
- if (layer != mOutputHatches.size()) return false;
- layer ++;
+ mTopLayerFound = 0;
+ int layer = 0;
+ while (checkPiece(mName + "layer", 1, layer + 1, 0)) {
+ layer++;
+ if (layer > 12)
+ return false;
+ if (layer != mOutputHatches.size())
+ return false;
+ if (mTopLayerFound == 3) break;
+ if (mTopLayerFound != 0) return false;
}
- if (layer > 12 || !checkPiece(mName + "top", 1, layer, 0))
- return false;
- return layer == mOutputHatches.size() && checkHatch();
+ return mTopLayerFound == 3 && layer == mOutputHatches.size() && checkHatch();
}
public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {