@infernus/core 0.8.7 → 0.9.1

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.
Files changed (106) hide show
  1. package/dist/bundle.d.ts +1553 -1551
  2. package/dist/bundle.js +1 -1
  3. package/dist/bundle.mjs +1 -0
  4. package/package.json +10 -3
  5. package/rollup.config.mjs +5 -2
  6. package/.eslintrc +0 -3
  7. package/src/controllers/command/index.ts +0 -57
  8. package/src/controllers/filterscript/index.ts +0 -69
  9. package/src/controllers/gamemode/index.ts +0 -277
  10. package/src/controllers/gamemode/settings.ts +0 -3
  11. package/src/controllers/gametext/index.ts +0 -61
  12. package/src/controllers/gangzone/baseGangZone.ts +0 -284
  13. package/src/controllers/gangzone/gangZoneBus.ts +0 -8
  14. package/src/controllers/gangzone/gangZoneEvent.ts +0 -91
  15. package/src/controllers/gangzone/index.ts +0 -2
  16. package/src/controllers/i18n/index.ts +0 -81
  17. package/src/controllers/index.ts +0 -12
  18. package/src/controllers/menu/baseMenu.ts +0 -203
  19. package/src/controllers/menu/index.ts +0 -2
  20. package/src/controllers/menu/menuBus.ts +0 -8
  21. package/src/controllers/menu/menuEvent.ts +0 -76
  22. package/src/controllers/netstats/index.ts +0 -43
  23. package/src/controllers/npc/index.ts +0 -2
  24. package/src/controllers/npc/npcEvent.ts +0 -26
  25. package/src/controllers/npc/npcFunc.ts +0 -64
  26. package/src/controllers/player/basePlayer.ts +0 -980
  27. package/src/controllers/player/index.ts +0 -3
  28. package/src/controllers/player/pauseChecker.ts +0 -39
  29. package/src/controllers/player/playerBus.ts +0 -9
  30. package/src/controllers/player/playerEvent.ts +0 -468
  31. package/src/controllers/promise/client/index.ts +0 -31
  32. package/src/controllers/promise/dialog/index.ts +0 -143
  33. package/src/controllers/textdraw/baseTextDraw.ts +0 -416
  34. package/src/controllers/textdraw/index.ts +0 -2
  35. package/src/controllers/textdraw/textdrawBus.ts +0 -8
  36. package/src/controllers/textdraw/textdrawEvent.ts +0 -61
  37. package/src/controllers/vehicle/baseVehicle.ts +0 -503
  38. package/src/controllers/vehicle/index.ts +0 -2
  39. package/src/controllers/vehicle/vehicleBus.ts +0 -8
  40. package/src/controllers/vehicle/vehicleEvent.ts +0 -201
  41. package/src/enums/artwork.ts +0 -5
  42. package/src/enums/clickSources.ts +0 -3
  43. package/src/enums/dialogStyles.ts +0 -8
  44. package/src/enums/editResponseTypes.ts +0 -5
  45. package/src/enums/index.ts +0 -18
  46. package/src/enums/invalid.ts +0 -13
  47. package/src/enums/keys.ts +0 -25
  48. package/src/enums/limits.ts +0 -18
  49. package/src/enums/marker.ts +0 -5
  50. package/src/enums/netstat.ts +0 -11
  51. package/src/enums/npc.ts +0 -11
  52. package/src/enums/object.ts +0 -25
  53. package/src/enums/player.ts +0 -92
  54. package/src/enums/record.ts +0 -5
  55. package/src/enums/specialActions.ts +0 -22
  56. package/src/enums/streamer.ts +0 -10
  57. package/src/enums/textdrawFonts.ts +0 -23
  58. package/src/enums/vehicle.ts +0 -32
  59. package/src/enums/weapon.ts +0 -82
  60. package/src/interfaces/index.ts +0 -233
  61. package/src/logger/index.ts +0 -24
  62. package/src/main.ts +0 -6
  63. package/src/types/index.ts +0 -48
  64. package/src/utils/EventBus.ts +0 -60
  65. package/src/utils/animateUtils.ts +0 -2504
  66. package/src/utils/colorUtils.ts +0 -43
  67. package/src/utils/helperUtils.ts +0 -403
  68. package/src/utils/vehicleUtils.ts +0 -321
  69. package/src/wrapper/native/callbacks/index.ts +0 -395
  70. package/src/wrapper/native/functions/index.ts +0 -3131
  71. package/src/wrapper/streamer/3dtext/3dTextBus.ts +0 -8
  72. package/src/wrapper/streamer/3dtext/3dTextEvent.ts +0 -70
  73. package/src/wrapper/streamer/3dtext/base3DText.ts +0 -184
  74. package/src/wrapper/streamer/3dtext/index.ts +0 -2
  75. package/src/wrapper/streamer/actor/actorBus.ts +0 -8
  76. package/src/wrapper/streamer/actor/actorEvent.ts +0 -95
  77. package/src/wrapper/streamer/actor/baseActor.ts +0 -278
  78. package/src/wrapper/streamer/actor/index.ts +0 -2
  79. package/src/wrapper/streamer/area/areaBus.ts +0 -8
  80. package/src/wrapper/streamer/area/areaEvent.ts +0 -99
  81. package/src/wrapper/streamer/area/baseArea.ts +0 -450
  82. package/src/wrapper/streamer/area/index.ts +0 -2
  83. package/src/wrapper/streamer/checkpoint/baseCheckpoint.ts +0 -136
  84. package/src/wrapper/streamer/checkpoint/checkPointBus.ts +0 -8
  85. package/src/wrapper/streamer/checkpoint/checkPointEvent.ts +0 -100
  86. package/src/wrapper/streamer/checkpoint/index.ts +0 -2
  87. package/src/wrapper/streamer/common/index.ts +0 -318
  88. package/src/wrapper/streamer/index.ts +0 -9
  89. package/src/wrapper/streamer/mapIcon/baseMapIcon.ts +0 -128
  90. package/src/wrapper/streamer/mapIcon/index.ts +0 -2
  91. package/src/wrapper/streamer/mapIcon/mapIconBus.ts +0 -8
  92. package/src/wrapper/streamer/mapIcon/mapIconEvent.ts +0 -67
  93. package/src/wrapper/streamer/object/baseObject.ts +0 -415
  94. package/src/wrapper/streamer/object/index.ts +0 -2
  95. package/src/wrapper/streamer/object/objectBus.ts +0 -8
  96. package/src/wrapper/streamer/object/objectEvent.ts +0 -177
  97. package/src/wrapper/streamer/pickup/basePickup.ts +0 -114
  98. package/src/wrapper/streamer/pickup/index.ts +0 -2
  99. package/src/wrapper/streamer/pickup/pickupBus.ts +0 -8
  100. package/src/wrapper/streamer/pickup/pickupEvent.ts +0 -84
  101. package/src/wrapper/streamer/raceCP/baseRaceCP.ts +0 -151
  102. package/src/wrapper/streamer/raceCP/index.ts +0 -2
  103. package/src/wrapper/streamer/raceCP/raceCPBus.ts +0 -8
  104. package/src/wrapper/streamer/raceCP/raceCPEvent.ts +0 -100
  105. package/tsconfig.json +0 -16
  106. /package/{LICENSE → LICENSE.md} +0 -0
@@ -1,8 +0,0 @@
1
- import { EventBus } from "@/utils/eventBus";
2
-
3
- export enum _3dTextHooks {
4
- created = "On3dTextCreate",
5
- destroyed = "On3dTextDestroy",
6
- }
7
-
8
- export const _3dTextBus = new EventBus();
@@ -1,70 +0,0 @@
1
- import type { Player } from "@/controllers/player";
2
- import type { TCommonCallback } from "@/types";
3
- import { StreamerItemTypes } from "@infernus/streamer";
4
- import { Streamer } from "../common";
5
- import type { Dynamic3DTextLabel } from "./base3DText";
6
-
7
- import { _3dTextBus, _3dTextHooks } from "./3dTextBus";
8
- import { OnGameModeExit } from "@/wrapper/native/callbacks";
9
- import { promisifyCallback } from "@/utils/helperUtils";
10
-
11
- export class Dynamic3dTextLabelEvent<
12
- P extends Player,
13
- D extends Dynamic3DTextLabel
14
- > {
15
- private readonly _3dTexts = new Map<number, D>();
16
- private readonly players;
17
-
18
- constructor(playersMap: Map<number, P>, destroyOnExit = true) {
19
- this.players = playersMap;
20
- _3dTextBus.on(_3dTextHooks.created, (_3dText: D) => {
21
- this._3dTexts.set(_3dText.id, _3dText);
22
- });
23
- _3dTextBus.on(_3dTextHooks.destroyed, (_3dText: D) => {
24
- this._3dTexts.delete(_3dText.id);
25
- });
26
- if (destroyOnExit) {
27
- OnGameModeExit(() => {
28
- this._3dTexts.forEach((t) => t.destroy());
29
- this._3dTexts.clear();
30
- });
31
- }
32
- Streamer.onItemStreamIn((type, item, player) => {
33
- if (type === StreamerItemTypes.TEXT_3D_LABEL) {
34
- const tl = this._3dTexts.get(item);
35
- const p = this.players.get(player);
36
- if (tl && p)
37
- return promisifyCallback(
38
- this,
39
- "onStreamIn",
40
- "Streamer_OnItemStreamIn"
41
- )(tl, p);
42
- }
43
- return 1;
44
- });
45
- Streamer.onItemStreamOut((type, item, player) => {
46
- if (type === StreamerItemTypes.TEXT_3D_LABEL) {
47
- const tl = this._3dTexts.get(item);
48
- const p = this.players.get(player);
49
- if (tl && p)
50
- return promisifyCallback(
51
- this,
52
- "onStreamOut",
53
- "Streamer_OnItemStreamOut"
54
- )(tl, p);
55
- }
56
- return 1;
57
- });
58
- }
59
-
60
- onStreamIn?(label: D, player: P): TCommonCallback;
61
- onStreamOut?(label: D, player: P): TCommonCallback;
62
-
63
- get3dTextLabelsArr(): Array<D> {
64
- return [...this._3dTexts.values()];
65
- }
66
-
67
- get3dTextLabelsMap(): Map<number, D> {
68
- return this._3dTexts;
69
- }
70
- }
@@ -1,184 +0,0 @@
1
- import { defaultCharset } from "@/controllers/gamemode/settings";
2
- import { InvalidEnum } from "@/enums";
3
- import type { IDynamic3DTextLabel } from "@/interfaces";
4
- import { logger } from "@/logger";
5
- import { rgba } from "@/utils/colorUtils";
6
- import {
7
- CreateDynamic3DTextLabel,
8
- CreateDynamic3DTextLabelEx,
9
- GetDynamic3DTextLabelText,
10
- UpdateDynamic3DTextLabelText,
11
- } from "@/utils/helperUtils";
12
- import {
13
- DestroyDynamic3DTextLabel,
14
- IsValidDynamic3DTextLabel,
15
- StreamerDistances,
16
- StreamerItemTypes,
17
- } from "@infernus/streamer";
18
- import { Streamer } from "../common";
19
- import { _3dTextBus, _3dTextHooks } from "./3dTextBus";
20
-
21
- export class Dynamic3DTextLabel {
22
- private sourceInfo: IDynamic3DTextLabel;
23
- private _id = -1;
24
- get id(): number {
25
- return this._id;
26
- }
27
- constructor(textLabel: IDynamic3DTextLabel) {
28
- this.sourceInfo = textLabel;
29
- }
30
- create(): void | this {
31
- if (this.id !== -1)
32
- return logger.warn("[Streamer3DTextLabel]: Unable to create again");
33
- let {
34
- attachedplayer,
35
- attachedvehicle,
36
- testlos,
37
- streamdistance,
38
- worldid,
39
- interiorid,
40
- playerid,
41
- areaid,
42
- priority,
43
- } = this.sourceInfo;
44
- const { charset, text, colour, drawdistance, x, y, z, extended } =
45
- this.sourceInfo;
46
-
47
- attachedplayer ??= InvalidEnum.PLAYER_ID;
48
- attachedvehicle ??= InvalidEnum.VEHICLE_ID;
49
- streamdistance ??= StreamerDistances.TEXT_3D_LABEL_SD;
50
- testlos ??= false;
51
- priority ??= 0;
52
-
53
- if (extended) {
54
- if (typeof worldid === "number") worldid = [-1];
55
- else worldid ??= [-1];
56
- if (typeof interiorid === "number") interiorid = [-1];
57
- else interiorid ??= [-1];
58
- if (typeof playerid === "number") playerid = [-1];
59
- else playerid ??= [-1];
60
- if (typeof areaid === "number") areaid = [-1];
61
- else areaid ??= [-1];
62
-
63
- this._id = CreateDynamic3DTextLabelEx(
64
- text,
65
- rgba(colour),
66
- x,
67
- y,
68
- z,
69
- drawdistance,
70
- attachedplayer,
71
- attachedvehicle,
72
- testlos,
73
- streamdistance,
74
- worldid,
75
- interiorid,
76
- playerid,
77
- areaid,
78
- priority,
79
- charset || defaultCharset
80
- );
81
- } else {
82
- if (Array.isArray(worldid)) worldid = -1;
83
- else worldid ??= -1;
84
- if (Array.isArray(interiorid)) interiorid = -1;
85
- else interiorid ??= -1;
86
- if (Array.isArray(playerid)) playerid = -1;
87
- else playerid ??= -1;
88
- if (Array.isArray(areaid)) areaid = -1;
89
- else areaid ??= -1;
90
-
91
- this._id = CreateDynamic3DTextLabel(
92
- charset || defaultCharset,
93
- text,
94
- rgba(colour),
95
- x,
96
- y,
97
- z,
98
- drawdistance,
99
- attachedplayer,
100
- attachedvehicle,
101
- testlos,
102
- worldid,
103
- interiorid,
104
- playerid,
105
- streamdistance,
106
- areaid,
107
- priority
108
- );
109
- }
110
- _3dTextBus.emit(_3dTextHooks.created, this);
111
- return this;
112
- }
113
- destroy(): void | this {
114
- if (this.id === -1)
115
- return logger.warn(
116
- "[Streamer3DTextLabel]: Unable to destroy before create"
117
- );
118
- DestroyDynamic3DTextLabel(this.id);
119
- _3dTextBus.emit(_3dTextHooks.destroyed, this);
120
- return this;
121
- }
122
- isValid(): boolean {
123
- return IsValidDynamic3DTextLabel(this.id);
124
- }
125
- getColour(): void | string | number {
126
- if (this.id === -1)
127
- return logger.warn(
128
- "[Streamer3DTextLabel]: Unable to get colour before create"
129
- );
130
- return this.sourceInfo.colour;
131
- }
132
- getCharset(): void | string {
133
- if (this.id === -1)
134
- return logger.warn(
135
- "[Streamer3DTextLabel]: Unable to get charset before create"
136
- );
137
- return this.sourceInfo.charset;
138
- }
139
- getText(): void | string {
140
- if (this.id === -1)
141
- return logger.warn(
142
- "[Streamer3DTextLabel]: Unable to get text before create"
143
- );
144
- return GetDynamic3DTextLabelText(
145
- this.id,
146
- this.sourceInfo.charset || defaultCharset
147
- );
148
- }
149
- updateText(
150
- colour: string | number,
151
- text: string,
152
- charset = this.sourceInfo.charset
153
- ): void | number {
154
- if (this.id === -1)
155
- return logger.warn(
156
- "[Streamer3DTextLabel]: Unable to update text before create"
157
- );
158
- this.sourceInfo.charset = charset;
159
- return UpdateDynamic3DTextLabelText(
160
- this.id,
161
- rgba(colour),
162
- text,
163
- charset || defaultCharset
164
- );
165
- }
166
- toggleCallbacks(toggle = true): void | number {
167
- if (this.id === -1)
168
- return logger.warn(
169
- "[Streamer3DTextLabel]: Unable to toggle callbacks before create"
170
- );
171
- return Streamer.toggleItemCallbacks(
172
- StreamerItemTypes.TEXT_3D_LABEL,
173
- this.id,
174
- toggle
175
- );
176
- }
177
- isToggleCallbacks(): boolean {
178
- if (this.id === -1) false;
179
- return Streamer.isToggleItemCallbacks(
180
- StreamerItemTypes.TEXT_3D_LABEL,
181
- this.id
182
- );
183
- }
184
- }
@@ -1,2 +0,0 @@
1
- export * from "./base3DText";
2
- export * from "./3dTextEvent";
@@ -1,8 +0,0 @@
1
- import { EventBus } from "@/utils/eventBus";
2
-
3
- export enum actorHooks {
4
- created = "OnActorCreate",
5
- destroyed = "OnActorDestroy",
6
- }
7
-
8
- export const actorBus = new EventBus();
@@ -1,95 +0,0 @@
1
- import type { Player } from "@/controllers/player";
2
- import type { BodyPartsEnum } from "@/enums";
3
- import type { TCommonCallback } from "@/types";
4
- import { promisifyCallback } from "@/utils/helperUtils";
5
- import { OnGameModeExit } from "@/wrapper/native/callbacks";
6
- import {
7
- OnDynamicActorStreamIn,
8
- OnDynamicActorStreamOut,
9
- OnPlayerGiveDamageDynamicActor,
10
- } from "@infernus/streamer";
11
- import { actorBus, actorHooks } from "./actorBus";
12
- import type { DynamicActor } from "./baseActor";
13
-
14
- export class DynamicActorEvent<P extends Player, A extends DynamicActor> {
15
- private readonly actors = new Map<number, A>();
16
- private readonly players;
17
-
18
- constructor(playersMap: Map<number, P>, destroyOnExit = true) {
19
- this.players = playersMap;
20
- actorBus.on(actorHooks.created, (actor: A) => {
21
- this.actors.set(actor.id, actor);
22
- });
23
- actorBus.on(actorHooks.destroyed, (actor: A) => {
24
- this.actors.delete(actor.id);
25
- });
26
- if (destroyOnExit) {
27
- OnGameModeExit(() => {
28
- this.actors.forEach((a) => a.destroy());
29
- this.actors.clear();
30
- });
31
- }
32
- OnDynamicActorStreamIn((actorid: number, forplayerid: number): number => {
33
- const act = this.actors.get(actorid);
34
- if (!act) return 0;
35
- const p = this.players.get(forplayerid);
36
- if (!p) return 0;
37
- const pFn = promisifyCallback(
38
- this,
39
- "onStreamIn",
40
- "OnDynamicActorStreamIn"
41
- );
42
- return pFn(act, p);
43
- });
44
- OnDynamicActorStreamOut((actorid: number, forplayerid: number): number => {
45
- const act = this.actors.get(actorid);
46
- if (!act) return 0;
47
- const p = this.players.get(forplayerid);
48
- if (!p) return 0;
49
- const pFn = promisifyCallback(
50
- this,
51
- "onStreamOut",
52
- "OnDynamicActorStreamOut"
53
- );
54
- return pFn(act, p);
55
- });
56
- OnPlayerGiveDamageDynamicActor(
57
- (
58
- playerid: number,
59
- actorid: number,
60
- amount: number,
61
- weaponid: number,
62
- bodypart: number
63
- ): number => {
64
- const act = this.actors.get(actorid);
65
- if (!act) return 0;
66
- const p = this.players.get(playerid);
67
- if (!p) return 0;
68
- const pFn = promisifyCallback(
69
- this,
70
- "onPlayerGiveDamage",
71
- "OnPlayerGiveDamageDynamicActor"
72
- );
73
- return pFn(p, act, amount, weaponid, bodypart);
74
- }
75
- );
76
- }
77
-
78
- onStreamIn?(actor: A, player: P): TCommonCallback;
79
- onStreamOut?(actor: A, player: P): TCommonCallback;
80
- onPlayerGiveDamage?(
81
- player: P,
82
- actor: A,
83
- amount: number,
84
- weaponid: number,
85
- bodypart: BodyPartsEnum
86
- ): TCommonCallback;
87
-
88
- getActorsArr(): Array<A> {
89
- return [...this.actors.values()];
90
- }
91
-
92
- getActorsMap(): Map<number, A> {
93
- return this.actors;
94
- }
95
- }
@@ -1,278 +0,0 @@
1
- import type { Player } from "@/controllers/player";
2
- import type { IDynamicActor } from "@/interfaces";
3
- import { logger } from "@/logger";
4
- import { getAnimateDurationByLibName } from "@/utils/animateUtils";
5
- import {
6
- GetActorSkin,
7
- SetActorSkin,
8
- GetActorSpawnInfo,
9
- GetActorAnimation,
10
- } from "@infernus/wrapper";
11
-
12
- import {
13
- ApplyDynamicActorAnimation,
14
- ClearDynamicActorAnimations,
15
- CreateDynamicActor,
16
- CreateDynamicActorEx,
17
- DestroyDynamicActor,
18
- GetDynamicActorFacingAngle,
19
- GetDynamicActorHealth,
20
- GetDynamicActorPos,
21
- GetDynamicActorVirtualWorld,
22
- GetPlayerCameraTargetDynActor,
23
- GetPlayerTargetDynamicActor,
24
- IsDynamicActorInvulnerable,
25
- IsDynamicActorStreamedIn,
26
- IsValidDynamicActor,
27
- SetDynamicActorFacingAngle,
28
- SetDynamicActorHealth,
29
- SetDynamicActorInvulnerable,
30
- SetDynamicActorPos,
31
- SetDynamicActorVirtualWorld,
32
- StreamerDistances,
33
- StreamerItemTypes,
34
- } from "@infernus/streamer";
35
- import { Streamer } from "../common";
36
- import { actorBus, actorHooks } from "./actorBus";
37
-
38
- export class DynamicActor {
39
- private sourceInfo: IDynamicActor;
40
- private _id = -1;
41
- get id(): number {
42
- return this._id;
43
- }
44
- constructor(actor: IDynamicActor) {
45
- this.sourceInfo = actor;
46
- }
47
- create(): void | this {
48
- if (this.id !== -1)
49
- return logger.warn("[StreamerActor]: Unable to create actor again");
50
- let { streamdistance, worldid, interiorid, playerid, areaid, priority } =
51
- this.sourceInfo;
52
- const { modelid, x, y, z, r, invulnerable, health, extended } =
53
- this.sourceInfo;
54
-
55
- streamdistance ??= StreamerDistances.ACTOR_SD;
56
- priority ??= 0;
57
-
58
- if (extended) {
59
- if (typeof worldid === "number") worldid = [0];
60
- else worldid ??= [0];
61
- if (typeof interiorid === "number") interiorid = [-1];
62
- else interiorid ??= [-1];
63
- if (typeof playerid === "number") playerid = [-1];
64
- else playerid ??= [-1];
65
- if (typeof areaid === "number") areaid = [-1];
66
- else areaid ??= [-1];
67
-
68
- this._id = CreateDynamicActorEx(
69
- modelid,
70
- x,
71
- y,
72
- z,
73
- r,
74
- invulnerable,
75
- health,
76
- streamdistance,
77
- worldid,
78
- interiorid,
79
- playerid,
80
- areaid,
81
- priority
82
- );
83
- } else {
84
- if (Array.isArray(worldid)) worldid = 0;
85
- else worldid ??= 0;
86
- if (Array.isArray(interiorid)) interiorid = -1;
87
- else interiorid ??= -1;
88
- if (Array.isArray(playerid)) playerid = -1;
89
- else playerid ??= -1;
90
- if (Array.isArray(areaid)) areaid = -1;
91
- else areaid ??= -1;
92
-
93
- this._id = CreateDynamicActor(
94
- modelid,
95
- x,
96
- y,
97
- z,
98
- r,
99
- invulnerable,
100
- health,
101
- worldid,
102
- interiorid,
103
- playerid,
104
- streamdistance,
105
- areaid,
106
- priority
107
- );
108
- }
109
-
110
- actorBus.emit(actorHooks.created, this);
111
- return this;
112
- }
113
- destroy(): void | this {
114
- if (this.id === -1)
115
- return logger.warn(
116
- "[StreamerActor]: Unable to destroy the actor before create"
117
- );
118
- DestroyDynamicActor(this.id);
119
- actorBus.emit(actorHooks.destroyed, this);
120
- return this;
121
- }
122
- isValid(): boolean {
123
- return IsValidDynamicActor(this.id);
124
- }
125
- isStreamedIn<P extends Player>(forplayer: P): boolean {
126
- if (this.id === -1) return false;
127
- return IsDynamicActorStreamedIn(this.id, forplayer.id);
128
- }
129
- getVirtualWorld(): void | number {
130
- if (this.id === -1)
131
- return logger.warn(
132
- "[StreamerActor]: Unable to get virtual world before create"
133
- );
134
- return GetDynamicActorVirtualWorld(this.id);
135
- }
136
- setVirtualWorld(vworld: number): void | number {
137
- if (this.id === -1)
138
- return logger.warn(
139
- "[StreamerActor]: Unable to set virtual world before create"
140
- );
141
- return SetDynamicActorVirtualWorld(this.id, vworld);
142
- }
143
- applyAnimation(
144
- animLib: string,
145
- animName: string,
146
- loop = false,
147
- lockX = true,
148
- lockY = true,
149
- freeze = false
150
- ): void | number {
151
- if (this.id === -1)
152
- return logger.warn(
153
- "[StreamerActor]: Unable to apply animation before create"
154
- );
155
- const duration = getAnimateDurationByLibName(animLib, animName);
156
- if (duration === undefined)
157
- return logger.error("[StreamerActor]: Invalid anim library or name");
158
- return ApplyDynamicActorAnimation(
159
- this.id,
160
- animLib,
161
- animName,
162
- 4.1,
163
- loop,
164
- lockX,
165
- lockY,
166
- freeze,
167
- loop ? 0 : duration
168
- );
169
- }
170
- clearAnimations(): void | number {
171
- if (this.id === -1)
172
- return logger.warn(
173
- "[StreamerActor]: Unable to clear animation before create"
174
- );
175
- return ClearDynamicActorAnimations(this.id);
176
- }
177
- getFacingAngle(): void | number {
178
- if (this.id === -1)
179
- return logger.warn(
180
- "[StreamerActor]: Unable to get facing angle before create"
181
- );
182
- return GetDynamicActorFacingAngle(this.id);
183
- }
184
- setFacingAngle(ang: number): void | number {
185
- if (this.id === -1)
186
- return logger.warn(
187
- "[StreamerActor]: Unable to set facing angle before create"
188
- );
189
- return SetDynamicActorFacingAngle(this.id, ang);
190
- }
191
- getPos() {
192
- if (this.id === -1)
193
- return logger.warn("[StreamerActor]: Unable to get pos before create");
194
- return GetDynamicActorPos(this.id);
195
- }
196
- setPos(x: number, y: number, z: number): void | number {
197
- if (this.id === -1)
198
- return logger.warn("[StreamerActor]: Unable to set pos before create");
199
- return SetDynamicActorPos(this.id, x, y, z);
200
- }
201
- getHealth(): void | number {
202
- if (this.id === -1)
203
- return logger.warn("[StreamerActor]: Unable to get health before create");
204
- return GetDynamicActorHealth(this.id);
205
- }
206
- setHealth(health: number): void | number {
207
- if (this.id === -1)
208
- return logger.warn("[StreamerActor]: Unable to set health before create");
209
- return SetDynamicActorHealth(this.id, health);
210
- }
211
- isInvulnerable(): boolean {
212
- if (this.id === -1) return false;
213
- return IsDynamicActorInvulnerable(this.id);
214
- }
215
- setInvulnerable(invulnerable = true): void | number {
216
- if (this.id === -1)
217
- return logger.warn(
218
- "[StreamerActor]: Unable to set invulnerable before create"
219
- );
220
- return SetDynamicActorInvulnerable(this.id, invulnerable);
221
- }
222
- getPlayerTarget<P extends Player, A extends DynamicActor>(
223
- player: P,
224
- actors: Map<number, A>
225
- ): void | A {
226
- if (this.id === -1) return undefined;
227
- const actorId = GetPlayerTargetDynamicActor(player.id);
228
- return actors.get(actorId);
229
- }
230
- getPlayerCameraTarget<P extends Player, A extends DynamicActor>(
231
- player: P,
232
- actors: Map<number, A>
233
- ): void | A {
234
- if (this.id === -1) return undefined;
235
- const actorId = GetPlayerCameraTargetDynActor(player.id);
236
- return actors.get(actorId);
237
- }
238
- getSkin(): void | number {
239
- if (this.id === -1)
240
- return logger.warn("[StreamerActor]: Unable to get skin before create");
241
- return GetActorSkin(this.id);
242
- }
243
- setSkin(model: number, ignoreRange = false): void | number {
244
- if (this.id === -1)
245
- return logger.warn("[StreamerActor]: Unable to set skin before create");
246
- if (!ignoreRange && (model < 0 || model > 311 || model == 74)) return 0;
247
- return SetActorSkin(this.id, model);
248
- }
249
- getSpawnInfo() {
250
- if (this.id === -1)
251
- return logger.warn(
252
- "[StreamerActor]: Unable to get spawn info before create"
253
- );
254
- return GetActorSpawnInfo(this.id);
255
- }
256
- getAnimation() {
257
- if (this.id === -1)
258
- return logger.warn(
259
- "[StreamerActor]: Unable to get animation before create"
260
- );
261
- return GetActorAnimation(this.id);
262
- }
263
- toggleCallbacks(toggle = true): void | number {
264
- if (this.id === -1)
265
- return logger.warn(
266
- "[StreamerActor]: Unable to toggle callbacks before create"
267
- );
268
- return Streamer.toggleItemCallbacks(
269
- StreamerItemTypes.ACTOR,
270
- this.id,
271
- toggle
272
- );
273
- }
274
- isToggleCallbacks(): boolean {
275
- if (this.id === -1) false;
276
- return Streamer.isToggleItemCallbacks(StreamerItemTypes.ACTOR, this.id);
277
- }
278
- }
@@ -1,2 +0,0 @@
1
- export * from "./baseActor";
2
- export * from "./actorEvent";
@@ -1,8 +0,0 @@
1
- import { EventBus } from "@/utils/eventBus";
2
-
3
- export enum areaHooks {
4
- created = "OnAreaCreate",
5
- destroyed = "OnAreaDestroy",
6
- }
7
-
8
- export const areaBus = new EventBus();