update SettingsScene

-update Music Slider, BorderMask Options
-fix not applying changes
This commit is contained in:
Anthony Calosa
2023-05-06 07:20:19 +08:00
parent 06df4451d2
commit c6040086d3
2 changed files with 37 additions and 12 deletions

View File

@@ -9,9 +9,11 @@ import com.github.tommyettinger.textra.TextraLabel;
import forge.Forge; import forge.Forge;
import forge.adventure.util.Config; import forge.adventure.util.Config;
import forge.adventure.util.Controls; import forge.adventure.util.Controls;
import forge.assets.ImageCache;
import forge.gui.GuiBase; import forge.gui.GuiBase;
import forge.localinstance.properties.ForgePreferences; import forge.localinstance.properties.ForgePreferences;
import forge.model.FModel; import forge.model.FModel;
import forge.sound.SoundSystem;
import java.io.IOException; import java.io.IOException;
import java.nio.file.Files; import java.nio.file.Files;
@@ -96,7 +98,7 @@ public class SettingsScene extends UIScene {
settingGroup = new Table(); settingGroup = new Table();
if (Preference == null) { if (Preference == null) {
Preference = new ForgePreferences(); 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();
@@ -141,9 +143,9 @@ public class SettingsScene extends UIScene {
} }
Config.instance().saveSettings(); Config.instance().saveSettings();
//update preference for classic mode if needed //update preference for classic mode if needed
if (FModel.getPreferences().getPref(ForgePreferences.FPref.UI_VIDEO_MODE) != mode) { if (Preference.getPref(ForgePreferences.FPref.UI_VIDEO_MODE).equals(mode)) {
FModel.getPreferences().setPref(ForgePreferences.FPref.UI_VIDEO_MODE, mode); Preference.setPref(ForgePreferences.FPref.UI_VIDEO_MODE, mode);
FModel.getPreferences().save(); Preference.save();
} }
return null; return null;
}); });
@@ -203,9 +205,9 @@ public class SettingsScene extends UIScene {
Config.instance().getSettingData().fullScreen = value; Config.instance().getSettingData().fullScreen = value;
Config.instance().saveSettings(); Config.instance().saveSettings();
//update //update
if (FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.UI_FULLSCREEN_MODE) != value) { if (Preference.getPrefBoolean(ForgePreferences.FPref.UI_FULLSCREEN_MODE) != value) {
FModel.getPreferences().setPref(ForgePreferences.FPref.UI_LANDSCAPE_MODE, value); Preference.setPref(ForgePreferences.FPref.UI_LANDSCAPE_MODE, value);
FModel.getPreferences().save(); Preference.save();
} }
} }
}); });
@@ -224,8 +226,7 @@ public class SettingsScene extends UIScene {
addSettingField(Forge.getLocalizer().getMessage("lblDisableWinLose"), Config.instance().getSettingData().disableWinLose, new ChangeListener() { addSettingField(Forge.getLocalizer().getMessage("lblDisableWinLose"), Config.instance().getSettingData().disableWinLose, new ChangeListener() {
@Override @Override
public void changed(ChangeEvent event, Actor actor) { public void changed(ChangeEvent event, Actor actor) {
boolean value = ((CheckBox) actor).isChecked(); Config.instance().getSettingData().disableWinLose = ((CheckBox) actor).isChecked();
Config.instance().getSettingData().disableWinLose = value;
Config.instance().saveSettings(); Config.instance().saveSettings();
} }
}); });
@@ -247,11 +248,28 @@ 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()) {
addCheckBox(Forge.getLocalizer().getMessage("lblBorderMaskOption"), ForgePreferences.FPref.UI_ENABLE_BORDER_MASKING); final String[] item = {Preference.getPref(ForgePreferences.FPref.UI_ENABLE_BORDER_MASKING)};
SelectBox<String> borderMask = Controls.newComboBox(new String[]{"Off", "Crop", "Full", "Art"}, item[0], o -> {
String mode = (String) o;
if (mode == null)
mode = "Crop";
item[0] = mode;
//update preference for classic mode if needed
if (Preference.getPref(ForgePreferences.FPref.UI_ENABLE_BORDER_MASKING).equals(mode)) {
Preference.setPref(ForgePreferences.FPref.UI_ENABLE_BORDER_MASKING, mode);
Preference.save();
Forge.enableUIMask = Preference.getPref(ForgePreferences.FPref.UI_ENABLE_BORDER_MASKING);
ImageCache.clearGeneratedCards();
ImageCache.disposeTextures();
}
return null;
});
addLabel(Forge.getLocalizer().getMessage("lblBorderMaskOption"));
settingGroup.add(borderMask).align(Align.right).pad(2);
addCheckBox(Forge.getLocalizer().getMessage("lblPreloadExtendedArtCards"), ForgePreferences.FPref.UI_ENABLE_PRELOAD_EXTENDED_ART); addCheckBox(Forge.getLocalizer().getMessage("lblPreloadExtendedArtCards"), ForgePreferences.FPref.UI_ENABLE_PRELOAD_EXTENDED_ART);
addCheckBox(Forge.getLocalizer().getMessage("lblAutoCacheSize"), ForgePreferences.FPref.UI_AUTO_CACHE_SIZE); addCheckBox(Forge.getLocalizer().getMessage("lblAutoCacheSize"), ForgePreferences.FPref.UI_AUTO_CACHE_SIZE);
addCheckBox(Forge.getLocalizer().getMessage("lblDisposeTextures"), ForgePreferences.FPref.UI_ENABLE_DISPOSE_TEXTURES); addCheckBox(Forge.getLocalizer().getMessage("lblDisposeTextures"), ForgePreferences.FPref.UI_ENABLE_DISPOSE_TEXTURES);
//addInputField(Forge.getLocalizer().getMessage("lblDisposeTextures"), ForgePreferences.FPref.UI_LANGUAGE);
} }
@@ -308,6 +326,8 @@ public class SettingsScene extends UIScene {
public void changed(ChangeEvent event, Actor actor) { public void changed(ChangeEvent event, Actor actor) {
Preference.setPref(pref, String.valueOf((int) ((Slider) actor).getValue())); Preference.setPref(pref, String.valueOf((int) ((Slider) actor).getValue()));
Preference.save(); Preference.save();
if (ForgePreferences.FPref.UI_VOL_MUSIC.equals(pref))
SoundSystem.instance.refreshVolume();
} }
}); });
addLabel(name); addLabel(name);

View File

@@ -224,12 +224,17 @@ public class SoundSystem {
changeBackgroundTrack(); //change track when music completes on its own changeBackgroundTrack(); //change track when music completes on its own
} }
}); });
currentTrack.setVolume(FModel.getPreferences().getPrefInt(FPref.UI_VOL_MUSIC)/100f); refreshVolume();
} catch (final Exception ex) { } catch (final Exception ex) {
System.err.println("Unable to load music file: " + filename); System.err.println("Unable to load music file: " + filename);
} }
} }
public void refreshVolume() {
if (currentTrack != null) {
currentTrack.setVolume(FModel.getPreferences().getPrefInt(FPref.UI_VOL_MUSIC) / 100f);
}
}
public void pause() { public void pause() {
if (currentTrack != null) { if (currentTrack != null) {
currentTrack.pause(); currentTrack.pause();