diff options
author | BlueWeabo <76872108+BlueWeabo@users.noreply.github.com> | 2022-12-19 21:43:58 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-19 20:43:58 +0100 |
commit | 86252f7583c70022af0168295c59add4ed7777a5 (patch) | |
tree | 46dce249bb75c3e8f77ec8267c5d3d893e96c990 /src/main/java | |
parent | 0b69959bc490740a55d55050c5fdf21a93733a2e (diff) | |
download | GT5-Unofficial-86252f7583c70022af0168295c59add4ed7777a5.tar.gz GT5-Unofficial-86252f7583c70022af0168295c59add4ed7777a5.tar.bz2 GT5-Unofficial-86252f7583c70022af0168295c59add4ed7777a5.zip |
Fix PCB Factory 4th time the charm (#1560)
* why does this keep happening
* jave is bull shit
* oooops
* final fix
* add location for the coolant hatch
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PCBFactory.java | 111 |
1 files changed, 90 insertions, 21 deletions
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PCBFactory.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PCBFactory.java index 1af75b4aee..b69ecc2cc8 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PCBFactory.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PCBFactory.java @@ -80,6 +80,9 @@ public class GT_MetaTileEntity_PCBFactory mOCTier1Offsets = new int[] {2, -11}, mOCTier2Offsets = new int[] {2, -11}; private GT_MetaTileEntity_Hatch_Input mCoolantInputHatch; + private static final int mBioRotateBitMap = 0b1000000; + private static final int mOCTier2BitMap = 0b100000; + private static final int mOCTier1BitMap = 0b10000; private static final int mBioBitMap = 0b1000; private static final int mTier3BitMap = 0b100; private static final int mTier2BitMap = 0b10; @@ -156,7 +159,7 @@ public class GT_MetaTileEntity_PCBFactory {"E E"," KKK "," K K "," KKK ","E E"}, {"E E"," KKK "," K K "," KKK ","E E"}, {"ENNNE","NKKKN","NK KN","NKKKN","ENNNE"}, - {"EMMME","MMMMM","MMMMM","MMMMM","EMMME"} + {"EGGGE","GGGGG","GGMGG","GGGGG","EGGGE"} //spotless:on })) .addShape(ocTier2Upgrade, transpose(new String[][] { @@ -170,7 +173,7 @@ public class GT_MetaTileEntity_PCBFactory {"R R"," QQQ "," QTQ "," QQQ ","R R"}, {"R R"," QQQ "," QTQ "," QQQ ","R R"}, {"RNNNR","NQQQN","NQTQN","NQQQN","RNNNR"}, - {"RSSSR","SSSSS","SSSSS","SSSSS","RSSSR"} + {"RGGGR","GGGGG","GGSGG","GGGGG","RGGGR"} //spotless:on })) .addElement('E', ofFrame(Materials.DamascusSteel)) @@ -207,23 +210,22 @@ public class GT_MetaTileEntity_PCBFactory .addElement('L', ofBlock(GregTech_API.sBlockCasings4, 1)) .addElement( 'M', - // spotless:off - ofChain( - ofChain(InputHatch.withAdder(GT_MetaTileEntity_PCBFactory::addCoolantInputToMachineList) - .withCount(t -> isValidMetaTileEntity(t.mCoolantInputHatch) ? 1 : 0) - .newAny(((GT_Block_Casings8) GregTech_API.sBlockCasings8).getTextureIndex(10),2), - ofBlock(GregTech_API.sBlockCasings8, 12)))) - //spotless:on + buildHatchAdder(GT_MetaTileEntity_PCBFactory.class) + .hatchClass(GT_MetaTileEntity_Hatch_Input.class) + .adder(GT_MetaTileEntity_PCBFactory::addCoolantInputToMachineList) + .casingIndex(GT_Utility.getCasingTextureIndex(GregTech_API.sBlockCasings8, 12)) + .dot(2) + .buildAndChain(GregTech_API.sBlockCasings8, 12)) .addElement('N', ofBlock(GregTech_API.sBlockCasings2, 15)) .addElement('O', ofBlock(GregTech_API.sBlockCasings8, 4)) .addElement( 'S', - // spotless:off - ofChain(InputHatch.withAdder(GT_MetaTileEntity_PCBFactory::addCoolantInputToMachineList) - .withCount(t -> isValidMetaTileEntity(t.mCoolantInputHatch) ? 1 : 0) - .newAny(((GT_Block_Casings8) GregTech_API.sBlockCasings8).getTextureIndex(12),2), - ofBlock(GregTech_API.sBlockCasings8, 12))) - //spotless:on + buildHatchAdder(GT_MetaTileEntity_PCBFactory.class) + .hatchClass(GT_MetaTileEntity_Hatch_Input.class) + .adder(GT_MetaTileEntity_PCBFactory::addCoolantInputToMachineList) + .casingIndex(GT_Utility.getCasingTextureIndex(GregTech_API.sBlockCasings8, 12)) + .dot(2) + .buildAndChain(GregTech_API.sBlockCasings8, 12)) .addElement('R', ofFrame(Materials.Americium)) .addElement('Q', ofBlock(GregTech_API.sBlockCasings8, 14)) .addElement('T', ofBlock(GregTech_API.sBlockCasings1, 15)) @@ -407,6 +409,7 @@ public class GT_MetaTileEntity_PCBFactory public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { mTier = 0; mUpgradesInstalled = 0; + mCoolantInputHatch = null; if (mSetTier < 3) { if (!checkPiece(tier1, 3, 5, 0)) { return false; @@ -454,6 +457,9 @@ public class GT_MetaTileEntity_PCBFactory if (!checkPiece(ocTier1Upgrade, mOCTier1Offsets[0], 9, mOCTier1Offsets[1])) { return false; } + if (mCoolantInputHatch == null) { + return false; + } mUpgradesInstalled++; } @@ -461,6 +467,9 @@ public class GT_MetaTileEntity_PCBFactory if (!checkPiece(ocTier2Upgrade, mOCTier2Offsets[0], 9, mOCTier2Offsets[1])) { return false; } + if (mCoolantInputHatch == null) { + return false; + } mUpgradesInstalled++; } @@ -549,7 +558,7 @@ public class GT_MetaTileEntity_PCBFactory boolean recipeAllowed = (((recipeBitMap & mTier1BitMap) == mTier1BitMap && (mTier >= 1)) || ((recipeBitMap & mTier2BitMap) == mTier2BitMap && (mTier >= 2)) || ((recipeBitMap & mTier3BitMap) == mTier3BitMap && (mTier >= 3))) - && ((recipeBitMap & mBioBitMap) == 0 || (recipeBitMap & mBioBitMap) == mBioBitMap && mBioUpgrade); + && ((recipeBitMap & mBioBitMap) == 0 || ((recipeBitMap & mBioBitMap) == mBioBitMap && mBioUpgrade)); if (recipeAllowed) { @@ -623,19 +632,27 @@ public class GT_MetaTileEntity_PCBFactory if (ticker % 20 == 0) { if (mOCTier1) { + if (mCoolantInputHatch == null) { + criticalStopMachine(); + return false; + } FluidStack tFluid = GT_ModHandler.getDistilledWater(COOLANT_CONSUMED_PER_SEC); FluidStack tLiquid = mCoolantInputHatch.drain(tFluid.amount, true); - if (tLiquid == null || tLiquid.amount < tFluid.amount) { + if (tLiquid == null || tLiquid.amount < tFluid.amount || !tLiquid.equals(tFluid)) { criticalStopMachine(); return false; } } if (mOCTier2) { + if (mCoolantInputHatch == null) { + criticalStopMachine(); + return false; + } Fluid superCoolant = FluidRegistry.getFluid("supercoolant"); FluidStack tFluid = new FluidStack(superCoolant, COOLANT_CONSUMED_PER_SEC); FluidStack tLiquid = mCoolantInputHatch.drain(tFluid.amount, true); - if (tLiquid == null || tLiquid.amount < tFluid.amount) { + if (tLiquid == null || tLiquid.amount < tFluid.amount || !tLiquid.equals(tFluid)) { criticalStopMachine(); return false; } @@ -665,7 +682,33 @@ public class GT_MetaTileEntity_PCBFactory @Override public void receiveClientEvent(byte aEventID, byte aValue) { if (aEventID == 1) { - mSetTier = aValue; + if ((aValue & mTier1BitMap) == mTier1BitMap) { + mSetTier = 1; + } + + if ((aValue & mTier2BitMap) == mTier2BitMap) { + mSetTier = 2; + } + + if ((aValue & mTier3BitMap) == mTier3BitMap) { + mSetTier = 3; + } + + if ((aValue & mBioBitMap) == mBioBitMap) { + mBioUpgrade = true; + } + + if ((aValue & mBioRotateBitMap) == mBioRotateBitMap) { + mBioRotate = true; + } + + if ((aValue & mOCTier1BitMap) == mOCTier1BitMap) { + mOCTier1 = true; + } + + if ((aValue & mOCTier2BitMap) == mOCTier2BitMap) { + mOCTier2 = true; + } } } @@ -867,7 +910,8 @@ public class GT_MetaTileEntity_PCBFactory .addInputBus(EnumChatFormatting.GOLD + "1" + EnumChatFormatting.GRAY + "+", 1) .addOutputBus(EnumChatFormatting.GOLD + "1" + EnumChatFormatting.GRAY + "+", 1) .addInputHatch(EnumChatFormatting.GOLD + "1" + EnumChatFormatting.GRAY + "+", 1) - .addStructureInfo("Coolant Hatch (Input Hatch): " + EnumChatFormatting.GOLD + "1") + .addStructureInfo("Coolant Hatch (Input Hatch): " + EnumChatFormatting.GOLD + "1" + + EnumChatFormatting.GRAY + "Center of the Liquid Cooling/Thermosink") .addStructureInfo(EnumChatFormatting.BLUE + "Base Multi (Tier " + EnumChatFormatting.DARK_PURPLE + 1 + EnumChatFormatting.BLUE + "):") .addStructureInfo( @@ -970,7 +1014,32 @@ public class GT_MetaTileEntity_PCBFactory @Override public byte getUpdateData() { - return (byte) mSetTier; + byte data = 0; + if (mSetTier == 1) { + data += mTier1BitMap; + } else if (mSetTier == 2) { + data += mTier2BitMap; + } else { + data += mTier3BitMap; + } + + if (mBioUpgrade) { + data += mBioBitMap; + } + + if (mBioRotate) { + data += mBioRotateBitMap; + } + + if (mOCTier1) { + data += mOCTier1BitMap; + } + + if (mOCTier2) { + data += mOCTier2BitMap; + } + + return data; } @Override |