warscript 0.0.1-dev.0e6c999 → 0.0.1-dev.0efff64
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/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 +6 -0
- package/core/types/frame.lua +162 -23
- package/core/types/item.d.ts +1 -0
- package/core/types/item.lua +1 -0
- 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 +100 -25
- 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/util.d.ts +1 -1
- package/core/util.lua +18 -1
- package/decl/native.d.ts +846 -790
- package/destroyable.d.ts +1 -0
- package/destroyable.lua +9 -0
- package/engine/behavior.d.ts +16 -3
- 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.lua +1 -0
- package/engine/behaviour/ability/damage.d.ts +12 -3
- package/engine/behaviour/ability/damage.lua +33 -39
- package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
- package/engine/behaviour/ability/emulate-impact.lua +44 -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 +25 -0
- package/engine/behaviour/ability/remove-buffs.lua +49 -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 +28 -7
- package/engine/behaviour/ability.lua +137 -43
- 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 +45 -2
- package/engine/behaviour/unit.lua +289 -6
- package/engine/buff.d.ts +141 -55
- package/engine/buff.lua +638 -290
- package/engine/internal/ability.d.ts +23 -14
- package/engine/internal/ability.lua +128 -85
- package/engine/internal/item/ability.lua +162 -4
- package/engine/internal/item/fields.d.ts +12 -0
- package/engine/internal/item/fields.lua +33 -0
- package/engine/internal/item+owner.lua +12 -6
- package/engine/internal/item.d.ts +16 -19
- package/engine/internal/item.lua +174 -94
- 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.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/armor-bonus.d.ts +2 -0
- package/engine/internal/object-data/attribute-bonus.lua +2 -2
- 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/health-bonus.d.ts +2 -0
- package/engine/internal/object-data/health-bonus.lua +16 -0
- package/engine/internal/object-data/mana-bonus.d.ts +2 -0
- package/engine/internal/object-data/mana-bonus.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 +12 -2
- package/engine/internal/unit/bonus.lua +56 -4
- 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/range-event.d.ts +12 -0
- package/engine/internal/unit/range-event.lua +90 -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+bonus.lua +3 -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-missile-launch.lua +70 -13
- package/engine/internal/unit.d.ts +64 -30
- package/engine/internal/unit.lua +490 -285
- 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 +14 -2
- package/engine/local-client.lua +168 -1
- 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 -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/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/{armor-increase.d.ts → armor-bonus.d.ts} +3 -3
- package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
- 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/health-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
- package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -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/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/reincarnation.d.ts +8 -0
- package/engine/object-data/entry/ability-type/reincarnation.lua +26 -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 +21 -17
- package/engine/object-data/entry/ability-type.lua +177 -40
- package/engine/object-data/entry/buff-type/applicable.lua +122 -137
- 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 +28 -2
- package/engine/object-data/entry/destructible-type.lua +155 -0
- 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 +25 -5
- package/engine/object-data/entry/unit-type.lua +258 -93
- 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 +28 -5
- package/engine/object-field/ability.lua +61 -7
- package/engine/object-field/item.d.ts +22 -0
- package/engine/object-field/item.lua +118 -0
- package/engine/object-field/unit.d.ts +72 -3
- package/engine/object-field/unit.lua +268 -7
- package/engine/object-field.d.ts +26 -7
- package/engine/object-field.lua +362 -117
- package/engine/random.d.ts +10 -0
- package/engine/random.lua +21 -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/item.d.ts +4 -0
- package/engine/standard/fields/item.lua +6 -0
- 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 +9 -0
- package/engine/unit.lua +9 -0
- package/index.d.ts +1 -0
- package/index.lua +1 -0
- package/lualib_bundle.lua +1 -1
- package/math.d.ts +2 -0
- package/math.lua +14 -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 +12 -11
- package/objutil/object.lua +1 -1
- package/objutil/unit.lua +8 -0
- package/operation.lua +1 -4
- package/package.json +5 -5
- package/patch-lua.d.ts +0 -0
- package/patch-lua.lua +25 -0
- package/patch-lualib.lua +1 -1
- package/utility/arrays.d.ts +10 -1
- package/utility/arrays.lua +45 -3
- 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 +35 -0
- package/utility/linked-map.lua +107 -0
- package/utility/linked-set.d.ts +16 -3
- package/utility/linked-set.lua +54 -3
- 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/reflection.lua +11 -7
- package/utility/types.d.ts +4 -0
- package/utility/unordered-map.d.ts +27 -0
- package/utility/unordered-map.lua +99 -0
- package/core/types/order.d.ts +0 -25
- package/core/types/order.lua +0 -55
- /package/engine/internal/{object-data/armor-increase.d.ts → misc/ability-disable-counter.d.ts} +0 -0
- /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
package/attributes.d.ts
CHANGED
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
|
+
declare const marker: {};
|
|
2
3
|
export type Attribute<T> = {
|
|
3
4
|
readonly __attribute: unique symbol;
|
|
4
5
|
readonly __type: T;
|
|
6
|
+
readonly __marker: typeof marker;
|
|
5
7
|
} & symbol;
|
|
8
|
+
export declare const attribute: <T>() => Attribute<T>;
|
|
9
|
+
export declare const isAttribute: (value: unknown) => value is Attribute<unknown>;
|
|
6
10
|
export declare namespace Attribute {
|
|
7
11
|
const create: <T>() => Attribute<T>;
|
|
8
12
|
}
|
|
9
13
|
export declare class AttributesHolder {
|
|
10
14
|
readonly get: (<T>(attribute: Attribute<T>) => T | undefined) & LuaExtension<"TableGetMethod">;
|
|
11
15
|
readonly set: (<T>(attribute: Attribute<T>, value: T | undefined) => void) & LuaExtension<"TableSetMethod">;
|
|
16
|
+
getOrPut<T>(attribute: Attribute<T>, defaultValue: () => T): T;
|
|
12
17
|
}
|
|
18
|
+
export {};
|
package/attributes.lua
CHANGED
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
local ____lualib = require("lualib_bundle")
|
|
2
2
|
local __TS__Class = ____lualib.__TS__Class
|
|
3
3
|
local ____exports = {}
|
|
4
|
+
local marker = {}
|
|
5
|
+
____exports.attribute = function()
|
|
6
|
+
return {__marker = marker}
|
|
7
|
+
end
|
|
8
|
+
____exports.isAttribute = function(value)
|
|
9
|
+
return type(value) == "table" and rawget(value, "__marker") == marker
|
|
10
|
+
end
|
|
4
11
|
____exports.Attribute = {}
|
|
5
12
|
local Attribute = ____exports.Attribute
|
|
6
13
|
do
|
|
7
14
|
Attribute.create = function()
|
|
8
|
-
return {}
|
|
15
|
+
return {__marker = marker}
|
|
9
16
|
end
|
|
10
17
|
end
|
|
11
18
|
____exports.AttributesHolder = __TS__Class()
|
|
@@ -13,4 +20,13 @@ local AttributesHolder = ____exports.AttributesHolder
|
|
|
13
20
|
AttributesHolder.name = "AttributesHolder"
|
|
14
21
|
function AttributesHolder.prototype.____constructor(self)
|
|
15
22
|
end
|
|
23
|
+
function AttributesHolder.prototype.getOrPut(self, attribute, defaultValue)
|
|
24
|
+
local value = self[attribute]
|
|
25
|
+
if value ~= nil then
|
|
26
|
+
return value
|
|
27
|
+
end
|
|
28
|
+
value = defaultValue()
|
|
29
|
+
self[attribute] = value
|
|
30
|
+
return value
|
|
31
|
+
end
|
|
16
32
|
return ____exports
|
package/config.d.ts
ADDED
package/config.lua
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
local ____lualib = require("lualib_bundle")
|
|
2
|
+
local __TS__Class = ____lualib.__TS__Class
|
|
3
|
+
local ____exports = {}
|
|
4
|
+
____exports.WarscriptConfig = __TS__Class()
|
|
5
|
+
local WarscriptConfig = ____exports.WarscriptConfig
|
|
6
|
+
WarscriptConfig.name = "WarscriptConfig"
|
|
7
|
+
function WarscriptConfig.prototype.____constructor(self)
|
|
8
|
+
end
|
|
9
|
+
WarscriptConfig.AUTOMATICALLY_SET_UNIT_TYPE_PORTRAIT_MODEL_PATH = true
|
|
10
|
+
return ____exports
|
package/core/types/effect.d.ts
CHANGED
|
@@ -4,15 +4,23 @@ import { Widget } from "./widget";
|
|
|
4
4
|
import { PlayerColor } from "./playerColor";
|
|
5
5
|
declare const enum EffectPropertyKey {
|
|
6
6
|
COLOR = 100,
|
|
7
|
-
PITCH = 101
|
|
7
|
+
PITCH = 101,
|
|
8
|
+
ROLL = 102
|
|
8
9
|
}
|
|
9
10
|
export type EffectParameters = {
|
|
11
|
+
readonly delay?: number;
|
|
10
12
|
readonly scale?: number;
|
|
11
13
|
readonly color?: PlayerColor;
|
|
14
|
+
readonly pitch?: number;
|
|
15
|
+
readonly roll?: number;
|
|
16
|
+
readonly detached?: boolean;
|
|
17
|
+
readonly zOffset?: number;
|
|
18
|
+
readonly scaleZOffset?: boolean;
|
|
12
19
|
};
|
|
13
20
|
export declare class Effect extends Handle<jeffect> {
|
|
14
21
|
private [EffectPropertyKey.COLOR]?;
|
|
15
22
|
private [EffectPropertyKey.PITCH]?;
|
|
23
|
+
private [EffectPropertyKey.ROLL]?;
|
|
16
24
|
protected onDestroy(): HandleDestructor;
|
|
17
25
|
get color(): PlayerColor;
|
|
18
26
|
set color(color: PlayerColor);
|
|
@@ -20,12 +28,12 @@ export declare class Effect extends Handle<jeffect> {
|
|
|
20
28
|
set scale(scale: number);
|
|
21
29
|
get pitch(): number;
|
|
22
30
|
set pitch(pitch: number);
|
|
23
|
-
|
|
24
|
-
|
|
31
|
+
get roll(): number;
|
|
32
|
+
set roll(roll: number);
|
|
33
|
+
static create<T extends Effect>(this: typeof Effect & (new (handle: jeffect) => T), modelPath: string, xOrWidget: number | Widget, yOrAttachmentPoint?: number | string, parameters?: EffectParameters): T;
|
|
25
34
|
static flash(modelPath: string, ...args: [
|
|
26
|
-
...pointOrWidget: [x: number, y: number] | [widget: Widget, attachmentPoint
|
|
27
|
-
...parametersOrDuration: [
|
|
35
|
+
...pointOrWidget: [x: number, y: number] | [widget: Widget, attachmentPoint?: string],
|
|
36
|
+
...parametersOrDuration: [parametersOrDuration?: EffectParameters | number] | [duration?: number, parameters?: EffectParameters]
|
|
28
37
|
]): void;
|
|
29
|
-
static flashTarget(model: string, target: Widget, attachPoint: string, duration?: number): void;
|
|
30
38
|
}
|
|
31
39
|
export {};
|
package/core/types/effect.lua
CHANGED
|
@@ -2,8 +2,9 @@ local ____lualib = require("lualib_bundle")
|
|
|
2
2
|
local __TS__Class = ____lualib.__TS__Class
|
|
3
3
|
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
4
4
|
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
5
|
+
local __TS__InstanceOf = ____lualib.__TS__InstanceOf
|
|
5
6
|
local ____exports = {}
|
|
6
|
-
local dummyPlayer
|
|
7
|
+
local dummyPlayer, addSpecialEffectInternal, flash
|
|
7
8
|
local ____handle = require("core.types.handle")
|
|
8
9
|
local Handle = ____handle.Handle
|
|
9
10
|
local ____playerColor = require("core.types.playerColor")
|
|
@@ -12,6 +13,8 @@ local ____player = require("core.types.player")
|
|
|
12
13
|
local Player = ____player.Player
|
|
13
14
|
local ____timer = require("core.types.timer")
|
|
14
15
|
local Timer = ____timer.Timer
|
|
16
|
+
local ____unit = require("engine.internal.unit")
|
|
17
|
+
local Unit = ____unit.Unit
|
|
15
18
|
local ____pairs = _G.pairs
|
|
16
19
|
local select = _G.select
|
|
17
20
|
local mathRad = math.rad
|
|
@@ -22,10 +25,28 @@ local getSpecialEffectScale = BlzGetSpecialEffectScale
|
|
|
22
25
|
local playSpecialEffect = BlzPlaySpecialEffect
|
|
23
26
|
local setSpecialEffectScale = BlzSetSpecialEffectScale
|
|
24
27
|
local setSpecialEffectPitch = BlzSetSpecialEffectPitch
|
|
28
|
+
local setSpecialEffectRoll = BlzSetSpecialEffectRoll
|
|
25
29
|
local setSpecialEffectColorByPlayer = BlzSetSpecialEffectColorByPlayer
|
|
26
30
|
local specialEffectAddSubAnimation = BlzSpecialEffectAddSubAnimation
|
|
27
31
|
local specialEffectClearSubAnimations = BlzSpecialEffectClearSubAnimations
|
|
28
32
|
local specialEffectRemoveSubAnimation = BlzSpecialEffectRemoveSubAnimation
|
|
33
|
+
local setSpecialEffectZ = BlzSetSpecialEffectZ
|
|
34
|
+
local getLocationZ = GetLocationZ
|
|
35
|
+
local getUnitZ = BlzGetUnitZ
|
|
36
|
+
local moveLocation = MoveLocation
|
|
37
|
+
local location = Location(0, 0)
|
|
38
|
+
local function setSpecialEffectPitchDegrees(effect, pitch)
|
|
39
|
+
setSpecialEffectPitch(
|
|
40
|
+
effect,
|
|
41
|
+
-mathRad(pitch)
|
|
42
|
+
)
|
|
43
|
+
end
|
|
44
|
+
local function setSpecialEffectRollDegrees(effect, roll)
|
|
45
|
+
setSpecialEffectRoll(
|
|
46
|
+
effect,
|
|
47
|
+
-mathRad(roll)
|
|
48
|
+
)
|
|
49
|
+
end
|
|
29
50
|
local animTypeByAnimationName = {
|
|
30
51
|
attack = ANIM_TYPE_ATTACK,
|
|
31
52
|
birth = ANIM_TYPE_BIRTH,
|
|
@@ -97,11 +118,19 @@ local function setSpecialEffectColor(effect, color)
|
|
|
97
118
|
setSpecialEffectColorByPlayer(effect, dummyPlayer.handle)
|
|
98
119
|
dummyPlayer.color = dummyColor
|
|
99
120
|
end
|
|
100
|
-
local setters = {scale = setSpecialEffectScale, color = setSpecialEffectColor}
|
|
121
|
+
local setters = {scale = setSpecialEffectScale, color = setSpecialEffectColor, pitch = setSpecialEffectPitchDegrees, roll = setSpecialEffectRollDegrees}
|
|
122
|
+
local setterProperties = {"scale", "color", "pitch", "roll"}
|
|
101
123
|
dummyPlayer = Player.neutralExtra
|
|
102
124
|
local temporaryEffects = {}
|
|
103
125
|
local temporaryEffectsDurations = {}
|
|
104
126
|
local temporaryEffectsCount = 0
|
|
127
|
+
local delayedEffectsModelPath = {}
|
|
128
|
+
local delayedEffectsXOrWidget = {}
|
|
129
|
+
local delayedEffectsYOrAttachmentPoint = {}
|
|
130
|
+
local delayedEffectsDuration = {}
|
|
131
|
+
local delayedEffectsParameters = {}
|
|
132
|
+
local delayedEffectsDelay = {}
|
|
133
|
+
local delayedEffectsCount = 0
|
|
105
134
|
local period = 1 / 32
|
|
106
135
|
Timer.onPeriod[period]:addListener(function()
|
|
107
136
|
local i = 1
|
|
@@ -110,12 +139,36 @@ Timer.onPeriod[period]:addListener(function()
|
|
|
110
139
|
if duration <= 0 then
|
|
111
140
|
destroyEffect(temporaryEffects[i])
|
|
112
141
|
temporaryEffects[i] = temporaryEffects[temporaryEffectsCount]
|
|
142
|
+
temporaryEffectsDurations[i] = temporaryEffectsDurations[temporaryEffectsCount]
|
|
113
143
|
temporaryEffectsCount = temporaryEffectsCount - 1
|
|
114
144
|
else
|
|
115
145
|
temporaryEffectsDurations[i] = duration - period
|
|
116
146
|
i = i + 1
|
|
117
147
|
end
|
|
118
148
|
end
|
|
149
|
+
i = 1
|
|
150
|
+
while i <= delayedEffectsCount do
|
|
151
|
+
local delay = delayedEffectsDelay[i]
|
|
152
|
+
if delay <= 0 then
|
|
153
|
+
flash(
|
|
154
|
+
delayedEffectsModelPath[i],
|
|
155
|
+
delayedEffectsXOrWidget[i],
|
|
156
|
+
delayedEffectsYOrAttachmentPoint[i],
|
|
157
|
+
delayedEffectsDuration[i],
|
|
158
|
+
delayedEffectsParameters[i]
|
|
159
|
+
)
|
|
160
|
+
delayedEffectsModelPath[i] = delayedEffectsModelPath[delayedEffectsCount]
|
|
161
|
+
delayedEffectsXOrWidget[i] = delayedEffectsXOrWidget[delayedEffectsCount]
|
|
162
|
+
delayedEffectsYOrAttachmentPoint[i] = delayedEffectsYOrAttachmentPoint[delayedEffectsCount]
|
|
163
|
+
delayedEffectsDuration[i] = delayedEffectsDuration[delayedEffectsCount]
|
|
164
|
+
delayedEffectsParameters[i] = delayedEffectsParameters[delayedEffectsCount]
|
|
165
|
+
delayedEffectsDelay[i] = delayedEffectsDelay[delayedEffectsCount]
|
|
166
|
+
delayedEffectsCount = delayedEffectsCount - 1
|
|
167
|
+
else
|
|
168
|
+
delayedEffectsDelay[i] = delay - period
|
|
169
|
+
i = i + 1
|
|
170
|
+
end
|
|
171
|
+
end
|
|
119
172
|
end)
|
|
120
173
|
____exports.Effect = __TS__Class()
|
|
121
174
|
local Effect = ____exports.Effect
|
|
@@ -125,49 +178,44 @@ function Effect.prototype.onDestroy(self)
|
|
|
125
178
|
destroyEffect(self.handle)
|
|
126
179
|
return Handle.prototype.onDestroy(self)
|
|
127
180
|
end
|
|
128
|
-
function Effect.create(self,
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
181
|
+
function Effect.create(self, modelPath, xOrWidget, yOrAttachmentPoint, parameters)
|
|
182
|
+
local effect = self:of(addSpecialEffectInternal(modelPath, xOrWidget, yOrAttachmentPoint, parameters))
|
|
183
|
+
if parameters ~= nil then
|
|
184
|
+
effect[100] = parameters.color
|
|
185
|
+
effect[101] = parameters.pitch
|
|
186
|
+
effect[102] = parameters.roll
|
|
187
|
+
end
|
|
188
|
+
return effect
|
|
133
189
|
end
|
|
134
190
|
function Effect.flash(self, modelPath, xOrWidget, yOrOrAttachmentPoint, parametersOrDuration, parameters)
|
|
135
191
|
if type(parametersOrDuration) ~= "number" then
|
|
136
192
|
parameters = parametersOrDuration
|
|
137
193
|
parametersOrDuration = nil
|
|
138
194
|
end
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
temporaryEffects[temporaryEffectsCount] = effect
|
|
148
|
-
temporaryEffectsDurations[temporaryEffectsCount] = parametersOrDuration
|
|
195
|
+
if parameters and (parameters.delay or 0) > 0 then
|
|
196
|
+
delayedEffectsCount = delayedEffectsCount + 1
|
|
197
|
+
delayedEffectsModelPath[delayedEffectsCount] = modelPath
|
|
198
|
+
delayedEffectsXOrWidget[delayedEffectsCount] = xOrWidget
|
|
199
|
+
delayedEffectsYOrAttachmentPoint[delayedEffectsCount] = yOrOrAttachmentPoint
|
|
200
|
+
delayedEffectsDuration[delayedEffectsCount] = parametersOrDuration
|
|
201
|
+
delayedEffectsParameters[delayedEffectsCount] = parameters
|
|
202
|
+
delayedEffectsDelay[delayedEffectsCount] = parameters.delay
|
|
149
203
|
return
|
|
150
204
|
end
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
temporaryEffects[temporaryEffectsCount] = effect
|
|
159
|
-
temporaryEffectsDurations[temporaryEffectsCount] = duration
|
|
160
|
-
else
|
|
161
|
-
destroyEffect(effect)
|
|
162
|
-
end
|
|
163
|
-
end
|
|
205
|
+
flash(
|
|
206
|
+
modelPath,
|
|
207
|
+
xOrWidget,
|
|
208
|
+
yOrOrAttachmentPoint,
|
|
209
|
+
parametersOrDuration,
|
|
210
|
+
parameters
|
|
211
|
+
)
|
|
164
212
|
end
|
|
165
213
|
__TS__SetDescriptor(
|
|
166
214
|
Effect.prototype,
|
|
167
215
|
"color",
|
|
168
216
|
{
|
|
169
217
|
get = function(self)
|
|
170
|
-
return self[100] or PlayerColor.
|
|
218
|
+
return self[100] or PlayerColor.red
|
|
171
219
|
end,
|
|
172
220
|
set = function(self, color)
|
|
173
221
|
setSpecialEffectColor(self.handle, color)
|
|
@@ -197,13 +245,61 @@ __TS__SetDescriptor(
|
|
|
197
245
|
return self[101] or 0
|
|
198
246
|
end,
|
|
199
247
|
set = function(self, pitch)
|
|
200
|
-
|
|
201
|
-
self.handle,
|
|
202
|
-
-mathRad(pitch)
|
|
203
|
-
)
|
|
248
|
+
setSpecialEffectPitchDegrees(self.handle, pitch)
|
|
204
249
|
self[101] = pitch
|
|
205
250
|
end
|
|
206
251
|
},
|
|
207
252
|
true
|
|
208
253
|
)
|
|
254
|
+
__TS__SetDescriptor(
|
|
255
|
+
Effect.prototype,
|
|
256
|
+
"roll",
|
|
257
|
+
{
|
|
258
|
+
get = function(self)
|
|
259
|
+
return self[102] or 0
|
|
260
|
+
end,
|
|
261
|
+
set = function(self, roll)
|
|
262
|
+
setSpecialEffectRollDegrees(self.handle, roll)
|
|
263
|
+
self[102] = roll
|
|
264
|
+
end
|
|
265
|
+
},
|
|
266
|
+
true
|
|
267
|
+
)
|
|
268
|
+
addSpecialEffectInternal = function(modelPath, xOrWidget, yOrAttachmentPoint, parameters)
|
|
269
|
+
local coordinatesProvided = type(xOrWidget) == "number"
|
|
270
|
+
local isPositional = coordinatesProvided or (parameters and parameters.detached) == true
|
|
271
|
+
local x = not isPositional and 0 or (coordinatesProvided and xOrWidget or xOrWidget.x)
|
|
272
|
+
local y = not isPositional and 0 or (coordinatesProvided and yOrAttachmentPoint or xOrWidget.y)
|
|
273
|
+
local effect = isPositional and addSpecialEffect(modelPath, x, y) or addSpecialEffectTarget(modelPath, xOrWidget.handle, yOrAttachmentPoint or "origin")
|
|
274
|
+
if parameters ~= nil then
|
|
275
|
+
if isPositional and parameters.scale == nil and __TS__InstanceOf(xOrWidget, Unit) then
|
|
276
|
+
setSpecialEffectScale(effect, xOrWidget.scale)
|
|
277
|
+
end
|
|
278
|
+
for ____, property in ipairs(setterProperties) do
|
|
279
|
+
local value = parameters[property]
|
|
280
|
+
if value ~= nil then
|
|
281
|
+
setters[property](effect, value)
|
|
282
|
+
end
|
|
283
|
+
end
|
|
284
|
+
if isPositional and parameters.zOffset ~= nil then
|
|
285
|
+
moveLocation(location, x, y)
|
|
286
|
+
local z = __TS__InstanceOf(xOrWidget, Unit) and getLocationZ(location) + xOrWidget.flyHeight or getLocationZ(location)
|
|
287
|
+
setSpecialEffectZ(
|
|
288
|
+
effect,
|
|
289
|
+
z + parameters.zOffset * (parameters.scaleZOffset and getSpecialEffectScale(effect) or 1)
|
|
290
|
+
)
|
|
291
|
+
end
|
|
292
|
+
end
|
|
293
|
+
return effect
|
|
294
|
+
end
|
|
295
|
+
flash = function(modelPath, xOrWidget, yOrAttachmentPoint, duration, parameters)
|
|
296
|
+
local effect = addSpecialEffectInternal(modelPath, xOrWidget, yOrAttachmentPoint, parameters)
|
|
297
|
+
if duration ~= nil and duration > 0 then
|
|
298
|
+
temporaryEffectsCount = temporaryEffectsCount + 1
|
|
299
|
+
temporaryEffects[temporaryEffectsCount] = effect
|
|
300
|
+
temporaryEffectsDurations[temporaryEffectsCount] = duration
|
|
301
|
+
return
|
|
302
|
+
end
|
|
303
|
+
destroyEffect(effect)
|
|
304
|
+
end
|
|
209
305
|
return ____exports
|
package/core/types/frame.d.ts
CHANGED
|
@@ -25,11 +25,14 @@ export declare class Frame extends Handle<jframehandle> {
|
|
|
25
25
|
static readonly GAME_UI: Frame;
|
|
26
26
|
static readonly CONSOLE_UI: Frame;
|
|
27
27
|
static readonly CONSOLE_UI_BACKDROP: Frame;
|
|
28
|
+
private static readonly CONSOLE_UI_BACKDROP_UI_SCALE_HELPER_CHILD;
|
|
28
29
|
static readonly CONSOLE_TOP_BAR: Frame;
|
|
29
30
|
static readonly CONSOLE_BOTTOM_BAR: Frame;
|
|
30
31
|
static readonly WORLD: Frame;
|
|
31
32
|
static readonly CHAT: Frame;
|
|
32
33
|
static readonly TIME_OF_DAY_CLOCK: Frame;
|
|
34
|
+
private static readonly SIMPLE_FRAME_TEST_CHILD;
|
|
35
|
+
static get uiScale(): number;
|
|
33
36
|
static get leftBorder(): Frame;
|
|
34
37
|
static get rightBorder(): Frame;
|
|
35
38
|
static get minX(): number;
|
|
@@ -77,6 +80,8 @@ export declare class Frame extends Handle<jframehandle> {
|
|
|
77
80
|
get onMouseLeave(): FrameEvent;
|
|
78
81
|
get onMouseUp(): FrameEvent;
|
|
79
82
|
get onMouseWheel(): FrameEvent<[number]>;
|
|
83
|
+
get mouseEnterLocalEvent(): Event;
|
|
84
|
+
get mouseLeaveLocalEvent(): Event;
|
|
80
85
|
get popupMenuItemChangeEvent(): FrameEvent<[
|
|
81
86
|
popupMenu: Frame,
|
|
82
87
|
previousValue: number,
|
|
@@ -106,6 +111,7 @@ export declare class Frame extends Handle<jframehandle> {
|
|
|
106
111
|
enable(): void;
|
|
107
112
|
addText(text: string): void;
|
|
108
113
|
clearAllPoints(): void;
|
|
114
|
+
get children(): Frame[];
|
|
109
115
|
getChild(index: number): Frame;
|
|
110
116
|
getChildrenCount(): number;
|
|
111
117
|
setSize(width: number, height: number): void;
|
package/core/types/frame.lua
CHANGED
|
@@ -15,13 +15,32 @@ local Event = ____event.Event
|
|
|
15
15
|
local TriggerEvent = ____event.TriggerEvent
|
|
16
16
|
local ____timer = require("core.types.timer")
|
|
17
17
|
local Timer = ____timer.Timer
|
|
18
|
+
local ____frame_2Dcoordinates = require("engine.internal.misc.frame-coordinates")
|
|
19
|
+
local FRAME_MAX_Y = ____frame_2Dcoordinates.FRAME_MAX_Y
|
|
20
|
+
local FRAME_MIN_Y = ____frame_2Dcoordinates.FRAME_MIN_Y
|
|
21
|
+
local getFrameMinXMaxX = ____frame_2Dcoordinates.getFrameMinXMaxX
|
|
22
|
+
local ____playerCamera = require("core.types.playerCamera")
|
|
23
|
+
local frameCoordinatesToWorld = ____playerCamera.frameCoordinatesToWorld
|
|
24
|
+
local worldCoordinatesToFrame = ____playerCamera.worldCoordinatesToFrame
|
|
25
|
+
local ____get_2Dterrain_2Dz = require("engine.internal.misc.get-terrain-z")
|
|
26
|
+
local getTerrainZ = ____get_2Dterrain_2Dz.getTerrainZ
|
|
27
|
+
local ____lua_2Dsets = require("utility.lua-sets")
|
|
28
|
+
local mutableLuaSet = ____lua_2Dsets.mutableLuaSet
|
|
29
|
+
local ____socket = require("net.socket")
|
|
30
|
+
local Socket = ____socket.Socket
|
|
31
|
+
local ____lua_2Dmaps = require("utility.lua-maps")
|
|
32
|
+
local getOrPut = ____lua_2Dmaps.getOrPut
|
|
33
|
+
local luaMapInvert = ____lua_2Dmaps.luaMapInvert
|
|
34
|
+
local luaMapOf = ____lua_2Dmaps.luaMapOf
|
|
35
|
+
local mutableLuaMap = ____lua_2Dmaps.mutableLuaMap
|
|
18
36
|
local frameClick = BlzFrameClick
|
|
19
37
|
local frameGetEnable = BlzFrameGetEnable
|
|
20
38
|
local frameIsVisible = BlzFrameIsVisible
|
|
21
39
|
local frameSetEnable = BlzFrameSetEnable
|
|
22
40
|
local frameSetScale = BlzFrameSetScale
|
|
23
|
-
local
|
|
24
|
-
local
|
|
41
|
+
local getHandleId = GetHandleId
|
|
42
|
+
local getOriginFrame = BlzGetOriginFrame
|
|
43
|
+
local location = Location
|
|
25
44
|
local ____rawget = _G.rawget
|
|
26
45
|
local rawset = _G.rawset
|
|
27
46
|
local invoke = Event.invoke
|
|
@@ -62,8 +81,10 @@ local function updateBorders()
|
|
|
62
81
|
local width4by3 = (w - h / 600 * 800) / 2
|
|
63
82
|
local pxtodpi = 0.6 / h
|
|
64
83
|
BlzFrameSetAbsPoint(leftBorder, FRAMEPOINT_TOPLEFT, -width4by3 * pxtodpi, 0.6)
|
|
84
|
+
BlzFrameSetScale(leftBorder, 1)
|
|
65
85
|
BlzFrameSetSize(leftBorder, 0.001, 0.6)
|
|
66
86
|
BlzFrameSetAbsPoint(rightBorder, FRAMEPOINT_TOPRIGHT, (-width4by3 + w) * pxtodpi, 0.6)
|
|
87
|
+
BlzFrameSetScale(rightBorder, 1)
|
|
67
88
|
BlzFrameSetSize(rightBorder, 0.001, 0.6)
|
|
68
89
|
end
|
|
69
90
|
local worldFrame = BlzGetOriginFrame(ORIGIN_FRAME_WORLD_FRAME, 0)
|
|
@@ -120,6 +141,31 @@ do
|
|
|
120
141
|
FramePoint.BOTTOM = FRAMEPOINT_BOTTOM
|
|
121
142
|
FramePoint.BOTTOM_RIGHT = FRAMEPOINT_BOTTOMRIGHT
|
|
122
143
|
end
|
|
144
|
+
local tooltipByFrame = setmetatable({}, {__mode = "k"})
|
|
145
|
+
local keyByAsyncInitOriginFrameType = luaMapOf(ORIGIN_FRAME_PORTRAIT_HP_TEXT, "hp", ORIGIN_FRAME_PORTRAIT_MANA_TEXT, "mana")
|
|
146
|
+
local asyncInitOriginFrameTypeByKey = luaMapInvert(keyByAsyncInitOriginFrameType)
|
|
147
|
+
local seenAsyncInitOriginFrameTypes = mutableLuaSet()
|
|
148
|
+
local seenAsyncInitOriginFrameTypesSocket = __TS__New(Socket)
|
|
149
|
+
local seenPlayersByAsyncInitOriginFrameType = mutableLuaMap()
|
|
150
|
+
seenAsyncInitOriginFrameTypesSocket.onMessage:addListener(function(player, key)
|
|
151
|
+
local asyncInitOriginFrameType = asyncInitOriginFrameTypeByKey[key]
|
|
152
|
+
if asyncInitOriginFrameType ~= nil then
|
|
153
|
+
getOrPut(seenPlayersByAsyncInitOriginFrameType, asyncInitOriginFrameType, mutableLuaSet)[player] = true
|
|
154
|
+
end
|
|
155
|
+
end)
|
|
156
|
+
local function haveAllPlayersSeenAsyncInitOriginFrameType(frame)
|
|
157
|
+
local players = seenPlayersByAsyncInitOriginFrameType[frame]
|
|
158
|
+
if players == nil then
|
|
159
|
+
return false
|
|
160
|
+
end
|
|
161
|
+
for ____, player in ipairs(Player.all) do
|
|
162
|
+
if player.isUser and player.isPlaying and not (players[player] ~= nil) then
|
|
163
|
+
return false
|
|
164
|
+
end
|
|
165
|
+
end
|
|
166
|
+
keyByAsyncInitOriginFrameType[frame] = nil
|
|
167
|
+
return true
|
|
168
|
+
end
|
|
123
169
|
____exports.Frame = __TS__Class()
|
|
124
170
|
local Frame = ____exports.Frame
|
|
125
171
|
Frame.name = "Frame"
|
|
@@ -240,6 +286,7 @@ function Frame.prototype.setTextColor(self, color)
|
|
|
240
286
|
end
|
|
241
287
|
function Frame.prototype.setTooltip(self, tooltip)
|
|
242
288
|
BlzFrameSetTooltip(self.handle, tooltip.handle)
|
|
289
|
+
tooltipByFrame[self] = tooltip
|
|
243
290
|
end
|
|
244
291
|
function Frame.prototype.setMinMaxValue(self, minValue, maxValue)
|
|
245
292
|
BlzFrameSetMinMaxValue(self.handle, minValue, maxValue)
|
|
@@ -267,7 +314,16 @@ function Frame.createSimple(self, name, parent, createContext)
|
|
|
267
314
|
))
|
|
268
315
|
end
|
|
269
316
|
function Frame.create(self, name, parent, priority, createContext)
|
|
270
|
-
|
|
317
|
+
if parent == ____exports.Frame.CONSOLE_UI_BACKDROP then
|
|
318
|
+
local helper = ____exports.Frame.CONSOLE_UI_BACKDROP_UI_SCALE_HELPER_CHILD.handle
|
|
319
|
+
BlzFrameSetScale(helper, 1)
|
|
320
|
+
local frame = BlzCreateFrame(name, helper, priority or 0, createContext or 0)
|
|
321
|
+
BlzFrameSetScale(helper, ____exports.Frame.uiScale)
|
|
322
|
+
BlzFrameSetParent(frame, ____exports.Frame.CONSOLE_UI_BACKDROP.handle)
|
|
323
|
+
return self:of(frame)
|
|
324
|
+
else
|
|
325
|
+
return self:of(BlzCreateFrame(name, parent.handle, priority or 0, createContext or 0))
|
|
326
|
+
end
|
|
271
327
|
end
|
|
272
328
|
function Frame.createByType(self, typeName, name, parent, inherits, createContext)
|
|
273
329
|
return self:of(BlzCreateFrameByType(
|
|
@@ -288,16 +344,35 @@ function Frame.byOrigin(self, frameType, index)
|
|
|
288
344
|
if index == nil then
|
|
289
345
|
index = 0
|
|
290
346
|
end
|
|
291
|
-
|
|
347
|
+
local frame = getOriginFrame(frameType, index)
|
|
348
|
+
local asyncInitOriginFrameTypeKey = keyByAsyncInitOriginFrameType[frameType]
|
|
349
|
+
if index == 0 and asyncInitOriginFrameTypeKey ~= nil and not haveAllPlayersSeenAsyncInitOriginFrameType(frameType) then
|
|
350
|
+
if getHandleId(frame) == 0 or seenAsyncInitOriginFrameTypes[frameType] ~= nil then
|
|
351
|
+
location(0, 0)
|
|
352
|
+
else
|
|
353
|
+
seenAsyncInitOriginFrameTypes[frameType] = true
|
|
354
|
+
seenAsyncInitOriginFrameTypesSocket:send(asyncInitOriginFrameTypeKey)
|
|
355
|
+
end
|
|
356
|
+
end
|
|
357
|
+
return self:of(frame)
|
|
292
358
|
end
|
|
293
359
|
Frame.GAME_UI = ____exports.Frame:byOrigin(ORIGIN_FRAME_GAME_UI)
|
|
294
360
|
Frame.CONSOLE_UI = ____exports.Frame:byOrigin(ORIGIN_FRAME_SIMPLE_UI_PARENT)
|
|
295
361
|
Frame.CONSOLE_UI_BACKDROP = ____exports.Frame:byName("ConsoleUIBackdrop")
|
|
362
|
+
Frame.CONSOLE_UI_BACKDROP_UI_SCALE_HELPER_CHILD = ____exports.Frame:createByType("FRAME", "ConsoleUIBackdropUIScaleHelperChild", ____exports.Frame.CONSOLE_UI_BACKDROP)
|
|
296
363
|
Frame.CONSOLE_TOP_BAR = ____exports.Frame:byName("ConsoleTopBar")
|
|
297
364
|
Frame.CONSOLE_BOTTOM_BAR = ____exports.Frame:byName("ConsoleBottomBar")
|
|
298
365
|
Frame.WORLD = ____exports.Frame:byOrigin(ORIGIN_FRAME_WORLD_FRAME)
|
|
299
366
|
Frame.CHAT = ____exports.Frame:byOrigin(ORIGIN_FRAME_CHAT_MSG)
|
|
300
367
|
Frame.TIME_OF_DAY_CLOCK = ____exports.Frame.GAME_UI:getChild(5):getChild(0)
|
|
368
|
+
Frame.SIMPLE_FRAME_TEST_CHILD = ____exports.Frame:createByType("SIMPLEFRAME", "SimpleFrameTestParent", ____exports.Frame.CONSOLE_UI)
|
|
369
|
+
__TS__ObjectDefineProperty(
|
|
370
|
+
Frame,
|
|
371
|
+
"uiScale",
|
|
372
|
+
{get = function(self)
|
|
373
|
+
return ____exports.Frame.CONSOLE_BOTTOM_BAR.width / 0.8
|
|
374
|
+
end}
|
|
375
|
+
)
|
|
301
376
|
__TS__ObjectDefineProperty(
|
|
302
377
|
Frame,
|
|
303
378
|
"leftBorder",
|
|
@@ -322,27 +397,21 @@ __TS__ObjectDefineProperty(
|
|
|
322
397
|
Frame,
|
|
323
398
|
"minX",
|
|
324
399
|
{get = function(self)
|
|
325
|
-
local
|
|
326
|
-
|
|
327
|
-
local width4by3 = (w - h / 600 * 800) / 2
|
|
328
|
-
local pxtodpi = 0.6 / h
|
|
329
|
-
return -width4by3 * pxtodpi
|
|
400
|
+
local minX = getFrameMinXMaxX()
|
|
401
|
+
return minX
|
|
330
402
|
end}
|
|
331
403
|
)
|
|
332
404
|
__TS__ObjectDefineProperty(
|
|
333
405
|
Frame,
|
|
334
406
|
"maxX",
|
|
335
407
|
{get = function(self)
|
|
336
|
-
local
|
|
337
|
-
|
|
338
|
-
local width4by3 = (w - h / 600 * 800) / 2
|
|
339
|
-
local pxtodpi = 0.6 / h
|
|
340
|
-
return (-width4by3 + w) * pxtodpi
|
|
408
|
+
local ____, maxX = getFrameMinXMaxX()
|
|
409
|
+
return maxX
|
|
341
410
|
end}
|
|
342
411
|
)
|
|
343
412
|
Frame.centerX = 0.4
|
|
344
|
-
Frame.minY =
|
|
345
|
-
Frame.maxY =
|
|
413
|
+
Frame.minY = FRAME_MIN_Y
|
|
414
|
+
Frame.maxY = FRAME_MAX_Y
|
|
346
415
|
Frame.centerY = 0.3
|
|
347
416
|
__TS__SetDescriptor(
|
|
348
417
|
Frame.prototype,
|
|
@@ -599,6 +668,62 @@ __TS__SetDescriptor(
|
|
|
599
668
|
end},
|
|
600
669
|
true
|
|
601
670
|
)
|
|
671
|
+
__TS__SetDescriptor(
|
|
672
|
+
Frame.prototype,
|
|
673
|
+
"mouseEnterLocalEvent",
|
|
674
|
+
{get = function(self)
|
|
675
|
+
local event = __TS__New(Event)
|
|
676
|
+
if not (tooltipByFrame[self] ~= nil) then
|
|
677
|
+
____exports.Frame.SIMPLE_FRAME_TEST_CHILD.parent = self
|
|
678
|
+
local tooltip = ____exports.Frame.SIMPLE_FRAME_TEST_CHILD.parent == self and ____exports.Frame:createByType("SIMPLEFRAME", "", ____exports.Frame.CONSOLE_UI) or ____exports.Frame:createByType("FRAME", "", ____exports.Frame.GAME_UI)
|
|
679
|
+
____exports.Frame.SIMPLE_FRAME_TEST_CHILD.parent = ____exports.Frame.CONSOLE_UI
|
|
680
|
+
self:setTooltip(tooltip)
|
|
681
|
+
end
|
|
682
|
+
local isMouseInside = false
|
|
683
|
+
Timer.onPeriod[1 / 64]:addListener(function()
|
|
684
|
+
local tooltip = tooltipByFrame[self]
|
|
685
|
+
if tooltip and tooltip.visible then
|
|
686
|
+
if not isMouseInside then
|
|
687
|
+
isMouseInside = true
|
|
688
|
+
Event.invoke(event)
|
|
689
|
+
end
|
|
690
|
+
else
|
|
691
|
+
isMouseInside = false
|
|
692
|
+
end
|
|
693
|
+
end)
|
|
694
|
+
rawset(self, "mouseEnterLocalEvent", event)
|
|
695
|
+
return event
|
|
696
|
+
end},
|
|
697
|
+
true
|
|
698
|
+
)
|
|
699
|
+
__TS__SetDescriptor(
|
|
700
|
+
Frame.prototype,
|
|
701
|
+
"mouseLeaveLocalEvent",
|
|
702
|
+
{get = function(self)
|
|
703
|
+
local event = __TS__New(Event)
|
|
704
|
+
if not (tooltipByFrame[self] ~= nil) then
|
|
705
|
+
____exports.Frame.SIMPLE_FRAME_TEST_CHILD.parent = self
|
|
706
|
+
local tooltip = ____exports.Frame.SIMPLE_FRAME_TEST_CHILD.parent == self and ____exports.Frame:createByType("SIMPLEFRAME", "", ____exports.Frame.CONSOLE_UI) or ____exports.Frame:createByType("FRAME", "", ____exports.Frame.GAME_UI)
|
|
707
|
+
____exports.Frame.SIMPLE_FRAME_TEST_CHILD.parent = ____exports.Frame.CONSOLE_UI
|
|
708
|
+
self:setTooltip(tooltip)
|
|
709
|
+
end
|
|
710
|
+
local isMouseInside = false
|
|
711
|
+
Timer.onPeriod[1 / 64]:addListener(function()
|
|
712
|
+
local tooltip = tooltipByFrame[self]
|
|
713
|
+
if tooltip and tooltip.visible then
|
|
714
|
+
isMouseInside = true
|
|
715
|
+
else
|
|
716
|
+
if isMouseInside then
|
|
717
|
+
isMouseInside = false
|
|
718
|
+
Event.invoke(event)
|
|
719
|
+
end
|
|
720
|
+
end
|
|
721
|
+
end)
|
|
722
|
+
rawset(self, "mouseLeaveLocalEvent", event)
|
|
723
|
+
return event
|
|
724
|
+
end},
|
|
725
|
+
true
|
|
726
|
+
)
|
|
602
727
|
__TS__SetDescriptor(
|
|
603
728
|
Frame.prototype,
|
|
604
729
|
"popupMenuItemChangeEvent",
|
|
@@ -701,6 +826,18 @@ __TS__SetDescriptor(
|
|
|
701
826
|
end},
|
|
702
827
|
true
|
|
703
828
|
)
|
|
829
|
+
__TS__SetDescriptor(
|
|
830
|
+
Frame.prototype,
|
|
831
|
+
"children",
|
|
832
|
+
{get = function(self)
|
|
833
|
+
local children = {}
|
|
834
|
+
for i = 0, self:getChildrenCount() - 1 do
|
|
835
|
+
children[i + 1] = self:getChild(i)
|
|
836
|
+
end
|
|
837
|
+
return children
|
|
838
|
+
end},
|
|
839
|
+
true
|
|
840
|
+
)
|
|
704
841
|
__TS__ObjectDefineProperty(
|
|
705
842
|
Frame,
|
|
706
843
|
"onKeyPress",
|
|
@@ -848,16 +985,19 @@ __TS__ObjectDefineProperty(
|
|
|
848
985
|
local event = __TS__New(Event)
|
|
849
986
|
local syncX = 0
|
|
850
987
|
local syncY = 0
|
|
851
|
-
local
|
|
852
|
-
local
|
|
988
|
+
local syncFrameX = 0
|
|
989
|
+
local syncFrameY = 0
|
|
853
990
|
local lastX = syncX
|
|
854
991
|
local lastY = syncY
|
|
855
992
|
self.onMouseMove:addListener(function(player, x, y)
|
|
856
993
|
if player.isLocal then
|
|
857
994
|
syncX = x
|
|
858
995
|
syncY = y
|
|
859
|
-
|
|
860
|
-
|
|
996
|
+
syncFrameX, syncFrameY = worldCoordinatesToFrame(
|
|
997
|
+
x,
|
|
998
|
+
y,
|
|
999
|
+
getTerrainZ(x, y)
|
|
1000
|
+
)
|
|
861
1001
|
lastX = x
|
|
862
1002
|
lastY = y
|
|
863
1003
|
invoke(event, x, y)
|
|
@@ -867,9 +1007,8 @@ __TS__ObjectDefineProperty(
|
|
|
867
1007
|
if syncX == 0 and syncY == 0 then
|
|
868
1008
|
return
|
|
869
1009
|
end
|
|
870
|
-
local x
|
|
871
|
-
|
|
872
|
-
if x ~= lastX or y ~= lastY then
|
|
1010
|
+
local x, y, ____, isDefinite = frameCoordinatesToWorld(syncFrameX, syncFrameY)
|
|
1011
|
+
if isDefinite and (x ~= lastX or y ~= lastY) then
|
|
873
1012
|
lastX = x
|
|
874
1013
|
lastY = y
|
|
875
1014
|
invoke(event, x, y)
|