@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,100 +0,0 @@
1
- import type { Player } from "@/controllers/player";
2
- import type { TCommonCallback } from "@/types";
3
- import { promisifyCallback } from "@/utils/helperUtils";
4
- import { OnGameModeExit } from "@/wrapper/native/callbacks";
5
- import {
6
- OnPlayerEnterDynamicCP,
7
- OnPlayerLeaveDynamicCP,
8
- StreamerItemTypes,
9
- } from "@infernus/streamer";
10
- import { Streamer } from "../common";
11
- import type { DynamicCheckpoint } from "./baseCheckpoint";
12
- import { checkPointBus, checkPointHooks } from "./checkPointBus";
13
-
14
- export class DynamicCheckPointEvent<
15
- P extends Player,
16
- C extends DynamicCheckpoint
17
- > {
18
- private readonly checkpoints = new Map<number, C>();
19
- private readonly players;
20
-
21
- constructor(playersMap: Map<number, P>, destroyOnExit = true) {
22
- this.players = playersMap;
23
- checkPointBus.on(checkPointHooks.created, (checkpoint: C) => {
24
- this.checkpoints.set(checkpoint.id, checkpoint);
25
- });
26
- checkPointBus.on(checkPointHooks.destroyed, (checkpoint: C) => {
27
- this.checkpoints.delete(checkpoint.id);
28
- });
29
- if (destroyOnExit) {
30
- OnGameModeExit(() => {
31
- this.checkpoints.forEach((c) => c.destroy());
32
- this.checkpoints.clear();
33
- });
34
- }
35
-
36
- OnPlayerEnterDynamicCP((playerid: number, checkpointid: number): number => {
37
- const cp = this.checkpoints.get(checkpointid);
38
- if (!cp) return 0;
39
- const p = this.players.get(playerid);
40
- if (!p) return 0;
41
- const pFn = promisifyCallback(
42
- this,
43
- "onPlayerEnter",
44
- "OnPlayerEnterDynamicCP"
45
- );
46
- return pFn(p, cp);
47
- });
48
- OnPlayerLeaveDynamicCP((playerid: number, checkpointid: number): number => {
49
- const cp = this.checkpoints.get(checkpointid);
50
- if (!cp) return 0;
51
- const p = this.players.get(playerid);
52
- if (!p) return 0;
53
- const pFn = promisifyCallback(
54
- this,
55
- "onPlayerLeave",
56
- "OnPlayerLeaveDynamicCP"
57
- );
58
- return pFn(p, cp);
59
- });
60
- Streamer.onItemStreamIn((type, item, player) => {
61
- if (type === StreamerItemTypes.CP) {
62
- const cp = this.checkpoints.get(item);
63
- const p = this.players.get(player);
64
- if (cp && p)
65
- return promisifyCallback(
66
- this,
67
- "onStreamIn",
68
- "Streamer_OnItemStreamIn"
69
- )(cp, p);
70
- }
71
- return 1;
72
- });
73
- Streamer.onItemStreamOut((type, item, player) => {
74
- if (type === StreamerItemTypes.CP) {
75
- const cp = this.checkpoints.get(item);
76
- const p = this.players.get(player);
77
- if (cp && p)
78
- return promisifyCallback(
79
- this,
80
- "onStreamOut",
81
- "Streamer_OnItemStreamOut"
82
- )(cp, p);
83
- }
84
- return 1;
85
- });
86
- }
87
-
88
- onPlayerEnter?(player: P, checkpoint: C): TCommonCallback;
89
- onPlayerLeave?(player: P, checkpoint: C): TCommonCallback;
90
- onStreamIn?(checkpoint: C, player: P): TCommonCallback;
91
- onStreamOut?(checkpoint: C, player: P): TCommonCallback;
92
-
93
- getCheckPointsArr(): Array<C> {
94
- return [...this.checkpoints.values()];
95
- }
96
-
97
- getCheckPointsMap(): Map<number, C> {
98
- return this.checkpoints;
99
- }
100
- }
@@ -1,2 +0,0 @@
1
- export * from "./baseCheckpoint";
2
- export * from "./checkPointEvent";
@@ -1,318 +0,0 @@
1
- import { Player } from "@/controllers/player";
2
- import type { StreamerItemTypes } from "@infernus/streamer";
3
- import {
4
- Streamer_AmxUnloadDestroyItems,
5
- Streamer_AppendArrayData,
6
- Streamer_CountItems,
7
- Streamer_CountVisibleItems,
8
- Streamer_DestroyAllItems,
9
- Streamer_DestroyAllVisibleItems,
10
- Streamer_GetAllVisibleItems,
11
- Streamer_GetArrayData,
12
- Streamer_GetArrayDataLength,
13
- Streamer_GetCellDistance,
14
- Streamer_GetCellSize,
15
- Streamer_GetChunkSize,
16
- Streamer_GetChunkTickRate,
17
- Streamer_GetDistanceToItem,
18
- Streamer_GetFloatData,
19
- Streamer_GetIntData,
20
- Streamer_GetItemInternalID,
21
- Streamer_GetItemOffset,
22
- Streamer_GetItemPos,
23
- Streamer_GetItemStreamerID,
24
- Streamer_GetLastUpdateTime,
25
- Streamer_GetMaxItems,
26
- Streamer_GetNearbyItems,
27
- Streamer_GetPlayerTickRate,
28
- Streamer_GetRadiusMultiplier,
29
- Streamer_GetTickRate,
30
- Streamer_GetTypePriority,
31
- Streamer_GetUpperBound,
32
- Streamer_GetVisibleItems,
33
- Streamer_IsInArrayData,
34
- Streamer_IsItemVisible,
35
- Streamer_IsToggleCameraUpdate,
36
- Streamer_IsToggleChunkStream,
37
- Streamer_IsToggleErrorCallback,
38
- Streamer_IsToggleIdleUpdate,
39
- Streamer_IsToggleItem,
40
- Streamer_IsToggleItemCallbacks,
41
- Streamer_IsToggleItemInvAreas,
42
- Streamer_IsToggleItemStatic,
43
- Streamer_IsToggleItemUpdate,
44
- Streamer_OnItemStreamIn,
45
- Streamer_OnItemStreamOut,
46
- Streamer_OnPluginError,
47
- Streamer_ProcessActiveItems,
48
- Streamer_RemoveArrayData,
49
- Streamer_SetArrayData,
50
- Streamer_SetCellDistance,
51
- Streamer_SetCellSize,
52
- Streamer_SetChunkSize,
53
- Streamer_SetChunkTickRate,
54
- Streamer_SetFloatData,
55
- Streamer_SetIntData,
56
- Streamer_SetItemOffset,
57
- Streamer_SetItemPos,
58
- Streamer_SetMaxItems,
59
- Streamer_SetPlayerTickRate,
60
- Streamer_SetRadiusMultiplier,
61
- Streamer_SetTickRate,
62
- Streamer_SetTypePriority,
63
- Streamer_SetVisibleItems,
64
- Streamer_ToggleAllItems,
65
- Streamer_ToggleCameraUpdate,
66
- Streamer_ToggleChunkStream,
67
- Streamer_ToggleErrorCallback,
68
- Streamer_ToggleIdleUpdate,
69
- Streamer_ToggleItem,
70
- Streamer_ToggleItemCallbacks,
71
- Streamer_ToggleItemInvAreas,
72
- Streamer_ToggleItemStatic,
73
- Streamer_ToggleItemUpdate,
74
- Streamer_Update,
75
- Streamer_UpdateEx,
76
- } from "@infernus/streamer";
77
-
78
- export class Streamer {
79
- // eslint-disable-next-line @typescript-eslint/no-empty-function
80
- private constructor() {}
81
- static getTickRate = Streamer_GetTickRate;
82
- static setTickRate = Streamer_SetTickRate;
83
- static getPlayerTickRate<P extends Player>(player: P): number {
84
- return Streamer_GetPlayerTickRate(player.id);
85
- }
86
- static setPlayerTickRate<P extends Player>(player: P, rate = 50): number {
87
- return Streamer_SetPlayerTickRate(player.id, rate);
88
- }
89
- static toggleChunkStream = Streamer_ToggleChunkStream;
90
- static isToggleChunkStream = Streamer_IsToggleChunkStream;
91
- static getChunkTickRate<P extends Player>(
92
- type: StreamerItemTypes,
93
- player: number | P = -1
94
- ): number {
95
- if (player instanceof Player) {
96
- return Streamer_GetChunkTickRate(type, player.id);
97
- }
98
- return Streamer_GetChunkTickRate(type, player);
99
- }
100
- static setChunkTickRate<P extends Player>(
101
- type: StreamerItemTypes,
102
- rate: number,
103
- player: number | P = -1
104
- ): number {
105
- if (player instanceof Player) {
106
- return Streamer_SetChunkTickRate(type, rate, player.id);
107
- }
108
- return Streamer_SetChunkTickRate(type, rate, player);
109
- }
110
- static getChunkSize = Streamer_GetChunkSize;
111
- static setChunkSize = Streamer_SetChunkSize;
112
- static getMaxItems = Streamer_GetMaxItems;
113
- static setMaxItems = Streamer_SetMaxItems;
114
- static getVisibleItems<P extends Player>(
115
- type: StreamerItemTypes,
116
- player: number | P = -1
117
- ): number {
118
- if (player instanceof Player) {
119
- return Streamer_GetVisibleItems(type, player.id);
120
- }
121
- return Streamer_GetVisibleItems(type, player);
122
- }
123
- static setVisibleItems<P extends Player>(
124
- type: StreamerItemTypes,
125
- items: number,
126
- player: number | P = -1
127
- ): number {
128
- if (player instanceof Player) {
129
- return Streamer_SetVisibleItems(type, items, player.id);
130
- }
131
- return Streamer_SetVisibleItems(type, items, player);
132
- }
133
- static getRadiusMultiplier<P extends Player>(
134
- type: StreamerItemTypes,
135
- player: number | P = -1
136
- ): number {
137
- if (player instanceof Player) {
138
- return Streamer_GetRadiusMultiplier(type, player.id);
139
- }
140
- return Streamer_GetRadiusMultiplier(type, player);
141
- }
142
- static setRadiusMultiplier<P extends Player>(
143
- type: StreamerItemTypes,
144
- multiplier: number,
145
- player: number | P = -1
146
- ): number {
147
- if (player instanceof Player) {
148
- return Streamer_SetRadiusMultiplier(type, player.id);
149
- }
150
- return Streamer_SetRadiusMultiplier(type, multiplier, player);
151
- }
152
- static getTypePriority = Streamer_GetTypePriority;
153
- static setTypePriority = Streamer_SetTypePriority;
154
- static getCellDistance = Streamer_GetCellDistance;
155
- static setCellDistance = Streamer_SetCellDistance;
156
- static getCellSize = Streamer_GetCellSize;
157
- static setCellSize = Streamer_SetCellSize;
158
- static toggleItemStatic = Streamer_ToggleItemStatic;
159
- static isToggleItemStatic = Streamer_IsToggleItemStatic;
160
- static toggleItemInvAreas = Streamer_ToggleItemInvAreas;
161
- static isToggleItemInvAreas = Streamer_IsToggleItemInvAreas;
162
- static toggleItemCallbacks = Streamer_ToggleItemCallbacks;
163
- static isToggleItemCallbacks = Streamer_IsToggleItemCallbacks;
164
- static toggleErrorCallback = Streamer_ToggleErrorCallback;
165
- static isToggleErrorCallback = Streamer_IsToggleErrorCallback;
166
- static amxUnloadDestroyItems = Streamer_AmxUnloadDestroyItems;
167
- static processActiveItems = Streamer_ProcessActiveItems;
168
- static toggleIdleUpdate<P extends Player>(
169
- player: P,
170
- toggle: boolean
171
- ): number {
172
- return Streamer_ToggleIdleUpdate(player.id, toggle);
173
- }
174
- static isToggleIdleUpdate<P extends Player>(player: P): boolean {
175
- return Streamer_IsToggleIdleUpdate(player.id);
176
- }
177
- static toggleCameraUpdate<P extends Player>(
178
- player: P,
179
- toggle: boolean
180
- ): number {
181
- return Streamer_ToggleCameraUpdate(player.id, toggle);
182
- }
183
- static isToggleCameraUpdate<P extends Player>(player: P): boolean {
184
- return Streamer_IsToggleCameraUpdate(player.id);
185
- }
186
- static toggleItemUpdate<P extends Player>(
187
- player: P,
188
- type: StreamerItemTypes,
189
- toggle: boolean
190
- ): number {
191
- return Streamer_ToggleItemUpdate(player.id, type, toggle);
192
- }
193
- static isToggleItemUpdate<P extends Player>(
194
- player: P,
195
- type: StreamerItemTypes
196
- ): boolean {
197
- return Streamer_IsToggleItemUpdate(player.id, type);
198
- }
199
- static getLastUpdateTime(): number {
200
- return Streamer_GetLastUpdateTime();
201
- }
202
- static update<P extends Player>(
203
- player: P,
204
- type: StreamerItemTypes | -1 = -1
205
- ): number {
206
- return Streamer_Update(player.id, type);
207
- }
208
- static updateEx<P extends Player>(
209
- player: P,
210
- x: number,
211
- y: number,
212
- z: number,
213
- worldid?: number,
214
- interiorid?: number,
215
- type?: StreamerItemTypes | -1,
216
- compensatedtime?: number,
217
- freezeplayer?: boolean
218
- ): number {
219
- return Streamer_UpdateEx(
220
- player.id,
221
- x,
222
- y,
223
- z,
224
- worldid,
225
- interiorid,
226
- type,
227
- compensatedtime,
228
- freezeplayer
229
- );
230
- }
231
- static getDistanceToItem = Streamer_GetDistanceToItem;
232
- static toggleItem<P extends Player>(
233
- player: P,
234
- type: StreamerItemTypes,
235
- id: number,
236
- toggle: boolean
237
- ): number {
238
- return Streamer_ToggleItem(player.id, type, id, toggle);
239
- }
240
- static isToggleItem<P extends Player>(
241
- player: P,
242
- type: StreamerItemTypes,
243
- id: number
244
- ): boolean {
245
- return Streamer_IsToggleItem(player.id, type, id);
246
- }
247
- static toggleAllItems<P extends Player>(
248
- player: P,
249
- type: StreamerItemTypes,
250
- toggle: boolean,
251
- exceptions: number[] = [-1]
252
- ): number {
253
- return Streamer_ToggleAllItems(player.id, type, toggle, exceptions);
254
- }
255
- static getItemInternalID<P extends Player>(
256
- player: P,
257
- type: StreamerItemTypes,
258
- streamerid: number
259
- ): number {
260
- return Streamer_GetItemInternalID(player.id, type, streamerid);
261
- }
262
- static getItemStreamerID<P extends Player>(
263
- player: P,
264
- type: StreamerItemTypes,
265
- internalid: number
266
- ): number {
267
- return Streamer_GetItemStreamerID(player.id, type, internalid);
268
- }
269
- static isItemVisible<P extends Player>(
270
- player: P,
271
- type: StreamerItemTypes,
272
- id: number
273
- ): boolean {
274
- return Streamer_IsItemVisible(player.id, type, id);
275
- }
276
- static destroyAllVisibleItems<P extends Player>(
277
- player: P,
278
- type: StreamerItemTypes,
279
- serverwide = 1
280
- ): number {
281
- return Streamer_DestroyAllVisibleItems(player.id, type, serverwide);
282
- }
283
- static countVisibleItems<P extends Player>(
284
- player: P,
285
- type: StreamerItemTypes,
286
- serverwide = 1
287
- ): number {
288
- return Streamer_CountVisibleItems(player.id, type, serverwide);
289
- }
290
- static destroyAllItems = Streamer_DestroyAllItems;
291
- static countItems = Streamer_CountItems;
292
- static getNearbyItems = Streamer_GetNearbyItems;
293
- static getAllVisibleItems<P extends Player>(
294
- player: P,
295
- type: StreamerItemTypes,
296
- items: number[]
297
- ): void {
298
- Streamer_GetAllVisibleItems(player.id, type, items);
299
- }
300
- static getItemPos = Streamer_GetItemPos;
301
- static setItemPos = Streamer_SetItemPos;
302
- static getItemOffset = Streamer_GetItemOffset;
303
- static setItemOffset = Streamer_SetItemOffset;
304
- static getFloatData = Streamer_GetFloatData;
305
- static setFloatData = Streamer_SetFloatData;
306
- static getIntData = Streamer_GetIntData;
307
- static setIntData = Streamer_SetIntData;
308
- static getArrayData = Streamer_GetArrayData;
309
- static setArrayData = Streamer_SetArrayData;
310
- static isInArrayData = Streamer_IsInArrayData;
311
- static appendArrayData = Streamer_AppendArrayData;
312
- static removeArrayData = Streamer_RemoveArrayData;
313
- static getArrayDataLength = Streamer_GetArrayDataLength;
314
- static getUpperBound = Streamer_GetUpperBound;
315
- static onItemStreamIn = Streamer_OnItemStreamIn;
316
- static onItemStreamOut = Streamer_OnItemStreamOut;
317
- static onPluginError = Streamer_OnPluginError;
318
- }
@@ -1,9 +0,0 @@
1
- export * from "./mapIcon";
2
- export * from "./pickup";
3
- export * from "./checkpoint";
4
- export * from "./raceCP";
5
- export * from "./actor";
6
- export * from "./3dtext";
7
- export * from "./common";
8
- export * from "./object";
9
- export * from "./area";
@@ -1,128 +0,0 @@
1
- import type { IDynamicMapIcon } from "@/interfaces";
2
- import { logger } from "@/logger";
3
- import { rgba } from "@/utils/colorUtils";
4
-
5
- import {
6
- IsValidDynamicMapIcon,
7
- DestroyDynamicMapIcon,
8
- StreamerDistances,
9
- CreateDynamicMapIconEx,
10
- CreateDynamicMapIcon,
11
- MapIconStyles,
12
- StreamerItemTypes,
13
- } from "@infernus/streamer";
14
- import { Streamer } from "../common";
15
- import { mapIconBus, mapIconHooks } from "./mapIconBus";
16
-
17
- export class DynamicMapIcon {
18
- private sourceInfo: IDynamicMapIcon;
19
- private _id = -1;
20
- get id(): number {
21
- return this._id;
22
- }
23
- constructor(mapIcon: IDynamicMapIcon) {
24
- this.sourceInfo = mapIcon;
25
- }
26
- create(): void | this {
27
- if (this.id !== -1)
28
- return logger.warn("[StreamerMapIcon]: Unable to create map icon again");
29
- let {
30
- style,
31
- streamdistance,
32
- worldid,
33
- interiorid,
34
- playerid,
35
- areaid,
36
- priority,
37
- } = this.sourceInfo;
38
- const { x, y, z, type, colour, extended } = this.sourceInfo;
39
-
40
- if (type < 0 || type > 63)
41
- return logger.error("[StreamerMapIcon]: Invalid map icon type");
42
-
43
- style ??= MapIconStyles.LOCAL;
44
- streamdistance ??= StreamerDistances.MAP_ICON_SD;
45
- priority ??= 0;
46
-
47
- if (extended) {
48
- if (typeof worldid === "number") worldid = [-1];
49
- else worldid ??= [-1];
50
- if (typeof interiorid === "number") interiorid = [-1];
51
- else interiorid ??= [-1];
52
- if (typeof playerid === "number") playerid = [-1];
53
- else playerid ??= [-1];
54
- if (typeof areaid === "number") areaid = [-1];
55
- else areaid ??= [-1];
56
-
57
- this._id = CreateDynamicMapIconEx(
58
- x,
59
- y,
60
- z,
61
- type,
62
- rgba(colour),
63
- style,
64
- streamdistance,
65
- worldid,
66
- interiorid,
67
- playerid,
68
- areaid,
69
- priority
70
- );
71
- mapIconBus.emit(mapIconHooks.created, this);
72
- return this;
73
- }
74
-
75
- if (Array.isArray(worldid)) worldid = -1;
76
- else worldid ??= -1;
77
- if (Array.isArray(interiorid)) interiorid = -1;
78
- else interiorid ??= -1;
79
- if (Array.isArray(playerid)) playerid = -1;
80
- else playerid ??= -1;
81
- if (Array.isArray(areaid)) areaid = -1;
82
- else areaid ??= -1;
83
-
84
- this._id = CreateDynamicMapIcon(
85
- x,
86
- y,
87
- z,
88
- type,
89
- rgba(colour),
90
- worldid,
91
- interiorid,
92
- playerid,
93
- streamdistance,
94
- style,
95
- areaid,
96
- priority
97
- );
98
- mapIconBus.emit(mapIconHooks.created, this);
99
- return this;
100
- }
101
- destroy(): void | this {
102
- if (this.id === -1)
103
- return logger.warn(
104
- "[StreamerMapIcon]: Unable to destroy the map icon before create"
105
- );
106
- DestroyDynamicMapIcon(this.id);
107
- mapIconBus.emit(mapIconHooks.destroyed, this);
108
- return this;
109
- }
110
- isValid(): boolean {
111
- return IsValidDynamicMapIcon(this.id);
112
- }
113
- toggleCallbacks(toggle = true): void | number {
114
- if (this.id === -1)
115
- return logger.warn(
116
- "[StreamerMapIcon]: Unable to toggle callbacks before create"
117
- );
118
- return Streamer.toggleItemCallbacks(
119
- StreamerItemTypes.MAP_ICON,
120
- this.id,
121
- toggle
122
- );
123
- }
124
- isToggleCallbacks(): boolean {
125
- if (this.id === -1) false;
126
- return Streamer.isToggleItemCallbacks(StreamerItemTypes.MAP_ICON, this.id);
127
- }
128
- }
@@ -1,2 +0,0 @@
1
- export * from "./baseMapIcon";
2
- export * from "./mapIconEvent";
@@ -1,8 +0,0 @@
1
- import { EventBus } from "@/utils/eventBus";
2
-
3
- export enum mapIconHooks {
4
- created = "OnMapIconCreate",
5
- destroyed = "OnMapIconDestroy",
6
- }
7
-
8
- export const mapIconBus = new EventBus();
@@ -1,67 +0,0 @@
1
- import type { Player } from "@/controllers/player";
2
- import type { TCommonCallback } from "@/types";
3
- import { promisifyCallback } from "@/utils/helperUtils";
4
- import { OnGameModeExit } from "@/wrapper/native/callbacks";
5
- import { StreamerItemTypes } from "@infernus/streamer";
6
- import { Streamer } from "../common";
7
- import type { DynamicMapIcon } from "./baseMapIcon";
8
-
9
- import { mapIconBus, mapIconHooks } from "./mapIconBus";
10
-
11
- export class DynamicMapIconEvent<P extends Player, M extends DynamicMapIcon> {
12
- private readonly mapIcons = new Map<number, M>();
13
- private readonly players;
14
-
15
- constructor(playersMap: Map<number, P>, destroyOnExit = true) {
16
- this.players = playersMap;
17
- mapIconBus.on(mapIconHooks.created, (mapIcon: M) => {
18
- this.mapIcons.set(mapIcon.id, mapIcon);
19
- });
20
- mapIconBus.on(mapIconHooks.destroyed, (mapIcon: M) => {
21
- this.mapIcons.delete(mapIcon.id);
22
- });
23
- if (destroyOnExit) {
24
- OnGameModeExit(() => {
25
- this.mapIcons.forEach((c) => c.destroy());
26
- this.mapIcons.clear();
27
- });
28
- }
29
- Streamer.onItemStreamIn((type, item, player) => {
30
- if (type === StreamerItemTypes.MAP_ICON) {
31
- const mi = this.mapIcons.get(item);
32
- const p = this.players.get(player);
33
- if (mi && p)
34
- return promisifyCallback(
35
- this,
36
- "onStreamIn",
37
- "Streamer_OnItemStreamIn"
38
- )(mi, p);
39
- }
40
- return 1;
41
- });
42
- Streamer.onItemStreamOut((type, item, player) => {
43
- if (type === StreamerItemTypes.MAP_ICON) {
44
- const mi = this.mapIcons.get(item);
45
- const p = this.players.get(player);
46
- if (mi && p)
47
- return promisifyCallback(
48
- this,
49
- "onStreamOut",
50
- "Streamer_OnItemStreamOut"
51
- )(mi, p);
52
- }
53
- return 1;
54
- });
55
- }
56
-
57
- onStreamIn?(mapIcon: M, player: P): TCommonCallback;
58
- onStreamOut?(mapIcon: M, player: P): TCommonCallback;
59
-
60
- getMapIconsArr(): Array<M> {
61
- return [...this.mapIcons.values()];
62
- }
63
-
64
- getMapIconsMap(): Map<number, M> {
65
- return this.mapIcons;
66
- }
67
- }