summaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/SkillProgressConfig.java
blob: 572cf4671df4a610c3cfa8e73cae167b4d686012 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
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.notenoughupdates.moulconfig.annotations.Category;
import io.github.notenoughupdates.moulconfig.annotations.ConfigEditorBoolean;
import io.github.notenoughupdates.moulconfig.annotations.ConfigEditorDropdown;
import io.github.notenoughupdates.moulconfig.annotations.ConfigLink;
import io.github.notenoughupdates.moulconfig.annotations.ConfigOption;
import io.github.notenoughupdates.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
    @ConfigLink(owner = SkillProgressConfig.class, field = "enabled")
    public Position displayPosition = new Position(384, -105, false, true);

    @Expose
    @ConfigLink(owner = SkillProgressBarConfig.class, field = "enabled")
    public Position barPosition = new Position(384, -87, false, true);

    @Expose
    @ConfigLink(owner = AllSkillDisplayConfig.class, field = "enabled")
    public Position allSkillPosition = new Position(5, 209, false, true);

    @Expose
    @ConfigLink(owner = SkillETADisplayConfig.class, field = "enabled")
    public Position etaPosition = new Position(5, 155, false, true);
}