diff options
author | Glease <4586901+Glease@users.noreply.github.com> | 2022-08-23 12:36:21 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-23 05:36:21 +0100 |
commit | 61bf7cd2215e844aff5f18837499cf0d40bc2a41 (patch) | |
tree | 8a4a44524cb4bff75f478e2c0f28c4ce77eb9cda /src/main | |
parent | 2663d6169157c329f079f42a6f4a8c17f52cbba5 (diff) | |
download | GT5-Unofficial-61bf7cd2215e844aff5f18837499cf0d40bc2a41.tar.gz GT5-Unofficial-61bf7cd2215e844aff5f18837499cf0d40bc2a41.tar.bz2 GT5-Unofficial-61bf7cd2215e844aff5f18837499cf0d40bc2a41.zip |
fix a bunch of structure code error (#294)
Diffstat (limited to 'src/main')
8 files changed, 34 insertions, 30 deletions
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java b/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java index da38f14758..0e5027fc09 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java @@ -1622,7 +1622,28 @@ public abstract class GregtechMeta_MultiBlockBase<T extends GT_MetaTileEntity_En return null; } - @Override + /** + * Deplete fluid input from a set of restricted hatches. This assumes these hatches can store nothing else but your + * expected fluid + */ + protected boolean depleteInputFromRestrictedHatches(Collection<GT_MetaTileEntity_Hatch_CustomFluidBase> aHatches, int aAmount) { + for (final GT_MetaTileEntity_Hatch_CustomFluidBase tHatch : aHatches) { + if (isValidMetaTileEntity(tHatch)) { + FluidStack tLiquid = tHatch.getFluid(); + if (tLiquid == null || tLiquid.amount < aAmount) { + continue; + } + tLiquid = tHatch.drain(aAmount, false); + if (tLiquid != null && tLiquid.amount >= aAmount) { + tLiquid = tHatch.drain(aAmount, true); + return tLiquid != null && tLiquid.amount >= aAmount; + } + } + } + return false; + } + + @Override public void updateSlots() { for (final GT_MetaTileEntity_Hatch_InputBattery tHatch : this.mChargeHatches) { if (isValidMetaTileEntity(tHatch)) { diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialArcFurnace.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialArcFurnace.java index 1d8beb6833..79025840ed 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialArcFurnace.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialArcFurnace.java @@ -106,7 +106,7 @@ public class GregtechMetaTileEntity_IndustrialArcFurnace extends GregtechMeta_Mu .addElement( 'C', buildHatchAdder(GregtechMetaTileEntity_IndustrialArcFurnace.class) - .atLeast(InputBus, OutputBus, Maintenance, Energy, Muffler) + .atLeast(InputBus, InputHatch, OutputBus, OutputHatch, Maintenance, Energy, Muffler) .casingIndex(getCasingTextureIndex()) .dot(1) .buildAndChain(onElementPass(x -> ++x.mCasing, ofBlock(ModBlocks.blockCasings4Misc, 3))) diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCuttingMachine.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCuttingMachine.java index 4083a0f7db..93e7ac85c6 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCuttingMachine.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCuttingMachine.java @@ -89,7 +89,7 @@ public class GregtechMetaTileEntity_IndustrialCuttingMachine extends GregtechMet .addElement( 'C', buildHatchAdder(GregtechMetaTileEntity_IndustrialCuttingMachine.class) - .atLeast(InputBus, OutputBus, Maintenance, Energy, Muffler) + .atLeast(InputBus, InputHatch, OutputBus, Maintenance, Energy, Muffler) .casingIndex(getCasingTextureIndex()) .dot(1) .buildAndChain(onElementPass(x -> ++x.mCasing, ofBlock(ModBlocks.blockCasings2Misc, 13))) diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialVacuumFreezer.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialVacuumFreezer.java index 96b0c59200..c08ee159d5 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialVacuumFreezer.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialVacuumFreezer.java @@ -150,23 +150,6 @@ public class GregtechMetaTileEntity_IndustrialVacuumFreezer extends GregtechMeta return super.checkHatch() && !mCryotheumHatches.isEmpty(); } - private boolean depleteFuel(int aAmount) { - for (final GT_MetaTileEntity_Hatch_CustomFluidBase tHatch : this.mCryotheumHatches) { - if (isValidMetaTileEntity(tHatch)) { - FluidStack tLiquid = tHatch.getFluid(); - if (tLiquid == null || tLiquid.amount < aAmount) { - continue; - } - tLiquid = tHatch.drain(aAmount, false); - if (tLiquid != null && tLiquid.amount >= aAmount) { - tLiquid = tHatch.drain(aAmount, true); - return tLiquid != null && tLiquid.amount >= aAmount; - } - } - } - return false; - } - private boolean addCryotheumHatch(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { if (aTileEntity == null) { return false; @@ -268,7 +251,7 @@ public class GregtechMetaTileEntity_IndustrialVacuumFreezer extends GregtechMeta if (this.mStartUpCheck < 0) { if (this.mMaxProgresstime > 0 && this.mProgresstime != 0 || this.getBaseMetaTileEntity().hasWorkJustBeenEnabled()) { if (aTick % 10 == 0 || this.getBaseMetaTileEntity().hasWorkJustBeenEnabled()) { - if (!this.depleteFuel(10)) { + if (!this.depleteInputFromRestrictedHatches(this.mCryotheumHatches, 10)) { if (mGraceTimer-- == 0) { this.causeMaintenanceIssue(); this.stopMachine(); diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_SpargeTower.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_SpargeTower.java index 29f57104af..23d28bb3dc 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_SpargeTower.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_SpargeTower.java @@ -386,7 +386,7 @@ public class GregtechMetaTileEntity_SpargeTower extends GregtechMeta_MultiBlockB built = survivialBuildPiece(STRUCTURE_PIECE_LAYER_HINT, stackSize, 1, i, 0, elementBudget, source, actor, false, true); if (built >= 0) return built; } - mHeight = tTotalHeight; + mHeight = tTotalHeight - 1; return survivialBuildPiece(STRUCTURE_PIECE_TOP_HINT, stackSize, 1, tTotalHeight - 1, 0, elementBudget, source, actor, false, true); } 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 0519c30139..bd74d51686 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 @@ -58,7 +58,7 @@ public class GregtechMetaTileEntity_Adv_DistillationTower extends GregtechMeta_M protected final List<List<GT_MetaTileEntity_Hatch_Output>> mOutputHatchesByLayer = new ArrayList<>(); protected int mHeight; protected int mCasing; - protected int mTopLayerFound; + protected boolean mTopLayerFound; private static IStructureDefinition<GregtechMetaTileEntity_Adv_DistillationTower> STRUCTURE_DEFINITION = null; @@ -147,7 +147,7 @@ public class GregtechMetaTileEntity_Adv_DistillationTower extends GregtechMeta_M } protected void onTopLayerFound() { - mTopLayerFound |= 1; + mTopLayerFound = true; } @Override @@ -205,7 +205,7 @@ public class GregtechMetaTileEntity_Adv_DistillationTower extends GregtechMeta_M // reset mOutputHatchesByLayer.forEach(List::clear); mHeight = 1; - mTopLayerFound = 0; + mTopLayerFound = false; // check base if (!checkPiece(STRUCTURE_PIECE_BASE, 1, 0, 0)) @@ -219,13 +219,13 @@ public class GregtechMetaTileEntity_Adv_DistillationTower extends GregtechMeta_M if (mOutputHatchesByLayer.size() < mHeight || mOutputHatchesByLayer.get(mHeight - 1).isEmpty()) // layer without output hatch return false; - if (mTopLayerFound != 0) { + if (mTopLayerFound || !mMufflerHatches.isEmpty()) { break; } // not top mHeight++; } - return mTopLayerFound == 3 && mHeight >= 2 && checkHatch(); + return mTopLayerFound && mHeight >= 2 && checkHatch(); } public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_EBF.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_EBF.java index 6f5b18cc5f..238d641150 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_EBF.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_EBF.java @@ -443,7 +443,7 @@ public class GregtechMetaTileEntity_Adv_EBF extends GregtechMeta_MultiBlockBase< } - private volatile int mGraceTimer = 2; + private int mGraceTimer = 2; @Override public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { @@ -452,7 +452,7 @@ public class GregtechMetaTileEntity_Adv_EBF extends GregtechMeta_MultiBlockBase< if (this.mStartUpCheck < 0) { if (this.mMaxProgresstime > 0 && this.mProgresstime != 0 || this.getBaseMetaTileEntity().hasWorkJustBeenEnabled()) { if (aTick % 10 == 0 || this.getBaseMetaTileEntity().hasWorkJustBeenEnabled()) { - if (!this.depleteInput(FluidUtils.getFluidStack("pyrotheum", 5))) { + if (!this.depleteInputFromRestrictedHatches(this.mPyrotheumHatches, 5)) { if (mGraceTimer-- == 0) { this.causeMaintenanceIssue(); this.stopMachine(); diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_AlloyBlastSmelter.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_AlloyBlastSmelter.java index 59d2a89b36..8c986db704 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_AlloyBlastSmelter.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_AlloyBlastSmelter.java @@ -117,7 +117,7 @@ public class GregtechMetaTileEntity_AlloyBlastSmelter extends GregtechMeta_Multi .addElement( 'C', buildHatchAdder(GregtechMetaTileEntity_AlloyBlastSmelter.class) - .atLeast(InputBus, OutputBus, Maintenance, Energy, Muffler) + .atLeast(InputBus, InputHatch, OutputBus, OutputHatch, Maintenance, Energy, Muffler) .casingIndex(TAE.GTPP_INDEX(15)) .dot(1) .buildAndChain(onElementPass(x -> ++x.mCasing, ofBlock(ModBlocks.blockCasingsMisc, 15))) |