From f46cb8624d0573a7b32620a9284bf5104355b399 Mon Sep 17 00:00:00 2001 From: Anuken Date: Tue, 7 Nov 2017 22:39:11 -0500 Subject: [PATCH] Fixed bug with dialogs not saving paused state --- core/src/io/anuke/mindustry/Control.java | 4 ++-- core/src/io/anuke/mindustry/UI.java | 13 +++++++++---- core/src/io/anuke/mindustry/ui/MenuDialog.java | 9 ++++++++- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/core/src/io/anuke/mindustry/Control.java b/core/src/io/anuke/mindustry/Control.java index db3b072d59..96e9b5d4d5 100644 --- a/core/src/io/anuke/mindustry/Control.java +++ b/core/src/io/anuke/mindustry/Control.java @@ -98,8 +98,8 @@ public class Control extends Module{ spawns = Array.with( new EnemySpawn(TitanEnemy.class){{ - after = 16; - spacing = 3; + after = 3; + spacing = 2; scaling = 5; }}, new EnemySpawn(HealerEnemy.class){{ diff --git a/core/src/io/anuke/mindustry/UI.java b/core/src/io/anuke/mindustry/UI.java index 7c43341414..15eab475da 100644 --- a/core/src/io/anuke/mindustry/UI.java +++ b/core/src/io/anuke/mindustry/UI.java @@ -39,9 +39,11 @@ public class UI extends SceneModule{ Table itemtable, weapontable, tools, loadingtable, desctable, respawntable, configtable; SettingsDialog prefs; KeybindDialog keys; - Dialog about, menu, restart, levels, upgrades, load, settingserror; + Dialog about, restart, levels, upgrades, load, settingserror; + MenuDialog menu; Tooltip tooltip; Tile configTile; + boolean wasPaused = false; VisibilityProvider play = () -> !GameState.is(State.menu); VisibilityProvider nplay = () -> GameState.is(State.menu); @@ -162,12 +164,17 @@ public class UI extends SceneModule{ prefs.hidden(()->{ if(!GameState.is(State.menu)){ - GameState.set(State.playing); + if(!wasPaused) + GameState.set(State.playing); } }); prefs.shown(()->{ if(!GameState.is(State.menu)){ + wasPaused = GameState.is(State.paused); + if(menu.getScene() != null){ + wasPaused = menu.wasPaused; + } GameState.set(State.paused); menu.hide(); } @@ -325,12 +332,10 @@ public class UI extends SceneModule{ float isize = Unit.dp.inPixels(40); new imagebutton("icon-menu", isize, ()->{ - GameState.set(State.paused); showMenu(); }); new imagebutton("icon-settings", isize, ()->{ - GameState.set(State.paused); prefs.show(); }); diff --git a/core/src/io/anuke/mindustry/ui/MenuDialog.java b/core/src/io/anuke/mindustry/ui/MenuDialog.java index cac0becb79..31da8b3cef 100644 --- a/core/src/io/anuke/mindustry/ui/MenuDialog.java +++ b/core/src/io/anuke/mindustry/ui/MenuDialog.java @@ -16,6 +16,7 @@ import io.anuke.ucore.scene.ui.layout.Unit; public class MenuDialog extends Dialog{ private SaveDialog save = new SaveDialog(); private LoadDialog load = new LoadDialog(); + public boolean wasPaused = false; public MenuDialog(){ super("Paused", "dialog"); @@ -27,7 +28,13 @@ public class MenuDialog extends Dialog{ content().addButton("Back", ()->{ hide(); - GameState.set(State.playing); + if(!wasPaused) + GameState.set(State.playing); + }); + + shown(()->{ + wasPaused = GameState.is(State.paused); + GameState.set(State.paused); }); content().row();