From 9a1bb69cd80fbbf0d3360f8c94c265188610c144 Mon Sep 17 00:00:00 2001 From: Anuken Date: Wed, 31 Oct 2018 17:10:00 -0400 Subject: [PATCH] Cleaned up pause menu mess / Added sector links --- core/src/io/anuke/mindustry/core/Control.java | 17 ++++++----------- core/src/io/anuke/mindustry/maps/Sector.java | 3 +++ .../mindustry/ui/dialogs/FloatingDialog.java | 15 ++++++--------- .../mindustry/ui/dialogs/PausedDialog.java | 18 ++++++++---------- .../ui/dialogs/SettingsMenuDialog.java | 6 +----- .../mindustry/ui/dialogs/UnlocksDialog.java | 4 ++-- 6 files changed, 26 insertions(+), 37 deletions(-) diff --git a/core/src/io/anuke/mindustry/core/Control.java b/core/src/io/anuke/mindustry/core/Control.java index a126e0c699..188af1c563 100644 --- a/core/src/io/anuke/mindustry/core/Control.java +++ b/core/src/io/anuke/mindustry/core/Control.java @@ -379,17 +379,12 @@ public class Control extends Module{ state.set(state.is(State.playing) ? State.paused : State.playing); } - if(Inputs.keyTap("menu")){ - if(state.is(State.paused)){ - ui.paused.hide(); - state.set(State.playing); - }else if(!ui.restart.isShown()){ - if(ui.chatfrag.chatOpen()){ - ui.chatfrag.hide(); - }else{ - ui.paused.show(); - state.set(State.paused); - } + if(Inputs.keyTap("menu") && !ui.restart.isShown()){ + if(ui.chatfrag.chatOpen()){ + ui.chatfrag.hide(); + }else if(!ui.paused.isShown() && !ui.hasDialog()){ + ui.paused.show(); + state.set(State.paused); } } diff --git a/core/src/io/anuke/mindustry/maps/Sector.java b/core/src/io/anuke/mindustry/maps/Sector.java index bba6876781..75b2a7d66f 100644 --- a/core/src/io/anuke/mindustry/maps/Sector.java +++ b/core/src/io/anuke/mindustry/maps/Sector.java @@ -2,6 +2,7 @@ package io.anuke.mindustry.maps; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.utils.Array; +import com.badlogic.gdx.utils.IntArray; import io.anuke.annotations.Annotations.Serialize; import io.anuke.mindustry.game.Saves.SaveSlot; import io.anuke.mindustry.game.SpawnGroup; @@ -24,6 +25,8 @@ public class Sector{ public int saveID = -1; /**Num of missions in this sector that have been completed so far.*/ public int completedMissions; + /**List of links to other sector coords.*/ + public IntArray links = new IntArray(); /**Display texture. Needs to be disposed.*/ public transient Texture texture; diff --git a/core/src/io/anuke/mindustry/ui/dialogs/FloatingDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/FloatingDialog.java index 0a0adb4a59..600c59c193 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/FloatingDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/FloatingDialog.java @@ -13,7 +13,6 @@ import io.anuke.ucore.scene.ui.Dialog; import io.anuke.ucore.scene.ui.ScrollPane; import static io.anuke.mindustry.Vars.state; -import static io.anuke.mindustry.Vars.ui; public class FloatingDialog extends Dialog{ private boolean wasPaused; @@ -29,19 +28,16 @@ public class FloatingDialog extends Dialog{ hidden(() -> { if(shouldPause && !state.is(State.menu)){ - if(!wasPaused || Net.active()) + if(!wasPaused || Net.active()){ state.set(State.playing); + } } }); shown(() -> { if(shouldPause && !state.is(State.menu)){ wasPaused = state.is(State.paused); - if(ui.paused.getScene() != null){ - wasPaused = ui.paused.wasPaused; - } - if(!Net.active()) state.set(State.paused); - ui.paused.hide(); + state.set(State.paused); } }); @@ -71,8 +67,9 @@ public class FloatingDialog extends Dialog{ buttons().addImageTextButton("$text.back", "icon-arrow-left", 30f, this::hide).size(230f, 64f); keyDown(key -> { - if(key == Keys.ESCAPE || key == Keys.BACK) - hide(); + if(key == Keys.ESCAPE || key == Keys.BACK) { + Gdx.app.postRunnable(this::hide); + } }); } } diff --git a/core/src/io/anuke/mindustry/ui/dialogs/PausedDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/PausedDialog.java index 6aa1dfa80a..96ca6fbd19 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/PausedDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/PausedDialog.java @@ -1,5 +1,6 @@ package io.anuke.mindustry.ui.dialogs; +import com.badlogic.gdx.Input.Keys; import io.anuke.mindustry.core.GameState.State; import io.anuke.mindustry.net.Net; import io.anuke.ucore.scene.ui.layout.Table; @@ -8,16 +9,22 @@ import io.anuke.ucore.util.Bundles; import static io.anuke.mindustry.Vars.*; public class PausedDialog extends FloatingDialog{ - public boolean wasPaused = false; private SaveDialog save = new SaveDialog(); private LoadDialog load = new LoadDialog(); private Table missionTable; public PausedDialog(){ super("$text.menu"); + shouldPause = true; setup(); shown(this::rebuild); + + keyDown(key -> { + if(key == Keys.ESCAPE || key == Keys.BACK) { + hide(); + } + }); } void rebuild(){ @@ -40,11 +47,6 @@ public class PausedDialog extends FloatingDialog{ } }); - shown(() -> { - wasPaused = state.is(State.paused); - if(!Net.active()) state.set(State.paused); - }); - content().table(t -> missionTable = t).colspan(mobile ? 3 : 1); content().row(); @@ -53,8 +55,6 @@ public class PausedDialog extends FloatingDialog{ content().addButton("$text.back", () -> { hide(); - if((!wasPaused || Net.active()) && !state.is(State.menu)) - state.set(State.playing); }); content().row(); @@ -86,8 +86,6 @@ public class PausedDialog extends FloatingDialog{ content().addRowImageTextButton("$text.back", "icon-play-2", isize, () -> { hide(); - if(!wasPaused && !state.is(State.menu)) - state.set(State.playing); }); content().addRowImageTextButton("$text.settings", "icon-tools", isize, ui.settings::show); content().addRowImageTextButton("$text.save", "icon-save", isize, save::show).disabled(b -> world.getSector() != null); diff --git a/core/src/io/anuke/mindustry/ui/dialogs/SettingsMenuDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/SettingsMenuDialog.java index 69a7e9479a..79faa1a780 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/SettingsMenuDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/SettingsMenuDialog.java @@ -50,11 +50,7 @@ public class SettingsMenuDialog extends SettingsDialog{ shown(() -> { if(!state.is(State.menu)){ wasPaused = state.is(State.paused); - if(ui.paused.getScene() != null){ - wasPaused = ui.paused.wasPaused; - } - if(!Net.active()) state.set(State.paused); - ui.paused.hide(); + state.set(State.paused); } }); diff --git a/core/src/io/anuke/mindustry/ui/dialogs/UnlocksDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/UnlocksDialog.java index 1ba76a20ab..8b46947740 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/UnlocksDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/UnlocksDialog.java @@ -21,8 +21,8 @@ public class UnlocksDialog extends FloatingDialog{ public UnlocksDialog(){ super("$text.unlocks"); - addCloseButton(); shouldPause = true; + addCloseButton(); shown(this::rebuild); onResize(this::rebuild); } @@ -36,7 +36,7 @@ public class UnlocksDialog extends FloatingDialog{ Array[] allContent = content.getContentMap(); - for(int j =0; j< allContent.length; j ++){ + for(int j = 0; j < allContent.length; j ++){ ContentType type = ContentType.values()[j]; Array array = allContent[j];