From 5ff9e9cb8689ab8f80249698d9b7b95d7c712949 Mon Sep 17 00:00:00 2001 From: AlurienFlame <62194841+AlurienFlame@users.noreply.github.com> Date: Fri, 20 Dec 2024 22:13:36 -0800 Subject: [PATCH] support configuring booleans --- .../net/balancedrecall/BalancedRecall.java | 2 -- .../balancedrecall/BalancedRecallConfig.java | 4 +-- .../java/net/balancedrecall/ConfigScreen.java | 36 +++++++++++-------- 3 files changed, 24 insertions(+), 18 deletions(-) diff --git a/src/main/java/net/balancedrecall/BalancedRecall.java b/src/main/java/net/balancedrecall/BalancedRecall.java index a3b138f..325da15 100644 --- a/src/main/java/net/balancedrecall/BalancedRecall.java +++ b/src/main/java/net/balancedrecall/BalancedRecall.java @@ -16,8 +16,6 @@ public class BalancedRecall implements ModInitializer { public static final String MODID = "balancedrecall"; - public static final BalancedRecallConfig config = new BalancedRecallConfig(); - // Items private static final RegistryKey magic_mirror_key = RegistryKey.of(RegistryKeys.ITEM, Identifier.of(MODID, "magic_mirror")); public static final Item MAGIC_MIRROR = new MagicMirror(new Item.Settings().registryKey(magic_mirror_key).maxDamage(256).repairable(Items.ENDER_PEARL).useCooldown(1)); diff --git a/src/main/java/net/balancedrecall/BalancedRecallConfig.java b/src/main/java/net/balancedrecall/BalancedRecallConfig.java index ed6bb65..56f9c0b 100644 --- a/src/main/java/net/balancedrecall/BalancedRecallConfig.java +++ b/src/main/java/net/balancedrecall/BalancedRecallConfig.java @@ -21,7 +21,7 @@ public class BalancedRecallConfig { static File configFile = configPath.toFile(); // Configs - public JsonObject config; + public static JsonObject config; // Constructor creates the config file if it doesn't exist public BalancedRecallConfig() { @@ -64,7 +64,7 @@ private void read() { } // Write the current config to the file. - public void write() { + public static void write() { try { FileWriter writer = new FileWriter(configFile); new GsonBuilder().setPrettyPrinting().create().toJson(config, writer); diff --git a/src/main/java/net/balancedrecall/ConfigScreen.java b/src/main/java/net/balancedrecall/ConfigScreen.java index 3bb6c00..f24986d 100644 --- a/src/main/java/net/balancedrecall/ConfigScreen.java +++ b/src/main/java/net/balancedrecall/ConfigScreen.java @@ -38,9 +38,15 @@ protected void init() { // Mirror settings // TODO: Save booleans - column.add(CheckboxWidget.builder(Text.of("Taking damage interrupts recall"), this.textRenderer).checked(true).build()); - column.add(CheckboxWidget.builder(Text.of("Taking damage puts mirror on cooldown"), this.textRenderer).checked(true).build()); - column.add(CheckboxWidget.builder(Text.of("Recalling is impossible when mosters are nearby"), this.textRenderer).checked(true).build()); + column.add(CheckboxWidget.builder(Text.of("Taking damage interrupts recall"), this.textRenderer).checked(BalancedRecallConfig.config.get("take_damage_interrupts_recall").getAsBoolean()).callback((checkbox, checked)->{ + BalancedRecallConfig.config.addProperty("take_damage_interrupts_recall", checked); + }).build()); + column.add(CheckboxWidget.builder(Text.of("Taking damage puts mirror on cooldown"), this.textRenderer).checked(BalancedRecallConfig.config.get("take_damage_puts_mirror_on_cooldown").getAsBoolean()).callback((checkbox, checked)->{ + BalancedRecallConfig.config.addProperty("take_damage_puts_mirror_on_cooldown", checked); + }).build()); + column.add(CheckboxWidget.builder(Text.of("Recalling is impossible when mosters are nearby"), this.textRenderer).checked(BalancedRecallConfig.config.get("recall_impossible_when_monsters_nearby").getAsBoolean()).callback((checkbox, checked)->{ + BalancedRecallConfig.config.addProperty("recall_impossible_when_monsters_nearby", checked); + }).build()); GridWidget grid = new GridWidget(); grid.getMainPositioner().margin(4).alignHorizontalCenter(); @@ -51,39 +57,41 @@ protected void init() { TextFieldWidget magicMirrorUseTime = new TextFieldWidget(this.textRenderer, 100, 20, Text.of("Magic Mirror Use Time")); magicMirrorUseTime.setChangedListener((value)->{ // TODO: validate - BalancedRecall.config.config.addProperty("magic_mirror_use_time_ticks", Integer.parseInt(value)); + BalancedRecallConfig.config.addProperty("magic_mirror_use_time_ticks", Integer.parseInt(value)); }); - magicMirrorUseTime.setText(BalancedRecall.config.config.get("magic_mirror_use_time_ticks").getAsString()); + magicMirrorUseTime.setText(BalancedRecallConfig.config.get("magic_mirror_use_time_ticks").getAsString()); adder.add(magicMirrorUseTime); adder.add(new TextWidget(Text.of("Magic Mirror Cooldown Time"), this.textRenderer)); TextFieldWidget magicMirrorCooldownTime = new TextFieldWidget(this.textRenderer, 100, 20, Text.of("Magic Mirror Cooldown Time")); magicMirrorCooldownTime.setChangedListener((value)->{ - BalancedRecall.config.config.addProperty("magic_mirror_cooldown_time_seconds", Integer.parseInt(value)); + BalancedRecallConfig.config.addProperty("magic_mirror_cooldown_time_seconds", Integer.parseInt(value)); }); - magicMirrorCooldownTime.setText(BalancedRecall.config.config.get("magic_mirror_cooldown_time_seconds").getAsString()); + magicMirrorCooldownTime.setText(BalancedRecallConfig.config.get("magic_mirror_cooldown_time_seconds").getAsString()); adder.add(magicMirrorCooldownTime); adder.add(new TextWidget(Text.of("Dimensional Mirror Use Time"), this.textRenderer)); TextFieldWidget dimensionalMirrorUseTime = new TextFieldWidget(this.textRenderer, 100, 20, Text.of("Dimensional Mirror Use Time")); dimensionalMirrorUseTime.setChangedListener((value)->{ - BalancedRecall.config.config.addProperty("dimensional_mirror_use_time_ticks", Integer.parseInt(value)); + BalancedRecallConfig.config.addProperty("dimensional_mirror_use_time_ticks", Integer.parseInt(value)); }); - dimensionalMirrorUseTime.setText(BalancedRecall.config.config.get("dimensional_mirror_use_time_ticks").getAsString()); + dimensionalMirrorUseTime.setText(BalancedRecallConfig.config.get("dimensional_mirror_use_time_ticks").getAsString()); adder.add(dimensionalMirrorUseTime); adder.add(new TextWidget(Text.of("Dimensional Mirror Cooldown Time"), this.textRenderer)); TextFieldWidget dimensionalMirrorCooldownTime = new TextFieldWidget(this.textRenderer, 100, 20, Text.of("Dimensional Mirror Cooldown Time")); dimensionalMirrorCooldownTime.setChangedListener((value)->{ - BalancedRecall.config.config.addProperty("dimensional_mirror_cooldown_time_seconds", Integer.parseInt(value)); + BalancedRecallConfig.config.addProperty("dimensional_mirror_cooldown_time_seconds", Integer.parseInt(value)); }); - dimensionalMirrorCooldownTime.setText(BalancedRecall.config.config.get("dimensional_mirror_cooldown_time_seconds").getAsString()); + dimensionalMirrorCooldownTime.setText(BalancedRecallConfig.config.get("dimensional_mirror_cooldown_time_seconds").getAsString()); adder.add(dimensionalMirrorCooldownTime); column.add(grid); - // Recall settings - column.add(CheckboxWidget.builder(Text.of("Sleeping mat resets phantom timer"), this.textRenderer).build()); + // Mat settings + column.add(CheckboxWidget.builder(Text.of("Sleeping mat resets phantom timer"), this.textRenderer).checked(BalancedRecallConfig.config.get("sleeping_mat_resets_phantom_timer").getAsBoolean()).callback((checkbox, checked)->{ + BalancedRecallConfig.config.addProperty("sleeping_mat_resets_phantom_timer", checked); + }).build()); this.layout.addBody(column); @@ -104,7 +112,7 @@ protected void refreshWidgetPositions() { @Override public void close() { - BalancedRecall.config.write(); + BalancedRecallConfig.write(); this.client.setScreen(this.parent); } }