diff options
author | Matej Dipčár <492666@mail.muni.cz> | 2022-09-21 04:53:08 +0200 |
---|---|---|
committer | Matej Dipčár <492666@mail.muni.cz> | 2022-09-23 02:15:47 +0200 |
commit | 5c8bdf8dd74464a9de69b1a7c5fed6aaea566a55 (patch) | |
tree | 38e0d2c17ab58c73871f1441b4a6fb872fd3685c /src | |
parent | 594b87668a456fb4483a8bf1fa3743763950477b (diff) | |
download | GT5-Unofficial-5c8bdf8dd74464a9de69b1a7c5fed6aaea566a55.tar.gz GT5-Unofficial-5c8bdf8dd74464a9de69b1a7c5fed6aaea566a55.tar.bz2 GT5-Unofficial-5c8bdf8dd74464a9de69b1a7c5fed6aaea566a55.zip |
Make also WirelessData abstract
Diffstat (limited to 'src')
4 files changed, 110 insertions, 134 deletions
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<ReceiverData> { 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<TransmitterData> { 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<T extends IWirelessObject> extends GT_CoverBehaviorBase<T> { +import javax.annotation.Nonnull; +import java.util.UUID; + +public abstract class GT_Cover_AdvancedWirelessRedstoneBase<T extends GT_Cover_AdvancedWirelessRedstoneBase.WirelessData> extends GT_CoverBehaviorBase<T> { public GT_Cover_AdvancedWirelessRedstoneBase(Class<T> typeToken, ITexture coverTexture) { super(typeToken, coverTexture); @@ -57,6 +66,71 @@ public abstract class GT_Cover_AdvancedWirelessRedstoneBase<T extends IWirelessO return 5; } + + public static abstract class WirelessData implements ISerializableObject { + protected int frequency; + + /** + * If UUID is set to null, the cover frequency is public, rather than private + **/ + protected UUID uuid; + + public WirelessData(int frequency, UUID uuid) { + this.frequency = frequency; + this.uuid = uuid; + } + + public UUID getUuid() { + return uuid; + } + + public int getFrequency() { + return frequency; + } + + @Nonnull + @Override + public NBTBase saveDataToNBT() { + NBTTagCompound tag = new NBTTagCompound(); + tag.setInteger("frequency", frequency); + if (uuid != null) { + tag.setString("uuid", uuid.toString()); + } + + return tag; + } + + @Override + public void writeToByteBuf(ByteBuf aBuf) { + aBuf.writeInt(frequency); + aBuf.writeBoolean(uuid != null); + if (uuid != null) { + aBuf.writeLong(uuid.getLeastSignificantBits()); + aBuf.writeLong(uuid.getMostSignificantBits()); + } + } + + @Override + public void loadDataFromNBT(NBTBase aNBT) { + NBTTagCompound tag = (NBTTagCompound) aNBT; + frequency = tag.getInteger("frequency"); + if (tag.hasKey("uuid")) { + uuid = UUID.fromString(tag.getString("uuid")); + } + } + + @Nonnull + @Override + public ISerializableObject readFromPacket(ByteArrayDataInput aBuf, EntityPlayerMP aPlayer) { + frequency = aBuf.readInt(); + if (aBuf.readBoolean()) { + uuid = new UUID(aBuf.readLong(), aBuf.readLong()); + } + + return this; + } + } + /** * GUI Stuff */ @@ -65,13 +139,13 @@ public abstract class GT_Cover_AdvancedWirelessRedstoneBase<T extends IWirelessO return true; } - protected abstract class WirelessGUI extends GT_GUICover { + protected abstract class WirelessGUI<X extends WirelessData> 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<T extends IWirelessO private static final String guiTexturePath = "gregtech:textures/gui/GuiCoverLong.png"; - public WirelessGUI(byte aSide, int aCoverID, T aCoverVariable, ICoverable aTileEntity) { + public WirelessGUI(byte aSide, int aCoverID, X aCoverVariable, ICoverable aTileEntity) { super(aTileEntity, 250, 107, GT_Utility.intToStack(aCoverID)); this.mGUIbackgroundLocation = new ResourceLocation(guiTexturePath); this.side = aSide; this.coverID = aCoverID; this.coverVariable = aCoverVariable; - frequencyBox = new WirelessGUI.GT_GuiShortTextBox(this, 0, startX, startY + 2, spaceX * 5 - 3, 12); + frequencyBox = new GT_GuiShortTextBox(this, 0, startX, startY + 2, spaceX * 5 - 3, 12); privateButton = new GT_GuiIconCheckButton(this, 0, startX, startY + spaceY * 1, GT_GuiIcon.CHECKMARK, null); } @@ -116,7 +190,7 @@ public abstract class GT_Cover_AdvancedWirelessRedstoneBase<T extends IWirelessO @Override public void applyTextBox(GT_GuiIntegerTextBox box) { if (box == frequencyBox) { - coverVariable.setFrequency(parseTextBox(frequencyBox)); + coverVariable.frequency = parseTextBox(frequencyBox); } GT_Values.NW.sendToServer(new GT_Packet_TileEntityCoverNew(side, coverID, coverVariable, tile)); @@ -126,21 +200,19 @@ public abstract class GT_Cover_AdvancedWirelessRedstoneBase<T extends IWirelessO @Override public void resetTextBox(GT_GuiIntegerTextBox box) { if (box == frequencyBox) { - frequencyBox.setText(Integer.toString(coverVariable.getFrequency())); + frequencyBox.setText(Integer.toString(coverVariable.frequency)); } } protected void update() { - privateButton.setChecked(coverVariable.getUuid() != null); + privateButton.setChecked(coverVariable.uuid != null); resetTextBox(frequencyBox); } @Override public void buttonClicked(GuiButton btn) { if (btn == privateButton) { - coverVariable.setUuid( - coverVariable.getUuid() == null ? Minecraft.getMinecraft().thePlayer.getUniqueID() : null - ); + coverVariable.uuid = coverVariable.uuid == null ? Minecraft.getMinecraft().thePlayer.getUniqueID() : null; } GT_Values.NW.sendToServer(new GT_Packet_TileEntityCoverNew(side, coverID, coverVariable, tile)); diff --git a/src/main/java/gregtech/common/covers/redstone/IWirelessObject.java b/src/main/java/gregtech/common/covers/redstone/IWirelessObject.java deleted file mode 100644 index e975a9587e..0000000000 --- a/src/main/java/gregtech/common/covers/redstone/IWirelessObject.java +++ /dev/null @@ -1,14 +0,0 @@ -package gregtech.common.covers.redstone; - -import gregtech.api.util.ISerializableObject; - -import java.util.UUID; - -public interface IWirelessObject extends ISerializableObject { - - int getFrequency(); - void setFrequency(int frequency); - - UUID getUuid(); - void setUuid(UUID uuid); -} |