Fixed bug with dialogs not saving paused state

This commit is contained in:
Anuken
2017-11-07 22:39:11 -05:00
parent 01f5fccf96
commit f46cb8624d
3 changed files with 19 additions and 7 deletions
+2 -2
View File
@@ -98,8 +98,8 @@ public class Control extends Module{
spawns = Array.with( spawns = Array.with(
new EnemySpawn(TitanEnemy.class){{ new EnemySpawn(TitanEnemy.class){{
after = 16; after = 3;
spacing = 3; spacing = 2;
scaling = 5; scaling = 5;
}}, }},
new EnemySpawn(HealerEnemy.class){{ new EnemySpawn(HealerEnemy.class){{
+9 -4
View File
@@ -39,9 +39,11 @@ public class UI extends SceneModule{
Table itemtable, weapontable, tools, loadingtable, desctable, respawntable, configtable; Table itemtable, weapontable, tools, loadingtable, desctable, respawntable, configtable;
SettingsDialog prefs; SettingsDialog prefs;
KeybindDialog keys; KeybindDialog keys;
Dialog about, menu, restart, levels, upgrades, load, settingserror; Dialog about, restart, levels, upgrades, load, settingserror;
MenuDialog menu;
Tooltip tooltip; Tooltip tooltip;
Tile configTile; Tile configTile;
boolean wasPaused = false;
VisibilityProvider play = () -> !GameState.is(State.menu); VisibilityProvider play = () -> !GameState.is(State.menu);
VisibilityProvider nplay = () -> GameState.is(State.menu); VisibilityProvider nplay = () -> GameState.is(State.menu);
@@ -162,12 +164,17 @@ public class UI extends SceneModule{
prefs.hidden(()->{ prefs.hidden(()->{
if(!GameState.is(State.menu)){ if(!GameState.is(State.menu)){
GameState.set(State.playing); if(!wasPaused)
GameState.set(State.playing);
} }
}); });
prefs.shown(()->{ prefs.shown(()->{
if(!GameState.is(State.menu)){ if(!GameState.is(State.menu)){
wasPaused = GameState.is(State.paused);
if(menu.getScene() != null){
wasPaused = menu.wasPaused;
}
GameState.set(State.paused); GameState.set(State.paused);
menu.hide(); menu.hide();
} }
@@ -325,12 +332,10 @@ public class UI extends SceneModule{
float isize = Unit.dp.inPixels(40); float isize = Unit.dp.inPixels(40);
new imagebutton("icon-menu", isize, ()->{ new imagebutton("icon-menu", isize, ()->{
GameState.set(State.paused);
showMenu(); showMenu();
}); });
new imagebutton("icon-settings", isize, ()->{ new imagebutton("icon-settings", isize, ()->{
GameState.set(State.paused);
prefs.show(); prefs.show();
}); });
@@ -16,6 +16,7 @@ import io.anuke.ucore.scene.ui.layout.Unit;
public class MenuDialog extends Dialog{ public class MenuDialog extends Dialog{
private SaveDialog save = new SaveDialog(); private SaveDialog save = new SaveDialog();
private LoadDialog load = new LoadDialog(); private LoadDialog load = new LoadDialog();
public boolean wasPaused = false;
public MenuDialog(){ public MenuDialog(){
super("Paused", "dialog"); super("Paused", "dialog");
@@ -27,7 +28,13 @@ public class MenuDialog extends Dialog{
content().addButton("Back", ()->{ content().addButton("Back", ()->{
hide(); hide();
GameState.set(State.playing); if(!wasPaused)
GameState.set(State.playing);
});
shown(()->{
wasPaused = GameState.is(State.paused);
GameState.set(State.paused);
}); });
content().row(); content().row();