rock-mod 0.7.3 → 0.8.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 (85) hide show
  1. package/README.md +93 -2
  2. package/dist/server/RockMod.d.ts +3 -2
  3. package/dist/server/RockMod.js +5 -1
  4. package/dist/server/entities/altv/marker/AltVMarker.d.ts +7 -1
  5. package/dist/server/entities/altv/marker/AltVMarker.js +19 -0
  6. package/dist/server/entities/altv/player/AltVPlayer.d.ts +1 -0
  7. package/dist/server/entities/altv/player/AltVPlayer.js +3 -0
  8. package/dist/server/entities/common/marker/IMarker.d.ts +11 -0
  9. package/dist/server/entities/common/marker/IMarkersManager.d.ts +4 -4
  10. package/dist/server/entities/common/player/IPlayer.d.ts +1 -0
  11. package/dist/server/entities/mock/baseObject/MockBaseObject.d.ts +18 -0
  12. package/dist/server/entities/mock/baseObject/MockBaseObject.js +24 -0
  13. package/dist/server/entities/mock/baseObject/MockBaseObjectsIterator.d.ts +7 -0
  14. package/dist/server/entities/mock/baseObject/MockBaseObjectsIterator.js +13 -0
  15. package/dist/server/entities/mock/baseObject/MockBaseObjectsManager.d.ts +18 -0
  16. package/dist/server/entities/mock/baseObject/MockBaseObjectsManager.js +46 -0
  17. package/dist/server/entities/mock/blip/MockBlip.d.ts +35 -0
  18. package/dist/server/entities/mock/blip/MockBlip.js +62 -0
  19. package/dist/server/entities/mock/blip/MockBlipsManager.d.ts +9 -0
  20. package/dist/server/entities/mock/blip/MockBlipsManager.js +33 -0
  21. package/dist/server/entities/mock/colshape/MockCircleColshape.d.ts +8 -0
  22. package/dist/server/entities/mock/colshape/MockCircleColshape.js +10 -0
  23. package/dist/server/entities/mock/colshape/MockColshape.d.ts +7 -0
  24. package/dist/server/entities/mock/colshape/MockColshape.js +10 -0
  25. package/dist/server/entities/mock/colshape/MockColshapesManager.d.ts +27 -0
  26. package/dist/server/entities/mock/colshape/MockColshapesManager.js +90 -0
  27. package/dist/server/entities/mock/colshape/MockCuboidColshape.d.ts +10 -0
  28. package/dist/server/entities/mock/colshape/MockCuboidColshape.js +10 -0
  29. package/dist/server/entities/mock/colshape/MockCylinderColshape.d.ts +9 -0
  30. package/dist/server/entities/mock/colshape/MockCylinderColshape.js +10 -0
  31. package/dist/server/entities/mock/colshape/MockRectangleColshape.d.ts +9 -0
  32. package/dist/server/entities/mock/colshape/MockRectangleColshape.js +10 -0
  33. package/dist/server/entities/mock/colshape/MockSphereColshape.d.ts +8 -0
  34. package/dist/server/entities/mock/colshape/MockSphereColshape.js +10 -0
  35. package/dist/server/entities/mock/common/IMockEntity.d.ts +18 -0
  36. package/dist/server/entities/mock/common/IMockEntity.js +2 -0
  37. package/dist/server/entities/mock/entity/MockEntitiesManager.d.ts +8 -0
  38. package/dist/server/entities/mock/entity/MockEntitiesManager.js +10 -0
  39. package/dist/server/entities/mock/entity/MockEntity.d.ts +16 -0
  40. package/dist/server/entities/mock/entity/MockEntity.js +29 -0
  41. package/dist/server/entities/mock/marker/MockMarker.d.ts +27 -0
  42. package/dist/server/entities/mock/marker/MockMarker.js +50 -0
  43. package/dist/server/entities/mock/marker/MockMarkersManager.d.ts +10 -0
  44. package/dist/server/entities/mock/marker/MockMarkersManager.js +31 -0
  45. package/dist/server/entities/mock/object/MockObject.d.ts +11 -0
  46. package/dist/server/entities/mock/object/MockObject.js +19 -0
  47. package/dist/server/entities/mock/object/MockObjectsManager.d.ts +10 -0
  48. package/dist/server/entities/mock/object/MockObjectsManager.js +31 -0
  49. package/dist/server/entities/mock/ped/MockPed.d.ts +7 -0
  50. package/dist/server/entities/mock/ped/MockPed.js +10 -0
  51. package/dist/server/entities/mock/ped/MockPedsManager.d.ts +10 -0
  52. package/dist/server/entities/mock/ped/MockPedsManager.js +30 -0
  53. package/dist/server/entities/mock/player/MockPlayer.d.ts +56 -0
  54. package/dist/server/entities/mock/player/MockPlayer.js +134 -0
  55. package/dist/server/entities/mock/player/MockPlayersManager.d.ts +26 -0
  56. package/dist/server/entities/mock/player/MockPlayersManager.js +79 -0
  57. package/dist/server/entities/mock/vehicle/MockVehicle.d.ts +42 -0
  58. package/dist/server/entities/mock/vehicle/MockVehicle.js +103 -0
  59. package/dist/server/entities/mock/vehicle/MockVehiclesManager.d.ts +10 -0
  60. package/dist/server/entities/mock/vehicle/MockVehiclesManager.js +32 -0
  61. package/dist/server/entities/mock/worldObject/MockWorldObject.d.ts +12 -0
  62. package/dist/server/entities/mock/worldObject/MockWorldObject.js +16 -0
  63. package/dist/server/entities/mock/worldObject/MockWorldObjectsIterator.d.ts +10 -0
  64. package/dist/server/entities/mock/worldObject/MockWorldObjectsIterator.js +39 -0
  65. package/dist/server/entities/mock/worldObject/MockWorldObjectsManager.d.ts +11 -0
  66. package/dist/server/entities/mock/worldObject/MockWorldObjectsManager.js +16 -0
  67. package/dist/server/entities/ragemp/marker/RageMarker.d.ts +7 -1
  68. package/dist/server/entities/ragemp/marker/RageMarker.js +19 -0
  69. package/dist/server/entities/ragemp/player/RagePlayer.d.ts +1 -0
  70. package/dist/server/entities/ragemp/player/RagePlayer.js +3 -0
  71. package/dist/server/factories/mock/MockManagersFactory.d.ts +21 -0
  72. package/dist/server/factories/mock/MockManagersFactory.js +42 -0
  73. package/dist/server/index.d.ts +4 -1
  74. package/dist/server/index.js +4 -1
  75. package/dist/server/net/mock/MockNetManager.d.ts +10 -0
  76. package/dist/server/net/mock/MockNetManager.js +20 -0
  77. package/dist/server/net/mock/events/MockEventsManager.d.ts +18 -0
  78. package/dist/server/net/mock/events/MockEventsManager.js +22 -0
  79. package/dist/server/net/mock/rpc/MockRPCManager.d.ts +13 -0
  80. package/dist/server/net/mock/rpc/MockRPCManager.js +26 -0
  81. package/dist/server/testing.d.ts +8 -0
  82. package/dist/server/testing.js +19 -0
  83. package/dist/server/utils/mock/MockUtilsManager.d.ts +4 -0
  84. package/dist/server/utils/mock/MockUtilsManager.js +16 -0
  85. package/package.json +21 -3
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MockPlayer = void 0;
4
+ const MockEntity_1 = require("../entity/MockEntity");
5
+ const RockMod_1 = require("../../../RockMod");
6
+ class MockPlayer extends MockEntity_1.MockEntity {
7
+ _playerData;
8
+ get name() {
9
+ return this._playerData.name;
10
+ }
11
+ get socialClub() {
12
+ return this._playerData.socialClub;
13
+ }
14
+ get heading() {
15
+ return this._playerData.heading;
16
+ }
17
+ get health() {
18
+ return this._playerData.health;
19
+ }
20
+ get armour() {
21
+ return this._playerData.armour;
22
+ }
23
+ get isDead() {
24
+ return this.health <= 0;
25
+ }
26
+ get ip() {
27
+ return this._playerData.ip;
28
+ }
29
+ get serial() {
30
+ return this._playerData.serial;
31
+ }
32
+ get vehicle() {
33
+ return null;
34
+ }
35
+ get seat() {
36
+ return -1;
37
+ }
38
+ get weapon() {
39
+ return this._playerData.weapon;
40
+ }
41
+ get weaponAmmo() {
42
+ return this._playerData.weaponAmmo;
43
+ }
44
+ get eyeColor() {
45
+ return 0;
46
+ }
47
+ get streamedPlayers() {
48
+ return [];
49
+ }
50
+ constructor(options) {
51
+ super(options);
52
+ const { name = "Mock Player", socialClub = "mock_club", health = 100, heading = 0, armour = 0, weapon = 0, weaponAmmo = 0, ip = "127.0.0.1", serial = "mock_serial", } = options;
53
+ this._playerData = {
54
+ name,
55
+ socialClub,
56
+ health,
57
+ heading,
58
+ armour,
59
+ weapon,
60
+ weaponAmmo,
61
+ ip,
62
+ serial,
63
+ };
64
+ }
65
+ emitEvent(eventName, ...args) {
66
+ return RockMod_1.RockMod.instance.net.events.emitClient(this, eventName, ...args);
67
+ }
68
+ emitRPC(rpcName, ...args) {
69
+ return RockMod_1.RockMod.instance.net.rpc.emitClient(this, rpcName, ...args);
70
+ }
71
+ spawn(position) {
72
+ this.setPosition(position);
73
+ this._playerData.health = 100;
74
+ }
75
+ setName(name) {
76
+ this._playerData.name = name;
77
+ }
78
+ setHeading(value) {
79
+ this._playerData.heading = value;
80
+ }
81
+ setHealth(value) {
82
+ this._playerData.health = Math.clamp(value, 0, 100);
83
+ }
84
+ setArmour(value) {
85
+ this._playerData.armour = Math.clamp(value, 0, 100);
86
+ }
87
+ setWeaponAmmo(weapon, ammo) {
88
+ this._playerData.weapon = RockMod_1.RockMod.instance.utils.hash(weapon);
89
+ this._playerData.weaponAmmo = ammo;
90
+ }
91
+ giveWeapon(weapon, ammo) {
92
+ this.setWeaponAmmo(weapon, ammo);
93
+ }
94
+ removeWeapon(weapon) {
95
+ if (this._playerData.weapon === RockMod_1.RockMod.instance.utils.hash(weapon)) {
96
+ this._playerData.weapon = 0;
97
+ this._playerData.weaponAmmo = 0;
98
+ }
99
+ }
100
+ enableVoiceTo(player) {
101
+ throw new Error(`${player.name}: Not implemented: enableVoiceTo`);
102
+ }
103
+ disableVoiceTo(player) {
104
+ throw new Error(`${player.name}: Not implemented: disableVoiceTo`);
105
+ }
106
+ putIntoVehicle(vehicle, seat) {
107
+ throw new Error(`${this.name}: ${vehicle.id} ${seat} putIntoVehicle`);
108
+ }
109
+ ejectFromVehicle() {
110
+ throw new Error("Not implemented: ejectFromVehicle");
111
+ }
112
+ setCustomization() {
113
+ throw new Error("Not implemented: setCustomization");
114
+ }
115
+ setHeadOverlay() {
116
+ throw new Error("Not implemented: setHeadOverlay");
117
+ }
118
+ setEyeColor() {
119
+ throw new Error("Not implemented: setEyeColor");
120
+ }
121
+ setProp() {
122
+ throw new Error("Not implemented: setProp");
123
+ }
124
+ setClothes() {
125
+ throw new Error("Not implemented: setClothes");
126
+ }
127
+ setHairColor() {
128
+ throw new Error("Not implemented: setHairColor");
129
+ }
130
+ kick() {
131
+ throw new Error("Not implemented: kick");
132
+ }
133
+ }
134
+ exports.MockPlayer = MockPlayer;
@@ -0,0 +1,26 @@
1
+ import { IPlayersManager } from "../../common/player/IPlayersManager";
2
+ import { MockPlayer } from "./MockPlayer";
3
+ import { MockEntitiesManager } from "../entity/MockEntitiesManager";
4
+ import { Vector3D } from "../../../common/utils/math/Vectors";
5
+ export interface IMockPlayerConnectOptions {
6
+ id?: number;
7
+ name?: string;
8
+ socialClub?: string;
9
+ position?: Vector3D;
10
+ dimension?: number;
11
+ health?: number;
12
+ armour?: number;
13
+ ip?: string;
14
+ serial?: string;
15
+ }
16
+ export declare class MockPlayersManager extends MockEntitiesManager<MockPlayer> implements IPlayersManager {
17
+ private _nextId;
18
+ constructor();
19
+ getByName(name: string): MockPlayer;
20
+ findByName(name: string): MockPlayer | null;
21
+ getBySocialClub(socialClub: string): MockPlayer;
22
+ findBySocialClub(socialClub: string): MockPlayer | null;
23
+ createPlayer(options?: IMockPlayerConnectOptions): MockPlayer;
24
+ simulateConnect(options?: IMockPlayerConnectOptions): MockPlayer;
25
+ simulateDisconnect(player: MockPlayer): void;
26
+ }
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MockPlayersManager = void 0;
4
+ const MockPlayer_1 = require("./MockPlayer");
5
+ const MockEntitiesManager_1 = require("../entity/MockEntitiesManager");
6
+ const RockMod_1 = require("../../../RockMod");
7
+ const common_1 = require("../../common");
8
+ const Vectors_1 = require("../../../common/utils/math/Vectors");
9
+ class MockPlayersManager extends MockEntitiesManager_1.MockEntitiesManager {
10
+ _nextId;
11
+ constructor() {
12
+ super({
13
+ baseObjectsType: "player",
14
+ });
15
+ this._nextId = 0;
16
+ }
17
+ getByName(name) {
18
+ const player = this.findByName(name);
19
+ if (!player) {
20
+ throw new Error(`Player with name ${name} not found`);
21
+ }
22
+ return player;
23
+ }
24
+ findByName(name) {
25
+ for (const player of this.iterator.all()) {
26
+ if (player.name === name) {
27
+ return player;
28
+ }
29
+ }
30
+ return null;
31
+ }
32
+ getBySocialClub(socialClub) {
33
+ const player = this.findBySocialClub(socialClub);
34
+ if (!player) {
35
+ throw new Error(`Player with socialClub ${socialClub} not found`);
36
+ }
37
+ return player;
38
+ }
39
+ findBySocialClub(socialClub) {
40
+ for (const player of this.iterator.all()) {
41
+ if (player.socialClub === socialClub) {
42
+ return player;
43
+ }
44
+ }
45
+ return null;
46
+ }
47
+ createPlayer(options = {}) {
48
+ const { id = this._nextId++, name = `Player${id}`, socialClub = `Player${id}`, position = new Vectors_1.Vector3D(0, 0, 0), dimension = 0, health = 100, armour = 0, ip = "127.0.0.1", serial = `MOCK_${id}`, } = options;
49
+ const player = new MockPlayer_1.MockPlayer({
50
+ id,
51
+ type: common_1.BaseObjectType.Player,
52
+ name,
53
+ socialClub,
54
+ position,
55
+ dimension,
56
+ health,
57
+ armour,
58
+ ip,
59
+ serial,
60
+ model: 0,
61
+ rotation: new Vectors_1.Vector3D(0, 0, 0),
62
+ });
63
+ this.registerBaseObject(player);
64
+ return player;
65
+ }
66
+ simulateConnect(options = {}) {
67
+ const player = this.createPlayer(options);
68
+ RockMod_1.RockMod.instance.net.events.emit("rm::playerConnected", player);
69
+ return player;
70
+ }
71
+ simulateDisconnect(player) {
72
+ if (!this._baseObjects.has(player.id)) {
73
+ throw new Error(`Player with id ${player.id} not found`);
74
+ }
75
+ RockMod_1.RockMod.instance.net.events.emit("rm::playerDisconnected", player);
76
+ this.unregisterBaseObject(player);
77
+ }
78
+ }
79
+ exports.MockPlayersManager = MockPlayersManager;
@@ -0,0 +1,42 @@
1
+ import { IVehicle } from "../../common/vehicle/IVehicle";
2
+ import { MockEntity, IMockEntityOptions } from "../entity/MockEntity";
3
+ import { RGBA } from "../../../common/utils";
4
+ import { MockPlayer } from "../player/MockPlayer";
5
+ export interface IMockVehicleOptions extends IMockEntityOptions {
6
+ engine?: boolean;
7
+ locked?: boolean;
8
+ }
9
+ export declare class MockVehicle extends MockEntity implements IVehicle {
10
+ private _bodyHealth;
11
+ private _engineHealth;
12
+ private _numberPlate;
13
+ private _isLocked;
14
+ private _isDead;
15
+ private _primaryColor;
16
+ private _secondaryColor;
17
+ private _customPrimaryColor;
18
+ private _customSecondaryColor;
19
+ private _passengers;
20
+ get bodyHealth(): number;
21
+ get engineHealth(): number;
22
+ get numberPlate(): string;
23
+ get isLocked(): boolean;
24
+ get isDead(): boolean;
25
+ get primaryColor(): number;
26
+ get secondaryColor(): number;
27
+ get customPrimaryColor(): RGBA;
28
+ get customSecondaryColor(): RGBA;
29
+ get driver(): MockPlayer | null;
30
+ get passengers(): Set<MockPlayer>;
31
+ constructor(options: IMockVehicleOptions);
32
+ setBodyHealth(value: number): void;
33
+ setEngineHealth(value: number): void;
34
+ setNumberPlate(value: string): void;
35
+ setLocked(value: boolean): void;
36
+ setPrimaryColor(value: number): void;
37
+ setSecondaryColor(value: number): void;
38
+ setCustomPrimaryColor(value: RGBA): void;
39
+ setCustomSecondaryColor(value: RGBA): void;
40
+ explode(): void;
41
+ repair(): void;
42
+ }
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MockVehicle = void 0;
4
+ const MockEntity_1 = require("../entity/MockEntity");
5
+ const utils_1 = require("../../../common/utils");
6
+ class MockVehicle extends MockEntity_1.MockEntity {
7
+ _bodyHealth;
8
+ _engineHealth;
9
+ _numberPlate;
10
+ _isLocked;
11
+ _isDead;
12
+ _primaryColor;
13
+ _secondaryColor;
14
+ _customPrimaryColor;
15
+ _customSecondaryColor;
16
+ _passengers;
17
+ get bodyHealth() {
18
+ return this._bodyHealth;
19
+ }
20
+ get engineHealth() {
21
+ return this._engineHealth;
22
+ }
23
+ get numberPlate() {
24
+ return this._numberPlate;
25
+ }
26
+ get isLocked() {
27
+ return this._isLocked;
28
+ }
29
+ get isDead() {
30
+ return this._isDead;
31
+ }
32
+ get primaryColor() {
33
+ return this._primaryColor;
34
+ }
35
+ get secondaryColor() {
36
+ return this._secondaryColor;
37
+ }
38
+ get customPrimaryColor() {
39
+ const { r, g, b, a = 255 } = this._customPrimaryColor;
40
+ return new utils_1.RGBA(r, g, b, a);
41
+ }
42
+ get customSecondaryColor() {
43
+ const { r, g, b, a } = this._customSecondaryColor;
44
+ return new utils_1.RGBA(r, g, b, a);
45
+ }
46
+ get driver() {
47
+ for (const passenger of this._passengers.values()) {
48
+ if (passenger.seat === 0) {
49
+ return passenger;
50
+ }
51
+ }
52
+ return null;
53
+ }
54
+ get passengers() {
55
+ return this._passengers;
56
+ }
57
+ constructor(options) {
58
+ super(options);
59
+ this._bodyHealth = 1000;
60
+ this._engineHealth = 1000;
61
+ this._numberPlate = "";
62
+ this._isLocked = options.locked ?? false;
63
+ this._isDead = false;
64
+ this._primaryColor = 0;
65
+ this._secondaryColor = 0;
66
+ this._customPrimaryColor = new utils_1.RGBA(0, 0, 0);
67
+ this._customSecondaryColor = new utils_1.RGBA(0, 0, 0);
68
+ this._passengers = new Set();
69
+ }
70
+ setBodyHealth(value) {
71
+ this._bodyHealth = value;
72
+ }
73
+ setEngineHealth(value) {
74
+ this._engineHealth = Math.clamp(value, 0, 1000);
75
+ }
76
+ setNumberPlate(value) {
77
+ this._numberPlate = value;
78
+ }
79
+ setLocked(value) {
80
+ this._isLocked = value;
81
+ }
82
+ setPrimaryColor(value) {
83
+ this._primaryColor = value;
84
+ }
85
+ setSecondaryColor(value) {
86
+ this._secondaryColor = value;
87
+ }
88
+ setCustomPrimaryColor(value) {
89
+ this._customPrimaryColor = value;
90
+ }
91
+ setCustomSecondaryColor(value) {
92
+ this._customSecondaryColor = value;
93
+ }
94
+ explode() {
95
+ this.setBodyHealth(0);
96
+ this.setEngineHealth(0);
97
+ }
98
+ repair() {
99
+ this.setBodyHealth(1000);
100
+ this.setEngineHealth(1000);
101
+ }
102
+ }
103
+ exports.MockVehicle = MockVehicle;
@@ -0,0 +1,10 @@
1
+ import { IVehicleCreateOptions, IVehiclesManager } from "../../common/vehicle/IVehiclesManager";
2
+ import { MockEntitiesManager } from "../entity/MockEntitiesManager";
3
+ import { MockVehicle } from "./MockVehicle";
4
+ export interface IMockVehicleCreateOptions extends IVehicleCreateOptions {
5
+ }
6
+ export declare class MockVehiclesManager extends MockEntitiesManager<MockVehicle> implements IVehiclesManager {
7
+ private _nextId;
8
+ constructor();
9
+ create(options: IMockVehicleCreateOptions): MockVehicle;
10
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MockVehiclesManager = void 0;
4
+ const MockEntitiesManager_1 = require("../entity/MockEntitiesManager");
5
+ const MockVehicle_1 = require("./MockVehicle");
6
+ const RockMod_1 = require("../../../RockMod");
7
+ const common_1 = require("../../common");
8
+ class MockVehiclesManager extends MockEntitiesManager_1.MockEntitiesManager {
9
+ _nextId;
10
+ constructor() {
11
+ super({
12
+ baseObjectsType: "vehicle",
13
+ });
14
+ this._nextId = 0;
15
+ }
16
+ create(options) {
17
+ const { model, engine, locked, position, dimension, rotation } = options;
18
+ const vehicle = new MockVehicle_1.MockVehicle({
19
+ id: this._nextId++,
20
+ type: common_1.BaseObjectType.Vehicle,
21
+ model: RockMod_1.RockMod.instance.utils.hash(model),
22
+ engine,
23
+ locked,
24
+ position,
25
+ dimension,
26
+ rotation,
27
+ });
28
+ this.registerBaseObject(vehicle);
29
+ return vehicle;
30
+ }
31
+ }
32
+ exports.MockVehiclesManager = MockVehiclesManager;
@@ -0,0 +1,12 @@
1
+ import { IWorldObject } from "../../common/worldObject/IWorldObject";
2
+ import { MockBaseObject, IMockBaseObjectOptions } from "../baseObject/MockBaseObject";
3
+ import { IVector3D } from "../../../common/utils/math/Vectors";
4
+ export interface IMockWorldObjectOptions extends IMockBaseObjectOptions {
5
+ position: IVector3D;
6
+ dimension: number;
7
+ }
8
+ export declare abstract class MockWorldObject extends MockBaseObject implements IWorldObject {
9
+ protected constructor(options: IMockWorldObjectOptions);
10
+ setPosition(value: IVector3D): void;
11
+ setDimension(value: number): void;
12
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MockWorldObject = void 0;
4
+ const MockBaseObject_1 = require("../baseObject/MockBaseObject");
5
+ class MockWorldObject extends MockBaseObject_1.MockBaseObject {
6
+ constructor(options) {
7
+ super(options);
8
+ }
9
+ setPosition(value) {
10
+ this.position = value;
11
+ }
12
+ setDimension(value) {
13
+ this.dimension = value;
14
+ }
15
+ }
16
+ exports.MockWorldObject = MockWorldObject;
@@ -0,0 +1,10 @@
1
+ import { IWorldObjectsIterator } from "../../common/worldObject/IWorldObjectsIterator";
2
+ import { MockWorldObject } from "./MockWorldObject";
3
+ import { MockBaseObjectsIterator } from "../baseObject/MockBaseObjectsIterator";
4
+ import { Vector2D, Vector3D } from "../../../common/utils/math/Vectors";
5
+ export declare class MockWorldObjectsIterator<T extends MockWorldObject> extends MockBaseObjectsIterator<T> implements IWorldObjectsIterator<T> {
6
+ constructor(baseObjects: ReadonlyMap<number, T>);
7
+ dimension(value: number): IterableIterator<T>;
8
+ range2D(center: Vector2D, range: number): IterableIterator<T>;
9
+ range3D(center: Vector3D, range: number): IterableIterator<T>;
10
+ }
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MockWorldObjectsIterator = void 0;
4
+ const MockBaseObjectsIterator_1 = require("../baseObject/MockBaseObjectsIterator");
5
+ class MockWorldObjectsIterator extends MockBaseObjectsIterator_1.MockBaseObjectsIterator {
6
+ constructor(baseObjects) {
7
+ super(baseObjects);
8
+ }
9
+ *dimension(value) {
10
+ for (const worldObject of this.all()) {
11
+ if (worldObject.dimension === value) {
12
+ yield worldObject;
13
+ }
14
+ }
15
+ }
16
+ *range2D(center, range) {
17
+ const rangeSquared = range * range;
18
+ for (const worldObject of this.all()) {
19
+ const { position } = worldObject;
20
+ const distanceSquared = (center.x - position.x) * (center.x - position.x) + (center.y - position.y) * (center.y - position.y);
21
+ if (distanceSquared <= rangeSquared) {
22
+ yield worldObject;
23
+ }
24
+ }
25
+ }
26
+ *range3D(center, range) {
27
+ const rangeSquared = range * range;
28
+ for (const worldObject of this.all()) {
29
+ const { position } = worldObject;
30
+ const distanceSquared = (center.x - position.x) * (center.x - position.x) +
31
+ (center.y - position.y) * (center.y - position.y) +
32
+ (center.z - position.z) * (center.z - position.z);
33
+ if (distanceSquared <= rangeSquared) {
34
+ yield worldObject;
35
+ }
36
+ }
37
+ }
38
+ }
39
+ exports.MockWorldObjectsIterator = MockWorldObjectsIterator;
@@ -0,0 +1,11 @@
1
+ import { IWorldObjectsManager } from "../../common/worldObject/IWorldObjectsManager";
2
+ import { MockWorldObject } from "./MockWorldObject";
3
+ import { IMockBaseObjectsManagerOptions, MockBaseObjectsManager } from "../baseObject/MockBaseObjectsManager";
4
+ import { MockWorldObjectsIterator } from "./MockWorldObjectsIterator";
5
+ export interface IMockWorldObjectsManagerOptions extends IMockBaseObjectsManagerOptions {
6
+ }
7
+ export declare abstract class MockWorldObjectsManager<T extends MockWorldObject> extends MockBaseObjectsManager<T> implements IWorldObjectsManager<T> {
8
+ protected readonly _iterator: MockWorldObjectsIterator<T>;
9
+ protected constructor(options: IMockWorldObjectsManagerOptions);
10
+ get iterator(): MockWorldObjectsIterator<T>;
11
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MockWorldObjectsManager = void 0;
4
+ const MockBaseObjectsManager_1 = require("../baseObject/MockBaseObjectsManager");
5
+ const MockWorldObjectsIterator_1 = require("./MockWorldObjectsIterator");
6
+ class MockWorldObjectsManager extends MockBaseObjectsManager_1.MockBaseObjectsManager {
7
+ _iterator;
8
+ constructor(options) {
9
+ super(options);
10
+ this._iterator = new MockWorldObjectsIterator_1.MockWorldObjectsIterator(this.baseObjects);
11
+ }
12
+ get iterator() {
13
+ return this._iterator;
14
+ }
15
+ }
16
+ exports.MockWorldObjectsManager = MockWorldObjectsManager;
@@ -1,11 +1,17 @@
1
- import { IMarker } from "../../common";
1
+ import { IMarker, IMarkerType } from "../../common";
2
2
  import { IRageWorldObjectOptions, RageWorldObject } from "../worldObject/RageWorldObject";
3
+ import { IRGBA, IVector3D } from "../../../common/utils";
3
4
  export interface IRageMarkerOptions extends IRageWorldObjectOptions<MarkerMp> {
4
5
  }
5
6
  export declare class RageMarker extends RageWorldObject<MarkerMp> implements IMarker {
7
+ get markerType(): IMarkerType;
6
8
  get visible(): boolean;
7
9
  get scale(): number;
10
+ get color(): IRGBA;
11
+ get rotation(): IVector3D;
8
12
  constructor(options: IRageMarkerOptions);
9
13
  setVisible(value: boolean): void;
10
14
  setScale(value: number): void;
15
+ setColor(value: IRGBA): void;
16
+ setRotation(value: IVector3D): void;
11
17
  }
@@ -2,13 +2,25 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RageMarker = void 0;
4
4
  const RageWorldObject_1 = require("../worldObject/RageWorldObject");
5
+ const utils_1 = require("../../../common/utils");
5
6
  class RageMarker extends RageWorldObject_1.RageWorldObject {
7
+ get markerType() {
8
+ return this.mpEntity.model;
9
+ }
6
10
  get visible() {
7
11
  return this.mpEntity.visible;
8
12
  }
9
13
  get scale() {
10
14
  return this.mpEntity.scale;
11
15
  }
16
+ get color() {
17
+ const [r, g, b, a] = this.mpEntity.getColor();
18
+ return new utils_1.RGBA(r, g, b, a ?? 255);
19
+ }
20
+ get rotation() {
21
+ const { x, y, z } = this.mpEntity.rotation;
22
+ return new utils_1.Vector3D(x, y, z);
23
+ }
12
24
  constructor(options) {
13
25
  super(options);
14
26
  }
@@ -18,5 +30,12 @@ class RageMarker extends RageWorldObject_1.RageWorldObject {
18
30
  setScale(value) {
19
31
  this.mpEntity.scale = value;
20
32
  }
33
+ setColor(value) {
34
+ const { r, g, b, a } = value;
35
+ this.mpEntity.setColor(r, g, b, a ?? 255);
36
+ }
37
+ setRotation(value) {
38
+ this.mpEntity.rotation = new mp.Vector3(value);
39
+ }
21
40
  }
22
41
  exports.RageMarker = RageMarker;
@@ -12,6 +12,7 @@ export declare class RagePlayer extends RageEntity<PlayerMp> implements IPlayer
12
12
  get heading(): number;
13
13
  get health(): number;
14
14
  get armour(): number;
15
+ get isDead(): boolean;
15
16
  get ip(): string;
16
17
  get serial(): string;
17
18
  get vehicle(): RageVehicle | null;
@@ -19,6 +19,9 @@ class RagePlayer extends RageEntity_1.RageEntity {
19
19
  get armour() {
20
20
  return this.mpEntity.armour;
21
21
  }
22
+ get isDead() {
23
+ return this.mpEntity.health <= 0;
24
+ }
22
25
  get ip() {
23
26
  return this.mpEntity.ip;
24
27
  }
@@ -0,0 +1,21 @@
1
+ import { IManagersFactory } from "../common/IManagersFactory";
2
+ import { MockNetManager } from "../../net/mock/MockNetManager";
3
+ import { MockPlayersManager } from "../../entities/mock/player/MockPlayersManager";
4
+ import { IUtilsManager } from "../../utils";
5
+ import { MockBlipsManager } from "../../entities/mock/blip/MockBlipsManager";
6
+ import { MockColshapesManager } from "../../entities/mock/colshape/MockColshapesManager";
7
+ import { MockMarkersManager } from "../../entities/mock/marker/MockMarkersManager";
8
+ import { MockObjectsManager } from "../../entities/mock/object/MockObjectsManager";
9
+ import { MockPedsManager } from "../../entities/mock/ped/MockPedsManager";
10
+ import { MockVehiclesManager } from "../../entities/mock/vehicle/MockVehiclesManager";
11
+ export declare class MockManagersFactory implements IManagersFactory {
12
+ createNetManager(): MockNetManager;
13
+ createBlipsManager(): MockBlipsManager;
14
+ createColshapesManager(): MockColshapesManager;
15
+ createMarkersManager(): MockMarkersManager;
16
+ createObjectsManager(): MockObjectsManager;
17
+ createPedsManager(): MockPedsManager;
18
+ createPlayersManager(): MockPlayersManager;
19
+ createUtilsManager(): IUtilsManager;
20
+ createVehiclesManager(): MockVehiclesManager;
21
+ }