From f6e9710b33f17bbc7ff843f4bb6b1f462eb64553 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 30 Dec 2017 11:43:47 -0500 Subject: [PATCH 1/5] Added basic Kryonet support --- android/AndroidManifest.xml | 2 +- build.gradle | 2 + core/src/io/anuke/mindustry/Net.java | 52 ++++++++++++++----- .../mindustry/desktop/DesktopLauncher.java | 31 +++++++++-- 4 files changed, 70 insertions(+), 17 deletions(-) diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml index 68e1fba775..a111ec0bae 100644 --- a/android/AndroidManifest.xml +++ b/android/AndroidManifest.xml @@ -7,7 +7,7 @@ - + , Consumer> listeners = new ObjectMap<>(); - private static NetProvider provider; + private static ObjectMap, Consumer> listeners = new ObjectMap<>(); + private static ClientProvider clientProvider; + private static ServerProvider serverProvider; /**Connect to an address.*/ public static void connect(String ip, String port) throws IOException{ - provider.connect(ip, port); + clientProvider.connect(ip, port); + } + + /**Host a server at an address*/ + public static void host(String port) throws IOException{ + serverProvider.host(port); } - /**Send an object to all connected clients.*/ + /**Send an object to all connected clients, or to the server if this is a client.*/ public static void send(Object object){ - provider.send(object); + if(server){ + serverProvider.send(object); + }else { + clientProvider.send(object); + } } - /**Sets the net provider, e.g. what handles sending, recieving and connecting.*/ - public static void setProvider(NetProvider provider){ - Net.provider = provider; + /**Sets the net clientProvider, e.g. what handles sending, recieving and connecting to a server.*/ + public static void setClientProvider(ClientProvider provider){ + Net.clientProvider = provider; + } + + /**Sets the net serverProvider, e.g. what handles hosting a server.*/ + public static void setServerProvider(ServerProvider provider){ + Net.serverProvider = provider; } - /**Registers a listener for when an object is recieved.*/ + /**Registers a client listener for when an object is recieved.*/ public static void handle(Class type, Consumer listener){ listeners.put(type, listener); } - /**Call to handle a packet being recieved.*/ + /**Call to handle a packet being recieved (for the client).*/ public static void handleNetReceived(Object object){ if(listeners.get(object.getClass()) != null){ - + listeners.get(object.getClass()).accept(object); }else{ - Gdx.app.error("Net", "Unhandled packet type: '" + object.getClass() + "'!"); + Gdx.app.error("Mindustry::Net", "Unhandled packet type: '" + object.getClass() + "'!"); } } @@ -52,9 +67,20 @@ public class Net{ public static boolean server(){ return server; } + + public static void registerClasses(Class... classes){ + clientProvider.register(classes); + } - public static interface NetProvider{ + public static interface ClientProvider { public void connect(String ip, String port) throws IOException; public void send(Object object); + public void register(Class... types); + } + + public static interface ServerProvider { + public void host(String port) throws IOException; + public void send(Object object); + public void register(Class... types); } } diff --git a/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java b/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java index 4ca906fa7d..63dd525ce2 100644 --- a/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java +++ b/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java @@ -6,19 +6,19 @@ import java.net.URI; import java.text.DateFormat; import java.text.NumberFormat; import java.text.SimpleDateFormat; -import java.util.Arrays; import java.util.Date; import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application; import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration; import com.badlogic.gdx.utils.Array; +import com.esotericsoftware.kryonet.Client; import io.anuke.mindustry.Mindustry; +import io.anuke.mindustry.Net; +import io.anuke.mindustry.Net.ClientProvider; import io.anuke.mindustry.Vars; import io.anuke.mindustry.io.PlatformFunction; -import io.anuke.ucore.UCore; import io.anuke.ucore.scene.ui.TextField; -import io.anuke.ucore.scene.ui.layout.Unit; public class DesktopLauncher { @@ -60,6 +60,31 @@ public class DesktopLauncher { }; Mindustry.args = Array.with(arg); + + Net.setClientProvider(new ClientProvider() { + Client client; + + { + client = new Client(); + } + + @Override + public void connect(String ip, String port) throws IOException { + + } + + @Override + public void send(Object object) { + + } + + @Override + public void register(Class... types) { + for(Class c : types){ + client.getKryo().register(c); + } + } + }); new Lwjgl3Application(new Mindustry(), config); } From e24179cd4ce058a27a10c33ea33c809032d9eacf Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 30 Dec 2017 12:28:17 -0500 Subject: [PATCH 2/5] Added full Kryonet server/client implementation --- core/src/io/anuke/mindustry/Net.java | 86 ------------ core/src/io/anuke/mindustry/net/Net.java | 123 ++++++++++++++++++ .../anuke/mindustry/net/packets/Connect.java | 6 + .../mindustry/net/packets/Disconnect.java | 6 + .../anuke/mindustry/net/packets/Packets.java | 4 + .../mindustry/desktop/DesktopLauncher.java | 122 ++++++++++++++++- 6 files changed, 256 insertions(+), 91 deletions(-) delete mode 100644 core/src/io/anuke/mindustry/Net.java create mode 100644 core/src/io/anuke/mindustry/net/Net.java create mode 100644 core/src/io/anuke/mindustry/net/packets/Connect.java create mode 100644 core/src/io/anuke/mindustry/net/packets/Disconnect.java create mode 100644 core/src/io/anuke/mindustry/net/packets/Packets.java diff --git a/core/src/io/anuke/mindustry/Net.java b/core/src/io/anuke/mindustry/Net.java deleted file mode 100644 index 8bbb356900..0000000000 --- a/core/src/io/anuke/mindustry/Net.java +++ /dev/null @@ -1,86 +0,0 @@ -package io.anuke.mindustry; - -import java.io.IOException; - -import com.badlogic.gdx.Gdx; -import com.badlogic.gdx.utils.ObjectMap; - -import io.anuke.ucore.function.Consumer; - -//TODO stub -public class Net{ - private static boolean server; - private static boolean active; - private static ObjectMap, Consumer> listeners = new ObjectMap<>(); - private static ClientProvider clientProvider; - private static ServerProvider serverProvider; - - /**Connect to an address.*/ - public static void connect(String ip, String port) throws IOException{ - clientProvider.connect(ip, port); - } - - /**Host a server at an address*/ - public static void host(String port) throws IOException{ - serverProvider.host(port); - } - - /**Send an object to all connected clients, or to the server if this is a client.*/ - public static void send(Object object){ - if(server){ - serverProvider.send(object); - }else { - clientProvider.send(object); - } - } - - /**Sets the net clientProvider, e.g. what handles sending, recieving and connecting to a server.*/ - public static void setClientProvider(ClientProvider provider){ - Net.clientProvider = provider; - } - - /**Sets the net serverProvider, e.g. what handles hosting a server.*/ - public static void setServerProvider(ServerProvider provider){ - Net.serverProvider = provider; - } - - /**Registers a client listener for when an object is recieved.*/ - public static void handle(Class type, Consumer listener){ - listeners.put(type, listener); - } - - /**Call to handle a packet being recieved (for the client).*/ - public static void handleNetReceived(Object object){ - if(listeners.get(object.getClass()) != null){ - listeners.get(object.getClass()).accept(object); - }else{ - Gdx.app.error("Mindustry::Net", "Unhandled packet type: '" + object.getClass() + "'!"); - } - } - - /**Whether the net is active, e.g. whether this is a multiplayer game.*/ - public static boolean active(){ - return active; - } - - /**Whether this is a server or not.*/ - public static boolean server(){ - return server; - } - - public static void registerClasses(Class... classes){ - clientProvider.register(classes); - } - - public static interface ClientProvider { - public void connect(String ip, String port) throws IOException; - public void send(Object object); - public void register(Class... types); - } - - public static interface ServerProvider { - public void host(String port) throws IOException; - public void send(Object object); - public void register(Class... types); - } -} diff --git a/core/src/io/anuke/mindustry/net/Net.java b/core/src/io/anuke/mindustry/net/Net.java new file mode 100644 index 0000000000..c2b8afe1c1 --- /dev/null +++ b/core/src/io/anuke/mindustry/net/Net.java @@ -0,0 +1,123 @@ +package io.anuke.mindustry.net; + +import java.io.IOException; + +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.utils.ObjectMap; + +import io.anuke.ucore.function.Consumer; + +//TODO stub +public class Net{ + private static boolean server; + private static boolean active; + private static ObjectMap, Consumer> clientListeners = new ObjectMap<>(); + private static ObjectMap, Consumer> serverListeners = new ObjectMap<>(); + private static ClientProvider clientProvider; + private static ServerProvider serverProvider; + + /**Connect to an address.*/ + public static void connect(String ip, int port) throws IOException{ + clientProvider.connect(ip, port); + } + + /**Host a server at an address*/ + public static void host(int port) throws IOException{ + serverProvider.host(port); + } + + /**Send an object to all connected clients, or to the server if this is a client.*/ + public static void send(Object object, SendMode mode){ + if(server){ + serverProvider.send(object, mode); + }else { + clientProvider.send(object, mode); + } + } + + /**Sets the net clientProvider, e.g. what handles sending, recieving and connecting to a server.*/ + public static void setClientProvider(ClientProvider provider){ + Net.clientProvider = provider; + } + + /**Sets the net serverProvider, e.g. what handles hosting a server.*/ + public static void setServerProvider(ServerProvider provider){ + Net.serverProvider = provider; + } + + /**Registers a client listener for when an object is recieved.*/ + public static void handle(Class type, Consumer listener){ + clientListeners.put(type, listener); + } + + /**Registers a server listener for when an object is recieved.*/ + public static void handleServer(Class type, Consumer listener){ + serverListeners.put(type, listener); + } + + /**Call to handle a packet being recieved for the client.*/ + public static void handleClientReceived(Object object){ + if(clientListeners.get(object.getClass()) != null){ + clientListeners.get(object.getClass()).accept(object); + }else{ + Gdx.app.error("Mindustry::Net", "Unhandled packet type: '" + object.getClass() + "'!"); + } + } + + /**Call to handle a packet being recieved for the server.*/ + public static void handleServerReceived(Object object){ + if(serverListeners.get(object.getClass()) != null){ + serverListeners.get(object.getClass()).accept(object); + }else{ + Gdx.app.error("Mindustry::Net", "Unhandled packet type: '" + object.getClass() + "'!"); + } + } + + /**Whether the net is active, e.g. whether this is a multiplayer game.*/ + public static boolean active(){ + return active; + } + + /**Whether this is a server or not.*/ + public static boolean server(){ + return server; + } + + /**Register classes that will be sent. Must be done for all classes.*/ + public static void registerClasses(Class... classes){ + clientProvider.register(classes); + serverProvider.register(classes); + } + + /**Client implementation.*/ + public static interface ClientProvider { + /**Connect to a server.*/ + public void connect(String ip, int port) throws IOException; + /**Send an object to the server.*/ + public void send(Object object, SendMode mode); + /**Update the ping. Should be done every second or so.*/ + public void updatePing(); + /**Get ping in milliseconds. Will only be valid after a call to updatePing.*/ + public int getPing(); + /**Register classes to be sent.*/ + public void register(Class... types); + } + + /**Server implementation.*/ + public static interface ServerProvider { + /**Host a server at specified port.*/ + public void host(int port) throws IOException; + /**Send an object to everyone connected.*/ + public void send(Object object, SendMode mode); + /**Send an object to a specific client ID.*/ + public void sendTo(int id, Object object, SendMode mode); + /**Send an object to everyone except a client ID.*/ + public void sendExcept(int id, Object object, SendMode mode); + /**Register classes to be sent.*/ + public void register(Class... types); + } + + public enum SendMode{ + tcp, udp + } +} diff --git a/core/src/io/anuke/mindustry/net/packets/Connect.java b/core/src/io/anuke/mindustry/net/packets/Connect.java new file mode 100644 index 0000000000..6c0c2280d5 --- /dev/null +++ b/core/src/io/anuke/mindustry/net/packets/Connect.java @@ -0,0 +1,6 @@ +package io.anuke.mindustry.net.packets; + +public class Connect { + public int id; + public String addressTCP; +} diff --git a/core/src/io/anuke/mindustry/net/packets/Disconnect.java b/core/src/io/anuke/mindustry/net/packets/Disconnect.java new file mode 100644 index 0000000000..990254d998 --- /dev/null +++ b/core/src/io/anuke/mindustry/net/packets/Disconnect.java @@ -0,0 +1,6 @@ +package io.anuke.mindustry.net.packets; + +public class Disconnect { + public int id; + public String addressTCP; +} diff --git a/core/src/io/anuke/mindustry/net/packets/Packets.java b/core/src/io/anuke/mindustry/net/packets/Packets.java new file mode 100644 index 0000000000..c980d0f1ab --- /dev/null +++ b/core/src/io/anuke/mindustry/net/packets/Packets.java @@ -0,0 +1,4 @@ +package io.anuke.mindustry.net.packets; + +public class Packets { +} diff --git a/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java b/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java index 63dd525ce2..c0178ce039 100644 --- a/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java +++ b/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java @@ -13,11 +13,18 @@ import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration; import com.badlogic.gdx.utils.Array; import com.esotericsoftware.kryonet.Client; +import com.esotericsoftware.kryonet.Connection; +import com.esotericsoftware.kryonet.Listener; +import com.esotericsoftware.kryonet.Server; import io.anuke.mindustry.Mindustry; -import io.anuke.mindustry.Net; -import io.anuke.mindustry.Net.ClientProvider; +import io.anuke.mindustry.net.Net; +import io.anuke.mindustry.net.Net.ClientProvider; +import io.anuke.mindustry.net.Net.SendMode; import io.anuke.mindustry.Vars; import io.anuke.mindustry.io.PlatformFunction; +import io.anuke.mindustry.net.Net.ServerProvider; +import io.anuke.mindustry.net.packets.Connect; +import io.anuke.mindustry.net.packets.Disconnect; import io.anuke.ucore.scene.ui.TextField; public class DesktopLauncher { @@ -66,16 +73,51 @@ public class DesktopLauncher { { client = new Client(); + client.start(); + client.addListener(new Listener(){ + @Override + public void connected (Connection connection) { + Connect c = new Connect(); + c.id = connection.getID(); + c.addressTCP = connection.getRemoteAddressTCP().toString(); + Net.handleClientReceived(c); + } + + @Override + public void disconnected (Connection connection) { + Disconnect c = new Disconnect(); + Net.handleClientReceived(c); + } + + @Override + public void received (Connection connection, Object object) { + Net.handleClientReceived(object); + } + }); } @Override - public void connect(String ip, String port) throws IOException { - + public void connect(String ip, int port) throws IOException { + client.connect(5000, ip, port, port); } @Override - public void send(Object object) { + public void send(Object object, SendMode mode) { + if(mode == SendMode.tcp){ + client.sendTCP(object); + }else{ + client.sendUDP(object); + } + } + @Override + public void updatePing() { + client.updateReturnTripTime(); + } + + @Override + public int getPing() { + return client.getReturnTripTime(); } @Override @@ -85,6 +127,76 @@ public class DesktopLauncher { } } }); + + Net.setServerProvider(new ServerProvider() { + Server server; + + { + server = new Server(); + server.start(); + server.addListener(new Listener(){ + @Override + public void connected (Connection connection) { + Connect c = new Connect(); + c.id = connection.getID(); + c.addressTCP = connection.getRemoteAddressTCP().toString(); + Net.handleClientReceived(c); + } + + @Override + public void disconnected (Connection connection) { + Disconnect c = new Disconnect(); + c.id = connection.getID(); + c.addressTCP = connection.getRemoteAddressTCP().toString(); + Net.handleClientReceived(c); + } + + @Override + public void received (Connection connection, Object object) { + Net.handleServerReceived(object); + } + }); + } + + @Override + public void host(int port) throws IOException { + server.bind(port, port); + } + + @Override + public void send(Object object, SendMode mode) { + if(mode == SendMode.tcp){ + server.sendToAllTCP(object); + }else{ + server.sendToAllUDP(object); + } + } + + @Override + public void sendTo(int id, Object object, SendMode mode) { + if(mode == SendMode.tcp){ + server.sendToTCP(id, object); + }else{ + server.sendToUDP(id, object); + } + } + + @Override + public void sendExcept(int id, Object object, SendMode mode) { + if(mode == SendMode.tcp){ + server.sendToAllExceptTCP(id, object); + }else{ + server.sendToAllExceptUDP(id, object); + } + } + + @Override + public void register(Class... types) { + for(Class c : types){ + server.getKryo().register(c); + } + } + }); new Lwjgl3Application(new Mindustry(), config); } From c14e2337231c3965c9ee185e6a8dab05ccaae403 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 30 Dec 2017 13:39:37 -0500 Subject: [PATCH 3/5] Basic server hosting done --- core/assets/bundles/bundle.properties | 4 +++ core/src/io/anuke/mindustry/Mindustry.java | 1 + core/src/io/anuke/mindustry/Vars.java | 4 +++ core/src/io/anuke/mindustry/core/Network.java | 31 ++++++++++++++++++- core/src/io/anuke/mindustry/core/UI.java | 9 ++++-- core/src/io/anuke/mindustry/net/Net.java | 11 +++++++ core/src/io/anuke/mindustry/net/Packets.java | 16 ++++++++++ .../anuke/mindustry/net/packets/Connect.java | 6 ---- .../mindustry/net/packets/Disconnect.java | 6 ---- .../anuke/mindustry/net/packets/Packets.java | 4 --- .../src/io/anuke/mindustry/ui/MenuDialog.java | 23 ++++++++++++++ .../mindustry/desktop/DesktopLauncher.java | 13 ++++++-- 12 files changed, 106 insertions(+), 22 deletions(-) create mode 100644 core/src/io/anuke/mindustry/net/Packets.java delete mode 100644 core/src/io/anuke/mindustry/net/packets/Connect.java delete mode 100644 core/src/io/anuke/mindustry/net/packets/Disconnect.java delete mode 100644 core/src/io/anuke/mindustry/net/packets/Packets.java diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 7a49495043..493efeb7dc 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -11,6 +11,10 @@ text.level.mode=Gamemode: text.savegame=Save Game text.loadgame=Load Game text.quit=Quit +text.hostserver=Host Server +text.server.port=Port: +text.server.invalidport=Invalid port number! +text.server.error=[crimson]Error hosting server: [orange]{0} text.tutorial.back=< Prev text.tutorial.next=Next > text.save.new=New Save diff --git a/core/src/io/anuke/mindustry/Mindustry.java b/core/src/io/anuke/mindustry/Mindustry.java index a36a546a88..69d41d5d89 100644 --- a/core/src/io/anuke/mindustry/Mindustry.java +++ b/core/src/io/anuke/mindustry/Mindustry.java @@ -41,6 +41,7 @@ public class Mindustry extends ModuleCore { module(Vars.control = new Control()); module(Vars.renderer = new Renderer()); module(Vars.ui = new UI()); + module(Vars.network = new Network()); } public void loadBundle(){ diff --git a/core/src/io/anuke/mindustry/Vars.java b/core/src/io/anuke/mindustry/Vars.java index 7cd08e69d1..103882e98e 100644 --- a/core/src/io/anuke/mindustry/Vars.java +++ b/core/src/io/anuke/mindustry/Vars.java @@ -72,11 +72,15 @@ public class Vars{ public static final float multiplier = android ? 3 : 2; public static final int tilesize = 8; + + //server port + public static final int port = 6567; public static Control control; public static Renderer renderer; public static UI ui; public static World world; + public static Network network; public static Player player; diff --git a/core/src/io/anuke/mindustry/core/Network.java b/core/src/io/anuke/mindustry/core/Network.java index 8b0de963ea..23e87f1061 100644 --- a/core/src/io/anuke/mindustry/core/Network.java +++ b/core/src/io/anuke/mindustry/core/Network.java @@ -1,7 +1,36 @@ package io.anuke.mindustry.core; +import io.anuke.mindustry.Vars; +import io.anuke.mindustry.core.GameState.State; +import io.anuke.mindustry.net.Net; import io.anuke.ucore.modules.Module; +import java.io.IOException; + public class Network extends Module{ - //TODO implementation + private boolean isHosting; + + public Network(){ + + } + + public void update(){ + if(isHosting && GameState.is(State.menu)){ + Net.closeServer(); + isHosting = false; + } + } + + public void hostServer(int port) throws IOException{ + if(isHosting){ + throw new IOException("Already hosting a server!"); + } + + Net.host(port); + isHosting = true; + } + + public boolean isHosting(){ + return isHosting; + } } diff --git a/core/src/io/anuke/mindustry/core/UI.java b/core/src/io/anuke/mindustry/core/UI.java index b05fab525f..58871645c9 100644 --- a/core/src/io/anuke/mindustry/core/UI.java +++ b/core/src/io/anuke/mindustry/core/UI.java @@ -42,6 +42,7 @@ import io.anuke.ucore.scene.builders.label; import io.anuke.ucore.scene.builders.table; import io.anuke.ucore.scene.event.Touchable; import io.anuke.ucore.scene.ui.*; +import io.anuke.ucore.scene.ui.TextField.TextFieldFilter; import io.anuke.ucore.scene.ui.Window.WindowStyle; import io.anuke.ucore.scene.ui.layout.Table; import io.anuke.ucore.scene.ui.layout.Unit; @@ -371,12 +372,12 @@ public class UI extends SceneModule{ configtable.setVisible(false); } - public void showTextInput(String title, String text, String def, Consumer confirmed){ + public void showTextInput(String title, String text, String def, TextFieldFilter filter, Consumer confirmed){ new Dialog(title, "dialog"){{ content().margin(30); content().add(text).padRight(6f); TextField field = content().addField(def, t->{}).size(170f, 50f).get(); - field.setTextFieldFilter((f, c) -> field.getText().length() < 12); + field.setTextFieldFilter((f, c) -> field.getText().length() < 12 && filter.acceptChar(f, c)); Mindustry.platforms.addDialog(field); buttons().defaults().size(120, 54).pad(4); buttons().addButton("$text.ok", () -> { @@ -387,6 +388,10 @@ public class UI extends SceneModule{ }}.show(); } + public void showTextInput(String title, String text, String def, Consumer confirmed){ + showTextInput(title, text, def, (field, c) -> true, confirmed); + } + public void showError(String text){ new Dialog("$text.error.title", "dialog"){{ content().margin(15); diff --git a/core/src/io/anuke/mindustry/net/Net.java b/core/src/io/anuke/mindustry/net/Net.java index c2b8afe1c1..13ea87b4aa 100644 --- a/core/src/io/anuke/mindustry/net/Net.java +++ b/core/src/io/anuke/mindustry/net/Net.java @@ -23,8 +23,17 @@ public class Net{ /**Host a server at an address*/ public static void host(int port) throws IOException{ + active = true; + server = true; serverProvider.host(port); } + + /**Closes the server.*/ + public static void closeServer(){ + serverProvider.close(); + server = false; + active = false; + } /**Send an object to all connected clients, or to the server if this is a client.*/ public static void send(Object object, SendMode mode){ @@ -113,6 +122,8 @@ public class Net{ public void sendTo(int id, Object object, SendMode mode); /**Send an object to everyone except a client ID.*/ public void sendExcept(int id, Object object, SendMode mode); + /**Close the server connection.*/ + public void close(); /**Register classes to be sent.*/ public void register(Class... types); } diff --git a/core/src/io/anuke/mindustry/net/Packets.java b/core/src/io/anuke/mindustry/net/Packets.java new file mode 100644 index 0000000000..5d88a12967 --- /dev/null +++ b/core/src/io/anuke/mindustry/net/Packets.java @@ -0,0 +1,16 @@ +package io.anuke.mindustry.net; + +/**Class for storing all packets.*/ +public class Packets { + + public static class Connect { + public int id; + public String addressTCP; + } + + public static class Disconnect { + public int id; + public String addressTCP; + } + +} diff --git a/core/src/io/anuke/mindustry/net/packets/Connect.java b/core/src/io/anuke/mindustry/net/packets/Connect.java deleted file mode 100644 index 6c0c2280d5..0000000000 --- a/core/src/io/anuke/mindustry/net/packets/Connect.java +++ /dev/null @@ -1,6 +0,0 @@ -package io.anuke.mindustry.net.packets; - -public class Connect { - public int id; - public String addressTCP; -} diff --git a/core/src/io/anuke/mindustry/net/packets/Disconnect.java b/core/src/io/anuke/mindustry/net/packets/Disconnect.java deleted file mode 100644 index 990254d998..0000000000 --- a/core/src/io/anuke/mindustry/net/packets/Disconnect.java +++ /dev/null @@ -1,6 +0,0 @@ -package io.anuke.mindustry.net.packets; - -public class Disconnect { - public int id; - public String addressTCP; -} diff --git a/core/src/io/anuke/mindustry/net/packets/Packets.java b/core/src/io/anuke/mindustry/net/packets/Packets.java deleted file mode 100644 index c980d0f1ab..0000000000 --- a/core/src/io/anuke/mindustry/net/packets/Packets.java +++ /dev/null @@ -1,4 +0,0 @@ -package io.anuke.mindustry.net.packets; - -public class Packets { -} diff --git a/core/src/io/anuke/mindustry/ui/MenuDialog.java b/core/src/io/anuke/mindustry/ui/MenuDialog.java index 05846f0337..0160fad481 100644 --- a/core/src/io/anuke/mindustry/ui/MenuDialog.java +++ b/core/src/io/anuke/mindustry/ui/MenuDialog.java @@ -10,7 +10,12 @@ import io.anuke.ucore.scene.builders.build; import io.anuke.ucore.scene.builders.imagebutton; import io.anuke.ucore.scene.ui.ConfirmDialog; import io.anuke.ucore.scene.ui.ImageButton; +import io.anuke.ucore.scene.ui.TextField.TextFieldFilter.DigitsOnlyFilter; import io.anuke.ucore.scene.ui.layout.Cell; +import io.anuke.ucore.util.Bundles; +import io.anuke.ucore.util.Strings; + +import java.io.IOException; public class MenuDialog extends FloatingDialog{ private SaveDialog save = new SaveDialog(); @@ -55,6 +60,24 @@ public class MenuDialog extends FloatingDialog{ } content().row(); + + content().addButton("$text.hostserver", () -> { + Vars.ui.showTextInput("$text.hostserver", "$text.server.port", Vars.port + "", new DigitsOnlyFilter(), text -> { + int result = Strings.parseInt(text); + if(result == Integer.MIN_VALUE || result >= 65535){ + Vars.ui.showError("$text.server.invalidport"); + }else{ + try{ + Vars.network.hostServer(result); + }catch (IOException e){ + Vars.ui.showError(Bundles.format("text.server.error", Strings.parseException(e, false))); + } + } + }); + }).disabled(b -> Vars.network.isHosting()); + + content().row(); + content().addButton("$text.quit", () -> { new ConfirmDialog("$text.confirm", "$text.quit.confirm", () -> { hide(); diff --git a/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java b/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java index c0178ce039..88b2257356 100644 --- a/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java +++ b/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java @@ -23,8 +23,8 @@ import io.anuke.mindustry.net.Net.SendMode; import io.anuke.mindustry.Vars; import io.anuke.mindustry.io.PlatformFunction; import io.anuke.mindustry.net.Net.ServerProvider; -import io.anuke.mindustry.net.packets.Connect; -import io.anuke.mindustry.net.packets.Disconnect; +import io.anuke.mindustry.net.Packets.Connect; +import io.anuke.mindustry.net.Packets.Disconnect; import io.anuke.ucore.scene.ui.TextField; public class DesktopLauncher { @@ -133,7 +133,9 @@ public class DesktopLauncher { { server = new Server(); - server.start(); + Thread thread = new Thread(server, "Kryonet Server"); + thread.setDaemon(true); + thread.start(); server.addListener(new Listener(){ @Override public void connected (Connection connection) { @@ -163,6 +165,11 @@ public class DesktopLauncher { server.bind(port, port); } + @Override + public void close() { + server.close(); + } + @Override public void send(Object object, SendMode mode) { if(mode == SendMode.tcp){ From 79e18f7f4d7fe6409aeb5f9ec719d1ebc30d6e54 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 30 Dec 2017 18:40:02 -0500 Subject: [PATCH 4/5] Implemented basic client/server connection and title font --- core/assets-raw/sprites/ui/logotext-gray.png | Bin 442 -> 0 bytes core/assets-raw/sprites/ui/text-editor.png | Bin 322 -> 0 bytes core/assets-raw/sprites/ui/text-exit.png | Bin 286 -> 0 bytes core/assets-raw/sprites/ui/text-load.png | Bin 436 -> 0 bytes core/assets-raw/sprites/ui/text-play.png | Bin 326 -> 0 bytes core/assets-raw/sprites/ui/text-settings.png | Bin 367 -> 0 bytes core/assets-raw/sprites/ui/text-tutorial.png | Bin 386 -> 0 bytes core/assets/bundles/bundle.properties | 5 + core/assets/sprites/sprites.atlas | 665 ++++++++---------- core/assets/sprites/sprites.png | Bin 82844 -> 80557 bytes core/assets/ui/title-font.png | Bin 1062 -> 0 bytes core/assets/ui/title.fnt | 57 ++ core/assets/ui/title.png | Bin 0 -> 1146 bytes core/assets/ui/uiskin.json | 6 + core/src/io/anuke/mindustry/core/Network.java | 8 + core/src/io/anuke/mindustry/core/UI.java | 53 +- core/src/io/anuke/mindustry/net/Net.java | 12 +- .../src/io/anuke/mindustry/ui/MenuButton.java | 10 +- .../src/io/anuke/mindustry/ui/MenuDialog.java | 16 +- .../mindustry/ui/fragments/MenuFragment.java | 27 +- .../mindustry/desktop/DesktopLauncher.java | 12 +- 21 files changed, 462 insertions(+), 409 deletions(-) delete mode 100644 core/assets-raw/sprites/ui/logotext-gray.png delete mode 100644 core/assets-raw/sprites/ui/text-editor.png delete mode 100644 core/assets-raw/sprites/ui/text-exit.png delete mode 100644 core/assets-raw/sprites/ui/text-load.png delete mode 100644 core/assets-raw/sprites/ui/text-play.png delete mode 100644 core/assets-raw/sprites/ui/text-settings.png delete mode 100644 core/assets-raw/sprites/ui/text-tutorial.png delete mode 100644 core/assets/ui/title-font.png create mode 100644 core/assets/ui/title.fnt create mode 100644 core/assets/ui/title.png diff --git a/core/assets-raw/sprites/ui/logotext-gray.png b/core/assets-raw/sprites/ui/logotext-gray.png deleted file mode 100644 index 0e07dd36b88b6b0fa0dbbd69558fd767a133904f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 442 zcmeAS@N?(olHy`uVBq!ia0y~yV2EU3U=ZbCV_;y=o#?cKfq{W7$=lt9;Xep2*t>i( z0|NtRfk$L90|U1(2s1Lwnj^u$z`$PO>Fdh=kW++_pVf4_lP3cMgJg+oM2T~LZfz6i#PL0WS=Dav*Yv7&M z9h^(U)=W%(7BAePCvLeLH>un` z{E}^t{JVcwrt}EimREjSo)x3K%U#OU-l=T0M{4>*<<=XI^QY8YU9Bm;XqnR4ZTlW| vRNUGe^@%0@?+>;=JZ#Me6AZq5U_A5d%*mDZ6SgogFfe$!`njxgN@xNA=RUNs diff --git a/core/assets-raw/sprites/ui/text-editor.png b/core/assets-raw/sprites/ui/text-editor.png deleted file mode 100644 index 55954c33718a91bca2e71c9134e115d77894acbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 322 zcmeAS@N?(olHy`uVBq!ia0y~yU{GUVVBq0kV_;z5<2wJ3fq{W7$=lt9;Xep2*t>i( z0|NtRfk$L90|U1(2s1Lwnj^u$z`$PO>Fdh=kVl9?l<%M7?M4O$2FViFh!W@g+}zZ> z5(ej@)Wnk16ovB4k_-iRPv3y>Mm}){28LChE{-783%c1bn!+w zmS@MC-BM`1wdCpZyR3{mB^VR<>vIZb_bs{kY5V-Ap68gW Yf?m&wRnEN6z`(%Z>FVdQ&MBb@0Qcj2N&o-= diff --git a/core/assets-raw/sprites/ui/text-exit.png b/core/assets-raw/sprites/ui/text-exit.png deleted file mode 100644 index dc211b97ab0de3abd129036db22fb46cec71d2c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 286 zcmeAS@N?(olHy`uVBq!ia0y~yV31&7VBq0kV_;yYFsLnMU|?WN@^*J&_z!{$_AZ~y zz`(#+;1OBOz`!jG!i)^F=799Dmw5WRvOnY&7Bb^Kv)|B=fq_A?#5JPCIX^cyHLrxh zxhOTUBsE2$JhLQ2!QIn0AiR-JoPmL%&C|s(#Nzbckkh2UdUz-xky(iNMN!7_7|dwIJzUT^GZ@mxA(Wyk%~mh($yvD+{* zgor9#D%h-)SNcJ0)h&@1AD6n;em!@Ui6J3v<$X6}@9AQ_Hg!$;+cHcno>zOjl`G{{ gvcHs%KbmvG{?v*drn5~fppanjboFyt=akR{07WBV1ONa4 diff --git a/core/assets-raw/sprites/ui/text-load.png b/core/assets-raw/sprites/ui/text-load.png deleted file mode 100644 index 2a5d083b8f0333a9a47561210b511c3b2bf54675..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmeAS@N?(olHy`uVBq!ia0y~yV6bCgVBq0kV_;ygD&~8{z`($k|H*Y zfq{Xuz$3Dlfq`2Xgc%uT&5>YWU|=ut^mS!_$So|SqvEZzkx!g~flEWheU;pUx>4xEAI8xBAF23Eup*s@nNa{s$fIzOM6h&i5#71_p&k ztqYRx3Vi&cU)b4ODb$~F;^^JX2vfyHk;fms?V6@itGw>0{lm+7PA-R6pWI|B6yn9m zz@QYw>ZQpZmTfz?VcP4=2<}fNO5Ack#b<2sTOs=IN(V>Bi%lK+CRXM5_gv^S-dveg zuKx0AUtyTflWkule*S&2%6<1Ed!49~FDom4{MzQ6-4b>2Vw&;dgJ(A6&aN(A(m(UB z`MS4{&RBPU+IunK+2hF8-MiFN67S}B+G_se=Czde*nf1di`3=0`E!n?{Y*1iG;Lo- mT6yxT*%QCM)sT7mn^CcV>3;miZKezi3=E#GelF{r5}E)}n6rKW diff --git a/core/assets-raw/sprites/ui/text-play.png b/core/assets-raw/sprites/ui/text-play.png deleted file mode 100644 index 5598ba2533fdfa0a8c40fa77c0e295eae3a44bcb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 326 zcmeAS@N?(olHy`uVBq!ia0y~yV31{CVBq0kV_;yIC%Mg#fq{W7$=lt9;Xep2*t>i( z0|NtRfk$L90|U1(2s1Lwnj^u$z`$PO>Fdh=kXu+tiz8~$jK>TN43Z_T5hc#~xw)x% zB@E6*sfi`2DGKG8B^e6tp1uL$jeOz^3=Hc$T^vI!PA{Euk(Wi0!{uVctSOs9FE;8r z^AHQnx+q=0>vvgO@ bzqT)#A-AxQq2ToYzjrb)Fi4iTMwB?`=jNv7 zl`uFLr6!i7rYMwWmSiZnd-?{1H}Z)yFfd&Aba4#vIDR(lE$hZC9BX`qQMgee&(z`u=BT@+G;wGV6tR zO$nOS_5I9rKBZOM(K^2kkMZ9*q?4rBvha@W8l|b-C)`|=!jApFxY4M-XQPt-)jc+K zE+G@OYq@8?J#tF1D)aKRy<6OZwA0F#GMrr@t<+U%dS}(mY?UqF{wMwEc(Ln!w5nR~ z($LR>ua?VBF`1^k=yCX!r_!mDLW-tE=)X6dtM%W#`^kwH`tiPH+(*x4Uy?S;@D>VN TywQ#A-AxQw%E>XQw}mPFi4iTMwB?`=jNv7 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 z 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 Wizi=jV!i;%<_w;$elF{r5}E)?5AO&7 diff --git a/core/assets/ui/title.fnt b/core/assets/ui/title.fnt new file mode 100644 index 0000000000..ef571ca7e7 --- /dev/null +++ b/core/assets/ui/title.fnt @@ -0,0 +1,57 @@ +info face="Title" size=16 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=0,0 +common lineHeight=14 base=0 scaleW=512 scaleH=512 pages=1 packed=0 +page id=0 file="title.png" +chars count=53 +char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=0 xadvance=3 page=0 chnl=0 +char id=97 x=1 y=0 width=9 height=12 xoffset=0 yoffset=-12 xadvance=8 page=0 chnl=0 +char id=65 x=1 y=0 width=9 height=12 xoffset=0 yoffset=-12 xadvance=8 page=0 chnl=0 +char id=98 x=14 y=0 width=8 height=12 xoffset=0 yoffset=-12 xadvance=7 page=0 chnl=0 +char id=66 x=14 y=0 width=8 height=12 xoffset=0 yoffset=-12 xadvance=7 page=0 chnl=0 +char id=99 x=26 y=0 width=7 height=12 xoffset=0 yoffset=-12 xadvance=6 page=0 chnl=0 +char id=67 x=26 y=0 width=7 height=12 xoffset=0 yoffset=-12 xadvance=6 page=0 chnl=0 +char id=100 x=39 y=0 width=8 height=12 xoffset=0 yoffset=-12 xadvance=7 page=0 chnl=0 +char id=68 x=39 y=0 width=8 height=12 xoffset=0 yoffset=-12 xadvance=7 page=0 chnl=0 +char id=101 x=50 y=0 width=7 height=12 xoffset=0 yoffset=-12 xadvance=6 page=0 chnl=0 +char id=69 x=50 y=0 width=7 height=12 xoffset=0 yoffset=-12 xadvance=6 page=0 chnl=0 +char id=102 x=63 y=0 width=7 height=12 xoffset=0 yoffset=-12 xadvance=6 page=0 chnl=0 +char id=70 x=63 y=0 width=7 height=12 xoffset=0 yoffset=-12 xadvance=6 page=0 chnl=0 +char id=103 x=74 y=0 width=8 height=12 xoffset=0 yoffset=-12 xadvance=7 page=0 chnl=0 +char id=71 x=74 y=0 width=8 height=12 xoffset=0 yoffset=-12 xadvance=7 page=0 chnl=0 +char id=104 x=86 y=0 width=8 height=12 xoffset=0 yoffset=-12 xadvance=7 page=0 chnl=0 +char id=72 x=86 y=0 width=8 height=12 xoffset=0 yoffset=-12 xadvance=7 page=0 chnl=0 +char id=105 x=100 y=0 width=4 height=12 xoffset=0 yoffset=-12 xadvance=3 page=0 chnl=0 +char id=73 x=100 y=0 width=4 height=12 xoffset=0 yoffset=-12 xadvance=3 page=0 chnl=0 +char id=106 x=2 y=12 width=8 height=12 xoffset=0 yoffset=-12 xadvance=7 page=0 chnl=0 +char id=74 x=2 y=12 width=8 height=12 xoffset=0 yoffset=-12 xadvance=7 page=0 chnl=0 +char id=107 x=14 y=12 width=8 height=12 xoffset=0 yoffset=-12 xadvance=7 page=0 chnl=0 +char id=75 x=14 y=12 width=8 height=12 xoffset=0 yoffset=-12 xadvance=7 page=0 chnl=0 +char id=108 x=28 y=12 width=7 height=12 xoffset=0 yoffset=-12 xadvance=6 page=0 chnl=0 +char id=76 x=28 y=12 width=7 height=12 xoffset=0 yoffset=-12 xadvance=6 page=0 chnl=0 +char id=109 x=38 y=12 width=10 height=12 xoffset=0 yoffset=-12 xadvance=9 page=0 chnl=0 +char id=77 x=38 y=12 width=10 height=12 xoffset=0 yoffset=-12 xadvance=9 page=0 chnl=0 +char id=110 x=50 y=12 width=9 height=12 xoffset=0 yoffset=-12 xadvance=8 page=0 chnl=0 +char id=78 x=50 y=12 width=9 height=12 xoffset=0 yoffset=-12 xadvance=8 page=0 chnl=0 +char id=111 x=63 y=12 width=8 height=12 xoffset=0 yoffset=-12 xadvance=7 page=0 chnl=0 +char id=79 x=63 y=12 width=8 height=12 xoffset=0 yoffset=-12 xadvance=7 page=0 chnl=0 +char id=112 x=75 y=12 width=8 height=12 xoffset=0 yoffset=-12 xadvance=7 page=0 chnl=0 +char id=80 x=75 y=12 width=8 height=12 xoffset=0 yoffset=-12 xadvance=7 page=0 chnl=0 +char id=113 x=87 y=12 width=9 height=12 xoffset=0 yoffset=-12 xadvance=8 page=0 chnl=0 +char id=81 x=87 y=12 width=9 height=12 xoffset=0 yoffset=-12 xadvance=8 page=0 chnl=0 +char id=114 x=99 y=12 width=8 height=12 xoffset=0 yoffset=-12 xadvance=7 page=0 chnl=0 +char id=82 x=99 y=12 width=8 height=12 xoffset=0 yoffset=-12 xadvance=7 page=0 chnl=0 +char id=115 x=2 y=24 width=8 height=12 xoffset=0 yoffset=-12 xadvance=7 page=0 chnl=0 +char id=83 x=2 y=24 width=8 height=12 xoffset=0 yoffset=-12 xadvance=7 page=0 chnl=0 +char id=116 x=14 y=24 width=8 height=12 xoffset=0 yoffset=-12 xadvance=7 page=0 chnl=0 +char id=84 x=14 y=24 width=8 height=12 xoffset=0 yoffset=-12 xadvance=7 page=0 chnl=0 +char id=117 x=26 y=24 width=8 height=12 xoffset=0 yoffset=-12 xadvance=7 page=0 chnl=0 +char id=85 x=26 y=24 width=8 height=12 xoffset=0 yoffset=-12 xadvance=7 page=0 chnl=0 +char id=118 x=37 y=24 width=9 height=12 xoffset=0 yoffset=-12 xadvance=8 page=0 chnl=0 +char id=86 x=37 y=24 width=9 height=12 xoffset=0 yoffset=-12 xadvance=8 page=0 chnl=0 +char id=119 x=50 y=24 width=10 height=12 xoffset=0 yoffset=-12 xadvance=9 page=0 chnl=0 +char id=87 x=50 y=24 width=10 height=12 xoffset=0 yoffset=-12 xadvance=9 page=0 chnl=0 +char id=120 x=62 y=24 width=8 height=12 xoffset=0 yoffset=-12 xadvance=7 page=0 chnl=0 +char id=88 x=62 y=24 width=8 height=12 xoffset=0 yoffset=-12 xadvance=7 page=0 chnl=0 +char id=121 x=75 y=24 width=8 height=12 xoffset=0 yoffset=-12 xadvance=7 page=0 chnl=0 +char id=89 x=75 y=24 width=8 height=12 xoffset=0 yoffset=-12 xadvance=7 page=0 chnl=0 +char id=122 x=86 y=24 width=8 height=12 xoffset=0 yoffset=-12 xadvance=7 page=0 chnl=0 +char id=90 x=86 y=24 width=8 height=12 xoffset=0 yoffset=-12 xadvance=7 page=0 chnl=0 diff --git a/core/assets/ui/title.png b/core/assets/ui/title.png new file mode 100644 index 0000000000000000000000000000000000000000..0141415b7c95ea97f6796539133615326e0ef49b GIT binary patch literal 1146 zcmeAS@N?(olHy`uVBq!ia0y~yV8~%$U@+idV_;zTqBY-i( z0|NtRfk$L90|U1(2s1Lwnj^u$z`$PO>Fdh=kVj6O#p?cNwoC>F2FViFh!W@g+}zZ> z5(ej@)Wnk16ovB4k_-iRPv3y>Mm}){2IfbeE{-7;x86n@Zn~qu^R>#td6$W1G2fl# zpLlmTbjc`%e_%9n{#yN8X1~v5y~)-VqSjo@PC`vv)ia)nXWM%=w1n+>YOkhn?N)Ku z6N|p%QznRrU4Hmzr`6iG$rbNvER#Xc*VQl|IVNOuycy8=Gme1#%pPuU2n{(UD_wtu3 znw|%WTOKbywvQ!yt?lNet3wYwI(T5g)RwN-ss%RpeydqAzMrG5w&mG5ll2ibuauUR zteYTn@AvfH!x<6}ryaR=X_rco_Jn7@Byt|C^-|IiTw0{0sXb{@#q?)~V-$Cnrbs|!o2Odl_Nm9%4KF<1W8fS8NySM%R*oH6U*lY7sZ z;x5Yu)nwfA|GD|vJWZR@eIfA@?-~PDZY+o@PPLSIZh3UNnEi>T+NM8`FE8qh&OSIb z@tdK&<(?_>Pd+WweS7%h`SOg?g}Ghw=OTh4-o+T~Y5SXWIdJoWwYPrN-e1ie`0C6K z*$3Jm+M?{&7qRU=&A5H)8Pmu+tDm-YI(TwnHs-T-0#%So~c^uYLI%PkpQ0o264;EH+!YTJPbJ>E2Oy1EQw6 zp1HDr62rH9tN%|*-0@?GAcR%Y54T-xrbe!WTI++F4)v!ps&cPl;*pCu5I)19I?abd`%E!XY0 z@-9>6I&^#c`Sa=V`}U_#O^!ML-{nty>anJy6BjH$*u<~Nq9eX${{Fhfr#}7`+|p;= zBfTc*LYoO+gx9`*Ka8*Lk-ub+@X_z*mygUR9eNhOJEO>D-4lIpNoq-l(*dW-$$C{6 zq*FIJA2@WAlTG)})Fzff$ND)(t=?>~$cT|V_)58X)~=a statlist = new Array<>(); MapEditor editor; + String lastip = "localhost"; + int lastport = Vars.port; boolean wasPaused = false; private Fragment menufrag = new MenuFragment(), @@ -68,9 +73,6 @@ public class UI extends SceneModule{ hudfrag = new HudFragment(), placefrag = new PlacementFragment(), weaponfrag = new WeaponFragment(); - - VisibilityProvider play = () -> !GameState.is(State.menu); - VisibilityProvider nplay = () -> GameState.is(State.menu); public UI() { Dialog.setShowAction(()-> sequence( @@ -156,7 +158,7 @@ public class UI extends SceneModule{ public void update(){ if(Vars.debug && !Vars.showUI) return; - if(nplay.visible()){ + if(GameState.is(State.menu)){ scene.getBatch().getProjectionMatrix().setToOrtho2D(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); scene.getBatch().begin(); @@ -187,13 +189,32 @@ public class UI extends SceneModule{ editor = new MapEditor(); editorDialog = new MapEditorDialog(editor); } + + join = new FloatingDialog("$text.joingame.title"); + join.content().add("$text.joingame.ip").left(); + join.content().addField("localhost", text -> lastip = text).size(180f, 54f); + join.content().row(); + join.content().add("$text.server.port").left(); + join.content().addField(Vars.port + "", new DigitsOnlyFilter(), text -> lastport = Strings.parseInt(text)).size(180f, 54f); + join.buttons().defaults().size(140f, 60f).pad(4f); + join.buttons().addButton("$text.cancel", join::hide); + join.buttons().addButton("$text.ok", () -> { + showLoading("$text.connecting"); + + Timers.runTask(2f, () -> { + try{ + Net.connect(lastip, lastport); + }catch (IOException e) { + showError(Bundles.format("text.connectfail", Strings.parseException(e, false))); + hideLoading(); + } + }); + }).disabled(b -> lastip.isEmpty() || lastport == Integer.MIN_VALUE); settingserror = new Dialog("Warning", "dialog"); settingserror.content().add("[crimson]Failed to access local storage.\nSettings will not be saved."); settingserror.content().margin(10f); - settingserror.getButtonTable().addButton("OK", ()->{ - settingserror.hide(); - }).size(80f, 55f).pad(4); + settingserror.getButtonTable().addButton("OK", settingserror::hide).size(80f, 55f).pad(4); gameerror = new Dialog("$text.error.crashtitle", "dialog"); gameerror.content().labelWrap("$text.error.crashmessage").width(600f).pad(10f); @@ -326,14 +347,6 @@ public class UI extends SceneModule{ } - void invalidateAll(){ - for(Element e : scene.getElements()){ - if(e instanceof Table){ - ((Table)e).invalidateHierarchy(); - } - } - } - public void showGameError(){ gameerror.show(); } @@ -437,6 +450,10 @@ public class UI extends SceneModule{ public void showLoadGame(){ load.show(); } + + public void showJoinGame(){ + join.show(); + } public void showMenu(){ menu.show(); diff --git a/core/src/io/anuke/mindustry/net/Net.java b/core/src/io/anuke/mindustry/net/Net.java index 13ea87b4aa..4701ec8931 100644 --- a/core/src/io/anuke/mindustry/net/Net.java +++ b/core/src/io/anuke/mindustry/net/Net.java @@ -19,13 +19,15 @@ public class Net{ /**Connect to an address.*/ public static void connect(String ip, int port) throws IOException{ clientProvider.connect(ip, port); + active = true; + server = false; } /**Host a server at an address*/ public static void host(int port) throws IOException{ + serverProvider.host(port); active = true; server = true; - serverProvider.host(port); } /**Closes the server.*/ @@ -34,6 +36,12 @@ public class Net{ server = false; active = false; } + + public static void disconnect(){ + clientProvider.disconnect(); + server = false; + active = false; + } /**Send an object to all connected clients, or to the server if this is a client.*/ public static void send(Object object, SendMode mode){ @@ -108,6 +116,8 @@ public class Net{ public void updatePing(); /**Get ping in milliseconds. Will only be valid after a call to updatePing.*/ public int getPing(); + /**Disconnect from the server.*/ + public void disconnect(); /**Register classes to be sent.*/ public void register(Class... types); } diff --git a/core/src/io/anuke/mindustry/ui/MenuButton.java b/core/src/io/anuke/mindustry/ui/MenuButton.java index a114c9162a..d5c3e3e837 100644 --- a/core/src/io/anuke/mindustry/ui/MenuButton.java +++ b/core/src/io/anuke/mindustry/ui/MenuButton.java @@ -1,5 +1,7 @@ package io.anuke.mindustry.ui; +import com.badlogic.gdx.graphics.Color; +import com.badlogic.gdx.graphics.Colors; import com.badlogic.gdx.utils.Align; import com.badlogic.gdx.utils.Scaling; @@ -9,13 +11,9 @@ import io.anuke.ucore.scene.ui.Image; public class MenuButton extends Button{ - public MenuButton(String icon, PressGroup group, Listenable clicked){ + public MenuButton(String text, PressGroup group, Listenable clicked){ super("menu"); - Image image = new Image(icon); - image.setScaling(Scaling.fit); - image.setScale(4f); - image.setOrigin(Align.center); - add(image); + add(text, "title", 4); clicked(clicked); group.add(this); } diff --git a/core/src/io/anuke/mindustry/ui/MenuDialog.java b/core/src/io/anuke/mindustry/ui/MenuDialog.java index 0160fad481..034f6df75e 100644 --- a/core/src/io/anuke/mindustry/ui/MenuDialog.java +++ b/core/src/io/anuke/mindustry/ui/MenuDialog.java @@ -79,15 +79,10 @@ public class MenuDialog extends FloatingDialog{ content().row(); content().addButton("$text.quit", () -> { - new ConfirmDialog("$text.confirm", "$text.quit.confirm", () -> { + Vars.ui.showConfirm("$text.confirm", "$text.quit.confirm", () -> { hide(); GameState.set(State.menu); - }){ - { - for(Cell cell : getButtonTable().getCells()) - cell.pad(3).size(180, 44); - } - }.show(); + }); }); }else{ @@ -111,13 +106,10 @@ public class MenuDialog extends FloatingDialog{ new imagebutton("icon-load", isize, () -> load.show()).text("$text.load").padTop(4f); new imagebutton("icon-quit", isize, () -> { - new ConfirmDialog("$text.confirm", "$text.quit.confirm", () -> { + Vars.ui.showConfirm("$text.confirm", "$text.quit.confirm", () -> { hide(); GameState.set(State.menu); - }){{ - for(Cell cell : getButtonTable().getCells()) - cell.pad(3).size(180, 44); - }}.show(); + }); }).text("Quit").padTop(4f); for(Element e : content().getChildren()){ diff --git a/core/src/io/anuke/mindustry/ui/fragments/MenuFragment.java b/core/src/io/anuke/mindustry/ui/fragments/MenuFragment.java index 08a24e1ff6..a7aeb3706e 100644 --- a/core/src/io/anuke/mindustry/ui/fragments/MenuFragment.java +++ b/core/src/io/anuke/mindustry/ui/fragments/MenuFragment.java @@ -25,25 +25,30 @@ public class MenuFragment implements Fragment{ float scale = 4f; defaults().size(100*scale, 21*scale).pad(-10f); - add(new MenuButton("text-play", group, ui::showLevels)); + add(new MenuButton("$text.play", group, ui::showLevels)); row(); - - add(new MenuButton("text-tutorial", group, ()-> control.playMap(world.maps().getMap("tutorial")))); - row(); - + if(!gwt){ - add(new MenuButton("text-load", group, ui::showLoadGame)); - row(); - - add(new MenuButton("text-editor", group, ui::showEditor)); + add(new MenuButton("$text.joingame", group, ui::showJoinGame)); row(); } - add(new MenuButton("text-settings", group, ui::showPrefs)); + add(new MenuButton("$text.tutorial", group, ()-> control.playMap(world.maps().getMap("tutorial")))); row(); if(!gwt){ - add(new MenuButton("text-exit", group, Gdx.app::exit)); + add(new MenuButton("$text.loadgame", group, ui::showLoadGame)); + row(); + + add(new MenuButton("$text.editor", group, ui::showEditor)); + row(); + } + + add(new MenuButton("$text.settings", group, ui::showPrefs)); + row(); + + if(!gwt){ + add(new MenuButton("$text.quit", group, Gdx.app::exit)); } get().margin(16); }}.end(); diff --git a/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java b/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java index 88b2257356..41a1506e47 100644 --- a/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java +++ b/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java @@ -12,10 +12,7 @@ import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application; import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration; import com.badlogic.gdx.utils.Array; -import com.esotericsoftware.kryonet.Client; -import com.esotericsoftware.kryonet.Connection; -import com.esotericsoftware.kryonet.Listener; -import com.esotericsoftware.kryonet.Server; +import com.esotericsoftware.kryonet.*; import io.anuke.mindustry.Mindustry; import io.anuke.mindustry.net.Net; import io.anuke.mindustry.net.Net.ClientProvider; @@ -91,6 +88,7 @@ public class DesktopLauncher { @Override public void received (Connection connection, Object object) { + if(object instanceof FrameworkMessage) return; Net.handleClientReceived(object); } }); @@ -101,6 +99,11 @@ public class DesktopLauncher { client.connect(5000, ip, port, port); } + @Override + public void disconnect() { + client.close(); + } + @Override public void send(Object object, SendMode mode) { if(mode == SendMode.tcp){ @@ -155,6 +158,7 @@ public class DesktopLauncher { @Override public void received (Connection connection, Object object) { + if(object instanceof FrameworkMessage) return; Net.handleServerReceived(object); } }); From 4a2b2dee722bfd9f693c3db64e748e6bedf2190e Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 30 Dec 2017 19:20:20 -0500 Subject: [PATCH 5/5] Added NetClient/NetServer classes --- build.gradle | 2 +- core/src/io/anuke/mindustry/Mindustry.java | 3 +- core/src/io/anuke/mindustry/Vars.java | 4 +- .../io/anuke/mindustry/core/NetClient.java | 22 ++++++++++ .../io/anuke/mindustry/core/NetServer.java | 25 +++++++++++ core/src/io/anuke/mindustry/core/Network.java | 44 ------------------- core/src/io/anuke/mindustry/net/Net.java | 5 +++ .../src/io/anuke/mindustry/ui/MenuDialog.java | 7 ++- 8 files changed, 60 insertions(+), 52 deletions(-) create mode 100644 core/src/io/anuke/mindustry/core/NetClient.java create mode 100644 core/src/io/anuke/mindustry/core/NetServer.java delete mode 100644 core/src/io/anuke/mindustry/core/Network.java diff --git a/build.gradle b/build.gradle index b80b8a4fb5..fa53921eb3 100644 --- a/build.gradle +++ b/build.gradle @@ -21,7 +21,7 @@ allprojects { appName = "Mindustry" gdxVersion = '1.9.8' aiVersion = '1.8.1' - uCoreVersion = 'afc7fe249f'; + uCoreVersion = 'c732038b35'; } repositories { diff --git a/core/src/io/anuke/mindustry/Mindustry.java b/core/src/io/anuke/mindustry/Mindustry.java index 69d41d5d89..5c8a994b15 100644 --- a/core/src/io/anuke/mindustry/Mindustry.java +++ b/core/src/io/anuke/mindustry/Mindustry.java @@ -41,7 +41,8 @@ public class Mindustry extends ModuleCore { module(Vars.control = new Control()); module(Vars.renderer = new Renderer()); module(Vars.ui = new UI()); - module(Vars.network = new Network()); + module(Vars.netServer = new NetServer()); + module(Vars.netClient = new NetClient()); } public void loadBundle(){ diff --git a/core/src/io/anuke/mindustry/Vars.java b/core/src/io/anuke/mindustry/Vars.java index 103882e98e..d2048a193e 100644 --- a/core/src/io/anuke/mindustry/Vars.java +++ b/core/src/io/anuke/mindustry/Vars.java @@ -3,7 +3,6 @@ package io.anuke.mindustry; import com.badlogic.gdx.Application.ApplicationType; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.files.FileHandle; -import com.badlogic.gdx.utils.I18NBundle; import io.anuke.mindustry.core.*; import io.anuke.mindustry.entities.Player; @@ -80,7 +79,8 @@ public class Vars{ public static Renderer renderer; public static UI ui; public static World world; - public static Network network; + public static NetServer netServer; + public static NetClient netClient; public static Player player; diff --git a/core/src/io/anuke/mindustry/core/NetClient.java b/core/src/io/anuke/mindustry/core/NetClient.java new file mode 100644 index 0000000000..8b7a31c2b4 --- /dev/null +++ b/core/src/io/anuke/mindustry/core/NetClient.java @@ -0,0 +1,22 @@ +package io.anuke.mindustry.core; + +import io.anuke.mindustry.core.GameState.State; +import io.anuke.mindustry.net.Net; +import io.anuke.ucore.modules.Module; + +public class NetClient extends Module { + + public NetClient(){ + + } + + public void update(){ + if(!Net.client()) return; + + if(!GameState.is(State.menu) && Net.active()){ + + }else{ + Net.disconnect(); + } + } +} diff --git a/core/src/io/anuke/mindustry/core/NetServer.java b/core/src/io/anuke/mindustry/core/NetServer.java new file mode 100644 index 0000000000..fcc7495b0e --- /dev/null +++ b/core/src/io/anuke/mindustry/core/NetServer.java @@ -0,0 +1,25 @@ +package io.anuke.mindustry.core; + +import io.anuke.mindustry.Vars; +import io.anuke.mindustry.core.GameState.State; +import io.anuke.mindustry.net.Net; +import io.anuke.ucore.modules.Module; + +import java.io.IOException; + +public class NetServer extends Module{ + + public NetServer(){ + + } + + public void update(){ + if(!Net.server()) return; + + if(!GameState.is(State.menu) && Net.active()){ + + }else{ + Net.closeServer(); + } + } +} diff --git a/core/src/io/anuke/mindustry/core/Network.java b/core/src/io/anuke/mindustry/core/Network.java deleted file mode 100644 index 5f7ddd4237..0000000000 --- a/core/src/io/anuke/mindustry/core/Network.java +++ /dev/null @@ -1,44 +0,0 @@ -package io.anuke.mindustry.core; - -import io.anuke.mindustry.Vars; -import io.anuke.mindustry.core.GameState.State; -import io.anuke.mindustry.net.Net; -import io.anuke.ucore.modules.Module; - -import java.io.IOException; - -public class Network extends Module{ - private boolean isHosting; - - public Network(){ - - } - - public void update(){ - if(GameState.is(State.playing) && Net.active()){ - if(Net.server()){ - - }else{ - - } - } - - if(isHosting && GameState.is(State.menu)){ - Net.closeServer(); - isHosting = false; - } - } - - public void hostServer(int port) throws IOException{ - if(isHosting){ - throw new IOException("Already hosting a server!"); - } - - Net.host(port); - isHosting = true; - } - - public boolean isHosting(){ - return isHosting; - } -} diff --git a/core/src/io/anuke/mindustry/net/Net.java b/core/src/io/anuke/mindustry/net/Net.java index 4701ec8931..30151c8e45 100644 --- a/core/src/io/anuke/mindustry/net/Net.java +++ b/core/src/io/anuke/mindustry/net/Net.java @@ -100,6 +100,11 @@ public class Net{ return server; } + /**Whether this is a client or not.*/ + public static boolean client(){ + return !server; + } + /**Register classes that will be sent. Must be done for all classes.*/ public static void registerClasses(Class... classes){ clientProvider.register(classes); diff --git a/core/src/io/anuke/mindustry/ui/MenuDialog.java b/core/src/io/anuke/mindustry/ui/MenuDialog.java index 034f6df75e..656df00be7 100644 --- a/core/src/io/anuke/mindustry/ui/MenuDialog.java +++ b/core/src/io/anuke/mindustry/ui/MenuDialog.java @@ -5,13 +5,12 @@ import static io.anuke.mindustry.Vars.ui; import io.anuke.mindustry.Vars; import io.anuke.mindustry.core.GameState; import io.anuke.mindustry.core.GameState.State; +import io.anuke.mindustry.net.Net; import io.anuke.ucore.scene.Element; import io.anuke.ucore.scene.builders.build; import io.anuke.ucore.scene.builders.imagebutton; -import io.anuke.ucore.scene.ui.ConfirmDialog; import io.anuke.ucore.scene.ui.ImageButton; import io.anuke.ucore.scene.ui.TextField.TextFieldFilter.DigitsOnlyFilter; -import io.anuke.ucore.scene.ui.layout.Cell; import io.anuke.ucore.util.Bundles; import io.anuke.ucore.util.Strings; @@ -68,13 +67,13 @@ public class MenuDialog extends FloatingDialog{ Vars.ui.showError("$text.server.invalidport"); }else{ try{ - Vars.network.hostServer(result); + Net.host(result); }catch (IOException e){ Vars.ui.showError(Bundles.format("text.server.error", Strings.parseException(e, false))); } } }); - }).disabled(b -> Vars.network.isHosting()); + }).disabled(b -> Net.active() || (Net.active() && !Net.server())); content().row();