warscript 0.0.1-dev.671d3cf → 0.0.1-dev.6be8f21
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/attributes.d.ts +5 -0
- package/attributes.lua +8 -1
- package/config.d.ts +5 -0
- package/config.lua +10 -0
- package/core/types/effect.d.ts +14 -6
- package/core/types/effect.lua +131 -35
- package/core/types/frame.d.ts +4 -0
- package/core/types/frame.lua +71 -0
- package/core/types/sound.d.ts +17 -24
- package/core/types/sound.lua +99 -24
- package/core/types/timer.d.ts +7 -8
- package/core/types/timer.lua +18 -21
- package/core/util.d.ts +1 -1
- package/core/util.lua +18 -1
- package/decl/native.d.ts +840 -786
- package/engine/behavior.d.ts +4 -2
- package/engine/behavior.lua +59 -33
- package/engine/behaviour/ability/always-enabled.d.ts +7 -0
- package/engine/behaviour/ability/always-enabled.lua +31 -0
- package/engine/behaviour/ability/apply-buff.d.ts +8 -5
- package/engine/behaviour/ability/apply-buff.lua +32 -0
- package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
- package/engine/behaviour/ability/damage.d.ts +9 -3
- package/engine/behaviour/ability/damage.lua +26 -38
- package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
- package/engine/behaviour/ability/emulate-impact.lua +43 -0
- package/engine/behaviour/ability/instant-impact.d.ts +2 -2
- package/engine/behaviour/ability/instant-impact.lua +4 -19
- package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
- package/engine/behaviour/ability/on-command-impact.lua +25 -0
- package/engine/behaviour/ability/remove-buffs.d.ts +16 -0
- package/engine/behaviour/ability/remove-buffs.lua +28 -0
- package/engine/behaviour/ability.d.ts +20 -4
- package/engine/behaviour/ability.lua +111 -47
- package/engine/behaviour/unit/stun-immunity.d.ts +5 -3
- package/engine/behaviour/unit/stun-immunity.lua +43 -27
- package/engine/behaviour/unit.d.ts +33 -0
- package/engine/behaviour/unit.lua +183 -4
- package/engine/buff.d.ts +85 -43
- package/engine/buff.lua +391 -226
- package/engine/internal/ability.d.ts +20 -13
- package/engine/internal/ability.lua +103 -76
- package/engine/internal/item/ability.lua +162 -4
- package/engine/internal/item+owner.lua +2 -2
- package/engine/internal/item.d.ts +7 -4
- package/engine/internal/item.lua +131 -28
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
- package/engine/internal/misc/ability-disable-counter.lua +13 -0
- package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
- package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
- package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
- package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
- package/engine/internal/object-data/evasion-probability.d.ts +2 -0
- package/engine/internal/object-data/evasion-probability.lua +16 -0
- package/engine/internal/unit/ability.d.ts +45 -1
- package/engine/internal/unit/ability.lua +98 -14
- package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
- package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
- package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
- package/engine/internal/unit/add-item-to-slot.lua +52 -0
- package/engine/internal/unit/allowed-targets.d.ts +1 -1
- package/engine/internal/unit/allowed-targets.lua +9 -1
- package/engine/internal/unit/bonus.d.ts +6 -2
- package/engine/internal/unit/bonus.lua +23 -1
- package/engine/internal/unit/ignore-events-items.d.ts +2 -0
- package/engine/internal/unit/ignore-events-items.lua +5 -0
- package/engine/internal/unit/item.d.ts +24 -0
- package/engine/internal/unit/item.lua +78 -0
- package/engine/internal/unit/main-selected.d.ts +13 -0
- package/engine/internal/unit/main-selected.lua +51 -0
- package/engine/internal/unit/order.d.ts +20 -0
- package/engine/internal/unit/order.lua +136 -0
- package/engine/internal/unit+ability.lua +2 -2
- package/engine/internal/unit+damage.d.ts +2 -11
- package/engine/internal/unit+damage.lua +10 -14
- package/engine/internal/unit+spellSteal.lua +1 -2
- package/engine/internal/unit-missile-launch.lua +25 -6
- package/engine/internal/unit.d.ts +53 -14
- package/engine/internal/unit.lua +369 -143
- package/engine/internal/utility.lua +12 -0
- package/engine/lightning.d.ts +12 -5
- package/engine/lightning.lua +48 -14
- package/engine/local-client.d.ts +7 -2
- package/engine/local-client.lua +82 -0
- package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
- package/engine/object-data/auxiliary/animation-name.lua +16 -0
- package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -2
- package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
- package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
- package/engine/object-data/auxiliary/attack-type.lua +42 -0
- package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
- package/engine/object-data/auxiliary/movement-type.lua +22 -0
- package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
- package/engine/object-data/auxiliary/sound-eax.lua +2 -0
- package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
- package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
- package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
- package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
- package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
- package/engine/object-data/entry/ability-type/berserk.lua +13 -0
- package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
- package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
- package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
- package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
- package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
- package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
- package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
- package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
- package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
- package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
- package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
- package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
- package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
- package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
- package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
- package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
- package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
- package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
- package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
- package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
- package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
- package/engine/object-data/entry/ability-type/web.d.ts +12 -0
- package/engine/object-data/entry/ability-type/web.lua +52 -0
- package/engine/object-data/entry/ability-type.d.ts +19 -17
- package/engine/object-data/entry/ability-type.lua +89 -33
- package/engine/object-data/entry/buff-type/applicable.lua +18 -37
- package/engine/object-data/entry/buff-type.d.ts +6 -12
- package/engine/object-data/entry/buff-type.lua +13 -29
- package/engine/object-data/entry/destructible-type.d.ts +1 -1
- package/engine/object-data/entry/item-type.d.ts +15 -1
- package/engine/object-data/entry/item-type.lua +93 -2
- package/engine/object-data/entry/lightning-type.d.ts +1 -1
- package/engine/object-data/entry/sound-preset.d.ts +33 -0
- package/engine/object-data/entry/sound-preset.lua +140 -0
- package/engine/object-data/entry/unit-type.d.ts +10 -3
- package/engine/object-data/entry/unit-type.lua +155 -92
- package/engine/object-data/entry/upgrade.d.ts +1 -1
- package/engine/object-data/entry/upgrade.lua +4 -4
- package/engine/object-data/entry.d.ts +16 -14
- package/engine/object-data/entry.lua +60 -32
- package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
- package/engine/object-field/ability.d.ts +26 -3
- package/engine/object-field/ability.lua +54 -1
- package/engine/object-field/unit.d.ts +57 -3
- package/engine/object-field/unit.lua +207 -7
- package/engine/object-field.d.ts +17 -6
- package/engine/object-field.lua +187 -89
- package/engine/standard/entries/buff-type.d.ts +3 -0
- package/engine/standard/entries/buff-type.lua +3 -0
- package/engine/standard/entries/sound-preset.d.ts +10 -0
- package/engine/standard/entries/sound-preset.lua +10 -0
- package/engine/standard/fields/ability.d.ts +2 -0
- package/engine/standard/fields/ability.lua +2 -0
- package/engine/standard/fields/unit.d.ts +4 -0
- package/engine/standard/fields/unit.lua +7 -0
- package/engine/text-tag.d.ts +36 -2
- package/engine/text-tag.lua +175 -10
- package/engine/unit.d.ts +4 -0
- package/engine/unit.lua +4 -0
- package/index.d.ts +1 -0
- package/index.lua +1 -0
- package/net/socket.d.ts +7 -1
- package/net/socket.lua +45 -4
- package/network.d.ts +1 -0
- package/network.lua +3 -2
- package/objutil/buff.lua +2 -3
- package/objutil/unit.lua +8 -0
- package/package.json +2 -2
- package/patch-lua.d.ts +0 -0
- package/patch-lua.lua +10 -0
- package/utility/arrays.d.ts +9 -1
- package/utility/arrays.lua +37 -3
- package/utility/functions.d.ts +6 -0
- package/utility/functions.lua +6 -0
- package/utility/lazy.d.ts +2 -0
- package/utility/lazy.lua +14 -0
- package/utility/linked-set.d.ts +12 -2
- package/utility/linked-set.lua +8 -2
- package/utility/lua-maps.d.ts +4 -0
- package/utility/lua-maps.lua +20 -0
- package/utility/lua-sets.d.ts +1 -0
- package/utility/lua-sets.lua +3 -0
- package/utility/reflection.lua +11 -7
- package/utility/types.d.ts +1 -0
- package/core/types/order.d.ts +0 -25
- package/core/types/order.lua +0 -55
package/engine/text-tag.lua
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
local ____lualib = require("lualib_bundle")
|
|
2
2
|
local __TS__Class = ____lualib.__TS__Class
|
|
3
|
+
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
4
|
+
local __TS__New = ____lualib.__TS__New
|
|
5
|
+
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
3
6
|
local __TS__ObjectAssign = ____lualib.__TS__ObjectAssign
|
|
4
7
|
local ____exports = {}
|
|
5
8
|
local ____color = require("core.types.color")
|
|
6
9
|
local Color = ____color.Color
|
|
10
|
+
local ____timer = require("core.types.timer")
|
|
11
|
+
local Timer = ____timer.Timer
|
|
12
|
+
local ____destroyable = require("destroyable")
|
|
13
|
+
local AbstractDestroyable = ____destroyable.AbstractDestroyable
|
|
7
14
|
local createTextTag = CreateTextTag
|
|
8
15
|
local destroyTextTag = DestroyTextTag
|
|
9
16
|
local setTextTagText = SetTextTagText
|
|
@@ -18,16 +25,7 @@ local setTextTagAge = SetTextTagAge
|
|
|
18
25
|
local setTextTagLifespan = SetTextTagLifespan
|
|
19
26
|
local setTextTagFadepoint = SetTextTagFadepoint
|
|
20
27
|
local DEFAULT_FONT_SIZE = 0.024
|
|
21
|
-
|
|
22
|
-
local TextTag = ____exports.TextTag
|
|
23
|
-
TextTag.name = "TextTag"
|
|
24
|
-
function TextTag.prototype.____constructor(self, handle)
|
|
25
|
-
self.handle = handle
|
|
26
|
-
end
|
|
27
|
-
function TextTag.flash(self, configuration, text, x, y, z)
|
|
28
|
-
local textTag = createTextTag()
|
|
29
|
-
setTextTagText(textTag, text, DEFAULT_FONT_SIZE)
|
|
30
|
-
setTextTagPos(textTag, x + configuration.offsetX, y + configuration.offsetY, (z or 0) + configuration.offsetZ)
|
|
28
|
+
local function applyConfiguration(textTag, configuration)
|
|
31
29
|
setTextTagFadepoint(textTag, configuration.fadepoint)
|
|
32
30
|
setTextTagLifespan(textTag, configuration.lifespan)
|
|
33
31
|
local color = configuration.color
|
|
@@ -42,6 +40,168 @@ function TextTag.flash(self, configuration, text, x, y, z)
|
|
|
42
40
|
setTextTagPermanent(textTag, false)
|
|
43
41
|
setTextTagVisibility(textTag, true)
|
|
44
42
|
end
|
|
43
|
+
local unitTextTags = setmetatable({}, {__mode = "k"})
|
|
44
|
+
____exports.TextTag = __TS__Class()
|
|
45
|
+
local TextTag = ____exports.TextTag
|
|
46
|
+
TextTag.name = "TextTag"
|
|
47
|
+
__TS__ClassExtends(TextTag, AbstractDestroyable)
|
|
48
|
+
function TextTag.prototype.____constructor(self, handle)
|
|
49
|
+
AbstractDestroyable.prototype.____constructor(self)
|
|
50
|
+
self[101] = handle
|
|
51
|
+
end
|
|
52
|
+
function TextTag.prototype.onDestroy(self)
|
|
53
|
+
destroyTextTag(self[101])
|
|
54
|
+
unitTextTags[self] = nil
|
|
55
|
+
return AbstractDestroyable.prototype.onDestroy(self)
|
|
56
|
+
end
|
|
57
|
+
function TextTag.flash(self, configuration, text, x, y, z)
|
|
58
|
+
local textTag = createTextTag()
|
|
59
|
+
setTextTagText(textTag, text, DEFAULT_FONT_SIZE)
|
|
60
|
+
setTextTagPos(textTag, x + configuration.offsetX, y + configuration.offsetY, (z or 0) + configuration.offsetZ)
|
|
61
|
+
applyConfiguration(textTag, configuration)
|
|
62
|
+
end
|
|
63
|
+
function TextTag.create(self, configuration, text, unit)
|
|
64
|
+
local handle = createTextTag()
|
|
65
|
+
setTextTagText(handle, text, DEFAULT_FONT_SIZE)
|
|
66
|
+
setTextTagPosUnit(handle, unit.handle, configuration.offsetZ)
|
|
67
|
+
applyConfiguration(handle, configuration)
|
|
68
|
+
setTextTagPermanent(handle, true)
|
|
69
|
+
local textTag = __TS__New(____exports.TextTag, handle)
|
|
70
|
+
textTag[100] = unit
|
|
71
|
+
textTag[102] = configuration
|
|
72
|
+
unitTextTags[textTag] = true
|
|
73
|
+
return textTag
|
|
74
|
+
end
|
|
75
|
+
__TS__SetDescriptor(
|
|
76
|
+
TextTag.prototype,
|
|
77
|
+
"text",
|
|
78
|
+
{
|
|
79
|
+
get = function(self)
|
|
80
|
+
return self[103] or ""
|
|
81
|
+
end,
|
|
82
|
+
set = function(self, text)
|
|
83
|
+
setTextTagText(self[101], text, self[104] or DEFAULT_FONT_SIZE)
|
|
84
|
+
self[103] = text
|
|
85
|
+
end
|
|
86
|
+
},
|
|
87
|
+
true
|
|
88
|
+
)
|
|
89
|
+
__TS__SetDescriptor(
|
|
90
|
+
TextTag.prototype,
|
|
91
|
+
"fontSize",
|
|
92
|
+
{
|
|
93
|
+
get = function(self)
|
|
94
|
+
return self[104] or DEFAULT_FONT_SIZE
|
|
95
|
+
end,
|
|
96
|
+
set = function(self, fontSize)
|
|
97
|
+
setTextTagText(self[101], self[103] or "", DEFAULT_FONT_SIZE)
|
|
98
|
+
self[104] = fontSize
|
|
99
|
+
end
|
|
100
|
+
},
|
|
101
|
+
true
|
|
102
|
+
)
|
|
103
|
+
__TS__SetDescriptor(
|
|
104
|
+
TextTag.prototype,
|
|
105
|
+
"color",
|
|
106
|
+
{
|
|
107
|
+
get = function(self)
|
|
108
|
+
return self[105] or Color.white
|
|
109
|
+
end,
|
|
110
|
+
set = function(self, color)
|
|
111
|
+
setTextTagColor(
|
|
112
|
+
self[101],
|
|
113
|
+
color.r,
|
|
114
|
+
color.g,
|
|
115
|
+
color.b,
|
|
116
|
+
color.a
|
|
117
|
+
)
|
|
118
|
+
self[105] = color
|
|
119
|
+
end
|
|
120
|
+
},
|
|
121
|
+
true
|
|
122
|
+
)
|
|
123
|
+
__TS__SetDescriptor(
|
|
124
|
+
TextTag.prototype,
|
|
125
|
+
"unit",
|
|
126
|
+
{
|
|
127
|
+
get = function(self)
|
|
128
|
+
return self[100]
|
|
129
|
+
end,
|
|
130
|
+
set = function(self, unit)
|
|
131
|
+
if unit ~= nil then
|
|
132
|
+
setTextTagPosUnit(self[101], unit.handle, 0)
|
|
133
|
+
self[106] = nil
|
|
134
|
+
self[107] = nil
|
|
135
|
+
unitTextTags[self] = true
|
|
136
|
+
elseif self[100] ~= nil then
|
|
137
|
+
local unit = self[100]
|
|
138
|
+
local x = unit.x
|
|
139
|
+
local y = unit.y
|
|
140
|
+
setTextTagPos(self[101], x, y, 0)
|
|
141
|
+
self[106] = x
|
|
142
|
+
self[107] = y
|
|
143
|
+
unitTextTags[self] = nil
|
|
144
|
+
end
|
|
145
|
+
self[100] = unit
|
|
146
|
+
end
|
|
147
|
+
},
|
|
148
|
+
true
|
|
149
|
+
)
|
|
150
|
+
__TS__SetDescriptor(
|
|
151
|
+
TextTag.prototype,
|
|
152
|
+
"x",
|
|
153
|
+
{
|
|
154
|
+
get = function(self)
|
|
155
|
+
local ____self__106_2 = self[106]
|
|
156
|
+
if ____self__106_2 == nil then
|
|
157
|
+
local ____opt_0 = self[100]
|
|
158
|
+
____self__106_2 = ____opt_0 and ____opt_0.x
|
|
159
|
+
end
|
|
160
|
+
return ____self__106_2 or 0
|
|
161
|
+
end,
|
|
162
|
+
set = function(self, x)
|
|
163
|
+
local ____self__101_6 = self[101]
|
|
164
|
+
local ____x_7 = x
|
|
165
|
+
local ____self__107_5 = self[107]
|
|
166
|
+
if ____self__107_5 == nil then
|
|
167
|
+
local ____opt_3 = self[100]
|
|
168
|
+
____self__107_5 = ____opt_3 and ____opt_3.y
|
|
169
|
+
end
|
|
170
|
+
setTextTagPos(____self__101_6, ____x_7, ____self__107_5 or 0, 0)
|
|
171
|
+
self[106] = x
|
|
172
|
+
self[100] = nil
|
|
173
|
+
unitTextTags[self] = nil
|
|
174
|
+
end
|
|
175
|
+
},
|
|
176
|
+
true
|
|
177
|
+
)
|
|
178
|
+
__TS__SetDescriptor(
|
|
179
|
+
TextTag.prototype,
|
|
180
|
+
"y",
|
|
181
|
+
{
|
|
182
|
+
get = function(self)
|
|
183
|
+
local ____self__107_10 = self[107]
|
|
184
|
+
if ____self__107_10 == nil then
|
|
185
|
+
local ____opt_8 = self[100]
|
|
186
|
+
____self__107_10 = ____opt_8 and ____opt_8.y
|
|
187
|
+
end
|
|
188
|
+
return ____self__107_10 or 0
|
|
189
|
+
end,
|
|
190
|
+
set = function(self, y)
|
|
191
|
+
local ____self__101_14 = self[101]
|
|
192
|
+
local ____self__106_13 = self[106]
|
|
193
|
+
if ____self__106_13 == nil then
|
|
194
|
+
local ____opt_11 = self[100]
|
|
195
|
+
____self__106_13 = ____opt_11 and ____opt_11.x
|
|
196
|
+
end
|
|
197
|
+
setTextTagPos(____self__101_14, ____self__106_13 or 0, y, 0)
|
|
198
|
+
self[107] = y
|
|
199
|
+
self[100] = nil
|
|
200
|
+
unitTextTags[self] = nil
|
|
201
|
+
end
|
|
202
|
+
},
|
|
203
|
+
true
|
|
204
|
+
)
|
|
45
205
|
TextTag.BASE = {
|
|
46
206
|
fadepoint = 2,
|
|
47
207
|
lifespan = 3,
|
|
@@ -106,4 +266,9 @@ TextTag.SHADOW_STRIKE = __TS__ObjectAssign(
|
|
|
106
266
|
lifespan = 5
|
|
107
267
|
}
|
|
108
268
|
)
|
|
269
|
+
Timer.onPeriod[1 / 64]:addListener(function()
|
|
270
|
+
for textTag in pairs(unitTextTags) do
|
|
271
|
+
setTextTagPosUnit(textTag[101], textTag[100].handle, textTag[102].offsetZ)
|
|
272
|
+
end
|
|
273
|
+
end)
|
|
109
274
|
return ____exports
|
package/engine/unit.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
2
|
import "./internal/unit";
|
|
3
|
+
import "./internal/unit/order";
|
|
3
4
|
import "./internal/unit/ability";
|
|
4
5
|
import "./internal/unit/allowed-targets";
|
|
5
6
|
import "./internal/unit/buff";
|
|
6
7
|
import "./internal/unit/expiration-timer";
|
|
8
|
+
import "./internal/unit/item";
|
|
7
9
|
import "./internal/unit+ability";
|
|
8
10
|
import "./internal/unit+damage";
|
|
9
11
|
import "./internal/unit+rally";
|
|
@@ -15,6 +17,8 @@ import "./internal/unit-missile-launch";
|
|
|
15
17
|
import "./internal/unit/ghost-counter";
|
|
16
18
|
import "./internal/unit/invulnerability-counter";
|
|
17
19
|
import "./internal/unit/detach-missiles";
|
|
20
|
+
import "./internal/unit/main-selected";
|
|
21
|
+
import "./internal/unit/add-item-to-slot-init";
|
|
18
22
|
import "./internal/unit/band-aids/ancestral-spirit-cannibalize";
|
|
19
23
|
export { Unit, DamagingEvent, DamageEvent } from "./internal/unit";
|
|
20
24
|
export * from "./internal/unit+damage";
|
package/engine/unit.lua
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
local ____exports = {}
|
|
2
2
|
require("engine.internal.unit")
|
|
3
|
+
require("engine.internal.unit.order")
|
|
3
4
|
require("engine.internal.unit.ability")
|
|
4
5
|
require("engine.internal.unit.allowed-targets")
|
|
5
6
|
require("engine.internal.unit.buff")
|
|
6
7
|
require("engine.internal.unit.expiration-timer")
|
|
8
|
+
require("engine.internal.unit.item")
|
|
7
9
|
require("engine.internal.unit+ability")
|
|
8
10
|
require("engine.internal.unit+damage")
|
|
9
11
|
require("engine.internal.unit+rally")
|
|
@@ -15,6 +17,8 @@ require("engine.internal.unit-missile-launch")
|
|
|
15
17
|
require("engine.internal.unit.ghost-counter")
|
|
16
18
|
require("engine.internal.unit.invulnerability-counter")
|
|
17
19
|
require("engine.internal.unit.detach-missiles")
|
|
20
|
+
require("engine.internal.unit.main-selected")
|
|
21
|
+
require("engine.internal.unit.add-item-to-slot-init")
|
|
18
22
|
require("engine.internal.unit.band-aids.ancestral-spirit-cannibalize")
|
|
19
23
|
do
|
|
20
24
|
local ____unit = require("engine.internal.unit")
|
package/index.d.ts
CHANGED
package/index.lua
CHANGED
package/net/socket.d.ts
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
2
|
import { Event } from "../event";
|
|
3
3
|
import { Player } from "../core/types/player";
|
|
4
|
+
declare const enum SocketPropertyKey {
|
|
5
|
+
ID = 0,
|
|
6
|
+
CHUNK_ID = 1
|
|
7
|
+
}
|
|
4
8
|
export declare class Socket {
|
|
5
|
-
private readonly
|
|
9
|
+
private readonly [SocketPropertyKey.ID];
|
|
10
|
+
private readonly [SocketPropertyKey.CHUNK_ID];
|
|
6
11
|
readonly onMessage: Event<[Player, string]>;
|
|
7
12
|
constructor();
|
|
8
13
|
send(data: string): void;
|
|
9
14
|
}
|
|
15
|
+
export {};
|
package/net/socket.lua
CHANGED
|
@@ -7,6 +7,11 @@ local Event = ____event.Event
|
|
|
7
7
|
local ____network = require("network")
|
|
8
8
|
local send = ____network.send
|
|
9
9
|
local onReceive = ____network.onReceive
|
|
10
|
+
local MAX_PAYLOAD_LENGTH = ____network.MAX_PAYLOAD_LENGTH
|
|
11
|
+
local ____math = require("math")
|
|
12
|
+
local ceil = ____math.ceil
|
|
13
|
+
local stringSub = string.sub
|
|
14
|
+
local tableConcat = table.concat
|
|
10
15
|
local nextId = 0
|
|
11
16
|
____exports.Socket = __TS__Class()
|
|
12
17
|
local Socket = ____exports.Socket
|
|
@@ -14,13 +19,49 @@ Socket.name = "Socket"
|
|
|
14
19
|
function Socket.prototype.____constructor(self)
|
|
15
20
|
local ____tostring_0 = tostring
|
|
16
21
|
nextId = nextId + 1
|
|
17
|
-
self
|
|
22
|
+
self[0] = ____tostring_0(nextId)
|
|
23
|
+
local ____tostring_1 = tostring
|
|
24
|
+
nextId = nextId + 1
|
|
25
|
+
self[1] = ____tostring_1(nextId)
|
|
18
26
|
self.onMessage = __TS__New(Event)
|
|
19
|
-
|
|
20
|
-
|
|
27
|
+
local chunksByPlayer = {}
|
|
28
|
+
onReceive[self[0]]:addListener(function(sender, data)
|
|
29
|
+
local chunks = chunksByPlayer[sender]
|
|
30
|
+
if chunks ~= nil then
|
|
31
|
+
chunks[#chunks + 1] = data
|
|
32
|
+
Event.invoke(
|
|
33
|
+
self.onMessage,
|
|
34
|
+
sender,
|
|
35
|
+
tableConcat(chunks)
|
|
36
|
+
)
|
|
37
|
+
chunksByPlayer[sender] = nil
|
|
38
|
+
else
|
|
39
|
+
Event.invoke(self.onMessage, sender, data)
|
|
40
|
+
end
|
|
41
|
+
end)
|
|
42
|
+
onReceive[self[1]]:addListener(function(sender, data)
|
|
43
|
+
local chunks = chunksByPlayer[sender]
|
|
44
|
+
if chunks == nil then
|
|
45
|
+
chunks = {}
|
|
46
|
+
chunksByPlayer[sender] = chunks
|
|
47
|
+
end
|
|
48
|
+
chunks[#chunks + 1] = data
|
|
21
49
|
end)
|
|
22
50
|
end
|
|
23
51
|
function Socket.prototype.send(self, data)
|
|
24
|
-
|
|
52
|
+
local chunks = ceil(#data / MAX_PAYLOAD_LENGTH) - 1
|
|
53
|
+
local offset = 1
|
|
54
|
+
for _ = 0, chunks - 1 do
|
|
55
|
+
local nextOffset = offset + MAX_PAYLOAD_LENGTH
|
|
56
|
+
send(
|
|
57
|
+
self[1],
|
|
58
|
+
stringSub(data, offset, nextOffset - 1)
|
|
59
|
+
)
|
|
60
|
+
offset = nextOffset
|
|
61
|
+
end
|
|
62
|
+
send(
|
|
63
|
+
self[0],
|
|
64
|
+
stringSub(data, offset)
|
|
65
|
+
)
|
|
25
66
|
end
|
|
26
67
|
return ____exports
|
package/network.d.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { Event } from "./event";
|
|
3
3
|
import { Player } from "./core/types/player";
|
|
4
4
|
import { Operation, OperationContinue, OperationMonitor } from "./operation";
|
|
5
|
+
export declare const MAX_PAYLOAD_LENGTH = 255;
|
|
5
6
|
export declare const onReceive: {
|
|
6
7
|
[prefix: string]: Event<[Player, string]>;
|
|
7
8
|
} & {
|
package/network.lua
CHANGED
|
@@ -25,6 +25,7 @@ local concat = table.concat
|
|
|
25
25
|
local pack = string.pack
|
|
26
26
|
local sub = string.sub
|
|
27
27
|
local ____unpack = string.unpack
|
|
28
|
+
____exports.MAX_PAYLOAD_LENGTH = 255
|
|
28
29
|
____exports.onReceive = setmetatable(
|
|
29
30
|
{},
|
|
30
31
|
{__index = function(self, prefix)
|
|
@@ -42,11 +43,11 @@ ____exports.onReceive = setmetatable(
|
|
|
42
43
|
end}
|
|
43
44
|
)
|
|
44
45
|
function ____exports.send(id, payload)
|
|
45
|
-
if #payload >
|
|
46
|
+
if #payload > ____exports.MAX_PAYLOAD_LENGTH then
|
|
46
47
|
error(
|
|
47
48
|
__TS__New(
|
|
48
49
|
IllegalArgumentException,
|
|
49
|
-
"payload length must be <=
|
|
50
|
+
(("payload length must be <= " .. tostring(____exports.MAX_PAYLOAD_LENGTH)) .. ", but was ") .. tostring(#payload)
|
|
50
51
|
),
|
|
51
52
|
0
|
|
52
53
|
)
|
package/objutil/buff.lua
CHANGED
|
@@ -20,7 +20,6 @@ local AbilityDefinitionInnerFire = ____ability.AbilityDefinitionInnerFire
|
|
|
20
20
|
local AbilityDefinitionSearingArrows = ____ability.AbilityDefinitionSearingArrows
|
|
21
21
|
local AbilityDefinitionSlowPoison = ____ability.AbilityDefinitionSlowPoison
|
|
22
22
|
local ____unit = require("core.types.unit")
|
|
23
|
-
local AttackType = ____unit.AttackType
|
|
24
23
|
local DamageType = ____unit.DamageType
|
|
25
24
|
local Unit = ____unit.Unit
|
|
26
25
|
local ____dummy = require("core.dummy")
|
|
@@ -756,13 +755,13 @@ for ____, pointDispelAbilityId in ipairs(pointDispelAbilityIds) do
|
|
|
756
755
|
end)
|
|
757
756
|
end
|
|
758
757
|
Unit.onDamaging:addListener(function(source, target, event)
|
|
759
|
-
if event.amount == 0 and event.attackType ==
|
|
758
|
+
if event.amount == 0 and event.attackType == 0 and event.damageType == DamageType.NORMAL and not event.isAttack then
|
|
760
759
|
Timer:run(function()
|
|
761
760
|
checkBuffs(target, true, source)
|
|
762
761
|
end)
|
|
763
762
|
end
|
|
764
763
|
end)
|
|
765
|
-
Unit.
|
|
764
|
+
Unit.itemPickedUpEvent:addListener(function(unit, item)
|
|
766
765
|
if item.powerup and item:hasAbility(fourCC("APdi")) then
|
|
767
766
|
end
|
|
768
767
|
end)
|
package/objutil/unit.lua
CHANGED
|
@@ -11,6 +11,8 @@ local ____exports = {}
|
|
|
11
11
|
local ____object = require("objutil.object")
|
|
12
12
|
local ObjectDefinition = ____object.ObjectDefinition
|
|
13
13
|
local idgen = require("objutil.idgen")
|
|
14
|
+
local ____config = require("config")
|
|
15
|
+
local WarscriptConfig = ____config.WarscriptConfig
|
|
14
16
|
local attackTypes = setmetatable(
|
|
15
17
|
{
|
|
16
18
|
normal = "normal",
|
|
@@ -593,6 +595,9 @@ __TS__SetDescriptor(
|
|
|
593
595
|
end,
|
|
594
596
|
set = function(self, v)
|
|
595
597
|
self:setStringField("umdl", v)
|
|
598
|
+
if WarscriptConfig.AUTOMATICALLY_SET_UNIT_TYPE_PORTRAIT_MODEL_PATH then
|
|
599
|
+
self:setStringField("upor", "")
|
|
600
|
+
end
|
|
596
601
|
end
|
|
597
602
|
},
|
|
598
603
|
true
|
|
@@ -606,6 +611,9 @@ __TS__SetDescriptor(
|
|
|
606
611
|
end,
|
|
607
612
|
set = function(self, v)
|
|
608
613
|
self.object:setField("umdl:hd", v)
|
|
614
|
+
if WarscriptConfig.AUTOMATICALLY_SET_UNIT_TYPE_PORTRAIT_MODEL_PATH then
|
|
615
|
+
self.object:setField("upor:hd", "")
|
|
616
|
+
end
|
|
609
617
|
end
|
|
610
618
|
},
|
|
611
619
|
true
|
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.6be8f21",
|
|
5
5
|
"description": "A typescript library for Warcraft III using Warpack.",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"warcraft",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"@warscript/language-extensions": "^0.0.1",
|
|
25
25
|
"@warscript/tstl-plugin": "^0.0.4",
|
|
26
26
|
"lua-types": "^2.13.1",
|
|
27
|
-
"warpack": "0.0.1-dev.
|
|
27
|
+
"warpack": "0.0.1-dev.fa5e065"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@typescript-eslint/eslint-plugin": "^8.13.0",
|
package/patch-lua.d.ts
ADDED
|
File without changes
|
package/patch-lua.lua
ADDED
package/utility/arrays.d.ts
CHANGED
|
@@ -22,6 +22,7 @@ export declare const mapToLuaSet: {
|
|
|
22
22
|
<T, R extends AnyNotNil>(array: readonly T[], transform: (value: T) => R): LuaSet<R>;
|
|
23
23
|
<T, K extends KeysOfType<T, AnyNotNil>>(array: readonly T[], key: K): LuaSet<T[K] extends AnyNotNil ? T[K] : never>;
|
|
24
24
|
};
|
|
25
|
+
export declare const flatten: <T>(array: readonly (readonly T[])[]) => T[];
|
|
25
26
|
export declare const flatMap: {
|
|
26
27
|
<T, R>(array: readonly T[], transform: (value: T) => readonly R[]): R[];
|
|
27
28
|
<T, K extends KeysOfType<T, readonly any[]>>(array: readonly T[], key: K): (T[K] extends readonly (infer R)[] ? R : never)[];
|
|
@@ -32,7 +33,10 @@ export declare const flatMapToLuaSet: {
|
|
|
32
33
|
};
|
|
33
34
|
export declare const mapIndexed: <T, R>(array: readonly T[], transform: (index: number, value: T) => R) => R[];
|
|
34
35
|
export declare const associate: <T, K extends AnyNotNil, V>(array: readonly T[], keySelector: (value: T) => K, valueSelector: (value: T) => V) => LuaMap<K, V>;
|
|
35
|
-
export declare const associateBy:
|
|
36
|
+
export declare const associateBy: {
|
|
37
|
+
<K extends AnyNotNil, V>(array: readonly V[], keySelector: (value: V) => K): LuaMap<K, V>;
|
|
38
|
+
<K extends KeysOfType<V, AnyNotNil>, V>(array: readonly V[], keySelector: K): LuaMap<V[K] extends AnyNotNil ? V[K] : never, V>;
|
|
39
|
+
};
|
|
36
40
|
export declare const associateByIndexed: <K extends AnyNotNil, V>(array: readonly V[], keySelector: (index: number, value: V) => K) => LuaMap<K, V>;
|
|
37
41
|
export declare const associateWith: <K extends AnyNotNil, V>(array: readonly K[], valueSelector: (value: K) => V) => LuaMap<K, V>;
|
|
38
42
|
export declare const associateWithIndexed: <K extends AnyNotNil, V>(array: readonly K[], valueSelector: (index: number, value: K) => V) => LuaMap<K, V>;
|
|
@@ -41,6 +45,10 @@ export declare const average: (array: readonly number[]) => number;
|
|
|
41
45
|
export declare const sum: (array: readonly number[]) => number;
|
|
42
46
|
export declare const product: (array: readonly number[]) => number;
|
|
43
47
|
export declare const max: (array: readonly number[]) => number;
|
|
48
|
+
export declare const maxBy: {
|
|
49
|
+
<T, Args extends any[]>(array: readonly T[], selector: (value: T, ...args: Args) => number, ...args: Args): T | undefined;
|
|
50
|
+
<T, K extends KeysOfType<T, number>>(array: readonly T[], key: K): T | undefined;
|
|
51
|
+
};
|
|
44
52
|
export declare const intersperse: <T>(array: readonly T[], delimiter: T) => T[];
|
|
45
53
|
export declare const zip: <T, R, V>(array: readonly T[], otherArray: readonly R[], transform: (value: T, otherValue: R) => V) => V[];
|
|
46
54
|
export declare const chunked: <T>(array: readonly T[], size: number) => T[][];
|
package/utility/arrays.lua
CHANGED
|
@@ -3,6 +3,8 @@ local __TS__New = ____lualib.__TS__New
|
|
|
3
3
|
local ____exports = {}
|
|
4
4
|
local ____exception = require("exception")
|
|
5
5
|
local IllegalArgumentException = ____exception.IllegalArgumentException
|
|
6
|
+
local ____functions = require("utility.functions")
|
|
7
|
+
local identity = ____functions.identity
|
|
6
8
|
local mathMax = math.max
|
|
7
9
|
local mathMin = math.min
|
|
8
10
|
local select = _G.select
|
|
@@ -120,6 +122,7 @@ ____exports.mapToLuaSet = function(array, transform)
|
|
|
120
122
|
end
|
|
121
123
|
return result
|
|
122
124
|
end
|
|
125
|
+
____exports.flatten = function(array) return ____exports.flatMap(array, identity) end
|
|
123
126
|
____exports.flatMap = function(array, transform)
|
|
124
127
|
local result = {}
|
|
125
128
|
local k = 1
|
|
@@ -178,9 +181,16 @@ ____exports.associate = function(array, keySelector, valueSelector)
|
|
|
178
181
|
end
|
|
179
182
|
____exports.associateBy = function(array, keySelector)
|
|
180
183
|
local result = {}
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
+
if type(keySelector) == "function" then
|
|
185
|
+
for i = 1, #array do
|
|
186
|
+
local value = array[i]
|
|
187
|
+
result[keySelector(value)] = value
|
|
188
|
+
end
|
|
189
|
+
else
|
|
190
|
+
for i = 1, #array do
|
|
191
|
+
local value = array[i]
|
|
192
|
+
result[value[keySelector]] = value
|
|
193
|
+
end
|
|
184
194
|
end
|
|
185
195
|
return result
|
|
186
196
|
end
|
|
@@ -251,6 +261,30 @@ ____exports.max = function(array)
|
|
|
251
261
|
end
|
|
252
262
|
return mathMax(table.unpack(array))
|
|
253
263
|
end
|
|
264
|
+
____exports.maxBy = function(array, selector, ...)
|
|
265
|
+
local result = nil
|
|
266
|
+
local maxValue = -math.huge
|
|
267
|
+
if type(selector) == "function" then
|
|
268
|
+
for i = 1, #array do
|
|
269
|
+
local element = array[i]
|
|
270
|
+
local value = selector(element, ...)
|
|
271
|
+
if value > maxValue then
|
|
272
|
+
result = element
|
|
273
|
+
maxValue = value
|
|
274
|
+
end
|
|
275
|
+
end
|
|
276
|
+
else
|
|
277
|
+
for i = 1, #array do
|
|
278
|
+
local element = array[i]
|
|
279
|
+
local value = element[selector]
|
|
280
|
+
if value > maxValue then
|
|
281
|
+
result = element
|
|
282
|
+
maxValue = value
|
|
283
|
+
end
|
|
284
|
+
end
|
|
285
|
+
end
|
|
286
|
+
return result
|
|
287
|
+
end
|
|
254
288
|
____exports.intersperse = function(array, delimiter)
|
|
255
289
|
local result = {}
|
|
256
290
|
local length = #array
|
package/utility/functions.d.ts
CHANGED
|
@@ -3,3 +3,9 @@ export declare const apply: {
|
|
|
3
3
|
<T, ConsumerParameters extends any[]>(object: T, consumer: (value: T, ...parameters: ConsumerParameters) => void, ...parameters: ConsumerParameters): T;
|
|
4
4
|
<T, ConsumerParameters extends any[], K extends KeysOfType<T, (...parameters: ConsumerParameters) => void>>(object: T, key: K, ...parameters: ConsumerParameters): T;
|
|
5
5
|
};
|
|
6
|
+
export declare const identity: <T>(value: T) => T;
|
|
7
|
+
export declare const firstArgument: <T>(value: T) => T;
|
|
8
|
+
export declare const secondArgument: <T>(_: unknown, value: T) => T;
|
|
9
|
+
export declare const thirdArgument: <T>(_first: unknown, _second: unknown, value: T) => T;
|
|
10
|
+
export declare const increment: (value: number) => number;
|
|
11
|
+
export declare const or: (lhs: boolean, rhs: boolean) => boolean;
|
package/utility/functions.lua
CHANGED
|
@@ -87,4 +87,10 @@ ____exports.apply = function(object, transform, ...)
|
|
|
87
87
|
end
|
|
88
88
|
return object
|
|
89
89
|
end
|
|
90
|
+
____exports.identity = function(value) return value end
|
|
91
|
+
____exports.firstArgument = ____exports.identity
|
|
92
|
+
____exports.secondArgument = function(_, value) return value end
|
|
93
|
+
____exports.thirdArgument = function(_first, _second, value) return value end
|
|
94
|
+
____exports.increment = function(value) return value + 1 end
|
|
95
|
+
____exports["or"] = function(lhs, rhs) return lhs or rhs end
|
|
90
96
|
return ____exports
|
package/utility/lazy.lua
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
local ____exports = {}
|
|
2
|
+
local rawset = _G.rawset
|
|
3
|
+
local setmetatable = _G.setmetatable
|
|
4
|
+
____exports.lazyRecord = function(initializer)
|
|
5
|
+
return setmetatable(
|
|
6
|
+
{},
|
|
7
|
+
{__index = function(self, key)
|
|
8
|
+
local value = initializer(key)
|
|
9
|
+
rawset(self, key, value)
|
|
10
|
+
return value
|
|
11
|
+
end}
|
|
12
|
+
)
|
|
13
|
+
end
|
|
14
|
+
return ____exports
|
package/utility/linked-set.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
|
+
import { NonEmptyArray, ReadonlyNonEmptyArray } from "./types";
|
|
2
3
|
type IteratorState<T extends AnyNotNil> = {
|
|
3
4
|
t: LuaMap<T, T>;
|
|
4
5
|
n?: T;
|
|
@@ -18,6 +19,11 @@ export interface ReadonlyLinkedSet<T extends AnyNotNil> extends LuaPairsKeyItera
|
|
|
18
19
|
toArray(): T[];
|
|
19
20
|
sumOf(selector: ((value: T) => number) | KeysOfType<T, number>): number;
|
|
20
21
|
}
|
|
22
|
+
export interface ReadonlyNonEmptyLinkedSet<T extends AnyNotNil> extends ReadonlyLinkedSet<T> {
|
|
23
|
+
first(): T;
|
|
24
|
+
last(): T;
|
|
25
|
+
toArray(): NonEmptyArray<T>;
|
|
26
|
+
}
|
|
21
27
|
export interface LinkedSet<T extends AnyNotNil> extends LuaPairsKeyIterable<T> {
|
|
22
28
|
readonly __linkedSet: unique symbol;
|
|
23
29
|
}
|
|
@@ -44,6 +50,10 @@ export declare class LinkedSet<T extends AnyNotNil> implements ReadonlyLinkedSet
|
|
|
44
50
|
protected __pairs(this: LinkedSet<T>): LuaIterator<T | undefined, IteratorState<T>>;
|
|
45
51
|
}
|
|
46
52
|
export declare const emptyLinkedSet: <T extends AnyNotNil>() => ReadonlyLinkedSet<T>;
|
|
47
|
-
export declare const
|
|
48
|
-
export declare const
|
|
53
|
+
export declare const mutableLinkedSet: <T extends AnyNotNil>() => LinkedSet<T>;
|
|
54
|
+
export declare const mutableLinkedSetOf: <T extends AnyNotNil>(...elements: ReadonlyArray<T>) => LinkedSet<T>;
|
|
55
|
+
export declare const mutableLinkedSetOfNotNull: <T extends AnyNotNil>(...elements: readonly (T | undefined | null)[]) => LinkedSet<T>;
|
|
56
|
+
export declare const linkedSetOf: <T extends AnyNotNil>(...elements: ReadonlyArray<T>) => ReadonlyLinkedSet<T>;
|
|
57
|
+
export declare const linkedSetOfNotNull: <T extends AnyNotNil>(...elements: ReadonlyArray<T>) => ReadonlyLinkedSet<T>;
|
|
58
|
+
export declare const nonEmptyLinkedSetOf: <T extends AnyNotNil>(...elements: ReadonlyNonEmptyArray<T>) => ReadonlyNonEmptyLinkedSet<T>;
|
|
49
59
|
export {};
|
package/utility/linked-set.lua
CHANGED
|
@@ -177,14 +177,17 @@ local EMPTY_LINKED_SET = __TS__New(EmptyLinkedSet)
|
|
|
177
177
|
____exports.emptyLinkedSet = function()
|
|
178
178
|
return EMPTY_LINKED_SET
|
|
179
179
|
end
|
|
180
|
-
____exports.
|
|
180
|
+
____exports.mutableLinkedSet = function()
|
|
181
|
+
return __TS__New(____exports.LinkedSet)
|
|
182
|
+
end
|
|
183
|
+
____exports.mutableLinkedSetOf = function(...)
|
|
181
184
|
local linkedSet = __TS__New(____exports.LinkedSet)
|
|
182
185
|
for i = 1, select("#", ...) do
|
|
183
186
|
linkedSet:add((select(i, ...)))
|
|
184
187
|
end
|
|
185
188
|
return linkedSet
|
|
186
189
|
end
|
|
187
|
-
____exports.
|
|
190
|
+
____exports.mutableLinkedSetOfNotNull = function(...)
|
|
188
191
|
local linkedSet = __TS__New(____exports.LinkedSet)
|
|
189
192
|
for i = 1, select("#", ...) do
|
|
190
193
|
local element = (select(i, ...))
|
|
@@ -194,4 +197,7 @@ ____exports.linkedSetOfNotNull = function(...)
|
|
|
194
197
|
end
|
|
195
198
|
return linkedSet
|
|
196
199
|
end
|
|
200
|
+
____exports.linkedSetOf = function(...) return ____exports.mutableLinkedSetOf(...) end
|
|
201
|
+
____exports.linkedSetOfNotNull = function(...) return ____exports.mutableLinkedSetOfNotNull(...) end
|
|
202
|
+
____exports.nonEmptyLinkedSetOf = function(...) return ____exports.linkedSetOf(...) end
|
|
197
203
|
return ____exports
|