wuira 0.3.2 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +27 -9
  3. package/docs/source-converters.md +6 -6
  4. package/docs/spells.md +1 -1
  5. package/lib/datasources/NativeApi.d.ts +319 -0
  6. package/lib/datasources/NativeApi.lua +1114 -0
  7. package/lib/datasources/NativeNumberSource.d.ts +1 -1
  8. package/lib/datasources/NativeNumberSource.lua +16 -1
  9. package/lib/datasources/ProgressSource.lua +5 -9
  10. package/lib/datasources/Source.d.ts +18 -0
  11. package/lib/datasources/Source.lua +300 -0
  12. package/lib/datasources/SourceConverter.d.ts +1 -1
  13. package/lib/datasources/SourceConverter.lua +10 -1
  14. package/lib/datasources/TextureSource.d.ts +1 -1
  15. package/lib/datasources/TextureSource.lua +16 -1
  16. package/lib/datasources/TimerSource.d.ts +1 -1
  17. package/lib/datasources/TimerSource.lua +16 -1
  18. package/lib/datasources/UseSource.d.ts +49 -0
  19. package/lib/datasources/UseSource.lua +9 -0
  20. package/lib/datasources/index.d.ts +5 -25
  21. package/lib/datasources/index.lua +49 -69
  22. package/lib/helpers/Auras.d.ts +5 -0
  23. package/lib/helpers/Auras.lua +47 -0
  24. package/lib/helpers/Range.d.ts +2 -0
  25. package/lib/helpers/Range.lua +30 -0
  26. package/lib/helpers/index.d.ts +2 -0
  27. package/lib/helpers/index.lua +12 -0
  28. package/lib/index.d.ts +1 -0
  29. package/lib/index.lua +6 -0
  30. package/lib/platform/forever.d.ts +3 -0
  31. package/lib/rendering/progress.lua +5 -150
  32. package/lib/ui/UnitPortrait.d.ts +1 -2
  33. package/lib/ui/UnitPortrait.lua +11 -18
  34. package/package.json +8 -1
  35. package/lib/datasources/AuraTimer.d.ts +0 -21
  36. package/lib/datasources/AuraTimer.lua +0 -322
  37. package/lib/datasources/Auras.d.ts +0 -32
  38. package/lib/datasources/Auras.lua +0 -284
  39. package/lib/datasources/CastTimer.d.ts +0 -9
  40. package/lib/datasources/CastTimer.lua +0 -240
  41. package/lib/datasources/EditModeLayouts.d.ts +0 -33
  42. package/lib/datasources/EditModeLayouts.lua +0 -689
  43. package/lib/datasources/GroupMembers.d.ts +0 -24
  44. package/lib/datasources/GroupMembers.lua +0 -454
  45. package/lib/datasources/GroupRoster.d.ts +0 -28
  46. package/lib/datasources/GroupRoster.lua +0 -611
  47. package/lib/datasources/KnownSpells.d.ts +0 -33
  48. package/lib/datasources/KnownSpells.lua +0 -1068
  49. package/lib/datasources/ManaRegenTimer.d.ts +0 -29
  50. package/lib/datasources/ManaRegenTimer.lua +0 -674
  51. package/lib/datasources/Resources.d.ts +0 -60
  52. package/lib/datasources/Resources.lua +0 -824
  53. package/lib/datasources/SpellCooldown.d.ts +0 -12
  54. package/lib/datasources/SpellCooldown.lua +0 -218
  55. package/lib/datasources/SpellSource.d.ts +0 -14
  56. package/lib/datasources/SpellSource.lua +0 -224
  57. package/lib/datasources/SwingTimer.d.ts +0 -31
  58. package/lib/datasources/SwingTimer.lua +0 -641
  59. package/lib/datasources/TotemTimer.d.ts +0 -10
  60. package/lib/datasources/TotemTimer.lua +0 -260
  61. package/lib/datasources/UnitInfo.d.ts +0 -51
  62. package/lib/datasources/UnitInfo.lua +0 -783
  63. package/lib/datasources/UnitSource.d.ts +0 -38
  64. package/lib/datasources/UnitSource.lua +0 -602
@@ -1,824 +0,0 @@
1
- --[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]]
2
- -- Lua Library inline imports
3
- local function __TS__Class(self)
4
- local c = {prototype = {}}
5
- c.prototype.__index = c.prototype
6
- c.prototype.constructor = c
7
- return c
8
- end
9
-
10
- local function __TS__ClassExtends(target, base)
11
- target.____super = base
12
- local staticMetatable = setmetatable({__index = base}, base)
13
- setmetatable(target, staticMetatable)
14
- local baseMetatable = getmetatable(base)
15
- if baseMetatable then
16
- if type(baseMetatable.__index) == "function" then
17
- staticMetatable.__index = baseMetatable.__index
18
- end
19
- if type(baseMetatable.__newindex) == "function" then
20
- staticMetatable.__newindex = baseMetatable.__newindex
21
- end
22
- end
23
- setmetatable(target.prototype, base.prototype)
24
- if type(base.prototype.__index) == "function" then
25
- target.prototype.__index = base.prototype.__index
26
- end
27
- if type(base.prototype.__newindex) == "function" then
28
- target.prototype.__newindex = base.prototype.__newindex
29
- end
30
- if type(base.prototype.__tostring) == "function" then
31
- target.prototype.__tostring = base.prototype.__tostring
32
- end
33
- end
34
-
35
- local __TS__Symbol, Symbol
36
- do
37
- local symbolMetatable = {__tostring = function(self)
38
- return ("Symbol(" .. (self.description or "")) .. ")"
39
- end}
40
- function __TS__Symbol(description)
41
- return setmetatable({description = description}, symbolMetatable)
42
- end
43
- Symbol = {
44
- asyncDispose = __TS__Symbol("Symbol.asyncDispose"),
45
- dispose = __TS__Symbol("Symbol.dispose"),
46
- iterator = __TS__Symbol("Symbol.iterator"),
47
- hasInstance = __TS__Symbol("Symbol.hasInstance"),
48
- species = __TS__Symbol("Symbol.species"),
49
- toStringTag = __TS__Symbol("Symbol.toStringTag")
50
- }
51
- end
52
-
53
- local __TS__Iterator
54
- do
55
- local function iteratorGeneratorStep(self)
56
- local co = self.____coroutine
57
- local status, value = coroutine.resume(co)
58
- if not status then
59
- error(value, 0)
60
- end
61
- if coroutine.status(co) == "dead" then
62
- return
63
- end
64
- return true, value
65
- end
66
- local function iteratorIteratorStep(self)
67
- local result = self:next()
68
- if result.done then
69
- return
70
- end
71
- return true, result.value
72
- end
73
- local function iteratorStringStep(self, index)
74
- index = index + 1
75
- if index > #self then
76
- return
77
- end
78
- return index, string.sub(self, index, index)
79
- end
80
- function __TS__Iterator(iterable)
81
- if type(iterable) == "string" then
82
- return iteratorStringStep, iterable, 0
83
- elseif iterable.____coroutine ~= nil then
84
- return iteratorGeneratorStep, iterable
85
- elseif iterable[Symbol.iterator] then
86
- local iterator = iterable[Symbol.iterator](iterable)
87
- return iteratorIteratorStep, iterator
88
- else
89
- return ipairs(iterable)
90
- end
91
- end
92
- end
93
-
94
- local function __TS__New(target, ...)
95
- local instance = setmetatable({}, target.prototype)
96
- instance:____constructor(...)
97
- return instance
98
- end
99
-
100
- local Set
101
- do
102
- Set = __TS__Class()
103
- Set.name = "Set"
104
- function Set.prototype.____constructor(self, values)
105
- self[Symbol.toStringTag] = "Set"
106
- self.size = 0
107
- self.nextKey = {}
108
- self.previousKey = {}
109
- if values == nil then
110
- return
111
- end
112
- local iterable = values
113
- if iterable[Symbol.iterator] then
114
- local iterator = iterable[Symbol.iterator](iterable)
115
- while true do
116
- local result = iterator:next()
117
- if result.done then
118
- break
119
- end
120
- self:add(result.value)
121
- end
122
- else
123
- local array = values
124
- for ____, value in ipairs(array) do
125
- self:add(value)
126
- end
127
- end
128
- end
129
- function Set.prototype.add(self, value)
130
- local isNewValue = not self:has(value)
131
- if isNewValue then
132
- self.size = self.size + 1
133
- end
134
- if self.firstKey == nil then
135
- self.firstKey = value
136
- self.lastKey = value
137
- elseif isNewValue then
138
- self.nextKey[self.lastKey] = value
139
- self.previousKey[value] = self.lastKey
140
- self.lastKey = value
141
- end
142
- return self
143
- end
144
- function Set.prototype.clear(self)
145
- self.nextKey = {}
146
- self.previousKey = {}
147
- self.firstKey = nil
148
- self.lastKey = nil
149
- self.size = 0
150
- end
151
- function Set.prototype.delete(self, value)
152
- local contains = self:has(value)
153
- if contains then
154
- self.size = self.size - 1
155
- local next = self.nextKey[value]
156
- local previous = self.previousKey[value]
157
- if next ~= nil and previous ~= nil then
158
- self.nextKey[previous] = next
159
- self.previousKey[next] = previous
160
- elseif next ~= nil then
161
- self.firstKey = next
162
- self.previousKey[next] = nil
163
- elseif previous ~= nil then
164
- self.lastKey = previous
165
- self.nextKey[previous] = nil
166
- else
167
- self.firstKey = nil
168
- self.lastKey = nil
169
- end
170
- self.nextKey[value] = nil
171
- self.previousKey[value] = nil
172
- end
173
- return contains
174
- end
175
- function Set.prototype.forEach(self, callback)
176
- for ____, key in __TS__Iterator(self:keys()) do
177
- callback(nil, key, key, self)
178
- end
179
- end
180
- function Set.prototype.has(self, value)
181
- return self.nextKey[value] ~= nil or self.lastKey == value
182
- end
183
- Set.prototype[Symbol.iterator] = function(self)
184
- return self:values()
185
- end
186
- function Set.prototype.entries(self)
187
- local function getFirstKey()
188
- return self.firstKey
189
- end
190
- local nextKey = self.nextKey
191
- local key
192
- local started = false
193
- return {
194
- [Symbol.iterator] = function(self)
195
- return self
196
- end,
197
- next = function(self)
198
- if not started then
199
- started = true
200
- key = getFirstKey(nil)
201
- else
202
- key = nextKey[key]
203
- end
204
- return {done = not key, value = {key, key}}
205
- end
206
- }
207
- end
208
- function Set.prototype.keys(self)
209
- local function getFirstKey()
210
- return self.firstKey
211
- end
212
- local nextKey = self.nextKey
213
- local key
214
- local started = false
215
- return {
216
- [Symbol.iterator] = function(self)
217
- return self
218
- end,
219
- next = function(self)
220
- if not started then
221
- started = true
222
- key = getFirstKey(nil)
223
- else
224
- key = nextKey[key]
225
- end
226
- return {done = not key, value = key}
227
- end
228
- }
229
- end
230
- function Set.prototype.values(self)
231
- local function getFirstKey()
232
- return self.firstKey
233
- end
234
- local nextKey = self.nextKey
235
- local key
236
- local started = false
237
- return {
238
- [Symbol.iterator] = function(self)
239
- return self
240
- end,
241
- next = function(self)
242
- if not started then
243
- started = true
244
- key = getFirstKey(nil)
245
- else
246
- key = nextKey[key]
247
- end
248
- return {done = not key, value = key}
249
- end
250
- }
251
- end
252
- function Set.prototype.union(self, other)
253
- local result = __TS__New(Set, self)
254
- for ____, item in __TS__Iterator(other) do
255
- result:add(item)
256
- end
257
- return result
258
- end
259
- function Set.prototype.intersection(self, other)
260
- local result = __TS__New(Set)
261
- for ____, item in __TS__Iterator(self) do
262
- if other:has(item) then
263
- result:add(item)
264
- end
265
- end
266
- return result
267
- end
268
- function Set.prototype.difference(self, other)
269
- local result = __TS__New(Set, self)
270
- for ____, item in __TS__Iterator(other) do
271
- result:delete(item)
272
- end
273
- return result
274
- end
275
- function Set.prototype.symmetricDifference(self, other)
276
- local result = __TS__New(Set, self)
277
- for ____, item in __TS__Iterator(other) do
278
- if self:has(item) then
279
- result:delete(item)
280
- else
281
- result:add(item)
282
- end
283
- end
284
- return result
285
- end
286
- function Set.prototype.isSubsetOf(self, other)
287
- for ____, item in __TS__Iterator(self) do
288
- if not other:has(item) then
289
- return false
290
- end
291
- end
292
- return true
293
- end
294
- function Set.prototype.isSupersetOf(self, other)
295
- for ____, item in __TS__Iterator(other) do
296
- if not self:has(item) then
297
- return false
298
- end
299
- end
300
- return true
301
- end
302
- function Set.prototype.isDisjointFrom(self, other)
303
- for ____, item in __TS__Iterator(self) do
304
- if other:has(item) then
305
- return false
306
- end
307
- end
308
- return true
309
- end
310
- Set[Symbol.species] = Set
311
- end
312
-
313
- local function __TS__ArrayIncludes(self, searchElement, fromIndex)
314
- if fromIndex == nil then
315
- fromIndex = 0
316
- end
317
- local len = #self
318
- local k = fromIndex
319
- if fromIndex < 0 then
320
- k = len + fromIndex
321
- end
322
- if k < 0 then
323
- k = 0
324
- end
325
- for i = k + 1, len do
326
- if self[i] == searchElement then
327
- return true
328
- end
329
- end
330
- return false
331
- end
332
-
333
- local function __TS__CloneDescriptor(____bindingPattern0)
334
- local value
335
- local writable
336
- local set
337
- local get
338
- local configurable
339
- local enumerable
340
- enumerable = ____bindingPattern0.enumerable
341
- configurable = ____bindingPattern0.configurable
342
- get = ____bindingPattern0.get
343
- set = ____bindingPattern0.set
344
- writable = ____bindingPattern0.writable
345
- value = ____bindingPattern0.value
346
- local descriptor = {enumerable = enumerable == true, configurable = configurable == true}
347
- local hasGetterOrSetter = get ~= nil or set ~= nil
348
- local hasValueOrWritableAttribute = writable ~= nil or value ~= nil
349
- if hasGetterOrSetter and hasValueOrWritableAttribute then
350
- error("Invalid property descriptor. Cannot both specify accessors and a value or writable attribute.", 0)
351
- end
352
- if get or set then
353
- descriptor.get = get
354
- descriptor.set = set
355
- else
356
- descriptor.value = value
357
- descriptor.writable = writable == true
358
- end
359
- return descriptor
360
- end
361
-
362
- local __TS__DescriptorGet
363
- do
364
- local getmetatable = _G.getmetatable
365
- local ____rawget = _G.rawget
366
- function __TS__DescriptorGet(self, metatable, key)
367
- while metatable do
368
- local rawResult = ____rawget(metatable, key)
369
- if rawResult ~= nil then
370
- return rawResult
371
- end
372
- local descriptors = ____rawget(metatable, "_descriptors")
373
- if descriptors then
374
- local descriptor = descriptors[key]
375
- if descriptor ~= nil then
376
- if descriptor.get then
377
- return descriptor.get(self)
378
- end
379
- return descriptor.value
380
- end
381
- end
382
- metatable = getmetatable(metatable)
383
- end
384
- end
385
- end
386
-
387
- local __TS__DescriptorSet
388
- do
389
- local getmetatable = _G.getmetatable
390
- local ____rawget = _G.rawget
391
- local rawset = _G.rawset
392
- function __TS__DescriptorSet(self, metatable, key, value)
393
- while metatable do
394
- local descriptors = ____rawget(metatable, "_descriptors")
395
- if descriptors then
396
- local descriptor = descriptors[key]
397
- if descriptor ~= nil then
398
- if descriptor.set then
399
- descriptor.set(self, value)
400
- else
401
- if descriptor.writable == false then
402
- error(
403
- ((("Cannot assign to read only property '" .. key) .. "' of object '") .. tostring(self)) .. "'",
404
- 0
405
- )
406
- end
407
- descriptor.value = value
408
- end
409
- return
410
- end
411
- end
412
- metatable = getmetatable(metatable)
413
- end
414
- rawset(self, key, value)
415
- end
416
- end
417
-
418
- local __TS__SetDescriptor
419
- do
420
- local getmetatable = _G.getmetatable
421
- local function descriptorIndex(self, key)
422
- return __TS__DescriptorGet(
423
- self,
424
- getmetatable(self),
425
- key
426
- )
427
- end
428
- local function descriptorNewIndex(self, key, value)
429
- return __TS__DescriptorSet(
430
- self,
431
- getmetatable(self),
432
- key,
433
- value
434
- )
435
- end
436
- function __TS__SetDescriptor(target, key, desc, isPrototype)
437
- if isPrototype == nil then
438
- isPrototype = false
439
- end
440
- local ____isPrototype_0
441
- if isPrototype then
442
- ____isPrototype_0 = target
443
- else
444
- ____isPrototype_0 = getmetatable(target)
445
- end
446
- local metatable = ____isPrototype_0
447
- if not metatable then
448
- metatable = {}
449
- setmetatable(target, metatable)
450
- end
451
- if not isPrototype and not rawget(metatable, "_isOwnDescriptorMetatable") then
452
- local instanceMetatable = {}
453
- instanceMetatable._isOwnDescriptorMetatable = true
454
- setmetatable(instanceMetatable, metatable)
455
- setmetatable(target, instanceMetatable)
456
- metatable = instanceMetatable
457
- end
458
- local value = rawget(target, key)
459
- if value ~= nil then
460
- rawset(target, key, nil)
461
- end
462
- if not rawget(metatable, "_descriptors") then
463
- metatable._descriptors = {}
464
- end
465
- metatable._descriptors[key] = __TS__CloneDescriptor(desc)
466
- metatable.__index = descriptorIndex
467
- metatable.__newindex = descriptorNewIndex
468
- end
469
- end
470
-
471
- local function __TS__ObjectAssign(target, ...)
472
- local sources = {...}
473
- for i = 1, #sources do
474
- local source = sources[i]
475
- if type(source) == "table" then
476
- for key in pairs(source) do
477
- target[key] = source[key]
478
- end
479
- end
480
- end
481
- return target
482
- end
483
- -- End of Lua Library inline imports
484
- local ____exports = {}
485
- local ____ProgressSource = require("datasources.ProgressSource")
486
- local ProgressSource = ____ProgressSource.ProgressSource
487
- local ____UnitSource = require("datasources.UnitSource")
488
- local Unit = ____UnitSource.Unit
489
- local resolveUnit = ____UnitSource.resolveUnit
490
- local ____DataSource = require("datasources.DataSource")
491
- local DataSource = ____DataSource.DataSource
492
- local ____ManaRegenTimer = require("datasources.ManaRegenTimer")
493
- local ManaRegenTimer = ____ManaRegenTimer.ManaRegenTimer
494
- do
495
- local ____UnitSource = require("datasources.UnitSource")
496
- ____exports.Unit = ____UnitSource.Unit
497
- end
498
- --- Direct API-to-widget binding; opaque values are never compared or calculated.
499
- local Resource = __TS__Class()
500
- Resource.name = "Resource"
501
- __TS__ClassExtends(Resource, ProgressSource)
502
- function Resource.prototype.____constructor(self, current, maximum, percent, unitReference, events)
503
- ProgressSource.prototype.____constructor(
504
- self,
505
- {
506
- current = current,
507
- min = function() return 0 end,
508
- max = maximum,
509
- percent = percent
510
- }
511
- )
512
- self.unitReference = unitReference
513
- self.events = events
514
- self.listeners = __TS__New(Set)
515
- self.dispatching = false
516
- self.eventValue = 0
517
- end
518
- function Resource.prototype.AddEvents(self, ...)
519
- local events = {...}
520
- for ____, event in ipairs(events) do
521
- do
522
- local __continue5
523
- repeat
524
- if __TS__ArrayIncludes(self.events, event) then
525
- __continue5 = true
526
- break
527
- end
528
- local ____self_events_0 = self.events
529
- ____self_events_0[#____self_events_0 + 1] = event
530
- if self.listeners.size > 0 then
531
- local ____opt_1 = self.eventFrame
532
- if ____opt_1 ~= nil then
533
- ____opt_1:RegisterEvent(event)
534
- end
535
- end
536
- __continue5 = true
537
- until true
538
- if not __continue5 then
539
- break
540
- end
541
- end
542
- end
543
- end
544
- function Resource.prototype.GetValue(self)
545
- return self.dispatching and self.eventValue or ProgressSource.prototype.GetValue(self)
546
- end
547
- function Resource.prototype.onChange(self, listener)
548
- local previous = self:GetValue()
549
- local readable = not issecretvalue(previous)
550
- return self:Observe(function(____, _, _payload, value)
551
- if issecretvalue(value) or not self:CanEmit(value) then
552
- return
553
- end
554
- if readable and value == previous then
555
- return
556
- end
557
- previous = value
558
- readable = true
559
- listener(nil, value)
560
- end)
561
- end
562
- function Resource.prototype.Observe(self, listener)
563
- self.listeners:add(listener)
564
- if self.listeners.size == 1 then
565
- if self.eventFrame == nil then
566
- self.eventFrame = CreateFrame("Frame", nil, UIParent)
567
- end
568
- local frame = self.eventFrame
569
- local function dispatch(____, event, payload)
570
- self.eventValue = ProgressSource.prototype.GetValue(self)
571
- self.dispatching = true
572
- do
573
- local ____try, ____error = pcall(function()
574
- for ____, callback in __TS__Iterator(self.listeners) do
575
- callback(nil, event, payload, self.eventValue)
576
- end
577
- end)
578
- do
579
- self.dispatching = false
580
- end
581
- if not ____try then
582
- error(____error, 0)
583
- end
584
- end
585
- end
586
- frame:SetScript(
587
- "OnEvent",
588
- function(_frame, event, ...)
589
- local payload = {...}
590
- if event ~= "PLAYER_ENTERING_WORLD" and (issecretvalue(payload[1]) or payload[1] ~= self.unitReference.Token) then
591
- return
592
- end
593
- dispatch(nil, event, payload)
594
- end
595
- )
596
- self.stopUnit = self.unitReference:onChange(function() return dispatch(nil, "UNIT_IDENTITY_CHANGED", {self.unitReference.Token}) end)
597
- frame:RegisterEvent("PLAYER_ENTERING_WORLD")
598
- for ____, event in ipairs(self.events) do
599
- frame:RegisterEvent(event)
600
- end
601
- end
602
- return function()
603
- self.listeners:delete(listener)
604
- if self.listeners.size == 0 then
605
- local ____opt_3 = self.stopUnit
606
- if ____opt_3 ~= nil then
607
- ____opt_3(self)
608
- end
609
- self.stopUnit = nil
610
- local ____opt_5 = self.eventFrame
611
- if ____opt_5 ~= nil then
612
- ____opt_5:UnregisterAllEvents()
613
- end
614
- local ____opt_7 = self.eventFrame
615
- if ____opt_7 ~= nil then
616
- ____opt_7:SetScript("OnEvent", nil)
617
- end
618
- end
619
- end
620
- end
621
- function Resource.prototype.Listen(self, _frame, refresh)
622
- return self:Observe(function() return refresh(nil) end)
623
- end
624
- --- Live optional prediction channel. Secret amounts only travel to native sinks.
625
- ____exports.HealthPrediction = __TS__Class()
626
- local HealthPrediction = ____exports.HealthPrediction
627
- HealthPrediction.name = "HealthPrediction"
628
- __TS__ClassExtends(HealthPrediction, DataSource)
629
- function HealthPrediction.prototype.____constructor(self, read)
630
- DataSource.prototype.____constructor(self, 0)
631
- self.read = read
632
- end
633
- function HealthPrediction.prototype.GetValue(self)
634
- local ____opt_9 = self.read
635
- local value = ____opt_9 and ____opt_9(self)
636
- if issecretvalue(value) then
637
- return value
638
- end
639
- return value or 0
640
- end
641
- function HealthPrediction.prototype.ApplyTo(self, frame, maximum)
642
- if not self.IsAvailable then
643
- frame:Hide()
644
- return
645
- end
646
- local value = self:GetValue()
647
- if not self:CanEmit(value) then
648
- frame:Hide()
649
- return
650
- end
651
- frame:SetMinMaxValues(0, maximum)
652
- frame:SetValue(value)
653
- frame:Show()
654
- end
655
- __TS__SetDescriptor(
656
- HealthPrediction.prototype,
657
- "IsAvailable",
658
- {get = function(self)
659
- return self.read ~= nil
660
- end},
661
- true
662
- )
663
- ____exports.HP = __TS__Class()
664
- local HP = ____exports.HP
665
- HP.name = "HP"
666
- __TS__ClassExtends(HP, Resource)
667
- function HP.prototype.____constructor(self, unit)
668
- if unit == nil then
669
- unit = Unit.Player
670
- end
671
- local target = resolveUnit(nil, unit)
672
- Resource.prototype.____constructor(
673
- self,
674
- function() return UnitHealth(target.Token) end,
675
- function() return UnitHealthMax(target.Token) end,
676
- function() return UnitHealthPercent(target.Token, true, CurveConstants.ScaleTo100) end,
677
- target,
678
- {"UNIT_HEALTH", "UNIT_MAXHEALTH", "UNIT_CONNECTION"}
679
- )
680
- self.target = target
681
- end
682
- function HP.prototype.UseHealPrediction(self)
683
- if self.healPrediction == nil then
684
- local ____exports_HealthPrediction_12 = ____exports.HealthPrediction
685
- local ____temp_11
686
- if UnitGetIncomingHeals == nil then
687
- ____temp_11 = nil
688
- else
689
- ____temp_11 = function() return UnitGetIncomingHeals(self.unit) end
690
- end
691
- self.healPrediction = __TS__New(____exports_HealthPrediction_12, ____temp_11)
692
- if self.healPrediction.IsAvailable then
693
- self:AddEvents("UNIT_HEAL_PREDICTION")
694
- end
695
- end
696
- return self
697
- end
698
- function HP.prototype.UseAbsorbPrediction(self)
699
- if self.absorbPrediction == nil then
700
- local ____exports_HealthPrediction_14 = ____exports.HealthPrediction
701
- local ____temp_13
702
- if UnitGetTotalAbsorbs == nil then
703
- ____temp_13 = nil
704
- else
705
- ____temp_13 = function() return UnitGetTotalAbsorbs(self.unit) end
706
- end
707
- self.absorbPrediction = __TS__New(____exports_HealthPrediction_14, ____temp_13)
708
- if self.absorbPrediction.IsAvailable then
709
- self:AddEvents("UNIT_ABSORB_AMOUNT_CHANGED")
710
- end
711
- end
712
- return self
713
- end
714
- function HP.prototype.BindTo(self, frame, options)
715
- if options == nil then
716
- options = {}
717
- end
718
- if (options.healPredictionBar ~= nil or options.absorbPredictionBar ~= nil) and (options.min ~= nil or options.max ~= nil or options.current ~= nil) then
719
- error("HP: prediction overlays require the native health scale without min/max/current overrides")
720
- end
721
- return Resource.prototype.BindTo(
722
- self,
723
- frame,
724
- __TS__ObjectAssign(
725
- {},
726
- options,
727
- {onRefresh = function()
728
- if options.healPredictionBar ~= nil or options.absorbPredictionBar ~= nil then
729
- local maximum = UnitHealthMax(self.unit)
730
- if options.healPredictionBar ~= nil then
731
- local ____opt_15 = self.healPrediction
732
- if ____opt_15 ~= nil then
733
- ____opt_15:ApplyTo(options.healPredictionBar, maximum)
734
- end
735
- end
736
- if options.absorbPredictionBar ~= nil then
737
- local ____opt_17 = self.absorbPrediction
738
- if ____opt_17 ~= nil then
739
- ____opt_17:ApplyTo(options.absorbPredictionBar, maximum)
740
- end
741
- end
742
- end
743
- local ____this_20
744
- ____this_20 = options
745
- local ____opt_19 = ____this_20.onRefresh
746
- if ____opt_19 ~= nil then
747
- ____opt_19(____this_20)
748
- end
749
- end}
750
- )
751
- )
752
- end
753
- __TS__SetDescriptor(
754
- HP.prototype,
755
- "HealPrediction",
756
- {get = function(self)
757
- return self.healPrediction
758
- end},
759
- true
760
- )
761
- __TS__SetDescriptor(
762
- HP.prototype,
763
- "AbsorbPrediction",
764
- {get = function(self)
765
- return self.absorbPrediction
766
- end},
767
- true
768
- )
769
- __TS__SetDescriptor(
770
- HP.prototype,
771
- "unit",
772
- {get = function(self)
773
- return self.target.Token
774
- end},
775
- true
776
- )
777
- --- Explicit mana (power type 0), even while the unit uses rage/energy.
778
- ____exports.Mana = __TS__Class()
779
- local Mana = ____exports.Mana
780
- Mana.name = "Mana"
781
- __TS__ClassExtends(Mana, Resource)
782
- function Mana.prototype.____constructor(self, unit)
783
- local target = resolveUnit(nil, unit)
784
- Resource.prototype.____constructor(
785
- self,
786
- function() return UnitPower(target.Token, 0) end,
787
- function() return UnitPowerMax(target.Token, 0) end,
788
- function() return UnitPowerPercent(target.Token, 0, true, CurveConstants.ScaleTo100) end,
789
- target,
790
- {"UNIT_POWER_UPDATE", "UNIT_MAXPOWER", "UNIT_DISPLAYPOWER", "UNIT_CONNECTION"}
791
- )
792
- self.target = target
793
- end
794
- function Mana.prototype.UseRegenTimer(self)
795
- if self.unit ~= "player" then
796
- error("Mana.UseRegenTimer: only the player is supported")
797
- end
798
- if self.regenTimer == nil then
799
- self:AddEvents("UNIT_SPELLCAST_SUCCEEDED")
800
- self.regenTimer = __TS__New(
801
- ManaRegenTimer,
802
- function(____, listener) return self:Observe(listener) end
803
- )
804
- end
805
- return self
806
- end
807
- __TS__SetDescriptor(
808
- Mana.prototype,
809
- "RegenTimer",
810
- {get = function(self)
811
- return self.regenTimer
812
- end},
813
- true
814
- )
815
- __TS__SetDescriptor(
816
- Mana.prototype,
817
- "unit",
818
- {get = function(self)
819
- return self.target.Token
820
- end},
821
- true
822
- )
823
- ____exports.DataSources = {Resources = {HP = ____exports.HP, Mana = ____exports.Mana}}
824
- return ____exports