mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
Merge pull request #3389 from kevlahnota/newmaster2
update SettingsScene
This commit is contained in:
@@ -104,6 +104,7 @@ public class Forge implements ApplicationListener {
|
|||||||
public static boolean isTabletDevice = false;
|
public static boolean isTabletDevice = false;
|
||||||
public static String locale = "en-US";
|
public static String locale = "en-US";
|
||||||
public Assets assets;
|
public Assets assets;
|
||||||
|
private ForgePreferences forgePreferences;
|
||||||
public static boolean hdbuttons = false;
|
public static boolean hdbuttons = false;
|
||||||
public static boolean hdstart = false;
|
public static boolean hdstart = false;
|
||||||
public static boolean isPortraitMode = false;
|
public static boolean isPortraitMode = false;
|
||||||
@@ -145,6 +146,11 @@ public class Forge implements ApplicationListener {
|
|||||||
private Forge() {
|
private Forge() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private ForgePreferences getForgePreferences() {
|
||||||
|
if (forgePreferences == null)
|
||||||
|
forgePreferences = new ForgePreferences();
|
||||||
|
return forgePreferences;
|
||||||
|
}
|
||||||
public static Localizer getLocalizer() {
|
public static Localizer getLocalizer() {
|
||||||
if (localizer == null)
|
if (localizer == null)
|
||||||
localizer = Localizer.getInstance();
|
localizer = Localizer.getInstance();
|
||||||
@@ -179,33 +185,38 @@ public class Forge implements ApplicationListener {
|
|||||||
*/
|
*/
|
||||||
Gdx.input.setCatchKey(Keys.BACK, true);
|
Gdx.input.setCatchKey(Keys.BACK, true);
|
||||||
destroyThis = true; //Prevent back()
|
destroyThis = true; //Prevent back()
|
||||||
ForgePreferences prefs = new ForgePreferences();
|
|
||||||
if (Files.exists(Paths.get(ForgeConstants.DEFAULT_SKINS_DIR+ForgeConstants.ADV_TEXTURE_BG_FILE)))
|
if (Files.exists(Paths.get(ForgeConstants.DEFAULT_SKINS_DIR+ForgeConstants.ADV_TEXTURE_BG_FILE)))
|
||||||
selector = prefs.getPref(FPref.UI_SELECTOR_MODE);
|
selector = getForgePreferences().getPref(FPref.UI_SELECTOR_MODE);
|
||||||
|
boolean landscapeMode = GuiBase.isAndroid() ? !isPortraitMode : screenWidth > screenHeight;
|
||||||
|
//update landscape mode preference if it doesn't match what the app loaded as
|
||||||
|
if (getForgePreferences().getPrefBoolean(FPref.UI_LANDSCAPE_MODE) != landscapeMode) {
|
||||||
|
getForgePreferences().setPref(FPref.UI_LANDSCAPE_MODE, landscapeMode);
|
||||||
|
getForgePreferences().save();
|
||||||
|
}
|
||||||
String skinName;
|
String skinName;
|
||||||
if (FileUtil.doesFileExist(ForgeConstants.MAIN_PREFS_FILE)) {
|
if (FileUtil.doesFileExist(ForgeConstants.MAIN_PREFS_FILE)) {
|
||||||
skinName = prefs.getPref(FPref.UI_SKIN);
|
skinName = getForgePreferences().getPref(FPref.UI_SKIN);
|
||||||
} else {
|
} else {
|
||||||
skinName = "default"; //use default skin if preferences file doesn't exist yet
|
skinName = "default"; //use default skin if preferences file doesn't exist yet
|
||||||
}
|
}
|
||||||
FSkin.loadLight(skinName, splashScreen);
|
FSkin.loadLight(skinName, splashScreen);
|
||||||
|
|
||||||
textureFiltering = prefs.getPrefBoolean(FPref.UI_LIBGDX_TEXTURE_FILTERING);
|
textureFiltering = getForgePreferences().getPrefBoolean(FPref.UI_LIBGDX_TEXTURE_FILTERING);
|
||||||
showFPS = prefs.getPrefBoolean(FPref.UI_SHOW_FPS);
|
showFPS = getForgePreferences().getPrefBoolean(FPref.UI_SHOW_FPS);
|
||||||
autoAIDeckSelection = prefs.getPrefBoolean(FPref.UI_AUTO_AIDECK_SELECTION);
|
autoAIDeckSelection = getForgePreferences().getPrefBoolean(FPref.UI_AUTO_AIDECK_SELECTION);
|
||||||
altPlayerLayout = prefs.getPrefBoolean(FPref.UI_ALT_PLAYERINFOLAYOUT);
|
altPlayerLayout = getForgePreferences().getPrefBoolean(FPref.UI_ALT_PLAYERINFOLAYOUT);
|
||||||
altZoneTabs = prefs.getPrefBoolean(FPref.UI_ALT_PLAYERZONETABS);
|
altZoneTabs = getForgePreferences().getPrefBoolean(FPref.UI_ALT_PLAYERZONETABS);
|
||||||
animatedCardTapUntap = prefs.getPrefBoolean(FPref.UI_ANIMATED_CARD_TAPUNTAP);
|
animatedCardTapUntap = getForgePreferences().getPrefBoolean(FPref.UI_ANIMATED_CARD_TAPUNTAP);
|
||||||
enableUIMask = prefs.getPref(FPref.UI_ENABLE_BORDER_MASKING);
|
enableUIMask = getForgePreferences().getPref(FPref.UI_ENABLE_BORDER_MASKING);
|
||||||
if (prefs.getPref(FPref.UI_ENABLE_BORDER_MASKING).equals("true")) //override old settings if not updated
|
if (getForgePreferences().getPref(FPref.UI_ENABLE_BORDER_MASKING).equals("true")) //override old settings if not updated
|
||||||
enableUIMask = "Full";
|
enableUIMask = "Full";
|
||||||
else if (prefs.getPref(FPref.UI_ENABLE_BORDER_MASKING).equals("false"))
|
else if (getForgePreferences().getPref(FPref.UI_ENABLE_BORDER_MASKING).equals("false"))
|
||||||
enableUIMask = "Off";
|
enableUIMask = "Off";
|
||||||
enablePreloadExtendedArt = prefs.getPrefBoolean(FPref.UI_ENABLE_PRELOAD_EXTENDED_ART);
|
enablePreloadExtendedArt = getForgePreferences().getPrefBoolean(FPref.UI_ENABLE_PRELOAD_EXTENDED_ART);
|
||||||
locale = prefs.getPref(FPref.UI_LANGUAGE);
|
locale = getForgePreferences().getPref(FPref.UI_LANGUAGE);
|
||||||
autoCache = prefs.getPrefBoolean(FPref.UI_AUTO_CACHE_SIZE);
|
autoCache = getForgePreferences().getPrefBoolean(FPref.UI_AUTO_CACHE_SIZE);
|
||||||
disposeTextures = prefs.getPrefBoolean(FPref.UI_ENABLE_DISPOSE_TEXTURES);
|
disposeTextures = getForgePreferences().getPrefBoolean(FPref.UI_ENABLE_DISPOSE_TEXTURES);
|
||||||
CJK_Font = prefs.getPref(FPref.UI_CJK_FONT);
|
CJK_Font = getForgePreferences().getPref(FPref.UI_CJK_FONT);
|
||||||
|
|
||||||
if (autoCache) {
|
if (autoCache) {
|
||||||
//increase cacheSize for devices with RAM more than 5GB, default is 300. Some phones have more than 10GB RAM (Mi 10, OnePlus 8, S20, etc..)
|
//increase cacheSize for devices with RAM more than 5GB, default is 300. Some phones have more than 10GB RAM (Mi 10, OnePlus 8, S20, etc..)
|
||||||
@@ -379,12 +390,6 @@ public class Forge implements ApplicationListener {
|
|||||||
//adjust height modifier
|
//adjust height modifier
|
||||||
adjustHeightModifier(getScreenWidth(), getScreenHeight());
|
adjustHeightModifier(getScreenWidth(), getScreenHeight());
|
||||||
|
|
||||||
//update landscape mode preference if it doesn't match what the app loaded as
|
|
||||||
if (FModel.getPreferences().getPrefBoolean(FPref.UI_LANDSCAPE_MODE) != isLandscapeMode()) {
|
|
||||||
FModel.getPreferences().setPref(FPref.UI_LANDSCAPE_MODE, isLandscapeMode());
|
|
||||||
FModel.getPreferences().save();
|
|
||||||
}
|
|
||||||
|
|
||||||
FThreads.invokeInBackgroundThread(() -> FThreads.invokeInEdtLater(() -> {
|
FThreads.invokeInBackgroundThread(() -> FThreads.invokeInEdtLater(() -> {
|
||||||
//load skin full
|
//load skin full
|
||||||
FSkin.loadFull(splashScreen);
|
FSkin.loadFull(splashScreen);
|
||||||
|
|||||||
@@ -30,7 +30,6 @@ import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;
|
|||||||
* Scene to handle settings of the base forge and adventure mode
|
* Scene to handle settings of the base forge and adventure mode
|
||||||
*/
|
*/
|
||||||
public class SettingsScene extends UIScene {
|
public class SettingsScene extends UIScene {
|
||||||
static public ForgePreferences Preference;
|
|
||||||
private final Table settingGroup;
|
private final Table settingGroup;
|
||||||
TextraButton backButton;
|
TextraButton backButton;
|
||||||
//TextraButton newPlane;
|
//TextraButton newPlane;
|
||||||
@@ -99,9 +98,6 @@ public class SettingsScene extends UIScene {
|
|||||||
super(Forge.isLandscapeMode() ? "ui/settings.json" : "ui/settings_portrait.json");
|
super(Forge.isLandscapeMode() ? "ui/settings.json" : "ui/settings_portrait.json");
|
||||||
|
|
||||||
settingGroup = new Table();
|
settingGroup = new Table();
|
||||||
if (Preference == null) {
|
|
||||||
Preference = FModel.getPreferences();
|
|
||||||
}
|
|
||||||
//temporary disable custom world until it works correctly on each update
|
//temporary disable custom world until it works correctly on each update
|
||||||
/*selectSourcePlane = Controls.newComboBox();
|
/*selectSourcePlane = Controls.newComboBox();
|
||||||
newPlaneName = Controls.newTextField("");
|
newPlaneName = Controls.newTextField("");
|
||||||
@@ -131,10 +127,10 @@ public class SettingsScene extends UIScene {
|
|||||||
mode = "720p";
|
mode = "720p";
|
||||||
Graphics.setVideoMode(mode);
|
Graphics.setVideoMode(mode);
|
||||||
|
|
||||||
//update preference for classic mode if needed
|
//update
|
||||||
if (Preference.getPref(ForgePreferences.FPref.UI_VIDEO_MODE).equals(mode)) {
|
if (!FModel.getPreferences().getPref(ForgePreferences.FPref.UI_VIDEO_MODE).equalsIgnoreCase(mode)) {
|
||||||
Preference.setPref(ForgePreferences.FPref.UI_VIDEO_MODE, mode);
|
FModel.getPreferences().setPref(ForgePreferences.FPref.UI_VIDEO_MODE, mode);
|
||||||
Preference.save();
|
FModel.getPreferences().save();
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
});
|
});
|
||||||
@@ -194,10 +190,8 @@ public class SettingsScene extends UIScene {
|
|||||||
Config.instance().getSettingData().fullScreen = value;
|
Config.instance().getSettingData().fullScreen = value;
|
||||||
Config.instance().saveSettings();
|
Config.instance().saveSettings();
|
||||||
//update
|
//update
|
||||||
if (Preference.getPrefBoolean(ForgePreferences.FPref.UI_FULLSCREEN_MODE) != value) {
|
FModel.getPreferences().setPref(ForgePreferences.FPref.UI_FULLSCREEN_MODE, Config.instance().getSettingData().fullScreen);
|
||||||
Preference.setPref(ForgePreferences.FPref.UI_LANDSCAPE_MODE, value);
|
FModel.getPreferences().save();
|
||||||
Preference.save();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -237,16 +231,18 @@ public class SettingsScene extends UIScene {
|
|||||||
addCheckBox(Forge.getLocalizer().getMessage("lblLandscapeMode"), ForgePreferences.FPref.UI_LANDSCAPE_MODE);
|
addCheckBox(Forge.getLocalizer().getMessage("lblLandscapeMode"), ForgePreferences.FPref.UI_LANDSCAPE_MODE);
|
||||||
addCheckBox(Forge.getLocalizer().getMessage("lblAnimatedCardTapUntap"), ForgePreferences.FPref.UI_ANIMATED_CARD_TAPUNTAP);
|
addCheckBox(Forge.getLocalizer().getMessage("lblAnimatedCardTapUntap"), ForgePreferences.FPref.UI_ANIMATED_CARD_TAPUNTAP);
|
||||||
if (!GuiBase.isAndroid()) {
|
if (!GuiBase.isAndroid()) {
|
||||||
final String[] item = {Preference.getPref(ForgePreferences.FPref.UI_ENABLE_BORDER_MASKING)};
|
final String[] item = {FModel.getPreferences().getPref(ForgePreferences.FPref.UI_ENABLE_BORDER_MASKING)};
|
||||||
SelectBox<String> borderMask = Controls.newComboBox(new String[]{"Off", "Crop", "Full", "Art"}, item[0], o -> {
|
SelectBox<String> borderMask = Controls.newComboBox(new String[]{"Off", "Crop", "Full", "Art"}, item[0], o -> {
|
||||||
String mode = (String) o;
|
String mode = (String) o;
|
||||||
if (mode == null)
|
if (mode == null)
|
||||||
mode = "Crop";
|
mode = "Crop";
|
||||||
item[0] = mode;
|
item[0] = mode;
|
||||||
//update preference for classic mode if needed
|
//update
|
||||||
Preference.setPref(ForgePreferences.FPref.UI_ENABLE_BORDER_MASKING, mode);
|
if (!FModel.getPreferences().getPref(ForgePreferences.FPref.UI_ENABLE_BORDER_MASKING).equalsIgnoreCase(mode)) {
|
||||||
Preference.save();
|
FModel.getPreferences().setPref(ForgePreferences.FPref.UI_ENABLE_BORDER_MASKING, mode);
|
||||||
Forge.enableUIMask = Preference.getPref(ForgePreferences.FPref.UI_ENABLE_BORDER_MASKING);
|
FModel.getPreferences().save();
|
||||||
|
Forge.enableUIMask = FModel.getPreferences().getPref(ForgePreferences.FPref.UI_ENABLE_BORDER_MASKING);
|
||||||
|
}
|
||||||
ImageCache.clearGeneratedCards();
|
ImageCache.clearGeneratedCards();
|
||||||
ImageCache.disposeTextures();
|
ImageCache.disposeTextures();
|
||||||
return null;
|
return null;
|
||||||
@@ -277,12 +273,12 @@ public class SettingsScene extends UIScene {
|
|||||||
|
|
||||||
private void addInputField(String name, ForgePreferences.FPref pref) {
|
private void addInputField(String name, ForgePreferences.FPref pref) {
|
||||||
TextField box = Controls.newTextField("");
|
TextField box = Controls.newTextField("");
|
||||||
box.setText(Preference.getPref(pref));
|
box.setText(FModel.getPreferences().getPref(pref));
|
||||||
box.addListener(new ChangeListener() {
|
box.addListener(new ChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public void changed(ChangeEvent event, Actor actor) {
|
public void changed(ChangeEvent event, Actor actor) {
|
||||||
Preference.setPref(pref, ((TextField) actor).getText());
|
FModel.getPreferences().setPref(pref, ((TextField) actor).getText());
|
||||||
Preference.save();
|
FModel.getPreferences().save();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -292,12 +288,12 @@ public class SettingsScene extends UIScene {
|
|||||||
|
|
||||||
private void addCheckBox(String name, ForgePreferences.FPref pref) {
|
private void addCheckBox(String name, ForgePreferences.FPref pref) {
|
||||||
CheckBox box = Controls.newCheckBox("");
|
CheckBox box = Controls.newCheckBox("");
|
||||||
box.setChecked(Preference.getPrefBoolean(pref));
|
box.setChecked(FModel.getPreferences().getPrefBoolean(pref));
|
||||||
box.addListener(new ChangeListener() {
|
box.addListener(new ChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public void changed(ChangeEvent event, Actor actor) {
|
public void changed(ChangeEvent event, Actor actor) {
|
||||||
Preference.setPref(pref, ((CheckBox) actor).isChecked());
|
FModel.getPreferences().setPref(pref, ((CheckBox) actor).isChecked());
|
||||||
Preference.save();
|
FModel.getPreferences().save();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -307,12 +303,12 @@ public class SettingsScene extends UIScene {
|
|||||||
|
|
||||||
private void addSettingSlider(String name, ForgePreferences.FPref pref, int min, int max) {
|
private void addSettingSlider(String name, ForgePreferences.FPref pref, int min, int max) {
|
||||||
Slider slide = Controls.newSlider(min, max, 1, false);
|
Slider slide = Controls.newSlider(min, max, 1, false);
|
||||||
slide.setValue(Preference.getPrefInt(pref));
|
slide.setValue(FModel.getPreferences().getPrefInt(pref));
|
||||||
slide.addListener(new ChangeListener() {
|
slide.addListener(new ChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public void changed(ChangeEvent event, Actor actor) {
|
public void changed(ChangeEvent event, Actor actor) {
|
||||||
Preference.setPref(pref, String.valueOf((int) ((Slider) actor).getValue()));
|
FModel.getPreferences().setPref(pref, String.valueOf((int) ((Slider) actor).getValue()));
|
||||||
Preference.save();
|
FModel.getPreferences().save();
|
||||||
if (ForgePreferences.FPref.UI_VOL_MUSIC.equals(pref))
|
if (ForgePreferences.FPref.UI_VOL_MUSIC.equals(pref))
|
||||||
SoundSystem.instance.refreshVolume();
|
SoundSystem.instance.refreshVolume();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user