separated setting

This commit is contained in:
Sharlotte
2021-07-16 11:44:38 +09:00
parent 2e528a2fd9
commit 281b07351c
2 changed files with 33 additions and 32 deletions

View File

@@ -46,5 +46,5 @@ shows every units' hp, ammo, shield by bar under each unit.
## Setting ## Setting
can toggle display on/off ingame, set some ui opacity etc. can toggle display on/off ingame, set some ui opacity etc.
- [ ] improve setting ui - [ ] improve setting ui
- [ ] separate setting because it's too many - [x] separate setting because it's too many
- [ ] add its description - [ ] add its description

View File

@@ -13,6 +13,8 @@ import mindustry.ui.Styles;
import mindustry.ui.dialogs.*; import mindustry.ui.dialogs.*;
import sun.tools.jconsole.Tab; import sun.tools.jconsole.Tab;
import java.util.Iterator;
import static arc.Core.bundle; import static arc.Core.bundle;
import static arc.Core.settings; import static arc.Core.settings;
import static mindustry.Vars.*; import static mindustry.Vars.*;
@@ -22,14 +24,16 @@ public class Setting {
public static SettingsMenuDialog.SettingsTable opacityTable = new SettingsMenuDialog.SettingsTable(); public static SettingsMenuDialog.SettingsTable opacityTable = new SettingsMenuDialog.SettingsTable();
public static SettingsMenuDialog.SettingsTable scanTable = new SettingsMenuDialog.SettingsTable(); public static SettingsMenuDialog.SettingsTable scanTable = new SettingsMenuDialog.SettingsTable();
public void addGraphicCheckSetting(String key){ public void addGraphicCheckSetting(String key, boolean def){
ui.settings.graphics.checkPref(key, Core.settings.getBool(key)); ui.settings.graphics.checkPref(key, def);
} }
public void addGraphicSlideSetting(String key, int def, int min, int max, int step, SettingsMenuDialog.StringProcessor s, Seq<SettingsMenuDialog.SettingsTable.Setting> list){ public void addGraphicSlideSetting(String key, int def, int min, int max, int step, SettingsMenuDialog.StringProcessor s, Seq<SettingsMenuDialog.SettingsTable.Setting> list){
list.add(new SettingsMenuDialog.SettingsTable.Setting() { list.add(new SettingsMenuDialog.SettingsTable.Setting() {
{ {
name = key; name = key;
title = bundle.get("setting." + key + ".name"); title = bundle.get("setting." + key + ".name");
Core.settings.defaults(name, def);
} }
@Override @Override
@@ -56,13 +60,14 @@ public class Setting {
table.row(); table.row();
} }
}); });
settings.defaults(key, def);
} }
public void addGraphicCheckSetting(String key, boolean def, Seq<SettingsMenuDialog.SettingsTable.Setting> list){ public void addGraphicCheckSetting(String key, boolean def, Seq<SettingsMenuDialog.SettingsTable.Setting> list){
list.add(new SettingsMenuDialog.SettingsTable.Setting() { list.add(new SettingsMenuDialog.SettingsTable.Setting() {
{ {
name = key; name = key;
title = bundle.get("setting." + key + ".name"); title = bundle.get("setting." + key + ".name");
Core.settings.defaults(name, def);
} }
@Override @Override
@@ -80,7 +85,6 @@ public class Setting {
table.row(); table.row();
} }
}); });
settings.defaults(key, def);
} }
public void addGraphicTypeSetting(String key, int defs, String dialogs, String invalid, int warnMax, Seq<SettingsMenuDialog.SettingsTable.Setting> list){ public void addGraphicTypeSetting(String key, int defs, String dialogs, String invalid, int warnMax, Seq<SettingsMenuDialog.SettingsTable.Setting> list){
@@ -218,29 +222,38 @@ public class Setting {
{ {
name = key; name = key;
title = Core.bundle.get("setting." + key + ".name"); title = Core.bundle.get("setting." + key + ".name");
Core.settings.defaults(name, 1);
} }
public void rebuild() { public Table rebuild() {
table.clearChildren(); table.clearChildren();
for(SettingsMenuDialog.SettingsTable.Setting setting : list){ Iterator var1 = list.iterator();
while(var1.hasNext()) {
SettingsMenuDialog.SettingsTable.Setting setting = (SettingsMenuDialog.SettingsTable.Setting)var1.next();
setting.add(table); setting.add(table);
} }
table.button(Core.bundle.get("settings.reset", "Reset to Defaults"), () -> {
Iterator var2 = list.iterator();
table.button(bundle.get("settings.reset", "Reset to Defaults"), () -> { while(var1.hasNext()) {
for(SettingsMenuDialog.SettingsTable.Setting setting : list){ SettingsMenuDialog.SettingsTable.Setting setting = (SettingsMenuDialog.SettingsTable.Setting)var1.next();
if(setting.name == null || setting.title == null) continue; if (setting.name != null && setting.title != null) {
settings.put(setting.name, settings.getDefault(setting.name)); Core.settings.put(setting.name, Core.settings.getDefault(setting.name));
}
} }
rebuild(); rebuild();
}).margin(14).width(240f).pad(6); }).margin(14.0F).width(240.0F).pad(6.0F);
return table;
} }
@Override @Override
public void add(SettingsMenuDialog.SettingsTable settingsTable) { public void add(SettingsMenuDialog.SettingsTable settingsTable) {
settingsTable.table(Core.scene.getStyle(Button.ButtonStyle.class).up, t->{ settingsTable.table(Core.scene.getStyle(Button.ButtonStyle.class).up, t->{
rebuild(); t.add(rebuild());
t.add(table);
t.row(); t.row();
}); });
settingsTable.row(); settingsTable.row();
@@ -249,9 +262,6 @@ public class Setting {
} }
public void init(){ public void init(){
boolean tmp = Core.settings.getBool("uiscalechanged", false);
Core.settings.put("uiscalechanged", false);
Seq<SettingsMenuDialog.SettingsTable.Setting> waveSeq = new Seq<>(); Seq<SettingsMenuDialog.SettingsTable.Setting> waveSeq = new Seq<>();
addGraphicCheckSetting("pastwave", false, waveSeq); addGraphicCheckSetting("pastwave", false, waveSeq);
addGraphicCheckSetting("emptywave", true, waveSeq); addGraphicCheckSetting("emptywave", true, waveSeq);
@@ -270,20 +280,11 @@ public class Setting {
addGraphicSlideSetting("uiopacity", 50, 0, 100, 5, s -> s + "%", opacitySeq); addGraphicSlideSetting("uiopacity", 50, 0, 100, 5, s -> s + "%", opacitySeq);
addGraphicDialogSetting("opacitysetting", opacitySeq, opacityTable); addGraphicDialogSetting("opacitysetting", opacitySeq, opacityTable);
addGraphicCheckSetting("infoui"); addGraphicCheckSetting("infoui", true);
addGraphicCheckSetting("weaponui"); addGraphicCheckSetting("weaponui", true);
addGraphicCheckSetting("select"); addGraphicCheckSetting("select", false);
addGraphicCheckSetting("unithealthui"); addGraphicCheckSetting("unithealthui", true);
addGraphicCheckSetting("ssim"); addGraphicCheckSetting("ssim", false);
addGraphicCheckSetting("gaycursor"); addGraphicCheckSetting("gaycursor", false);
Core.settings.defaults("infoui", true);
Core.settings.defaults("weaponui", true);
Core.settings.defaults("select", false);
Core.settings.defaults("unithealthui", true);
Core.settings.defaults("ssim", false);
Core.settings.defaults("gaycursor", false);
Core.settings.put("uiscalechanged", tmp);
} }
} }