mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 20:28:00 +00:00
[Mobile] Add Adventure/Classic Switch button
- on Classic Mode, on Exit, you can switch to Adventure Mode - on Adventure Mode, added switch button to Classic Mode
This commit is contained in:
@@ -581,25 +581,32 @@ public class Forge implements ApplicationListener {
|
|||||||
public static void exit(boolean silent) {
|
public static void exit(boolean silent) {
|
||||||
if (exited) { return; } //don't allow exiting multiple times
|
if (exited) { return; } //don't allow exiting multiple times
|
||||||
|
|
||||||
Callback<Boolean> callback = new Callback<Boolean>() {
|
final Localizer localizer = Localizer.getInstance();
|
||||||
|
final String title = Forge.isLandscapeMode() && GuiBase.isAndroid() ? "" : localizer.getMessage("lblExitForge");
|
||||||
|
final List<String> options = new ArrayList<>();
|
||||||
|
options.add(localizer.getMessage("lblExit"));
|
||||||
|
if (Forge.isLandscapeMode() && GuiBase.isAndroid())
|
||||||
|
options.add(localizer.getMessageorUseDefault("lblAdventureMode", "Adventure Mode"));
|
||||||
|
options.add(localizer.getMessage("lblCancel"));
|
||||||
|
|
||||||
|
Callback<Integer> callback = new Callback<Integer>() {
|
||||||
@Override
|
@Override
|
||||||
public void run(Boolean result) {
|
public void run(Integer result) {
|
||||||
if (result) {
|
if (result == 0) {
|
||||||
exited = true;
|
exited = true;
|
||||||
exitAnimation(false);
|
exitAnimation(false);
|
||||||
|
} else if (result == 1 && Forge.isLandscapeMode() && GuiBase.isAndroid()) {
|
||||||
|
switchToAdventure();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
final Localizer localizer = Localizer.getInstance();
|
|
||||||
|
|
||||||
if (silent) {
|
if (silent) {
|
||||||
callback.run(true);
|
callback.run(0);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
FOptionPane.showConfirmDialog(
|
FOptionPane.showOptionDialog(localizer.getMessage("lblAreYouSureYouWishExitForge"), title,
|
||||||
localizer.getMessage("lblAreYouSureYouWishExitForge"), localizer.getMessage("lblExitForge"),
|
FOptionPane.QUESTION_ICON, options,0, callback);
|
||||||
localizer.getMessage("lblExit"), localizer.getMessage("lblCancel"), callback);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -674,6 +681,30 @@ public class Forge implements ApplicationListener {
|
|||||||
public static void clearCurrentScreen() {
|
public static void clearCurrentScreen() {
|
||||||
currentScreen = null;
|
currentScreen = null;
|
||||||
}
|
}
|
||||||
|
public static void switchToClassic() {
|
||||||
|
setTransitionScreen(new TransitionScreen(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
isMobileAdventureMode = false;
|
||||||
|
GuiBase.setIsAdventureMode(false);
|
||||||
|
setCursor(FSkin.getCursor().get(0), "0");
|
||||||
|
altZoneTabs = FModel.getPreferences().getPrefBoolean(FPref.UI_ALT_PLAYERZONETABS);
|
||||||
|
Gdx.input.setInputProcessor(getInputProcessor());
|
||||||
|
openHomeDefault();
|
||||||
|
clearTransitionScreen();
|
||||||
|
}
|
||||||
|
}, ScreenUtils.getFrameBufferTexture(), false, false));
|
||||||
|
}
|
||||||
|
public static void switchToAdventure() {
|
||||||
|
setTransitionScreen(new TransitionScreen(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
clearCurrentScreen();
|
||||||
|
clearTransitionScreen();
|
||||||
|
openAdventure();
|
||||||
|
}
|
||||||
|
}, ScreenUtils.getFrameBufferTexture(), false, false));
|
||||||
|
}
|
||||||
public static void setTransitionScreen(TransitionScreen screen) {
|
public static void setTransitionScreen(TransitionScreen screen) {
|
||||||
transitionScreen = screen;
|
transitionScreen = screen;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -133,6 +133,14 @@ public class StartScene extends UIScene {
|
|||||||
StartScene.this.Exit();
|
StartScene.this.Exit();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
if (GuiBase.isAndroid()) {
|
||||||
|
ui.onButtonPress("Switch", new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
Forge.switchToClassic();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
saveButton.setVisible(false);
|
saveButton.setVisible(false);
|
||||||
resumeButton.setVisible(false);
|
resumeButton.setVisible(false);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,9 @@ import com.badlogic.gdx.graphics.g2d.TextureRegion;
|
|||||||
import com.badlogic.gdx.scenes.scene2d.Stage;
|
import com.badlogic.gdx.scenes.scene2d.Stage;
|
||||||
import com.badlogic.gdx.scenes.scene2d.ui.Image;
|
import com.badlogic.gdx.scenes.scene2d.ui.Image;
|
||||||
import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable;
|
import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable;
|
||||||
import com.badlogic.gdx.utils.viewport.StretchViewport;
|
import com.badlogic.gdx.utils.Scaling;
|
||||||
|
import com.badlogic.gdx.utils.viewport.ScalingViewport;
|
||||||
|
import com.badlogic.gdx.utils.viewport.Viewport;
|
||||||
import forge.adventure.util.Config;
|
import forge.adventure.util.Config;
|
||||||
import forge.adventure.util.UIActor;
|
import forge.adventure.util.UIActor;
|
||||||
|
|
||||||
@@ -53,7 +55,8 @@ public class UIScene extends Scene{
|
|||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void resLoaded() {
|
public void resLoaded() {
|
||||||
stage = new Stage(new StretchViewport(GetIntendedWidth(), GetIntendedHeight())){
|
Viewport viewport = new ScalingViewport(Scaling.stretch, GetIntendedWidth(), GetIntendedHeight());
|
||||||
|
stage = new Stage(viewport){
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean keyUp(int keycode) {
|
public boolean keyUp(int keycode) {
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import com.badlogic.gdx.utils.Scaling;
|
|||||||
import com.badlogic.gdx.utils.viewport.ScalingViewport;
|
import com.badlogic.gdx.utils.viewport.ScalingViewport;
|
||||||
import forge.Forge;
|
import forge.Forge;
|
||||||
import forge.adventure.player.AdventurePlayer;
|
import forge.adventure.player.AdventurePlayer;
|
||||||
|
import forge.adventure.scene.Scene;
|
||||||
import forge.adventure.scene.SceneType;
|
import forge.adventure.scene.SceneType;
|
||||||
import forge.adventure.util.Config;
|
import forge.adventure.util.Config;
|
||||||
import forge.adventure.util.Current;
|
import forge.adventure.util.Current;
|
||||||
@@ -54,7 +55,7 @@ public class GameHUD extends Stage {
|
|||||||
float TOUCHPAD_KNOB_MIN_WIDTH = 40f;
|
float TOUCHPAD_KNOB_MIN_WIDTH = 40f;
|
||||||
|
|
||||||
private GameHUD(GameStage gameStage) {
|
private GameHUD(GameStage gameStage) {
|
||||||
super(new ScalingViewport(Scaling.fillX, 480f, 270f), gameStage.getBatch());
|
super(new ScalingViewport(Scaling.stretch, Scene.GetIntendedWidth(), Scene.GetIntendedHeight()), gameStage.getBatch());
|
||||||
instance = this;
|
instance = this;
|
||||||
this.gameStage = gameStage;
|
this.gameStage = gameStage;
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ public abstract class GameStage extends Stage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public GameStage() {
|
public GameStage() {
|
||||||
super(new ScalingViewport(Scaling.fillX, Scene.GetIntendedWidth(), Scene.GetIntendedHeight(), new OrthographicCamera()));
|
super(new ScalingViewport(Scaling.stretch, Scene.GetIntendedWidth(), Scene.GetIntendedHeight(), new OrthographicCamera()));
|
||||||
WorldSave.getCurrentSave().onLoad(new Runnable() {
|
WorldSave.getCurrentSave().onLoad(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
|||||||
@@ -366,7 +366,7 @@ public class FOptionPane extends FDialog {
|
|||||||
if (Forge.endKeyInput()) { return true; }
|
if (Forge.endKeyInput()) { return true; }
|
||||||
|
|
||||||
if (isButtonEnabled(1)) {
|
if (isButtonEnabled(1)) {
|
||||||
setResult(1); //set result to final option on Escape or Back
|
setResult(isButtonEnabled(2) ? 2 : 1); //set result to final option on Escape or Back
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,10 +58,19 @@
|
|||||||
"type": "TextButton",
|
"type": "TextButton",
|
||||||
"name": "Exit",
|
"name": "Exit",
|
||||||
"text": "Exit",
|
"text": "Exit",
|
||||||
"width": 160,
|
"width": 75,
|
||||||
"height": 30,
|
"height": 30,
|
||||||
"x": 160,
|
"x": 160,
|
||||||
"y": 220
|
"y": 220
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "TextButton",
|
||||||
|
"name": "Switch",
|
||||||
|
"text": "Classic Mode",
|
||||||
|
"width": 75,
|
||||||
|
"height": 30,
|
||||||
|
"x": 245,
|
||||||
|
"y": 220
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user