aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/utils/render
diff options
context:
space:
mode:
authorAaron <51387595+AzureAaron@users.noreply.github.com>2023-10-03 03:05:25 -0400
committerAaron <51387595+AzureAaron@users.noreply.github.com>2023-10-17 18:28:40 -0400
commit9d8853474d3935bf6af0a86f3f374c114fb1e25a (patch)
treeebd0d058012edacc4232ca7adcf71d3093e344a5 /src/main/java/de/hysky/skyblocker/utils/render
parent150c9e4fed1973cf4eb14d8f10323a129266e602 (diff)
downloadSkyblocker-9d8853474d3935bf6af0a86f3f374c114fb1e25a.tar.gz
Skyblocker-9d8853474d3935bf6af0a86f3f374c114fb1e25a.tar.bz2
Skyblocker-9d8853474d3935bf6af0a86f3f374c114fb1e25a.zip
Fix some HUD options resetting sometimes
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/utils/render')
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/title/TitleContainerConfigScreen.java31
1 files changed, 31 insertions, 0 deletions
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);
}