diff --git a/src/main/java/tanks/Game.java b/src/main/java/tanks/Game.java index 1f692492..e0337a6f 100644 --- a/src/main/java/tanks/Game.java +++ b/src/main/java/tanks/Game.java @@ -135,6 +135,7 @@ public int hashCode() public static boolean drawFaces = false; public static boolean drawAvoidObjects = false; public static boolean recordMovableData = false; + public static boolean recordEventData = false; public static final boolean cinematic = false; public static long steamLobbyInvite = -1; @@ -159,7 +160,7 @@ public int hashCode() public static boolean vsync = true; public static int maxFPS = 0; - public static int networkRate = 60; + public static int networkRate = 20; public static boolean enable3d = true; public static boolean enable3dBg = true; diff --git a/src/main/java/tanks/Panel.java b/src/main/java/tanks/Panel.java index 52e92f94..ed26713f 100644 --- a/src/main/java/tanks/Panel.java +++ b/src/main/java/tanks/Panel.java @@ -3,11 +3,9 @@ import basewindow.InputCodes; import tanks.extension.Extension; import tanks.gui.*; -import tanks.gui.ScreenElement.CenterMessage; -import tanks.gui.ScreenElement.Notification; +import tanks.gui.ScreenElement.*; import tanks.gui.screen.*; -import tanks.gui.screen.leveleditor.ScreenLevelEditor; -import tanks.gui.screen.leveleditor.ScreenLevelEditorOverlay; +import tanks.gui.screen.leveleditor.*; import tanks.item.Item; import tanks.network.*; import tanks.network.event.*; @@ -16,8 +14,7 @@ import tanks.rendering.*; import tanks.tank.*; -import java.util.ArrayList; -import java.util.HashMap; +import java.util.*; public class Panel { @@ -911,6 +908,15 @@ public void draw() this.drawBar(); } + if (Game.recordEventData && (ScreenPartyHost.isServer || ScreenPartyLobby.isClient)) + { + Drawing.drawing.setColor(255, 255, 255); + Drawing.drawing.setInterfaceFontSize(16); + double y = Drawing.drawing.getInterfaceEdgeY(true) - 20; + for (String s : MessageReader.eventBytesPerSecText) + Drawing.drawing.drawUncenteredInterfaceText(10, y -= 20, s); + } + if (!notifications.isEmpty()) { double sy = 0; diff --git a/src/main/java/tanks/bullet/BulletReboundIndicator.java b/src/main/java/tanks/bullet/BulletReboundIndicator.java index 88bc480d..c1970291 100644 --- a/src/main/java/tanks/bullet/BulletReboundIndicator.java +++ b/src/main/java/tanks/bullet/BulletReboundIndicator.java @@ -27,13 +27,13 @@ public BulletReboundIndicator(Bullet b) Game.eventsOut.add(new EventBulletReboundIndicator(this)); } - public BulletReboundIndicator(double posX, double posY, double posZ, double size, double maxAge, double r1, double g1, double b1, double r2, double g2, double b2) + public BulletReboundIndicator(double posX, double posY, double posZ, double size, double maxAge, Color color, Color color2) { super(posX, posY); this.posZ = posZ; this.size = size; - this.color.set(r1, g1, b1); - this.color2.set(r2, g2, b2); + this.color = color; + this.color2 = color2; this.maxAge = maxAge; } diff --git a/src/main/java/tanks/gui/screen/ScreenDebug.java b/src/main/java/tanks/gui/screen/ScreenDebug.java index a1df399e..50364256 100644 --- a/src/main/java/tanks/gui/screen/ScreenDebug.java +++ b/src/main/java/tanks/gui/screen/ScreenDebug.java @@ -30,13 +30,14 @@ public class ScreenDebug extends Screen Button drawAvoidObjects = createToggle("Draw avoid objects: ", b -> Game.drawAvoidObjects = b, () -> Game.drawAvoidObjects); Button disableFixes = createToggle("Disable fixes: ", b -> Game.disableErrorFixing = b, () -> Game.disableErrorFixing); Button recordMovableData = createToggle("Record movable data: ", b -> Game.recordMovableData = b, () -> Game.recordMovableData); + Button recordEventData = createToggle("Record event data: ", b -> Game.recordEventData = b, () -> Game.recordEventData); Button back = new Button(Drawing.drawing.interfaceSizeX / 2, Drawing.drawing.interfaceSizeY / 2 + this.objYSpace * 5, this.objWidth, this.objHeight, "Back", () -> Game.screen = new ScreenTitle()); public ButtonList debugButtons = new ButtonList(new ArrayList<>(Arrays.asList( test, traceAllRays, firstPerson, followingCam, destroyCheat, invulnerable, fancyLighting, tankIDs, showPathfinding, drawFaces, showUpdatingObstacles, - drawAutoZoom, immutableFaces, drawAvoidObjects, disableFixes, recordMovableData + drawAutoZoom, immutableFaces, drawAvoidObjects, disableFixes, recordMovableData, recordEventData )), 0, 0, -30); public Button createToggle(String text, Consumer setter, Producer getter) diff --git a/src/main/java/tanks/gui/screen/ScreenGame.java b/src/main/java/tanks/gui/screen/ScreenGame.java index 597d3dfd..4b335343 100644 --- a/src/main/java/tanks/gui/screen/ScreenGame.java +++ b/src/main/java/tanks/gui/screen/ScreenGame.java @@ -2773,7 +2773,7 @@ public void draw() } } - if (Crusade.crusadeMode) + if (Crusade.crusadeMode && Crusade.currentCrusade != null /* lag */) { if (Level.isDark()) Drawing.drawing.setColor(255, 255, 255, 127); diff --git a/src/main/java/tanks/network/ClientHandler.java b/src/main/java/tanks/network/ClientHandler.java index 87550097..fe9d4b78 100644 --- a/src/main/java/tanks/network/ClientHandler.java +++ b/src/main/java/tanks/network/ClientHandler.java @@ -117,8 +117,10 @@ public synchronized void sendEvent(INetworkEvent e, boolean flush) e.write(b); ByteBuf b2 = ctx.channel().alloc().buffer(); - b2.writeInt(b.readableBytes()); - MessageReader.upstreamBytes += b.readableBytes() + 4; + int rb = b.readableBytes(); + b2.writeInt(rb); + MessageReader.upstreamBytes += rb + 4; + MessageReader.eventBytes.put(i, MessageReader.eventBytes.getOrDefault(i, 0) + rb + 4); MessageReader.updateLastMessageTime(); b2.writeBytes(b); diff --git a/src/main/java/tanks/network/MessageReader.java b/src/main/java/tanks/network/MessageReader.java index acebde3a..d2a9de85 100644 --- a/src/main/java/tanks/network/MessageReader.java +++ b/src/main/java/tanks/network/MessageReader.java @@ -1,14 +1,14 @@ package tanks.network; +import io.netty.buffer.ByteBuf; import tanks.Game; -import tanks.gui.screen.ScreenPartyHost; -import tanks.gui.screen.ScreenPartyLobby; +import tanks.gui.screen.*; import tanks.network.event.*; import tanks.network.event.online.IOnlineServerEvent; +import tanks.translation.Translation; -import io.netty.buffer.ByteBuf; - -import java.util.UUID; +import java.util.*; +import java.util.stream.Collectors; public class MessageReader { @@ -18,8 +18,11 @@ public class MessageReader public static int upstreamBytes; public static long lastMessageTime; + public static HashMap eventBytes = new HashMap<>(); + public static int upstreamBytesPerSec; public static int downstreamBytesPerSec; + public static List eventBytesPerSecText = new ArrayList<>(); public boolean useQueue = true; public ByteBuf queue; @@ -33,7 +36,6 @@ public void queueMessage(ClientHandler c, ByteBuf m, UUID clientID) this.queueMessage(null, c, m, clientID); } - public void queueMessage(ServerHandler s, ByteBuf m, UUID clientID) { this.queueMessage(s, null, m, clientID); @@ -215,6 +217,11 @@ public static void updateLastMessageTime() lastMessageTime = time; upstreamBytesPerSec = upstreamBytes; downstreamBytesPerSec = downstreamBytes; + eventBytesPerSecText = eventBytes.entrySet().stream() + .sorted(Comparator.comparingInt(Map.Entry::getValue)) + .map(entry -> Translation.translate("%s: %.2f KB/s", NetworkEventMap.get(entry.getKey()).getSimpleName(), entry.getValue() / 1024.)) + .collect(Collectors.toList()); + eventBytes.clear(); upstreamBytes = 0; downstreamBytes = 0; } diff --git a/src/main/java/tanks/network/NetworkEventMap.java b/src/main/java/tanks/network/NetworkEventMap.java index 7d659890..2896c44d 100644 --- a/src/main/java/tanks/network/NetworkEventMap.java +++ b/src/main/java/tanks/network/NetworkEventMap.java @@ -1,5 +1,6 @@ package tanks.network; +import io.netty.buffer.*; import tanks.Game; import tanks.network.event.INetworkEvent; @@ -13,18 +14,45 @@ public class NetworkEventMap public static void register(Class c) { + map1.put(id, c); + map2.put(c, id); + id++; + + if (!Game.debug) + return; + try { c.getConstructor(); } catch (Exception e) { - Game.exitToCrash(new RuntimeException("The network event " + c + " does not have a no-parameter constructor. Please give it one.")); + Game.exitToCrash(new RuntimeException("The network event " + c + " does not have a no-parameter" + + " constructor. Please give it one.")); } - map1.put(id, c); - map2.put(c, id); - id++; + ByteBuf b = Unpooled.buffer(); + INetworkEvent e; + try + { + e = c.getConstructor().newInstance(); + e.write(b); + e.read(b); + if (b.readableBytes() > 0) + throw new IndexOutOfBoundsException("Readable bytes > 0 after read"); + } + catch (ReflectionHandle.MissingHandleException exc) + { + throw new RuntimeException("Missing handle in " + c.getSimpleName() + ": " + exc.getMessage()); + } + catch (IndexOutOfBoundsException exc) + { + throw new RuntimeException("Read does not match write in " + c.getSimpleName() + ": " + exc.getMessage()); + } + catch (Exception ignored) + { + + } } public static int get(Class c) diff --git a/src/main/java/tanks/network/NetworkUtils.java b/src/main/java/tanks/network/NetworkUtils.java index 5ee834c8..04f42835 100644 --- a/src/main/java/tanks/network/NetworkUtils.java +++ b/src/main/java/tanks/network/NetworkUtils.java @@ -1,11 +1,9 @@ package tanks.network; import basewindow.Color; - import io.netty.buffer.ByteBuf; -import java.nio.charset.Charset; -import java.nio.charset.StandardCharsets; +import java.nio.charset.*; public class NetworkUtils { diff --git a/src/main/java/tanks/network/ReflectionHandle.java b/src/main/java/tanks/network/ReflectionHandle.java new file mode 100644 index 00000000..7e4b2301 --- /dev/null +++ b/src/main/java/tanks/network/ReflectionHandle.java @@ -0,0 +1,168 @@ +package tanks.network; + +import tanks.*; + +import java.lang.invoke.*; +import java.lang.reflect.*; +import java.util.*; + +/** + * A class which allows users to define custom functions based on field type + * to deserialize and serialize objects along a stream. + * */ +public class ReflectionHandle +{ + protected static final MethodHandles.Lookup lookup = MethodHandles.lookup(); + + public Map, List> fieldsInClass = new HashMap<>(); + public Map, TypeHandle> typeHandles = new HashMap<>(); + + public Function fieldFilter = f -> true; + + public boolean superclassFields = true; + + public void readObject(S stream, Object object) + { + for (FieldHandle f : getFieldsInClass(object.getClass())) + f.write(object, getTypeHandle(f.field.getType()).read(stream)); + } + + public void writeObject(S stream, Object object) + { + for (FieldHandle f : getFieldsInClass(object.getClass())) + getTypeHandle(f.field.getType()).write(stream, f.read(object)); + } + + @SuppressWarnings("unchecked") + public TypeHandle getTypeHandle(Class type) + { + TypeHandle h = (TypeHandle) typeHandles.get(type); + if (h != null) + return h; + + throw new MissingHandleException("Failed to find type handle" + + " for " + type + ". Either register a type handle for it, or modify the fieldFilter to skip" + + " registering the field."); + } + + public ReflectionHandle registerTypeHandle(Class castType, Function read, BiConsumer write) + { + return registerTypeHandle(castType, castType, read, write); + } + + public ReflectionHandle registerTypeHandle(Class originalType, Class castType, Function read, BiConsumer write) + { + typeHandles.put(originalType, new TypeHandle<>(castType, read, write)); + return this; + } + + public List getFieldsInClass(Class c) + { + return fieldsInClass.computeIfAbsent(c, k -> + { + List fields = new ArrayList<>(); + Class clazz = c; + + do + { + for (Field f : clazz.getDeclaredFields()) + { + if (shouldCheckField(f)) + fields.add(new FieldHandle(f)); + } + clazz = clazz.getSuperclass(); + } while (superclassFields && clazz != null && clazz != Object.class); + return fields; + }); + } + + public ReflectionHandle setFieldFilter(Function fieldFilter) + { + this.fieldFilter = fieldFilter; + return this; + } + + public boolean shouldCheckField(Field f) + { + return !Modifier.isStatic(f.getModifiers()) && fieldFilter.apply(f); + } + + public static class FieldHandle + { + protected final MethodHandle read, write; + protected final Field field; + + public FieldHandle(Field field) + { + try + { + field.setAccessible(true); + this.read = lookup.unreflectGetter(field); + this.write = lookup.unreflectSetter(field); + + this.field = field; + } + catch (IllegalAccessException e) + { + throw new RuntimeException(this + ": " + e); + } + } + + public Object read(Object obj) + { + try + { + return this.read.invoke(obj); + } + catch (Throwable e) + { + throw new RuntimeException(e); + } + } + + public void write(Object obj, Object value) + { + try + { + this.write.invoke(obj, value); + } + catch (Throwable e) + { + throw new RuntimeException(e); + } + } + } + + public static class TypeHandle + { + protected final Class castType; + protected Function read; + protected BiConsumer write; + + protected TypeHandle(Class castType, Function readFunc, BiConsumer writeFunc) + { + this.castType = castType; + this.read = readFunc; + this.write = writeFunc; + } + + public T read(I object) + { + return castType.cast(read.apply(object)); + } + + @SuppressWarnings("unchecked") + public void write(I stream, Object object) + { + write.accept(stream, (T) object); + } + } + + public static class MissingHandleException extends RuntimeException + { + public MissingHandleException(String message) + { + super(message); + } + } +} diff --git a/src/main/java/tanks/network/ServerHandler.java b/src/main/java/tanks/network/ServerHandler.java index 48602dfb..4b7aad7a 100644 --- a/src/main/java/tanks/network/ServerHandler.java +++ b/src/main/java/tanks/network/ServerHandler.java @@ -223,16 +223,8 @@ public synchronized void sendEvent(INetworkEvent e) this.sendEvent(e, true); } - public HashMap eventFrequencies = new HashMap<>(); - public synchronized void sendEvent(INetworkEvent e, boolean flush) { - String n = e.getClass().getSimpleName(); - if (!eventFrequencies.containsKey(n)) - eventFrequencies.put(n, 0); - - eventFrequencies.put(n, eventFrequencies.get(n) + 1); - if (steamID != null) { SteamNetworking.P2PSend sendType = SteamNetworking.P2PSend.ReliableWithBuffering; @@ -254,8 +246,10 @@ public synchronized void sendEvent(INetworkEvent e, boolean flush) e.write(b); ByteBuf b2 = ctx.channel().alloc().buffer(); - b2.writeInt(b.readableBytes()); - MessageReader.upstreamBytes += b.readableBytes() + 4; + int rb = b.readableBytes(); + b2.writeInt(rb); + MessageReader.upstreamBytes += rb + 4; + MessageReader.eventBytes.put(i, MessageReader.eventBytes.getOrDefault(i, 0) + rb + 4); MessageReader.updateLastMessageTime(); b2.writeBytes(b); diff --git a/src/main/java/tanks/network/event/EventAddObstacleBullet.java b/src/main/java/tanks/network/event/EventAddObstacleBullet.java index d8235fd7..84364a4c 100644 --- a/src/main/java/tanks/network/event/EventAddObstacleBullet.java +++ b/src/main/java/tanks/network/event/EventAddObstacleBullet.java @@ -1,10 +1,7 @@ package tanks.network.event; import tanks.Game; -import tanks.obstacle.Obstacle; -import tanks.obstacle.ObstacleStackable; - -import io.netty.buffer.ByteBuf; +import tanks.obstacle.*; public class EventAddObstacleBullet extends PersonalEvent { @@ -30,28 +27,6 @@ public EventAddObstacleBullet(Obstacle o, boolean success) this.success = success; } - @Override - public void write(ByteBuf b) - { - b.writeDouble(this.posX); - b.writeDouble(this.posY); - b.writeDouble(this.colorR); - b.writeDouble(this.colorG); - b.writeDouble(this.colorB); - b.writeBoolean(this.success); - } - - @Override - public void read(ByteBuf b) - { - this.posX = b.readDouble(); - this.posY = b.readDouble(); - this.colorR = b.readDouble(); - this.colorG = b.readDouble(); - this.colorB = b.readDouble(); - this.success = b.readBoolean(); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventAirdropTank.java b/src/main/java/tanks/network/event/EventAirdropTank.java index 2ed811fd..c57e0a2a 100644 --- a/src/main/java/tanks/network/event/EventAirdropTank.java +++ b/src/main/java/tanks/network/event/EventAirdropTank.java @@ -46,22 +46,4 @@ public void execute() Game.movables.add(new Crate(new TankRemote(t), height)); } } - - @Override - public void read(ByteBuf b) - { - super.read(b); - NetworkUtils.readColor(b, this.color); - NetworkUtils.readColor(b, this.color2); - this.height = b.readDouble(); - } - - @Override - public void write(ByteBuf b) - { - super.write(b); - NetworkUtils.writeColor(b, this.color); - NetworkUtils.writeColor(b, this.color2); - b.writeDouble(this.height); - } } diff --git a/src/main/java/tanks/network/event/EventAnnounceConnection.java b/src/main/java/tanks/network/event/EventAnnounceConnection.java index bea8266f..958d499c 100644 --- a/src/main/java/tanks/network/event/EventAnnounceConnection.java +++ b/src/main/java/tanks/network/event/EventAnnounceConnection.java @@ -2,9 +2,6 @@ import tanks.gui.screen.ScreenPartyLobby; import tanks.network.ConnectedPlayer; -import tanks.network.NetworkUtils; - -import io.netty.buffer.ByteBuf; import java.util.UUID; @@ -65,23 +62,4 @@ public void execute() } } } - - @Override - public void read(ByteBuf b) - { - this.joined = b.readBoolean(); - this.clientIdTarget = UUID.fromString(NetworkUtils.readString(b)); - this.name = NetworkUtils.readString(b); - this.isBot = b.readBoolean(); - } - - @Override - public void write(ByteBuf b) - { - b.writeBoolean(this.joined); - NetworkUtils.writeString(b, this.clientIdTarget.toString()); - NetworkUtils.writeString(b, this.name); - b.writeBoolean(this.isBot); - } - } diff --git a/src/main/java/tanks/network/event/EventArcadeBonuses.java b/src/main/java/tanks/network/event/EventArcadeBonuses.java index 3baa3db9..5a74f1c1 100644 --- a/src/main/java/tanks/network/event/EventArcadeBonuses.java +++ b/src/main/java/tanks/network/event/EventArcadeBonuses.java @@ -24,6 +24,22 @@ public EventArcadeBonuses(ScreenArcadeBonuses.Bonus b1, ScreenArcadeBonuses.Bonu this.bonus3 = b3; } + @Override + public void write(ByteBuf b) + { + writeBonus(bonus1, b); + writeBonus(bonus2, b); + writeBonus(bonus3, b); + } + + @Override + public void read(ByteBuf b) + { + bonus1 = readBonus(b); + bonus2 = readBonus(b); + bonus3 = readBonus(b); + } + public void writeBonus(ScreenArcadeBonuses.Bonus bonus, ByteBuf b) { NetworkUtils.writeString(b, bonus.name); @@ -38,23 +54,6 @@ public ScreenArcadeBonuses.Bonus readBonus(ByteBuf b) return new ScreenArcadeBonuses.Bonus(NetworkUtils.readString(b), b.readInt(), b.readDouble(), b.readDouble(), b.readDouble()); } - - @Override - public void write(ByteBuf b) - { - writeBonus(bonus1, b); - writeBonus(bonus2, b); - writeBonus(bonus3, b); - } - - @Override - public void read(ByteBuf b) - { - this.bonus1 = readBonus(b); - this.bonus2 = readBonus(b); - this.bonus3 = readBonus(b); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventArcadeClearMovables.java b/src/main/java/tanks/network/event/EventArcadeClearMovables.java index 3861cfc1..84d05bf9 100644 --- a/src/main/java/tanks/network/event/EventArcadeClearMovables.java +++ b/src/main/java/tanks/network/event/EventArcadeClearMovables.java @@ -1,26 +1,10 @@ package tanks.network.event; -import tanks.Game; -import tanks.Movable; +import tanks.*; import tanks.tank.*; -import io.netty.buffer.ByteBuf; - public class EventArcadeClearMovables extends PersonalEvent { - - @Override - public void write(ByteBuf b) - { - - } - - @Override - public void read(ByteBuf b) - { - - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventArcadeEnd.java b/src/main/java/tanks/network/event/EventArcadeEnd.java index b7e0238c..ac9c7301 100644 --- a/src/main/java/tanks/network/event/EventArcadeEnd.java +++ b/src/main/java/tanks/network/event/EventArcadeEnd.java @@ -19,18 +19,6 @@ public EventArcadeEnd() } - @Override - public void write(ByteBuf b) - { - b.writeBoolean(win); - } - - @Override - public void read(ByteBuf b) - { - win = b.readBoolean(); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventArcadeFrenzy.java b/src/main/java/tanks/network/event/EventArcadeFrenzy.java index ae8d582d..1cd90c42 100644 --- a/src/main/java/tanks/network/event/EventArcadeFrenzy.java +++ b/src/main/java/tanks/network/event/EventArcadeFrenzy.java @@ -1,25 +1,10 @@ package tanks.network.event; -import tanks.Drawing; -import tanks.Game; +import tanks.*; import tanks.minigames.Arcade; -import io.netty.buffer.ByteBuf; - public class EventArcadeFrenzy extends PersonalEvent { - @Override - public void write(ByteBuf b) - { - - } - - @Override - public void read(ByteBuf b) - { - - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventArcadeHit.java b/src/main/java/tanks/network/event/EventArcadeHit.java index 73f78dd4..ae5f7473 100644 --- a/src/main/java/tanks/network/event/EventArcadeHit.java +++ b/src/main/java/tanks/network/event/EventArcadeHit.java @@ -27,26 +27,6 @@ public EventArcadeHit() } - @Override - public void write(ByteBuf b) - { - b.writeInt(power); - b.writeDouble(posX); - b.writeDouble(posY); - b.writeDouble(posZ); - b.writeInt(points); - } - - @Override - public void read(ByteBuf b) - { - power = b.readInt(); - posX = b.readDouble(); - posY = b.readDouble(); - posZ = b.readDouble(); - points = b.readInt(); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventArcadeRampage.java b/src/main/java/tanks/network/event/EventArcadeRampage.java index 6b00d9c2..e82fc1ee 100644 --- a/src/main/java/tanks/network/event/EventArcadeRampage.java +++ b/src/main/java/tanks/network/event/EventArcadeRampage.java @@ -19,18 +19,6 @@ public EventArcadeRampage() } - @Override - public void write(ByteBuf b) - { - b.writeInt(power); - } - - @Override - public void read(ByteBuf b) - { - power = b.readInt(); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventBeginCrusade.java b/src/main/java/tanks/network/event/EventBeginCrusade.java index 617f320d..f624022a 100644 --- a/src/main/java/tanks/network/event/EventBeginCrusade.java +++ b/src/main/java/tanks/network/event/EventBeginCrusade.java @@ -12,18 +12,6 @@ public EventBeginCrusade() } - @Override - public void write(ByteBuf b) - { - - } - - @Override - public void read(ByteBuf b) - { - - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventBeginLevelCountdown.java b/src/main/java/tanks/network/event/EventBeginLevelCountdown.java index afb52faf..7fa414b5 100644 --- a/src/main/java/tanks/network/event/EventBeginLevelCountdown.java +++ b/src/main/java/tanks/network/event/EventBeginLevelCountdown.java @@ -22,16 +22,4 @@ public void execute() ((ScreenGame) Game.screen).cancelCountdown = false; } } - - @Override - public void write(ByteBuf b) - { - - } - - @Override - public void read(ByteBuf b) - { - - } } diff --git a/src/main/java/tanks/network/event/EventBulletAddAttributeModifier.java b/src/main/java/tanks/network/event/EventBulletAddAttributeModifier.java index 0ab26972..f26071e9 100644 --- a/src/main/java/tanks/network/event/EventBulletAddAttributeModifier.java +++ b/src/main/java/tanks/network/event/EventBulletAddAttributeModifier.java @@ -2,7 +2,6 @@ import tanks.attribute.AttributeModifier; import tanks.bullet.Bullet; -import tanks.network.NetworkUtils; import io.netty.buffer.ByteBuf; @@ -43,38 +42,6 @@ public EventBulletAddAttributeModifier(Bullet b, AttributeModifier m, boolean un this.unduplicate = unduplicate; } - @Override - public void write(ByteBuf b) - { - b.writeInt(this.bullet); - NetworkUtils.writeString(b, this.name); - b.writeDouble(this.duration); - b.writeDouble(this.deteriorationAge); - b.writeDouble(this.warmupAge); - b.writeDouble(this.value); - NetworkUtils.writeString(b, this.effect); - b.writeDouble(this.age); - NetworkUtils.writeString(b, this.type); - b.writeBoolean(this.expired); - b.writeBoolean(this.unduplicate); - } - - @Override - public void read(ByteBuf b) - { - this.bullet = b.readInt(); - this.name = NetworkUtils.readString(b); - this.duration = b.readDouble(); - this.deteriorationAge = b.readDouble(); - this.warmupAge = b.readDouble(); - this.value = b.readDouble(); - this.effect = NetworkUtils.readString(b); - this.age = b.readDouble(); - this.type = NetworkUtils.readString(b); - this.expired = b.readBoolean(); - this.unduplicate = b.readBoolean(); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventBulletBounce.java b/src/main/java/tanks/network/event/EventBulletBounce.java index b021566b..8dfa1013 100644 --- a/src/main/java/tanks/network/event/EventBulletBounce.java +++ b/src/main/java/tanks/network/event/EventBulletBounce.java @@ -26,26 +26,6 @@ public EventBulletBounce(Bullet b) this.vY = b.vY; } - @Override - public void write(ByteBuf b) - { - b.writeInt(this.bullet); - b.writeDouble(this.posX); - b.writeDouble(this.posY); - b.writeDouble(this.vX); - b.writeDouble(this.vY); - } - - @Override - public void read(ByteBuf b) - { - this.bullet = b.readInt(); - this.posX = b.readDouble(); - this.posY = b.readDouble(); - this.vX = b.readDouble(); - this.vY = b.readDouble(); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventBulletDestroyed.java b/src/main/java/tanks/network/event/EventBulletDestroyed.java index 34198bea..b714a5f9 100644 --- a/src/main/java/tanks/network/event/EventBulletDestroyed.java +++ b/src/main/java/tanks/network/event/EventBulletDestroyed.java @@ -50,20 +50,4 @@ public void execute() Bullet.idMap.remove(b.networkID); } } - - @Override - public void write(ByteBuf b) - { - b.writeInt(this.bullet); - b.writeDouble(this.posX); - b.writeDouble(this.posY); - } - - @Override - public void read(ByteBuf b) - { - this.bullet = b.readInt(); - this.posX = b.readDouble(); - this.posY = b.readDouble(); - } } diff --git a/src/main/java/tanks/network/event/EventBulletInstantWaypoint.java b/src/main/java/tanks/network/event/EventBulletInstantWaypoint.java index 3b6be3d9..6227f33b 100644 --- a/src/main/java/tanks/network/event/EventBulletInstantWaypoint.java +++ b/src/main/java/tanks/network/event/EventBulletInstantWaypoint.java @@ -24,22 +24,6 @@ public EventBulletInstantWaypoint(BulletInstant b, double x, double y) this.posY = y; } - @Override - public void write(ByteBuf b) - { - b.writeInt(this.bullet); - b.writeDouble(this.posX); - b.writeDouble(this.posY); - } - - @Override - public void read(ByteBuf b) - { - this.bullet = b.readInt(); - this.posX = b.readDouble(); - this.posY = b.readDouble(); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventBulletReboundIndicator.java b/src/main/java/tanks/network/event/EventBulletReboundIndicator.java index 97be2fc1..b1aed27d 100644 --- a/src/main/java/tanks/network/event/EventBulletReboundIndicator.java +++ b/src/main/java/tanks/network/event/EventBulletReboundIndicator.java @@ -1,14 +1,13 @@ package tanks.network.event; +import basewindow.Color; import tanks.Game; import tanks.bullet.BulletReboundIndicator; -import tanks.network.NetworkUtils; - -import io.netty.buffer.ByteBuf; public class EventBulletReboundIndicator extends PersonalEvent { - public BulletReboundIndicator indicator; + public double posX, posY, posZ, size, maxAge; + public Color color1, color2; public EventBulletReboundIndicator() { @@ -17,42 +16,27 @@ public EventBulletReboundIndicator() public EventBulletReboundIndicator(BulletReboundIndicator b) { - this.indicator = b; - } - - @Override - public void write(ByteBuf b) - { - b.writeDouble(indicator.posX); - b.writeDouble(indicator.posY); - b.writeDouble(indicator.posZ); - b.writeDouble(indicator.size); - b.writeDouble(indicator.maxAge); - NetworkUtils.writeColor(b, indicator.color); - NetworkUtils.writeColor(b, indicator.color2); - } - - @Override - public void read(ByteBuf b) - { - this.indicator = new BulletReboundIndicator( - b.readDouble(), - b.readDouble(), - b.readDouble(), - b.readDouble(), - b.readDouble(), - b.readDouble(), - b.readDouble(), - b.readDouble(), - b.readDouble(), - b.readDouble(), - b.readDouble()); + this.posX = b.posX; + this.posY = b.posY; + this.posZ = b.posZ; + this.size = b.size; + this.maxAge = b.maxAge; + this.color1 = b.color; + this.color2 = b.color2; } @Override public void execute() { if (this.clientID == null) - Game.movables.add(indicator); + Game.movables.add(new BulletReboundIndicator( + this.posX, + this.posY, + this.posZ, + this.size, + this.maxAge, + this.color1, + this.color2 + )); } } diff --git a/src/main/java/tanks/network/event/EventBulletStunEffect.java b/src/main/java/tanks/network/event/EventBulletStunEffect.java index 53c03d07..8049d24d 100644 --- a/src/main/java/tanks/network/event/EventBulletStunEffect.java +++ b/src/main/java/tanks/network/event/EventBulletStunEffect.java @@ -43,18 +43,4 @@ public void execute() } } } - - @Override - public void write(ByteBuf b) - { - b.writeInt(this.tank); - b.writeDouble(this.length); - } - - @Override - public void read(ByteBuf b) - { - this.tank = b.readInt(); - this.length = b.readDouble(); - } } diff --git a/src/main/java/tanks/network/event/EventBulletUpdate.java b/src/main/java/tanks/network/event/EventBulletUpdate.java index af11e355..1689a6df 100644 --- a/src/main/java/tanks/network/event/EventBulletUpdate.java +++ b/src/main/java/tanks/network/event/EventBulletUpdate.java @@ -26,26 +26,6 @@ public EventBulletUpdate(Bullet b) this.vY = b.vY; } - @Override - public void write(ByteBuf b) - { - b.writeInt(this.bullet); - b.writeDouble(this.posX); - b.writeDouble(this.posY); - b.writeDouble(this.vX); - b.writeDouble(this.vY); - } - - @Override - public void read(ByteBuf b) - { - this.bullet = b.readInt(); - this.posX = b.readDouble(); - this.posY = b.readDouble(); - this.vX = b.readDouble(); - this.vY = b.readDouble(); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventBulletUpdateTarget.java b/src/main/java/tanks/network/event/EventBulletUpdateTarget.java index 57827bc1..f6e25913 100644 --- a/src/main/java/tanks/network/event/EventBulletUpdateTarget.java +++ b/src/main/java/tanks/network/event/EventBulletUpdateTarget.java @@ -24,21 +24,6 @@ public EventBulletUpdateTarget(Bullet b) else this.target = b.homingTarget.networkID; } - - @Override - public void write(ByteBuf b) - { - b.writeInt(this.bullet); - b.writeInt(this.target); - } - - @Override - public void read(ByteBuf b) - { - this.bullet = b.readInt(); - this.target = b.readInt(); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventChangeBackgroundColor.java b/src/main/java/tanks/network/event/EventChangeBackgroundColor.java index 55d70131..5128a9db 100644 --- a/src/main/java/tanks/network/event/EventChangeBackgroundColor.java +++ b/src/main/java/tanks/network/event/EventChangeBackgroundColor.java @@ -33,30 +33,6 @@ public EventChangeBackgroundColor(int r, int g, int b, int noiseR, int noiseG, i this.noiseB = noiseB; } - @Override - public void write(ByteBuf b) - { - b.writeInt(this.colorR); - b.writeInt(this.colorG); - b.writeInt(this.colorB); - - b.writeInt(this.noiseR); - b.writeInt(this.noiseG); - b.writeInt(this.noiseB); - } - - @Override - public void read(ByteBuf b) - { - this.colorR = b.readInt(); - this.colorG = b.readInt(); - this.colorB = b.readInt(); - - this.noiseR = b.readInt(); - this.noiseG = b.readInt(); - this.noiseB = b.readInt(); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventChat.java b/src/main/java/tanks/network/event/EventChat.java index ac1e888c..4821aaff 100644 --- a/src/main/java/tanks/network/event/EventChat.java +++ b/src/main/java/tanks/network/event/EventChat.java @@ -53,18 +53,6 @@ else if (ScreenPartyHost.activeScreen.mutedPlayers.contains(this.clientID)) } - @Override - public void write(ByteBuf b) - { - NetworkUtils.writeString(b, this.message); - } - - @Override - public void read(ByteBuf b) - { - this.message = NetworkUtils.readString(b); - } - public static boolean isStringValid(String s) { for (int i = 0; i < s.length(); i++) diff --git a/src/main/java/tanks/network/event/EventChatClear.java b/src/main/java/tanks/network/event/EventChatClear.java index 69e93e93..d664cc5a 100644 --- a/src/main/java/tanks/network/event/EventChatClear.java +++ b/src/main/java/tanks/network/event/EventChatClear.java @@ -19,16 +19,4 @@ public void execute() ScreenPartyLobby.chat.clear(); } } - - @Override - public void write(ByteBuf b) - { - - } - - @Override - public void read(ByteBuf b) - { - - } } diff --git a/src/main/java/tanks/network/event/EventClearShop.java b/src/main/java/tanks/network/event/EventClearShop.java index d669e58d..345eccb0 100644 --- a/src/main/java/tanks/network/event/EventClearShop.java +++ b/src/main/java/tanks/network/event/EventClearShop.java @@ -15,18 +15,6 @@ public EventClearShop() } - @Override - public void write(ByteBuf b) - { - - } - - @Override - public void read(ByteBuf b) - { - - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventConnectionSuccess.java b/src/main/java/tanks/network/event/EventConnectionSuccess.java index 2cedcf02..9e42cdb3 100644 --- a/src/main/java/tanks/network/event/EventConnectionSuccess.java +++ b/src/main/java/tanks/network/event/EventConnectionSuccess.java @@ -21,16 +21,4 @@ public void execute() Game.eventsOut.add(new EventSendTankColors(Game.player)); } } - - @Override - public void write(ByteBuf b) - { - - } - - @Override - public void read(ByteBuf b) - { - - } } diff --git a/src/main/java/tanks/network/event/EventCreateFreezeEffect.java b/src/main/java/tanks/network/event/EventCreateFreezeEffect.java index 81a44496..82859836 100644 --- a/src/main/java/tanks/network/event/EventCreateFreezeEffect.java +++ b/src/main/java/tanks/network/event/EventCreateFreezeEffect.java @@ -1,9 +1,6 @@ package tanks.network.event; -import tanks.AreaEffectFreeze; -import tanks.Game; - -import io.netty.buffer.ByteBuf; +import tanks.*; public class EventCreateFreezeEffect extends PersonalEvent { @@ -21,21 +18,6 @@ public EventCreateFreezeEffect(AreaEffectFreeze a) this.posY = a.posY; } - - @Override - public void write(ByteBuf b) - { - b.writeDouble(posX); - b.writeDouble(posY); - } - - @Override - public void read(ByteBuf b) - { - posX = b.readDouble(); - posY = b.readDouble(); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventEnterLevel.java b/src/main/java/tanks/network/event/EventEnterLevel.java index 71af07ba..d31efc31 100644 --- a/src/main/java/tanks/network/event/EventEnterLevel.java +++ b/src/main/java/tanks/network/event/EventEnterLevel.java @@ -30,16 +30,4 @@ public void execute() Crusade.currentCrusade = null; } } - - @Override - public void write(ByteBuf b) - { - - } - - @Override - public void read(ByteBuf b) - { - - } } diff --git a/src/main/java/tanks/network/event/EventExplosion.java b/src/main/java/tanks/network/event/EventExplosion.java index a9b499be..e91a578c 100644 --- a/src/main/java/tanks/network/event/EventExplosion.java +++ b/src/main/java/tanks/network/event/EventExplosion.java @@ -54,30 +54,4 @@ public void execute() e.explode(); } } - - @Override - public void write(ByteBuf b) - { - b.writeDouble(this.posX); - b.writeDouble(this.posY); - b.writeDouble(this.radius); - b.writeDouble(this.kbRadius); - b.writeDouble(this.damage); - b.writeBoolean(this.destroysObstacles); - b.writeDouble(this.stunRadius); - b.writeDouble(this.stunTime); - } - - @Override - public void read(ByteBuf b) - { - this.posX = b.readDouble(); - this.posY = b.readDouble(); - this.radius = b.readDouble(); - this.kbRadius = b.readDouble(); - this.damage = b.readDouble(); - this.destroysObstacles = b.readBoolean(); - this.stunRadius = b.readDouble(); - this.stunTime = b.readDouble(); - } } diff --git a/src/main/java/tanks/network/event/EventItemDrop.java b/src/main/java/tanks/network/event/EventItemDrop.java index 24871ccf..798d2c3e 100644 --- a/src/main/java/tanks/network/event/EventItemDrop.java +++ b/src/main/java/tanks/network/event/EventItemDrop.java @@ -27,25 +27,6 @@ public EventItemDrop(ItemDrop id) this.posY = id.posY; } - - @Override - public void write(ByteBuf b) - { - b.writeInt(this.id); - NetworkUtils.writeString(b, item); - b.writeDouble(this.posX); - b.writeDouble(this.posY); - } - - @Override - public void read(ByteBuf b) - { - this.id = b.readInt(); - this.item = NetworkUtils.readString(b); - this.posX = b.readDouble(); - this.posY = b.readDouble(); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventItemDropDestroy.java b/src/main/java/tanks/network/event/EventItemDropDestroy.java index 9704ed4f..8a28a85a 100644 --- a/src/main/java/tanks/network/event/EventItemDropDestroy.java +++ b/src/main/java/tanks/network/event/EventItemDropDestroy.java @@ -18,18 +18,6 @@ public EventItemDropDestroy(ItemDrop id) this.itemDrop = id.networkID; } - @Override - public void write(ByteBuf b) - { - b.writeInt(this.itemDrop); - } - - @Override - public void read(ByteBuf b) - { - this.itemDrop = b.readInt(); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventItemPickup.java b/src/main/java/tanks/network/event/EventItemPickup.java index 28008cfb..c9d4741c 100644 --- a/src/main/java/tanks/network/event/EventItemPickup.java +++ b/src/main/java/tanks/network/event/EventItemPickup.java @@ -22,20 +22,6 @@ public EventItemPickup(ItemDrop id, Tank pickup) this.tank = pickup.networkID; } - @Override - public void write(ByteBuf b) - { - b.writeInt(this.itemDrop); - b.writeInt(this.tank); - } - - @Override - public void read(ByteBuf b) - { - this.itemDrop = b.readInt(); - this.tank = b.readInt(); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventKick.java b/src/main/java/tanks/network/event/EventKick.java index 27c77f01..3c39493b 100644 --- a/src/main/java/tanks/network/event/EventKick.java +++ b/src/main/java/tanks/network/event/EventKick.java @@ -1,12 +1,8 @@ package tanks.network.event; import tanks.Game; -import tanks.gui.screen.ScreenKicked; -import tanks.gui.screen.ScreenPartyLobby; +import tanks.gui.screen.*; import tanks.network.Client; -import tanks.network.NetworkUtils; - -import io.netty.buffer.ByteBuf; public class EventKick extends PersonalEvent { @@ -36,16 +32,4 @@ public void execute() Game.screen = new ScreenKicked(reason); } } - - @Override - public void write(ByteBuf b) - { - NetworkUtils.writeString(b, this.reason); - } - - @Override - public void read(ByteBuf b) - { - this.reason = NetworkUtils.readString(b); - } } diff --git a/src/main/java/tanks/network/event/EventLayMine.java b/src/main/java/tanks/network/event/EventLayMine.java index 540c7f52..a5d99119 100644 --- a/src/main/java/tanks/network/event/EventLayMine.java +++ b/src/main/java/tanks/network/event/EventLayMine.java @@ -1,12 +1,9 @@ package tanks.network.event; import tanks.Game; -import tanks.item.Item; -import tanks.item.ItemMine; +import tanks.item.*; import tanks.tank.*; -import io.netty.buffer.ByteBuf; - public class EventLayMine extends PersonalEvent { public int id; @@ -81,24 +78,4 @@ else if (t2 instanceof TankPlayer) Mine.idMap.put(id, m); } } - - @Override - public void write(ByteBuf b) - { - b.writeInt(this.id); - b.writeInt(this.tank); - b.writeDouble(this.posX); - b.writeDouble(this.posY); - b.writeInt(this.item); - } - - @Override - public void read(ByteBuf b) - { - this.id = b.readInt(); - this.tank = b.readInt(); - this.posX = b.readDouble(); - this.posY = b.readDouble(); - this.item = b.readInt(); - } } diff --git a/src/main/java/tanks/network/event/EventLevelExit.java b/src/main/java/tanks/network/event/EventLevelExit.java index 26536008..365c32f4 100644 --- a/src/main/java/tanks/network/event/EventLevelExit.java +++ b/src/main/java/tanks/network/event/EventLevelExit.java @@ -47,16 +47,4 @@ public void execute() System.gc(); } - - @Override - public void write(ByteBuf b) - { - NetworkUtils.writeString(b, this.winningTeam); - } - - @Override - public void read(ByteBuf b) - { - this.winningTeam = NetworkUtils.readString(b); - } } diff --git a/src/main/java/tanks/network/event/EventLevelFinished.java b/src/main/java/tanks/network/event/EventLevelFinished.java index 4f5e125e..3b9602e3 100644 --- a/src/main/java/tanks/network/event/EventLevelFinished.java +++ b/src/main/java/tanks/network/event/EventLevelFinished.java @@ -2,8 +2,6 @@ import tanks.gui.screen.ScreenGame; -import io.netty.buffer.ByteBuf; - public class EventLevelFinished extends PersonalEvent { public EventLevelFinished() @@ -19,10 +17,4 @@ public void execute() ScreenGame.finished = true; } - - @Override - public void write(ByteBuf b) {} - - @Override - public void read(ByteBuf b) {} } diff --git a/src/main/java/tanks/network/event/EventLevelFinishedQuick.java b/src/main/java/tanks/network/event/EventLevelFinishedQuick.java index 90c0bd85..78be7c97 100644 --- a/src/main/java/tanks/network/event/EventLevelFinishedQuick.java +++ b/src/main/java/tanks/network/event/EventLevelFinishedQuick.java @@ -2,7 +2,6 @@ import tanks.*; import tanks.gui.screen.ScreenGame; -import tanks.network.NetworkUtils; import io.netty.buffer.ByteBuf; @@ -42,16 +41,4 @@ public void execute() ScreenGame.finishedQuick = true; } - - @Override - public void write(ByteBuf b) - { - NetworkUtils.writeString(b, this.winningTeam); - } - - @Override - public void read(ByteBuf b) - { - this.winningTeam = NetworkUtils.readString(b); - } } diff --git a/src/main/java/tanks/network/event/EventLoadCrusadeHotbar.java b/src/main/java/tanks/network/event/EventLoadCrusadeHotbar.java index 6f1ff9d6..d7fc99bb 100644 --- a/src/main/java/tanks/network/event/EventLoadCrusadeHotbar.java +++ b/src/main/java/tanks/network/event/EventLoadCrusadeHotbar.java @@ -2,7 +2,6 @@ import tanks.Game; import tanks.gui.screen.ScreenGame; -import tanks.network.NetworkUtils; import tanks.translation.Translation; import io.netty.buffer.ByteBuf; @@ -12,8 +11,8 @@ public class EventLoadCrusadeHotbar extends PersonalEvent public String title; public String subtitle; - int index; - boolean translate; + public int index; + public boolean translate; public EventLoadCrusadeHotbar() { @@ -28,24 +27,6 @@ public EventLoadCrusadeHotbar(String title, String subtitle, int index, boolean this.translate = translate; } - @Override - public void write(ByteBuf b) - { - NetworkUtils.writeString(b, this.title); - NetworkUtils.writeString(b, this.subtitle); - b.writeInt(this.index); - b.writeBoolean(this.translate); - } - - @Override - public void read(ByteBuf b) - { - this.title = NetworkUtils.readString(b); - this.subtitle = NetworkUtils.readString(b); - this.index = b.readInt(); - this.translate = b.readBoolean(); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventLoadLevel.java b/src/main/java/tanks/network/event/EventLoadLevel.java index 1346a45d..372a655d 100644 --- a/src/main/java/tanks/network/event/EventLoadLevel.java +++ b/src/main/java/tanks/network/event/EventLoadLevel.java @@ -1,15 +1,10 @@ package tanks.network.event; import tanks.*; -import tanks.gui.screen.ScreenFailedToLoadLevel; -import tanks.gui.screen.ScreenPartyLobby; +import tanks.gui.screen.*; import tanks.item.Item; import tanks.minigames.Minigame; -import tanks.network.NetworkUtils; -import tanks.tank.TankAIControlled; -import tanks.tank.TankPlayer; - -import io.netty.buffer.ByteBuf; +import tanks.tank.*; import java.util.ArrayList; @@ -92,20 +87,4 @@ public void execute() Game.screen = new ScreenFailedToLoadLevel("Level is remote!", level, e, new ScreenPartyLobby()); } } - - @Override - public void write(ByteBuf b) - { - NetworkUtils.writeString(b, this.level); - b.writeDouble(this.startTime); - b.writeBoolean(this.disableFriendlyFire); - } - - @Override - public void read(ByteBuf b) - { - this.level = NetworkUtils.readString(b); - this.startTime = b.readDouble(); - this.disableFriendlyFire = b.readBoolean(); - } } diff --git a/src/main/java/tanks/network/event/EventMineChangeTimer.java b/src/main/java/tanks/network/event/EventMineChangeTimer.java index e3841b95..15c580a6 100644 --- a/src/main/java/tanks/network/event/EventMineChangeTimer.java +++ b/src/main/java/tanks/network/event/EventMineChangeTimer.java @@ -33,18 +33,4 @@ public void execute() m.timer = countdown; } - - @Override - public void write(ByteBuf b) - { - b.writeInt(this.mine); - b.writeDouble(this.countdown); - } - - @Override - public void read(ByteBuf b) - { - this.mine = b.readInt(); - this.countdown = b.readDouble(); - } } diff --git a/src/main/java/tanks/network/event/EventMineRemove.java b/src/main/java/tanks/network/event/EventMineRemove.java index 9c5015c4..c2446939 100644 --- a/src/main/java/tanks/network/event/EventMineRemove.java +++ b/src/main/java/tanks/network/event/EventMineRemove.java @@ -31,23 +31,6 @@ public void execute() return; Game.removeMovables.add(m); - - if (!Mine.freeIDs.contains(m.networkID)) - { - Mine.freeIDs.add(m.networkID); - Mine.idMap.remove(m.networkID); - } - } - - @Override - public void write(ByteBuf b) - { - b.writeInt(this.mine); - } - - @Override - public void read(ByteBuf b) - { - this.mine = b.readInt(); + Mine.idMap.remove(m.networkID); } } diff --git a/src/main/java/tanks/network/event/EventMutePlayer.java b/src/main/java/tanks/network/event/EventMutePlayer.java index 3458fa62..51d876a5 100644 --- a/src/main/java/tanks/network/event/EventMutePlayer.java +++ b/src/main/java/tanks/network/event/EventMutePlayer.java @@ -32,17 +32,4 @@ public void execute() ScreenPartyLobby.muted = muted; } } - - @Override - public void write(ByteBuf b) - { - b.writeBoolean(this.muted); - } - - @Override - public void read(ByteBuf b) - { - this.muted = b.readBoolean(); - } - } diff --git a/src/main/java/tanks/network/event/EventNudge.java b/src/main/java/tanks/network/event/EventNudge.java index f3fd18c2..34353b69 100644 --- a/src/main/java/tanks/network/event/EventNudge.java +++ b/src/main/java/tanks/network/event/EventNudge.java @@ -57,17 +57,4 @@ else if (this.clientID != null) } } } - - @Override - public void write(ByteBuf b) - { - NetworkUtils.writeString(b, this.username); - } - - @Override - public void read(ByteBuf b) - { - this.username = NetworkUtils.readString(b); - } - } diff --git a/src/main/java/tanks/network/event/EventObstacleBoostPanelEffect.java b/src/main/java/tanks/network/event/EventObstacleBoostPanelEffect.java index 76b53ae6..a399c0d1 100644 --- a/src/main/java/tanks/network/event/EventObstacleBoostPanelEffect.java +++ b/src/main/java/tanks/network/event/EventObstacleBoostPanelEffect.java @@ -38,24 +38,6 @@ public EventObstacleBoostPanelEffect() } - @Override - public void write(ByteBuf b) - { - b.writeBoolean(this.isTank); - b.writeInt(this.networkID); - b.writeDouble(this.posX); - b.writeDouble(this.posY); - } - - @Override - public void read(ByteBuf b) - { - this.isTank = b.readBoolean(); - this.networkID = b.readInt(); - this.posX = b.readDouble(); - this.posY = b.readDouble(); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventObstacleDestroy.java b/src/main/java/tanks/network/event/EventObstacleDestroy.java index a020eda2..028c3b7a 100644 --- a/src/main/java/tanks/network/event/EventObstacleDestroy.java +++ b/src/main/java/tanks/network/event/EventObstacleDestroy.java @@ -41,30 +41,6 @@ public EventObstacleDestroy(double x, double y, String name, double ex, double e this.name = name; } - @Override - public void write(ByteBuf b) - { - b.writeDouble(this.posX); - b.writeDouble(this.posY); - b.writeBoolean(this.effect); - b.writeDouble(this.effectX); - b.writeDouble(this.effectY); - b.writeDouble(this.radius); - NetworkUtils.writeString(b, this.name); - } - - @Override - public void read(ByteBuf b) - { - this.posX = b.readDouble(); - this.posY = b.readDouble(); - this.effect = b.readBoolean(); - this.effectX = b.readDouble(); - this.effectY = b.readDouble(); - this.radius = b.readDouble(); - this.name = NetworkUtils.readString(b); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventObstacleHit.java b/src/main/java/tanks/network/event/EventObstacleHit.java index 3a0c09c6..18a7fdc1 100644 --- a/src/main/java/tanks/network/event/EventObstacleHit.java +++ b/src/main/java/tanks/network/event/EventObstacleHit.java @@ -28,26 +28,6 @@ public EventObstacleHit(Obstacle o, Bullet b) this.bulletY = b.posY; } - @Override - public void write(ByteBuf b) - { - b.writeDouble(this.posX); - b.writeDouble(this.posY); - - b.writeDouble(this.bulletX); - b.writeDouble(this.bulletY); - } - - @Override - public void read(ByteBuf b) - { - this.posX = b.readDouble(); - this.posY = b.readDouble(); - - this.bulletX = b.readDouble(); - this.bulletY = b.readDouble(); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventObstacleShrubberyBurn.java b/src/main/java/tanks/network/event/EventObstacleShrubberyBurn.java index 3392a436..9b060f4e 100644 --- a/src/main/java/tanks/network/event/EventObstacleShrubberyBurn.java +++ b/src/main/java/tanks/network/event/EventObstacleShrubberyBurn.java @@ -1,11 +1,7 @@ package tanks.network.event; -import tanks.Effect; -import tanks.Game; -import tanks.obstacle.Obstacle; -import tanks.obstacle.ObstacleShrubbery; - -import io.netty.buffer.ByteBuf; +import tanks.*; +import tanks.obstacle.*; public class EventObstacleShrubberyBurn extends PersonalEvent { @@ -23,20 +19,6 @@ public EventObstacleShrubberyBurn(double x, double y) this.posY = y; } - @Override - public void write(ByteBuf b) - { - b.writeDouble(this.posX); - b.writeDouble(this.posY); - } - - @Override - public void read(ByteBuf b) - { - this.posX = b.readDouble(); - this.posY = b.readDouble(); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventObstacleSnowMelt.java b/src/main/java/tanks/network/event/EventObstacleSnowMelt.java index 3ce914f9..dd85e8bd 100644 --- a/src/main/java/tanks/network/event/EventObstacleSnowMelt.java +++ b/src/main/java/tanks/network/event/EventObstacleSnowMelt.java @@ -1,8 +1,7 @@ package tanks.network.event; import tanks.Game; -import tanks.obstacle.Obstacle; -import tanks.obstacle.ObstacleSnow; +import tanks.obstacle.*; import io.netty.buffer.ByteBuf; @@ -24,22 +23,6 @@ public EventObstacleSnowMelt(double x, double y, double depth) this.depth = depth; } - @Override - public void write(ByteBuf b) - { - b.writeDouble(this.posX); - b.writeDouble(this.posY); - b.writeDouble(this.depth); - } - - @Override - public void read(ByteBuf b) - { - this.posX = b.readDouble(); - this.posY = b.readDouble(); - this.depth = b.readDouble(); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventPendingJoinParty.java b/src/main/java/tanks/network/event/EventPendingJoinParty.java index 5907b991..6e9e4bd4 100644 --- a/src/main/java/tanks/network/event/EventPendingJoinParty.java +++ b/src/main/java/tanks/network/event/EventPendingJoinParty.java @@ -3,22 +3,8 @@ import tanks.Game; import tanks.gui.screen.ScreenPendingJoinParty; -import io.netty.buffer.ByteBuf; - public class EventPendingJoinParty extends PersonalEvent { - @Override - public void write(ByteBuf b) - { - - } - - @Override - public void read(ByteBuf b) - { - - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventPing.java b/src/main/java/tanks/network/event/EventPing.java index e182403e..6b549303 100644 --- a/src/main/java/tanks/network/event/EventPing.java +++ b/src/main/java/tanks/network/event/EventPing.java @@ -1,9 +1,6 @@ package tanks.network.event; -import tanks.network.ClientHandler; -import tanks.network.ServerHandler; - -import io.netty.buffer.ByteBuf; +import tanks.network.*; public class EventPing extends PersonalEvent implements IServerThreadEvent, IClientThreadEvent { @@ -19,18 +16,6 @@ public EventPing(boolean second) this.second = second; } - @Override - public void write(ByteBuf b) - { - b.writeBoolean(second); - } - - @Override - public void read(ByteBuf b) - { - second = b.readBoolean(); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventPlaySound.java b/src/main/java/tanks/network/event/EventPlaySound.java index b0612bfd..6a7b5a27 100644 --- a/src/main/java/tanks/network/event/EventPlaySound.java +++ b/src/main/java/tanks/network/event/EventPlaySound.java @@ -1,7 +1,6 @@ package tanks.network.event; import tanks.Drawing; -import tanks.network.NetworkUtils; import io.netty.buffer.ByteBuf; @@ -23,26 +22,10 @@ public EventPlaySound(String s, float pitch, float volume) this.volume = volume; } - @Override - public void write(ByteBuf b) - { - NetworkUtils.writeString(b, this.sound); - b.writeFloat(this.pitch); - b.writeFloat(this.volume); - } - - @Override - public void read(ByteBuf b) - { - this.sound = NetworkUtils.readString(b); - this.pitch = b.readFloat(); - this.volume = b.readFloat(); - } - @Override public void execute() { - if (this.clientID == null && !this.sound.equals("")) + if (this.clientID == null && !this.sound.isEmpty()) { try { diff --git a/src/main/java/tanks/network/event/EventPlayerAutoReadyConfirm.java b/src/main/java/tanks/network/event/EventPlayerAutoReadyConfirm.java index 837d3e11..c9d244ac 100644 --- a/src/main/java/tanks/network/event/EventPlayerAutoReadyConfirm.java +++ b/src/main/java/tanks/network/event/EventPlayerAutoReadyConfirm.java @@ -31,16 +31,4 @@ public void execute() ((ScreenGame) Game.screen).ready = true; } } - - @Override - public void write(ByteBuf b) - { - NetworkUtils.writeString(b, playerID.toString()); - } - - @Override - public void read(ByteBuf b) - { - this.playerID = UUID.fromString(NetworkUtils.readString(b)); - } } diff --git a/src/main/java/tanks/network/event/EventPlayerChat.java b/src/main/java/tanks/network/event/EventPlayerChat.java index 6566e519..a8c6ed60 100644 --- a/src/main/java/tanks/network/event/EventPlayerChat.java +++ b/src/main/java/tanks/network/event/EventPlayerChat.java @@ -3,9 +3,6 @@ import tanks.Player; import tanks.gui.ChatMessage; import tanks.gui.screen.ScreenPartyLobby; -import tanks.network.NetworkUtils; - -import io.netty.buffer.ByteBuf; public class EventPlayerChat extends PersonalEvent implements IChatEvent { @@ -31,19 +28,4 @@ public void execute() if (this.clientID == null) ScreenPartyLobby.chat.add(0, new ChatMessage(this.username, this.message)); } - - @Override - public void write(ByteBuf b) - { - NetworkUtils.writeString(b, this.username); - NetworkUtils.writeString(b, this.message); - } - - @Override - public void read(ByteBuf b) - { - this.username = NetworkUtils.readString(b); - this.message = NetworkUtils.readString(b); - } - } diff --git a/src/main/java/tanks/network/event/EventPlayerReady.java b/src/main/java/tanks/network/event/EventPlayerReady.java index 407b959e..69112972 100644 --- a/src/main/java/tanks/network/event/EventPlayerReady.java +++ b/src/main/java/tanks/network/event/EventPlayerReady.java @@ -1,11 +1,8 @@ package tanks.network.event; -import tanks.Game; -import tanks.Player; +import tanks.*; import tanks.gui.screen.ScreenPartyHost; -import io.netty.buffer.ByteBuf; - public class EventPlayerReady extends PersonalEvent { public EventPlayerReady() @@ -37,17 +34,4 @@ public void execute() Game.eventsOut.add(new EventUpdateReadyPlayers(ScreenPartyHost.readyPlayers)); } } - - @Override - public void write(ByteBuf b) - { - - } - - @Override - public void read(ByteBuf b) - { - - } - } diff --git a/src/main/java/tanks/network/event/EventPlayerRevealBuild.java b/src/main/java/tanks/network/event/EventPlayerRevealBuild.java index e3a40721..7ddde09b 100644 --- a/src/main/java/tanks/network/event/EventPlayerRevealBuild.java +++ b/src/main/java/tanks/network/event/EventPlayerRevealBuild.java @@ -22,20 +22,6 @@ public EventPlayerRevealBuild(int tank, int build) this.build = build; } - @Override - public void write(ByteBuf b) - { - b.writeInt(tank); - b.writeInt(build); - } - - @Override - public void read(ByteBuf b) - { - tank = b.readInt(); - build = b.readInt(); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventPlayerSetBuild.java b/src/main/java/tanks/network/event/EventPlayerSetBuild.java index 7c5753ee..71f0b58e 100644 --- a/src/main/java/tanks/network/event/EventPlayerSetBuild.java +++ b/src/main/java/tanks/network/event/EventPlayerSetBuild.java @@ -22,18 +22,6 @@ public EventPlayerSetBuild(int build) this.build = build; } - @Override - public void write(ByteBuf b) - { - b.writeInt(build); - } - - @Override - public void read(ByteBuf b) - { - build = b.readInt(); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventPurchaseBuild.java b/src/main/java/tanks/network/event/EventPurchaseBuild.java index 40eb9aa6..8748136d 100644 --- a/src/main/java/tanks/network/event/EventPurchaseBuild.java +++ b/src/main/java/tanks/network/event/EventPurchaseBuild.java @@ -19,18 +19,6 @@ public EventPurchaseBuild(String name) this.name = name; } - @Override - public void write(ByteBuf b) - { - NetworkUtils.writeString(b, this.name); - } - - @Override - public void read(ByteBuf b) - { - this.name = NetworkUtils.readString(b); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventPurchaseItem.java b/src/main/java/tanks/network/event/EventPurchaseItem.java index ad979ae4..eda82a6c 100644 --- a/src/main/java/tanks/network/event/EventPurchaseItem.java +++ b/src/main/java/tanks/network/event/EventPurchaseItem.java @@ -20,18 +20,6 @@ public EventPurchaseItem(int item) this.item = item; } - @Override - public void write(ByteBuf b) - { - b.writeInt(item); - } - - @Override - public void read(ByteBuf b) - { - item = b.readInt(); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventReturnToCrusade.java b/src/main/java/tanks/network/event/EventReturnToCrusade.java index 4159b8c4..1f8952ba 100644 --- a/src/main/java/tanks/network/event/EventReturnToCrusade.java +++ b/src/main/java/tanks/network/event/EventReturnToCrusade.java @@ -58,22 +58,4 @@ public void execute() System.gc(); } } - - @Override - public void write(ByteBuf b) - { - NetworkUtils.writeString(b, msg1); - NetworkUtils.writeString(b, msg2); - b.writeBoolean(win); - b.writeBoolean(lose); - } - - @Override - public void read(ByteBuf b) - { - msg1 = NetworkUtils.readString(b); - msg2 = NetworkUtils.readString(b); - win = b.readBoolean(); - lose = b.readBoolean(); - } } diff --git a/src/main/java/tanks/network/event/EventReturnToLobby.java b/src/main/java/tanks/network/event/EventReturnToLobby.java index a9e3b89f..b5906c0a 100644 --- a/src/main/java/tanks/network/event/EventReturnToLobby.java +++ b/src/main/java/tanks/network/event/EventReturnToLobby.java @@ -25,16 +25,4 @@ public void execute() System.gc(); } } - - @Override - public void write(ByteBuf b) - { - - } - - @Override - public void read(ByteBuf b) - { - - } } diff --git a/src/main/java/tanks/network/event/EventSendClientDetails.java b/src/main/java/tanks/network/event/EventSendClientDetails.java index 151bb346..1efcee63 100644 --- a/src/main/java/tanks/network/event/EventSendClientDetails.java +++ b/src/main/java/tanks/network/event/EventSendClientDetails.java @@ -5,8 +5,6 @@ import tanks.gui.screen.*; import tanks.network.*; -import io.netty.buffer.ByteBuf; - import java.util.UUID; public class EventSendClientDetails extends PersonalEvent implements IServerThreadEvent @@ -27,22 +25,6 @@ public EventSendClientDetails(int version, UUID clientID, String username) this.username = username; } - @Override - public void write(ByteBuf b) - { - b.writeInt(this.version); - NetworkUtils.writeString(b, clientID.toString()); - NetworkUtils.writeString(b, username); - } - - @Override - public void read(ByteBuf b) - { - this.version = b.readInt(); - this.clientID = UUID.fromString(NetworkUtils.readString(b)); - this.username = NetworkUtils.readString(b); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventSendTankColors.java b/src/main/java/tanks/network/event/EventSendTankColors.java index 093f3fb0..a96eba6b 100644 --- a/src/main/java/tanks/network/event/EventSendTankColors.java +++ b/src/main/java/tanks/network/event/EventSendTankColors.java @@ -1,14 +1,10 @@ package tanks.network.event; import basewindow.Color; -import tanks.Game; -import tanks.Player; +import tanks.*; import tanks.gui.screen.ScreenPartyHost; -import tanks.network.NetworkUtils; import tanks.network.ServerHandler; -import io.netty.buffer.ByteBuf; - public class EventSendTankColors extends PersonalEvent { public Color color1 = new Color(); @@ -27,22 +23,6 @@ public EventSendTankColors(Player p) this.color3.set(p.color3); } - @Override - public void write(ByteBuf b) - { - NetworkUtils.writeColor(b, this.color1); - NetworkUtils.writeColor(b, this.color2); - NetworkUtils.writeColor(b, this.color3); - } - - @Override - public void read(ByteBuf b) - { - NetworkUtils.readColor(b, this.color1); - NetworkUtils.readColor(b, this.color2); - NetworkUtils.readColor(b, this.color3); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventSetItem.java b/src/main/java/tanks/network/event/EventSetItem.java index 3ef96727..d8aeb32e 100644 --- a/src/main/java/tanks/network/event/EventSetItem.java +++ b/src/main/java/tanks/network/event/EventSetItem.java @@ -31,22 +31,6 @@ public EventSetItem(Player p, int slot, Item.ItemStack item) this.itemStackString = item.toString(); } - @Override - public void write(ByteBuf b) - { - NetworkUtils.writeString(b, this.playerID.toString()); - b.writeInt(this.slot); - NetworkUtils.writeString(b, this.itemStackString); - } - - @Override - public void read(ByteBuf b) - { - this.playerID = UUID.fromString(NetworkUtils.readString(b)); - this.slot = b.readInt(); - this.itemStackString = NetworkUtils.readString(b); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventSetItemBarSlot.java b/src/main/java/tanks/network/event/EventSetItemBarSlot.java index 0e5421a6..8dc128ec 100644 --- a/src/main/java/tanks/network/event/EventSetItemBarSlot.java +++ b/src/main/java/tanks/network/event/EventSetItemBarSlot.java @@ -1,11 +1,8 @@ package tanks.network.event; -import tanks.Game; -import tanks.Player; +import tanks.*; import tanks.tank.TankPlayerRemote; -import io.netty.buffer.ByteBuf; - public class EventSetItemBarSlot extends PersonalEvent implements IStackableEvent { public int slot; @@ -20,18 +17,6 @@ public EventSetItemBarSlot(int slot) this.slot = slot; } - @Override - public void write(ByteBuf b) - { - b.writeInt(this.slot); - } - - @Override - public void read(ByteBuf b) - { - this.slot = b.readInt(); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventSetItemCount.java b/src/main/java/tanks/network/event/EventSetItemCount.java index 7ad81f2b..f1f41ce1 100644 --- a/src/main/java/tanks/network/event/EventSetItemCount.java +++ b/src/main/java/tanks/network/event/EventSetItemCount.java @@ -1,10 +1,6 @@ package tanks.network.event; -import tanks.Game; -import tanks.Player; -import tanks.network.NetworkUtils; - -import io.netty.buffer.ByteBuf; +import tanks.*; import java.util.UUID; @@ -27,22 +23,6 @@ public EventSetItemCount(Player p, int slot, int count) this.count = count; } - @Override - public void write(ByteBuf b) - { - NetworkUtils.writeString(b, this.playerID.toString()); - b.writeInt(this.slot); - b.writeInt(this.count); - } - - @Override - public void read(ByteBuf b) - { - this.playerID = UUID.fromString(NetworkUtils.readString(b)); - this.slot = b.readInt(); - this.count = b.readInt(); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventSetLevelVersus.java b/src/main/java/tanks/network/event/EventSetLevelVersus.java index c38ebd09..c2eea54c 100644 --- a/src/main/java/tanks/network/event/EventSetLevelVersus.java +++ b/src/main/java/tanks/network/event/EventSetLevelVersus.java @@ -16,20 +16,6 @@ public EventSetLevelVersus() public void execute() { if (this.clientID == null && Game.screen instanceof ScreenGame) - { ((ScreenGame) Game.screen).isVersus = true; - } - } - - @Override - public void write(ByteBuf b) - { - - } - - @Override - public void read(ByteBuf b) - { - } } diff --git a/src/main/java/tanks/network/event/EventSetSelectedItems.java b/src/main/java/tanks/network/event/EventSetSelectedItems.java index fbc0dae7..4d62ab53 100644 --- a/src/main/java/tanks/network/event/EventSetSelectedItems.java +++ b/src/main/java/tanks/network/event/EventSetSelectedItems.java @@ -28,22 +28,6 @@ public EventSetSelectedItems(int slot, int p, int s) this.secondary = s; } - @Override - public void write(ByteBuf b) - { - b.writeInt(this.slot); - b.writeInt(this.primary); - b.writeInt(this.secondary); - } - - @Override - public void read(ByteBuf b) - { - this.slot = b.readInt(); - this.primary = b.readInt(); - this.secondary = b.readInt(); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventSetupHotbar.java b/src/main/java/tanks/network/event/EventSetupHotbar.java index 94761dc0..14143fb3 100644 --- a/src/main/java/tanks/network/event/EventSetupHotbar.java +++ b/src/main/java/tanks/network/event/EventSetupHotbar.java @@ -26,22 +26,6 @@ public EventSetupHotbar(Player p) this.coins = p.hotbar.enabledCoins; } - @Override - public void write(ByteBuf b) - { - NetworkUtils.writeString(b, this.playerID.toString()); - b.writeBoolean(this.items); - b.writeBoolean(this.coins); - } - - @Override - public void read(ByteBuf b) - { - this.playerID = UUID.fromString(NetworkUtils.readString(b)); - this.items = b.readBoolean(); - this.coins = b.readBoolean(); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventShareCrusade.java b/src/main/java/tanks/network/event/EventShareCrusade.java index 56a130c4..bc58cc8c 100644 --- a/src/main/java/tanks/network/event/EventShareCrusade.java +++ b/src/main/java/tanks/network/event/EventShareCrusade.java @@ -2,13 +2,9 @@ import tanks.*; import tanks.gui.ChatMessage; -import tanks.gui.screen.ScreenPartyHost; -import tanks.gui.screen.ScreenPartyLobby; -import tanks.network.NetworkUtils; +import tanks.gui.screen.*; import tanks.network.ServerHandler; -import io.netty.buffer.ByteBuf; - public class EventShareCrusade extends PersonalEvent { public String crusade; @@ -71,20 +67,4 @@ public void execute() ScreenPartyLobby.sharedCrusades.add(new ScreenPartyHost.SharedCrusade(this.crusade, this.name, this.username)); } } - - @Override - public void write(ByteBuf b) - { - NetworkUtils.writeString(b, this.crusade); - NetworkUtils.writeString(b, this.name); - NetworkUtils.writeString(b, this.username); - } - - @Override - public void read(ByteBuf b) - { - this.crusade = NetworkUtils.readString(b); - this.name = NetworkUtils.readString(b); - this.username = NetworkUtils.readString(b); - } } diff --git a/src/main/java/tanks/network/event/EventShareLevel.java b/src/main/java/tanks/network/event/EventShareLevel.java index 06cbefe2..2941fdb4 100644 --- a/src/main/java/tanks/network/event/EventShareLevel.java +++ b/src/main/java/tanks/network/event/EventShareLevel.java @@ -72,20 +72,4 @@ public void execute() ScreenPartyLobby.sharedLevels.add(new ScreenPartyHost.SharedLevel(this.level, this.name, this.username)); } } - - @Override - public void write(ByteBuf b) - { - NetworkUtils.writeString(b, this.level); - NetworkUtils.writeString(b, this.name); - NetworkUtils.writeString(b, this.username); - } - - @Override - public void read(ByteBuf b) - { - this.level = NetworkUtils.readString(b); - this.name = NetworkUtils.readString(b); - this.username = NetworkUtils.readString(b); - } } diff --git a/src/main/java/tanks/network/event/EventShootBullet.java b/src/main/java/tanks/network/event/EventShootBullet.java index a95febf7..4a0fb1c0 100644 --- a/src/main/java/tanks/network/event/EventShootBullet.java +++ b/src/main/java/tanks/network/event/EventShootBullet.java @@ -112,34 +112,4 @@ else if (t2 instanceof TankPlayer) e.printStackTrace(); } } - - @Override - public void write(ByteBuf b) - { - b.writeInt(this.id); - b.writeInt(this.tank); - b.writeDouble(this.posX); - b.writeDouble(this.posY); - b.writeDouble(this.posZ); - b.writeDouble(this.vX); - b.writeDouble(this.vY); - b.writeDouble(this.vZ); - b.writeDouble(this.speed); - b.writeInt(this.item); - } - - @Override - public void read(ByteBuf b) - { - this.id = b.readInt(); - this.tank = b.readInt(); - this.posX = b.readDouble(); - this.posY = b.readDouble(); - this.posZ = b.readDouble(); - this.vX = b.readDouble(); - this.vY = b.readDouble(); - this.vZ = b.readDouble(); - this.speed = b.readDouble(); - this.item = b.readInt(); - } } diff --git a/src/main/java/tanks/network/event/EventShowCrusadeStats.java b/src/main/java/tanks/network/event/EventShowCrusadeStats.java index b0b3f5eb..3fe6d410 100644 --- a/src/main/java/tanks/network/event/EventShowCrusadeStats.java +++ b/src/main/java/tanks/network/event/EventShowCrusadeStats.java @@ -96,22 +96,4 @@ public void execute() Crusade.currentCrusade.crusadePlayers.put(cp.player, cp); } } - - @Override - public void write(ByteBuf b) - { - NetworkUtils.writeString(b, this.name); - NetworkUtils.writeString(b, this.levels); - NetworkUtils.writeString(b, this.stats); - NetworkUtils.writeString(b, this.crusade); - } - - @Override - public void read(ByteBuf b) - { - this.name = NetworkUtils.readString(b); - this.levels = NetworkUtils.readString(b); - this.stats = NetworkUtils.readString(b); - this.crusade = NetworkUtils.readString(b); - } } diff --git a/src/main/java/tanks/network/event/EventStatusEffectBegin.java b/src/main/java/tanks/network/event/EventStatusEffectBegin.java index d83e0836..ab54294c 100644 --- a/src/main/java/tanks/network/event/EventStatusEffectBegin.java +++ b/src/main/java/tanks/network/event/EventStatusEffectBegin.java @@ -3,7 +3,6 @@ import tanks.Movable; import tanks.attribute.StatusEffect; import tanks.bullet.Bullet; -import tanks.network.NetworkUtils; import tanks.tank.Tank; import io.netty.buffer.ByteBuf; @@ -39,26 +38,6 @@ public EventStatusEffectBegin() } - @Override - public void write(ByteBuf b) - { - b.writeBoolean(this.isTank); - b.writeInt(this.networkID); - NetworkUtils.writeString(b, this.effect); - b.writeDouble(this.age); - b.writeDouble(this.warmup); - } - - @Override - public void read(ByteBuf b) - { - this.isTank = b.readBoolean(); - this.networkID = b.readInt(); - this.effect = NetworkUtils.readString(b); - this.age = b.readDouble(); - this.warmup = b.readDouble(); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventStatusEffectDeteriorate.java b/src/main/java/tanks/network/event/EventStatusEffectDeteriorate.java index d9fa8fb4..237090fe 100644 --- a/src/main/java/tanks/network/event/EventStatusEffectDeteriorate.java +++ b/src/main/java/tanks/network/event/EventStatusEffectDeteriorate.java @@ -3,7 +3,6 @@ import tanks.Movable; import tanks.attribute.StatusEffect; import tanks.bullet.Bullet; -import tanks.network.NetworkUtils; import tanks.tank.Tank; import io.netty.buffer.ByteBuf; @@ -37,24 +36,6 @@ public EventStatusEffectDeteriorate() } - @Override - public void write(ByteBuf b) - { - b.writeBoolean(this.isTank); - b.writeInt(this.networkID); - NetworkUtils.writeString(b, this.effect); - b.writeDouble(this.remainingTime); - } - - @Override - public void read(ByteBuf b) - { - this.isTank = b.readBoolean(); - this.networkID = b.readInt(); - this.effect = NetworkUtils.readString(b); - this.remainingTime = b.readDouble(); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventStatusEffectEnd.java b/src/main/java/tanks/network/event/EventStatusEffectEnd.java index 907a1667..d8ed4363 100644 --- a/src/main/java/tanks/network/event/EventStatusEffectEnd.java +++ b/src/main/java/tanks/network/event/EventStatusEffectEnd.java @@ -3,7 +3,6 @@ import tanks.Movable; import tanks.attribute.StatusEffect; import tanks.bullet.Bullet; -import tanks.network.NetworkUtils; import tanks.tank.Tank; import io.netty.buffer.ByteBuf; @@ -35,22 +34,6 @@ public EventStatusEffectEnd() } - @Override - public void write(ByteBuf b) - { - b.writeBoolean(this.isTank); - b.writeInt(this.networkID); - NetworkUtils.writeString(b, this.effect); - } - - @Override - public void read(ByteBuf b) - { - this.isTank = b.readBoolean(); - this.networkID = b.readInt(); - this.effect = NetworkUtils.readString(b); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventTankAddAttributeModifier.java b/src/main/java/tanks/network/event/EventTankAddAttributeModifier.java index b03211a8..3bfd446d 100644 --- a/src/main/java/tanks/network/event/EventTankAddAttributeModifier.java +++ b/src/main/java/tanks/network/event/EventTankAddAttributeModifier.java @@ -1,11 +1,8 @@ package tanks.network.event; import tanks.attribute.AttributeModifier; -import tanks.network.NetworkUtils; import tanks.tank.Tank; -import io.netty.buffer.ByteBuf; - public class EventTankAddAttributeModifier extends PersonalEvent { public int tank; @@ -43,38 +40,6 @@ public EventTankAddAttributeModifier(Tank t, AttributeModifier m, boolean undupl this.unduplicate = unduplicate; } - @Override - public void write(ByteBuf b) - { - b.writeInt(this.tank); - NetworkUtils.writeString(b, this.name); - b.writeDouble(this.duration); - b.writeDouble(this.deteriorationAge); - b.writeDouble(this.warmupAge); - b.writeDouble(this.value); - NetworkUtils.writeString(b, this.effect); - b.writeDouble(this.age); - NetworkUtils.writeString(b, this.type); - b.writeBoolean(this.expired); - b.writeBoolean(this.unduplicate); - } - - @Override - public void read(ByteBuf b) - { - this.tank = b.readInt(); - this.name = NetworkUtils.readString(b); - this.duration = b.readDouble(); - this.deteriorationAge = b.readDouble(); - this.warmupAge = b.readDouble(); - this.value = b.readDouble(); - this.effect = NetworkUtils.readString(b); - this.age = b.readDouble(); - this.type = NetworkUtils.readString(b); - this.expired = b.readBoolean(); - this.unduplicate = b.readBoolean(); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventTankCharge.java b/src/main/java/tanks/network/event/EventTankCharge.java index 4b96ba1f..89e339ba 100644 --- a/src/main/java/tanks/network/event/EventTankCharge.java +++ b/src/main/java/tanks/network/event/EventTankCharge.java @@ -44,20 +44,6 @@ public void execute() } - @Override - public void write(ByteBuf b) - { - b.writeInt(this.tank); - b.writeDouble(this.charge); - } - - @Override - public void read(ByteBuf b) - { - this.tank = b.readInt(); - this.charge = b.readDouble(); - } - @Override public int getIdentifier() { diff --git a/src/main/java/tanks/network/event/EventTankControllerAddVelocity.java b/src/main/java/tanks/network/event/EventTankControllerAddVelocity.java index 395a1a49..8b6ed949 100644 --- a/src/main/java/tanks/network/event/EventTankControllerAddVelocity.java +++ b/src/main/java/tanks/network/event/EventTankControllerAddVelocity.java @@ -25,24 +25,6 @@ public EventTankControllerAddVelocity(Tank t, double vX, double vY, boolean reco this.recoil = recoil; } - @Override - public void write(ByteBuf b) - { - b.writeInt(this.tank); - b.writeDouble(this.vX); - b.writeDouble(this.vY); - b.writeBoolean(this.recoil); - } - - @Override - public void read(ByteBuf b) - { - this.tank = b.readInt(); - this.vX = b.readDouble(); - this.vY = b.readDouble(); - this.recoil = b.readBoolean(); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventTankControllerUpdateAmmunition.java b/src/main/java/tanks/network/event/EventTankControllerUpdateAmmunition.java index 23be9e33..0509b0f8 100644 --- a/src/main/java/tanks/network/event/EventTankControllerUpdateAmmunition.java +++ b/src/main/java/tanks/network/event/EventTankControllerUpdateAmmunition.java @@ -1,14 +1,13 @@ package tanks.network.event; import tanks.Game; -import tanks.network.NetworkUtils; import tanks.tank.TankPlayerController; import io.netty.buffer.ByteBuf; import java.util.UUID; -public class EventTankControllerUpdateAmmunition extends PersonalEvent +public class EventTankControllerUpdateAmmunition extends PersonalEvent implements IStackableEvent { public UUID clientIdTarget; public int action1Live; @@ -38,34 +37,6 @@ public EventTankControllerUpdateAmmunition(UUID clientID, int a1, int a1max, int this.cooldownBase2 = cooldownBase2; } - @Override - public void write(ByteBuf b) - { - NetworkUtils.writeString(b, this.clientIdTarget.toString()); - b.writeInt(this.action1Live); - b.writeInt(this.action1Max); - b.writeInt(this.action2Live); - b.writeInt(this.action2Max); - b.writeDouble(this.cooldown); - b.writeDouble(this.cooldownBase); - b.writeDouble(this.cooldown2); - b.writeDouble(this.cooldownBase2); - } - - @Override - public void read(ByteBuf b) - { - this.clientIdTarget = UUID.fromString(NetworkUtils.readString(b)); - this.action1Live = b.readInt(); - this.action1Max = b.readInt(); - this.action2Live = b.readInt(); - this.action2Max = b.readInt(); - this.cooldown = b.readDouble(); - this.cooldownBase = b.readDouble(); - this.cooldown2 = b.readDouble(); - this.cooldownBase2 = b.readDouble(); - } - @Override public void execute() { @@ -82,4 +53,10 @@ public void execute() c.mineCooldown = cooldown2; } } + + @Override + public int getIdentifier() + { + return clientIdTarget.hashCode(); + } } diff --git a/src/main/java/tanks/network/event/EventTankControllerUpdateC.java b/src/main/java/tanks/network/event/EventTankControllerUpdateC.java index b45117e1..1c20e989 100644 --- a/src/main/java/tanks/network/event/EventTankControllerUpdateC.java +++ b/src/main/java/tanks/network/event/EventTankControllerUpdateC.java @@ -3,8 +3,6 @@ import tanks.Panel; import tanks.tank.*; -import io.netty.buffer.ByteBuf; - public class EventTankControllerUpdateC extends PersonalEvent implements IStackableEvent { public int tank; @@ -17,7 +15,7 @@ public class EventTankControllerUpdateC extends PersonalEvent implements IStacka public double mY; public boolean action1; public boolean action2; - public boolean[] quickActions = new boolean[TankPlayer.max_abilities]; + public int quickActions; public double time; public long sysTime = System.currentTimeMillis(); @@ -38,48 +36,11 @@ public EventTankControllerUpdateC(TankPlayerController t) this.angle = t.angle; this.action1 = t.action1; this.action2 = t.action2; - System.arraycopy(t.quickActions, 0, this.quickActions, 0, this.quickActions.length); this.time = Panel.frameFrequency; - } - - @Override - public void write(ByteBuf b) - { - b.writeInt(this.tank); - b.writeDouble(this.posX); - b.writeDouble(this.posY); - b.writeDouble(this.vX); - b.writeDouble(this.vY); - b.writeDouble(this.angle); - b.writeDouble(this.mX); - b.writeDouble(this.mY); - b.writeBoolean(this.action1); - b.writeBoolean(this.action2); - for (boolean quickAction: this.quickActions) - { - b.writeBoolean(quickAction); - } - b.writeDouble(this.time); - } - @Override - public void read(ByteBuf b) - { - this.tank = b.readInt(); - this.posX = b.readDouble(); - this.posY = b.readDouble(); - this.vX = b.readDouble(); - this.vY = b.readDouble(); - this.angle = b.readDouble(); - this.mX = b.readDouble(); - this.mY = b.readDouble(); - this.action1 = b.readBoolean(); - this.action2 = b.readBoolean(); - for (int i = 0; i < this.quickActions.length; i++) - { - this.quickActions[i] = b.readBoolean(); - } - this.time = b.readDouble(); + int i = 0; + for (boolean b : t.quickActions) + this.quickActions |= (b ? 1 : 0) << i++; } @Override diff --git a/src/main/java/tanks/network/event/EventTankControllerUpdateS.java b/src/main/java/tanks/network/event/EventTankControllerUpdateS.java index 7702176c..392ae109 100644 --- a/src/main/java/tanks/network/event/EventTankControllerUpdateS.java +++ b/src/main/java/tanks/network/event/EventTankControllerUpdateS.java @@ -20,20 +20,6 @@ public EventTankControllerUpdateS(Tank t, boolean forced, boolean recoil) this.forced = forced; } - @Override - public void read(ByteBuf b) - { - super.read(b); - this.forced = b.readBoolean(); - } - - @Override - public void write(ByteBuf b) - { - super.write(b); - b.writeBoolean(this.forced); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventTankCreate.java b/src/main/java/tanks/network/event/EventTankCreate.java index 71ed8b94..1e9616fb 100644 --- a/src/main/java/tanks/network/event/EventTankCreate.java +++ b/src/main/java/tanks/network/event/EventTankCreate.java @@ -1,12 +1,7 @@ package tanks.network.event; -import tanks.Game; -import tanks.Team; -import tanks.network.NetworkUtils; -import tanks.tank.Tank; -import tanks.tank.TankRemote; - -import io.netty.buffer.ByteBuf; +import tanks.*; +import tanks.tank.*; public class EventTankCreate extends PersonalEvent { @@ -59,28 +54,4 @@ public void execute() Game.movables.add(new TankRemote(t)); } - - @Override - public void write(ByteBuf b) - { - NetworkUtils.writeString(b, this.type); - b.writeDouble(this.posX); - b.writeDouble(this.posY); - b.writeDouble(this.angle); - NetworkUtils.writeString(b, this.team); - b.writeInt(this.id); - b.writeDouble(this.drawAge); - } - - @Override - public void read(ByteBuf b) - { - this.type = NetworkUtils.readString(b); - this.posX = b.readDouble(); - this.posY = b.readDouble(); - this.angle = b.readDouble(); - this.team = NetworkUtils.readString(b); - this.id = b.readInt(); - this.drawAge = b.readDouble(); - } } diff --git a/src/main/java/tanks/network/event/EventTankCustomCreate.java b/src/main/java/tanks/network/event/EventTankCustomCreate.java index c19530e1..fbd1622e 100644 --- a/src/main/java/tanks/network/event/EventTankCustomCreate.java +++ b/src/main/java/tanks/network/event/EventTankCustomCreate.java @@ -70,40 +70,4 @@ public void execute() Game.movables.add(tank); } - - @Override - public void write(ByteBuf b) - { - NetworkUtils.writeString(b, this.name); - b.writeDouble(this.posX); - b.writeDouble(this.posY); - b.writeDouble(this.angle); - NetworkUtils.writeString(b, this.team); - b.writeDouble(this.size); - b.writeDouble(this.turretSize); - b.writeDouble(this.turretLength); - NetworkUtils.writeColor(b, this.color); - b.writeDouble(this.lives); - b.writeDouble(this.baseLives); - - b.writeInt(this.id); - } - - @Override - public void read(ByteBuf b) - { - this.name = NetworkUtils.readString(b); - this.posX = b.readDouble(); - this.posY = b.readDouble(); - this.angle = b.readDouble(); - this.team = NetworkUtils.readString(b); - this.size = b.readDouble(); - this.turretSize = b.readDouble(); - this.turretLength = b.readDouble(); - NetworkUtils.readColor(b, this.color); - this.lives = b.readDouble(); - this.baseLives = b.readDouble(); - - this.id = b.readInt(); - } } diff --git a/src/main/java/tanks/network/event/EventTankMimicLaser.java b/src/main/java/tanks/network/event/EventTankMimicLaser.java index 2a65c084..ba5b4148 100644 --- a/src/main/java/tanks/network/event/EventTankMimicLaser.java +++ b/src/main/java/tanks/network/event/EventTankMimicLaser.java @@ -52,22 +52,6 @@ public void execute() } } - @Override - public void write(ByteBuf b) - { - b.writeInt(this.tank); - b.writeInt(this.tank2); - b.writeDouble(this.range); - } - - @Override - public void read(ByteBuf b) - { - this.tank = b.readInt(); - this.tank2 = b.readInt(); - this.range = b.readDouble(); - } - @Override public int getIdentifier() { diff --git a/src/main/java/tanks/network/event/EventTankMimicTransform.java b/src/main/java/tanks/network/event/EventTankMimicTransform.java index 6953082e..d94e07f5 100644 --- a/src/main/java/tanks/network/event/EventTankMimicTransform.java +++ b/src/main/java/tanks/network/event/EventTankMimicTransform.java @@ -92,18 +92,4 @@ public void execute() } } } - - @Override - public void write(ByteBuf b) - { - b.writeInt(this.tank); - b.writeInt(this.target); - } - - @Override - public void read(ByteBuf b) - { - this.tank = b.readInt(); - this.target = b.readInt(); - } } diff --git a/src/main/java/tanks/network/event/EventTankPlayerCreate.java b/src/main/java/tanks/network/event/EventTankPlayerCreate.java index ff18b01a..d8e2bf9e 100644 --- a/src/main/java/tanks/network/event/EventTankPlayerCreate.java +++ b/src/main/java/tanks/network/event/EventTankPlayerCreate.java @@ -3,18 +3,15 @@ import basewindow.Color; import tanks.*; import tanks.gui.screen.*; -import tanks.minigames.Arcade; -import tanks.minigames.RampageTrial; +import tanks.minigames.*; import tanks.network.ConnectedPlayer; -import tanks.network.NetworkUtils; import tanks.tank.*; -import io.netty.buffer.ByteBuf; - import java.util.UUID; public class EventTankPlayerCreate extends PersonalEvent { + @NetworkIgnored public Player player; public UUID clientIdTarget; @@ -176,40 +173,4 @@ public void setColor(Tank t) if (t instanceof TankPlayable) ((TankPlayable) t).saveColors(); } - - @Override - public void write(ByteBuf b) - { - NetworkUtils.writeString(b, this.clientIdTarget.toString()); - NetworkUtils.writeString(b, this.username); - b.writeDouble(this.posX); - b.writeDouble(this.posY); - b.writeDouble(this.angle); - NetworkUtils.writeString(b, this.team); - b.writeInt(this.networkID); - - NetworkUtils.writeColor(b, this.color); - NetworkUtils.writeColor(b, this.color2); - NetworkUtils.writeColor(b, this.color3); - - b.writeDouble(this.drawAge); - } - - @Override - public void read(ByteBuf b) - { - this.clientIdTarget = UUID.fromString(NetworkUtils.readString(b)); - this.username = NetworkUtils.readString(b); - this.posX = b.readDouble(); - this.posY = b.readDouble(); - this.angle = b.readDouble(); - this.team = NetworkUtils.readString(b); - this.networkID = b.readInt(); - - NetworkUtils.readColor(b, this.color); - NetworkUtils.readColor(b, this.color2); - NetworkUtils.readColor(b, this.color3); - - this.drawAge = b.readDouble(); - } } diff --git a/src/main/java/tanks/network/event/EventTankRemove.java b/src/main/java/tanks/network/event/EventTankRemove.java index 7a68811a..1c857b7b 100644 --- a/src/main/java/tanks/network/event/EventTankRemove.java +++ b/src/main/java/tanks/network/event/EventTankRemove.java @@ -42,18 +42,4 @@ public void execute() t.unregisterNetworkID(); } - - @Override - public void write(ByteBuf b) - { - b.writeInt(this.tank); - b.writeBoolean(this.destroyAnimation); - } - - @Override - public void read(ByteBuf b) - { - this.tank = b.readInt(); - this.destroyAnimation = b.readBoolean(); - } } diff --git a/src/main/java/tanks/network/event/EventTankSpawn.java b/src/main/java/tanks/network/event/EventTankSpawn.java index d95c383b..97f878c4 100644 --- a/src/main/java/tanks/network/event/EventTankSpawn.java +++ b/src/main/java/tanks/network/event/EventTankSpawn.java @@ -73,28 +73,4 @@ public void execute() Game.movables.add(new TankRemote(t)); } - - @Override - public void write(ByteBuf b) - { - NetworkUtils.writeString(b, this.type); - b.writeDouble(this.posX); - b.writeDouble(this.posY); - b.writeDouble(this.angle); - NetworkUtils.writeString(b, this.team); - b.writeInt(this.id); - b.writeInt(this.parent); - } - - @Override - public void read(ByteBuf b) - { - this.type = NetworkUtils.readString(b); - this.posX = b.readDouble(); - this.posY = b.readDouble(); - this.angle = b.readDouble(); - this.team = NetworkUtils.readString(b); - this.id = b.readInt(); - this.parent = b.readInt(); - } } diff --git a/src/main/java/tanks/network/event/EventTankTeleport.java b/src/main/java/tanks/network/event/EventTankTeleport.java index 448a7605..030b4046 100644 --- a/src/main/java/tanks/network/event/EventTankTeleport.java +++ b/src/main/java/tanks/network/event/EventTankTeleport.java @@ -44,37 +44,6 @@ public EventTankTeleport(TeleporterOrb t) this.endAge = t.endAge; } - @Override - public void write(ByteBuf b) - { - b.writeInt(this.tank); - b.writeDouble(this.fX); - b.writeDouble(this.fY); - b.writeDouble(this.iX); - b.writeDouble(this.iY); - b.writeDouble(this.dX); - b.writeDouble(this.dY); - b.writeDouble(this.age); - b.writeDouble(this.maxAge); - b.writeDouble(this.endAge); - - } - - @Override - public void read(ByteBuf b) - { - this.tank = b.readInt(); - this.fX = b.readDouble(); - this.fY = b.readDouble(); - this.iX = b.readDouble(); - this.iY = b.readDouble(); - this.dX = b.readDouble(); - this.dY = b.readDouble(); - this.age = b.readDouble(); - this.maxAge = b.readDouble(); - this.endAge = b.readDouble(); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventTankTransformCustom.java b/src/main/java/tanks/network/event/EventTankTransformCustom.java index a15fd62c..567d33ba 100644 --- a/src/main/java/tanks/network/event/EventTankTransformCustom.java +++ b/src/main/java/tanks/network/event/EventTankTransformCustom.java @@ -1,12 +1,11 @@ package tanks.network.event; import basewindow.Color; +import io.netty.buffer.ByteBuf; import tanks.*; import tanks.network.NetworkUtils; import tanks.tank.*; -import io.netty.buffer.ByteBuf; - import java.util.HashSet; public class EventTankTransformCustom extends PersonalEvent @@ -42,6 +41,7 @@ public class EventTankTransformCustom extends PersonalEvent public boolean requiredKill = false; + @NetworkIgnored public HashSet tankMusic; public static final int no_effect = 0; @@ -178,94 +178,21 @@ else if (effect == poof) @Override public void write(ByteBuf b) { - b.writeInt(this.tank); - - NetworkUtils.writeColor(b, this.color); - NetworkUtils.writeColor(b, this.color2); - NetworkUtils.writeColor(b, this.color3); - - b.writeBoolean(this.enableCol3); - - b.writeDouble(this.glowIntensity); - b.writeDouble(this.glowSize); - b.writeDouble(this.lightIntensity); - b.writeDouble(this.lightSize); - b.writeDouble(this.luminance); - - b.writeDouble(this.size); - b.writeDouble(this.turretSize); - b.writeDouble(this.turretLength); - - NetworkUtils.writeString(b, this.baseModel); - NetworkUtils.writeString(b, this.colorModel); - NetworkUtils.writeString(b, this.turretBaseModel); - NetworkUtils.writeString(b, this.turretModel); - - NetworkUtils.writeString(b, this.emblem); - NetworkUtils.writeColor(b, this.emblemColor); - - b.writeInt(this.bulletCount); - b.writeDouble(this.bulletSpread); - - b.writeBoolean(this.enableTracks); - b.writeDouble(this.trackSpacing); - - b.writeBoolean(this.requiredKill); + super.write(b); b.writeInt(this.tankMusic.size()); - for (String s: this.tankMusic) - { NetworkUtils.writeString(b, s); - } - - b.writeInt(this.effect); } @Override public void read(ByteBuf b) { - this.tank = b.readInt(); - - NetworkUtils.readColor(b, this.color); - NetworkUtils.readColor(b, this.color2); - NetworkUtils.readColor(b, this.color3); - - this.enableCol3 = b.readBoolean(); - - this.glowIntensity = b.readDouble(); - this.glowSize = b.readDouble(); - this.lightIntensity = b.readDouble(); - this.lightSize = b.readDouble(); - this.luminance = b.readDouble(); - - this.size = b.readDouble(); - this.turretSize = b.readDouble(); - this.turretLength = b.readDouble(); - - this.baseModel = NetworkUtils.readString(b); - this.colorModel = NetworkUtils.readString(b); - this.turretBaseModel = NetworkUtils.readString(b); - this.turretModel = NetworkUtils.readString(b); - - this.emblem = NetworkUtils.readString(b); - NetworkUtils.readColor(b, this.emblemColor); - - this.bulletCount = b.readInt(); - this.bulletSpread = b.readDouble(); - - this.enableTracks = b.readBoolean(); - this.trackSpacing = b.readDouble(); - - this.requiredKill = b.readBoolean(); + super.read(b); int size = b.readInt(); this.tankMusic = new HashSet<>(); for (int i = 0; i < size; i++) - { this.tankMusic.add(NetworkUtils.readString(b)); - } - - this.effect = b.readInt(); } } diff --git a/src/main/java/tanks/network/event/EventTankTransformPreset.java b/src/main/java/tanks/network/event/EventTankTransformPreset.java index cefde252..70bde3a5 100644 --- a/src/main/java/tanks/network/event/EventTankTransformPreset.java +++ b/src/main/java/tanks/network/event/EventTankTransformPreset.java @@ -112,20 +112,4 @@ public void execute() t.tertiaryColor.set(target.tertiaryColor); } } - - @Override - public void write(ByteBuf b) - { - b.writeInt(this.tank); - b.writeBoolean(this.sight); - b.writeBoolean(this.revert); - } - - @Override - public void read(ByteBuf b) - { - this.tank = b.readInt(); - this.sight = b.readBoolean(); - this.revert = b.readBoolean(); - } } diff --git a/src/main/java/tanks/network/event/EventTankUpdate.java b/src/main/java/tanks/network/event/EventTankUpdate.java index 794af38d..877849b4 100644 --- a/src/main/java/tanks/network/event/EventTankUpdate.java +++ b/src/main/java/tanks/network/event/EventTankUpdate.java @@ -33,30 +33,6 @@ public EventTankUpdate(Tank t) this.pitch = t.pitch; } - @Override - public void write(ByteBuf b) - { - b.writeInt(this.tank); - b.writeDouble(this.posX); - b.writeDouble(this.posY); - b.writeDouble(this.vX); - b.writeDouble(this.vY); - b.writeDouble(this.angle); - b.writeDouble(this.pitch); - } - - @Override - public void read(ByteBuf b) - { - this.tank = b.readInt(); - this.posX = b.readDouble(); - this.posY = b.readDouble(); - this.vX = b.readDouble(); - this.vY = b.readDouble(); - this.angle = b.readDouble(); - this.pitch = b.readDouble(); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventTankUpdateColor.java b/src/main/java/tanks/network/event/EventTankUpdateColor.java index e39fa014..d9d3a81a 100644 --- a/src/main/java/tanks/network/event/EventTankUpdateColor.java +++ b/src/main/java/tanks/network/event/EventTankUpdateColor.java @@ -1,11 +1,8 @@ package tanks.network.event; import basewindow.Color; -import tanks.network.NetworkUtils; import tanks.tank.Tank; -import io.netty.buffer.ByteBuf; - public class EventTankUpdateColor extends PersonalEvent implements IStackableEvent { public int tank; @@ -46,26 +43,6 @@ public void execute() t.enableTertiaryColor = tertiaryColor; } - @Override - public void write(ByteBuf b) - { - b.writeInt(this.tank); - NetworkUtils.writeColor(b, this.color1); - NetworkUtils.writeColor(b, this.color2); - NetworkUtils.writeColor(b, this.color3); - b.writeBoolean(this.tertiaryColor); - } - - @Override - public void read(ByteBuf b) - { - this.tank = b.readInt(); - NetworkUtils.readColor(b, this.color1); - NetworkUtils.readColor(b, this.color2); - NetworkUtils.readColor(b, this.color3); - this.tertiaryColor = b.readBoolean(); - } - @Override public int getIdentifier() { diff --git a/src/main/java/tanks/network/event/EventTankUpdateHealth.java b/src/main/java/tanks/network/event/EventTankUpdateHealth.java index 8604c2da..9c2c6455 100644 --- a/src/main/java/tanks/network/event/EventTankUpdateHealth.java +++ b/src/main/java/tanks/network/event/EventTankUpdateHealth.java @@ -52,18 +52,4 @@ else if (health > t.health) t.vY = 0; } } - - @Override - public void write(ByteBuf b) - { - b.writeInt(this.tank); - b.writeDouble(this.health); - } - - @Override - public void read(ByteBuf b) - { - this.tank = b.readInt(); - this.health = b.readDouble(); - } } diff --git a/src/main/java/tanks/network/event/EventTankUpdateVisibility.java b/src/main/java/tanks/network/event/EventTankUpdateVisibility.java index 53233062..ead055a2 100644 --- a/src/main/java/tanks/network/event/EventTankUpdateVisibility.java +++ b/src/main/java/tanks/network/event/EventTankUpdateVisibility.java @@ -31,18 +31,4 @@ public void execute() ((TankRemote) t).invisible = !visible; } } - - @Override - public void write(ByteBuf b) - { - b.writeInt(this.tank); - b.writeBoolean(this.visible); - } - - @Override - public void read(ByteBuf b) - { - this.tank = b.readInt(); - this.visible = b.readBoolean(); - } } diff --git a/src/main/java/tanks/network/event/EventUpdateCoins.java b/src/main/java/tanks/network/event/EventUpdateCoins.java index 5fd89d0f..02505b97 100644 --- a/src/main/java/tanks/network/event/EventUpdateCoins.java +++ b/src/main/java/tanks/network/event/EventUpdateCoins.java @@ -24,20 +24,6 @@ public EventUpdateCoins(Player p) this.coins = p.hotbar.coins; } - @Override - public void write(ByteBuf b) - { - NetworkUtils.writeString(b, this.playerID.toString()); - b.writeInt(this.coins); - } - - @Override - public void read(ByteBuf b) - { - this.playerID = UUID.fromString(NetworkUtils.readString(b)); - this.coins = b.readInt(); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventUpdateEliminatedPlayers.java b/src/main/java/tanks/network/event/EventUpdateEliminatedPlayers.java index 045f3ea4..0caf7a5d 100644 --- a/src/main/java/tanks/network/event/EventUpdateEliminatedPlayers.java +++ b/src/main/java/tanks/network/event/EventUpdateEliminatedPlayers.java @@ -1,12 +1,8 @@ package tanks.network.event; import tanks.Game; -import tanks.gui.screen.ScreenGame; -import tanks.gui.screen.ScreenPartyLobby; +import tanks.gui.screen.*; import tanks.network.ConnectedPlayer; -import tanks.network.NetworkUtils; - -import io.netty.buffer.ByteBuf; import java.util.ArrayList; @@ -49,17 +45,4 @@ public void execute() } } } - - @Override - public void write(ByteBuf b) - { - NetworkUtils.writeString(b, this.eliminatedPlayers); - } - - @Override - public void read(ByteBuf b) - { - this.eliminatedPlayers = NetworkUtils.readString(b); - } - } diff --git a/src/main/java/tanks/network/event/EventUpdateReadyPlayers.java b/src/main/java/tanks/network/event/EventUpdateReadyPlayers.java index e424cc43..8a6606d3 100644 --- a/src/main/java/tanks/network/event/EventUpdateReadyPlayers.java +++ b/src/main/java/tanks/network/event/EventUpdateReadyPlayers.java @@ -3,9 +3,6 @@ import tanks.Player; import tanks.gui.screen.ScreenPartyLobby; import tanks.network.ConnectedPlayer; -import tanks.network.NetworkUtils; - -import io.netty.buffer.ByteBuf; import java.util.ArrayList; @@ -48,17 +45,4 @@ public void execute() } } } - - @Override - public void write(ByteBuf b) - { - NetworkUtils.writeString(b, this.readyPlayers); - } - - @Override - public void read(ByteBuf b) - { - this.readyPlayers = NetworkUtils.readString(b); - } - } diff --git a/src/main/java/tanks/network/event/EventUpdateRemainingLives.java b/src/main/java/tanks/network/event/EventUpdateRemainingLives.java index dc9c4afa..5943350d 100644 --- a/src/main/java/tanks/network/event/EventUpdateRemainingLives.java +++ b/src/main/java/tanks/network/event/EventUpdateRemainingLives.java @@ -24,19 +24,6 @@ public EventUpdateRemainingLives() } - @Override - public void write(ByteBuf b) - { - NetworkUtils.writeString(b, playerID.toString()); - b.writeInt(lives); - } - - @Override - public void read(ByteBuf b) - { - playerID = UUID.fromString(NetworkUtils.readString(b)); - lives = b.readInt(); - } @Override public void execute() diff --git a/src/main/java/tanks/network/event/EventUpdateTankAbility.java b/src/main/java/tanks/network/event/EventUpdateTankAbility.java index 69021a6c..8885af80 100644 --- a/src/main/java/tanks/network/event/EventUpdateTankAbility.java +++ b/src/main/java/tanks/network/event/EventUpdateTankAbility.java @@ -27,23 +27,6 @@ public EventUpdateTankAbility(Player p, int slot) this.count = ((TankPlayable) (p.tank)).abilities.get(slot).stackSize; } - - @Override - public void write(ByteBuf b) - { - NetworkUtils.writeString(b, this.playerID.toString()); - b.writeInt(this.slot); - b.writeInt(this.count); - } - - @Override - public void read(ByteBuf b) - { - this.playerID = UUID.fromString(NetworkUtils.readString(b)); - this.slot = b.readInt(); - this.count = b.readInt(); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/EventUpdateTankColors.java b/src/main/java/tanks/network/event/EventUpdateTankColors.java index 530d54bb..5d3e5e71 100644 --- a/src/main/java/tanks/network/event/EventUpdateTankColors.java +++ b/src/main/java/tanks/network/event/EventUpdateTankColors.java @@ -4,7 +4,6 @@ import tanks.Player; import tanks.gui.screen.ScreenPartyLobby; import tanks.network.ConnectedPlayer; -import tanks.network.NetworkUtils; import io.netty.buffer.ByteBuf; @@ -32,24 +31,6 @@ public EventUpdateTankColors(Player p) this.color3.set(p.color3); } - @Override - public void write(ByteBuf b) - { - NetworkUtils.writeString(b, this.player.toString()); - NetworkUtils.writeColor(b, this.color1); - NetworkUtils.writeColor(b, this.color2); - NetworkUtils.writeColor(b, this.color3); - } - - @Override - public void read(ByteBuf b) - { - this.player = UUID.fromString(NetworkUtils.readString(b)); - NetworkUtils.readColor(b, this.color1); - NetworkUtils.readColor(b, this.color2); - NetworkUtils.readColor(b, this.color3); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/INetworkEvent.java b/src/main/java/tanks/network/event/INetworkEvent.java index ba4fe8f2..3bc8571d 100644 --- a/src/main/java/tanks/network/event/INetworkEvent.java +++ b/src/main/java/tanks/network/event/INetworkEvent.java @@ -1,12 +1,71 @@ package tanks.network.event; +import basewindow.Color; import io.netty.buffer.ByteBuf; +import tanks.network.NetworkUtils; +import tanks.network.ReflectionHandle; + +import java.lang.annotation.*; +import java.util.UUID; public interface INetworkEvent extends IEvent { - void write(ByteBuf b); + ReflectionHandle handle = new ReflectionHandle() + .setFieldFilter(f -> !f.isAnnotationPresent(NetworkIgnored.class)) + .registerTypeHandle(int.class, Integer.class, ByteBuf::readInt, ByteBuf::writeInt) + .registerTypeHandle(long.class, Long.class, ByteBuf::readLong, ByteBuf::writeLong) + .registerTypeHandle(float.class, Float.class, ByteBuf::readFloat, ByteBuf::writeFloat) + .registerTypeHandle(double.class, Double.class, INetworkEvent::readDouble, INetworkEvent::writeDouble) + .registerTypeHandle(boolean.class, Boolean.class, ByteBuf::readBoolean, ByteBuf::writeBoolean) + .registerTypeHandle(String.class, NetworkUtils::readString, NetworkUtils::writeString) + .registerTypeHandle(Color.class, INetworkEvent::readColor, NetworkUtils::writeColor) + .registerTypeHandle(UUID.class, INetworkEvent::readUUID, INetworkEvent::writeUUID); + + static double readDouble(ByteBuf b) + { + return b.readFloat(); + } + + static void writeDouble(ByteBuf b, double d) + { + b.writeFloat((float) d); + } + + static UUID readUUID(ByteBuf b) + { + String s = NetworkUtils.readString(b); + if (s == null) + return null; + return UUID.fromString(s); + } - void read(ByteBuf b); + static void writeUUID(ByteBuf b, UUID uuid) + { + NetworkUtils.writeString(b, uuid != null ? uuid.toString() : null); + } + + static Color readColor(ByteBuf b) + { + Color c = new Color(); + NetworkUtils.readColor(b, c); + return c; + } + + default void write(ByteBuf b) + { + handle.writeObject(b, this); + } + + default void read(ByteBuf b) + { + handle.readObject(b, this); + } void execute(); + + @Target(ElementType.FIELD) + @Retention(RetentionPolicy.RUNTIME) + @interface NetworkIgnored + { + } } diff --git a/src/main/java/tanks/network/event/IStackableEvent.java b/src/main/java/tanks/network/event/IStackableEvent.java index 8c5a9803..5ef7709b 100644 --- a/src/main/java/tanks/network/event/IStackableEvent.java +++ b/src/main/java/tanks/network/event/IStackableEvent.java @@ -1,5 +1,6 @@ package tanks.network.event; +/** Given multiple events that implement this, if they have the same identifier, only the latest one is sent */ public interface IStackableEvent extends INetworkEvent { int getIdentifier(); diff --git a/src/main/java/tanks/network/event/online/EventAddShape.java b/src/main/java/tanks/network/event/online/EventAddShape.java index 37b4ef2c..2ee60ee2 100644 --- a/src/main/java/tanks/network/event/online/EventAddShape.java +++ b/src/main/java/tanks/network/event/online/EventAddShape.java @@ -47,40 +47,6 @@ public EventAddShape(int id, ScreenOnline.Shape s) this.yAlignment = s.yAlignment; } - @Override - public void write(ByteBuf b) - { - b.writeInt(this.id); - b.writeDouble(this.posX); - b.writeDouble(this.posY); - b.writeDouble(this.sizeX); - b.writeDouble(this.sizeY); - b.writeInt(this.type); - b.writeDouble(this.colorR); - b.writeDouble(this.colorG); - b.writeDouble(this.colorB); - b.writeDouble(this.colorA); - b.writeInt(this.xAlignment); - b.writeInt(this.yAlignment); - } - - @Override - public void read(ByteBuf b) - { - this.id = b.readInt(); - this.posX = b.readDouble(); - this.posY = b.readDouble(); - this.sizeX = b.readDouble(); - this.sizeY = b.readDouble(); - this.type = b.readInt(); - this.colorR = b.readDouble(); - this.colorG = b.readDouble(); - this.colorB = b.readDouble(); - this.colorA = b.readDouble(); - this.xAlignment = b.readInt(); - this.yAlignment = b.readInt(); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/online/EventRemoveText.java b/src/main/java/tanks/network/event/online/EventRemoveText.java index c73555aa..cdf5de0f 100644 --- a/src/main/java/tanks/network/event/online/EventRemoveText.java +++ b/src/main/java/tanks/network/event/online/EventRemoveText.java @@ -20,18 +20,6 @@ public EventRemoveText() } - @Override - public void write(ByteBuf b) - { - b.writeInt(id); - } - - @Override - public void read(ByteBuf b) - { - this.id = b.readInt(); - } - @Override public void execute() { diff --git a/src/main/java/tanks/network/event/online/EventSilentDisconnect.java b/src/main/java/tanks/network/event/online/EventSilentDisconnect.java index 281a4455..b80099b4 100644 --- a/src/main/java/tanks/network/event/online/EventSilentDisconnect.java +++ b/src/main/java/tanks/network/event/online/EventSilentDisconnect.java @@ -1,27 +1,12 @@ package tanks.network.event.online; import tanks.Game; -import tanks.gui.screen.ScreenPartyLobby; -import tanks.gui.screen.ScreenPlayMultiplayer; +import tanks.gui.screen.*; import tanks.network.Client; import tanks.network.event.PersonalEvent; -import io.netty.buffer.ByteBuf; - public class EventSilentDisconnect extends PersonalEvent { - @Override - public void write(ByteBuf b) - { - - } - - @Override - public void read(ByteBuf b) - { - - } - @Override public void execute() { diff --git a/src/main/java/tanks/obstacle/ObstacleExplosive.java b/src/main/java/tanks/obstacle/ObstacleExplosive.java index 940b468e..01a8c5e1 100644 --- a/src/main/java/tanks/obstacle/ObstacleExplosive.java +++ b/src/main/java/tanks/obstacle/ObstacleExplosive.java @@ -71,11 +71,16 @@ public void onObjectEntry(Movable m) @Override public void onDestroy(Movable m) { + if (ScreenPartyLobby.isClient) + { + Game.removeObstacles.add(this); + return; + } + if (this.trigger != Game.dummyTank) return; - if (!ScreenPartyLobby.isClient) - this.setUpdate(true); + this.setUpdate(true); if (m instanceof Explosion) { @@ -105,8 +110,8 @@ public void explode() e.explode(); - Game.removeObstacles.add(this); Game.eventsOut.add(new EventObstacleDestroy(this.posX, this.posY, this.name)); + Game.removeObstacles.add(this); } @Override diff --git a/src/main/java/tanks/tank/Explosion.java b/src/main/java/tanks/tank/Explosion.java index cfb1d5de..050039c8 100644 --- a/src/main/java/tanks/tank/Explosion.java +++ b/src/main/java/tanks/tank/Explosion.java @@ -217,9 +217,9 @@ public void explode() for (Obstacle o: Obstacle.getObstaclesInRadius(posX, posY, radius + Game.tile_size / 2)) { if (!o.destructible) continue; + Game.eventsOut.add(new EventObstacleDestroy(o.posX, o.posY, o.name, posX, posY, radius + Game.tile_size / 2)); o.onDestroy(this); o.playDestroyAnimation(this.posX, this.posY, this.radius); - Game.eventsOut.add(new EventObstacleDestroy(o.posX, o.posY, o.name, this.posX, this.posY, this.radius + Game.tile_size / 2)); } } diff --git a/src/main/java/tanks/tank/TankPlayerRemote.java b/src/main/java/tanks/tank/TankPlayerRemote.java index 2b053a58..ed1e21e6 100644 --- a/src/main/java/tanks/tank/TankPlayerRemote.java +++ b/src/main/java/tanks/tank/TankPlayerRemote.java @@ -272,8 +272,7 @@ else if (b.slots[b.selected] instanceof ItemMine.ItemStackMine) lastMaxLiveMines = mlm; } - public void controllerUpdate(double x, double y, double vX, double vY, double angle, double mX, double mY, boolean action1, boolean action2, boolean[] quickActions, - double time, long receiveTime) + public void controllerUpdate(double x, double y, double vX, double vY, double angle, double mX, double mY, boolean action1, boolean action2, int quickActions, double time, long receiveTime) { if (this.destroy) return; @@ -462,7 +461,8 @@ else if (b instanceof BulletAirStrike) { for (int i = 0; i < this.abilities.size(); i++) { - if (quickActions[i]) + // tests whether the `i`th bit in quickActions set to 1 + if ((quickActions & (1 << i)) != 0) this.quickAction(i); } }