@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,415 +0,0 @@
1
- import { InvalidEnum } from "@/enums";
2
- import type { IDynamicObject } from "@/interfaces";
3
- import type { Vehicle } from "@/controllers/vehicle";
4
- import type { Player } from "@/controllers/player";
5
- import { logger } from "@/logger";
6
- import { objectBus, objectHooks } from "./objectBus";
7
- import { rgba } from "@/utils/colorUtils";
8
- import {
9
- GetDynamicObjectMaterialText,
10
- SetDynamicObjectMaterialText,
11
- } from "@/utils/helperUtils";
12
- import {
13
- AttachCameraToDynamicObject,
14
- AttachDynamicObjectToObject,
15
- AttachDynamicObjectToPlayer,
16
- AttachDynamicObjectToVehicle,
17
- CreateDynamicObject,
18
- CreateDynamicObjectEx,
19
- DestroyDynamicObject,
20
- EditDynamicObject,
21
- GetDynamicObjectMaterial,
22
- GetDynamicObjectPos,
23
- GetDynamicObjectRot,
24
- GetPlayerCameraTargetDynObject,
25
- IsDynamicObjectMaterialTextUsed,
26
- IsDynamicObjectMaterialUsed,
27
- IsDynamicObjectMoving,
28
- IsValidDynamicObject,
29
- MaterialTextSizes,
30
- MoveDynamicObject,
31
- RemoveDynamicObjectMaterial,
32
- RemoveDynamicObjectMaterialText,
33
- SetDynamicObjectMaterial,
34
- SetDynamicObjectPos,
35
- SetDynamicObjectRot,
36
- StopDynamicObject,
37
- StreamerDistances,
38
- StreamerItemTypes,
39
- } from "@infernus/streamer";
40
- import { Streamer } from "../common";
41
- import { defaultCharset } from "@/controllers/gamemode/settings";
42
-
43
- export class DynamicObject {
44
- private sourceInfo: IDynamicObject;
45
- private _id = -1;
46
- get id(): number {
47
- return this._id;
48
- }
49
-
50
- constructor(object: IDynamicObject) {
51
- this.sourceInfo = object;
52
- }
53
-
54
- create(): void | this {
55
- if (this.id !== -1)
56
- return logger.warn("[StreamerObject]: Unable to create object again");
57
- let {
58
- streamdistance,
59
- drawdistance,
60
- worldid,
61
- interiorid,
62
- playerid,
63
- areaid,
64
- priority,
65
- } = this.sourceInfo;
66
- const { modelid, x, y, z, rx, ry, rz, extended } = this.sourceInfo;
67
-
68
- streamdistance ??= StreamerDistances.OBJECT_SD;
69
- drawdistance ??= StreamerDistances.OBJECT_DD;
70
- priority ??= 0;
71
-
72
- if (extended) {
73
- if (typeof worldid === "number") worldid = [-1];
74
- else worldid ??= [-1];
75
- if (typeof interiorid === "number") interiorid = [-1];
76
- else interiorid ??= [-1];
77
- if (typeof playerid === "number") playerid = [-1];
78
- else playerid ??= [-1];
79
- if (typeof areaid === "number") areaid = [-1];
80
- else areaid ??= [-1];
81
-
82
- this._id = CreateDynamicObjectEx(
83
- modelid,
84
- x,
85
- y,
86
- z,
87
- rx,
88
- ry,
89
- rz,
90
- streamdistance,
91
- drawdistance,
92
- worldid,
93
- interiorid,
94
- playerid,
95
- areaid,
96
- priority
97
- );
98
- } else {
99
- if (Array.isArray(worldid)) worldid = -1;
100
- else worldid ??= -1;
101
- if (Array.isArray(interiorid)) interiorid = -1;
102
- else interiorid ??= -1;
103
- if (Array.isArray(playerid)) playerid = -1;
104
- else playerid ??= -1;
105
- if (Array.isArray(areaid)) areaid = -1;
106
- else areaid ??= -1;
107
-
108
- this._id = CreateDynamicObject(
109
- modelid,
110
- x,
111
- y,
112
- z,
113
- rx,
114
- ry,
115
- rz,
116
- worldid,
117
- interiorid,
118
- playerid,
119
- streamdistance,
120
- drawdistance,
121
- areaid,
122
- priority
123
- );
124
- }
125
-
126
- objectBus.emit(objectHooks.created, this);
127
- return this;
128
- }
129
-
130
- destroy(): void | this {
131
- if (this.id === -1)
132
- return logger.warn(
133
- "[StreamerObject]: Unable to destroy the object before create"
134
- );
135
- DestroyDynamicObject(this.id);
136
- objectBus.emit(objectHooks.destroyed, this);
137
- return this;
138
- }
139
-
140
- isValid(): boolean {
141
- return IsValidDynamicObject(this.id);
142
- }
143
-
144
- getPos() {
145
- if (this.id === -1)
146
- return logger.warn("[StreamerObject]: Cannot get position before create");
147
- return GetDynamicObjectPos(this.id);
148
- }
149
-
150
- setPos(x: number, y: number, z: number): void | number {
151
- if (this.id === -1)
152
- return logger.warn("[StreamerObject]: Cannot set position before create");
153
- return SetDynamicObjectPos(this.id, x, y, z);
154
- }
155
-
156
- getRot() {
157
- if (this.id === -1)
158
- return logger.warn("[StreamerObject]: Cannot get rotation before create");
159
- return GetDynamicObjectRot(this.id);
160
- }
161
-
162
- setRot(rx: number, ry: number, rz: number): void | number {
163
- if (this.id === -1)
164
- return logger.warn("[StreamerObject]: Cannot set rotation before create");
165
- return SetDynamicObjectRot(this.id, rx, ry, rz);
166
- }
167
-
168
- move(
169
- x: number,
170
- y: number,
171
- z: number,
172
- speed: number,
173
- rx = -1000,
174
- ry = -1000,
175
- rz = -1000
176
- ): void | number {
177
- if (this.id === -1)
178
- return logger.warn("[StreamerObject]: Cannot start moving before create");
179
- if (speed < 0) {
180
- return logger.warn("[StreamerObject]: speed must not be less than 0");
181
- }
182
- if (speed > 120 * 1000)
183
- logger.warn(
184
- "[StreamerObject]: speed more than 120 seconds, warn if it's not intentional"
185
- );
186
- if (this.isMoving()) this.stop();
187
- return MoveDynamicObject(this.id, x, y, z, speed, rx, ry, rz);
188
- }
189
-
190
- stop(): void | number {
191
- if (this.id === -1)
192
- return logger.warn("[StreamerObject]: Cannot stop moving before create");
193
- return StopDynamicObject(this.id);
194
- }
195
-
196
- isMoving(): boolean {
197
- if (this.id === -1) return false;
198
- return IsDynamicObjectMoving(this.id);
199
- }
200
-
201
- attachCamera<P extends Player>(player: P): void | number {
202
- if (this.id === -1 || player.id === -1)
203
- return logger.warn(
204
- "[StreamerObject]: Cannot attachCamera before both are created"
205
- );
206
- return AttachCameraToDynamicObject(player.id, this.id);
207
- }
208
-
209
- attachToObject<O extends DynamicObject>(
210
- attachto: O,
211
- offsetx: number,
212
- offsety: number,
213
- offsetz: number,
214
- rx: number,
215
- ry: number,
216
- rz: number,
217
- syncrotation = true
218
- ): void | number {
219
- if (this.id === -1 || attachto.id === -1)
220
- return logger.warn(
221
- "[StreamerObject]: Cannot attachToObject before both are created"
222
- );
223
- return AttachDynamicObjectToObject(
224
- this.id,
225
- attachto.id,
226
- offsetx,
227
- offsety,
228
- offsetz,
229
- rx,
230
- ry,
231
- rz,
232
- syncrotation
233
- );
234
- }
235
-
236
- attachToPlayer<P extends Player>(
237
- player: P,
238
- offsetx: number,
239
- offsety: number,
240
- offsetz: number,
241
- rx: number,
242
- ry: number,
243
- rz: number
244
- ): void | number {
245
- if (this.id === -1 || player.id === -1)
246
- return logger.warn(
247
- "[StreamerObject]: Cannot attachToVehicle before both are created"
248
- );
249
- return AttachDynamicObjectToPlayer(
250
- this.id,
251
- player.id,
252
- offsetx,
253
- offsety,
254
- offsetz,
255
- rx,
256
- ry,
257
- rz
258
- );
259
- }
260
-
261
- attachToVehicle<V extends Vehicle>(
262
- vehicle: V,
263
- offsetx: number,
264
- offsety: number,
265
- offsetz: number,
266
- rx: number,
267
- ry: number,
268
- rz: number
269
- ): void | number {
270
- if (this.id === -1 || vehicle.id === -1)
271
- return logger.warn(
272
- "[StreamerObject]: Cannot attachToVehicle before both are created"
273
- );
274
- return AttachDynamicObjectToVehicle(
275
- this.id,
276
- vehicle.id,
277
- offsetx,
278
- offsety,
279
- offsetz,
280
- rx,
281
- ry,
282
- rz
283
- );
284
- }
285
-
286
- edit<P extends Player>(player: P): void | number {
287
- if (this.id === -1)
288
- return logger.warn("[StreamerObject]: Unable to edit before create");
289
- player.endObjectEditing();
290
- return EditDynamicObject(player.id, this.id);
291
- }
292
-
293
- isMaterialUsed(materialIndex: number): boolean {
294
- if (this.id === -1) return false;
295
- return IsDynamicObjectMaterialUsed(this.id, materialIndex);
296
- }
297
-
298
- removeMaterial(materialIndex: number): number {
299
- if (this.id === -1) return 0;
300
- if (!this.isMaterialUsed(materialIndex)) return 0;
301
- return RemoveDynamicObjectMaterial(this.id, materialIndex);
302
- }
303
-
304
- getMaterial(materialIndex: number, txdname: string, texturename: string) {
305
- if (this.id === -1)
306
- return logger.warn(
307
- "[StreamerObject]: Unable to get material before create"
308
- );
309
- return GetDynamicObjectMaterial(
310
- this.id,
311
- materialIndex,
312
- txdname,
313
- texturename
314
- );
315
- }
316
-
317
- setMaterial(
318
- materialindex: number,
319
- modelid: number,
320
- txdname: string,
321
- texturename: string,
322
- materialcolour = "#000"
323
- ): void | number {
324
- if (this.id === -1)
325
- return logger.warn(
326
- "[StreamerObject]: Unable to set material before create"
327
- );
328
- return SetDynamicObjectMaterial(
329
- this.id,
330
- materialindex,
331
- modelid,
332
- txdname,
333
- texturename,
334
- rgba(materialcolour)
335
- );
336
- }
337
-
338
- isMaterialTextUsed(materialIndex: number): boolean {
339
- if (this.id === -1) return false;
340
- return IsDynamicObjectMaterialTextUsed(this.id, materialIndex);
341
- }
342
-
343
- removeMaterialText(materialIndex: number) {
344
- if (!this.isMaterialTextUsed(materialIndex)) return 0;
345
- return RemoveDynamicObjectMaterialText(this.id, materialIndex);
346
- }
347
-
348
- getMaterialText(materialIndex: number) {
349
- if (this.id === -1)
350
- return logger.warn(
351
- "[StreamerObject]: Unable to get material text before create"
352
- );
353
- return GetDynamicObjectMaterialText(
354
- this.id,
355
- materialIndex,
356
- this.sourceInfo.charset || defaultCharset
357
- );
358
- }
359
-
360
- setMaterialText(
361
- charset = this.sourceInfo.charset,
362
- materialIndex: number,
363
- text: string,
364
- materialSize: number = MaterialTextSizes.SIZE_256x128,
365
- fontFace = "Arial",
366
- fontSize = 24,
367
- bold = 1,
368
- fontColour = "#fff",
369
- backColour = "#000",
370
- textAlignment = 0
371
- ): void | number {
372
- if (this.id === -1)
373
- return logger.warn(
374
- "[StreamerObject]: Unable to set material text before create"
375
- );
376
- this.sourceInfo.charset = charset;
377
- return SetDynamicObjectMaterialText(
378
- charset || defaultCharset,
379
- this.id,
380
- materialIndex,
381
- text,
382
- materialSize,
383
- fontFace,
384
- fontSize,
385
- bold,
386
- rgba(fontColour),
387
- rgba(backColour),
388
- textAlignment
389
- );
390
- }
391
-
392
- getPlayerCameraTarget<P extends Player, O extends DynamicObject>(
393
- player: P,
394
- objMap: Map<number, O>
395
- ): void | O {
396
- const dynId = GetPlayerCameraTargetDynObject(player.id);
397
- if (dynId === InvalidEnum.OBJECT_ID) return;
398
- return objMap.get(dynId);
399
- }
400
- toggleCallbacks(toggle = true): void | number {
401
- if (this.id === -1)
402
- return logger.warn(
403
- "[StreamerObject]: Unable to toggle callbacks before create"
404
- );
405
- return Streamer.toggleItemCallbacks(
406
- StreamerItemTypes.OBJECT,
407
- this.id,
408
- toggle
409
- );
410
- }
411
- isToggleCallbacks(): boolean {
412
- if (this.id === -1) false;
413
- return Streamer.isToggleItemCallbacks(StreamerItemTypes.OBJECT, this.id);
414
- }
415
- }
@@ -1,2 +0,0 @@
1
- export * from "./baseObject";
2
- export * from "./objectEvent";
@@ -1,8 +0,0 @@
1
- import { EventBus } from "@/utils/eventBus";
2
-
3
- export enum objectHooks {
4
- created = "OnObjectCreate",
5
- destroyed = "OnObjectDestroy",
6
- }
7
-
8
- export const objectBus = new EventBus();
@@ -1,177 +0,0 @@
1
- import type { Player } from "@/controllers/player";
2
- import type { EditResponseTypesEnum } from "@/enums";
3
- import type { TCommonCallback } from "@/types";
4
- import { promisifyCallback } from "@/utils/helperUtils";
5
- import { OnGameModeExit } from "@/wrapper/native/callbacks";
6
- import {
7
- OnDynamicObjectMoved,
8
- OnPlayerEditDynamicObject,
9
- OnPlayerSelectDynamicObject,
10
- OnPlayerShootDynamicObject,
11
- StreamerItemTypes,
12
- } from "@infernus/streamer";
13
- import { Streamer } from "../common";
14
- import type { DynamicObject } from "./baseObject";
15
- import { objectBus, objectHooks } from "./objectBus";
16
-
17
- export class DynamicObjectEvent<P extends Player, O extends DynamicObject> {
18
- private readonly objects = new Map<number, O>();
19
- private readonly players;
20
-
21
- constructor(playersMap: Map<number, P>, destroyOnExit = true) {
22
- this.players = playersMap;
23
- objectBus.on(objectHooks.created, (object: O) => {
24
- this.objects.set(object.id, object);
25
- });
26
- objectBus.on(objectHooks.destroyed, (object: O) => {
27
- this.objects.delete(object.id);
28
- });
29
- if (destroyOnExit) {
30
- OnGameModeExit(() => {
31
- this.objects.forEach((o) => o.destroy());
32
- this.objects.clear();
33
- });
34
- }
35
- OnDynamicObjectMoved((id): number => {
36
- const o = this.objects.get(id);
37
- if (!o) return 0;
38
- const pFn = promisifyCallback(this, "onMoved", "OnDynamicObjectMoved");
39
- return pFn(o);
40
- });
41
- OnPlayerEditDynamicObject(
42
- (
43
- playerid: number,
44
- objectid: number,
45
- response: number,
46
- x: number,
47
- y: number,
48
- z: number,
49
- rx: number,
50
- ry: number,
51
- rz: number
52
- ): number => {
53
- const o = this.objects.get(objectid);
54
- if (!o) return 0;
55
- const p = this.players.get(playerid);
56
- if (!p) return 0;
57
- const pFn = promisifyCallback(
58
- this,
59
- "onPlayerEdit",
60
- "OnPlayerEditDynamicObject"
61
- );
62
- return pFn(p, o, response, x, y, z, rx, ry, rz);
63
- }
64
- );
65
- OnPlayerSelectDynamicObject(
66
- (
67
- playerid: number,
68
- objectid: number,
69
- modelid: number,
70
- x: number,
71
- y: number,
72
- z: number
73
- ) => {
74
- const p = this.players.get(playerid);
75
- if (!p) return 0;
76
- const o = this.objects.get(objectid);
77
- if (!o) return 0;
78
- const pFn = promisifyCallback(
79
- this,
80
- "onPlayerSelect",
81
- "OnPlayerSelectDynamicObject"
82
- );
83
- return pFn(p, o, modelid, x, y, z);
84
- }
85
- );
86
- OnPlayerShootDynamicObject(
87
- (
88
- playerid: number,
89
- weaponid: number,
90
- objectid: number,
91
- x: number,
92
- y: number,
93
- z: number
94
- ) => {
95
- const p = this.players.get(playerid);
96
- if (!p) return 0;
97
- const o = this.objects.get(objectid);
98
- if (!o) return 0;
99
- const pFn = promisifyCallback(
100
- this,
101
- "onPlayerShoot",
102
- "OnPlayerShootDynamicObject"
103
- );
104
- return pFn(p, weaponid, o, x, y, z);
105
- }
106
- );
107
- Streamer.onItemStreamIn((type, item, player) => {
108
- if (type === StreamerItemTypes.OBJECT) {
109
- const obj = this.objects.get(item);
110
- const p = this.players.get(player);
111
- if (obj && p)
112
- return promisifyCallback(
113
- this,
114
- "onStreamIn",
115
- "Streamer_OnItemStreamIn"
116
- )(obj, p);
117
- }
118
- return 1;
119
- });
120
- Streamer.onItemStreamOut((type, item, player) => {
121
- if (type === StreamerItemTypes.OBJECT) {
122
- const obj = this.objects.get(item);
123
- const p = this.players.get(player);
124
- if (obj && p)
125
- return promisifyCallback(
126
- this,
127
- "onStreamOut",
128
- "Streamer_OnItemStreamOut"
129
- )(obj, p);
130
- }
131
- return 1;
132
- });
133
- }
134
-
135
- onMoved?(object: O): TCommonCallback;
136
-
137
- onPlayerEdit?(
138
- player: P,
139
- object: O,
140
- response: EditResponseTypesEnum,
141
- x: number,
142
- y: number,
143
- z: number,
144
- rx: number,
145
- ry: number,
146
- rz: number
147
- ): TCommonCallback;
148
-
149
- onPlayerSelect?(
150
- player: P,
151
- object: O,
152
- modelid: number,
153
- x: number,
154
- y: number,
155
- z: number
156
- ): TCommonCallback;
157
-
158
- onPlayerShoot?(
159
- player: P,
160
- weaponid: number,
161
- object: O,
162
- x: number,
163
- y: number,
164
- z: number
165
- ): TCommonCallback;
166
-
167
- onStreamIn?(object: O, player: P): TCommonCallback;
168
- onStreamOut?(object: O, player: P): TCommonCallback;
169
-
170
- getObjectsArr(): Array<O> {
171
- return [...this.objects.values()];
172
- }
173
-
174
- getObjectsMap(): Map<number, O> {
175
- return this.objects;
176
- }
177
- }
@@ -1,114 +0,0 @@
1
- import type { IDynamicPickup } from "@/interfaces";
2
- import { logger } from "@/logger";
3
- import {
4
- CreateDynamicPickup,
5
- CreateDynamicPickupEx,
6
- DestroyDynamicPickup,
7
- IsValidDynamicPickup,
8
- StreamerDistances,
9
- StreamerItemTypes,
10
- } from "@infernus/streamer";
11
- import { Streamer } from "../common";
12
- import { pickupBus, pickupHooks } from "./pickupBus";
13
-
14
- export class DynamicPickup {
15
- private sourceInfo: IDynamicPickup;
16
- private _id = -1;
17
- get id(): number {
18
- return this._id;
19
- }
20
- constructor(pickup: IDynamicPickup) {
21
- this.sourceInfo = pickup;
22
- }
23
- create(): void | this {
24
- if (this.id !== -1)
25
- return logger.warn("[StreamerPickup]: Unable to create pickup again");
26
- let { streamdistance, worldid, interiorid, playerid, areaid, priority } =
27
- this.sourceInfo;
28
- const { type, modelid, x, y, z, extended } = this.sourceInfo;
29
-
30
- if (type < 0 || type > 22)
31
- return logger.error("[StreamerPickup]: Invalid pickup type");
32
-
33
- streamdistance ??= StreamerDistances.PICKUP_SD;
34
- priority ??= 0;
35
-
36
- if (extended) {
37
- if (typeof worldid === "number") worldid = [-1];
38
- else worldid ??= [-1];
39
- if (typeof interiorid === "number") interiorid = [-1];
40
- else interiorid ??= [-1];
41
- if (typeof playerid === "number") playerid = [-1];
42
- else playerid ??= [-1];
43
- if (typeof areaid === "number") areaid = [-1];
44
- else areaid ??= [-1];
45
-
46
- this._id = CreateDynamicPickupEx(
47
- modelid,
48
- type,
49
- x,
50
- y,
51
- z,
52
- streamdistance,
53
- worldid,
54
- interiorid,
55
- playerid,
56
- areaid,
57
- priority
58
- );
59
- } else {
60
- if (Array.isArray(worldid)) worldid = -1;
61
- else worldid ??= -1;
62
- if (Array.isArray(interiorid)) interiorid = -1;
63
- else interiorid ??= -1;
64
- if (Array.isArray(playerid)) playerid = -1;
65
- else playerid ??= -1;
66
- if (Array.isArray(areaid)) areaid = -1;
67
- else areaid ??= -1;
68
-
69
- this._id = CreateDynamicPickup(
70
- modelid,
71
- type,
72
- x,
73
- y,
74
- z,
75
- worldid,
76
- interiorid,
77
- playerid,
78
- streamdistance,
79
- areaid,
80
- priority
81
- );
82
- }
83
-
84
- pickupBus.emit(pickupHooks.created, this);
85
- return this;
86
- }
87
- destroy(): void | this {
88
- if (this.id === -1)
89
- return logger.warn(
90
- "[StreamerPickup]: Unable to destroy the pickup before create"
91
- );
92
- DestroyDynamicPickup(this.id);
93
- pickupBus.emit(pickupHooks.destroyed, this);
94
- return this;
95
- }
96
- isValid(): boolean {
97
- return IsValidDynamicPickup(this.id);
98
- }
99
- toggleCallbacks(toggle = true): void | number {
100
- if (this.id === -1)
101
- return logger.warn(
102
- "[StreamerPickup]: Unable to toggle callbacks before create"
103
- );
104
- return Streamer.toggleItemCallbacks(
105
- StreamerItemTypes.PICKUP,
106
- this.id,
107
- toggle
108
- );
109
- }
110
- isToggleCallbacks(): boolean {
111
- if (this.id === -1) false;
112
- return Streamer.isToggleItemCallbacks(StreamerItemTypes.PICKUP, this.id);
113
- }
114
- }
@@ -1,2 +0,0 @@
1
- export * from "./basePickup";
2
- export * from "./pickupEvent";