From 5c8bdf8dd74464a9de69b1a7c5fed6aaea566a55 Mon Sep 17 00:00:00 2001 From: Matej Dipčár <492666@mail.muni.cz> Date: Wed, 21 Sep 2022 04:53:08 +0200 Subject: Make also WirelessData abstract --- .../GT_Cover_AdvancedRedstoneReceiverBase.java | 59 +++----------- .../GT_Cover_AdvancedRedstoneTransmitterBase.java | 77 +++++------------- .../GT_Cover_AdvancedWirelessRedstoneBase.java | 94 +++++++++++++++++++--- .../common/covers/redstone/IWirelessObject.java | 14 ---- 4 files changed, 110 insertions(+), 134 deletions(-) delete mode 100644 src/main/java/gregtech/common/covers/redstone/IWirelessObject.java (limited to 'src/main/java/gregtech/common') diff --git a/src/main/java/gregtech/common/covers/redstone/GT_Cover_AdvancedRedstoneReceiverBase.java b/src/main/java/gregtech/common/covers/redstone/GT_Cover_AdvancedRedstoneReceiverBase.java index 5eba8a7a85..ade97ed25d 100644 --- a/src/main/java/gregtech/common/covers/redstone/GT_Cover_AdvancedRedstoneReceiverBase.java +++ b/src/main/java/gregtech/common/covers/redstone/GT_Cover_AdvancedRedstoneReceiverBase.java @@ -56,18 +56,11 @@ public abstract class GT_Cover_AdvancedRedstoneReceiverBase extends GT_Cover_Adv NOR } - public static class ReceiverData implements IWirelessObject { - private int frequency; - - /** - * If UUID is set to null, the cover frequency is public, rather than private - **/ - private UUID uuid; + public static class ReceiverData extends GT_Cover_AdvancedWirelessRedstoneBase.WirelessData { private GateMode mode; public ReceiverData(int frequency, UUID uuid, GateMode mode) { - this.frequency = frequency; - this.uuid = uuid; + super(frequency, uuid); this.mode = mode; } @@ -75,26 +68,6 @@ public abstract class GT_Cover_AdvancedRedstoneReceiverBase extends GT_Cover_Adv this(0, null, GateMode.AND); } - @Override - public UUID getUuid() { - return uuid; - } - - @Override - public void setFrequency(int frequency) { - this.frequency = frequency; - } - - @Override - public int getFrequency() { - return frequency; - } - - @Override - public void setUuid(UUID uuid) { - this.uuid = uuid; - } - public GateMode getGateMode() { return mode; } @@ -108,11 +81,7 @@ public abstract class GT_Cover_AdvancedRedstoneReceiverBase extends GT_Cover_Adv @Nonnull @Override public NBTBase saveDataToNBT() { - NBTTagCompound tag = new NBTTagCompound(); - tag.setInteger("frequency", frequency); - if (uuid != null) { - tag.setString("uuid", uuid.toString()); - } + NBTTagCompound tag = (NBTTagCompound) super.saveDataToNBT(); tag.setByte("mode", (byte) mode.ordinal()); return tag; @@ -120,39 +89,29 @@ public abstract class GT_Cover_AdvancedRedstoneReceiverBase extends GT_Cover_Adv @Override public void writeToByteBuf(ByteBuf aBuf) { - aBuf.writeInt(frequency); - aBuf.writeBoolean(uuid != null); - if (uuid != null) { - aBuf.writeLong(uuid.getLeastSignificantBits()); - aBuf.writeLong(uuid.getMostSignificantBits()); - } + super.writeToByteBuf(aBuf); aBuf.writeByte(mode.ordinal()); } @Override public void loadDataFromNBT(NBTBase aNBT) { + super.loadDataFromNBT(aNBT); + NBTTagCompound tag = (NBTTagCompound) aNBT; - frequency = tag.getInteger("frequency"); - if (tag.hasKey("uuid")) { - uuid = UUID.fromString(tag.getString("uuid")); - } mode = GateMode.values()[tag.getByte("mode")]; } @Nonnull @Override public ISerializableObject readFromPacket(ByteArrayDataInput aBuf, EntityPlayerMP aPlayer) { - frequency = aBuf.readInt(); - if (aBuf.readBoolean()) { - uuid = new UUID(aBuf.readLong(), aBuf.readLong()); - } + super.readFromPacket(aBuf, aPlayer); mode = GateMode.values()[aBuf.readByte()]; return this; } } - private class ReceiverGUI extends WirelessGUI { + private class ReceiverGUI extends WirelessGUI { private static final int gateModeButtonIdStart = 1; @@ -205,7 +164,7 @@ public abstract class GT_Cover_AdvancedRedstoneReceiverBase extends GT_Cover_Adv @Override public void buttonClicked(GuiButton btn) { - if (btn.enabled) { + if (btn.id >= gateModeButtonIdStart && btn.enabled) { coverVariable.mode = GateMode.values()[btn.id - gateModeButtonIdStart]; } diff --git a/src/main/java/gregtech/common/covers/redstone/GT_Cover_AdvancedRedstoneTransmitterBase.java b/src/main/java/gregtech/common/covers/redstone/GT_Cover_AdvancedRedstoneTransmitterBase.java index 71d3820b2f..e5f615e329 100644 --- a/src/main/java/gregtech/common/covers/redstone/GT_Cover_AdvancedRedstoneTransmitterBase.java +++ b/src/main/java/gregtech/common/covers/redstone/GT_Cover_AdvancedRedstoneTransmitterBase.java @@ -49,28 +49,11 @@ public abstract class GT_Cover_AdvancedRedstoneTransmitterBase extends GT_Cover_ return GT_Utility.trans("081", "Frequency: ") + aCoverVariable.frequency + ", Transmission: " + (aCoverVariable.uuid == null ? "Public" : "Private"); } - /** - * GUI Stuff - */ - - @Override - public Object getClientGUIImpl(byte aSide, int aCoverID, TransmitterData aCoverVariable, ICoverable aTileEntity, - EntityPlayer aPlayer, World aWorld) { - return new TransmitterGUI(aSide, aCoverID, aCoverVariable, aTileEntity); - } - - public static class TransmitterData implements IWirelessObject { - private int frequency; - - /** - * If UUID is set to null, the cover frequency is public, rather than private - **/ - private UUID uuid; + public static class TransmitterData extends GT_Cover_AdvancedWirelessRedstoneBase.WirelessData { private boolean invert; public TransmitterData(int frequency, UUID uuid, boolean invert) { - this.frequency = frequency; - this.uuid = uuid; + super(frequency, uuid); this.invert = invert; } @@ -78,26 +61,6 @@ public abstract class GT_Cover_AdvancedRedstoneTransmitterBase extends GT_Cover_ this(0, null, false); } - @Override - public UUID getUuid() { - return uuid; - } - - @Override - public void setUuid(UUID uuid) { - this.uuid = uuid; - } - - @Override - public int getFrequency() { - return frequency; - } - - @Override - public void setFrequency(int frequency) { - this.frequency = frequency; - } - public boolean isInvert() { return invert; } @@ -111,11 +74,7 @@ public abstract class GT_Cover_AdvancedRedstoneTransmitterBase extends GT_Cover_ @Nonnull @Override public NBTBase saveDataToNBT() { - NBTTagCompound tag = new NBTTagCompound(); - tag.setInteger("frequency", frequency); - if (uuid != null) { - tag.setString("uuid", uuid.toString()); - } + NBTTagCompound tag = (NBTTagCompound) super.saveDataToNBT(); tag.setBoolean("invert", invert); return tag; @@ -123,22 +82,15 @@ public abstract class GT_Cover_AdvancedRedstoneTransmitterBase extends GT_Cover_ @Override public void writeToByteBuf(ByteBuf aBuf) { - aBuf.writeInt(frequency); - aBuf.writeBoolean(uuid != null); - if (uuid != null) { - aBuf.writeLong(uuid.getLeastSignificantBits()); - aBuf.writeLong(uuid.getMostSignificantBits()); - } + super.writeToByteBuf(aBuf); aBuf.writeBoolean(invert); } @Override public void loadDataFromNBT(NBTBase aNBT) { + super.loadDataFromNBT(aNBT); + NBTTagCompound tag = (NBTTagCompound) aNBT; - frequency = tag.getInteger("frequency"); - if (tag.hasKey("uuid")) { - uuid = UUID.fromString(tag.getString("uuid")); - } invert = tag.getBoolean("invert"); } @@ -149,10 +101,7 @@ public abstract class GT_Cover_AdvancedRedstoneTransmitterBase extends GT_Cover_ UUID oldUuid = uuid; boolean oldInvert = invert; - frequency = aBuf.readInt(); - if (aBuf.readBoolean()) { - uuid = new UUID(aBuf.readLong(), aBuf.readLong()); - } + super.readFromPacket(aBuf, aPlayer); invert = aBuf.readBoolean(); if (oldFrequency != frequency || !Objects.equals(oldUuid, uuid) || oldInvert != invert) { @@ -164,7 +113,17 @@ public abstract class GT_Cover_AdvancedRedstoneTransmitterBase extends GT_Cover_ } } - private class TransmitterGUI extends WirelessGUI { + /** + * GUI Stuff + */ + + @Override + public Object getClientGUIImpl(byte aSide, int aCoverID, TransmitterData aCoverVariable, ICoverable aTileEntity, + EntityPlayer aPlayer, World aWorld) { + return new TransmitterGUI(aSide, aCoverID, aCoverVariable, aTileEntity); + } + + private class TransmitterGUI extends WirelessGUI { private final GT_GuiIconCheckButton invertButton; diff --git a/src/main/java/gregtech/common/covers/redstone/GT_Cover_AdvancedWirelessRedstoneBase.java b/src/main/java/gregtech/common/covers/redstone/GT_Cover_AdvancedWirelessRedstoneBase.java index 10e63d1ad3..08fa5356c2 100644 --- a/src/main/java/gregtech/common/covers/redstone/GT_Cover_AdvancedWirelessRedstoneBase.java +++ b/src/main/java/gregtech/common/covers/redstone/GT_Cover_AdvancedWirelessRedstoneBase.java @@ -1,5 +1,6 @@ package gregtech.common.covers.redstone; +import com.google.common.io.ByteArrayDataInput; import gregtech.api.enums.GT_Values; import gregtech.api.gui.GT_GUICover; import gregtech.api.gui.widgets.GT_GuiIcon; @@ -11,12 +12,20 @@ import gregtech.api.interfaces.tileentity.ICoverable; import gregtech.api.net.GT_Packet_TileEntityCoverNew; import gregtech.api.util.GT_CoverBehaviorBase; import gregtech.api.util.GT_Utility; +import gregtech.api.util.ISerializableObject; +import io.netty.buffer.ByteBuf; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiButton; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.nbt.NBTBase; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ResourceLocation; import net.minecraftforge.fluids.Fluid; -public abstract class GT_Cover_AdvancedWirelessRedstoneBase extends GT_CoverBehaviorBase { +import javax.annotation.Nonnull; +import java.util.UUID; + +public abstract class GT_Cover_AdvancedWirelessRedstoneBase extends GT_CoverBehaviorBase { public GT_Cover_AdvancedWirelessRedstoneBase(Class typeToken, ITexture coverTexture) { super(typeToken, coverTexture); @@ -57,6 +66,71 @@ public abstract class GT_Cover_AdvancedWirelessRedstoneBase extends GT_GUICover { protected final byte side; protected final int coverID; protected final GT_GuiIntegerTextBox frequencyBox; protected final GT_GuiIconCheckButton privateButton; - protected final T coverVariable; + protected final X coverVariable; protected static final int startX = 10; protected static final int startY = 25; @@ -82,14 +156,14 @@ public abstract class GT_Cover_AdvancedWirelessRedstoneBase