diff options
author | HiZe <super@hize.be> | 2024-02-24 17:25:08 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-24 17:25:08 +0100 |
commit | 8dfbcf2a67f0a8207e49d8a97e18c4e80f8fbb96 (patch) | |
tree | 786c4cf47b06f7ac2990e2a62967492d0a5511a5 /src/main/java/at/hannibal2/skyhanni/config/features | |
parent | bc239065f94548814717e2d07588696ee261c1e3 (diff) | |
download | skyhanni-8dfbcf2a67f0a8207e49d8a97e18c4e80f8fbb96.tar.gz skyhanni-8dfbcf2a67f0a8207e49d8a97e18c4e80f8fbb96.tar.bz2 skyhanni-8dfbcf2a67f0a8207e49d8a97e18c4e80f8fbb96.zip |
Feature: Skill progress display (#957)
Co-authored-by: Thunderblade73 <gaidermarkus@gmail.com>
Co-authored-by: superhize <superhize@gmail.com>
Co-authored-by: Cal <cwolfson58@gmail.com>
Co-authored-by: hannibal2 <24389977+hannibal00212@users.noreply.github.com>
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/config/features')
6 files changed, 390 insertions, 0 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/AllSkillDisplayConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/AllSkillDisplayConfig.java new file mode 100644 index 000000000..081a022db --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/AllSkillDisplayConfig.java @@ -0,0 +1,37 @@ +package at.hannibal2.skyhanni.config.features.skillprogress; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import at.hannibal2.skyhanni.features.skillprogress.SkillType; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorDraggableList; +import io.github.moulberry.moulconfig.annotations.ConfigOption; +import io.github.moulberry.moulconfig.observer.Property; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class AllSkillDisplayConfig { + + @Expose + @ConfigOption(name = "Enabled", desc = "Show a display with all skills progress.") + @ConfigEditorBoolean + @FeatureToggle + public Property<Boolean> enabled = Property.of(false); + + @Expose + @ConfigOption(name = "Text", desc = "Choose what skills you want to see in the display.") + @ConfigEditorDraggableList + public List<SkillType> skillEntryList = new ArrayList<>(Arrays.asList( + SkillType.COMBAT, + SkillType.FARMING, + SkillType.FISHING, + SkillType.MINING, + SkillType.FORAGING, + SkillType.ENCHANTING, + SkillType.ALCHEMY, + SkillType.CARPENTRY, + SkillType.TAMING + )); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/CustomGoalConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/CustomGoalConfig.java new file mode 100644 index 000000000..9d645c8c7 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/CustomGoalConfig.java @@ -0,0 +1,39 @@ +package at.hannibal2.skyhanni.config.features.skillprogress; + +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class CustomGoalConfig { + + @Expose + @ConfigOption(name = "Display", desc = "Enable the custom goal in the progress display.") + @ConfigEditorBoolean + public boolean enableInDisplay = true; + + @Expose + @ConfigOption(name = "All Skill Display", desc = "Enable the custom goal in the all skill display.") + @ConfigEditorBoolean + public boolean enableInAllDisplay = false; + + @Expose + @ConfigOption(name = "ETA Display", desc = "Enable the custom goal in the ETA skill display.") + @ConfigEditorBoolean + public boolean enableInETADisplay = false; + + @Expose + @ConfigOption(name = "Progress Bar", desc = "Enable the custom goal in the progress bar.") + @ConfigEditorBoolean + public boolean enableInProgressBar = true; + + @Expose + @ConfigOption(name = "Skill Menu Tooltips", desc = "Enable the custom goal in the tooltip of items in skills menu.") + @ConfigEditorBoolean + public boolean enableInSkillMenuTooltip = false; + + @Expose + @ConfigOption(name = "Chat", desc = "Send a message when you reach your goal.") + @ConfigEditorBoolean + public boolean enableInChat = false; + +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/SkillETADisplayConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/SkillETADisplayConfig.java new file mode 100644 index 000000000..37ea0430c --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/SkillETADisplayConfig.java @@ -0,0 +1,44 @@ +package at.hannibal2.skyhanni.config.features.skillprogress; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider; +import io.github.moulberry.moulconfig.annotations.ConfigEditorText; +import io.github.moulberry.moulconfig.annotations.ConfigOption; +import io.github.moulberry.moulconfig.observer.Property; + +public class SkillETADisplayConfig { + + @Expose + @ConfigOption(name = "Enabled", desc = "Show a display of your current active skill\n" + + "with the XP/hour rate, ETA to the next level and current session time.") + @ConfigEditorBoolean + @FeatureToggle + public Property<Boolean> enabled = Property.of(false); + + @Expose + @ConfigOption(name = "Farming", desc = "After how much seconds the Farming session timer should pause.") + @ConfigEditorSlider(minStep = 1, minValue = 3, maxValue = 60) + public int farmingPauseTime = 3; + + @Expose + @ConfigOption(name = "Mining", desc = "After how much seconds the Mining session timer should pause.") + @ConfigEditorSlider(minStep = 1, minValue = 3, maxValue = 60) + public int miningPauseTime = 3; + + @Expose + @ConfigOption(name = "Combat", desc = "After how much seconds the Combat session timer should pause.") + @ConfigEditorSlider(minStep = 1, minValue = 3, maxValue = 60) + public int combatPauseTime = 30; + + @Expose + @ConfigOption(name = "Foraging", desc = "After how much seconds the Foraging session timer should pause.") + @ConfigEditorSlider(minStep = 1, minValue = 3, maxValue = 60) + public int foragingPauseTime = 3; + + @Expose + @ConfigOption(name = "Fishing", desc = "After how much seconds the Fishing session timer should pause.") + @ConfigEditorSlider(minStep = 1, minValue = 3, maxValue = 60) + public int fishingPauseTime = 15; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/SkillOverflowConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/SkillOverflowConfig.java new file mode 100644 index 000000000..cf6118158 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/SkillOverflowConfig.java @@ -0,0 +1,46 @@ +package at.hannibal2.skyhanni.config.features.skillprogress; + +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; +import io.github.moulberry.moulconfig.observer.Property; + +public class SkillOverflowConfig { + + @Expose + @ConfigOption(name = "Display", desc = "Enable the overflow calculation in the progress display.") + @ConfigEditorBoolean + public Property<Boolean> enableInDisplay = Property.of(false); + + @Expose + @ConfigOption(name = "All Skill Display", desc = "Enable the overflow calculation in the all skill progress display.") + @ConfigEditorBoolean + public Property<Boolean> enableInAllDisplay = Property.of(false); + + @Expose + @ConfigOption(name = "ETA Display", desc = "Enable the overflow calculation in the ETA skill display.") + @ConfigEditorBoolean + public Property<Boolean> enableInEtaDisplay = Property.of(false); + + @Expose + @ConfigOption(name = "Progress Bar", desc = "Enable the overflow calculation in the progress bar of the display.") + @ConfigEditorBoolean + public Property<Boolean> enableInProgressBar = Property.of(false); + + @Expose + @ConfigOption(name = "Skill Menu Stack Size", desc = "Enable the overflow calculation when the 'Skill Level' Item Number is enabled.") + @ConfigEditorBoolean + public boolean enableInSkillMenuAsStackSize = false; + + @Expose + @ConfigOption(name = "Skill Menu Tooltips", desc = "Enable the overflow calculation in the tooltip of items in skills menu.") + @ConfigEditorBoolean + public boolean enableInSkillMenuTooltip = false; + + @Expose + @ConfigOption(name = "Chat", desc = "Enable the overflow level up message when you gain an overflow level.") + @ConfigEditorBoolean + public boolean enableInChat = false; + + +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/SkillProgressBarConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/SkillProgressBarConfig.java new file mode 100644 index 000000000..80fe33148 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/SkillProgressBarConfig.java @@ -0,0 +1,107 @@ +package at.hannibal2.skyhanni.config.features.skillprogress; + +import at.hannibal2.skyhanni.SkyHanniMod; +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.Accordion; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorColour; +import io.github.moulberry.moulconfig.annotations.ConfigEditorDropdown; +import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider; +import io.github.moulberry.moulconfig.annotations.ConfigOption; +import io.github.moulberry.moulconfig.observer.Property; + +public class SkillProgressBarConfig { + + @Expose + @ConfigOption(name = "Enabled", desc = "Enable/Disable the progress bar.") + @ConfigEditorBoolean + @FeatureToggle + public Property<Boolean> enabled = Property.of(false); + + @Expose + @ConfigOption(name = "Textured Bar", desc = "Use a textured progress bar.\n§eCan be changed with a resource pack.") + @ConfigEditorBoolean + public Property<Boolean> useTexturedBar = Property.of(false); + + @Expose + @ConfigOption(name = "Chroma", desc = "Use the SBA like chroma effect on the bar.\n§eIf enabled, ignore the Bar Color setting.") + @ConfigEditorBoolean + public Property<Boolean> useChroma = Property.of(false); + + @Expose + @ConfigOption(name = "Bar Color", desc = "Color of the progress bar.\n§eIgnored if Chroma is enabled.") + @ConfigEditorColour + public String barStartColor = "0:255:255:0:0"; + + @Expose + @ConfigOption(name = "Textured Bar", desc = "") + @Accordion + public TexturedBar texturedBar = new TexturedBar(); + + public static class TexturedBar { + + @Expose + @ConfigOption(name = "Used Texture", desc = "Choose what texture to use.") + @ConfigEditorDropdown + public Property<UsedTexture> usedTexture = Property.of(UsedTexture.MATCH_PACK); + + public enum UsedTexture { + MATCH_PACK("Match Resource Pack", "minecraft:textures/gui/icons.png"), + CUSTOM_1("Texture 1", SkyHanniMod.MODID + ":bars/1.png"), + CUSTOM_2("Texture 2", SkyHanniMod.MODID + ":bars/2.png"), + CUSTOM_3("Texture 3", SkyHanniMod.MODID + ":bars/3.png"), + CUSTOM_4("Texture 4", SkyHanniMod.MODID + ":bars/4.png"), + CUSTOM_5("Texture 5", SkyHanniMod.MODID + ":bars/5.png"), + ; + + private final String str; + private final String path; + + UsedTexture(String str, String path) { + this.str = str; + this.path = path; + } + + public String getPath() { + return path; + } + + @Override + public String toString() { + return str; + } + } + + @Expose + @ConfigOption(name = "Width", desc = "Modify the width of the bar.\n" + + "§eDefault: 182\n" + + "§c!!Do not work for now!!") + @ConfigEditorSlider(minStep = 1, minValue = 16, maxValue = 1024) + public int width = 182; + + @Expose + @ConfigOption(name = "Height", desc = "Modify the height of the bar.\n" + + "§eDefault: 5\n" + + "§c!!Do not work for now!!") + @ConfigEditorSlider(minStep = 1, minValue = 3, maxValue = 16) + public int height = 5; + } + + @Expose + @ConfigOption(name = "Regular Bar", desc = "") + @Accordion + public RegularBar regularBar = new RegularBar(); + + public static class RegularBar { + @Expose + @ConfigOption(name = "Width", desc = "Modify the width of the bar.") + @ConfigEditorSlider(minStep = 1, minValue = 100, maxValue = 1000) + public int width = 182; + + @Expose + @ConfigOption(name = "Height", desc = "Modify the height of the bar.") + @ConfigEditorSlider(minStep = 1, minValue = 3, maxValue = 15) + public int height = 6; + } +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/SkillProgressConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/SkillProgressConfig.java new file mode 100644 index 000000000..77d459b6e --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/SkillProgressConfig.java @@ -0,0 +1,117 @@ +package at.hannibal2.skyhanni.config.features.skillprogress; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import at.hannibal2.skyhanni.config.core.config.Position; +import at.hannibal2.skyhanni.utils.RenderUtils; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.Category; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorDropdown; +import io.github.moulberry.moulconfig.annotations.ConfigOption; +import io.github.moulberry.moulconfig.observer.Property; + +public class SkillProgressConfig { + + @Expose + @ConfigOption(name = "Enabled", desc = "Show the Skill Progress Display.") + @ConfigEditorBoolean + @FeatureToggle + public Property<Boolean> enabled = Property.of(false); + + @Expose + @ConfigOption(name = "Text Alignment", desc = "Align the display text with the progress bar.") + @ConfigEditorDropdown + public Property<TextAlignment> textAlignmentProperty = Property.of(TextAlignment.CENTERED); + + public enum TextAlignment { + NONE("None", null), + CENTERED("Centered", RenderUtils.HorizontalAlignment.CENTER), + LEFT("Left", RenderUtils.HorizontalAlignment.LEFT), + RIGHT("Right", RenderUtils.HorizontalAlignment.RIGHT), + ; + + private final String str; + private final RenderUtils.HorizontalAlignment alignment; + + TextAlignment(String str, RenderUtils.HorizontalAlignment alignment) { + this.str = str; + this.alignment = alignment; + } + + public RenderUtils.HorizontalAlignment getAlignment() { + return alignment; + } + + @Override + public String toString() { + return str; + } + } + + @Expose + @ConfigOption(name = "Hide In Action Bar", desc = "Hide the skill progress in the Hypixel action bar.") + @ConfigEditorBoolean + public boolean hideInActionBar = false; + + @Expose + @ConfigOption(name = "Always Show", desc = "Always show the skill progress.") + @ConfigEditorBoolean + public Property<Boolean> alwaysShow = Property.of(false); + + @Expose + @ConfigOption(name = "Show Action left", desc = "Show action left until you reach the next level.") + @ConfigEditorBoolean + public Property<Boolean> showActionLeft = Property.of(false); + + @Expose + @ConfigOption(name = "Use percentage", desc = "Use percentage instead of XP.") + @ConfigEditorBoolean + public Property<Boolean> usePercentage = Property.of(false); + + @Expose + @ConfigOption(name = "Use Icon", desc = "Show the skill icon in the display.") + @ConfigEditorBoolean + public Property<Boolean> useIcon = Property.of(true); + + @Expose + @ConfigOption(name = "Use Skill Name", desc = "Show the skill name in the display.") + @ConfigEditorBoolean + public Property<Boolean> useSkillName = Property.of(false); + + @Expose + @ConfigOption(name = "Show Level", desc = "Show your current level in the display.") + @ConfigEditorBoolean + public Property<Boolean> showLevel = Property.of(true); + + @Expose + @Category(name = "Progress Bar", desc = "Progress Bar Config.") + public SkillProgressBarConfig skillProgressBarConfig = new SkillProgressBarConfig(); + + @Expose + @Category(name = "Overflow", desc = "Overflow Config.") + public SkillOverflowConfig overflowConfig = new SkillOverflowConfig(); + + @Expose + @Category(name = "Custom Goal", desc = "Define a custom goal for each skills.") + public CustomGoalConfig customGoalConfig = new CustomGoalConfig(); + + @Expose + @Category(name = "All Skill Display", desc = "All Skill Display Config.") + public AllSkillDisplayConfig allSkillDisplayConfig = new AllSkillDisplayConfig(); + + @Expose + @Category(name = "ETA Display", desc = "ETA Display Config.") + public SkillETADisplayConfig skillETADisplayConfig = new SkillETADisplayConfig(); + + @Expose + public Position displayPosition = new Position(384, -105, false, true); + + @Expose + public Position barPosition = new Position(384, -87, false, true); + + @Expose + public Position allSkillPosition = new Position(5, 209, false, true); + + @Expose + public Position etaPosition = new Position(5, 155, false, true); +} |