diff options
author | BlueWeabo <ilia.iliev2005@gmail.com> | 2023-04-01 17:06:06 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-01 16:06:06 +0200 |
commit | 655cc902d3df19a1ac2bfaa38cc928ed629d0171 (patch) | |
tree | 25e34b45705b8473e20af3f9b92af25cc87a1e0d /src/main/java/gregtech/api/net | |
parent | a01d019ed97101936210f16c7a362d852f081f09 (diff) | |
download | GT5-Unofficial-655cc902d3df19a1ac2bfaa38cc928ed629d0171.tar.gz GT5-Unofficial-655cc902d3df19a1ac2bfaa38cc928ed629d0171.tar.bz2 GT5-Unofficial-655cc902d3df19a1ac2bfaa38cc928ed629d0171.zip |
Implement Power Logic, Pollution Logic and Processing Logic for MuTEs and many other things (#1823)
* update bs 2
* fuel consumption and energy implementation. clean up
* don't register XD
* some clean up
* coke oven work
* semi-working coke oven
somehow i broke the activating of the multiblock
* power logic
* PowerLogic
* clean up, saving loading nbt
* small cleanup and pollution
* pollution working :P
* Energy mostly working, wallsharing
* processing logic
* fix npe and deregister
* review requests
* missed one
* remove extra 0
Diffstat (limited to 'src/main/java/gregtech/api/net')
-rw-r--r-- | src/main/java/gregtech/api/net/GT_Packet_MultiTileEntity.java | 54 |
1 files changed, 47 insertions, 7 deletions
diff --git a/src/main/java/gregtech/api/net/GT_Packet_MultiTileEntity.java b/src/main/java/gregtech/api/net/GT_Packet_MultiTileEntity.java index ffcc9d2a26..98f6f11aec 100644 --- a/src/main/java/gregtech/api/net/GT_Packet_MultiTileEntity.java +++ b/src/main/java/gregtech/api/net/GT_Packet_MultiTileEntity.java @@ -14,24 +14,28 @@ import gregtech.api.metatileentity.GregTechTileClientEvents; import gregtech.api.multitileentity.MultiTileEntityBlock; import gregtech.api.multitileentity.interfaces.IMultiBlockPart; import gregtech.api.multitileentity.interfaces.IMultiTileEntity; -import gregtech.api.multitileentity.multiblock.casing.InventoryUpgrade; +import gregtech.api.multitileentity.interfaces.IMultiTileMachine; +import gregtech.common.tileentities.casings.upgrade.InventoryUpgrade; import io.netty.buffer.ByteBuf; public class GT_Packet_MultiTileEntity extends GT_Packet_New { public static final int COVERS = B[0], REDSTONE = B[1], MODES = B[2], CONTROLLER = B[3], INVENTORY_INDEX = B[4], - INVENTORY_NAME = B[5]; + INVENTORY_NAME = B[5], BOOLEANS = B[6], SOUND = B[7]; private int features = 0; private int mX, mZ; private int mC0 = 0, mC1 = 0, mC2 = 0, mC3 = 0, mC4 = 0, mC5 = 0; private short mY, mID, mRID; - private byte mCommonData, mTexturePage, mUpdate, mRedstone, mColor; + private byte mCommonData, mRedstone, mColor; private ChunkCoordinates mTargetPos = null; private int mLockedInventoryIndex; private String mInventoryName; private int mInventoryLength; + private int booleans; + private byte soundEvent; + private int soundEventValue; // MultiBlockPart private byte mMode; @@ -95,6 +99,21 @@ public class GT_Packet_MultiTileEntity extends GT_Packet_New { mInventoryName = aInventoryName; } + /** + * + * @param boolToSync each bit of the integer will be a boolean. + */ + public void setBooleans(int boolToSync) { + features |= BOOLEANS; + this.booleans = boolToSync; + } + + public void setSoundEvent(byte soundEvent, int soundEventValue) { + features |= SOUND; + this.soundEvent = soundEvent; + this.soundEventValue = soundEventValue; + } + @Override public void encode(ByteBuf aOut) { // Features @@ -145,10 +164,13 @@ public class GT_Packet_MultiTileEntity extends GT_Packet_New { } } - if (false) { - aOut.writeByte(mTexturePage); - aOut.writeByte(mUpdate); - aOut.writeByte(mColor); + if ((features & BOOLEANS) == BOOLEANS) { + aOut.writeInt(booleans); + } + + if ((features & SOUND) == SOUND) { + aOut.writeByte(soundEvent); + aOut.writeInt(soundEventValue); } } @@ -202,6 +224,14 @@ public class GT_Packet_MultiTileEntity extends GT_Packet_New { packet.setInventoryName(tName); } + if ((packetFeatures & BOOLEANS) == BOOLEANS) { + packet.setBooleans(aData.readInt()); + } + + if ((packetFeatures & SOUND) == SOUND) { + packet.setSoundEvent(aData.readByte(), aData.readInt()); + } + return packet; } @@ -246,6 +276,16 @@ public class GT_Packet_MultiTileEntity extends GT_Packet_New { invUpg.setInventoryName(mInventoryName); } + if ((features & BOOLEANS) == BOOLEANS && mte instanceof IMultiTileMachine) { + final IMultiTileMachine machine = (IMultiTileMachine) mte; + machine.setBooleans(booleans); + } + + if ((features & SOUND) == SOUND && mte instanceof IMultiTileMachine) { + final IMultiTileMachine machine = (IMultiTileMachine) mte; + machine.setSound(soundEvent, soundEventValue); + } + } } catch (Exception e) { GT_Mod.GT_FML_LOGGER.error( |