aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker
diff options
context:
space:
mode:
authorvicisacat <victor.branchu@gmail.com>2024-04-20 21:50:39 +0200
committervicisacat <victor.branchu@gmail.com>2024-04-20 21:50:39 +0200
commitd91367ae8faee90736cc0390bb025f2d71e9560f (patch)
treed4e4d4cfd76c1afae728418a761bb3eb23c6dd5c /src/main/java/de/hysky/skyblocker
parent04396b153a9226be5add8fd7fcb7f6629ec0e520 (diff)
downloadSkyblocker-d91367ae8faee90736cc0390bb025f2d71e9560f.tar.gz
Skyblocker-d91367ae8faee90736cc0390bb025f2d71e9560f.tar.bz2
Skyblocker-d91367ae8faee90736cc0390bb025f2d71e9560f.zip
fetch positions from old config
Diffstat (limited to 'src/main/java/de/hysky/skyblocker')
-rw-r--r--src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java37
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/fancybars/FancyStatusBars.java41
2 files changed, 65 insertions, 13 deletions
diff --git a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java
index 28e96a50..e7f14763 100644
--- a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java
+++ b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java
@@ -304,6 +304,43 @@ public class SkyblockerConfig {
public static class Bars {
@SerialEntry
public boolean enableBars = true;
+
+ // Kept in for backwards compatibility, remove if needed
+ @SerialEntry
+ public OldBarPositions barPositions = new OldBarPositions();
+ }
+
+ public static class OldBarPositions {
+ @SerialEntry
+ public OldBarPosition healthBarPosition = OldBarPosition.LAYER1;
+
+ @SerialEntry
+ public OldBarPosition manaBarPosition = OldBarPosition.LAYER1;
+
+ @SerialEntry
+ public OldBarPosition defenceBarPosition = OldBarPosition.LAYER1;
+
+ @SerialEntry
+ public OldBarPosition experienceBarPosition = OldBarPosition.LAYER1;
+
+ }
+
+ public enum OldBarPosition {
+ LAYER1, LAYER2, RIGHT, NONE;
+
+ @Override
+ public String toString() {
+ return I18n.translate("text.autoconfig.skyblocker.option.general.bars.barpositions." + name());
+ }
+
+ public int toInt() {
+ return switch (this) {
+ case LAYER1 -> 0;
+ case LAYER2 -> 1;
+ case RIGHT -> 2;
+ case NONE -> -1;
+ };
+ }
}
public static class Experiments {
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/fancybars/FancyStatusBars.java b/src/main/java/de/hysky/skyblocker/skyblock/fancybars/FancyStatusBars.java
index 2f2ec000..009f2e59 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/fancybars/FancyStatusBars.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/fancybars/FancyStatusBars.java
@@ -2,6 +2,7 @@ package de.hysky.skyblocker.skyblock.fancybars;
import com.google.gson.JsonObject;
import de.hysky.skyblocker.SkyblockerMod;
+import de.hysky.skyblocker.config.SkyblockerConfig;
import de.hysky.skyblocker.config.SkyblockerConfigManager;
import de.hysky.skyblocker.skyblock.StatusBarTracker;
import de.hysky.skyblocker.utils.Utils;
@@ -54,23 +55,17 @@ public class FancyStatusBars {
new Color[]{new Color(100, 230, 70)},
false, new Color(128, 255, 32), Text.translatable("skyblocker.bars.config.experience")));
- // Default positions
+ // Fetch from old status bar config
+ int[] counts = new int[3]; // counts for RIGHT, LAYER1, LAYER2
StatusBar health = statusBars.get("health");
- health.anchor = BarPositioner.BarAnchor.HOTBAR_TOP;
- health.gridX = 0;
- health.gridY = 0;
+ SkyblockerConfig.OldBarPositions barPositions = SkyblockerConfigManager.get().general.bars.barPositions;
+ updateBarPosition(health, counts, barPositions.healthBarPosition);
StatusBar intelligence = statusBars.get("intelligence");
- intelligence.anchor = BarPositioner.BarAnchor.HOTBAR_TOP;
- intelligence.gridX = 1;
- intelligence.gridY = 0;
+ updateBarPosition(intelligence, counts, barPositions.manaBarPosition);
StatusBar defense = statusBars.get("defense");
- defense.anchor = BarPositioner.BarAnchor.HOTBAR_RIGHT;
- defense.gridX = 0;
- defense.gridY = 0;
+ updateBarPosition(defense, counts, barPositions.defenceBarPosition);
StatusBar experience = statusBars.get("experience");
- experience.anchor = BarPositioner.BarAnchor.HOTBAR_TOP;
- experience.gridX = 0;
- experience.gridY = 1;
+ updateBarPosition(experience, counts, barPositions.experienceBarPosition);
CompletableFuture.supplyAsync(FancyStatusBars::loadBarConfig).thenAccept(object -> {
if (object != null) {
@@ -110,6 +105,26 @@ public class FancyStatusBars {
.then(ClientCommandManager.literal("bars").executes(Scheduler.queueOpenScreenCommand(StatusBarsConfigScreen::new)))));
}
+ private static void updateBarPosition(StatusBar bar, int[] counts, SkyblockerConfig.OldBarPosition position) {
+ switch (position) {
+ case RIGHT:
+ bar.anchor = BarPositioner.BarAnchor.HOTBAR_RIGHT;
+ bar.gridY = 0;
+ bar.gridX = counts[position.ordinal()]++;
+ break;
+ case LAYER1:
+ bar.anchor = BarPositioner.BarAnchor.HOTBAR_TOP;
+ bar.gridY = 0;
+ bar.gridX = counts[position.ordinal()]++;
+ break;
+ case LAYER2:
+ bar.anchor = BarPositioner.BarAnchor.HOTBAR_TOP;
+ bar.gridY = 1;
+ bar.gridX = counts[position.ordinal()]++;
+ break;
+ }
+ }
+
private static boolean configLoaded = false;
private static void placeBarsInPositioner() {