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) {
|
||||
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
|
||||
public void run(Boolean result) {
|
||||
if (result) {
|
||||
public void run(Integer result) {
|
||||
if (result == 0) {
|
||||
exited = true;
|
||||
exitAnimation(false);
|
||||
} else if (result == 1 && Forge.isLandscapeMode() && GuiBase.isAndroid()) {
|
||||
switchToAdventure();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
final Localizer localizer = Localizer.getInstance();
|
||||
|
||||
if (silent) {
|
||||
callback.run(true);
|
||||
callback.run(0);
|
||||
}
|
||||
else {
|
||||
FOptionPane.showConfirmDialog(
|
||||
localizer.getMessage("lblAreYouSureYouWishExitForge"), localizer.getMessage("lblExitForge"),
|
||||
localizer.getMessage("lblExit"), localizer.getMessage("lblCancel"), callback);
|
||||
FOptionPane.showOptionDialog(localizer.getMessage("lblAreYouSureYouWishExitForge"), title,
|
||||
FOptionPane.QUESTION_ICON, options,0, callback);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -674,6 +681,30 @@ public class Forge implements ApplicationListener {
|
||||
public static void clearCurrentScreen() {
|
||||
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) {
|
||||
transitionScreen = screen;
|
||||
}
|
||||
|
||||
@@ -133,6 +133,14 @@ public class StartScene extends UIScene {
|
||||
StartScene.this.Exit();
|
||||
}
|
||||
});
|
||||
if (GuiBase.isAndroid()) {
|
||||
ui.onButtonPress("Switch", new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
Forge.switchToClassic();
|
||||
}
|
||||
});
|
||||
}
|
||||
saveButton.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.ui.Image;
|
||||
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.UIActor;
|
||||
|
||||
@@ -53,7 +55,8 @@ public class UIScene extends Scene{
|
||||
}
|
||||
@Override
|
||||
public void resLoaded() {
|
||||
stage = new Stage(new StretchViewport(GetIntendedWidth(), GetIntendedHeight())){
|
||||
Viewport viewport = new ScalingViewport(Scaling.stretch, GetIntendedWidth(), GetIntendedHeight());
|
||||
stage = new Stage(viewport){
|
||||
|
||||
@Override
|
||||
public boolean keyUp(int keycode) {
|
||||
|
||||
@@ -21,6 +21,7 @@ import com.badlogic.gdx.utils.Scaling;
|
||||
import com.badlogic.gdx.utils.viewport.ScalingViewport;
|
||||
import forge.Forge;
|
||||
import forge.adventure.player.AdventurePlayer;
|
||||
import forge.adventure.scene.Scene;
|
||||
import forge.adventure.scene.SceneType;
|
||||
import forge.adventure.util.Config;
|
||||
import forge.adventure.util.Current;
|
||||
@@ -54,7 +55,7 @@ public class GameHUD extends Stage {
|
||||
float TOUCHPAD_KNOB_MIN_WIDTH = 40f;
|
||||
|
||||
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;
|
||||
this.gameStage = gameStage;
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ public abstract class GameStage extends Stage {
|
||||
}
|
||||
|
||||
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() {
|
||||
@Override
|
||||
public void run() {
|
||||
|
||||
@@ -366,7 +366,7 @@ public class FOptionPane extends FDialog {
|
||||
if (Forge.endKeyInput()) { return true; }
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -58,10 +58,19 @@
|
||||
"type": "TextButton",
|
||||
"name": "Exit",
|
||||
"text": "Exit",
|
||||
"width": 160,
|
||||
"width": 75,
|
||||
"height": 30,
|
||||
"x": 160,
|
||||
"y": 220
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "Switch",
|
||||
"text": "Classic Mode",
|
||||
"width": 75,
|
||||
"height": 30,
|
||||
"x": 245,
|
||||
"y": 220
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user