diff --git a/betterstats-2-fabric-1.18.2/src/main/java/io/github/thecsdev/betterstats/BetterStats.java b/betterstats-2-fabric-1.18.2/src/main/java/io/github/thecsdev/betterstats/BetterStats.java index f2c4e9ec..6199dd87 100644 --- a/betterstats-2-fabric-1.18.2/src/main/java/io/github/thecsdev/betterstats/BetterStats.java +++ b/betterstats-2-fabric-1.18.2/src/main/java/io/github/thecsdev/betterstats/BetterStats.java @@ -18,6 +18,8 @@ public class BetterStats extends Object public final ModContainer modInfo; public final String contact_sources; public final String contact_playerBadgeWebhook; + // -------------------------------------------------- + protected final BetterStatsConfig config; // ================================================== /** * Initializes this mod. This action may only be performed by the fabric-loader. @@ -40,12 +42,17 @@ else if(!isInstanceValid(this)) //log stuff LOGGER.info("Initializing '" + getModName() + "' as '" + getClass().getSimpleName() + "'."); + //try to load config (IOException-s should be harmless) + this.config = new BetterStatsConfig(getModID()); + this.config.tryLoadFromFile(true); + //init stuff BetterStatsNetworkHandler.init(); } // -------------------------------------------------- /** Returns the Fabric {@link ModContainer} containing information about this mod. */ public ModContainer getModInfo() { return modInfo; } + public BetterStatsConfig getConfig() { return this.config; } // ================================================== /** Returns the instance of this mod. */ public static BetterStats getInstance() { return Instance; } diff --git a/betterstats-2-fabric-1.18.2/src/main/java/io/github/thecsdev/betterstats/BetterStatsConfig.java b/betterstats-2-fabric-1.18.2/src/main/java/io/github/thecsdev/betterstats/BetterStatsConfig.java new file mode 100644 index 00000000..a38bdd7a --- /dev/null +++ b/betterstats-2-fabric-1.18.2/src/main/java/io/github/thecsdev/betterstats/BetterStatsConfig.java @@ -0,0 +1,18 @@ +package io.github.thecsdev.betterstats; + +import io.github.thecsdev.tcdcommons.api.config.AutoConfig; +import io.github.thecsdev.tcdcommons.api.config.annotation.SerializedAs; + +public class BetterStatsConfig extends AutoConfig +{ + // ================================================== + @SerializedAs("guiMobsFollowCursor") //mitigate side-effects of field renaming + public boolean guiMobsFollowCursor; + // ================================================== + public BetterStatsConfig(String name) + { + super(name); + this.guiMobsFollowCursor = true; + } + // ================================================== +} \ No newline at end of file diff --git a/betterstats-2-fabric-1.18.2/src/main/java/io/github/thecsdev/betterstats/client/gui/panel/stats/BSStatPanel_Mobs.java b/betterstats-2-fabric-1.18.2/src/main/java/io/github/thecsdev/betterstats/client/gui/panel/stats/BSStatPanel_Mobs.java index 9aa7c44c..3f85355f 100644 --- a/betterstats-2-fabric-1.18.2/src/main/java/io/github/thecsdev/betterstats/client/gui/panel/stats/BSStatPanel_Mobs.java +++ b/betterstats-2-fabric-1.18.2/src/main/java/io/github/thecsdev/betterstats/client/gui/panel/stats/BSStatPanel_Mobs.java @@ -12,6 +12,7 @@ import com.google.common.collect.Lists; +import io.github.thecsdev.betterstats.BetterStats; import io.github.thecsdev.betterstats.api.registry.BetterStatsRegistry; import io.github.thecsdev.betterstats.client.gui.panel.BSPanel; import io.github.thecsdev.betterstats.client.gui.screen.BetterStatsScreen; @@ -47,9 +48,19 @@ public static enum BSStatPanelMobs_SortBy BSStatPanelMobs_SortBy(MutableText text) { this.text = text; } public MutableText asText() { return text; } } + // -------------------------------------------------- + protected final boolean guiMobsFollowCursor; // ================================================== - public BSStatPanel_Mobs(int x, int y, int width, int height) { super(x, y, width, height); } - public BSStatPanel_Mobs(TPanelElement parentToFill) { super(parentToFill); } + public BSStatPanel_Mobs(int x, int y, int width, int height) + { + super(x, y, width, height); + this.guiMobsFollowCursor = BetterStats.getInstance().getConfig().guiMobsFollowCursor; + } + public BSStatPanel_Mobs(TPanelElement parentToFill) + { + super(parentToFill); + this.guiMobsFollowCursor = BetterStats.getInstance().getConfig().guiMobsFollowCursor; + } // ================================================== @Override public Predicate getStatPredicate() @@ -232,12 +243,14 @@ protected class BSStatWidget_Mob extends BSStatWidget { // ---------------------------------------------- public final StatUtilsMobStat stat; + public final TEntityRendererElement entityRenderer; // ---------------------------------------------- public BSStatWidget_Mob(StatUtilsMobStat stat, int x, int y, int size) { super(x, y, size, size); this.stat = Objects.requireNonNull(stat, "stat must not be null."); - addTChild(new TEntityRendererElement(x, y, size, size, stat.entityType), false); + addTChild(this.entityRenderer = new TEntityRendererElement(x, y, size, size, stat.entityType), false); + this.entityRenderer.setFollowCursor(BSStatPanel_Mobs.this.guiMobsFollowCursor); updateTooltip(); } diff --git a/betterstats-2-fabric-1.18.2/src/main/java/io/github/thecsdev/betterstats/client/gui/screen/BetterStatsConfigScreen.java b/betterstats-2-fabric-1.18.2/src/main/java/io/github/thecsdev/betterstats/client/gui/screen/BetterStatsConfigScreen.java index a5f4dbff..c7f84a66 100644 --- a/betterstats-2-fabric-1.18.2/src/main/java/io/github/thecsdev/betterstats/client/gui/screen/BetterStatsConfigScreen.java +++ b/betterstats-2-fabric-1.18.2/src/main/java/io/github/thecsdev/betterstats/client/gui/screen/BetterStatsConfigScreen.java @@ -4,7 +4,10 @@ import static io.github.thecsdev.tcdcommons.api.util.TextUtils.fLiteral; import static io.github.thecsdev.tcdcommons.api.util.TextUtils.translatable; +import java.util.Objects; + import io.github.thecsdev.betterstats.BetterStats; +import io.github.thecsdev.betterstats.BetterStatsConfig; import io.github.thecsdev.betterstats.client.gui.panel.BSPanel; import io.github.thecsdev.betterstats.client.gui.widget.BSScrollBarWidget; import io.github.thecsdev.tcdcommons.api.client.gui.other.TFillColorElement; @@ -15,10 +18,11 @@ import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.util.math.MatrixStack; -public class BetterStatsConfigScreen extends TScreen +public final class BetterStatsConfigScreen extends TScreen { // ================================================== public final Screen parent; + public final BetterStatsConfig config; // -------------------------------------------------- protected TFillColorElement panel_contentPane; protected BSCSPanel panel_title; @@ -30,6 +34,7 @@ public BetterStatsConfigScreen(Screen parent) super(translatable(BetterStats.getModID()) .append(" - ").append(translatable("options.title"))); this.parent = parent; + this.config = Objects.requireNonNull(BetterStats.getInstance().getConfig()); } public @Override boolean shouldRenderInGameHud() { return false; } protected @Override void onClosed() { getClient().setScreen(this.parent); } @@ -86,9 +91,13 @@ public BetterStatsConfigScreen(Screen parent) translatable("betterstats.gui.config.debug_mode"), DEBUG_MODE, newVal -> DEBUG_MODE = newVal); + config_builder.addBoolean(translatable("betterstats.gui.config.gui_mob_follow_cursor"), + this.config.guiMobsFollowCursor, + newVal -> this.config.guiMobsFollowCursor = newVal); config_builder.addButton(TConfigGuiBuilder.TXT_SAVE, btn -> { config_builder.applyAllConfigChanges(); + this.config.trySaveToFile(true); this.close(); }); } diff --git a/betterstats-2-fabric-1.18.2/src/main/resources/META-INF/jarjar/tcdcommons-2.9.1+1.18.2.jar b/betterstats-2-fabric-1.18.2/src/main/resources/META-INF/jarjar/tcdcommons-2.9.1+1.18.2.jar index f2b53784..af50c54f 100644 Binary files a/betterstats-2-fabric-1.18.2/src/main/resources/META-INF/jarjar/tcdcommons-2.9.1+1.18.2.jar and b/betterstats-2-fabric-1.18.2/src/main/resources/META-INF/jarjar/tcdcommons-2.9.1+1.18.2.jar differ diff --git a/betterstats-2-fabric-1.18.2/src/main/resources/assets/betterstats/lang/en_us.json b/betterstats-2-fabric-1.18.2/src/main/resources/assets/betterstats/lang/en_us.json index 03445160..8cc21f6c 100644 --- a/betterstats-2-fabric-1.18.2/src/main/resources/assets/betterstats/lang/en_us.json +++ b/betterstats-2-fabric-1.18.2/src/main/resources/assets/betterstats/lang/en_us.json @@ -53,5 +53,6 @@ "betterstats.gui.network.badges.bss_translator.name": "Better Stats translator", "betterstats.gui.network.badges.bss_translator.description": "You helped translate the 'Better Stats' mod to other languages.", - "betterstats.gui.config.debug_mode": "Debug mode" + "betterstats.gui.config.debug_mode": "Debug mode", + "betterstats.gui.config.gui_mob_follow_cursor": "GUI mobs follow cursor" } \ No newline at end of file diff --git a/betterstats-2-fabric-1.19.2/src/main/java/io/github/thecsdev/betterstats/BetterStats.java b/betterstats-2-fabric-1.19.2/src/main/java/io/github/thecsdev/betterstats/BetterStats.java index 993a204c..afb1878f 100644 --- a/betterstats-2-fabric-1.19.2/src/main/java/io/github/thecsdev/betterstats/BetterStats.java +++ b/betterstats-2-fabric-1.19.2/src/main/java/io/github/thecsdev/betterstats/BetterStats.java @@ -18,6 +18,8 @@ public class BetterStats extends Object public final ModContainer modInfo; public final String contact_sources; public final String contact_playerBadgeWebhook; + // -------------------------------------------------- + protected final BetterStatsConfig config; // ================================================== /** * Initializes this mod. This action may only be performed by the fabric-loader. @@ -39,6 +41,10 @@ else if(!isInstanceValid(this)) //log stuff LOGGER.info("Initializing '" + getModName() + "' as '" + getClass().getSimpleName() + "'."); + + //try to load config (IOException-s should be harmless) + this.config = new BetterStatsConfig(getModID()); + this.config.tryLoadFromFile(true); //init stuff BetterStatsNetworkHandler.init(); @@ -46,6 +52,7 @@ else if(!isInstanceValid(this)) // -------------------------------------------------- /** Returns the Fabric {@link ModContainer} containing information about this mod. */ public ModContainer getModInfo() { return modInfo; } + public BetterStatsConfig getConfig() { return this.config; } // ================================================== /** Returns the instance of this mod. */ public static BetterStats getInstance() { return Instance; } diff --git a/betterstats-2-fabric-1.19.2/src/main/java/io/github/thecsdev/betterstats/BetterStatsConfig.java b/betterstats-2-fabric-1.19.2/src/main/java/io/github/thecsdev/betterstats/BetterStatsConfig.java new file mode 100644 index 00000000..a38bdd7a --- /dev/null +++ b/betterstats-2-fabric-1.19.2/src/main/java/io/github/thecsdev/betterstats/BetterStatsConfig.java @@ -0,0 +1,18 @@ +package io.github.thecsdev.betterstats; + +import io.github.thecsdev.tcdcommons.api.config.AutoConfig; +import io.github.thecsdev.tcdcommons.api.config.annotation.SerializedAs; + +public class BetterStatsConfig extends AutoConfig +{ + // ================================================== + @SerializedAs("guiMobsFollowCursor") //mitigate side-effects of field renaming + public boolean guiMobsFollowCursor; + // ================================================== + public BetterStatsConfig(String name) + { + super(name); + this.guiMobsFollowCursor = true; + } + // ================================================== +} \ No newline at end of file diff --git a/betterstats-2-fabric-1.19.2/src/main/java/io/github/thecsdev/betterstats/client/gui/panel/stats/BSStatPanel_Mobs.java b/betterstats-2-fabric-1.19.2/src/main/java/io/github/thecsdev/betterstats/client/gui/panel/stats/BSStatPanel_Mobs.java index 9aa7c44c..3f85355f 100644 --- a/betterstats-2-fabric-1.19.2/src/main/java/io/github/thecsdev/betterstats/client/gui/panel/stats/BSStatPanel_Mobs.java +++ b/betterstats-2-fabric-1.19.2/src/main/java/io/github/thecsdev/betterstats/client/gui/panel/stats/BSStatPanel_Mobs.java @@ -12,6 +12,7 @@ import com.google.common.collect.Lists; +import io.github.thecsdev.betterstats.BetterStats; import io.github.thecsdev.betterstats.api.registry.BetterStatsRegistry; import io.github.thecsdev.betterstats.client.gui.panel.BSPanel; import io.github.thecsdev.betterstats.client.gui.screen.BetterStatsScreen; @@ -47,9 +48,19 @@ public static enum BSStatPanelMobs_SortBy BSStatPanelMobs_SortBy(MutableText text) { this.text = text; } public MutableText asText() { return text; } } + // -------------------------------------------------- + protected final boolean guiMobsFollowCursor; // ================================================== - public BSStatPanel_Mobs(int x, int y, int width, int height) { super(x, y, width, height); } - public BSStatPanel_Mobs(TPanelElement parentToFill) { super(parentToFill); } + public BSStatPanel_Mobs(int x, int y, int width, int height) + { + super(x, y, width, height); + this.guiMobsFollowCursor = BetterStats.getInstance().getConfig().guiMobsFollowCursor; + } + public BSStatPanel_Mobs(TPanelElement parentToFill) + { + super(parentToFill); + this.guiMobsFollowCursor = BetterStats.getInstance().getConfig().guiMobsFollowCursor; + } // ================================================== @Override public Predicate getStatPredicate() @@ -232,12 +243,14 @@ protected class BSStatWidget_Mob extends BSStatWidget { // ---------------------------------------------- public final StatUtilsMobStat stat; + public final TEntityRendererElement entityRenderer; // ---------------------------------------------- public BSStatWidget_Mob(StatUtilsMobStat stat, int x, int y, int size) { super(x, y, size, size); this.stat = Objects.requireNonNull(stat, "stat must not be null."); - addTChild(new TEntityRendererElement(x, y, size, size, stat.entityType), false); + addTChild(this.entityRenderer = new TEntityRendererElement(x, y, size, size, stat.entityType), false); + this.entityRenderer.setFollowCursor(BSStatPanel_Mobs.this.guiMobsFollowCursor); updateTooltip(); } diff --git a/betterstats-2-fabric-1.19.2/src/main/java/io/github/thecsdev/betterstats/client/gui/screen/BetterStatsConfigScreen.java b/betterstats-2-fabric-1.19.2/src/main/java/io/github/thecsdev/betterstats/client/gui/screen/BetterStatsConfigScreen.java index 8c940626..c7f84a66 100644 --- a/betterstats-2-fabric-1.19.2/src/main/java/io/github/thecsdev/betterstats/client/gui/screen/BetterStatsConfigScreen.java +++ b/betterstats-2-fabric-1.19.2/src/main/java/io/github/thecsdev/betterstats/client/gui/screen/BetterStatsConfigScreen.java @@ -4,7 +4,10 @@ import static io.github.thecsdev.tcdcommons.api.util.TextUtils.fLiteral; import static io.github.thecsdev.tcdcommons.api.util.TextUtils.translatable; +import java.util.Objects; + import io.github.thecsdev.betterstats.BetterStats; +import io.github.thecsdev.betterstats.BetterStatsConfig; import io.github.thecsdev.betterstats.client.gui.panel.BSPanel; import io.github.thecsdev.betterstats.client.gui.widget.BSScrollBarWidget; import io.github.thecsdev.tcdcommons.api.client.gui.other.TFillColorElement; @@ -15,10 +18,11 @@ import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.util.math.MatrixStack; -public class BetterStatsConfigScreen extends TScreen +public final class BetterStatsConfigScreen extends TScreen { // ================================================== public final Screen parent; + public final BetterStatsConfig config; // -------------------------------------------------- protected TFillColorElement panel_contentPane; protected BSCSPanel panel_title; @@ -30,9 +34,11 @@ public BetterStatsConfigScreen(Screen parent) super(translatable(BetterStats.getModID()) .append(" - ").append(translatable("options.title"))); this.parent = parent; + this.config = Objects.requireNonNull(BetterStats.getInstance().getConfig()); } public @Override boolean shouldRenderInGameHud() { return false; } protected @Override void onClosed() { getClient().setScreen(this.parent); } + // -------------------------------------------------- public @Override void renderBackground(MatrixStack matrices) { if(this.parent != null) @@ -85,9 +91,13 @@ public BetterStatsConfigScreen(Screen parent) translatable("betterstats.gui.config.debug_mode"), DEBUG_MODE, newVal -> DEBUG_MODE = newVal); + config_builder.addBoolean(translatable("betterstats.gui.config.gui_mob_follow_cursor"), + this.config.guiMobsFollowCursor, + newVal -> this.config.guiMobsFollowCursor = newVal); config_builder.addButton(TConfigGuiBuilder.TXT_SAVE, btn -> { config_builder.applyAllConfigChanges(); + this.config.trySaveToFile(true); this.close(); }); } diff --git a/betterstats-2-fabric-1.19.2/src/main/resources/META-INF/jarjar/tcdcommons-2.9.1+1.19.2.jar b/betterstats-2-fabric-1.19.2/src/main/resources/META-INF/jarjar/tcdcommons-2.9.1+1.19.2.jar index 48770d3d..1166868c 100644 Binary files a/betterstats-2-fabric-1.19.2/src/main/resources/META-INF/jarjar/tcdcommons-2.9.1+1.19.2.jar and b/betterstats-2-fabric-1.19.2/src/main/resources/META-INF/jarjar/tcdcommons-2.9.1+1.19.2.jar differ diff --git a/betterstats-2-fabric-1.19.2/src/main/resources/assets/betterstats/lang/en_us.json b/betterstats-2-fabric-1.19.2/src/main/resources/assets/betterstats/lang/en_us.json index 03445160..8cc21f6c 100644 --- a/betterstats-2-fabric-1.19.2/src/main/resources/assets/betterstats/lang/en_us.json +++ b/betterstats-2-fabric-1.19.2/src/main/resources/assets/betterstats/lang/en_us.json @@ -53,5 +53,6 @@ "betterstats.gui.network.badges.bss_translator.name": "Better Stats translator", "betterstats.gui.network.badges.bss_translator.description": "You helped translate the 'Better Stats' mod to other languages.", - "betterstats.gui.config.debug_mode": "Debug mode" + "betterstats.gui.config.debug_mode": "Debug mode", + "betterstats.gui.config.gui_mob_follow_cursor": "GUI mobs follow cursor" } \ No newline at end of file diff --git a/betterstats-2-fabric-1.19.3/src/main/java/io/github/thecsdev/betterstats/BetterStats.java b/betterstats-2-fabric-1.19.3/src/main/java/io/github/thecsdev/betterstats/BetterStats.java index d8e8c751..42219914 100644 --- a/betterstats-2-fabric-1.19.3/src/main/java/io/github/thecsdev/betterstats/BetterStats.java +++ b/betterstats-2-fabric-1.19.3/src/main/java/io/github/thecsdev/betterstats/BetterStats.java @@ -22,6 +22,8 @@ public class BetterStats extends Object public final ModContainer modInfo; public final String contact_sources; public final String contact_playerBadgeWebhook; + // -------------------------------------------------- + protected final BetterStatsConfig config; // ================================================== /** * Initializes this mod. This action may only be performed by the fabric-loader. @@ -43,6 +45,10 @@ else if(!isInstanceValid(this)) //log stuff LOGGER.info("Initializing '" + getModName() + "' as '" + getClass().getSimpleName() + "'."); + + //try to load config (IOException-s should be harmless) + this.config = new BetterStatsConfig(getModID()); + this.config.tryLoadFromFile(true); //init stuff BetterStatsNetworkHandler.init(); @@ -50,6 +56,7 @@ else if(!isInstanceValid(this)) // -------------------------------------------------- /** Returns the Fabric {@link ModContainer} containing information about this mod. */ public ModContainer getModInfo() { return modInfo; } + public BetterStatsConfig getConfig() { return this.config; } // ================================================== /** Returns the instance of this mod. */ public static BetterStats getInstance() { return Instance; } diff --git a/betterstats-2-fabric-1.19.3/src/main/java/io/github/thecsdev/betterstats/BetterStatsConfig.java b/betterstats-2-fabric-1.19.3/src/main/java/io/github/thecsdev/betterstats/BetterStatsConfig.java new file mode 100644 index 00000000..a38bdd7a --- /dev/null +++ b/betterstats-2-fabric-1.19.3/src/main/java/io/github/thecsdev/betterstats/BetterStatsConfig.java @@ -0,0 +1,18 @@ +package io.github.thecsdev.betterstats; + +import io.github.thecsdev.tcdcommons.api.config.AutoConfig; +import io.github.thecsdev.tcdcommons.api.config.annotation.SerializedAs; + +public class BetterStatsConfig extends AutoConfig +{ + // ================================================== + @SerializedAs("guiMobsFollowCursor") //mitigate side-effects of field renaming + public boolean guiMobsFollowCursor; + // ================================================== + public BetterStatsConfig(String name) + { + super(name); + this.guiMobsFollowCursor = true; + } + // ================================================== +} \ No newline at end of file diff --git a/betterstats-2-fabric-1.19.3/src/main/java/io/github/thecsdev/betterstats/client/gui/panel/stats/BSStatPanel_Mobs.java b/betterstats-2-fabric-1.19.3/src/main/java/io/github/thecsdev/betterstats/client/gui/panel/stats/BSStatPanel_Mobs.java index 87c5a236..99922bdf 100644 --- a/betterstats-2-fabric-1.19.3/src/main/java/io/github/thecsdev/betterstats/client/gui/panel/stats/BSStatPanel_Mobs.java +++ b/betterstats-2-fabric-1.19.3/src/main/java/io/github/thecsdev/betterstats/client/gui/panel/stats/BSStatPanel_Mobs.java @@ -12,6 +12,7 @@ import com.google.common.collect.Lists; +import io.github.thecsdev.betterstats.BetterStats; import io.github.thecsdev.betterstats.api.registry.BetterStatsRegistry; import io.github.thecsdev.betterstats.client.gui.panel.BSPanel; import io.github.thecsdev.betterstats.client.gui.screen.BetterStatsScreen; @@ -47,9 +48,19 @@ public static enum BSStatPanelMobs_SortBy BSStatPanelMobs_SortBy(MutableText text) { this.text = text; } public MutableText asText() { return text; } } + // -------------------------------------------------- + protected final boolean guiMobsFollowCursor; // ================================================== - public BSStatPanel_Mobs(int x, int y, int width, int height) { super(x, y, width, height); } - public BSStatPanel_Mobs(TPanelElement parentToFill) { super(parentToFill); } + public BSStatPanel_Mobs(int x, int y, int width, int height) + { + super(x, y, width, height); + this.guiMobsFollowCursor = BetterStats.getInstance().getConfig().guiMobsFollowCursor; + } + public BSStatPanel_Mobs(TPanelElement parentToFill) + { + super(parentToFill); + this.guiMobsFollowCursor = BetterStats.getInstance().getConfig().guiMobsFollowCursor; + } // ================================================== @Override public Predicate getStatPredicate() @@ -232,12 +243,14 @@ protected class BSStatWidget_Mob extends BSStatWidget { // ---------------------------------------------- public final StatUtilsMobStat stat; + public final TEntityRendererElement entityRenderer; // ---------------------------------------------- public BSStatWidget_Mob(StatUtilsMobStat stat, int x, int y, int size) { super(x, y, size, size); this.stat = Objects.requireNonNull(stat, "stat must not be null."); - addTChild(new TEntityRendererElement(x, y, size, size, stat.entityType), false); + addTChild(this.entityRenderer = new TEntityRendererElement(x, y, size, size, stat.entityType), false); + this.entityRenderer.setFollowCursor(BSStatPanel_Mobs.this.guiMobsFollowCursor); updateTooltip(); } diff --git a/betterstats-2-fabric-1.19.3/src/main/java/io/github/thecsdev/betterstats/client/gui/screen/BetterStatsConfigScreen.java b/betterstats-2-fabric-1.19.3/src/main/java/io/github/thecsdev/betterstats/client/gui/screen/BetterStatsConfigScreen.java index 8c940626..c7f84a66 100644 --- a/betterstats-2-fabric-1.19.3/src/main/java/io/github/thecsdev/betterstats/client/gui/screen/BetterStatsConfigScreen.java +++ b/betterstats-2-fabric-1.19.3/src/main/java/io/github/thecsdev/betterstats/client/gui/screen/BetterStatsConfigScreen.java @@ -4,7 +4,10 @@ import static io.github.thecsdev.tcdcommons.api.util.TextUtils.fLiteral; import static io.github.thecsdev.tcdcommons.api.util.TextUtils.translatable; +import java.util.Objects; + import io.github.thecsdev.betterstats.BetterStats; +import io.github.thecsdev.betterstats.BetterStatsConfig; import io.github.thecsdev.betterstats.client.gui.panel.BSPanel; import io.github.thecsdev.betterstats.client.gui.widget.BSScrollBarWidget; import io.github.thecsdev.tcdcommons.api.client.gui.other.TFillColorElement; @@ -15,10 +18,11 @@ import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.util.math.MatrixStack; -public class BetterStatsConfigScreen extends TScreen +public final class BetterStatsConfigScreen extends TScreen { // ================================================== public final Screen parent; + public final BetterStatsConfig config; // -------------------------------------------------- protected TFillColorElement panel_contentPane; protected BSCSPanel panel_title; @@ -30,9 +34,11 @@ public BetterStatsConfigScreen(Screen parent) super(translatable(BetterStats.getModID()) .append(" - ").append(translatable("options.title"))); this.parent = parent; + this.config = Objects.requireNonNull(BetterStats.getInstance().getConfig()); } public @Override boolean shouldRenderInGameHud() { return false; } protected @Override void onClosed() { getClient().setScreen(this.parent); } + // -------------------------------------------------- public @Override void renderBackground(MatrixStack matrices) { if(this.parent != null) @@ -85,9 +91,13 @@ public BetterStatsConfigScreen(Screen parent) translatable("betterstats.gui.config.debug_mode"), DEBUG_MODE, newVal -> DEBUG_MODE = newVal); + config_builder.addBoolean(translatable("betterstats.gui.config.gui_mob_follow_cursor"), + this.config.guiMobsFollowCursor, + newVal -> this.config.guiMobsFollowCursor = newVal); config_builder.addButton(TConfigGuiBuilder.TXT_SAVE, btn -> { config_builder.applyAllConfigChanges(); + this.config.trySaveToFile(true); this.close(); }); } diff --git a/betterstats-2-fabric-1.19.3/src/main/resources/META-INF/jarjar/tcdcommons-2.9.1+1.19.3.jar b/betterstats-2-fabric-1.19.3/src/main/resources/META-INF/jarjar/tcdcommons-2.9.1+1.19.3.jar index 77a2d4bd..47ecd771 100644 Binary files a/betterstats-2-fabric-1.19.3/src/main/resources/META-INF/jarjar/tcdcommons-2.9.1+1.19.3.jar and b/betterstats-2-fabric-1.19.3/src/main/resources/META-INF/jarjar/tcdcommons-2.9.1+1.19.3.jar differ diff --git a/betterstats-2-fabric-1.19.3/src/main/resources/assets/betterstats/lang/en_us.json b/betterstats-2-fabric-1.19.3/src/main/resources/assets/betterstats/lang/en_us.json index 03445160..8cc21f6c 100644 --- a/betterstats-2-fabric-1.19.3/src/main/resources/assets/betterstats/lang/en_us.json +++ b/betterstats-2-fabric-1.19.3/src/main/resources/assets/betterstats/lang/en_us.json @@ -53,5 +53,6 @@ "betterstats.gui.network.badges.bss_translator.name": "Better Stats translator", "betterstats.gui.network.badges.bss_translator.description": "You helped translate the 'Better Stats' mod to other languages.", - "betterstats.gui.config.debug_mode": "Debug mode" + "betterstats.gui.config.debug_mode": "Debug mode", + "betterstats.gui.config.gui_mob_follow_cursor": "GUI mobs follow cursor" } \ No newline at end of file diff --git a/betterstats-2-fabric-1.19.4/src/main/java/io/github/thecsdev/betterstats/BetterStats.java b/betterstats-2-fabric-1.19.4/src/main/java/io/github/thecsdev/betterstats/BetterStats.java index d8e8c751..42219914 100644 --- a/betterstats-2-fabric-1.19.4/src/main/java/io/github/thecsdev/betterstats/BetterStats.java +++ b/betterstats-2-fabric-1.19.4/src/main/java/io/github/thecsdev/betterstats/BetterStats.java @@ -22,6 +22,8 @@ public class BetterStats extends Object public final ModContainer modInfo; public final String contact_sources; public final String contact_playerBadgeWebhook; + // -------------------------------------------------- + protected final BetterStatsConfig config; // ================================================== /** * Initializes this mod. This action may only be performed by the fabric-loader. @@ -43,6 +45,10 @@ else if(!isInstanceValid(this)) //log stuff LOGGER.info("Initializing '" + getModName() + "' as '" + getClass().getSimpleName() + "'."); + + //try to load config (IOException-s should be harmless) + this.config = new BetterStatsConfig(getModID()); + this.config.tryLoadFromFile(true); //init stuff BetterStatsNetworkHandler.init(); @@ -50,6 +56,7 @@ else if(!isInstanceValid(this)) // -------------------------------------------------- /** Returns the Fabric {@link ModContainer} containing information about this mod. */ public ModContainer getModInfo() { return modInfo; } + public BetterStatsConfig getConfig() { return this.config; } // ================================================== /** Returns the instance of this mod. */ public static BetterStats getInstance() { return Instance; } diff --git a/betterstats-2-fabric-1.19.4/src/main/java/io/github/thecsdev/betterstats/BetterStatsConfig.java b/betterstats-2-fabric-1.19.4/src/main/java/io/github/thecsdev/betterstats/BetterStatsConfig.java new file mode 100644 index 00000000..a38bdd7a --- /dev/null +++ b/betterstats-2-fabric-1.19.4/src/main/java/io/github/thecsdev/betterstats/BetterStatsConfig.java @@ -0,0 +1,18 @@ +package io.github.thecsdev.betterstats; + +import io.github.thecsdev.tcdcommons.api.config.AutoConfig; +import io.github.thecsdev.tcdcommons.api.config.annotation.SerializedAs; + +public class BetterStatsConfig extends AutoConfig +{ + // ================================================== + @SerializedAs("guiMobsFollowCursor") //mitigate side-effects of field renaming + public boolean guiMobsFollowCursor; + // ================================================== + public BetterStatsConfig(String name) + { + super(name); + this.guiMobsFollowCursor = true; + } + // ================================================== +} \ No newline at end of file diff --git a/betterstats-2-fabric-1.19.4/src/main/java/io/github/thecsdev/betterstats/client/gui/panel/stats/BSStatPanel_Mobs.java b/betterstats-2-fabric-1.19.4/src/main/java/io/github/thecsdev/betterstats/client/gui/panel/stats/BSStatPanel_Mobs.java index 87c5a236..99922bdf 100644 --- a/betterstats-2-fabric-1.19.4/src/main/java/io/github/thecsdev/betterstats/client/gui/panel/stats/BSStatPanel_Mobs.java +++ b/betterstats-2-fabric-1.19.4/src/main/java/io/github/thecsdev/betterstats/client/gui/panel/stats/BSStatPanel_Mobs.java @@ -12,6 +12,7 @@ import com.google.common.collect.Lists; +import io.github.thecsdev.betterstats.BetterStats; import io.github.thecsdev.betterstats.api.registry.BetterStatsRegistry; import io.github.thecsdev.betterstats.client.gui.panel.BSPanel; import io.github.thecsdev.betterstats.client.gui.screen.BetterStatsScreen; @@ -47,9 +48,19 @@ public static enum BSStatPanelMobs_SortBy BSStatPanelMobs_SortBy(MutableText text) { this.text = text; } public MutableText asText() { return text; } } + // -------------------------------------------------- + protected final boolean guiMobsFollowCursor; // ================================================== - public BSStatPanel_Mobs(int x, int y, int width, int height) { super(x, y, width, height); } - public BSStatPanel_Mobs(TPanelElement parentToFill) { super(parentToFill); } + public BSStatPanel_Mobs(int x, int y, int width, int height) + { + super(x, y, width, height); + this.guiMobsFollowCursor = BetterStats.getInstance().getConfig().guiMobsFollowCursor; + } + public BSStatPanel_Mobs(TPanelElement parentToFill) + { + super(parentToFill); + this.guiMobsFollowCursor = BetterStats.getInstance().getConfig().guiMobsFollowCursor; + } // ================================================== @Override public Predicate getStatPredicate() @@ -232,12 +243,14 @@ protected class BSStatWidget_Mob extends BSStatWidget { // ---------------------------------------------- public final StatUtilsMobStat stat; + public final TEntityRendererElement entityRenderer; // ---------------------------------------------- public BSStatWidget_Mob(StatUtilsMobStat stat, int x, int y, int size) { super(x, y, size, size); this.stat = Objects.requireNonNull(stat, "stat must not be null."); - addTChild(new TEntityRendererElement(x, y, size, size, stat.entityType), false); + addTChild(this.entityRenderer = new TEntityRendererElement(x, y, size, size, stat.entityType), false); + this.entityRenderer.setFollowCursor(BSStatPanel_Mobs.this.guiMobsFollowCursor); updateTooltip(); } diff --git a/betterstats-2-fabric-1.19.4/src/main/java/io/github/thecsdev/betterstats/client/gui/screen/BetterStatsConfigScreen.java b/betterstats-2-fabric-1.19.4/src/main/java/io/github/thecsdev/betterstats/client/gui/screen/BetterStatsConfigScreen.java index 8c940626..c7f84a66 100644 --- a/betterstats-2-fabric-1.19.4/src/main/java/io/github/thecsdev/betterstats/client/gui/screen/BetterStatsConfigScreen.java +++ b/betterstats-2-fabric-1.19.4/src/main/java/io/github/thecsdev/betterstats/client/gui/screen/BetterStatsConfigScreen.java @@ -4,7 +4,10 @@ import static io.github.thecsdev.tcdcommons.api.util.TextUtils.fLiteral; import static io.github.thecsdev.tcdcommons.api.util.TextUtils.translatable; +import java.util.Objects; + import io.github.thecsdev.betterstats.BetterStats; +import io.github.thecsdev.betterstats.BetterStatsConfig; import io.github.thecsdev.betterstats.client.gui.panel.BSPanel; import io.github.thecsdev.betterstats.client.gui.widget.BSScrollBarWidget; import io.github.thecsdev.tcdcommons.api.client.gui.other.TFillColorElement; @@ -15,10 +18,11 @@ import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.util.math.MatrixStack; -public class BetterStatsConfigScreen extends TScreen +public final class BetterStatsConfigScreen extends TScreen { // ================================================== public final Screen parent; + public final BetterStatsConfig config; // -------------------------------------------------- protected TFillColorElement panel_contentPane; protected BSCSPanel panel_title; @@ -30,9 +34,11 @@ public BetterStatsConfigScreen(Screen parent) super(translatable(BetterStats.getModID()) .append(" - ").append(translatable("options.title"))); this.parent = parent; + this.config = Objects.requireNonNull(BetterStats.getInstance().getConfig()); } public @Override boolean shouldRenderInGameHud() { return false; } protected @Override void onClosed() { getClient().setScreen(this.parent); } + // -------------------------------------------------- public @Override void renderBackground(MatrixStack matrices) { if(this.parent != null) @@ -85,9 +91,13 @@ public BetterStatsConfigScreen(Screen parent) translatable("betterstats.gui.config.debug_mode"), DEBUG_MODE, newVal -> DEBUG_MODE = newVal); + config_builder.addBoolean(translatable("betterstats.gui.config.gui_mob_follow_cursor"), + this.config.guiMobsFollowCursor, + newVal -> this.config.guiMobsFollowCursor = newVal); config_builder.addButton(TConfigGuiBuilder.TXT_SAVE, btn -> { config_builder.applyAllConfigChanges(); + this.config.trySaveToFile(true); this.close(); }); } diff --git a/betterstats-2-fabric-1.19.4/src/main/resources/META-INF/jarjar/tcdcommons-2.9.1+1.19.4.jar b/betterstats-2-fabric-1.19.4/src/main/resources/META-INF/jarjar/tcdcommons-2.9.1+1.19.4.jar index 41a3985c..2b629288 100644 Binary files a/betterstats-2-fabric-1.19.4/src/main/resources/META-INF/jarjar/tcdcommons-2.9.1+1.19.4.jar and b/betterstats-2-fabric-1.19.4/src/main/resources/META-INF/jarjar/tcdcommons-2.9.1+1.19.4.jar differ diff --git a/betterstats-2-fabric-1.19.4/src/main/resources/assets/betterstats/lang/en_us.json b/betterstats-2-fabric-1.19.4/src/main/resources/assets/betterstats/lang/en_us.json index 03445160..8cc21f6c 100644 --- a/betterstats-2-fabric-1.19.4/src/main/resources/assets/betterstats/lang/en_us.json +++ b/betterstats-2-fabric-1.19.4/src/main/resources/assets/betterstats/lang/en_us.json @@ -53,5 +53,6 @@ "betterstats.gui.network.badges.bss_translator.name": "Better Stats translator", "betterstats.gui.network.badges.bss_translator.description": "You helped translate the 'Better Stats' mod to other languages.", - "betterstats.gui.config.debug_mode": "Debug mode" + "betterstats.gui.config.debug_mode": "Debug mode", + "betterstats.gui.config.gui_mob_follow_cursor": "GUI mobs follow cursor" } \ No newline at end of file