warscript 0.0.1-dev.c762beb → 0.0.1-dev.c7b0c06
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.
- package/core/types/frame.lua +47 -1
- package/engine/internal/unit/item.lua +1 -1
- package/engine/local-client.d.ts +5 -0
- package/engine/local-client.lua +56 -1
- package/lualib_bundle.lua +46 -117
- package/math.d.ts +2 -0
- package/math.lua +14 -0
- package/operation.lua +13 -22
- package/package.json +2 -2
package/core/types/frame.lua
CHANGED
|
@@ -24,11 +24,23 @@ local frameCoordinatesToWorld = ____playerCamera.frameCoordinatesToWorld
|
|
|
24
24
|
local worldCoordinatesToFrame = ____playerCamera.worldCoordinatesToFrame
|
|
25
25
|
local ____get_2Dterrain_2Dz = require("engine.internal.misc.get-terrain-z")
|
|
26
26
|
local getTerrainZ = ____get_2Dterrain_2Dz.getTerrainZ
|
|
27
|
+
local ____lua_2Dsets = require("utility.lua-sets")
|
|
28
|
+
local mutableLuaSet = ____lua_2Dsets.mutableLuaSet
|
|
29
|
+
local ____socket = require("net.socket")
|
|
30
|
+
local Socket = ____socket.Socket
|
|
31
|
+
local ____lua_2Dmaps = require("utility.lua-maps")
|
|
32
|
+
local getOrPut = ____lua_2Dmaps.getOrPut
|
|
33
|
+
local luaMapInvert = ____lua_2Dmaps.luaMapInvert
|
|
34
|
+
local luaMapOf = ____lua_2Dmaps.luaMapOf
|
|
35
|
+
local mutableLuaMap = ____lua_2Dmaps.mutableLuaMap
|
|
27
36
|
local frameClick = BlzFrameClick
|
|
28
37
|
local frameGetEnable = BlzFrameGetEnable
|
|
29
38
|
local frameIsVisible = BlzFrameIsVisible
|
|
30
39
|
local frameSetEnable = BlzFrameSetEnable
|
|
31
40
|
local frameSetScale = BlzFrameSetScale
|
|
41
|
+
local getHandleId = GetHandleId
|
|
42
|
+
local getOriginFrame = BlzGetOriginFrame
|
|
43
|
+
local location = Location
|
|
32
44
|
local ____rawget = _G.rawget
|
|
33
45
|
local rawset = _G.rawset
|
|
34
46
|
local invoke = Event.invoke
|
|
@@ -130,6 +142,30 @@ do
|
|
|
130
142
|
FramePoint.BOTTOM_RIGHT = FRAMEPOINT_BOTTOMRIGHT
|
|
131
143
|
end
|
|
132
144
|
local tooltipByFrame = setmetatable({}, {__mode = "k"})
|
|
145
|
+
local keyByAsyncInitOriginFrameType = luaMapOf(ORIGIN_FRAME_PORTRAIT_HP_TEXT, "hp", ORIGIN_FRAME_PORTRAIT_MANA_TEXT, "mana")
|
|
146
|
+
local asyncInitOriginFrameTypeByKey = luaMapInvert(keyByAsyncInitOriginFrameType)
|
|
147
|
+
local seenAsyncInitOriginFrameTypes = mutableLuaSet()
|
|
148
|
+
local seenAsyncInitOriginFrameTypesSocket = __TS__New(Socket)
|
|
149
|
+
local seenPlayersByAsyncInitOriginFrameType = mutableLuaMap()
|
|
150
|
+
seenAsyncInitOriginFrameTypesSocket.onMessage:addListener(function(player, key)
|
|
151
|
+
local asyncInitOriginFrameType = asyncInitOriginFrameTypeByKey[key]
|
|
152
|
+
if asyncInitOriginFrameType ~= nil then
|
|
153
|
+
getOrPut(seenPlayersByAsyncInitOriginFrameType, asyncInitOriginFrameType, mutableLuaSet)[player] = true
|
|
154
|
+
end
|
|
155
|
+
end)
|
|
156
|
+
local function haveAllPlayersSeenAsyncInitOriginFrameType(frame)
|
|
157
|
+
local players = seenPlayersByAsyncInitOriginFrameType[frame]
|
|
158
|
+
if players == nil then
|
|
159
|
+
return false
|
|
160
|
+
end
|
|
161
|
+
for ____, player in ipairs(Player.all) do
|
|
162
|
+
if player.isUser and player.isPlaying and not (players[player] ~= nil) then
|
|
163
|
+
return false
|
|
164
|
+
end
|
|
165
|
+
end
|
|
166
|
+
keyByAsyncInitOriginFrameType[frame] = nil
|
|
167
|
+
return true
|
|
168
|
+
end
|
|
133
169
|
____exports.Frame = __TS__Class()
|
|
134
170
|
local Frame = ____exports.Frame
|
|
135
171
|
Frame.name = "Frame"
|
|
@@ -308,7 +344,17 @@ function Frame.byOrigin(self, frameType, index)
|
|
|
308
344
|
if index == nil then
|
|
309
345
|
index = 0
|
|
310
346
|
end
|
|
311
|
-
|
|
347
|
+
local frame = getOriginFrame(frameType, index)
|
|
348
|
+
local asyncInitOriginFrameTypeKey = keyByAsyncInitOriginFrameType[frameType]
|
|
349
|
+
if index == 0 and asyncInitOriginFrameTypeKey ~= nil and not haveAllPlayersSeenAsyncInitOriginFrameType(frameType) then
|
|
350
|
+
if getHandleId(frame) == 0 or seenAsyncInitOriginFrameTypes[frameType] ~= nil then
|
|
351
|
+
location(0, 0)
|
|
352
|
+
else
|
|
353
|
+
seenAsyncInitOriginFrameTypes[frameType] = true
|
|
354
|
+
seenAsyncInitOriginFrameTypesSocket:send(asyncInitOriginFrameTypeKey)
|
|
355
|
+
end
|
|
356
|
+
end
|
|
357
|
+
return self:of(frame)
|
|
312
358
|
end
|
|
313
359
|
Frame.GAME_UI = ____exports.Frame:byOrigin(ORIGIN_FRAME_GAME_UI)
|
|
314
360
|
Frame.CONSOLE_UI = ____exports.Frame:byOrigin(ORIGIN_FRAME_SIMPLE_UI_PARENT)
|
|
@@ -21,7 +21,7 @@ local unitRemoveItemFromSlot = UnitRemoveItemFromSlot
|
|
|
21
21
|
local handleByUnitItems = setmetatable({}, {__mode = "k"})
|
|
22
22
|
local function unitItemsNext(handle, index)
|
|
23
23
|
local slot = index & 7
|
|
24
|
-
if
|
|
24
|
+
if index >> 3 == slot then
|
|
25
25
|
return nil, nil
|
|
26
26
|
end
|
|
27
27
|
return index + 1, Item:of(unitItemInSlot(handle, slot))
|
package/engine/local-client.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ export declare class LocalClient {
|
|
|
12
12
|
static get isHD(): boolean;
|
|
13
13
|
static get graphicsMode(): GraphicsMode;
|
|
14
14
|
static get isActive(): boolean;
|
|
15
|
+
static get isMinimized(): boolean;
|
|
15
16
|
static pingMinimap(x: number, y: number, duration: number, ...parameters: [] | [red: number, green: number, blue: number, flashy?: boolean] | [color: Color, flashy?: boolean]): void;
|
|
16
17
|
static get mouseFocusUnit(): Async<Unit> | undefined;
|
|
17
18
|
static get mainSelectedUnit(): Async<Unit> | undefined;
|
|
@@ -19,5 +20,9 @@ export declare class LocalClient {
|
|
|
19
20
|
previousMainSelectedUnit: Unit | undefined,
|
|
20
21
|
newMainSelectedUnit: Unit | undefined
|
|
21
22
|
]>;
|
|
23
|
+
static get isInTargetingMode(): boolean;
|
|
24
|
+
static readonly targetingModeEnterEvent: Event<[]>;
|
|
25
|
+
static readonly targetingModeLeaveEvent: Event<[]>;
|
|
26
|
+
static readonly targetingModeStateChangeEvent: Event<[]>;
|
|
22
27
|
static readonly onDisconnect: TriggerEvent<[]>;
|
|
23
28
|
}
|
package/engine/local-client.lua
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
local ____lualib = require("lualib_bundle")
|
|
2
2
|
local __TS__ArrayMap = ____lualib.__TS__ArrayMap
|
|
3
|
+
local __TS__New = ____lualib.__TS__New
|
|
3
4
|
local __TS__Class = ____lualib.__TS__Class
|
|
4
5
|
local __TS__InstanceOf = ____lualib.__TS__InstanceOf
|
|
5
6
|
local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
|
|
6
|
-
local __TS__New = ____lualib.__TS__New
|
|
7
7
|
local ____exports = {}
|
|
8
|
+
local actualizeTargetingModeState
|
|
8
9
|
local ____unit = require("core.types.unit")
|
|
9
10
|
local Unit = ____unit.Unit
|
|
10
11
|
local ____event = require("event")
|
|
@@ -18,6 +19,8 @@ local ____timer = require("core.types.timer")
|
|
|
18
19
|
local Timer = ____timer.Timer
|
|
19
20
|
local ____color = require("core.types.color")
|
|
20
21
|
local Color = ____color.Color
|
|
22
|
+
local ____arrays = require("utility.arrays")
|
|
23
|
+
local array = ____arrays.array
|
|
21
24
|
local loadTOCFile = BlzLoadTOCFile
|
|
22
25
|
local getLocalClientWidth = BlzGetLocalClientWidth
|
|
23
26
|
local getLocalClientHeight = BlzGetLocalClientHeight
|
|
@@ -62,6 +65,10 @@ local function compareUnitsSelectionPriority(a, b)
|
|
|
62
65
|
end
|
|
63
66
|
local mainSelectedUnitChangeEvent
|
|
64
67
|
local previousMainSelectedUnit
|
|
68
|
+
local lastTargetingModeState = false
|
|
69
|
+
local targetingModeEnterEvent = __TS__New(Event)
|
|
70
|
+
local targetingModeLeaveEvent = __TS__New(Event)
|
|
71
|
+
local targetingModeStateChangeEvent = __TS__New(Event)
|
|
65
72
|
____exports.LocalClient = __TS__Class()
|
|
66
73
|
local LocalClient = ____exports.LocalClient
|
|
67
74
|
LocalClient.name = "LocalClient"
|
|
@@ -128,6 +135,13 @@ __TS__ObjectDefineProperty(
|
|
|
128
135
|
return isLocalClientActive()
|
|
129
136
|
end}
|
|
130
137
|
)
|
|
138
|
+
__TS__ObjectDefineProperty(
|
|
139
|
+
LocalClient,
|
|
140
|
+
"isMinimized",
|
|
141
|
+
{get = function(self)
|
|
142
|
+
return getLocalClientHeight() == 0
|
|
143
|
+
end}
|
|
144
|
+
)
|
|
131
145
|
__TS__ObjectDefineProperty(
|
|
132
146
|
LocalClient,
|
|
133
147
|
"mouseFocusUnit",
|
|
@@ -181,6 +195,16 @@ __TS__ObjectDefineProperty(
|
|
|
181
195
|
return mainSelectedUnitChangeEvent
|
|
182
196
|
end}
|
|
183
197
|
)
|
|
198
|
+
__TS__ObjectDefineProperty(
|
|
199
|
+
LocalClient,
|
|
200
|
+
"isInTargetingMode",
|
|
201
|
+
{get = function(self)
|
|
202
|
+
return actualizeTargetingModeState()
|
|
203
|
+
end}
|
|
204
|
+
)
|
|
205
|
+
LocalClient.targetingModeEnterEvent = targetingModeEnterEvent
|
|
206
|
+
LocalClient.targetingModeLeaveEvent = targetingModeLeaveEvent
|
|
207
|
+
LocalClient.targetingModeStateChangeEvent = targetingModeStateChangeEvent
|
|
184
208
|
LocalClient.onDisconnect = __TS__New(
|
|
185
209
|
TriggerEvent,
|
|
186
210
|
function(trigger)
|
|
@@ -188,6 +212,37 @@ LocalClient.onDisconnect = __TS__New(
|
|
|
188
212
|
end,
|
|
189
213
|
function() return end
|
|
190
214
|
)
|
|
215
|
+
local commandButtons = array(
|
|
216
|
+
12,
|
|
217
|
+
function(i) return Frame:byOrigin(ORIGIN_FRAME_COMMAND_BUTTON, i) end
|
|
218
|
+
)
|
|
219
|
+
local function getTargetingModeState()
|
|
220
|
+
for i = 0, 10 do
|
|
221
|
+
if commandButtons[i + 1].visible then
|
|
222
|
+
return false
|
|
223
|
+
end
|
|
224
|
+
end
|
|
225
|
+
return commandButtons[12].visible
|
|
226
|
+
end
|
|
227
|
+
actualizeTargetingModeState = function()
|
|
228
|
+
if getTargetingModeState() then
|
|
229
|
+
if not lastTargetingModeState then
|
|
230
|
+
lastTargetingModeState = true
|
|
231
|
+
Event.invoke(targetingModeEnterEvent)
|
|
232
|
+
Event.invoke(targetingModeStateChangeEvent)
|
|
233
|
+
end
|
|
234
|
+
return true
|
|
235
|
+
end
|
|
236
|
+
if lastTargetingModeState then
|
|
237
|
+
lastTargetingModeState = false
|
|
238
|
+
Event.invoke(targetingModeLeaveEvent)
|
|
239
|
+
Event.invoke(targetingModeStateChangeEvent)
|
|
240
|
+
end
|
|
241
|
+
return false
|
|
242
|
+
end
|
|
243
|
+
Timer.onPeriod[1 / 64]:addListener(function()
|
|
244
|
+
actualizeTargetingModeState()
|
|
245
|
+
end)
|
|
191
246
|
warpack.afterMapInit(function()
|
|
192
247
|
rawset(
|
|
193
248
|
____exports.LocalClient,
|
package/lualib_bundle.lua
CHANGED
|
@@ -653,6 +653,7 @@ do
|
|
|
653
653
|
self.state = 0
|
|
654
654
|
self.fulfilledCallbacks = {}
|
|
655
655
|
self.rejectedCallbacks = {}
|
|
656
|
+
self.finallyCallbacks = {}
|
|
656
657
|
local success, ____error = ____pcall(
|
|
657
658
|
executor,
|
|
658
659
|
nil,
|
|
@@ -702,40 +703,14 @@ do
|
|
|
702
703
|
return self["then"](self, nil, onRejected)
|
|
703
704
|
end
|
|
704
705
|
function __TS__Promise.prototype.finally(self, onFinally)
|
|
705
|
-
if
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
function(____, x)
|
|
711
|
-
local ____self_2 = __TS__New(
|
|
712
|
-
__TS__Promise,
|
|
713
|
-
function(____, resolve) return resolve(
|
|
714
|
-
nil,
|
|
715
|
-
onFinally(nil)
|
|
716
|
-
) end
|
|
717
|
-
)
|
|
718
|
-
return ____self_2["then"](
|
|
719
|
-
____self_2,
|
|
720
|
-
function() return x end
|
|
721
|
-
)
|
|
722
|
-
end,
|
|
723
|
-
function(____, e)
|
|
724
|
-
local ____self_3 = __TS__New(
|
|
725
|
-
__TS__Promise,
|
|
726
|
-
function(____, resolve) return resolve(
|
|
727
|
-
nil,
|
|
728
|
-
onFinally(nil)
|
|
729
|
-
) end
|
|
730
|
-
)
|
|
731
|
-
return ____self_3["then"](
|
|
732
|
-
____self_3,
|
|
733
|
-
function()
|
|
734
|
-
error(e, 0)
|
|
735
|
-
end
|
|
736
|
-
)
|
|
706
|
+
if onFinally then
|
|
707
|
+
local ____self_finallyCallbacks_2 = self.finallyCallbacks
|
|
708
|
+
____self_finallyCallbacks_2[#____self_finallyCallbacks_2 + 1] = onFinally
|
|
709
|
+
if self.state ~= 0 then
|
|
710
|
+
onFinally(nil)
|
|
737
711
|
end
|
|
738
|
-
|
|
712
|
+
end
|
|
713
|
+
return self
|
|
739
714
|
end
|
|
740
715
|
function __TS__Promise.prototype.resolve(self, value)
|
|
741
716
|
if isPromiseLike(value) then
|
|
@@ -759,11 +734,22 @@ do
|
|
|
759
734
|
end
|
|
760
735
|
function __TS__Promise.prototype.invokeCallbacks(self, callbacks, value)
|
|
761
736
|
local callbacksLength = #callbacks
|
|
737
|
+
local finallyCallbacks = self.finallyCallbacks
|
|
738
|
+
local finallyCallbacksLength = #finallyCallbacks
|
|
762
739
|
if callbacksLength ~= 0 then
|
|
763
740
|
for i = 1, callbacksLength - 1 do
|
|
764
741
|
callbacks[i](callbacks, value)
|
|
765
742
|
end
|
|
766
|
-
|
|
743
|
+
if finallyCallbacksLength == 0 then
|
|
744
|
+
return callbacks[callbacksLength](callbacks, value)
|
|
745
|
+
end
|
|
746
|
+
callbacks[callbacksLength](callbacks, value)
|
|
747
|
+
end
|
|
748
|
+
if finallyCallbacksLength ~= 0 then
|
|
749
|
+
for i = 1, finallyCallbacksLength - 1 do
|
|
750
|
+
finallyCallbacks[i](finallyCallbacks)
|
|
751
|
+
end
|
|
752
|
+
return finallyCallbacks[finallyCallbacksLength](finallyCallbacks)
|
|
767
753
|
end
|
|
768
754
|
end
|
|
769
755
|
function __TS__Promise.prototype.createPromiseResolvingCallback(self, f, resolve, reject)
|
|
@@ -918,10 +904,8 @@ local function __TS__ObjectAssign(target, ...)
|
|
|
918
904
|
local sources = {...}
|
|
919
905
|
for i = 1, #sources do
|
|
920
906
|
local source = sources[i]
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
target[key] = source[key]
|
|
924
|
-
end
|
|
907
|
+
for key in pairs(source) do
|
|
908
|
+
target[key] = source[key]
|
|
925
909
|
end
|
|
926
910
|
end
|
|
927
911
|
return target
|
|
@@ -1027,13 +1011,6 @@ do
|
|
|
1027
1011
|
metatable = {}
|
|
1028
1012
|
setmetatable(target, metatable)
|
|
1029
1013
|
end
|
|
1030
|
-
if not isPrototype and not rawget(metatable, "_isOwnDescriptorMetatable") then
|
|
1031
|
-
local instanceMetatable = {}
|
|
1032
|
-
instanceMetatable._isOwnDescriptorMetatable = true
|
|
1033
|
-
setmetatable(instanceMetatable, metatable)
|
|
1034
|
-
setmetatable(target, instanceMetatable)
|
|
1035
|
-
metatable = instanceMetatable
|
|
1036
|
-
end
|
|
1037
1014
|
local value = rawget(target, key)
|
|
1038
1015
|
if value ~= nil then
|
|
1039
1016
|
rawset(target, key, nil)
|
|
@@ -1406,70 +1383,46 @@ do
|
|
|
1406
1383
|
return self:entries()
|
|
1407
1384
|
end
|
|
1408
1385
|
function Map.prototype.entries(self)
|
|
1409
|
-
local function getFirstKey()
|
|
1410
|
-
return self.firstKey
|
|
1411
|
-
end
|
|
1412
1386
|
local items = self.items
|
|
1413
1387
|
local nextKey = self.nextKey
|
|
1414
|
-
local key
|
|
1415
|
-
local started = false
|
|
1388
|
+
local key = self.firstKey
|
|
1416
1389
|
return {
|
|
1417
1390
|
[Symbol.iterator] = function(self)
|
|
1418
1391
|
return self
|
|
1419
1392
|
end,
|
|
1420
1393
|
next = function(self)
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
else
|
|
1425
|
-
key = nextKey[key]
|
|
1426
|
-
end
|
|
1427
|
-
return {done = not key, value = {key, items[key]}}
|
|
1394
|
+
local result = {done = not key, value = {key, items[key]}}
|
|
1395
|
+
key = nextKey[key]
|
|
1396
|
+
return result
|
|
1428
1397
|
end
|
|
1429
1398
|
}
|
|
1430
1399
|
end
|
|
1431
1400
|
function Map.prototype.keys(self)
|
|
1432
|
-
local function getFirstKey()
|
|
1433
|
-
return self.firstKey
|
|
1434
|
-
end
|
|
1435
1401
|
local nextKey = self.nextKey
|
|
1436
|
-
local key
|
|
1437
|
-
local started = false
|
|
1402
|
+
local key = self.firstKey
|
|
1438
1403
|
return {
|
|
1439
1404
|
[Symbol.iterator] = function(self)
|
|
1440
1405
|
return self
|
|
1441
1406
|
end,
|
|
1442
1407
|
next = function(self)
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
else
|
|
1447
|
-
key = nextKey[key]
|
|
1448
|
-
end
|
|
1449
|
-
return {done = not key, value = key}
|
|
1408
|
+
local result = {done = not key, value = key}
|
|
1409
|
+
key = nextKey[key]
|
|
1410
|
+
return result
|
|
1450
1411
|
end
|
|
1451
1412
|
}
|
|
1452
1413
|
end
|
|
1453
1414
|
function Map.prototype.values(self)
|
|
1454
|
-
local function getFirstKey()
|
|
1455
|
-
return self.firstKey
|
|
1456
|
-
end
|
|
1457
1415
|
local items = self.items
|
|
1458
1416
|
local nextKey = self.nextKey
|
|
1459
|
-
local key
|
|
1460
|
-
local started = false
|
|
1417
|
+
local key = self.firstKey
|
|
1461
1418
|
return {
|
|
1462
1419
|
[Symbol.iterator] = function(self)
|
|
1463
1420
|
return self
|
|
1464
1421
|
end,
|
|
1465
1422
|
next = function(self)
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
else
|
|
1470
|
-
key = nextKey[key]
|
|
1471
|
-
end
|
|
1472
|
-
return {done = not key, value = items[key]}
|
|
1423
|
+
local result = {done = not key, value = items[key]}
|
|
1424
|
+
key = nextKey[key]
|
|
1425
|
+
return result
|
|
1473
1426
|
end
|
|
1474
1427
|
}
|
|
1475
1428
|
end
|
|
@@ -2046,68 +1999,44 @@ do
|
|
|
2046
1999
|
return self:values()
|
|
2047
2000
|
end
|
|
2048
2001
|
function Set.prototype.entries(self)
|
|
2049
|
-
local function getFirstKey()
|
|
2050
|
-
return self.firstKey
|
|
2051
|
-
end
|
|
2052
2002
|
local nextKey = self.nextKey
|
|
2053
|
-
local key
|
|
2054
|
-
local started = false
|
|
2003
|
+
local key = self.firstKey
|
|
2055
2004
|
return {
|
|
2056
2005
|
[Symbol.iterator] = function(self)
|
|
2057
2006
|
return self
|
|
2058
2007
|
end,
|
|
2059
2008
|
next = function(self)
|
|
2060
|
-
|
|
2061
|
-
|
|
2062
|
-
|
|
2063
|
-
else
|
|
2064
|
-
key = nextKey[key]
|
|
2065
|
-
end
|
|
2066
|
-
return {done = not key, value = {key, key}}
|
|
2009
|
+
local result = {done = not key, value = {key, key}}
|
|
2010
|
+
key = nextKey[key]
|
|
2011
|
+
return result
|
|
2067
2012
|
end
|
|
2068
2013
|
}
|
|
2069
2014
|
end
|
|
2070
2015
|
function Set.prototype.keys(self)
|
|
2071
|
-
local function getFirstKey()
|
|
2072
|
-
return self.firstKey
|
|
2073
|
-
end
|
|
2074
2016
|
local nextKey = self.nextKey
|
|
2075
|
-
local key
|
|
2076
|
-
local started = false
|
|
2017
|
+
local key = self.firstKey
|
|
2077
2018
|
return {
|
|
2078
2019
|
[Symbol.iterator] = function(self)
|
|
2079
2020
|
return self
|
|
2080
2021
|
end,
|
|
2081
2022
|
next = function(self)
|
|
2082
|
-
|
|
2083
|
-
|
|
2084
|
-
|
|
2085
|
-
else
|
|
2086
|
-
key = nextKey[key]
|
|
2087
|
-
end
|
|
2088
|
-
return {done = not key, value = key}
|
|
2023
|
+
local result = {done = not key, value = key}
|
|
2024
|
+
key = nextKey[key]
|
|
2025
|
+
return result
|
|
2089
2026
|
end
|
|
2090
2027
|
}
|
|
2091
2028
|
end
|
|
2092
2029
|
function Set.prototype.values(self)
|
|
2093
|
-
local function getFirstKey()
|
|
2094
|
-
return self.firstKey
|
|
2095
|
-
end
|
|
2096
2030
|
local nextKey = self.nextKey
|
|
2097
|
-
local key
|
|
2098
|
-
local started = false
|
|
2031
|
+
local key = self.firstKey
|
|
2099
2032
|
return {
|
|
2100
2033
|
[Symbol.iterator] = function(self)
|
|
2101
2034
|
return self
|
|
2102
2035
|
end,
|
|
2103
2036
|
next = function(self)
|
|
2104
|
-
|
|
2105
|
-
|
|
2106
|
-
|
|
2107
|
-
else
|
|
2108
|
-
key = nextKey[key]
|
|
2109
|
-
end
|
|
2110
|
-
return {done = not key, value = key}
|
|
2037
|
+
local result = {done = not key, value = key}
|
|
2038
|
+
key = nextKey[key]
|
|
2039
|
+
return result
|
|
2111
2040
|
end
|
|
2112
2041
|
}
|
|
2113
2042
|
end
|
package/math.d.ts
CHANGED
|
@@ -23,6 +23,8 @@ export declare const floor: typeof math.floor;
|
|
|
23
23
|
export declare const log: typeof math.log;
|
|
24
24
|
export declare const max: typeof math.max;
|
|
25
25
|
export declare const min: typeof math.min;
|
|
26
|
+
export declare const sum: (x: number, ...numbers: number[]) => number;
|
|
27
|
+
export declare const product: (x: number, ...numbers: number[]) => number;
|
|
26
28
|
/** Returns the signum function of the argument;
|
|
27
29
|
* zero if the argument is zero,
|
|
28
30
|
* 1.0 if the argument is greater than zero,
|
package/math.lua
CHANGED
|
@@ -39,6 +39,20 @@ ____exports.floor = math.floor
|
|
|
39
39
|
____exports.log = math.log
|
|
40
40
|
____exports.max = math.max
|
|
41
41
|
____exports.min = math.min
|
|
42
|
+
____exports.sum = function(x, ...)
|
|
43
|
+
for i = 1, select("#", ...) do
|
|
44
|
+
local number = select(i, ...)
|
|
45
|
+
x = x + number
|
|
46
|
+
end
|
|
47
|
+
return x
|
|
48
|
+
end
|
|
49
|
+
____exports.product = function(x, ...)
|
|
50
|
+
for i = 1, select("#", ...) do
|
|
51
|
+
local number = select(i, ...)
|
|
52
|
+
x = x * number
|
|
53
|
+
end
|
|
54
|
+
return x
|
|
55
|
+
end
|
|
42
56
|
--- Returns the signum function of the argument;
|
|
43
57
|
-- zero if the argument is zero,
|
|
44
58
|
-- 1.0 if the argument is greater than zero,
|
package/operation.lua
CHANGED
|
@@ -54,7 +54,6 @@ function Operation.prototype.execute(self)
|
|
|
54
54
|
return __TS__AsyncAwaiter(function(____awaiter_resolve)
|
|
55
55
|
local result
|
|
56
56
|
local progress = self.progress
|
|
57
|
-
local ____hasReturned, ____returnValue
|
|
58
57
|
local ____try = __TS__AsyncAwaiter(function()
|
|
59
58
|
local maximum = __TS__Await(self:estimate())
|
|
60
59
|
self.maximum = maximum
|
|
@@ -77,8 +76,7 @@ function Operation.prototype.execute(self)
|
|
|
77
76
|
if onComplete ~= nil then
|
|
78
77
|
Event.invoke(onComplete, self, false, reason)
|
|
79
78
|
end
|
|
80
|
-
|
|
81
|
-
return
|
|
79
|
+
return ____awaiter_resolve(nil)
|
|
82
80
|
end
|
|
83
81
|
result = __TS__Await(self:work())
|
|
84
82
|
if self.progress ~= progress or self.maximum ~= maximum then
|
|
@@ -92,28 +90,21 @@ function Operation.prototype.execute(self)
|
|
|
92
90
|
end
|
|
93
91
|
until not (result == OperationContinue)
|
|
94
92
|
end)
|
|
95
|
-
____try
|
|
93
|
+
__TS__Await(____try.catch(
|
|
96
94
|
____try,
|
|
97
95
|
function(____, reason)
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
____hasReturned = true
|
|
109
|
-
return
|
|
110
|
-
end)
|
|
96
|
+
reject(nil, reason)
|
|
97
|
+
local onFailure = ____rawget(self, "onFailure")
|
|
98
|
+
if onFailure ~= nil then
|
|
99
|
+
Event.invoke(onFailure, self, reason)
|
|
100
|
+
end
|
|
101
|
+
local onComplete = ____rawget(self, "onComplete")
|
|
102
|
+
if onComplete ~= nil then
|
|
103
|
+
Event.invoke(onComplete, self, false, reason)
|
|
104
|
+
end
|
|
105
|
+
return ____awaiter_resolve(nil)
|
|
111
106
|
end
|
|
112
|
-
)
|
|
113
|
-
__TS__Await(____try)
|
|
114
|
-
if ____hasReturned then
|
|
115
|
-
return ____awaiter_resolve(nil, ____returnValue)
|
|
116
|
-
end
|
|
107
|
+
))
|
|
117
108
|
resolve(nil, result)
|
|
118
109
|
local onSuccess = ____rawget(self, "onSuccess")
|
|
119
110
|
if onSuccess ~= nil then
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package",
|
|
3
3
|
"name": "warscript",
|
|
4
|
-
"version": "0.0.1-dev.
|
|
4
|
+
"version": "0.0.1-dev.c7b0c06",
|
|
5
5
|
"description": "A typescript library for Warcraft III using Warpack.",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"warcraft",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
},
|
|
23
23
|
"peerDependencies": {
|
|
24
24
|
"@warscript/language-extensions": "^0.0.1",
|
|
25
|
-
"@warscript/tstl-plugin": "^0.0.
|
|
25
|
+
"@warscript/tstl-plugin": "^0.0.6",
|
|
26
26
|
"lua-types": "^2.13.1",
|
|
27
27
|
"warpack": "0.0.1-dev.e490aaf"
|
|
28
28
|
},
|