warscript 0.0.1-dev.ffaa090 → 0.0.1-dev.fff719b
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 -0
- package/attributes.lua +17 -1
- package/core/types/effect.d.ts +1 -3
- package/core/types/effect.lua +26 -29
- package/core/types/frame.lua +24 -21
- 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 -25
- package/core/types/sound.lua +85 -44
- 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/decl/native.d.ts +846 -790
- package/destroyable.d.ts +1 -0
- package/destroyable.lua +9 -0
- package/engine/behavior.d.ts +14 -1
- package/engine/behavior.lua +230 -70
- package/engine/behaviour/ability/apply-buff.lua +5 -5
- package/engine/behaviour/ability/damage.d.ts +6 -3
- package/engine/behaviour/ability/damage.lua +24 -36
- package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
- package/engine/behaviour/ability/emulate-impact.lua +18 -3
- package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
- package/engine/behaviour/ability/remove-buffs.lua +21 -0
- package/engine/behaviour/ability/restore-mana.d.ts +1 -1
- package/engine/behaviour/ability/restore-mana.lua +6 -6
- package/engine/behaviour/ability.d.ts +6 -2
- package/engine/behaviour/ability.lua +16 -22
- package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
- package/engine/behaviour/unit/stun-immunity.lua +57 -31
- package/engine/behaviour/unit.d.ts +39 -3
- package/engine/behaviour/unit.lua +269 -6
- package/engine/buff.d.ts +21 -8
- package/engine/buff.lua +193 -121
- package/engine/internal/ability.d.ts +7 -1
- package/engine/internal/ability.lua +49 -9
- package/engine/internal/item/ability.lua +63 -11
- package/engine/internal/item+owner.lua +12 -6
- package/engine/internal/item.d.ts +18 -17
- package/engine/internal/item.lua +135 -49
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- package/engine/internal/mechanics/cast-ability.lua +6 -3
- 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/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 +35 -0
- package/engine/internal/unit/ability.lua +98 -9
- 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 +2 -0
- package/engine/internal/unit/bonus.lua +10 -0
- package/engine/internal/unit/fly-height.d.ts +7 -0
- package/engine/internal/unit/fly-height.lua +20 -0
- package/engine/internal/unit/interrupts.d.ts +12 -0
- package/engine/internal/unit/interrupts.lua +28 -0
- package/engine/internal/unit/main-selected.lua +12 -27
- 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 +10 -1
- 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 +52 -14
- package/engine/internal/unit.d.ts +39 -26
- package/engine/internal/unit.lua +375 -236
- package/engine/local-client.d.ts +2 -0
- package/engine/local-client.lua +30 -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 -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/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/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/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/ensnare.d.ts +12 -0
- package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
- 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/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/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 +11 -11
- package/engine/object-data/entry/ability-type.lua +35 -13
- package/engine/object-data/entry/buff-type/applicable.lua +5 -0
- package/engine/object-data/entry/buff-type.d.ts +5 -11
- package/engine/object-data/entry/buff-type.lua +11 -27
- package/engine/object-data/entry/destructible-type.d.ts +27 -1
- package/engine/object-data/entry/destructible-type.lua +155 -0
- package/engine/object-data/entry/sound-preset.d.ts +17 -0
- package/engine/object-data/entry/sound-preset.lua +104 -0
- package/engine/object-data/entry/unit-type.d.ts +17 -4
- package/engine/object-data/entry/unit-type.lua +197 -85
- package/engine/object-field/ability.d.ts +4 -4
- package/engine/object-field/ability.lua +7 -6
- package/engine/object-field/unit.d.ts +72 -3
- package/engine/object-field/unit.lua +268 -7
- package/engine/object-field.d.ts +25 -6
- package/engine/object-field.lua +357 -118
- package/engine/random.d.ts +9 -0
- 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/fields/ability.d.ts +2 -2
- package/engine/standard/fields/ability.lua +2 -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 +5 -0
- package/engine/unit.lua +5 -0
- package/net/socket.lua +1 -1
- package/objutil/buff.lua +11 -10
- package/package.json +2 -2
- package/patch-lua.lua +9 -0
- package/patch-lualib.lua +1 -1
- package/utility/arrays.d.ts +2 -0
- package/utility/arrays.lua +11 -0
- 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/linked-map.d.ts +26 -0
- package/utility/linked-map.lua +66 -0
- package/utility/linked-set.d.ts +2 -0
- package/utility/linked-set.lua +26 -1
- package/utility/lua-maps.d.ts +15 -2
- package/utility/lua-maps.lua +53 -2
- package/utility/lua-sets.d.ts +2 -0
- package/utility/lua-sets.lua +7 -0
- package/utility/records.lua +20 -1
- package/utility/types.d.ts +3 -0
- package/core/types/order.d.ts +0 -25
- package/core/types/order.lua +0 -55
package/core/types/sound.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
2
|
import { Handle, HandleDestructor } from "./handle";
|
|
3
3
|
import { Unit } from "./unit";
|
|
4
|
+
import { SoundEax } from "../../engine/object-data/auxiliary/sound-eax";
|
|
4
5
|
export declare enum SoundChannel {
|
|
5
6
|
General = 0,
|
|
6
7
|
UnitSelection = 1,
|
|
@@ -18,16 +19,7 @@ export declare enum SoundChannel {
|
|
|
18
19
|
Birth = 13,
|
|
19
20
|
Fire = 14
|
|
20
21
|
}
|
|
21
|
-
export
|
|
22
|
-
Default = "DefaultEAXON",
|
|
23
|
-
Acknowledgements = "HeroAcksEAX",
|
|
24
|
-
Environment = "DoodadsEAX",
|
|
25
|
-
Drums = "KotoDrumsEAX",
|
|
26
|
-
Attacks = "CombatSoundsEAX",
|
|
27
|
-
Abilities = "SpellsEAX",
|
|
28
|
-
Missiles = "MissilesEAX"
|
|
29
|
-
}
|
|
30
|
-
export type SoundPreset = Readonly<{
|
|
22
|
+
export type SoundSettings = Readonly<{
|
|
31
23
|
channel?: SoundChannel;
|
|
32
24
|
eax?: SoundEax;
|
|
33
25
|
fadeInRate?: number;
|
|
@@ -36,19 +28,19 @@ export type SoundPreset = Readonly<{
|
|
|
36
28
|
volume?: number;
|
|
37
29
|
pitch?: number;
|
|
38
30
|
}>;
|
|
39
|
-
export type
|
|
31
|
+
export type Sound3DSettings = SoundSettings & Readonly<{
|
|
40
32
|
stopWhenOutOfRange?: boolean;
|
|
41
33
|
minDistance?: number;
|
|
42
34
|
maxDistance?: number;
|
|
43
35
|
distanceCutoff?: number;
|
|
44
36
|
}>;
|
|
45
|
-
export declare namespace
|
|
46
|
-
const UI:
|
|
47
|
-
const Music:
|
|
48
|
-
const Attack:
|
|
49
|
-
const Ability:
|
|
50
|
-
const AbilityLooping:
|
|
51
|
-
const Missile:
|
|
37
|
+
export declare namespace SoundSettings {
|
|
38
|
+
const UI: SoundSettings;
|
|
39
|
+
const Music: SoundSettings;
|
|
40
|
+
const Attack: Sound3DSettings;
|
|
41
|
+
const Ability: Sound3DSettings;
|
|
42
|
+
const AbilityLooping: Sound3DSettings;
|
|
43
|
+
const Missile: Sound3DSettings;
|
|
52
44
|
}
|
|
53
45
|
export declare class Sound extends Handle<jsound, [fadeOut?: boolean]> {
|
|
54
46
|
private _volume?;
|
|
@@ -58,13 +50,13 @@ export declare class Sound extends Handle<jsound, [fadeOut?: boolean]> {
|
|
|
58
50
|
start(milliseconds?: number): void;
|
|
59
51
|
stop(fadeOut?: boolean): void;
|
|
60
52
|
restart(milliseconds?: number): void;
|
|
61
|
-
static play(fileName: string, preset:
|
|
62
|
-
static create(fileName: string, preset:
|
|
53
|
+
static play(fileName: string, preset: SoundSettings): void;
|
|
54
|
+
static create(fileName: string, preset: SoundSettings): Sound;
|
|
63
55
|
}
|
|
64
56
|
export declare class Sound3D extends Sound {
|
|
65
|
-
static playAtPosition(fileName: string, preset:
|
|
66
|
-
static playOnUnit(fileName: string, preset:
|
|
67
|
-
static playFromLabel(label: string, preset:
|
|
68
|
-
static createAtPosition(fileName: string, preset:
|
|
69
|
-
static createOnUnit(fileName: string, preset:
|
|
57
|
+
static playAtPosition(fileName: string, preset: Sound3DSettings, x?: number, y?: number, z?: number): void;
|
|
58
|
+
static playOnUnit(fileName: string, preset: Sound3DSettings, unit: Unit): void;
|
|
59
|
+
static playFromLabel(label: string, preset: Sound3DSettings, ...positionOrUnit: [Unit] | [number, number, number?]): void;
|
|
60
|
+
static createAtPosition(fileName: string, preset: Sound3DSettings, x?: number, y?: number, z?: number): Sound3D;
|
|
61
|
+
static createOnUnit(fileName: string, preset: Sound3DSettings, unit: Unit): Sound3D;
|
|
70
62
|
}
|
package/core/types/sound.lua
CHANGED
|
@@ -5,6 +5,10 @@ local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
|
5
5
|
local ____exports = {}
|
|
6
6
|
local ____handle = require("core.types.handle")
|
|
7
7
|
local Handle = ____handle.Handle
|
|
8
|
+
local ____sound_2Dpreset = require("engine.object-data.entry.sound-preset")
|
|
9
|
+
local SoundPreset = ____sound_2Dpreset.SoundPreset
|
|
10
|
+
local ____random = require("engine.random")
|
|
11
|
+
local randomInteger = ____random.randomInteger
|
|
8
12
|
local createSound = CreateSound
|
|
9
13
|
local createSoundFromLabel = CreateSoundFromLabel
|
|
10
14
|
local setSoundPitch = SetSoundPitch
|
|
@@ -49,29 +53,21 @@ ____exports.SoundChannel.Birth = 13
|
|
|
49
53
|
____exports.SoundChannel[____exports.SoundChannel.Birth] = "Birth"
|
|
50
54
|
____exports.SoundChannel.Fire = 14
|
|
51
55
|
____exports.SoundChannel[____exports.SoundChannel.Fire] = "Fire"
|
|
52
|
-
____exports.
|
|
53
|
-
|
|
54
|
-
____exports.SoundEax.Acknowledgements = "HeroAcksEAX"
|
|
55
|
-
____exports.SoundEax.Environment = "DoodadsEAX"
|
|
56
|
-
____exports.SoundEax.Drums = "KotoDrumsEAX"
|
|
57
|
-
____exports.SoundEax.Attacks = "CombatSoundsEAX"
|
|
58
|
-
____exports.SoundEax.Abilities = "SpellsEAX"
|
|
59
|
-
____exports.SoundEax.Missiles = "MissilesEAX"
|
|
60
|
-
____exports.SoundPreset = {}
|
|
61
|
-
local SoundPreset = ____exports.SoundPreset
|
|
56
|
+
____exports.SoundSettings = {}
|
|
57
|
+
local SoundSettings = ____exports.SoundSettings
|
|
62
58
|
do
|
|
63
|
-
|
|
64
|
-
|
|
59
|
+
SoundSettings.UI = {channel = ____exports.SoundChannel.UI, eax = "DefaultEAXON", fadeInRate = 12700, fadeOutRate = 12700}
|
|
60
|
+
SoundSettings.Music = {
|
|
65
61
|
channel = ____exports.SoundChannel.Music,
|
|
66
|
-
eax =
|
|
62
|
+
eax = "DefaultEAXON",
|
|
67
63
|
fadeInRate = 12700,
|
|
68
64
|
fadeOutRate = 12700,
|
|
69
65
|
looping = true
|
|
70
66
|
}
|
|
71
|
-
|
|
72
|
-
|
|
67
|
+
SoundSettings.Attack = {channel = ____exports.SoundChannel.Combat, eax = "CombatSoundsEAX", fadeInRate = 10, fadeOutRate = 10}
|
|
68
|
+
SoundSettings.Ability = {
|
|
73
69
|
channel = ____exports.SoundChannel.Animations,
|
|
74
|
-
eax =
|
|
70
|
+
eax = "SpellsEAX",
|
|
75
71
|
stopWhenOutOfRange = true,
|
|
76
72
|
volume = 127,
|
|
77
73
|
fadeInRate = 1,
|
|
@@ -81,9 +77,9 @@ do
|
|
|
81
77
|
maxDistance = 3500,
|
|
82
78
|
distanceCutoff = 3000
|
|
83
79
|
}
|
|
84
|
-
|
|
80
|
+
SoundSettings.AbilityLooping = {
|
|
85
81
|
channel = ____exports.SoundChannel.Birth,
|
|
86
|
-
eax =
|
|
82
|
+
eax = "SpellsEAX",
|
|
87
83
|
looping = true,
|
|
88
84
|
stopWhenOutOfRange = true,
|
|
89
85
|
volume = 127,
|
|
@@ -94,9 +90,9 @@ do
|
|
|
94
90
|
maxDistance = 3000,
|
|
95
91
|
distanceCutoff = 3000
|
|
96
92
|
}
|
|
97
|
-
|
|
93
|
+
SoundSettings.Missile = {
|
|
98
94
|
channel = ____exports.SoundChannel.Animations,
|
|
99
|
-
eax =
|
|
95
|
+
eax = "MissilesEAX",
|
|
100
96
|
stopWhenOutOfRange = true,
|
|
101
97
|
volume = 127,
|
|
102
98
|
fadeInRate = 1,
|
|
@@ -107,6 +103,29 @@ do
|
|
|
107
103
|
distanceCutoff = 3000
|
|
108
104
|
}
|
|
109
105
|
end
|
|
106
|
+
local customSoundPresetDataByLabel = postcompile(function()
|
|
107
|
+
local customSoundPresetDataByLabel = {}
|
|
108
|
+
for ____, soundPreset in ipairs(SoundPreset:getAll()) do
|
|
109
|
+
if soundPreset.isCustom then
|
|
110
|
+
customSoundPresetDataByLabel[soundPreset.id] = {
|
|
111
|
+
filePaths = soundPreset.filePaths,
|
|
112
|
+
volume = soundPreset.volume,
|
|
113
|
+
pitch = soundPreset.pitch,
|
|
114
|
+
channel = soundPreset.channel,
|
|
115
|
+
minimumDistance = soundPreset.minimumDistance,
|
|
116
|
+
maximumDistance = soundPreset.maximumDistance,
|
|
117
|
+
distanceCutoff = soundPreset.distanceCutoff,
|
|
118
|
+
eax = soundPreset.eax
|
|
119
|
+
}
|
|
120
|
+
end
|
|
121
|
+
end
|
|
122
|
+
return customSoundPresetDataByLabel
|
|
123
|
+
end)
|
|
124
|
+
---
|
|
125
|
+
-- @internal For use by internal systems only.
|
|
126
|
+
____exports.isSoundLabelCustom = function(label)
|
|
127
|
+
return customSoundPresetDataByLabel[label] ~= nil
|
|
128
|
+
end
|
|
110
129
|
local function createPresetSound(fileName, preset)
|
|
111
130
|
local ____fileName_1 = fileName
|
|
112
131
|
local ____preset_looping_0 = preset.looping
|
|
@@ -120,7 +139,7 @@ local function createPresetSound(fileName, preset)
|
|
|
120
139
|
true,
|
|
121
140
|
preset.fadeInRate or 12700,
|
|
122
141
|
preset.fadeOutRate or 12700,
|
|
123
|
-
preset.eax or
|
|
142
|
+
preset.eax or "DefaultEAXON"
|
|
124
143
|
)
|
|
125
144
|
setSoundChannel(sound, preset.channel or ____exports.SoundChannel.General)
|
|
126
145
|
setSoundVolume(sound, preset.volume or 127)
|
|
@@ -143,7 +162,7 @@ local function createPreset3DSound(fileName, preset)
|
|
|
143
162
|
____preset_stopWhenOutOfRange_3,
|
|
144
163
|
preset.fadeInRate or 12700,
|
|
145
164
|
preset.fadeOutRate or 12700,
|
|
146
|
-
preset.eax or
|
|
165
|
+
preset.eax or "DefaultEAXON"
|
|
147
166
|
)
|
|
148
167
|
setSoundChannel(sound, preset.channel or ____exports.SoundChannel.General)
|
|
149
168
|
setSoundVolume(sound, preset.volume or 127)
|
|
@@ -153,29 +172,51 @@ local function createPreset3DSound(fileName, preset)
|
|
|
153
172
|
return sound
|
|
154
173
|
end
|
|
155
174
|
local function createPreset3DSoundFromLabel(label, preset)
|
|
156
|
-
local
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
____preset_looping_5 =
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
____preset_stopWhenOutOfRange_6 =
|
|
175
|
+
local customSoundPresetData = customSoundPresetDataByLabel[label]
|
|
176
|
+
if customSoundPresetData == nil then
|
|
177
|
+
local ____label_7 = label
|
|
178
|
+
local ____preset_looping_5 = preset.looping
|
|
179
|
+
if ____preset_looping_5 == nil then
|
|
180
|
+
____preset_looping_5 = false
|
|
181
|
+
end
|
|
182
|
+
local ____preset_stopWhenOutOfRange_6 = preset.stopWhenOutOfRange
|
|
183
|
+
if ____preset_stopWhenOutOfRange_6 == nil then
|
|
184
|
+
____preset_stopWhenOutOfRange_6 = true
|
|
185
|
+
end
|
|
186
|
+
return createSoundFromLabel(
|
|
187
|
+
____label_7,
|
|
188
|
+
____preset_looping_5,
|
|
189
|
+
true,
|
|
190
|
+
____preset_stopWhenOutOfRange_6,
|
|
191
|
+
preset.fadeInRate or 12700,
|
|
192
|
+
preset.fadeOutRate or 12700
|
|
193
|
+
)
|
|
194
|
+
else
|
|
195
|
+
local ____customSoundPresetData_filePaths_index_10 = customSoundPresetData.filePaths[randomInteger(#customSoundPresetData.filePaths - 1) + 1]
|
|
196
|
+
local ____preset_looping_8 = preset.looping
|
|
197
|
+
if ____preset_looping_8 == nil then
|
|
198
|
+
____preset_looping_8 = false
|
|
199
|
+
end
|
|
200
|
+
local ____preset_stopWhenOutOfRange_9 = preset.stopWhenOutOfRange
|
|
201
|
+
if ____preset_stopWhenOutOfRange_9 == nil then
|
|
202
|
+
____preset_stopWhenOutOfRange_9 = true
|
|
203
|
+
end
|
|
204
|
+
local sound = createSound(
|
|
205
|
+
____customSoundPresetData_filePaths_index_10,
|
|
206
|
+
____preset_looping_8,
|
|
207
|
+
true,
|
|
208
|
+
____preset_stopWhenOutOfRange_9,
|
|
209
|
+
preset.fadeInRate or 12700,
|
|
210
|
+
preset.fadeOutRate or 12700,
|
|
211
|
+
customSoundPresetData.eax
|
|
212
|
+
)
|
|
213
|
+
setSoundChannel(sound, customSoundPresetData.channel)
|
|
214
|
+
setSoundVolume(sound, customSoundPresetData.volume)
|
|
215
|
+
setSoundPitch(sound, customSoundPresetData.pitch)
|
|
216
|
+
setSoundDistances(sound, customSoundPresetData.minimumDistance, customSoundPresetData.maximumDistance)
|
|
217
|
+
setSoundDistanceCutoff(sound, customSoundPresetData.distanceCutoff)
|
|
218
|
+
return sound
|
|
164
219
|
end
|
|
165
|
-
local sound = createSoundFromLabel(
|
|
166
|
-
____label_7,
|
|
167
|
-
____preset_looping_5,
|
|
168
|
-
true,
|
|
169
|
-
____preset_stopWhenOutOfRange_6,
|
|
170
|
-
preset.fadeInRate or 12700,
|
|
171
|
-
preset.fadeOutRate or 12700
|
|
172
|
-
)
|
|
173
|
-
setSoundChannel(sound, preset.channel or ____exports.SoundChannel.General)
|
|
174
|
-
setSoundVolume(sound, preset.volume or 127)
|
|
175
|
-
setSoundPitch(sound, preset.pitch or 1)
|
|
176
|
-
setSoundDistances(sound, preset.minDistance or 600, preset.maxDistance or 8000)
|
|
177
|
-
setSoundDistanceCutoff(sound, preset.distanceCutoff or 1500)
|
|
178
|
-
return sound
|
|
179
220
|
end
|
|
180
221
|
____exports.Sound = __TS__Class()
|
|
181
222
|
local Sound = ____exports.Sound
|
package/core/types/tileCell.d.ts
CHANGED
|
@@ -1,10 +1,20 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
|
-
|
|
2
|
+
import { AttributesHolder } from "../../attributes";
|
|
3
|
+
export declare class TileCell extends AttributesHolder implements Readonly<Vec2> {
|
|
3
4
|
private readonly id;
|
|
4
5
|
readonly x: number;
|
|
5
6
|
readonly y: number;
|
|
6
7
|
readonly z: undefined;
|
|
7
8
|
protected constructor(id: number, x: number, y: number, z: undefined);
|
|
9
|
+
get up(): TileCell;
|
|
10
|
+
get down(): TileCell;
|
|
11
|
+
get left(): TileCell;
|
|
12
|
+
get right(): TileCell;
|
|
13
|
+
get terrainTypeId(): number;
|
|
14
|
+
set terrainTypeId(terrainTypeId: number);
|
|
15
|
+
get terrainVariance(): number;
|
|
16
|
+
set terrainVariance(terrainVariance: number);
|
|
17
|
+
randomizeTerrainVariance(): void;
|
|
8
18
|
isInRangeOf(x: number, y: number, range: number): boolean;
|
|
9
19
|
isInRangeOf(tileCell: TileCell, range: number): boolean;
|
|
10
20
|
static getInRect(minX: number, minY: number, maxX: number, maxY: number): TileCell[];
|
package/core/types/tileCell.lua
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
local ____lualib = require("lualib_bundle")
|
|
2
2
|
local __TS__Class = ____lualib.__TS__Class
|
|
3
|
+
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
3
4
|
local __TS__New = ____lualib.__TS__New
|
|
5
|
+
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
4
6
|
local ____exports = {}
|
|
7
|
+
local ____attributes = require("attributes")
|
|
8
|
+
local AttributesHolder = ____attributes.AttributesHolder
|
|
9
|
+
local getTerrainType = GetTerrainType
|
|
10
|
+
local setTerrainType = SetTerrainType
|
|
11
|
+
local getTerrainVariance = GetTerrainVariance
|
|
5
12
|
local abs = math.abs
|
|
6
13
|
local ____type = math.type
|
|
7
14
|
local ult = math.ult
|
|
@@ -9,13 +16,27 @@ local tileCellById = {}
|
|
|
9
16
|
____exports.TileCell = __TS__Class()
|
|
10
17
|
local TileCell = ____exports.TileCell
|
|
11
18
|
TileCell.name = "TileCell"
|
|
19
|
+
__TS__ClassExtends(TileCell, AttributesHolder)
|
|
12
20
|
function TileCell.prototype.____constructor(self, id, x, y, z)
|
|
21
|
+
AttributesHolder.prototype.____constructor(self)
|
|
13
22
|
self.id = id
|
|
14
23
|
self.x = x
|
|
15
24
|
self.y = y
|
|
16
25
|
self.z = z
|
|
17
26
|
tileCellById[id] = self
|
|
18
27
|
end
|
|
28
|
+
function TileCell.prototype.randomizeTerrainVariance(self)
|
|
29
|
+
local x = self.x
|
|
30
|
+
local y = self.y
|
|
31
|
+
setTerrainType(
|
|
32
|
+
x,
|
|
33
|
+
y,
|
|
34
|
+
getTerrainType(x, y),
|
|
35
|
+
-1,
|
|
36
|
+
1,
|
|
37
|
+
1
|
|
38
|
+
)
|
|
39
|
+
end
|
|
19
40
|
function TileCell.prototype.isInRangeOf(self, x, y, range)
|
|
20
41
|
if range == nil then
|
|
21
42
|
range = y
|
|
@@ -97,4 +118,80 @@ function TileCell.of(x, y)
|
|
|
97
118
|
nil
|
|
98
119
|
)
|
|
99
120
|
end
|
|
121
|
+
__TS__SetDescriptor(
|
|
122
|
+
TileCell.prototype,
|
|
123
|
+
"up",
|
|
124
|
+
{get = function(self)
|
|
125
|
+
return ____exports.TileCell.of(self.x, self.y + 128)
|
|
126
|
+
end},
|
|
127
|
+
true
|
|
128
|
+
)
|
|
129
|
+
__TS__SetDescriptor(
|
|
130
|
+
TileCell.prototype,
|
|
131
|
+
"down",
|
|
132
|
+
{get = function(self)
|
|
133
|
+
return ____exports.TileCell.of(self.x, self.y - 128)
|
|
134
|
+
end},
|
|
135
|
+
true
|
|
136
|
+
)
|
|
137
|
+
__TS__SetDescriptor(
|
|
138
|
+
TileCell.prototype,
|
|
139
|
+
"left",
|
|
140
|
+
{get = function(self)
|
|
141
|
+
return ____exports.TileCell.of(self.x - 128, self.y)
|
|
142
|
+
end},
|
|
143
|
+
true
|
|
144
|
+
)
|
|
145
|
+
__TS__SetDescriptor(
|
|
146
|
+
TileCell.prototype,
|
|
147
|
+
"right",
|
|
148
|
+
{get = function(self)
|
|
149
|
+
return ____exports.TileCell.of(self.x + 128, self.y)
|
|
150
|
+
end},
|
|
151
|
+
true
|
|
152
|
+
)
|
|
153
|
+
__TS__SetDescriptor(
|
|
154
|
+
TileCell.prototype,
|
|
155
|
+
"terrainTypeId",
|
|
156
|
+
{
|
|
157
|
+
get = function(self)
|
|
158
|
+
return getTerrainType(self.x, self.y)
|
|
159
|
+
end,
|
|
160
|
+
set = function(self, terrainTypeId)
|
|
161
|
+
local x = self.x
|
|
162
|
+
local y = self.y
|
|
163
|
+
setTerrainType(
|
|
164
|
+
x,
|
|
165
|
+
y,
|
|
166
|
+
terrainTypeId,
|
|
167
|
+
getTerrainVariance(x, y),
|
|
168
|
+
1,
|
|
169
|
+
1
|
|
170
|
+
)
|
|
171
|
+
end
|
|
172
|
+
},
|
|
173
|
+
true
|
|
174
|
+
)
|
|
175
|
+
__TS__SetDescriptor(
|
|
176
|
+
TileCell.prototype,
|
|
177
|
+
"terrainVariance",
|
|
178
|
+
{
|
|
179
|
+
get = function(self)
|
|
180
|
+
return getTerrainVariance(self.x, self.y)
|
|
181
|
+
end,
|
|
182
|
+
set = function(self, terrainVariance)
|
|
183
|
+
local x = self.x
|
|
184
|
+
local y = self.y
|
|
185
|
+
setTerrainType(
|
|
186
|
+
x,
|
|
187
|
+
y,
|
|
188
|
+
getTerrainType(x, y),
|
|
189
|
+
terrainVariance,
|
|
190
|
+
1,
|
|
191
|
+
1
|
|
192
|
+
)
|
|
193
|
+
end
|
|
194
|
+
},
|
|
195
|
+
true
|
|
196
|
+
)
|
|
100
197
|
return ____exports
|
package/core/types/timer.d.ts
CHANGED
|
@@ -1,29 +1,30 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
2
|
import { Event } from "../../event";
|
|
3
|
+
import { AbstractDestroyable, Destructor } from "../../destroyable";
|
|
4
|
+
import { CallbackId } from "../../utility/callback-array";
|
|
3
5
|
declare const enum TimerPropertyKey {
|
|
4
6
|
HANDLE = 0,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
ARGS_LENGTH = 4
|
|
7
|
+
DESTROY_ON_EXPIRATION = 1,
|
|
8
|
+
CALLBACK = 2,
|
|
9
|
+
ARGS_LENGTH = 3
|
|
9
10
|
}
|
|
10
|
-
export declare class Timer
|
|
11
|
+
export declare class Timer extends AbstractDestroyable {
|
|
11
12
|
private readonly [TimerPropertyKey.HANDLE];
|
|
12
|
-
private [TimerPropertyKey.DESTROYED]?;
|
|
13
13
|
private [TimerPropertyKey.DESTROY_ON_EXPIRATION]?;
|
|
14
14
|
private [TimerPropertyKey.CALLBACK]?;
|
|
15
15
|
private [TimerPropertyKey.ARGS_LENGTH]?;
|
|
16
16
|
private constructor();
|
|
17
17
|
get handle(): jtimer;
|
|
18
18
|
start<Args extends any[]>(timeout: number, periodic: boolean, callback: (...args: Args) => void, ...args: Args): void;
|
|
19
|
+
onDestroy(): Destructor;
|
|
19
20
|
get elapsed(): number;
|
|
20
21
|
get remaining(): number;
|
|
21
22
|
get timeout(): number;
|
|
22
23
|
pause(): void;
|
|
23
24
|
resume(): void;
|
|
24
|
-
destroy(): void;
|
|
25
25
|
static create(): Timer;
|
|
26
|
-
static run<
|
|
26
|
+
static run<T, K extends KeysOfType<T, (this: T, ...args: any) => any>>(object: T, key: K, ...parameters: T[K] extends (this: T, ...args: any) => any ? Parameters<T[K]> : never): CallbackId;
|
|
27
|
+
static run<Args extends any[]>(callback: (this: void, ...args: Args) => void, ...args: Args): CallbackId;
|
|
27
28
|
static simple<Args extends any[]>(timeout: number, callback: (...args: Args) => void, ...args: Args): Timer;
|
|
28
29
|
static periodic<Args extends any[]>(period: number, callback: (this: void, timer: Timer, ...args: Args) => void, ...args: Args): Timer;
|
|
29
30
|
static counted(period: number, count: number, callback: (this: void, timer: Timer) => void): Timer;
|
package/core/types/timer.lua
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
local ____lualib = require("lualib_bundle")
|
|
2
2
|
local __TS__New = ____lualib.__TS__New
|
|
3
3
|
local __TS__Class = ____lualib.__TS__Class
|
|
4
|
+
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
4
5
|
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
5
6
|
local __TS__Promise = ____lualib.__TS__Promise
|
|
6
7
|
local ____exports = {}
|
|
@@ -9,8 +10,13 @@ local Event = ____event.Event
|
|
|
9
10
|
local InitializingEvent = ____event.InitializingEvent
|
|
10
11
|
local ____objectPool = require("util.objectPool")
|
|
11
12
|
local ObjectPool = ____objectPool.ObjectPool
|
|
12
|
-
local
|
|
13
|
-
local
|
|
13
|
+
local ____destroyable = require("destroyable")
|
|
14
|
+
local AbstractDestroyable = ____destroyable.AbstractDestroyable
|
|
15
|
+
local ____callback_2Darray = require("utility.callback-array")
|
|
16
|
+
local addCallback = ____callback_2Darray.addCallback
|
|
17
|
+
local callbackArray = ____callback_2Darray.callbackArray
|
|
18
|
+
local consumeCallback = ____callback_2Darray.consumeCallback
|
|
19
|
+
local consumeCallbacks = ____callback_2Darray.consumeCallbacks
|
|
14
20
|
local createTimer = CreateTimer
|
|
15
21
|
local timerStart = TimerStart
|
|
16
22
|
local pauseTimer = PauseTimer
|
|
@@ -23,6 +29,7 @@ local getHandleId = GetHandleId
|
|
|
23
29
|
local ____pcall = _G.pcall
|
|
24
30
|
local ____print = _G.print
|
|
25
31
|
local select = _G.select
|
|
32
|
+
local ____type = _G.type
|
|
26
33
|
local safeCall = warpack.safeCall
|
|
27
34
|
local corunning = coroutine.running
|
|
28
35
|
local coresume = coroutine.resume
|
|
@@ -35,61 +42,76 @@ local timerByHandleId = {}
|
|
|
35
42
|
local function timerSafeCall()
|
|
36
43
|
local timer = timerByHandleId[getHandleId(getExpiredTimer())]
|
|
37
44
|
if timer ~= nil then
|
|
38
|
-
if timer[
|
|
45
|
+
if timer[1] then
|
|
39
46
|
timer:destroy()
|
|
40
47
|
end
|
|
41
|
-
local callback = timer[
|
|
48
|
+
local callback = timer[2]
|
|
42
49
|
if callback ~= nil then
|
|
43
50
|
safeCall(
|
|
44
51
|
callback,
|
|
45
|
-
____unpack(timer,
|
|
52
|
+
____unpack(timer, 3 + 1, 3 + (timer[3] or 0))
|
|
46
53
|
)
|
|
47
54
|
end
|
|
48
55
|
end
|
|
49
56
|
end
|
|
57
|
+
local zeroTimerScheduled = false
|
|
58
|
+
local zeroTimerCallbacks = callbackArray()
|
|
59
|
+
---
|
|
60
|
+
-- @internal For use by internal systems only.
|
|
61
|
+
____exports.consumeZeroTimerCallback = function(id)
|
|
62
|
+
consumeCallback(zeroTimerCallbacks, id)
|
|
63
|
+
end
|
|
64
|
+
local function invokeZeroTimerCallbacks()
|
|
65
|
+
zeroTimerScheduled = false
|
|
66
|
+
consumeCallbacks(zeroTimerCallbacks)
|
|
67
|
+
end
|
|
50
68
|
____exports.Timer = __TS__Class()
|
|
51
69
|
local Timer = ____exports.Timer
|
|
52
70
|
Timer.name = "Timer"
|
|
71
|
+
__TS__ClassExtends(Timer, AbstractDestroyable)
|
|
53
72
|
function Timer.prototype.____constructor(self)
|
|
73
|
+
AbstractDestroyable.prototype.____constructor(self)
|
|
54
74
|
self[0] = get()
|
|
55
75
|
timerByHandleId[getHandleId(self[0])] = self
|
|
56
76
|
end
|
|
57
77
|
function Timer.prototype.start(self, timeout, periodic, callback, ...)
|
|
58
|
-
self[
|
|
78
|
+
self[2] = callback
|
|
59
79
|
local argsLength = select("#", ...)
|
|
60
|
-
self[
|
|
80
|
+
self[3] = argsLength
|
|
61
81
|
for i = 1, argsLength do
|
|
62
|
-
self[
|
|
82
|
+
self[3 + i] = (select(i, ...))
|
|
63
83
|
end
|
|
64
84
|
timerStart(self.handle, timeout, periodic, timerSafeCall)
|
|
65
85
|
end
|
|
86
|
+
function Timer.prototype.onDestroy(self)
|
|
87
|
+
local handle = self[0]
|
|
88
|
+
timerByHandleId[getHandleId(handle)] = nil
|
|
89
|
+
release(handle)
|
|
90
|
+
return AbstractDestroyable.prototype.onDestroy(self)
|
|
91
|
+
end
|
|
66
92
|
function Timer.prototype.pause(self)
|
|
67
93
|
pauseTimer(self[0])
|
|
68
94
|
end
|
|
69
95
|
function Timer.prototype.resume(self)
|
|
70
96
|
resumeTimer(self[0])
|
|
71
97
|
end
|
|
72
|
-
function Timer.prototype.destroy(self)
|
|
73
|
-
if self[1] then
|
|
74
|
-
error(
|
|
75
|
-
__TS__New(IllegalStateException, "Double-destroy run for timer"),
|
|
76
|
-
0
|
|
77
|
-
)
|
|
78
|
-
end
|
|
79
|
-
local handle = self[0]
|
|
80
|
-
timerByHandleId[getHandleId(handle)] = nil
|
|
81
|
-
release(handle)
|
|
82
|
-
self[1] = true
|
|
83
|
-
end
|
|
84
98
|
function Timer.create(self)
|
|
85
99
|
return __TS__New(____exports.Timer)
|
|
86
100
|
end
|
|
87
|
-
function Timer.run(self,
|
|
88
|
-
|
|
101
|
+
function Timer.run(self, objectOrCallback, keyOrFirstArg, ...)
|
|
102
|
+
if not zeroTimerScheduled then
|
|
103
|
+
zeroTimerScheduled = true
|
|
104
|
+
____exports.Timer:simple(0, invokeZeroTimerCallbacks)
|
|
105
|
+
end
|
|
106
|
+
if ____type(objectOrCallback) == "function" then
|
|
107
|
+
return addCallback(zeroTimerCallbacks, objectOrCallback, keyOrFirstArg, ...)
|
|
108
|
+
else
|
|
109
|
+
return addCallback(zeroTimerCallbacks, objectOrCallback[keyOrFirstArg], objectOrCallback, ...)
|
|
110
|
+
end
|
|
89
111
|
end
|
|
90
112
|
function Timer.simple(self, timeout, callback, ...)
|
|
91
113
|
local timer = __TS__New(____exports.Timer)
|
|
92
|
-
timer[
|
|
114
|
+
timer[1] = true
|
|
93
115
|
timer:start(timeout, false, callback, ...)
|
|
94
116
|
return timer
|
|
95
117
|
end
|