Extensive network refactor

This commit is contained in:
Anuken
2019-09-07 14:11:50 -04:00
parent 38fe99f10e
commit e90c8c4d3e
48 changed files with 781 additions and 887 deletions

View File

@@ -19,7 +19,6 @@ import io.anuke.mindustry.core.GameState.*;
import io.anuke.mindustry.game.Saves.*;
import io.anuke.mindustry.graphics.*;
import io.anuke.mindustry.io.SaveIO.*;
import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.type.*;
import io.anuke.mindustry.type.Zone.*;
import io.anuke.mindustry.ui.*;
@@ -105,7 +104,7 @@ public class DeployDialog extends FloatingDialog{
hide();
ui.loadAnd(() -> {
logic.reset();
Net.reset();
net.reset();
try{
control.saves.getZoneSlot().load();
state.set(State.playing);

View File

@@ -26,7 +26,7 @@ public class FloatingDialog extends Dialog{
hidden(() -> {
if(shouldPause && !state.is(State.menu)){
if(!wasPaused || Net.active()){
if(!wasPaused || net.active()){
state.set(State.playing);
}
}

View File

@@ -1,14 +1,12 @@
package io.anuke.mindustry.ui.dialogs;
import io.anuke.arc.Core;
import io.anuke.arc.graphics.Color;
import io.anuke.arc.scene.ui.ImageButton;
import io.anuke.arc.util.Strings;
import io.anuke.arc.util.Time;
import io.anuke.mindustry.Vars;
import io.anuke.mindustry.net.Net;
import io.anuke.arc.*;
import io.anuke.arc.graphics.*;
import io.anuke.arc.scene.ui.*;
import io.anuke.arc.util.*;
import io.anuke.mindustry.*;
import java.io.IOException;
import java.io.*;
import static io.anuke.mindustry.Vars.*;
@@ -65,7 +63,7 @@ public class HostDialog extends FloatingDialog{
ui.loadfrag.show("$hosting");
Time.runTask(5f, () -> {
try{
Net.host(Vars.port);
net.host(Vars.port);
player.isAdmin = true;
}catch(IOException e){
ui.showError(Core.bundle.format("server.error", Strings.parseException(e, true)));

View File

@@ -12,7 +12,6 @@ import io.anuke.arc.scene.ui.layout.*;
import io.anuke.arc.util.*;
import io.anuke.mindustry.*;
import io.anuke.mindustry.game.*;
import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.net.*;
import io.anuke.mindustry.net.Packets.*;
@@ -68,7 +67,7 @@ public class JoinDialog extends FloatingDialog{
refreshRemote();
}
add.hide();
}).disabled(b -> Core.settings.getString("ip").isEmpty() || Net.active());
}).disabled(b -> Core.settings.getString("ip").isEmpty() || net.active());
add.shown(() -> {
add.title.setText(renaming != null ? "$server.edit" : "$server.add");
@@ -173,7 +172,7 @@ public class JoinDialog extends FloatingDialog{
server.content.clear();
server.content.label(() -> Core.bundle.get("server.refreshing") + Strings.animated(Time.time(), 4, 11, "."));
Net.pingHost(server.ip, server.port, host -> setupServer(server, host), e -> {
net.pingHost(server.ip, server.port, host -> setupServer(server, host), e -> {
server.content.clear();
server.content.add("$host.invalid");
});
@@ -276,9 +275,9 @@ public class JoinDialog extends FloatingDialog{
local.clear();
local.background((Drawable)null);
local.table("button", t -> t.label(() -> "[accent]" + Core.bundle.get("hosts.discovering.any") + Strings.animated(Time.time(), 4, 10f, ".")).pad(10f)).growX();
Net.discoverServers(this::addLocalHost, this::finishLocalHosts);
net.discoverServers(this::addLocalHost, this::finishLocalHosts);
for(String host : defaultServers){
Net.pingHost(host, port, this::addLocalHost, e -> {});
net.pingHost(host, port, this::addLocalHost, e -> {});
}
}
@@ -325,9 +324,9 @@ public class JoinDialog extends FloatingDialog{
Time.runTask(2f, () -> {
logic.reset();
Net.reset();
net.reset();
Vars.netClient.beginConnecting();
Net.connect(ip, port, () -> {
net.connect(ip, port, () -> {
hide();
add.hide();
});

View File

@@ -13,7 +13,6 @@ import io.anuke.mindustry.core.GameState.*;
import io.anuke.mindustry.game.Saves.*;
import io.anuke.mindustry.io.*;
import io.anuke.mindustry.io.SaveIO.*;
import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.ui.*;
import java.io.*;
@@ -193,7 +192,7 @@ public class LoadDialog extends FloatingDialog{
ui.loadAnd(() -> {
try{
Net.reset();
net.reset();
slot.load();
state.set(State.playing);
}catch(SaveException e){

View File

@@ -52,7 +52,7 @@ public class PausedDialog extends FloatingDialog{
if(!world.isZone() && !state.isEditor()){
cont.row();
cont.addButton("$savegame", save::show);
cont.addButton("$loadgame", load::show).disabled(b -> Net.active());
cont.addButton("$loadgame", load::show).disabled(b -> net.active());
}
cont.row();
@@ -63,7 +63,7 @@ public class PausedDialog extends FloatingDialog{
}else{
ui.host.show();
}
}).disabled(b -> Net.active()).colspan(2).width(dw * 2 + 20f);
}).disabled(b -> net.active()).colspan(2).width(dw * 2 + 20f);
}
cont.row();
@@ -82,12 +82,12 @@ public class PausedDialog extends FloatingDialog{
cont.row();
cont.addRowImageTextButton("$load", "icon-load", isize, load::show).disabled(b -> Net.active());
cont.addRowImageTextButton("$load", "icon-load", isize, load::show).disabled(b -> net.active());
}else{
cont.row();
}
cont.addRowImageTextButton("$hostserver.mobile", "icon-host", isize, ui.host::show).disabled(b -> Net.active());
cont.addRowImageTextButton("$hostserver.mobile", "icon-host", isize, ui.host::show).disabled(b -> net.active());
cont.addRowImageTextButton("$quit", "icon-quit", isize, this::showQuitConfirm);
}
@@ -99,8 +99,8 @@ public class PausedDialog extends FloatingDialog{
Core.settings.put("playedtutorial", true);
Core.settings.save();
}
wasClient = Net.client();
if(Net.client()) netClient.disconnectQuietly();
wasClient = net.client();
if(net.client()) netClient.disconnectQuietly();
runExitSave();
hide();
});

View File

@@ -36,7 +36,7 @@ public class SettingsMenuDialog extends SettingsDialog{
hidden(() -> {
Sounds.back.play();
if(!state.is(State.menu)){
if(!wasPaused || Net.active())
if(!wasPaused || net.active())
state.set(State.playing);
}
});

View File

@@ -1,28 +1,23 @@
package io.anuke.mindustry.ui.fragments;
import io.anuke.arc.Core;
import io.anuke.arc.Input.TextInput;
import io.anuke.arc.collection.Array;
import io.anuke.arc.graphics.Color;
import io.anuke.arc.*;
import io.anuke.arc.Input.*;
import io.anuke.arc.collection.*;
import io.anuke.arc.graphics.*;
import io.anuke.arc.graphics.g2d.*;
import io.anuke.arc.math.Mathf;
import io.anuke.arc.scene.Group;
import io.anuke.arc.scene.ui.Label;
import io.anuke.arc.scene.ui.Label.LabelStyle;
import io.anuke.arc.scene.ui.TextField;
import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.arc.scene.ui.layout.UnitScl;
import io.anuke.arc.util.Align;
import io.anuke.arc.util.Time;
import io.anuke.mindustry.Vars;
import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.input.Binding;
import io.anuke.mindustry.net.Net;
import io.anuke.arc.math.*;
import io.anuke.arc.scene.*;
import io.anuke.arc.scene.ui.*;
import io.anuke.arc.scene.ui.Label.*;
import io.anuke.arc.scene.ui.layout.*;
import io.anuke.arc.util.*;
import io.anuke.mindustry.*;
import io.anuke.mindustry.gen.*;
import io.anuke.mindustry.input.*;
import static io.anuke.arc.Core.input;
import static io.anuke.arc.Core.scene;
import static io.anuke.mindustry.Vars.maxTextLength;
import static io.anuke.mindustry.Vars.mobile;
import static io.anuke.arc.Core.*;
import static io.anuke.mindustry.Vars.net;
import static io.anuke.mindustry.Vars.*;
public class ChatFragment extends Table{
private final static int messagesShown = 10;
@@ -53,7 +48,7 @@ public class ChatFragment extends Table{
font = scene.skin.getFont("default");
visible(() -> {
if(!Net.active() && messages.size > 0){
if(!net.active() && messages.size > 0){
clearMessages();
if(chatOpen){
@@ -61,12 +56,12 @@ public class ChatFragment extends Table{
}
}
return Net.active();
return net.active();
});
update(() -> {
if(Net.active() && input.keyTap(Binding.chat)){
if(net.active() && input.keyTap(Binding.chat)){
toggle();
}

View File

@@ -23,7 +23,6 @@ import io.anuke.mindustry.game.*;
import io.anuke.mindustry.gen.*;
import io.anuke.mindustry.graphics.*;
import io.anuke.mindustry.input.*;
import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.net.Packets.*;
import io.anuke.mindustry.type.*;
import io.anuke.mindustry.ui.*;
@@ -66,13 +65,13 @@ public class HudFragment extends Fragment{
flip = select.addImageButton("icon-arrow-up", style, iconsize, this::toggleMenus).get();
select.addImageButton("icon-pause", style, iconsize, () -> {
if(Net.active()){
if(net.active()){
ui.listfrag.toggle();
}else{
state.set(state.is(State.paused) ? State.playing : State.paused);
}
}).name("pause").update(i -> {
if(Net.active()){
if(net.active()){
i.getStyle().imageUp = Core.scene.skin.getDrawable("icon-players");
}else{
i.setDisabled(false);
@@ -81,7 +80,7 @@ public class HudFragment extends Fragment{
}).get();
select.addImageButton("icon-settings", style, iconsize, () -> {
if(Net.active() && mobile){
if(net.active() && mobile){
if(ui.chatfrag.chatOpen()){
ui.chatfrag.hide();
}else{
@@ -93,7 +92,7 @@ public class HudFragment extends Fragment{
ui.database.show();
}
}).update(i -> {
if(Net.active() && mobile){
if(net.active() && mobile){
i.getStyle().imageUp = Core.scene.skin.getDrawable("icon-chat");
}else{
i.getStyle().imageUp = Core.scene.skin.getDrawable("icon-database");
@@ -244,7 +243,7 @@ public class HudFragment extends Fragment{
info.label(() -> fps.get(Core.graphics.getFramesPerSecond())).left().style("outline");
info.row();
info.label(() -> ping.get(Net.getPing())).visible(Net::client).left().style("outline");
info.label(() -> ping.get(netClient.getPing())).visible(net::client).left().style("outline");
}).top().left();
});
@@ -542,7 +541,7 @@ public class HudFragment extends Fragment{
private boolean inLaunchWave(){
return world.isZone() &&
world.getZone().metCondition() &&
!Net.client() &&
!net.client() &&
state.wave % world.getZone().launchPeriod == 0 && !spawner.isSpawning();
}
@@ -639,12 +638,12 @@ public class HudFragment extends Fragment{
}
private boolean canSkipWave(){
return state.rules.waves && ((Net.server() || player.isAdmin) || !Net.active()) && state.enemies() == 0 && !spawner.isSpawning() && !state.rules.tutorial;
return state.rules.waves && ((net.server() || player.isAdmin) || !net.active()) && state.enemies() == 0 && !spawner.isSpawning() && !state.rules.tutorial;
}
private void addPlayButton(Table table){
table.right().addImageButton("icon-play", "right", 30f, () -> {
if(Net.client() && player.isAdmin){
if(net.client() && player.isAdmin){
Call.onAdminRequest(player, AdminAction.wave);
}else if(inLaunchWave()){
ui.showConfirm("$confirm", "$launch.skip.confirm", () -> !canSkipWave(), () -> state.wavetime = 0f);

View File

@@ -29,7 +29,7 @@ public class PlayerListFragment extends Fragment{
parent.fill(cont -> {
cont.visible(() -> visible);
cont.update(() -> {
if(!(Net.active() && !state.is(State.menu))){
if(!(net.active() && !state.is(State.menu))){
visible = false;
return;
}
@@ -52,8 +52,8 @@ public class PlayerListFragment extends Fragment{
pane.table(menu -> {
menu.defaults().growX().height(50f).fillY();
menu.addButton("$server.bans", ui.bans::show).disabled(b -> Net.client());
menu.addButton("$server.admins", ui.admins::show).disabled(b -> Net.client());
menu.addButton("$server.bans", ui.bans::show).disabled(b -> net.client());
menu.addButton("$server.admins", ui.admins::show).disabled(b -> net.client());
menu.addButton("$close", this::toggle);
}).margin(0f).pad(10f).growX();
@@ -72,7 +72,7 @@ public class PlayerListFragment extends Fragment{
playerGroup.all().each(user -> {
NetConnection connection = user.con;
if(connection == null && Net.server() && !user.isLocal) return;
if(connection == null && net.server() && !user.isLocal) return;
Table button = new Table();
button.left();
@@ -96,9 +96,9 @@ public class PlayerListFragment extends Fragment{
button.labelWrap("[#" + user.color.toString().toUpperCase() + "]" + user.name).width(170f).pad(10);
button.add().grow();
button.addImage("icon-admin").size(iconsize).visible(() -> user.isAdmin && !(!user.isLocal && Net.server())).padRight(5).get().updateVisibility();
button.addImage("icon-admin").size(iconsize).visible(() -> user.isAdmin && !(!user.isLocal && net.server())).padRight(5).get().updateVisibility();
if((Net.server() || player.isAdmin) && !user.isLocal && (!user.isAdmin || Net.server())){
if((net.server() || player.isAdmin) && !user.isLocal && (!user.isAdmin || net.server())){
button.add().growY();
float bs = (h) / 2f;
@@ -114,7 +114,7 @@ public class PlayerListFragment extends Fragment{
t.row();
t.addImageButton("icon-admin-small", "clear-toggle-partial", iconsizesmall, () -> {
if(Net.client()) return;
if(net.client()) return;
String id = user.uuid;
@@ -125,8 +125,8 @@ public class PlayerListFragment extends Fragment{
}
})
.update(b -> b.setChecked(user.isAdmin))
.disabled(b -> Net.client())
.touchable(() -> Net.client() ? Touchable.disabled : Touchable.enabled)
.disabled(b -> net.client())
.touchable(() -> net.client() ? Touchable.disabled : Touchable.enabled)
.checked(user.isAdmin);
t.addImageButton("icon-zoom-small", "clear-partial", iconsizesmall, () -> Call.onAdminRequest(user, AdminAction.trace));