-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy pathTypes.lua
More file actions
396 lines (347 loc) · 11.8 KB
/
Types.lua
File metadata and controls
396 lines (347 loc) · 11.8 KB
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
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
--------------------------------------------------------------------------------
-- Global DB
--------------------------------------------------------------------------------
---@class WK_TableSortState
---@field columnId string?
---@field direction ("asc" | "desc")?
---@class WK_DefaultGlobal
---@field DBVersion integer?
---@field weeklyReset integer?
---@field minimap {minimapPos: number, hide: boolean, lock: boolean }
---@field showFullProfessionName boolean?
---@field characters table<string, WK_Character>
---@field main WK_DefaultGlobalMain
---@field checklist WK_DefaultGlobalChecklist
---@class WK_DefaultGlobalMain
---@field selectedExpansions Enum.ExpansionLevel[]?
---@field hiddenColumns table<string, boolean>
---@field windowScale integer
---@field windowBackgroundColor {r: number, g: number, b: number, a: number}
---@field windowBorder boolean
---@field fontSize integer?
---@field checklistHelpTipClosed boolean?
---@field hideLowLevelProfessions boolean?
---@field tableSort WK_TableSortState?
---@class WK_DefaultGlobalChecklist
---@field selectedExpansions Enum.ExpansionLevel[]?
---@field hiddenColumns table<string, boolean>
---@field hiddenCategories table<Enum.WK_ObjectiveCategory, boolean>
---@field windowScale integer
---@field windowBackgroundColor {r: number, g: number, b: number, a: number}
---@field windowBorder boolean
---@field windowTitlebar boolean
---@field fontSize integer?
---@field open boolean
---@field hideCompletedObjectives boolean
---@field hideInCombat boolean
---@field hideInDungeons boolean
---@field hideTable boolean
---@field hideTableHeader boolean
---@field tableSort WK_TableSortState?
--------------------------------------------------------------------------------
-- Game Data References
--------------------------------------------------------------------------------
---@class WK_Expansion
---@field id Enum.ExpansionLevel
---@field enabled boolean
---@field abbr string
---@field name string
---@class WK_Faction
---@field id integer
---@field expansionID Enum.ExpansionLevel
---@field name string
---@class WK_Currency
---@field id integer
---@field expansionID Enum.ExpansionLevel
---@field name string
---@class WK_SkillLine
---@field id integer
---@field name string
---@class WK_SkillLineVariant
---@field id integer
---@field expansionID Enum.ExpansionLevel
---@field skillLineID integer
---@field name string
---@field catchUpCurrencyID integer
---@field catchUpItemID integer
---@field concentrationCurrencyID integer
--------------------------------------------------------------------------------
-- Character Data
--------------------------------------------------------------------------------
---@class WK_Character
---@field GUID string|WOWGUID
---@field name string
---@field realmName string
---@field level integer
---@field factionEnglish string
---@field factionName string
---@field raceID integer
---@field raceEnglish string
---@field raceName string
---@field classID integer
---@field classFile ClassFile?
---@field className string
---@field lastUpdate number
---@field professions WK_CharacterProfession[]
---@field completed table<integer, boolean>
---@field firstCrafts table<integer, WK_CharacterFirstCraft>
---@field factions table<integer, WK_CharacterFaction>
---@field currencies table<integer, WK_CharacterCurrency>
---@field items table<integer, integer>
---@class WK_CharacterCurrency
---@field id integer
---@field name string
---@field iconFileID integer
---@field quality integer
---@field quantity integer
---@field maxQuantity integer
---@field rechargingCycleDurationMS integer
---@field rechargingAmountPerCycle integer
---@field lastUpdated number
---@class WK_CharacterFaction
---@field id integer
---@field level integer
---@class WK_CharacterFirstCraft
---@field id integer
---@field completed boolean
---@class WK_CharacterProfession
---@field enabled boolean
---@field skillLineVariantID integer
---@field skillLevel integer
---@field skillMaxLevel integer
---@field knowledgeLevel integer
---@field knowledgeMaxLevel integer
---@field knowledgeUnspent integer
---@field specializations WK_CharacterProfessionSpecialization[]
---@class WK_CharacterProfessionSpecialization
---@field rootNodeID integer
---@field rootIconID integer
---@field name string
---@field description string
---@field state Enum.ProfessionsSpecTabState
---@field treeID integer
---@field configID integer
---@field knowledgeLevel integer
---@field knowledgeMaxLevel integer
--------------------------------------------------------------------------------
-- Objectives Data
--------------------------------------------------------------------------------
---@class WK_ObjectiveCategory
---@field id Enum.WK_ObjectiveCategory
---@field name string
---@field description string
---@field type "item" | "quest" | "recipe"
---@field repeatable "No" | "Yes" | "Weekly" | "Monthly"
---@field hint boolean?
---@alias WK_ObjectiveRequirementType "item" | "currency" | "renown" | "skill" | "quest"
---@alias WK_ObjectiveRequirementMatch "all" | "any"
---@class WK_ObjectiveLocation
---@field m number?
---@field x number?
---@field y number?
---@field hint string?
---@class WK_ObjectiveRequirement
---@field type WK_ObjectiveRequirementType
---@field id integer?
---@field amount integer?
---@field name string?
---@field quests integer[]?
---@field match WK_ObjectiveRequirementMatch?
---@class WK_Objective
---@field skillLineVariantID integer
---@field categoryID Enum.WK_ObjectiveCategory
---@field quests integer[]
---@field spellID integer?
---@field itemID integer?
---@field points integer
---@field limit integer?
---@field loc WK_ObjectiveLocation?
---@field requires WK_ObjectiveRequirement[]?
--------------------------------------------------------------------------------
-- Progress State
--------------------------------------------------------------------------------
---@class WK_ObjectiveProgressRequirement
---@field requirement WK_ObjectiveRequirement
---@field isCompleted boolean
---@class WK_ObjectiveProgress
---@field character WK_Character
---@field objective WK_Objective
---@field isCompleted boolean
---@field questsCompleted number
---@field questsTotal number
---@field pointsEarned number
---@field pointsTotal number
---@field requirementsMet number
---@field requirementsTotal number
---@field requirements WK_ObjectiveProgressRequirement[]
---@field items table<integer, boolean>
---@class WK_CategoryProgress
---@field character WK_Character
---@field objectiveCategory WK_ObjectiveCategory
---@field objectivesCompleted number
---@field objectivesTotal number
---@field pointsEarned number
---@field pointsTotal number
---@field requirementsMet number
---@field requirementsTotal number
---@field requirements WK_ObjectiveProgressRequirement[]
---@field items table<integer, boolean>
---@class WK_ProfessionProgress
---@field character WK_Character
---@field profession WK_CharacterProfession
---@field objectivesCompleted number
---@field objectivesTotal number
---@field pointsEarned number
---@field pointsTotal number
---@field requirementsMet number
---@field requirementsTotal number
---@field requirements WK_ObjectiveProgressRequirement[]
---@field items table<integer, boolean>
---@class WK_CategoryProfessionProgress
---@field character WK_Character
---@field category WK_ObjectiveCategory
---@field profession WK_CharacterProfession
---@field objectivesCompleted number
---@field objectivesTotal number
---@field pointsEarned number
---@field pointsTotal number
---@field requirementsMet number
---@field requirementsTotal number
---@field requirements WK_ObjectiveProgressRequirement[]
---@field items table<integer, boolean>
--------------------------------------------------------------------------------
-- Cache
--------------------------------------------------------------------------------
---@class WK_DataCache
---@field calendarOpened boolean
---@field isDarkmoonOpen boolean
---@field inCombat boolean
---@field items table<integer, ItemMixin>
---@field mapInfo table<integer, UiMapDetails>
---@field progressCache table<string, WK_ObjectiveProgress[]>
---@field completedQuests table<integer, boolean>
---@field tradeSkillRecipes TradeSkillRecipeInfo[]
--------------------------------------------------------------------------------
-- Tables
--------------------------------------------------------------------------------
---@class WK_TableData
---@field columns WK_TableColumn[]?
---@field rows WK_TableRow[]
---@class WK_TableColumnSorting
---@field enabled boolean
---@field compare? fun(a: WK_TableRow, b: WK_TableRow): boolean
---@class WK_TableColumn
---@field id string
---@field headerText string
---@field width integer
---@field align "LEFT" | "CENTER" | "RIGHT" | nil
---@field onEnter function?
---@field onLeave function?
---@field toggleHidden boolean?
---@field renderCell fun(data: WK_TableRowData): WK_TableCell
---@field sorting WK_TableColumnSorting
---@class WK_TableRow
---@field cells WK_TableCell[]
---@field backgroundColor {r: number, g: number, b: number, a: number}?
---@field onEnter function?
---@field onLeave function?
---@field onClick function?
---@field data WK_TableRowData|nil
---@class WK_TableRowData
---@field character WK_Character
---@field characterProfession WK_CharacterProfession
---@field skillLineVariantID integer
---@field objective WK_Objective?
---@field progress WK_ObjectiveProgress?
---@class WK_TableCell
---@field text string?
---@field backgroundColor {r: number, g: number, b: number, a: number}?
---@field onEnter function?
---@field onLeave function?
---@field onClick function?
---@class WK_TableSortConfig
---@field enabled boolean
---@field defaultOrder "asc"|"desc"
---@field defaultCompare fun(a: WK_TableRow, b: WK_TableRow): boolean
---@field savedState WK_TableSortState?
---@field onStateChanged? fun(state: WK_TableSortState)
---@class WK_TableConfigHeader
---@field enabled boolean
---@field sticky boolean
---@field height number
---@class WK_TableConfigRows
---@field height number
---@field highlight boolean
---@field striped boolean
---@class WK_TableConfigColumnDefaults
---@field width number
---@field highlight boolean
---@field striped boolean
---@class WK_TableConfigCells
---@field padding number
---@field highlight boolean
---@class WK_TableConfig
---@field header WK_TableConfigHeader?
---@field rows WK_TableConfigRows?
---@field columns WK_TableConfigColumnDefaults?
---@field cells WK_TableConfigCells?
---@field sorting WK_TableSortConfig?
---@field data WK_TableData?
--------------------------------------------------------------------------------
-- Enums
--------------------------------------------------------------------------------
---@enum Enum.WK_ObjectiveCategory
Enum.WK_ObjectiveCategory = {
Unique = "Unique",
FirstCraft = "FirstCraft",
Treatise = "Treatise",
ArtisanQuest = "ArtisanQuest",
Treasure = "Treasure",
Gathering = "Gathering",
TrainerQuest = "TrainerQuest",
DarkmoonQuest = "DarkmoonQuest",
CatchUp = "CatchUp",
WeeklyQuest = "WeeklyQuest",
}
---@enum Enum.WK_Factions
Enum.WK_Faction = {
AmaniTribe = 2696,
TheSingularity = 2699,
Harati = 2704,
SilvermoonCity = 2710
}
---@enum Enum.WK_Currencies
Enum.WK_Currency = {
VoidlightMarl = 3316,
ArtisanAlchemistMoxie = 3256,
ArtisanBlacksmithMoxie = 3257,
ArtisanEnchanterMoxie = 3258,
ArtisanEngineerMoxie = 3259,
ArtisanHerbalistMoxie = 3260,
ArtisanScribeMoxie = 3261,
ArtisanJewelcrafterMoxie = 3262,
ArtisanLeatherworkerMoxie = 3263,
ArtisanMinerMoxie = 3264,
ArtisanSkinnerMoxie = 3265,
ArtisanTailorMoxie = 3266,
UnalloyedAbundance = 3377,
}
---@enum Enum.WK_Maps
Enum.WK_Map = {
AtalAman = 2536,
AzjKahet = 2255,
CityOfThreads = 2213,
DarkmoonIsland = 407,
Dornogal = 2339,
EversongWoods = 2395,
Hallowfall = 2215,
Harandar = 2413,
IsleOfDorn = 2248,
SilvermoonCity = 2393,
SlayersRise = 2444,
Tazavesh = 2472,
TheRingingDeeps = 2214,
Undermine = 2346,
Voidstorm = 2405,
ZulAman = 2437,
}