warscript 0.0.1-dev.c59dd14 → 0.0.1-dev.c677d41
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 +6 -1
- package/attributes.lua +17 -1
- package/binaryreader.d.ts +1 -0
- package/binaryreader.lua +3 -0
- 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 +8 -1
- package/core/types/frame.lua +117 -22
- package/core/types/group.d.ts +0 -1
- package/core/types/handle.lua +1 -1
- package/core/types/image.d.ts +0 -1
- package/core/types/player.d.ts +16 -0
- package/core/types/player.lua +60 -15
- package/core/types/playerCamera.d.ts +2 -0
- package/core/types/playerCamera.lua +123 -5
- package/core/types/sound.d.ts +17 -24
- package/core/types/sound.lua +99 -24
- package/core/types/tileCell.d.ts +11 -1
- package/core/types/tileCell.lua +97 -0
- package/core/types/timer.d.ts +9 -8
- package/core/types/timer.lua +45 -23
- package/core/types/unit.lua +8 -0
- package/core/util.d.ts +1 -1
- package/core/util.lua +18 -1
- package/decl/index.d.ts +1 -0
- package/decl/native.d.ts +846 -790
- package/destroyable.d.ts +1 -0
- package/destroyable.lua +9 -0
- package/engine/ability.d.ts +1 -1
- package/engine/behavior.d.ts +24 -11
- package/engine/behavior.lua +233 -73
- 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 +36 -4
- package/engine/behaviour/ability/apply-unit-behavior.d.ts +6 -1
- package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
- package/engine/behaviour/ability/damage.d.ts +39 -11
- package/engine/behaviour/ability/damage.lua +83 -37
- package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
- package/engine/behaviour/ability/emulate-impact.lua +43 -0
- package/engine/behaviour/ability/heal.d.ts +33 -6
- package/engine/behaviour/ability/heal.lua +89 -10
- 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 +25 -0
- package/engine/behaviour/ability/remove-buffs.lua +49 -0
- package/engine/behaviour/ability/restore-mana.d.ts +15 -0
- package/engine/behaviour/ability/restore-mana.lua +29 -0
- package/engine/behaviour/ability.d.ts +22 -5
- package/engine/behaviour/ability.lua +113 -48
- package/engine/behaviour/unit/stun-immunity.d.ts +12 -7
- package/engine/behaviour/unit/stun-immunity.lua +57 -31
- package/engine/behaviour/unit.d.ts +48 -4
- package/engine/behaviour/unit.lua +292 -2
- package/engine/buff.d.ts +121 -46
- package/engine/buff.lua +567 -248
- package/engine/game-map.d.ts +7 -0
- package/engine/game-map.lua +32 -0
- package/engine/internal/ability.d.ts +23 -14
- package/engine/internal/ability.lua +129 -85
- package/engine/internal/item/ability.lua +162 -4
- package/engine/internal/item+owner.lua +12 -6
- package/engine/internal/item.d.ts +20 -19
- package/engine/internal/item.lua +191 -74
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- package/engine/internal/mechanics/cast-ability.lua +6 -3
- 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/misc/frame-coordinates.d.ts +2 -0
- package/engine/internal/misc/frame-coordinates.lua +21 -0
- package/engine/internal/misc/get-terrain-z.d.ts +2 -0
- package/engine/internal/misc/get-terrain-z.lua +11 -0
- package/engine/internal/misc/player-local-handle.d.ts +2 -0
- package/engine/internal/misc/player-local-handle.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/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
- package/engine/internal/unit/ability.d.ts +45 -1
- package/engine/internal/unit/ability.lua +128 -17
- 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/attributes.d.ts +17 -0
- package/engine/internal/unit/attributes.lua +46 -0
- package/engine/internal/unit/bonus.d.ts +13 -8
- package/engine/internal/unit/bonus.lua +33 -1
- package/engine/internal/unit/fly-height.d.ts +7 -0
- package/engine/internal/unit/fly-height.lua +20 -0
- 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/interrupts.d.ts +12 -0
- package/engine/internal/unit/interrupts.lua +28 -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 +36 -0
- package/engine/internal/unit/order.d.ts +20 -0
- package/engine/internal/unit/order.lua +136 -0
- package/engine/internal/unit/scale.d.ts +7 -0
- package/engine/internal/unit/scale.lua +20 -0
- package/engine/internal/unit+ability.lua +12 -3
- 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+transport.lua +4 -10
- package/engine/internal/unit-missile-launch.lua +70 -13
- package/engine/internal/unit.d.ts +64 -31
- package/engine/internal/unit.lua +496 -262
- 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 +9 -2
- package/engine/local-client.lua +112 -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/armor-type.d.ts +11 -0
- package/engine/object-data/auxiliary/armor-type.lua +46 -0
- package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -3
- 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/combat-classification.d.ts +0 -2
- package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
- package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -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.d.ts +0 -1
- package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
- package/engine/object-data/entry/ability-type/blank-passive.d.ts +0 -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/channel.d.ts +0 -1
- 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/mana-regeneration.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
- 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 -18
- package/engine/object-data/entry/ability-type.lua +93 -36
- package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
- package/engine/object-data/entry/buff-type/applicable.lua +18 -37
- package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
- package/engine/object-data/entry/buff-type.d.ts +6 -13
- package/engine/object-data/entry/buff-type.lua +13 -29
- package/engine/object-data/entry/destructible-type.d.ts +28 -3
- package/engine/object-data/entry/destructible-type.lua +155 -0
- package/engine/object-data/entry/item-type/blank.d.ts +0 -1
- package/engine/object-data/entry/item-type.d.ts +15 -2
- package/engine/object-data/entry/item-type.lua +93 -2
- package/engine/object-data/entry/lightning-type.d.ts +1 -2
- 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 +25 -6
- package/engine/object-data/entry/unit-type.lua +258 -93
- package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
- package/engine/object-data/entry/upgrade.d.ts +1 -2
- package/engine/object-data/entry/upgrade.lua +4 -4
- package/engine/object-data/entry.d.ts +18 -17
- 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 +28 -5
- package/engine/object-field/ability.lua +59 -5
- package/engine/object-field/unit.d.ts +72 -3
- package/engine/object-field/unit.lua +268 -7
- package/engine/object-field.d.ts +25 -7
- package/engine/object-field.lua +359 -116
- package/engine/random.d.ts +10 -5
- package/engine/random.lua +13 -0
- 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 +4 -2
- package/engine/standard/fields/ability.lua +4 -2
- package/engine/standard/fields/unit.d.ts +12 -0
- package/engine/standard/fields/unit.lua +20 -0
- package/engine/synchronization.d.ts +11 -0
- package/engine/synchronization.lua +77 -0
- package/engine/text-tag.d.ts +36 -2
- package/engine/text-tag.lua +250 -10
- package/engine/unit.d.ts +8 -0
- package/engine/unit.lua +17 -2
- package/event.d.ts +2 -3
- package/event.lua +9 -5
- package/index.d.ts +1 -0
- package/index.lua +1 -0
- package/lualib_bundle.lua +146 -42
- package/math/vec2.d.ts +2 -9
- package/math.d.ts +0 -2
- 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/ability.d.ts +0 -1
- package/objutil/buff.d.ts +0 -1
- package/objutil/buff.lua +12 -11
- package/objutil/object.d.ts +0 -1
- package/objutil/unit.d.ts +0 -1
- package/objutil/unit.lua +8 -0
- package/package.json +13 -13
- package/patch-lua.d.ts +0 -0
- package/patch-lua.lua +25 -0
- package/patch-lualib.lua +1 -1
- package/property.d.ts +55 -0
- package/property.lua +374 -0
- package/string.d.ts +16 -0
- package/string.lua +5 -0
- package/util/stream.d.ts +0 -1
- package/utility/arrays.d.ts +13 -5
- package/utility/arrays.lua +45 -3
- package/utility/bit-set.d.ts +0 -2
- package/utility/callback-array.d.ts +17 -0
- package/utility/callback-array.lua +61 -0
- package/utility/functions.d.ts +8 -0
- package/utility/functions.lua +13 -0
- package/utility/lazy.d.ts +2 -0
- package/utility/lazy.lua +14 -0
- package/utility/linked-map.d.ts +26 -0
- package/utility/linked-map.lua +66 -0
- package/utility/linked-set.d.ts +13 -3
- package/utility/linked-set.lua +31 -3
- package/utility/lua-maps.d.ts +16 -4
- package/utility/lua-maps.lua +53 -2
- package/utility/lua-sets.d.ts +3 -2
- package/utility/lua-sets.lua +7 -0
- package/utility/records.lua +20 -1
- package/utility/reflection.lua +11 -7
- package/utility/types.d.ts +4 -0
- package/core/mapbounds.d.ts +0 -8
- package/core/mapbounds.lua +0 -12
- package/core/types/order.d.ts +0 -25
- package/core/types/order.lua +0 -55
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
local ____exports = {}
|
|
2
|
+
local safeCall, tableUnpack
|
|
3
|
+
function ____exports.invokeCallbacks(array)
|
|
4
|
+
local length = array[1] or 2
|
|
5
|
+
local i = 2
|
|
6
|
+
while i ~= length do
|
|
7
|
+
local callback = array[i]
|
|
8
|
+
i = i + 1
|
|
9
|
+
local argsCount = array[i]
|
|
10
|
+
i = i + 1
|
|
11
|
+
safeCall(
|
|
12
|
+
callback,
|
|
13
|
+
tableUnpack(array, i, i + argsCount - 1)
|
|
14
|
+
)
|
|
15
|
+
i = i + argsCount
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
safeCall = warpack.safeCall
|
|
19
|
+
local select = _G.select
|
|
20
|
+
local tableMove = table.move
|
|
21
|
+
tableUnpack = table.unpack
|
|
22
|
+
____exports.callbackArray = function() return {} end
|
|
23
|
+
local function doNothing()
|
|
24
|
+
end
|
|
25
|
+
function ____exports.addCallback(array, callback, ...)
|
|
26
|
+
local id = array[1] or 2
|
|
27
|
+
local i = id
|
|
28
|
+
array[i] = callback
|
|
29
|
+
local argsCount = select("#", ...)
|
|
30
|
+
i = i + 1
|
|
31
|
+
array[i] = argsCount
|
|
32
|
+
for j = 1, argsCount do
|
|
33
|
+
i = i + 1
|
|
34
|
+
array[i] = (select(j, ...))
|
|
35
|
+
end
|
|
36
|
+
array[1] = i + 1
|
|
37
|
+
return id
|
|
38
|
+
end
|
|
39
|
+
function ____exports.clearCallbacks(array)
|
|
40
|
+
local length = array[1] or 2
|
|
41
|
+
tableMove(array, length, length + length - 2, 1)
|
|
42
|
+
end
|
|
43
|
+
function ____exports.consumeCallback(array, id)
|
|
44
|
+
local callback = array[id]
|
|
45
|
+
array[id] = doNothing
|
|
46
|
+
id = id + 1
|
|
47
|
+
local argsCount = array[id]
|
|
48
|
+
id = id + 1
|
|
49
|
+
safeCall(
|
|
50
|
+
callback,
|
|
51
|
+
tableUnpack(array, id, id + argsCount - 1)
|
|
52
|
+
)
|
|
53
|
+
end
|
|
54
|
+
function ____exports.consumeCallbacks(array)
|
|
55
|
+
local length = array[1] or 2
|
|
56
|
+
____exports.invokeCallbacks(array)
|
|
57
|
+
local newLength = array[1] or 2
|
|
58
|
+
tableMove(array, length, length + newLength - 3, 2)
|
|
59
|
+
array[1] = newLength - length + 2
|
|
60
|
+
end
|
|
61
|
+
return ____exports
|
package/utility/functions.d.ts
CHANGED
|
@@ -3,3 +3,11 @@ 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;
|
|
12
|
+
export type Transform<T, R> = (<T, R>(value: T) => R) | KeysOfType<T, R>;
|
|
13
|
+
export declare const transform: <T, R>(object: T, transform: Transform<T, R>) => R;
|
package/utility/functions.lua
CHANGED
|
@@ -87,4 +87,17 @@ ____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
|
|
96
|
+
____exports.transform = function(object, transform)
|
|
97
|
+
if type(transform) == "function" then
|
|
98
|
+
return transform(object)
|
|
99
|
+
else
|
|
100
|
+
return object[transform]
|
|
101
|
+
end
|
|
102
|
+
end
|
|
90
103
|
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
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import { ReadonlyLinkedSet } from "./linked-set";
|
|
3
|
+
type IteratorState<K extends AnyNotNil, V> = {
|
|
4
|
+
n?: K;
|
|
5
|
+
t: LuaMap<K, K>;
|
|
6
|
+
v: LuaMap<K, V>;
|
|
7
|
+
};
|
|
8
|
+
type OneSidedTypeGuard = {
|
|
9
|
+
readonly __oneSidedTypeGuard: unique symbol;
|
|
10
|
+
};
|
|
11
|
+
export interface LinkedMap<K extends AnyNotNil, V> extends LuaPairsIterable<K, V> {
|
|
12
|
+
readonly __linkedSet: unique symbol;
|
|
13
|
+
}
|
|
14
|
+
export declare class LinkedMap<K extends AnyNotNil, V> {
|
|
15
|
+
private k;
|
|
16
|
+
private v;
|
|
17
|
+
get keys(): ReadonlyLinkedSet<K>;
|
|
18
|
+
get(key: K): V | undefined;
|
|
19
|
+
getOrPut(key: K, defaultValue: (this: void) => V): V;
|
|
20
|
+
put(key: K, value: V): void;
|
|
21
|
+
remove(key: K): boolean;
|
|
22
|
+
contains(key: AnyNotNil): key is K & OneSidedTypeGuard;
|
|
23
|
+
get size(): number;
|
|
24
|
+
protected __pairs(this: LinkedMap<K, V>): LuaIterator<LuaMultiReturn<[K | undefined, V | undefined]>, IteratorState<K, V>>;
|
|
25
|
+
}
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
local ____lualib = require("lualib_bundle")
|
|
2
|
+
local __TS__Class = ____lualib.__TS__Class
|
|
3
|
+
local __TS__New = ____lualib.__TS__New
|
|
4
|
+
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
5
|
+
local ____exports = {}
|
|
6
|
+
local ____linked_2Dset = require("utility.linked-set")
|
|
7
|
+
local LinkedSet = ____linked_2Dset.LinkedSet
|
|
8
|
+
local function linkedMapNext(state)
|
|
9
|
+
local n = state.n
|
|
10
|
+
state.n = state.t[n]
|
|
11
|
+
return n, state.v[n]
|
|
12
|
+
end
|
|
13
|
+
____exports.LinkedMap = __TS__Class()
|
|
14
|
+
local LinkedMap = ____exports.LinkedMap
|
|
15
|
+
LinkedMap.name = "LinkedMap"
|
|
16
|
+
function LinkedMap.prototype.____constructor(self)
|
|
17
|
+
self.k = __TS__New(LinkedSet)
|
|
18
|
+
self.v = {}
|
|
19
|
+
end
|
|
20
|
+
function LinkedMap.prototype.get(self, key)
|
|
21
|
+
return self.v[key]
|
|
22
|
+
end
|
|
23
|
+
function LinkedMap.prototype.getOrPut(self, key, defaultValue)
|
|
24
|
+
local value = self.v[key]
|
|
25
|
+
if value ~= nil then
|
|
26
|
+
return value
|
|
27
|
+
end
|
|
28
|
+
value = defaultValue()
|
|
29
|
+
self.k:add(key)
|
|
30
|
+
self.v[key] = value
|
|
31
|
+
return value
|
|
32
|
+
end
|
|
33
|
+
function LinkedMap.prototype.put(self, key, value)
|
|
34
|
+
self.k:add(key)
|
|
35
|
+
self.v[key] = value
|
|
36
|
+
end
|
|
37
|
+
function LinkedMap.prototype.remove(self, key)
|
|
38
|
+
if self.k:remove(key) then
|
|
39
|
+
self.v[key] = nil
|
|
40
|
+
return true
|
|
41
|
+
end
|
|
42
|
+
return false
|
|
43
|
+
end
|
|
44
|
+
function LinkedMap.prototype.contains(self, key)
|
|
45
|
+
return self.keys:contains(key)
|
|
46
|
+
end
|
|
47
|
+
function LinkedMap.prototype.__pairs(self)
|
|
48
|
+
return linkedMapNext, {n = self.k.f, t = self.k.n, v = self.v}, nil
|
|
49
|
+
end
|
|
50
|
+
__TS__SetDescriptor(
|
|
51
|
+
LinkedMap.prototype,
|
|
52
|
+
"keys",
|
|
53
|
+
{get = function(self)
|
|
54
|
+
return self.k
|
|
55
|
+
end},
|
|
56
|
+
true
|
|
57
|
+
)
|
|
58
|
+
__TS__SetDescriptor(
|
|
59
|
+
LinkedMap.prototype,
|
|
60
|
+
"size",
|
|
61
|
+
{get = function(self)
|
|
62
|
+
return self.keys.size
|
|
63
|
+
end},
|
|
64
|
+
true
|
|
65
|
+
)
|
|
66
|
+
return ____exports
|
package/utility/linked-set.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/// <reference types="@typescript-to-lua/language-extensions" />
|
|
2
1
|
/** @noSelfInFile */
|
|
2
|
+
import { NonEmptyArray, ReadonlyNonEmptyArray } from "./types";
|
|
3
3
|
type IteratorState<T extends AnyNotNil> = {
|
|
4
4
|
t: LuaMap<T, T>;
|
|
5
5
|
n?: T;
|
|
@@ -19,6 +19,11 @@ export interface ReadonlyLinkedSet<T extends AnyNotNil> extends LuaPairsKeyItera
|
|
|
19
19
|
toArray(): T[];
|
|
20
20
|
sumOf(selector: ((value: T) => number) | KeysOfType<T, number>): number;
|
|
21
21
|
}
|
|
22
|
+
export interface ReadonlyNonEmptyLinkedSet<T extends AnyNotNil> extends ReadonlyLinkedSet<T> {
|
|
23
|
+
first(): T;
|
|
24
|
+
last(): T;
|
|
25
|
+
toArray(): NonEmptyArray<T>;
|
|
26
|
+
}
|
|
22
27
|
export interface LinkedSet<T extends AnyNotNil> extends LuaPairsKeyIterable<T> {
|
|
23
28
|
readonly __linkedSet: unique symbol;
|
|
24
29
|
}
|
|
@@ -31,6 +36,7 @@ export declare class LinkedSet<T extends AnyNotNil> implements ReadonlyLinkedSet
|
|
|
31
36
|
copyOf(): LinkedSet<T>;
|
|
32
37
|
first(): T | undefined;
|
|
33
38
|
last(): T | undefined;
|
|
39
|
+
pop(): T | undefined;
|
|
34
40
|
next(key: T): T | undefined;
|
|
35
41
|
previous(key: T): T | undefined;
|
|
36
42
|
add(key: T): boolean;
|
|
@@ -45,6 +51,10 @@ export declare class LinkedSet<T extends AnyNotNil> implements ReadonlyLinkedSet
|
|
|
45
51
|
protected __pairs(this: LinkedSet<T>): LuaIterator<T | undefined, IteratorState<T>>;
|
|
46
52
|
}
|
|
47
53
|
export declare const emptyLinkedSet: <T extends AnyNotNil>() => ReadonlyLinkedSet<T>;
|
|
48
|
-
export declare const
|
|
49
|
-
export declare const
|
|
54
|
+
export declare const mutableLinkedSet: <T extends AnyNotNil>() => LinkedSet<T>;
|
|
55
|
+
export declare const mutableLinkedSetOf: <T extends AnyNotNil>(...elements: ReadonlyArray<T>) => LinkedSet<T>;
|
|
56
|
+
export declare const mutableLinkedSetOfNotNull: <T extends AnyNotNil>(...elements: readonly (T | undefined | null)[]) => LinkedSet<T>;
|
|
57
|
+
export declare const linkedSetOf: <T extends AnyNotNil>(...elements: ReadonlyArray<T>) => ReadonlyLinkedSet<T>;
|
|
58
|
+
export declare const linkedSetOfNotNull: <T extends AnyNotNil>(...elements: ReadonlyArray<T>) => ReadonlyLinkedSet<T>;
|
|
59
|
+
export declare const nonEmptyLinkedSetOf: <T extends AnyNotNil>(...elements: ReadonlyNonEmptyArray<T>) => ReadonlyNonEmptyLinkedSet<T>;
|
|
50
60
|
export {};
|
package/utility/linked-set.lua
CHANGED
|
@@ -42,6 +42,23 @@ end
|
|
|
42
42
|
function LinkedSet.prototype.last(self)
|
|
43
43
|
return self.l
|
|
44
44
|
end
|
|
45
|
+
function LinkedSet.prototype.pop(self)
|
|
46
|
+
local f = self.f
|
|
47
|
+
if f == nil then
|
|
48
|
+
return nil
|
|
49
|
+
end
|
|
50
|
+
local n = self.n
|
|
51
|
+
local next = n[f]
|
|
52
|
+
n[f] = nil
|
|
53
|
+
self.f = next
|
|
54
|
+
if next ~= nil then
|
|
55
|
+
self.p[next] = nil
|
|
56
|
+
else
|
|
57
|
+
self.l = nil
|
|
58
|
+
end
|
|
59
|
+
self.s = self.s - 1
|
|
60
|
+
return f
|
|
61
|
+
end
|
|
45
62
|
function LinkedSet.prototype.next(self, key)
|
|
46
63
|
return self.n[key]
|
|
47
64
|
end
|
|
@@ -107,8 +124,9 @@ function LinkedSet.prototype.forEach(self, action, ...)
|
|
|
107
124
|
local n = self.n
|
|
108
125
|
local c = self.f
|
|
109
126
|
while c ~= nil do
|
|
127
|
+
local next = n[c]
|
|
110
128
|
action(c, ...)
|
|
111
|
-
c =
|
|
129
|
+
c = next
|
|
112
130
|
end
|
|
113
131
|
end
|
|
114
132
|
function LinkedSet.prototype.toArray(self)
|
|
@@ -164,6 +182,7 @@ __TS__SetDescriptor(
|
|
|
164
182
|
end},
|
|
165
183
|
true
|
|
166
184
|
)
|
|
185
|
+
local emptyIteratorState = {t = {}}
|
|
167
186
|
local EmptyLinkedSet = __TS__Class()
|
|
168
187
|
EmptyLinkedSet.name = "EmptyLinkedSet"
|
|
169
188
|
__TS__ClassExtends(EmptyLinkedSet, ____exports.LinkedSet)
|
|
@@ -173,18 +192,24 @@ function EmptyLinkedSet.prototype.add(self)
|
|
|
173
192
|
0
|
|
174
193
|
)
|
|
175
194
|
end
|
|
195
|
+
function EmptyLinkedSet.prototype.__pairs(self)
|
|
196
|
+
return linkedSetNext, emptyIteratorState, nil
|
|
197
|
+
end
|
|
176
198
|
local EMPTY_LINKED_SET = __TS__New(EmptyLinkedSet)
|
|
177
199
|
____exports.emptyLinkedSet = function()
|
|
178
200
|
return EMPTY_LINKED_SET
|
|
179
201
|
end
|
|
180
|
-
____exports.
|
|
202
|
+
____exports.mutableLinkedSet = function()
|
|
203
|
+
return __TS__New(____exports.LinkedSet)
|
|
204
|
+
end
|
|
205
|
+
____exports.mutableLinkedSetOf = function(...)
|
|
181
206
|
local linkedSet = __TS__New(____exports.LinkedSet)
|
|
182
207
|
for i = 1, select("#", ...) do
|
|
183
208
|
linkedSet:add((select(i, ...)))
|
|
184
209
|
end
|
|
185
210
|
return linkedSet
|
|
186
211
|
end
|
|
187
|
-
____exports.
|
|
212
|
+
____exports.mutableLinkedSetOfNotNull = function(...)
|
|
188
213
|
local linkedSet = __TS__New(____exports.LinkedSet)
|
|
189
214
|
for i = 1, select("#", ...) do
|
|
190
215
|
local element = (select(i, ...))
|
|
@@ -194,4 +219,7 @@ ____exports.linkedSetOfNotNull = function(...)
|
|
|
194
219
|
end
|
|
195
220
|
return linkedSet
|
|
196
221
|
end
|
|
222
|
+
____exports.linkedSetOf = function(...) return ____exports.mutableLinkedSetOf(...) end
|
|
223
|
+
____exports.linkedSetOfNotNull = function(...) return ____exports.mutableLinkedSetOfNotNull(...) end
|
|
224
|
+
____exports.nonEmptyLinkedSetOf = function(...) return ____exports.linkedSetOf(...) end
|
|
197
225
|
return ____exports
|
package/utility/lua-maps.d.ts
CHANGED
|
@@ -1,6 +1,18 @@
|
|
|
1
|
-
/// <reference types="@typescript-to-lua/language-extensions" />
|
|
2
1
|
/** @noSelfInFile */
|
|
3
2
|
import { Flatten, TupleOf } from "./types";
|
|
4
|
-
export declare const
|
|
5
|
-
export declare const
|
|
6
|
-
export declare const
|
|
3
|
+
export declare const emptyLuaMap: <K extends AnyNotNil, V>() => ReadonlyLuaMap<K, V>;
|
|
4
|
+
export declare const mutableLuaMap: <K extends AnyNotNil, V>() => LuaMap<K, V>;
|
|
5
|
+
export declare const mutableWeakLuaMap: <K extends AnyNotNil, V>() => LuaMap<K, V>;
|
|
6
|
+
export declare const luaMapOf: <K extends AnyNotNil, V>(...pairs: Flatten<TupleOf<[K, V], 0 | 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>>) => LuaMap<K, V>;
|
|
7
|
+
export declare const luaMapInvert: <K extends AnyNotNil, V extends AnyNotNil>(luaMap: ReadonlyLuaMap<K, V | undefined | null>) => LuaMap<V, K>;
|
|
8
|
+
export declare const toLuaMap: <K extends PropertyKey, V>(record: Record<K, V>) => LuaMap<K, V>;
|
|
9
|
+
export declare const flattenKeys: <K extends AnyNotNil, V>(luaMap: ReadonlyLuaMap<readonly K[], V> | ReadonlyLuaMap<K[], V>) => LuaMap<K, V>;
|
|
10
|
+
export declare const mapKeys: {
|
|
11
|
+
<K1 extends AnyNotNil, K2 extends AnyNotNil, V>(luaMap: ReadonlyLuaMap<K1, V>, transform: (value: K1) => K2): LuaMap<K2, V>;
|
|
12
|
+
<K1 extends AnyNotNil, K2 extends keyof K1, V>(luaMap: ReadonlyLuaMap<K1, V>, key: K2): K1[K2] extends AnyNotNil ? LuaMap<K1[K2], V> : never;
|
|
13
|
+
};
|
|
14
|
+
export declare const mapValues: {
|
|
15
|
+
<K extends AnyNotNil, V1, V2>(luaMap: ReadonlyLuaMap<K, V1>, transform: (value: V1) => V2): LuaMap<K, V2>;
|
|
16
|
+
<K extends AnyNotNil, V1, V2 extends keyof V1>(luaMap: ReadonlyLuaMap<K, V1>, key: V2): LuaMap<K, V1[V2]>;
|
|
17
|
+
};
|
|
18
|
+
export declare const getOrPut: <K extends AnyNotNil, V>(luaMap: LuaMap<K, V>, key: K, defaultValue: () => V) => V;
|
package/utility/lua-maps.lua
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
local ____exports = {}
|
|
2
2
|
local select = _G.select
|
|
3
|
+
local setmetatable = _G.setmetatable
|
|
4
|
+
local weakKeysMetatable = {__mode = "k"}
|
|
5
|
+
local EMPTY_LUA_MAP = {}
|
|
6
|
+
____exports.emptyLuaMap = function()
|
|
7
|
+
return EMPTY_LUA_MAP
|
|
8
|
+
end
|
|
9
|
+
____exports.mutableLuaMap = function()
|
|
10
|
+
return {}
|
|
11
|
+
end
|
|
12
|
+
____exports.mutableWeakLuaMap = function()
|
|
13
|
+
return setmetatable({}, weakKeysMetatable)
|
|
14
|
+
end
|
|
3
15
|
____exports.luaMapOf = function(...)
|
|
4
16
|
local luaMap = {}
|
|
5
17
|
for i = 1, select("#", ...), 2 do
|
|
@@ -15,11 +27,50 @@ ____exports.luaMapInvert = function(luaMap)
|
|
|
15
27
|
end
|
|
16
28
|
return invertLuaMap
|
|
17
29
|
end
|
|
30
|
+
____exports.toLuaMap = function(record)
|
|
31
|
+
return record
|
|
32
|
+
end
|
|
33
|
+
____exports.flattenKeys = function(luaMap)
|
|
34
|
+
local result = {}
|
|
35
|
+
for keys, value in pairs(luaMap) do
|
|
36
|
+
for ____, key in ipairs(keys) do
|
|
37
|
+
result[key] = value
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
return result
|
|
41
|
+
end
|
|
42
|
+
____exports.mapKeys = function(luaMap, transform)
|
|
43
|
+
local result = {}
|
|
44
|
+
if type(transform) == "function" then
|
|
45
|
+
for key, value in pairs(luaMap) do
|
|
46
|
+
result[transform(key)] = value
|
|
47
|
+
end
|
|
48
|
+
else
|
|
49
|
+
for key, value in pairs(luaMap) do
|
|
50
|
+
result[key[transform]] = value
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
return result
|
|
54
|
+
end
|
|
18
55
|
____exports.mapValues = function(luaMap, transform)
|
|
19
56
|
local result = {}
|
|
20
|
-
|
|
21
|
-
|
|
57
|
+
if type(transform) == "function" then
|
|
58
|
+
for key, value in pairs(luaMap) do
|
|
59
|
+
result[key] = transform(value)
|
|
60
|
+
end
|
|
61
|
+
else
|
|
62
|
+
for key, value in pairs(luaMap) do
|
|
63
|
+
result[key] = value[transform]
|
|
64
|
+
end
|
|
22
65
|
end
|
|
23
66
|
return result
|
|
24
67
|
end
|
|
68
|
+
____exports.getOrPut = function(luaMap, key, defaultValue)
|
|
69
|
+
local value = luaMap[key]
|
|
70
|
+
if value == nil then
|
|
71
|
+
value = defaultValue()
|
|
72
|
+
luaMap[key] = value
|
|
73
|
+
end
|
|
74
|
+
return value
|
|
75
|
+
end
|
|
25
76
|
return ____exports
|
package/utility/lua-sets.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
/// <reference types="@typescript-to-lua/language-extensions" />
|
|
2
1
|
/** @noSelfInFile */
|
|
2
|
+
export declare const emptyLuaSet: <T extends AnyNotNil>() => ReadonlyLuaSet<T>;
|
|
3
|
+
export declare const mutableLuaSet: <T extends AnyNotNil>() => LuaSet<T>;
|
|
3
4
|
export declare const luaSetOf: <T extends AnyNotNil>(...elements: readonly T[]) => LuaSet<T>;
|
|
4
|
-
export declare const luaSetOfNotNull: <T extends AnyNotNil>(...elements: readonly (T |
|
|
5
|
+
export declare const luaSetOfNotNull: <T extends AnyNotNil>(...elements: readonly (T | undefined | null)[]) => LuaSet<T>;
|
|
5
6
|
export declare const luaSetIntersection: <T extends AnyNotNil>(firstLuaSet: ReadonlyLuaSet<T>, secondLuaSet: ReadonlyLuaSet<T>) => LuaSet<T>;
|
|
6
7
|
export declare const luaSetContainsAnyOf: <T extends AnyNotNil>(luaSet: ReadonlyLuaSet<T>, ...elements: readonly T[]) => boolean;
|
package/utility/lua-sets.lua
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
local ____exports = {}
|
|
2
2
|
local select = _G.select
|
|
3
|
+
local EMPTY_LUA_SET = {}
|
|
4
|
+
____exports.emptyLuaSet = function()
|
|
5
|
+
return EMPTY_LUA_SET
|
|
6
|
+
end
|
|
7
|
+
____exports.mutableLuaSet = function()
|
|
8
|
+
return {}
|
|
9
|
+
end
|
|
3
10
|
____exports.luaSetOf = function(...)
|
|
4
11
|
local luaSet = {}
|
|
5
12
|
for i = 1, select("#", ...) do
|
package/utility/records.lua
CHANGED
|
@@ -1,9 +1,28 @@
|
|
|
1
1
|
local ____exports = {}
|
|
2
|
+
local ____pairs = _G.pairs
|
|
3
|
+
local tableSort = table.sort
|
|
2
4
|
____exports.invertRecord = function(record)
|
|
3
5
|
local invertRecord = {}
|
|
4
|
-
for key, value in
|
|
6
|
+
for key, value in ____pairs(record) do
|
|
5
7
|
invertRecord[value] = key
|
|
6
8
|
end
|
|
7
9
|
return invertRecord
|
|
8
10
|
end
|
|
11
|
+
local sortedKeysInternal = {}
|
|
12
|
+
local lastSortedKeysLength = 0
|
|
13
|
+
---
|
|
14
|
+
-- @internal For use by internal systems only.
|
|
15
|
+
____exports.sortedKeysUnnested = function(record)
|
|
16
|
+
local length = 0
|
|
17
|
+
for key in ____pairs(record) do
|
|
18
|
+
length = length + 1
|
|
19
|
+
sortedKeysInternal[length] = key
|
|
20
|
+
end
|
|
21
|
+
for i = length + 1, lastSortedKeysLength do
|
|
22
|
+
sortedKeysInternal[i] = nil
|
|
23
|
+
end
|
|
24
|
+
lastSortedKeysLength = length
|
|
25
|
+
tableSort(sortedKeysInternal)
|
|
26
|
+
return sortedKeysInternal
|
|
27
|
+
end
|
|
9
28
|
return ____exports
|
package/utility/reflection.lua
CHANGED
|
@@ -5,21 +5,25 @@ local checkNotNull = ____preconditions.checkNotNull
|
|
|
5
5
|
-- @internal For use by internal systems only.
|
|
6
6
|
____exports.implementReadonlyNumberIndexSupplier = function(clazz, supplier)
|
|
7
7
|
local metatable = checkNotNull(getmetatable(clazz))
|
|
8
|
-
local originalIndex = checkNotNull(metatable
|
|
8
|
+
local originalIndex = checkNotNull(rawget(metatable, "__index"))
|
|
9
9
|
local memoizedValueByKey = {}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
rawset(
|
|
11
|
+
metatable,
|
|
12
|
+
"__index",
|
|
13
|
+
function(self, key)
|
|
13
14
|
if type(key) == "number" then
|
|
14
|
-
local value =
|
|
15
|
-
|
|
15
|
+
local value = memoizedValueByKey[key]
|
|
16
|
+
if value == nil then
|
|
17
|
+
value = supplier(key)
|
|
18
|
+
memoizedValueByKey[key] = value
|
|
19
|
+
end
|
|
16
20
|
return value
|
|
17
21
|
end
|
|
18
22
|
if type(originalIndex) == "function" then
|
|
19
23
|
return originalIndex(self, key)
|
|
20
24
|
end
|
|
21
25
|
return originalIndex[key]
|
|
22
|
-
end
|
|
26
|
+
end
|
|
23
27
|
)
|
|
24
28
|
end
|
|
25
29
|
____exports.getClass = function(object)
|
package/utility/types.d.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
export type AnyNonNullable = {};
|
|
3
3
|
export type IsExactlyAny<T> = boolean extends (T extends never ? true : false) ? true : false;
|
|
4
4
|
export type NonEmptyArray<T> = [T, ...T[]];
|
|
5
|
+
export type ReadonlyNonEmptyArray<T> = readonly [T, ...T[]];
|
|
5
6
|
export type InvertRecordType<T extends Record<PropertyKey, PropertyKey | null | undefined>> = {
|
|
6
7
|
[P in keyof T as NonNullable<T[P]>]: P;
|
|
7
8
|
};
|
|
@@ -36,4 +37,7 @@ export type Flatten<T extends readonly any[], A extends readonly any[] = []> = T
|
|
|
36
37
|
export type Prohibit<T, K extends keyof any> = T & {
|
|
37
38
|
[P in K]?: never;
|
|
38
39
|
};
|
|
40
|
+
type TupleSplit<T, N extends number, O extends readonly any[] = readonly []> = O["length"] extends N ? [O, T] : T extends readonly [infer F, ...infer R] ? TupleSplit<readonly [...R], N, readonly [...O, F]> : [O, T];
|
|
41
|
+
export type TakeFirst<T extends readonly any[], N extends number> = TupleSplit<T, N>[0];
|
|
42
|
+
export type SkipFirst<T extends readonly any[], N extends number> = TupleSplit<T, N>[1];
|
|
39
43
|
export {};
|
package/core/mapbounds.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/** @noSelfInFile */
|
|
2
|
-
import { Rect } from "./types/rect";
|
|
3
|
-
import { Region } from "./types/region";
|
|
4
|
-
export declare const boundRect: Rect;
|
|
5
|
-
export declare const boundRegion: Region;
|
|
6
|
-
export declare const boundMin: Readonly<Vec2>;
|
|
7
|
-
export declare const boundMax: Readonly<Vec2>;
|
|
8
|
-
export declare const boundCenter: Readonly<Vec2>;
|
package/core/mapbounds.lua
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
local ____exports = {}
|
|
2
|
-
local ____rect = require("core.types.rect")
|
|
3
|
-
local Rect = ____rect.Rect
|
|
4
|
-
local ____region = require("core.types.region")
|
|
5
|
-
local Region = ____region.Region
|
|
6
|
-
____exports.boundRect = Rect:of(GetWorldBounds())
|
|
7
|
-
____exports.boundRegion = Region:create()
|
|
8
|
-
____exports.boundRegion:addRect(____exports.boundRect)
|
|
9
|
-
____exports.boundMin = vec2(____exports.boundRect.minX, ____exports.boundRect.minY)
|
|
10
|
-
____exports.boundMax = vec2(____exports.boundRect.maxX, ____exports.boundRect.maxY)
|
|
11
|
-
____exports.boundCenter = (____exports.boundMin + ____exports.boundMax) * 0.5
|
|
12
|
-
return ____exports
|
package/core/types/order.d.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/** @noSelfInFile */
|
|
2
|
-
import { Unit } from "./unit";
|
|
3
|
-
import { Item } from "./item";
|
|
4
|
-
import { Destructable } from "./destructable";
|
|
5
|
-
export type Order = {
|
|
6
|
-
id: number;
|
|
7
|
-
startX: number;
|
|
8
|
-
startY: number;
|
|
9
|
-
} & ({
|
|
10
|
-
type: "immediate";
|
|
11
|
-
} | {
|
|
12
|
-
type: "point";
|
|
13
|
-
targetX: number;
|
|
14
|
-
targetY: number;
|
|
15
|
-
} | {
|
|
16
|
-
type: "target";
|
|
17
|
-
target: Unit | Item | Destructable;
|
|
18
|
-
});
|
|
19
|
-
declare module "../../engine/internal/unit" {
|
|
20
|
-
interface Unit {
|
|
21
|
-
readonly currentOrder: Order;
|
|
22
|
-
readonly lastOrder: Order;
|
|
23
|
-
issueOrder(order: Order): void;
|
|
24
|
-
}
|
|
25
|
-
}
|
package/core/types/order.lua
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
local ____lualib = require("lualib_bundle")
|
|
2
|
-
local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
|
|
3
|
-
local ____exports = {}
|
|
4
|
-
local ____unit = require("core.types.unit")
|
|
5
|
-
local Unit = ____unit.Unit
|
|
6
|
-
local getUnitCurrentOrder = GetUnitCurrentOrder
|
|
7
|
-
local orders = setmetatable({}, {__mode = "k"})
|
|
8
|
-
Unit.onImmediateOrder:addListener(function(unit, orderId)
|
|
9
|
-
orders[unit] = {id = orderId, startX = unit.x, startY = unit.y, type = "immediate"}
|
|
10
|
-
end)
|
|
11
|
-
Unit.onPointOrder:addListener(function(unit, orderId, x, y)
|
|
12
|
-
orders[unit] = {
|
|
13
|
-
id = orderId,
|
|
14
|
-
startX = unit.x,
|
|
15
|
-
startY = unit.y,
|
|
16
|
-
type = "point",
|
|
17
|
-
targetX = x,
|
|
18
|
-
targetY = y
|
|
19
|
-
}
|
|
20
|
-
end)
|
|
21
|
-
Unit.onTargetOrder:addListener(function(unit, orderId, target)
|
|
22
|
-
orders[unit] = {
|
|
23
|
-
id = orderId,
|
|
24
|
-
startX = unit.x,
|
|
25
|
-
startY = unit.y,
|
|
26
|
-
type = "target",
|
|
27
|
-
target = target
|
|
28
|
-
}
|
|
29
|
-
end)
|
|
30
|
-
__TS__ObjectDefineProperty(
|
|
31
|
-
Unit.prototype,
|
|
32
|
-
"currentOrder",
|
|
33
|
-
{get = function(self)
|
|
34
|
-
local currentOrderId = getUnitCurrentOrder(self.handle)
|
|
35
|
-
local lastOrder = orders[self]
|
|
36
|
-
return lastOrder and (lastOrder.id == currentOrderId or currentOrderId == orderId("patrolAI") and lastOrder.id == orderId("patrol")) and lastOrder or ({id = 0, type = "immediate"})
|
|
37
|
-
end}
|
|
38
|
-
)
|
|
39
|
-
__TS__ObjectDefineProperty(
|
|
40
|
-
Unit.prototype,
|
|
41
|
-
"lastOrder",
|
|
42
|
-
{get = function(self)
|
|
43
|
-
return orders[self] or ({id = 0, type = "immediate"})
|
|
44
|
-
end}
|
|
45
|
-
)
|
|
46
|
-
Unit.prototype.issueOrder = function(self, order)
|
|
47
|
-
if order.type == "immediate" then
|
|
48
|
-
IssueImmediateOrderById(self.handle, order.id)
|
|
49
|
-
elseif order.type == "point" then
|
|
50
|
-
IssuePointOrderById(self.handle, order.id, order.targetX, order.targetY)
|
|
51
|
-
else
|
|
52
|
-
IssueTargetOrderById(self.handle, order.id, order.target.handle)
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
return ____exports
|