mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 19:28:01 +00:00
Merge pull request #603 from henges/add_continue_button
[Adventure] Add continue button to main menu
This commit is contained in:
@@ -13,4 +13,5 @@ public class SettingData {
|
|||||||
public String plane;
|
public String plane;
|
||||||
public boolean fullScreen;
|
public boolean fullScreen;
|
||||||
public String videomode;
|
public String videomode;
|
||||||
|
public String lastActiveSave;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,13 +6,16 @@ import com.badlogic.gdx.scenes.scene2d.ui.TextButton;
|
|||||||
import forge.Forge;
|
import forge.Forge;
|
||||||
import forge.adventure.stage.GameHUD;
|
import forge.adventure.stage.GameHUD;
|
||||||
import forge.adventure.stage.MapStage;
|
import forge.adventure.stage.MapStage;
|
||||||
|
import forge.adventure.util.Config;
|
||||||
import forge.adventure.world.WorldSave;
|
import forge.adventure.world.WorldSave;
|
||||||
|
import forge.screens.TransitionScreen;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* First scene after the splash screen
|
* First scene after the splash screen
|
||||||
*/
|
*/
|
||||||
public class StartScene extends UIScene {
|
public class StartScene extends UIScene {
|
||||||
TextButton saveButton, resumeButton, newGameButton, newGameButtonPlus, loadButton, settingsButton, exitButton, switchButton;
|
|
||||||
|
TextButton saveButton, resumeButton, continueButton, newGameButton, newGameButtonPlus, loadButton, settingsButton, exitButton, switchButton;
|
||||||
|
|
||||||
public StartScene() {
|
public StartScene() {
|
||||||
super(Forge.isLandscapeMode()?"ui/start_menu.json":"ui/start_menu_portrait.json");
|
super(Forge.isLandscapeMode()?"ui/start_menu.json":"ui/start_menu_portrait.json");
|
||||||
@@ -45,6 +48,23 @@ public class StartScene extends UIScene {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean Continue() {
|
||||||
|
final String lastActiveSave = Config.instance().getSettingData().lastActiveSave;
|
||||||
|
|
||||||
|
if (WorldSave.isSafeFile(lastActiveSave) && WorldSave.load(WorldSave.filenameToSlot(lastActiveSave))) {
|
||||||
|
Forge.setTransitionScreen(new TransitionScreen(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
Forge.switchScene(SceneType.GameScene.instance);
|
||||||
|
}
|
||||||
|
}, null, false, true));
|
||||||
|
} else {
|
||||||
|
Forge.clearTransitionScreen();
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean settings() {
|
public boolean settings() {
|
||||||
Forge.switchScene(SceneType.SettingsScene.instance);
|
Forge.switchScene(SceneType.SettingsScene.instance);
|
||||||
return true;
|
return true;
|
||||||
@@ -61,7 +81,13 @@ public class StartScene extends UIScene {
|
|||||||
if (hasSaveButton)
|
if (hasSaveButton)
|
||||||
hasSaveButton = !((TileMapScene) SceneType.TileMapScene.instance).currentMap().isInMap();
|
hasSaveButton = !((TileMapScene) SceneType.TileMapScene.instance).currentMap().isInMap();
|
||||||
saveButton.setVisible(hasSaveButton);
|
saveButton.setVisible(hasSaveButton);
|
||||||
resumeButton.setVisible(WorldSave.getCurrentSave().getWorld().getData() != null);
|
|
||||||
|
boolean hasResumeButton = WorldSave.getCurrentSave().getWorld().getData() != null;
|
||||||
|
resumeButton.setVisible(hasResumeButton);
|
||||||
|
|
||||||
|
// Continue button mutually exclusive with resume button
|
||||||
|
continueButton.setVisible(Config.instance().getSettingData().lastActiveSave != null && !hasResumeButton);
|
||||||
|
|
||||||
Gdx.input.setInputProcessor(stage); //Start taking input from the ui
|
Gdx.input.setInputProcessor(stage); //Start taking input from the ui
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -87,6 +113,7 @@ public class StartScene extends UIScene {
|
|||||||
ui.onButtonPress("Load", () -> StartScene.this.Load());
|
ui.onButtonPress("Load", () -> StartScene.this.Load());
|
||||||
ui.onButtonPress("Save", () -> StartScene.this.Save());
|
ui.onButtonPress("Save", () -> StartScene.this.Save());
|
||||||
ui.onButtonPress("Resume", () -> StartScene.this.Resume());
|
ui.onButtonPress("Resume", () -> StartScene.this.Resume());
|
||||||
|
ui.onButtonPress("Continue", () -> StartScene.this.Continue());
|
||||||
ui.onButtonPress("Settings", () -> StartScene.this.settings());
|
ui.onButtonPress("Settings", () -> StartScene.this.settings());
|
||||||
ui.onButtonPress("Exit", () -> StartScene.this.Exit());
|
ui.onButtonPress("Exit", () -> StartScene.this.Exit());
|
||||||
ui.onButtonPress("Switch", () -> Forge.switchToClassic());
|
ui.onButtonPress("Switch", () -> Forge.switchToClassic());
|
||||||
@@ -101,6 +128,8 @@ public class StartScene extends UIScene {
|
|||||||
saveButton.getLabel().setText(Forge.getLocalizer().getMessage("lblSave"));
|
saveButton.getLabel().setText(Forge.getLocalizer().getMessage("lblSave"));
|
||||||
resumeButton = ui.findActor("Resume");
|
resumeButton = ui.findActor("Resume");
|
||||||
resumeButton.getLabel().setText(Forge.getLocalizer().getMessage("lblResume"));
|
resumeButton.getLabel().setText(Forge.getLocalizer().getMessage("lblResume"));
|
||||||
|
continueButton = ui.findActor("Continue");
|
||||||
|
continueButton.getLabel().setText(Forge.getLocalizer().getMessage("lblContinue"));
|
||||||
settingsButton = ui.findActor("Settings");
|
settingsButton = ui.findActor("Settings");
|
||||||
settingsButton.getLabel().setText(Forge.getLocalizer().getMessage("lblSettings"));
|
settingsButton.getLabel().setText(Forge.getLocalizer().getMessage("lblSettings"));
|
||||||
exitButton = ui.findActor("Exit");
|
exitButton = ui.findActor("Exit");
|
||||||
|
|||||||
@@ -166,6 +166,9 @@ public class WorldSave {
|
|||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Config.instance().getSettingData().lastActiveSave = WorldSave.filename(currentSlot);
|
||||||
|
Config.instance().saveSettings();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -54,6 +54,15 @@
|
|||||||
"x": 160,
|
"x": 160,
|
||||||
"y": 140
|
"y": 140
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "TextButton",
|
||||||
|
"name": "Continue",
|
||||||
|
"text": "Continue",
|
||||||
|
"width": 160,
|
||||||
|
"height": 30,
|
||||||
|
"x": 160,
|
||||||
|
"y": 140
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "TextButton",
|
"type": "TextButton",
|
||||||
"name": "Settings",
|
"name": "Settings",
|
||||||
|
|||||||
@@ -54,6 +54,15 @@
|
|||||||
"x": 16,
|
"x": 16,
|
||||||
"yOffset": 8
|
"yOffset": 8
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "TextButton",
|
||||||
|
"name": "Continue",
|
||||||
|
"text": "Continue",
|
||||||
|
"width": 238,
|
||||||
|
"height": 48,
|
||||||
|
"x": 16,
|
||||||
|
"yOffset": 8
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "TextButton",
|
"type": "TextButton",
|
||||||
"name": "Settings",
|
"name": "Settings",
|
||||||
|
|||||||
@@ -2878,6 +2878,7 @@ lblStart=Start
|
|||||||
lblLoad=Load
|
lblLoad=Load
|
||||||
lblSaveGame=Save Game
|
lblSaveGame=Save Game
|
||||||
lblResume=Resume
|
lblResume=Resume
|
||||||
|
lblContinue=Continue
|
||||||
lblClassic=Classic
|
lblClassic=Classic
|
||||||
lblClassicMode=Classic Mode
|
lblClassicMode=Classic Mode
|
||||||
lblAdventureMode=Adventure Mode
|
lblAdventureMode=Adventure Mode
|
||||||
|
|||||||
Reference in New Issue
Block a user