From 70d80bb32ec1e4992c35e2f3f952698157a08fe6 Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 24 Oct 2019 20:13:29 -0400 Subject: [PATCH] Cleanup / Added server-side rule change Call --- .../io/anuke/mindustry/core/NetClient.java | 6 ++++++ core/src/io/anuke/mindustry/core/UI.java | 4 ++-- core/src/io/anuke/mindustry/io/TypeIO.java | 21 ++++++++++++++++++- .../mindustry/ui/dialogs/LoadoutDialog.java | 2 -- 4 files changed, 28 insertions(+), 5 deletions(-) diff --git a/core/src/io/anuke/mindustry/core/NetClient.java b/core/src/io/anuke/mindustry/core/NetClient.java index 7e959ad010..eb1734fa94 100644 --- a/core/src/io/anuke/mindustry/core/NetClient.java +++ b/core/src/io/anuke/mindustry/core/NetClient.java @@ -15,6 +15,7 @@ import io.anuke.mindustry.entities.*; import io.anuke.mindustry.entities.traits.BuilderTrait.*; import io.anuke.mindustry.entities.traits.*; import io.anuke.mindustry.entities.type.*; +import io.anuke.mindustry.game.*; import io.anuke.mindustry.game.EventType.*; import io.anuke.mindustry.gen.*; import io.anuke.mindustry.net.Administration.*; @@ -255,6 +256,11 @@ public class NetClient implements ApplicationListener{ ui.showText("", message); } + @Remote(variants = Variant.both) + public static void onSetRules(Rules rules){ + state.rules = rules; + } + @Remote(variants = Variant.both) public static void onWorldDataBegin(){ entities.clear(); diff --git a/core/src/io/anuke/mindustry/core/UI.java b/core/src/io/anuke/mindustry/core/UI.java index 107971e414..ffea7f4a4e 100644 --- a/core/src/io/anuke/mindustry/core/UI.java +++ b/core/src/io/anuke/mindustry/core/UI.java @@ -406,7 +406,7 @@ public class UI implements ApplicationListener, Loadable{ public void showConfirm(String title, String text, BooleanProvider hide, Runnable confirmed){ FloatingDialog dialog = new FloatingDialog(title); - dialog.cont.add(text).width(500f).wrap().pad(4f).get().setAlignment(Align.center, Align.center); + dialog.cont.add(text).width(mobile ? 400f : 500f).wrap().pad(4f).get().setAlignment(Align.center, Align.center); dialog.buttons.defaults().size(200f, 54f).pad(2f); dialog.setFillParent(false); dialog.buttons.addButton("$cancel", dialog::hide); @@ -429,7 +429,7 @@ public class UI implements ApplicationListener, Loadable{ public void showCustomConfirm(String title, String text, String yes, String no, Runnable confirmed){ FloatingDialog dialog = new FloatingDialog(title); - dialog.cont.add(text).width(500f).wrap().pad(4f).get().setAlignment(Align.center, Align.center); + dialog.cont.add(text).width(mobile ? 400f : 500f).wrap().pad(4f).get().setAlignment(Align.center, Align.center); dialog.buttons.defaults().size(200f, 54f).pad(2f); dialog.setFillParent(false); dialog.buttons.addButton(no, dialog::hide); diff --git a/core/src/io/anuke/mindustry/io/TypeIO.java b/core/src/io/anuke/mindustry/io/TypeIO.java index 1d17e0bc44..87dc8d5766 100644 --- a/core/src/io/anuke/mindustry/io/TypeIO.java +++ b/core/src/io/anuke/mindustry/io/TypeIO.java @@ -11,7 +11,7 @@ import io.anuke.mindustry.entities.traits.BuilderTrait.BuildRequest; import io.anuke.mindustry.entities.traits.ShooterTrait; import io.anuke.mindustry.entities.type.*; import io.anuke.mindustry.entities.units.*; -import io.anuke.mindustry.game.Team; +import io.anuke.mindustry.game.*; import io.anuke.mindustry.net.Administration.TraceInfo; import io.anuke.mindustry.net.Packets.AdminAction; import io.anuke.mindustry.net.Packets.KickReason; @@ -167,6 +167,25 @@ public class TypeIO{ return KickReason.values()[buffer.get()]; } + @WriteClass(Rules.class) + public static void writeRules(ByteBuffer buffer, Rules rules){ + String string = JsonIO.write(rules); + byte[] bytes = string.getBytes(charset); + buffer.putInt(bytes.length); + buffer.put(bytes); + + writeString(buffer, JsonIO.write(rules)); + } + + @ReadClass(Rules.class) + public static Rules readRules(ByteBuffer buffer){ + int length = buffer.getInt(); + byte[] bytes = new byte[length]; + buffer.get(length); + String string = new String(bytes, charset); + return JsonIO.read(Rules.class, string); + } + @WriteClass(Team.class) public static void writeTeam(ByteBuffer buffer, Team reason){ buffer.put((byte)reason.ordinal()); diff --git a/core/src/io/anuke/mindustry/ui/dialogs/LoadoutDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/LoadoutDialog.java index e2d6bef68e..f6bd24ff37 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/LoadoutDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/LoadoutDialog.java @@ -14,12 +14,10 @@ import static io.anuke.mindustry.Vars.*; public class LoadoutDialog extends FloatingDialog{ private Runnable hider; - //private Supplier> supplier; private Runnable resetter; private Runnable updater; private Array stacks = new Array<>(); private Array originalStacks = new Array<>(); - //private Predicate filter; private Table items; private int capacity;