From 4a2b2dee722bfd9f693c3db64e748e6bedf2190e Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 30 Dec 2017 19:20:20 -0500 Subject: [PATCH] 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();