aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/net
diff options
context:
space:
mode:
authorBlueWeabo <ilia.iliev2005@gmail.com>2023-04-01 17:06:06 +0300
committerGitHub <noreply@github.com>2023-04-01 16:06:06 +0200
commit655cc902d3df19a1ac2bfaa38cc928ed629d0171 (patch)
tree25e34b45705b8473e20af3f9b92af25cc87a1e0d /src/main/java/gregtech/api/net
parenta01d019ed97101936210f16c7a362d852f081f09 (diff)
downloadGT5-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.java54
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(