aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/net
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/api/net')
-rw-r--r--src/main/java/gregtech/api/net/GT_PacketTypes.java8
-rw-r--r--src/main/java/gregtech/api/net/GT_Packet_GtTileEntityGuiRequest.java122
-rw-r--r--src/main/java/gregtech/api/net/GT_Packet_Sound.java5
-rw-r--r--src/main/java/gregtech/api/net/GT_Packet_TileEntityCover.java98
-rw-r--r--src/main/java/gregtech/api/net/GT_Packet_TileEntityCoverGUI.java219
-rw-r--r--src/main/java/gregtech/api/net/GT_Packet_TileEntityCoverNew.java119
-rw-r--r--src/main/java/gregtech/api/net/GT_Packet_WirelessRedstoneCover.java99
7 files changed, 4 insertions, 666 deletions
diff --git a/src/main/java/gregtech/api/net/GT_PacketTypes.java b/src/main/java/gregtech/api/net/GT_PacketTypes.java
index f59a7918a9..5907b2176b 100644
--- a/src/main/java/gregtech/api/net/GT_PacketTypes.java
+++ b/src/main/java/gregtech/api/net/GT_PacketTypes.java
@@ -3,7 +3,6 @@ package gregtech.api.net;
import java.util.Arrays;
import gregtech.common.blocks.GT_Packet_Ores;
-import gregtech.common.net.MessageSetFlaskCapacity;
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
/**
@@ -16,16 +15,9 @@ public enum GT_PacketTypes {
BLOCK_EVENT(2, new GT_Packet_Block_Event()),
ORES(3, new GT_Packet_Ores()),
POLLUTION(4, new GT_Packet_Pollution()),
- @SuppressWarnings("deprecation")
- SET_FLASK_CAPACITY(5, new MessageSetFlaskCapacity()),
- COVER(6, new GT_Packet_TileEntityCover()),
- COVER_GUI(7, new GT_Packet_TileEntityCoverGUI()),
CLIENT_PREFERENCE(9, new GT_Packet_ClientPreference()),
- WIRELESS_REDSTONE_COVER(10, new GT_Packet_WirelessRedstoneCover()),
- COVER_NEW(11, new GT_Packet_TileEntityCoverNew()),
SET_CONFIGURATION_CIRCUIT(12, new GT_Packet_SetConfigurationCircuit()),
UPDATE_ITEM(13, new GT_Packet_UpdateItem()),
- TILE_ENTITY_GUI_REQUEST(15, new GT_Packet_GtTileEntityGuiRequest()),
SEND_COVER_DATA(16, new GT_Packet_SendCoverData()),
REQUEST_COVER_DATA(17, new GT_Packet_RequestCoverData()),
MULTI_TILE_ENTITY(18, new GT_Packet_MultiTileEntity(true)),
diff --git a/src/main/java/gregtech/api/net/GT_Packet_GtTileEntityGuiRequest.java b/src/main/java/gregtech/api/net/GT_Packet_GtTileEntityGuiRequest.java
deleted file mode 100644
index 8fe680e96b..0000000000
--- a/src/main/java/gregtech/api/net/GT_Packet_GtTileEntityGuiRequest.java
+++ /dev/null
@@ -1,122 +0,0 @@
-package gregtech.api.net;
-
-import net.minecraft.entity.player.EntityPlayerMP;
-import net.minecraft.tileentity.TileEntity;
-import net.minecraft.world.IBlockAccess;
-import net.minecraft.world.World;
-import net.minecraftforge.common.DimensionManager;
-import net.minecraftforge.common.util.ForgeDirection;
-
-import com.google.common.io.ByteArrayDataInput;
-
-import gregtech.api.enums.GT_Values;
-import gregtech.api.gui.modularui.GT_UIInfos;
-import gregtech.api.metatileentity.BaseTileEntity;
-import gregtech.api.metatileentity.CoverableTileEntity;
-import gregtech.common.GT_Proxy;
-import io.netty.buffer.ByteBuf;
-
-/**
- * Client -> Server: Request that the server opens a Gregtech GUI for us after providing us with the required data.
- */
-public class GT_Packet_GtTileEntityGuiRequest extends GT_Packet_New {
-
- protected int mX;
- protected short mY;
- protected int mZ;
-
- protected int guiId;
- protected int dimId, playerId;
-
- protected int parentGuiId;
-
- public GT_Packet_GtTileEntityGuiRequest() {
- super(true);
- }
-
- public GT_Packet_GtTileEntityGuiRequest(int mX, short mY, int mZ, int guiId, int dimID, int playerID,
- int parentGuiId) {
- super(false);
- this.mX = mX;
- this.mY = mY;
- this.mZ = mZ;
-
- this.guiId = guiId;
-
- this.dimId = dimID;
- this.playerId = playerID;
-
- this.parentGuiId = parentGuiId;
- }
-
- public GT_Packet_GtTileEntityGuiRequest(int mX, short mY, int mZ, int guiId, int dimID, int playerID) {
- this(mX, mY, mZ, guiId, dimID, playerID, -1);
- }
-
- @Override
- public void encode(ByteBuf aOut) {
- aOut.writeInt(mX);
- aOut.writeShort(mY);
- aOut.writeInt(mZ);
-
- aOut.writeInt(guiId);
-
- aOut.writeInt(dimId);
- aOut.writeInt(playerId);
-
- aOut.writeInt(parentGuiId);
- }
-
- @Override
- public GT_Packet_New decode(ByteArrayDataInput aData) {
- return new GT_Packet_GtTileEntityGuiRequest(
- aData.readInt(),
- aData.readShort(),
- aData.readInt(),
- aData.readInt(),
- aData.readInt(),
- aData.readInt(),
- aData.readInt());
- }
-
- @Override
- public byte getPacketID() {
- return GT_PacketTypes.TILE_ENTITY_GUI_REQUEST.id;
- }
-
- @Override
- public void process(IBlockAccess aWorld) {
- final World world = DimensionManager.getWorld(this.dimId);
- if (world == null) return;
- final TileEntity tile = world.getTileEntity(this.mX, this.mY, this.mZ);
- if (!(tile instanceof BaseTileEntity baseTile) || baseTile.isDead()) return;
-
- final EntityPlayerMP player = (EntityPlayerMP) world.getEntityByID(playerId);
- final CoverableTileEntity coverableTile = (baseTile instanceof CoverableTileEntity)
- ? (CoverableTileEntity) baseTile
- : null;
- // If the requested Gui ID corresponds to a cover, send the cover data to the client so they can open it.
- if (GT_Proxy.GUI_ID_COVER_SIDE_BASE <= guiId && guiId < GT_Proxy.GUI_ID_COVER_SIDE_BASE + 6
- && coverableTile != null) {
- final ForgeDirection coverSide = ForgeDirection
- .getOrientation((byte) (guiId - GT_Proxy.GUI_ID_COVER_SIDE_BASE));
- final GT_Packet_TileEntityCoverGUI packet = new GT_Packet_TileEntityCoverGUI(
- this.mX,
- this.mY,
- this.mZ,
- coverSide,
- coverableTile.getCoverIDAtSide(coverSide),
- coverableTile.getComplexCoverDataAtSide(coverSide),
- this.dimId,
- this.playerId,
- parentGuiId);
- GT_Values.NW.sendToPlayer(packet, player);
- } else if (guiId == 0) {
- if (baseTile.useModularUI()) {
- GT_UIInfos.openGTTileEntityUI(baseTile, player);
- } else {
- baseTile.openGUI(player);
- }
- }
- }
-}
diff --git a/src/main/java/gregtech/api/net/GT_Packet_Sound.java b/src/main/java/gregtech/api/net/GT_Packet_Sound.java
index 04d7f8ac72..93bfdfd3aa 100644
--- a/src/main/java/gregtech/api/net/GT_Packet_Sound.java
+++ b/src/main/java/gregtech/api/net/GT_Packet_Sound.java
@@ -2,6 +2,7 @@ package gregtech.api.net;
import java.io.IOException;
+import net.minecraft.util.ResourceLocation;
import net.minecraft.world.IBlockAccess;
import com.google.common.io.ByteArrayDataInput;
@@ -60,7 +61,9 @@ public class GT_Packet_Sound extends GT_Packet_New {
@Override
public void process(IBlockAccess aWorld) {
- GT_Utility.doSoundAtClient(mSoundName, 1, mSoundStrength, mSoundPitch, mX, mY, mZ);
+ if (mSoundName != null) {
+ GT_Utility.doSoundAtClient(new ResourceLocation(mSoundName), 1, mSoundStrength, mSoundPitch, mX, mY, mZ);
+ }
}
@Override
diff --git a/src/main/java/gregtech/api/net/GT_Packet_TileEntityCover.java b/src/main/java/gregtech/api/net/GT_Packet_TileEntityCover.java
deleted file mode 100644
index 4b4ef5d50d..0000000000
--- a/src/main/java/gregtech/api/net/GT_Packet_TileEntityCover.java
+++ /dev/null
@@ -1,98 +0,0 @@
-package gregtech.api.net;
-
-import net.minecraft.tileentity.TileEntity;
-import net.minecraft.world.IBlockAccess;
-import net.minecraft.world.World;
-import net.minecraftforge.common.DimensionManager;
-import net.minecraftforge.common.util.ForgeDirection;
-
-import com.google.common.io.ByteArrayDataInput;
-
-import gregtech.api.interfaces.tileentity.ICoverable;
-import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import io.netty.buffer.ByteBuf;
-
-/**
- * Client -> Server: Update cover data. use this only if you are using the legacy data storage
- */
-public class GT_Packet_TileEntityCover extends GT_Packet_New {
-
- protected int mX;
- protected short mY;
- protected int mZ;
-
- protected ForgeDirection side;
- protected int coverID, coverData, dimID;
-
- public GT_Packet_TileEntityCover() {
- super(true);
- }
-
- public GT_Packet_TileEntityCover(int mX, short mY, int mZ, ForgeDirection coverSide, int coverID, int coverData,
- int dimID) {
- super(false);
- this.mX = mX;
- this.mY = mY;
- this.mZ = mZ;
-
- this.side = coverSide;
- this.coverID = coverID;
- this.coverData = coverData;
-
- this.dimID = dimID;
- }
-
- public GT_Packet_TileEntityCover(ForgeDirection coverSide, int coverID, int coverData, ICoverable tile) {
- super(false);
- this.mX = tile.getXCoord();
- this.mY = tile.getYCoord();
- this.mZ = tile.getZCoord();
-
- this.side = coverSide;
- this.coverID = coverID;
- this.coverData = coverData;
-
- this.dimID = tile.getWorld().provider.dimensionId;
- }
-
- @Override
- public byte getPacketID() {
- return GT_PacketTypes.COVER.id;
- }
-
- @Override
- public void encode(ByteBuf aOut) {
- aOut.writeInt(mX);
- aOut.writeShort(mY);
- aOut.writeInt(mZ);
-
- aOut.writeByte(side.ordinal());
- aOut.writeInt(coverID);
- aOut.writeInt(coverData);
-
- aOut.writeInt(dimID);
- }
-
- @Override
- public GT_Packet_New decode(ByteArrayDataInput aData) {
- return new GT_Packet_TileEntityCover(
- aData.readInt(),
- aData.readShort(),
- aData.readInt(),
- ForgeDirection.getOrientation(aData.readByte()),
- aData.readInt(),
- aData.readInt(),
- aData.readInt());
- }
-
- @Override
- public void process(IBlockAccess aWorld) {
- World world = DimensionManager.getWorld(dimID);
- if (world != null) {
- TileEntity tile = world.getTileEntity(mX, mY, mZ);
- if (tile instanceof IGregTechTileEntity && !((IGregTechTileEntity) tile).isDead()) {
- ((IGregTechTileEntity) tile).receiveCoverData(side, coverID, coverData);
- }
- }
- }
-}
diff --git a/src/main/java/gregtech/api/net/GT_Packet_TileEntityCoverGUI.java b/src/main/java/gregtech/api/net/GT_Packet_TileEntityCoverGUI.java
deleted file mode 100644
index 95b1bbac99..0000000000
--- a/src/main/java/gregtech/api/net/GT_Packet_TileEntityCoverGUI.java
+++ /dev/null
@@ -1,219 +0,0 @@
-package gregtech.api.net;
-
-import net.minecraft.client.Minecraft;
-import net.minecraft.client.gui.GuiScreen;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.entity.player.EntityPlayerMP;
-import net.minecraft.tileentity.TileEntity;
-import net.minecraft.world.IBlockAccess;
-import net.minecraft.world.World;
-import net.minecraftforge.common.util.ForgeDirection;
-
-import com.google.common.io.ByteArrayDataInput;
-
-import gregtech.api.GregTech_API;
-import gregtech.api.gui.GT_GUICover;
-import gregtech.api.interfaces.tileentity.ICoverable;
-import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import gregtech.api.util.GT_CoverBehaviorBase;
-import gregtech.api.util.ISerializableObject;
-import gregtech.common.covers.CoverInfo;
-import io.netty.buffer.ByteBuf;
-
-/**
- * Server -> Client: Show GUI
- */
-public class GT_Packet_TileEntityCoverGUI extends GT_Packet_New {
-
- protected int mX;
- protected short mY;
- protected int mZ;
-
- protected ForgeDirection side;
- protected int coverID, dimID, playerID;
- protected ISerializableObject coverData;
-
- protected int parentGuiId;
-
- public GT_Packet_TileEntityCoverGUI() {
- super(true);
- }
-
- public GT_Packet_TileEntityCoverGUI(int mX, short mY, int mZ, ForgeDirection coverSide, int coverID, int coverData,
- int dimID, int playerID) {
- super(false);
- this.mX = mX;
- this.mY = mY;
- this.mZ = mZ;
-
- this.side = coverSide;
- this.coverID = coverID;
- this.coverData = new ISerializableObject.LegacyCoverData(coverData);
-
- this.dimID = dimID;
- this.playerID = playerID;
- this.parentGuiId = -1;
- }
-
- public GT_Packet_TileEntityCoverGUI(int mX, short mY, int mZ, ForgeDirection coverSide, int coverID,
- ISerializableObject coverData, int dimID, int playerID) {
- super(false);
- this.mX = mX;
- this.mY = mY;
- this.mZ = mZ;
-
- this.side = coverSide;
- this.coverID = coverID;
- this.coverData = coverData;
- this.dimID = dimID;
- this.playerID = playerID;
- this.parentGuiId = -1;
- }
-
- public GT_Packet_TileEntityCoverGUI(CoverInfo coverInfo, int dimID, int playerID, int parentGuiId) {
- super(false);
- final ICoverable tile = coverInfo.getTile();
- this.mX = tile.getXCoord();
- this.mY = tile.getYCoord();
- this.mZ = tile.getZCoord();
-
- this.side = coverInfo.getSide();
- this.coverID = coverInfo.getCoverID();
- this.coverData = coverInfo.getCoverData();
-
- this.dimID = dimID;
- this.playerID = playerID;
- this.parentGuiId = parentGuiId;
- }
-
- public GT_Packet_TileEntityCoverGUI(int mX, short mY, int mZ, ForgeDirection coverSide, int coverID,
- ISerializableObject coverData, int dimID, int playerID, int parentGuiId) {
- super(false);
- this.mX = mX;
- this.mY = mY;
- this.mZ = mZ;
-
- this.side = coverSide;
- this.coverID = coverID;
- this.coverData = coverData;
- this.dimID = dimID;
- this.playerID = playerID;
- this.parentGuiId = parentGuiId;
- }
-
- public GT_Packet_TileEntityCoverGUI(ForgeDirection side, int coverID, int coverData, ICoverable tile,
- EntityPlayerMP aPlayer) {
- super(false);
-
- this.mX = tile.getXCoord();
- this.mY = tile.getYCoord();
- this.mZ = tile.getZCoord();
-
- this.side = side;
- this.coverID = coverID;
- this.coverData = new ISerializableObject.LegacyCoverData(coverData);
-
- this.dimID = tile.getWorld().provider.dimensionId;
- this.playerID = aPlayer.getEntityId();
- this.parentGuiId = -1;
- }
-
- public GT_Packet_TileEntityCoverGUI(ForgeDirection coverSide, int coverID, int coverData,
- IGregTechTileEntity tile) {
- super(false);
- this.mX = tile.getXCoord();
- this.mY = tile.getYCoord();
- this.mZ = tile.getZCoord();
-
- this.side = coverSide;
- this.coverID = coverID;
- this.coverData = new ISerializableObject.LegacyCoverData(coverData);
-
- this.dimID = tile.getWorld().provider.dimensionId;
- this.parentGuiId = -1;
- }
-
- public GT_Packet_TileEntityCoverGUI(ForgeDirection side, int coverID, ISerializableObject coverData,
- ICoverable tile, EntityPlayerMP aPlayer) {
- super(false);
- this.mX = tile.getXCoord();
- this.mY = tile.getYCoord();
- this.mZ = tile.getZCoord();
-
- this.side = side;
- this.coverID = coverID;
- this.coverData = coverData.copy(); // make a copy so we don't get a race condition
-
- this.dimID = tile.getWorld().provider.dimensionId;
- this.playerID = aPlayer.getEntityId();
- this.parentGuiId = -1;
- }
-
- @Override
- public byte getPacketID() {
- return GT_PacketTypes.COVER_GUI.id;
- }
-
- @Override
- public void encode(ByteBuf aOut) {
- aOut.writeInt(mX);
- aOut.writeShort(mY);
- aOut.writeInt(mZ);
-
- aOut.writeByte(side.ordinal());
- aOut.writeInt(coverID);
- coverData.writeToByteBuf(aOut);
-
- aOut.writeInt(dimID);
- aOut.writeInt(playerID);
-
- aOut.writeInt(parentGuiId);
- }
-
- @Override
- public GT_Packet_New decode(ByteArrayDataInput aData) {
- final int coverID;
- return new GT_Packet_TileEntityCoverGUI(
- aData.readInt(),
- aData.readShort(),
- aData.readInt(),
- ForgeDirection.getOrientation(aData.readByte()),
- coverID = aData.readInt(),
- GregTech_API.getCoverBehaviorNew(coverID)
- .createDataObject()
- .readFromPacket(aData, null),
- aData.readInt(),
- aData.readInt(),
- aData.readInt());
- }
-
- @Override
- public void process(IBlockAccess aWorld) {
- if (aWorld instanceof World) {
- // Using EntityPlayer instead of EntityClientPlayerMP so both client and server can load this
- final EntityPlayer thePlayer = ((EntityPlayer) ((World) aWorld).getEntityByID(playerID));
- final TileEntity tile = aWorld.getTileEntity(mX, mY, mZ);
- if (tile instanceof IGregTechTileEntity gtTile && !gtTile.isDead()) {
- gtTile.setCoverDataAtSide(side, coverData); // Set it client side to read later.
-
- GT_CoverBehaviorBase<?> cover = gtTile.getCoverBehaviorAtSideNew(side);
- if (cover.hasCoverGUI()) {
- final GuiScreen gui = (GuiScreen) cover.getClientGUI(
- side,
- gtTile.getCoverIDAtSide(side),
- gtTile.getComplexCoverDataAtSide(side),
- gtTile,
- thePlayer,
- thePlayer.worldObj);
- // If it's one of this mod's covers, tell it to exit to the GUI with the specified ID (-1 is
- // ignored)
- if (gui instanceof GT_GUICover guiCover) {
- guiCover.setParentGuiId(parentGuiId);
- }
- Minecraft.getMinecraft()
- .displayGuiScreen(gui);
- }
- }
- }
- }
-}
diff --git a/src/main/java/gregtech/api/net/GT_Packet_TileEntityCoverNew.java b/src/main/java/gregtech/api/net/GT_Packet_TileEntityCoverNew.java
deleted file mode 100644
index 5ba0c3ea64..0000000000
--- a/src/main/java/gregtech/api/net/GT_Packet_TileEntityCoverNew.java
+++ /dev/null
@@ -1,119 +0,0 @@
-package gregtech.api.net;
-
-import net.minecraft.entity.player.EntityPlayerMP;
-import net.minecraft.network.INetHandler;
-import net.minecraft.network.NetHandlerPlayServer;
-import net.minecraft.tileentity.TileEntity;
-import net.minecraft.world.IBlockAccess;
-import net.minecraft.world.World;
-import net.minecraftforge.common.DimensionManager;
-import net.minecraftforge.common.util.ForgeDirection;
-
-import com.google.common.io.ByteArrayDataInput;
-
-import gregtech.api.GregTech_API;
-import gregtech.api.interfaces.tileentity.ICoverable;
-import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import gregtech.api.util.ISerializableObject;
-import io.netty.buffer.ByteBuf;
-
-/**
- * Client -> Server: Update cover data
- */
-public class GT_Packet_TileEntityCoverNew extends GT_Packet_New {
-
- protected int mX;
- protected short mY;
- protected int mZ;
-
- protected ForgeDirection side;
- protected int coverID, dimID;
- protected ISerializableObject coverData;
-
- protected EntityPlayerMP mPlayer;
-
- public GT_Packet_TileEntityCoverNew() {
- super(true);
- }
-
- public GT_Packet_TileEntityCoverNew(int mX, short mY, int mZ, ForgeDirection coverSide, int coverID,
- ISerializableObject coverData, int dimID) {
- super(false);
- this.mX = mX;
- this.mY = mY;
- this.mZ = mZ;
-
- this.side = coverSide;
- this.coverID = coverID;
- this.coverData = coverData;
-
- this.dimID = dimID;
- }
-
- public GT_Packet_TileEntityCoverNew(ForgeDirection coverSide, int coverID, ISerializableObject coverData,
- ICoverable tile) {
- super(false);
- this.mX = tile.getXCoord();
- this.mY = tile.getYCoord();
- this.mZ = tile.getZCoord();
-
- this.side = coverSide;
- this.coverID = coverID;
- this.coverData = coverData;
-
- this.dimID = tile.getWorld().provider.dimensionId;
- }
-
- @Override
- public byte getPacketID() {
- return GT_PacketTypes.COVER_NEW.id;
- }
-
- @Override
- public void setINetHandler(INetHandler aHandler) {
- if (aHandler instanceof NetHandlerPlayServer) {
- mPlayer = ((NetHandlerPlayServer) aHandler).playerEntity;
- }
- }
-
- @Override
- public void encode(ByteBuf aOut) {
- aOut.writeInt(mX);
- aOut.writeShort(mY);
- aOut.writeInt(mZ);
-
- aOut.writeByte(side.ordinal());
- aOut.writeInt(coverID);
- coverData.writeToByteBuf(aOut);
-
- aOut.writeInt(dimID);
- }
-
- @Override
- public GT_Packet_New decode(ByteArrayDataInput aData) {
- int coverId;
- return new GT_Packet_TileEntityCoverNew(
- aData.readInt(),
- aData.readShort(),
- aData.readInt(),
- ForgeDirection.getOrientation(aData.readByte()),
- coverId = aData.readInt(),
- GregTech_API.getCoverBehaviorNew(coverId)
- .createDataObject()
- .readFromPacket(aData, mPlayer),
- aData.readInt());
- }
-
- @Override
- public void process(IBlockAccess aWorld) {
- if (mPlayer == null) // impossible, but who knows
- return;
- World world = DimensionManager.getWorld(dimID);
- if (world != null) {
- TileEntity tile = world.getTileEntity(mX, mY, mZ);
- if (tile instanceof IGregTechTileEntity && !((IGregTechTileEntity) tile).isDead()) {
- ((IGregTechTileEntity) tile).receiveCoverData(side, coverID, coverData, mPlayer);
- }
- }
- }
-}
diff --git a/src/main/java/gregtech/api/net/GT_Packet_WirelessRedstoneCover.java b/src/main/java/gregtech/api/net/GT_Packet_WirelessRedstoneCover.java
deleted file mode 100644
index 1426a3954c..0000000000
--- a/src/main/java/gregtech/api/net/GT_Packet_WirelessRedstoneCover.java
+++ /dev/null
@@ -1,99 +0,0 @@
-package gregtech.api.net;
-
-import net.minecraft.entity.player.EntityPlayerMP;
-import net.minecraft.network.INetHandler;
-import net.minecraft.network.NetHandlerPlayServer;
-import net.minecraft.tileentity.TileEntity;
-import net.minecraft.world.IBlockAccess;
-import net.minecraft.world.World;
-import net.minecraftforge.common.DimensionManager;
-import net.minecraftforge.common.util.ForgeDirection;
-
-import com.google.common.io.ByteArrayDataInput;
-
-import gregtech.api.interfaces.tileentity.ICoverable;
-import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import io.netty.buffer.ByteBuf;
-
-public class GT_Packet_WirelessRedstoneCover extends GT_Packet_TileEntityCover {
-
- private static final int PRIVATE_MASK = 0xFFFE0000;
- private static final int PUBLIC_MASK = 0x0000FFFF;
- private static final int CHECKBOX_MASK = 0x00010000;
-
- private EntityPlayerMP mPlayer;
- private int mPublicChannel;
- private int mCheckBoxValue;
-
- public GT_Packet_WirelessRedstoneCover() {
- super();
- }
-
- public GT_Packet_WirelessRedstoneCover(int mX, short mY, int mZ, ForgeDirection coverSide, int coverID, int dimID,
- int publicChannel, int checkBoxValue) {
- super(mX, mY, mZ, coverSide, coverID, 0, dimID);
- mPublicChannel = publicChannel;
- mCheckBoxValue = checkBoxValue;
- }
-
- public GT_Packet_WirelessRedstoneCover(ForgeDirection coverSide, int coverID, ICoverable tile, int publicChannel,
- int checkBoxValue) {
- super(coverSide, coverID, 0, tile);
- mPublicChannel = publicChannel;
- mCheckBoxValue = checkBoxValue;
- }
-
- @Override
- public byte getPacketID() {
- return GT_PacketTypes.WIRELESS_REDSTONE_COVER.id;
- }
-
- @Override
- public void setINetHandler(INetHandler aHandler) {
- if (aHandler instanceof NetHandlerPlayServer) {
- mPlayer = ((NetHandlerPlayServer) aHandler).playerEntity;
- }
- }
-
- @Override
- public void encode(ByteBuf aOut) {
- aOut.writeInt(mX);
- aOut.writeShort(mY);
- aOut.writeInt(mZ);
-
- aOut.writeByte(side.ordinal());
- aOut.writeInt(coverID);
-
- aOut.writeInt(dimID);
-
- aOut.writeInt(mPublicChannel);
- aOut.writeInt(mCheckBoxValue);
- }
-
- @Override
- public GT_Packet_New decode(ByteArrayDataInput aData) {
- return new GT_Packet_WirelessRedstoneCover(
- aData.readInt(),
- aData.readShort(),
- aData.readInt(),
- ForgeDirection.getOrientation(aData.readByte()),
- aData.readInt(),
- aData.readInt(),
- aData.readInt(),
- aData.readInt());
- }
-
- @Override
- public void process(IBlockAccess aWorld) {
- World world = DimensionManager.getWorld(dimID);
- if (world != null && world.blockExists(mX, mY, mZ)) {
- TileEntity tile = world.getTileEntity(mX, mY, mZ);
- if (tile instanceof IGregTechTileEntity && !((IGregTechTileEntity) tile).isDead()) {
- int tPrivateChannel = (mCheckBoxValue > 0) ? mPlayer.getUniqueID()
- .hashCode() & PRIVATE_MASK : 0;
- int tCoverData = tPrivateChannel | (mCheckBoxValue & CHECKBOX_MASK) | (mPublicChannel & PUBLIC_MASK);
- ((IGregTechTileEntity) tile).receiveCoverData(side, coverID, tCoverData);
- }
- }
- }
-}