aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/net
diff options
context:
space:
mode:
authorRaven Szewczyk <git@eigenraven.me>2024-08-15 22:44:13 +0100
committerGitHub <noreply@github.com>2024-08-15 21:44:13 +0000
commit5decfda1dd1b3bbfdb1098f409aa50162ea32dc2 (patch)
treefd3dd1c237a0c8c4d4953dd7e529f5b5d89e6e34 /src/main/java/gregtech/api/net
parent799d5edf98e7e9f6152f432cdc48eac858398c8a (diff)
downloadGT5-Unofficial-5decfda1dd1b3bbfdb1098f409aa50162ea32dc2.tar.gz
GT5-Unofficial-5decfda1dd1b3bbfdb1098f409aa50162ea32dc2.tar.bz2
GT5-Unofficial-5decfda1dd1b3bbfdb1098f409aa50162ea32dc2.zip
Electric jukebox (#2827)
* GT music system * Minor fix for some glitches when switching dimensions with P2Ps on both sides * Most features implemented except headphones * Implement wireless headphones * Disable debug mode * Spotless --------- Co-authored-by: Martin Robertz <dream-master@gmx.net>
Diffstat (limited to 'src/main/java/gregtech/api/net')
-rw-r--r--src/main/java/gregtech/api/net/GT_PacketTypes.java1
-rw-r--r--src/main/java/gregtech/api/net/GT_Packet_MusicSystemData.java58
-rw-r--r--src/main/java/gregtech/api/net/IGT_NetworkHandler.java4
3 files changed, 63 insertions, 0 deletions
diff --git a/src/main/java/gregtech/api/net/GT_PacketTypes.java b/src/main/java/gregtech/api/net/GT_PacketTypes.java
index 18fc5134ba..f59a7918a9 100644
--- a/src/main/java/gregtech/api/net/GT_PacketTypes.java
+++ b/src/main/java/gregtech/api/net/GT_PacketTypes.java
@@ -31,6 +31,7 @@ public enum GT_PacketTypes {
MULTI_TILE_ENTITY(18, new GT_Packet_MultiTileEntity(true)),
SEND_OREGEN_PATTERN(19, new GT_Packet_SendOregenPattern()),
TOOL_SWITCH_MODE(20, new GT_Packet_ToolSwitchMode()),
+ MUSIC_SYSTEM_DATA(21, new GT_Packet_MusicSystemData()),
// merge conflict prevention comment, keep a trailing comma above
;
diff --git a/src/main/java/gregtech/api/net/GT_Packet_MusicSystemData.java b/src/main/java/gregtech/api/net/GT_Packet_MusicSystemData.java
new file mode 100644
index 0000000000..13ebf49205
--- /dev/null
+++ b/src/main/java/gregtech/api/net/GT_Packet_MusicSystemData.java
@@ -0,0 +1,58 @@
+package gregtech.api.net;
+
+import net.minecraft.world.IBlockAccess;
+
+import com.google.common.io.ByteArrayDataInput;
+
+import gregtech.api.util.GT_MusicSystem;
+import io.netty.buffer.ByteBuf;
+import io.netty.buffer.Unpooled;
+
+public class GT_Packet_MusicSystemData extends GT_Packet_New {
+
+ ByteBuf storedData;
+
+ public GT_Packet_MusicSystemData() {
+ super(true);
+ }
+
+ public GT_Packet_MusicSystemData(ByteBuf data) {
+ super(false);
+ this.storedData = data;
+ }
+
+ @Override
+ public byte getPacketID() {
+ return GT_PacketTypes.MUSIC_SYSTEM_DATA.id;
+ }
+
+ @Override
+ public void encode(ByteBuf aOut) {
+ if (storedData == null) {
+ return;
+ }
+ storedData.markReaderIndex();
+ final int len = storedData.readableBytes();
+ aOut.writeInt(len);
+ aOut.writeBytes(storedData);
+ storedData.resetReaderIndex();
+ }
+
+ @Override
+ public GT_Packet_New decode(ByteArrayDataInput aData) {
+ final int len = aData.readInt();
+ final byte[] fullData = new byte[len];
+ aData.readFully(fullData);
+ return new GT_Packet_MusicSystemData(Unpooled.wrappedBuffer(fullData));
+ }
+
+ @Override
+ public void process(IBlockAccess aWorld) {
+ if (aWorld == null || storedData == null) {
+ return;
+ }
+ storedData.markReaderIndex();
+ GT_MusicSystem.ClientSystem.loadUpdatedSources(storedData);
+ storedData.resetReaderIndex();
+ }
+}
diff --git a/src/main/java/gregtech/api/net/IGT_NetworkHandler.java b/src/main/java/gregtech/api/net/IGT_NetworkHandler.java
index 07c4a37030..8436a89e9b 100644
--- a/src/main/java/gregtech/api/net/IGT_NetworkHandler.java
+++ b/src/main/java/gregtech/api/net/IGT_NetworkHandler.java
@@ -12,6 +12,10 @@ public interface IGT_NetworkHandler {
void sendToAllAround(GT_Packet aPacket, TargetPoint aPosition);
+ default void sendToAll(GT_Packet aPacket) {
+ throw new UnsupportedOperationException("sendToAll not implemented");
+ }
+
void sendToServer(GT_Packet aPacket);
void sendPacketToAllPlayersInRange(World aWorld, GT_Packet aPacket, int aX, int aZ);