aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/dulkirmod/config/Config.kt
blob: a409d912201d32452a9e6c090bbd70a2897ab6d6 (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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
package dulkirmod.config

import gg.essential.vigilance.Vigilant
import gg.essential.vigilance.data.Category
import gg.essential.vigilance.data.Property
import gg.essential.vigilance.data.PropertyType
import gg.essential.vigilance.data.SortingBehavior
import dulkirmod.DulkirMod.Companion.display
import java.awt.Color
import java.io.File
import java.util.function.Consumer

object Config : Vigilant(File("./config/dulkirmod/config.toml"), "DulkirMod") {

    @Property(
        type = PropertyType.SWITCH,
        name = "Hide Enchant Rune Particles",
        description = "ugly ass",
        category = "General"
    )
    var hideEnchantRune = false

    @Property(
        type = PropertyType.SWITCH,
        name = "Hide Healer fairy",
        description = "Probably disable when not in dungeons for now. Will fix later.",
        category = "General"
    )
    var hideHealerFairy = false

    @Property(
        type = PropertyType.SWITCH,
        name = "Hide Heart Particles",
        description = "Useful for hyperion and healer bullshit",
        category = "General"
    )
    var hideHeartParticles = false

    @Property(
        type = PropertyType.SWITCH,
        name = "Throttle Notifier",
        description = "Making features out of bugs wow",
        category = "General"
    )
    var throttleNotifier = false

    @Property(
        type = PropertyType.TEXT,
        name = "Throttle Notifier String",
        description = "How do you want to tell people you are throttled?",
        category = "General",
        placeholder = "i am being throttled zzz",
        protectedText = false
    )
    var customMessage: String = "i am being throttled zzz"

    @Property(
        type = PropertyType.SWITCH,
        name = "Hide Extra Nametags",
        description = "Prevents some nametags not covered by skytils \"Hide non-starred nametags\" from rendering.",
        category = "General"
    )
    var hideTags = false

    // CUSTOM ANIMATIONS
    @Property(
        type = PropertyType.SWITCH,
        name = "Custom Animations",
        description = "Change the look of your held item",
        category = "Animations"
    )
    var customAnimations = false

    @Property(
        type = PropertyType.DECIMAL_SLIDER,
        name = "Size",
        description = "Scales the size of your currently held item. Default: 0",
        category = "Animations",
        minF = -1.5f,
        maxF = 1.5f,
        decimalPlaces = 2
    )
    var customSize = 0f

    @Property(
        type = PropertyType.CHECKBOX,
        name = "Scale Swing",
        description = "Also scale the size of the swing animation.",
        category = "Animations"
    )
    var doesScaleSwing = true

    @Property(
        type = PropertyType.DECIMAL_SLIDER,
        name = "X",
        description = "Moves the held item. Default: 0",
        category = "Animations",
        minF = -1.5f,
        maxF = 1.5f,
        decimalPlaces = 2
    )
    var customX = 0f

    @Property(
        type = PropertyType.DECIMAL_SLIDER,
        name = "Y",
        description = "Moves the held item. Default: 0",
        category = "Animations",
        minF = -1.5f,
        maxF = 1.5f,
        decimalPlaces = 2
    )
    var customY = 0f

    @Property(
        type = PropertyType.DECIMAL_SLIDER,
        name = "Z",
        description = "Moves the held item. Default: 0",
        category = "Animations",
        minF = -1.5f,
        maxF = 1.5f,
        decimalPlaces = 2
    )
    var customZ = 0f

    @Property(
        type = PropertyType.DECIMAL_SLIDER,
        name = "Yaw",
        description = "Rotates your held item. Default: 0",
        category = "Animations",
        minF = -180f,
        maxF = 180f,
        decimalPlaces = 0
    )
    var customYaw = 0f

    @Property(
        type = PropertyType.DECIMAL_SLIDER,
        name = "Pitch",
        description = "Rotates your held item. Default: 0",
        category = "Animations",
        minF = -180f,
        maxF = 180f,
        decimalPlaces = 0
    )
    var customPitch = 0f

    @Property(
        type = PropertyType.DECIMAL_SLIDER,
        name = "Roll",
        description = "Rotates your held item. Default: 0",
        category = "Animations",
        minF = -180f,
        maxF = 180f,
        decimalPlaces = 0
    )
    var customRoll = 0f

    @Property(
        type = PropertyType.DECIMAL_SLIDER,
        name = "Speed",
        description = "Speed of the swing animation.",
        category = "Animations",
        minF = -2f,
        maxF = 1f,
        decimalPlaces = 2
    )
    var customSpeed = 0f

    @Property(
        type = PropertyType.CHECKBOX,
        name = "Ignore Haste",
        description = "Makes the chosen speed override haste modifiers.",
        category = "Animations"
    )
    var ignoreHaste = true

    @Property(
        type = PropertyType.SELECTOR,
        name = "Drinking Fix",
        description = "Pick how to handle drinking animations.",
        category = "Animations",
        options = ["No fix", "Rotationless", "Fixed"]
    )
    var drinkingSelector = 2

    @Property(
        type = PropertyType.BUTTON,
        name = "Reset Item Values",
        description = "Will not visually update gui, but reopening settings menu will show default values",
        category = "Animations"
    )
    fun demoButton() {
        customSize = 0f
        customX = 0f
        customY = 0f
        customZ = 0f
        customRoll = 0f
        customPitch = 0f
        customYaw = 0f
        doesScaleSwing = true
        ignoreHaste = true
        customSpeed = 0f
    }


    fun init() {
        initialize()
        addDependency("customMessage", "throttleNotifier")

        setCategoryDescription(
            "Custom Animations",
            "All settings that are related to custom animations. Mostly help from Aton."
        )
    }

}