@infernus/core 0.8.7 → 0.9.0

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 (105) hide show
  1. package/dist/bundle.js +1 -1
  2. package/dist/bundle.mjs +1 -0
  3. package/package.json +10 -3
  4. package/rollup.config.mjs +5 -2
  5. package/.eslintrc +0 -3
  6. package/src/controllers/command/index.ts +0 -57
  7. package/src/controllers/filterscript/index.ts +0 -69
  8. package/src/controllers/gamemode/index.ts +0 -277
  9. package/src/controllers/gamemode/settings.ts +0 -3
  10. package/src/controllers/gametext/index.ts +0 -61
  11. package/src/controllers/gangzone/baseGangZone.ts +0 -284
  12. package/src/controllers/gangzone/gangZoneBus.ts +0 -8
  13. package/src/controllers/gangzone/gangZoneEvent.ts +0 -91
  14. package/src/controllers/gangzone/index.ts +0 -2
  15. package/src/controllers/i18n/index.ts +0 -81
  16. package/src/controllers/index.ts +0 -12
  17. package/src/controllers/menu/baseMenu.ts +0 -203
  18. package/src/controllers/menu/index.ts +0 -2
  19. package/src/controllers/menu/menuBus.ts +0 -8
  20. package/src/controllers/menu/menuEvent.ts +0 -76
  21. package/src/controllers/netstats/index.ts +0 -43
  22. package/src/controllers/npc/index.ts +0 -2
  23. package/src/controllers/npc/npcEvent.ts +0 -26
  24. package/src/controllers/npc/npcFunc.ts +0 -64
  25. package/src/controllers/player/basePlayer.ts +0 -980
  26. package/src/controllers/player/index.ts +0 -3
  27. package/src/controllers/player/pauseChecker.ts +0 -39
  28. package/src/controllers/player/playerBus.ts +0 -9
  29. package/src/controllers/player/playerEvent.ts +0 -468
  30. package/src/controllers/promise/client/index.ts +0 -31
  31. package/src/controllers/promise/dialog/index.ts +0 -143
  32. package/src/controllers/textdraw/baseTextDraw.ts +0 -416
  33. package/src/controllers/textdraw/index.ts +0 -2
  34. package/src/controllers/textdraw/textdrawBus.ts +0 -8
  35. package/src/controllers/textdraw/textdrawEvent.ts +0 -61
  36. package/src/controllers/vehicle/baseVehicle.ts +0 -503
  37. package/src/controllers/vehicle/index.ts +0 -2
  38. package/src/controllers/vehicle/vehicleBus.ts +0 -8
  39. package/src/controllers/vehicle/vehicleEvent.ts +0 -201
  40. package/src/enums/artwork.ts +0 -5
  41. package/src/enums/clickSources.ts +0 -3
  42. package/src/enums/dialogStyles.ts +0 -8
  43. package/src/enums/editResponseTypes.ts +0 -5
  44. package/src/enums/index.ts +0 -18
  45. package/src/enums/invalid.ts +0 -13
  46. package/src/enums/keys.ts +0 -25
  47. package/src/enums/limits.ts +0 -18
  48. package/src/enums/marker.ts +0 -5
  49. package/src/enums/netstat.ts +0 -11
  50. package/src/enums/npc.ts +0 -11
  51. package/src/enums/object.ts +0 -25
  52. package/src/enums/player.ts +0 -92
  53. package/src/enums/record.ts +0 -5
  54. package/src/enums/specialActions.ts +0 -22
  55. package/src/enums/streamer.ts +0 -10
  56. package/src/enums/textdrawFonts.ts +0 -23
  57. package/src/enums/vehicle.ts +0 -32
  58. package/src/enums/weapon.ts +0 -82
  59. package/src/interfaces/index.ts +0 -233
  60. package/src/logger/index.ts +0 -24
  61. package/src/main.ts +0 -6
  62. package/src/types/index.ts +0 -48
  63. package/src/utils/EventBus.ts +0 -60
  64. package/src/utils/animateUtils.ts +0 -2504
  65. package/src/utils/colorUtils.ts +0 -43
  66. package/src/utils/helperUtils.ts +0 -403
  67. package/src/utils/vehicleUtils.ts +0 -321
  68. package/src/wrapper/native/callbacks/index.ts +0 -395
  69. package/src/wrapper/native/functions/index.ts +0 -3131
  70. package/src/wrapper/streamer/3dtext/3dTextBus.ts +0 -8
  71. package/src/wrapper/streamer/3dtext/3dTextEvent.ts +0 -70
  72. package/src/wrapper/streamer/3dtext/base3DText.ts +0 -184
  73. package/src/wrapper/streamer/3dtext/index.ts +0 -2
  74. package/src/wrapper/streamer/actor/actorBus.ts +0 -8
  75. package/src/wrapper/streamer/actor/actorEvent.ts +0 -95
  76. package/src/wrapper/streamer/actor/baseActor.ts +0 -278
  77. package/src/wrapper/streamer/actor/index.ts +0 -2
  78. package/src/wrapper/streamer/area/areaBus.ts +0 -8
  79. package/src/wrapper/streamer/area/areaEvent.ts +0 -99
  80. package/src/wrapper/streamer/area/baseArea.ts +0 -450
  81. package/src/wrapper/streamer/area/index.ts +0 -2
  82. package/src/wrapper/streamer/checkpoint/baseCheckpoint.ts +0 -136
  83. package/src/wrapper/streamer/checkpoint/checkPointBus.ts +0 -8
  84. package/src/wrapper/streamer/checkpoint/checkPointEvent.ts +0 -100
  85. package/src/wrapper/streamer/checkpoint/index.ts +0 -2
  86. package/src/wrapper/streamer/common/index.ts +0 -318
  87. package/src/wrapper/streamer/index.ts +0 -9
  88. package/src/wrapper/streamer/mapIcon/baseMapIcon.ts +0 -128
  89. package/src/wrapper/streamer/mapIcon/index.ts +0 -2
  90. package/src/wrapper/streamer/mapIcon/mapIconBus.ts +0 -8
  91. package/src/wrapper/streamer/mapIcon/mapIconEvent.ts +0 -67
  92. package/src/wrapper/streamer/object/baseObject.ts +0 -415
  93. package/src/wrapper/streamer/object/index.ts +0 -2
  94. package/src/wrapper/streamer/object/objectBus.ts +0 -8
  95. package/src/wrapper/streamer/object/objectEvent.ts +0 -177
  96. package/src/wrapper/streamer/pickup/basePickup.ts +0 -114
  97. package/src/wrapper/streamer/pickup/index.ts +0 -2
  98. package/src/wrapper/streamer/pickup/pickupBus.ts +0 -8
  99. package/src/wrapper/streamer/pickup/pickupEvent.ts +0 -84
  100. package/src/wrapper/streamer/raceCP/baseRaceCP.ts +0 -151
  101. package/src/wrapper/streamer/raceCP/index.ts +0 -2
  102. package/src/wrapper/streamer/raceCP/raceCPBus.ts +0 -8
  103. package/src/wrapper/streamer/raceCP/raceCPEvent.ts +0 -100
  104. package/tsconfig.json +0 -16
  105. /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
- }