aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMapConfigScreen.java18
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHudConfigScreen.java18
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/title/TitleContainerConfigScreen.java31
3 files changed, 67 insertions, 0 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMapConfigScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMapConfigScreen.java
index 145ee2bc..d662e99a 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMapConfigScreen.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMapConfigScreen.java
@@ -2,8 +2,13 @@ package de.hysky.skyblocker.skyblock.dungeon;
import de.hysky.skyblocker.config.SkyblockerConfigManager;
import de.hysky.skyblocker.utils.render.RenderHelper;
+import dev.isxander.yacl3.api.ConfigCategory;
+import dev.isxander.yacl3.api.Option;
+import dev.isxander.yacl3.api.OptionGroup;
+import dev.isxander.yacl3.gui.YACLScreen;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.gui.screen.Screen;
+import net.minecraft.client.resource.language.I18n;
import net.minecraft.text.Text;
import java.awt.*;
@@ -56,6 +61,19 @@ public class DungeonMapConfigScreen extends Screen {
public void close() {
SkyblockerConfigManager.get().locations.dungeons.mapX = hudX;
SkyblockerConfigManager.get().locations.dungeons.mapY = hudY;
+
+ if (parent instanceof YACLScreen yaclScreen) {
+ ConfigCategory category = yaclScreen.config.categories().stream().filter(cat -> cat.name().getString().equals(I18n.translate("text.autoconfig.skyblocker.option.locations.dungeons"))).findFirst().orElseThrow();
+ OptionGroup group = category.groups().get(0); // Internally index 0 is the group created for all ungrouped options
+
+ Option<?> xOpt = group.options().stream().filter(opt -> opt.name().getString().equals(I18n.translate("text.autoconfig.skyblocker.option.locations.dungeons.mapX"))).findFirst().orElseThrow();
+ Option<?> yOpt = group.options().stream().filter(opt -> opt.name().getString().equals(I18n.translate("text.autoconfig.skyblocker.option.locations.dungeons.mapY"))).findFirst().orElseThrow();
+
+ // Refresh the value in the config with the bound value
+ xOpt.forgetPendingValue();
+ yOpt.forgetPendingValue();
+ }
+
SkyblockerConfigManager.save();
this.client.setScreen(parent);
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHudConfigScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHudConfigScreen.java
index 2bb21568..10a73236 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHudConfigScreen.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHudConfigScreen.java
@@ -4,9 +4,14 @@ import de.hysky.skyblocker.config.SkyblockerConfigManager;
import de.hysky.skyblocker.skyblock.dwarven.DwarvenHud.Commission;
import de.hysky.skyblocker.skyblock.tabhud.widget.hud.HudCommsWidget;
import de.hysky.skyblocker.utils.render.RenderHelper;
+import dev.isxander.yacl3.api.ConfigCategory;
+import dev.isxander.yacl3.api.Option;
+import dev.isxander.yacl3.api.OptionGroup;
+import dev.isxander.yacl3.gui.YACLScreen;
import it.unimi.dsi.fastutil.ints.IntIntPair;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.gui.screen.Screen;
+import net.minecraft.client.resource.language.I18n;
import net.minecraft.text.Text;
import java.awt.*;
@@ -61,6 +66,19 @@ public class DwarvenHudConfigScreen extends Screen {
public void close() {
SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.x = hudX;
SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.y = hudY;
+
+ if (parent instanceof YACLScreen yaclScreen) {
+ ConfigCategory category = yaclScreen.config.categories().stream().filter(cat -> cat.name().getString().equals(I18n.translate("text.autoconfig.skyblocker.option.locations.dwarvenMines"))).findFirst().orElseThrow();
+ OptionGroup group = category.groups().stream().filter(grp -> grp.name().getString().equals(I18n.translate("text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud"))).findFirst().orElseThrow();
+
+ Option<?> xOpt = group.options().get(4);
+ Option<?> yOpt = group.options().get(5);
+
+ // Refresh the value in the config with the bound value
+ xOpt.forgetPendingValue();
+ yOpt.forgetPendingValue();
+ }
+
SkyblockerConfigManager.save();
client.setScreen(parent);
}
diff --git a/src/main/java/de/hysky/skyblocker/utils/render/title/TitleContainerConfigScreen.java b/src/main/java/de/hysky/skyblocker/utils/render/title/TitleContainerConfigScreen.java
index 5a42eeb4..599aa9f1 100644
--- a/src/main/java/de/hysky/skyblocker/utils/render/title/TitleContainerConfigScreen.java
+++ b/src/main/java/de/hysky/skyblocker/utils/render/title/TitleContainerConfigScreen.java
@@ -3,8 +3,13 @@ package de.hysky.skyblocker.utils.render.title;
import de.hysky.skyblocker.config.SkyblockerConfig;
import de.hysky.skyblocker.config.SkyblockerConfigManager;
import de.hysky.skyblocker.utils.render.RenderHelper;
+import dev.isxander.yacl3.api.ConfigCategory;
+import dev.isxander.yacl3.api.Option;
+import dev.isxander.yacl3.api.OptionGroup;
+import dev.isxander.yacl3.gui.YACLScreen;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.gui.screen.Screen;
+import net.minecraft.client.resource.language.I18n;
import net.minecraft.client.util.math.Vector2f;
import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
@@ -21,6 +26,7 @@ public class TitleContainerConfigScreen extends Screen {
private float hudX = SkyblockerConfigManager.get().general.titleContainer.x;
private float hudY = SkyblockerConfigManager.get().general.titleContainer.y;
private final Screen parent;
+ private boolean changedScale, changedOrientation, changedAlignment;
protected TitleContainerConfigScreen() {
this(null);
@@ -135,6 +141,7 @@ public class TitleContainerConfigScreen extends Screen {
case MIDDLE -> SkyblockerConfig.Alignment.RIGHT;
case RIGHT -> SkyblockerConfig.Alignment.LEFT;
};
+ changedAlignment = true;
}
if (keyCode == GLFW.GLFW_KEY_E) {
SkyblockerConfig.Alignment current = SkyblockerConfigManager.get().general.titleContainer.alignment;
@@ -143,6 +150,7 @@ public class TitleContainerConfigScreen extends Screen {
case MIDDLE -> SkyblockerConfig.Alignment.LEFT;
case RIGHT -> SkyblockerConfig.Alignment.MIDDLE;
};
+ changedAlignment = true;
}
if (keyCode == GLFW.GLFW_KEY_R) {
SkyblockerConfig.Direction current = SkyblockerConfigManager.get().general.titleContainer.direction;
@@ -150,20 +158,43 @@ public class TitleContainerConfigScreen extends Screen {
case HORIZONTAL -> SkyblockerConfig.Direction.VERTICAL;
case VERTICAL -> SkyblockerConfig.Direction.HORIZONTAL;
};
+ changedOrientation = true;
}
if (keyCode == GLFW.GLFW_KEY_EQUAL) {
SkyblockerConfigManager.get().general.titleContainer.titleContainerScale += 10;
+ changedScale = true;
}
if (keyCode == GLFW.GLFW_KEY_MINUS) {
SkyblockerConfigManager.get().general.titleContainer.titleContainerScale -= 10;
+ changedScale = true;
}
return super.keyPressed(keyCode, scanCode, modifiers);
}
+
@Override
public void close() {
SkyblockerConfigManager.get().general.titleContainer.x = (int) hudX;
SkyblockerConfigManager.get().general.titleContainer.y = (int) hudY;
+
+ if (parent instanceof YACLScreen yaclScreen) {
+ ConfigCategory category = yaclScreen.config.categories().stream().filter(cat -> cat.name().getString().equals(I18n.translate("text.autoconfig.skyblocker.category.general"))).findFirst().orElseThrow();
+ OptionGroup group = category.groups().stream().filter(grp -> grp.name().getString().equals(I18n.translate("text.autoconfig.skyblocker.option.general.titleContainer"))).findFirst().orElseThrow();
+
+ Option<?> scaleOpt = group.options().get(0);
+ Option<?> xOpt = group.options().get(1);
+ Option<?> yOpt = group.options().get(2);
+ Option<?> orientationOpt = group.options().get(3);
+ Option<?> horizontalAlignmentOpt = group.options().get(4);
+
+ // Refresh the value in the config with the bound value
+ if (changedScale) scaleOpt.forgetPendingValue();
+ xOpt.forgetPendingValue();
+ yOpt.forgetPendingValue();
+ if (changedOrientation) orientationOpt.forgetPendingValue();
+ if (changedAlignment) horizontalAlignmentOpt.forgetPendingValue();
+ }
+
SkyblockerConfigManager.save();
this.client.setScreen(parent);
}