rock-mod 0.1.0 → 0.2.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 (55) hide show
  1. package/LICENSE +21 -21
  2. package/dist/server/common/utils/color/RGBA.d.ts +17 -0
  3. package/dist/server/common/utils/color/RGBA.js +28 -0
  4. package/dist/server/common/utils/color/index.d.ts +1 -0
  5. package/dist/server/common/utils/color/index.js +17 -0
  6. package/dist/server/common/utils/index.d.ts +1 -0
  7. package/dist/server/common/utils/index.js +1 -0
  8. package/dist/server/entities/altv/baseObject/AltVBaseObject.d.ts +1 -0
  9. package/dist/server/entities/altv/baseObject/AltVBaseObject.js +3 -0
  10. package/dist/server/entities/altv/baseObject/AltVBaseObjectsManager.js +2 -2
  11. package/dist/server/entities/altv/entity/AltVEntity.d.ts +3 -0
  12. package/dist/server/entities/altv/entity/AltVEntity.js +9 -0
  13. package/dist/server/entities/altv/player/AltVPlayer.d.ts +4 -4
  14. package/dist/server/entities/altv/player/AltVPlayer.js +6 -9
  15. package/dist/server/entities/altv/vehicle/AltVVehicle.d.ts +21 -0
  16. package/dist/server/entities/altv/vehicle/AltVVehicle.js +74 -0
  17. package/dist/server/entities/altv/vehicle/AltVVehiclesManager.js +5 -2
  18. package/dist/server/entities/common/baseObject/IBaseObject.d.ts +3 -2
  19. package/dist/server/entities/common/baseObject/IBaseObjectsManager.d.ts +2 -0
  20. package/dist/server/entities/common/entity/IEntitiesManager.d.ts +6 -1
  21. package/dist/server/entities/common/entity/IEntity.d.ts +3 -0
  22. package/dist/server/entities/common/player/IPlayer.d.ts +4 -3
  23. package/dist/server/entities/common/player/index.d.ts +0 -1
  24. package/dist/server/entities/common/player/index.js +0 -1
  25. package/dist/server/entities/common/vehicle/IVehicle.d.ts +21 -0
  26. package/dist/server/entities/common/vehicle/IVehiclesManager.d.ts +4 -6
  27. package/dist/server/entities/common/worldObject/IWorldObjectsManager.d.ts +6 -1
  28. package/dist/server/entities/ragemp/baseObject/RageBaseObject.d.ts +1 -0
  29. package/dist/server/entities/ragemp/baseObject/RageBaseObject.js +3 -0
  30. package/dist/server/entities/ragemp/entity/RageEntity.d.ts +3 -0
  31. package/dist/server/entities/ragemp/entity/RageEntity.js +8 -0
  32. package/dist/server/entities/ragemp/player/RagePlayer.d.ts +4 -4
  33. package/dist/server/entities/ragemp/player/RagePlayer.js +6 -9
  34. package/dist/server/entities/ragemp/player/RagePlayersManager.js +1 -0
  35. package/dist/server/entities/ragemp/vehicle/RageVehicle.d.ts +21 -0
  36. package/dist/server/entities/ragemp/vehicle/RageVehicle.js +70 -0
  37. package/dist/server/entities/ragemp/vehicle/RageVehiclesManager.js +8 -2
  38. package/dist/server/entities/ragemp/worldObject/RageWorldObject.js +1 -1
  39. package/dist/server/net/altv/events/AltVEventsManager.d.ts +8 -8
  40. package/dist/server/net/altv/events/AltVEventsManager.js +6 -6
  41. package/dist/server/net/altv/rpc/AltVRPCManager.d.ts +7 -6
  42. package/dist/server/net/altv/rpc/AltVRPCManager.js +7 -2
  43. package/dist/server/net/common/events/IEventsManager.d.ts +5 -4
  44. package/dist/server/net/common/rpc/IRPCManager.d.ts +7 -3
  45. package/dist/server/net/ragemp/events/RageEventsManager.d.ts +8 -8
  46. package/dist/server/net/ragemp/events/RageEventsManager.js +6 -7
  47. package/dist/server/net/ragemp/rpc/RageRPCManager.d.ts +8 -4
  48. package/dist/server/net/ragemp/rpc/RageRPCManager.js +6 -2
  49. package/package.json +62 -59
  50. package/dist/server/entities/altv/player/AltVPlayerNetManager.d.ts +0 -8
  51. package/dist/server/entities/altv/player/AltVPlayerNetManager.js +0 -16
  52. package/dist/server/entities/common/player/IPlayerNetManager.d.ts +0 -4
  53. package/dist/server/entities/common/player/IPlayerNetManager.js +0 -2
  54. package/dist/server/entities/ragemp/player/RagePlayerNetManager.d.ts +0 -7
  55. package/dist/server/entities/ragemp/player/RagePlayerNetManager.js +0 -16
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2024 Carter
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Carter
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,17 @@
1
+ export interface IRGBA {
2
+ get r(): number;
3
+ get g(): number;
4
+ get b(): number;
5
+ get a(): number | undefined;
6
+ }
7
+ export declare class RGBA implements IRGBA {
8
+ private readonly _r;
9
+ private readonly _g;
10
+ private readonly _b;
11
+ private readonly _a;
12
+ get r(): number;
13
+ get g(): number;
14
+ get b(): number;
15
+ get a(): number | undefined;
16
+ constructor(r: number, g: number, b: number, a?: number | undefined);
17
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RGBA = void 0;
4
+ class RGBA {
5
+ _r;
6
+ _g;
7
+ _b;
8
+ _a;
9
+ get r() {
10
+ return this._r;
11
+ }
12
+ get g() {
13
+ return this._g;
14
+ }
15
+ get b() {
16
+ return this._b;
17
+ }
18
+ get a() {
19
+ return this._a;
20
+ }
21
+ constructor(r, g, b, a) {
22
+ this._r = r;
23
+ this._g = g;
24
+ this._b = b;
25
+ this._a = a;
26
+ }
27
+ }
28
+ exports.RGBA = RGBA;
@@ -0,0 +1 @@
1
+ export * from "./RGBA";
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./RGBA"), exports);
@@ -1 +1,2 @@
1
+ export * from "./color";
1
2
  export * from "./math";
@@ -14,4 +14,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./color"), exports);
17
18
  __exportStar(require("./math"), exports);
@@ -7,6 +7,7 @@ export declare abstract class AltVBaseObject<T extends BaseObject> implements IB
7
7
  private readonly _mpEntity;
8
8
  get id(): number;
9
9
  get type(): BaseObjectType;
10
+ get isExists(): boolean;
10
11
  protected get mpEntity(): T;
11
12
  protected constructor(options: IAltVBaseObjectOptions<T>);
12
13
  destroy(): void;
@@ -19,6 +19,9 @@ class AltVBaseObject {
19
19
  }
20
20
  throw new Error(`BaseObject type ${this._mpEntity.type} not supported`);
21
21
  }
22
+ get isExists() {
23
+ return this.mpEntity.valid;
24
+ }
22
25
  get mpEntity() {
23
26
  return this._mpEntity;
24
27
  }
@@ -34,13 +34,13 @@ class AltVBaseObjectsManager {
34
34
  throw new Error(`BaseObject [${this._baseObjectsType}] with id ${baseObject.id} already exists`);
35
35
  }
36
36
  this._baseObjects.set(baseObject.id, baseObject);
37
- RockMod_1.RockMod.instance.net.events.emit("entityCreated", baseObject);
37
+ RockMod_1.RockMod.instance.net.events.emit("rm::entityCreated", baseObject);
38
38
  }
39
39
  unregisterBaseObject(baseObject) {
40
40
  if (!this._baseObjects.delete(baseObject.id)) {
41
41
  throw new Error(`BaseObject [${this._baseObjectsType}] with id ${baseObject.id} not found`);
42
42
  }
43
- RockMod_1.RockMod.instance.net.events.emit("entityDestroyed", baseObject);
43
+ RockMod_1.RockMod.instance.net.events.emit("rm::entityCreated", baseObject);
44
44
  }
45
45
  }
46
46
  exports.AltVBaseObjectsManager = AltVBaseObjectsManager;
@@ -1,10 +1,13 @@
1
1
  import { IEntity } from "../../common/entity/IEntity";
2
2
  import { AltVWorldObject, IAltVWorldObjectOptions } from "../worldObject/AltVWorldObject";
3
3
  import Entity = AltVServer.Entity;
4
+ import { Vector3D } from "../../../common/utils";
4
5
  export interface IAltVEntityOptions<T extends Entity> extends IAltVWorldObjectOptions<T> {
5
6
  }
6
7
  export declare abstract class AltVEntity<T extends Entity> extends AltVWorldObject<T> implements IEntity {
7
8
  get model(): number;
9
+ get rotation(): Vector3D;
8
10
  protected constructor(options: IAltVEntityOptions<T>);
9
11
  setModel(value: string): void;
12
+ setRotation(value: Vector3D): void;
10
13
  }
@@ -3,15 +3,24 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AltVEntity = void 0;
4
4
  const AltVWorldObject_1 = require("../worldObject/AltVWorldObject");
5
5
  var hash = AltVShared.hash;
6
+ const utils_1 = require("../../../common/utils");
7
+ var Vector3 = AltVShared.Vector3;
6
8
  class AltVEntity extends AltVWorldObject_1.AltVWorldObject {
7
9
  get model() {
8
10
  return this.mpEntity.model;
9
11
  }
12
+ get rotation() {
13
+ const { x, y, z } = this.mpEntity.rot;
14
+ return new utils_1.Vector3D(x, y, z);
15
+ }
10
16
  constructor(options) {
11
17
  super(options);
12
18
  }
13
19
  setModel(value) {
14
20
  this.mpEntity.model = hash(value);
15
21
  }
22
+ setRotation(value) {
23
+ this.mpEntity.rot = new Vector3(value);
24
+ }
16
25
  }
17
26
  exports.AltVEntity = AltVEntity;
@@ -1,14 +1,13 @@
1
1
  import { AltVEntity, IAltVEntityOptions } from "../entity/AltVEntity";
2
2
  import { ICustomization, IPlayer } from "../../common/player/IPlayer";
3
- import { AltVPlayerNetManager } from "./AltVPlayerNetManager";
4
3
  import { AltVVehicle } from "../vehicle/AltVVehicle";
5
4
  import Player = AltVServer.Player;
6
5
  import { Vector3D } from "../../../common/utils/math/Vectors";
6
+ import { IAltVClientEvents } from "../../../net/altv/events/AltVEventsManager";
7
+ import { IAltVClientRPC } from "../../../net/altv/rpc/AltVRPCManager";
7
8
  interface AltVPlayerOptions extends IAltVEntityOptions<Player> {
8
9
  }
9
10
  export declare class AltVPlayer extends AltVEntity<Player> implements IPlayer {
10
- private readonly _net;
11
- get net(): AltVPlayerNetManager;
12
11
  get name(): string;
13
12
  get socialClub(): string;
14
13
  get heading(): number;
@@ -22,8 +21,9 @@ export declare class AltVPlayer extends AltVEntity<Player> implements IPlayer {
22
21
  get weaponAmmo(): number;
23
22
  get eyeColor(): number;
24
23
  get streamedPlayers(): AltVPlayer[];
25
- get isExists(): boolean;
26
24
  constructor(options: AltVPlayerOptions);
25
+ emitEvent<K extends keyof IAltVClientEvents>(eventName: K, ...args: Parameters<IAltVClientEvents[K]>): void;
26
+ emitRPC<K extends keyof IAltVClientRPC>(rpcName: K, ...args: Parameters<IAltVClientRPC[K]>): Promise<ReturnType<IAltVClientRPC[K]>>;
27
27
  spawn(position: Vector3D): void;
28
28
  setName(name: string): void;
29
29
  setHeading(value: number): void;
@@ -2,17 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AltVPlayer = void 0;
4
4
  const AltVEntity_1 = require("../entity/AltVEntity");
5
- const AltVPlayerNetManager_1 = require("./AltVPlayerNetManager");
6
5
  const RockMod_1 = require("../../../RockMod");
7
6
  var Player = AltVServer.Player;
8
7
  var Vehicle = AltVServer.Vehicle;
9
8
  var Vector3 = AltVShared.Vector3;
10
9
  var hash = AltVShared.hash;
11
10
  class AltVPlayer extends AltVEntity_1.AltVEntity {
12
- _net;
13
- get net() {
14
- return this._net;
15
- }
16
11
  get name() {
17
12
  return this.mpEntity.name;
18
13
  }
@@ -62,12 +57,14 @@ class AltVPlayer extends AltVEntity_1.AltVEntity {
62
57
  }
63
58
  return players;
64
59
  }
65
- get isExists() {
66
- return this.mpEntity.valid;
67
- }
68
60
  constructor(options) {
69
61
  super(options);
70
- this._net = new AltVPlayerNetManager_1.AltVPlayerNetManager(this.mpEntity);
62
+ }
63
+ emitEvent(eventName, ...args) {
64
+ return RockMod_1.RockMod.instance.net.events.emitClient(this, eventName, ...args);
65
+ }
66
+ emitRPC(rpcName, ...args) {
67
+ return RockMod_1.RockMod.instance.net.rpc.emitClient(this, rpcName, ...args);
71
68
  }
72
69
  spawn(position) {
73
70
  return this.mpEntity.spawn(position);
@@ -1,10 +1,31 @@
1
1
  import { AltVEntity, IAltVEntityOptions } from "../entity/AltVEntity";
2
2
  import { IVehicle } from "../../common/vehicle/IVehicle";
3
3
  import Vehicle = AltVServer.Vehicle;
4
+ import { RGBA } from "../../../common/utils";
5
+ import { AltVPlayer } from "../player/AltVPlayer";
4
6
  export interface IAltVVehicleOptions extends IAltVEntityOptions<Vehicle> {
5
7
  }
6
8
  export declare class AltVVehicle extends AltVEntity<Vehicle> implements IVehicle {
7
9
  get bodyHealth(): number;
10
+ get engineHealth(): number;
11
+ get numberPlate(): string;
12
+ get isLocked(): boolean;
13
+ get isDead(): boolean;
14
+ get primaryColor(): number;
15
+ get secondaryColor(): number;
16
+ get customPrimaryColor(): RGBA;
17
+ get customSecondaryColor(): RGBA;
18
+ get driver(): AltVPlayer | null;
19
+ get passengers(): Set<AltVPlayer>;
8
20
  constructor(options: IAltVVehicleOptions);
9
21
  setBodyHealth(value: number): void;
22
+ setEngineHealth(value: number): void;
23
+ setNumberPlate(value: string): void;
24
+ setLocked(value: boolean): void;
25
+ setPrimaryColor(value: number): void;
26
+ setSecondaryColor(value: number): void;
27
+ setCustomPrimaryColor(value: RGBA): void;
28
+ setCustomSecondaryColor(value: RGBA): void;
29
+ explode(): void;
30
+ repair(): void;
10
31
  }
@@ -2,15 +2,89 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AltVVehicle = void 0;
4
4
  const AltVEntity_1 = require("../entity/AltVEntity");
5
+ var VehicleLockState = AltVShared.VehicleLockState;
6
+ const utils_1 = require("../../../common/utils");
7
+ const RockMod_1 = require("../../../RockMod");
5
8
  class AltVVehicle extends AltVEntity_1.AltVEntity {
6
9
  get bodyHealth() {
7
10
  return this.mpEntity.bodyHealth;
8
11
  }
12
+ get engineHealth() {
13
+ return this.mpEntity.engineHealth;
14
+ }
15
+ get numberPlate() {
16
+ return this.mpEntity.numberPlateText;
17
+ }
18
+ get isLocked() {
19
+ return this.mpEntity.lockState > 1;
20
+ }
21
+ get isDead() {
22
+ return this.mpEntity.destroyed;
23
+ }
24
+ get primaryColor() {
25
+ return this.mpEntity.primaryColor;
26
+ }
27
+ get secondaryColor() {
28
+ return this.mpEntity.secondaryColor;
29
+ }
30
+ get customPrimaryColor() {
31
+ const { r, g, b, a } = this.mpEntity.customPrimaryColor;
32
+ return new utils_1.RGBA(r, g, b, a);
33
+ }
34
+ get customSecondaryColor() {
35
+ const { r, g, b, a } = this.mpEntity.customSecondaryColor;
36
+ return new utils_1.RGBA(r, g, b, a);
37
+ }
38
+ get driver() {
39
+ const mpPlayer = this.mpEntity.driver;
40
+ if (!mpPlayer) {
41
+ return null;
42
+ }
43
+ return RockMod_1.RockMod.instance.players.getByID(mpPlayer.id);
44
+ }
45
+ get passengers() {
46
+ const players = new Set();
47
+ for (const mpPlayer of Object.values(this.mpEntity.passengers)) {
48
+ const player = RockMod_1.RockMod.instance.players.getByID(mpPlayer.id);
49
+ players.add(player);
50
+ }
51
+ return players;
52
+ }
9
53
  constructor(options) {
10
54
  super(options);
11
55
  }
12
56
  setBodyHealth(value) {
13
57
  this.mpEntity.bodyHealth = value;
14
58
  }
59
+ setEngineHealth(value) {
60
+ this.mpEntity.engineHealth = value;
61
+ }
62
+ setNumberPlate(value) {
63
+ this.mpEntity.numberPlateText = value;
64
+ }
65
+ setLocked(value) {
66
+ this.mpEntity.lockState = value ? VehicleLockState.Locked : VehicleLockState.Unlocked;
67
+ }
68
+ setPrimaryColor(value) {
69
+ this.mpEntity.primaryColor = value;
70
+ }
71
+ setSecondaryColor(value) {
72
+ this.mpEntity.secondaryColor = value;
73
+ }
74
+ setCustomPrimaryColor(value) {
75
+ const { r, g, b, a } = value;
76
+ this.mpEntity.customPrimaryColor = new AltVShared.RGBA(r, g, b, a);
77
+ }
78
+ setCustomSecondaryColor(value) {
79
+ const { r, g, b, a } = value;
80
+ this.mpEntity.customSecondaryColor = new AltVShared.RGBA(r, g, b, a);
81
+ }
82
+ explode() {
83
+ this.mpEntity.engineHealth = 0;
84
+ this.mpEntity.bodyHealth = 0;
85
+ }
86
+ repair() {
87
+ return this.mpEntity.repair();
88
+ }
15
89
  }
16
90
  exports.AltVVehicle = AltVVehicle;
@@ -11,8 +11,11 @@ class AltVVehiclesManager extends AltVEntitiesManager_1.AltVEntitiesManager {
11
11
  });
12
12
  }
13
13
  create(options) {
14
- const { model, position, rotation } = options;
15
- const mpEntity = new alt.Vehicle(model, position.x, position.y, position.z, rotation.x, rotation.y, rotation.z);
14
+ const { model, position, dimension, rotation, engine, locked } = options;
15
+ const mpEntity = new alt.Vehicle(model, position, rotation);
16
+ mpEntity.dimension = dimension;
17
+ mpEntity.engineOn = engine;
18
+ mpEntity.lockState = locked ? 2 : 1;
16
19
  const vehicle = new AltVVehicle_1.AltVVehicle({ mpEntity });
17
20
  this.registerBaseObject(vehicle);
18
21
  return vehicle;
@@ -7,7 +7,8 @@ export interface IBaseObjectOptions {
7
7
  mpEntity: EntityMp | BaseObject;
8
8
  }
9
9
  export interface IBaseObject {
10
- id: number;
11
- type: BaseObjectType;
10
+ get id(): number;
11
+ get type(): BaseObjectType;
12
+ get isExists(): boolean;
12
13
  destroy(): void;
13
14
  }
@@ -3,6 +3,8 @@ import { IBaseObjectsIterator } from "./IBaseObjectsIterator";
3
3
  export interface IBaseObjectsManagerOptions {
4
4
  baseObjectsType: `${BaseObjectType}`;
5
5
  }
6
+ export interface IBaseObjectCreateOptions {
7
+ }
6
8
  export interface IBaseObjectsManager<T extends IBaseObject> {
7
9
  get iterator(): IBaseObjectsIterator<T>;
8
10
  getByID(id: number): T;
@@ -1,6 +1,11 @@
1
- import { IWorldObjectsManager, IWorldObjectsManagerOptions } from "../worldObject/IWorldObjectsManager";
1
+ import { IWorldObjectCreateOptions, IWorldObjectsManager, IWorldObjectsManagerOptions } from "../worldObject/IWorldObjectsManager";
2
2
  import { IEntity } from "./IEntity";
3
+ import { IVector3D } from "../../../common/utils";
3
4
  export interface IEntitiesManagerOptions extends IWorldObjectsManagerOptions {
4
5
  }
6
+ export interface IEntityCreateOptions extends IWorldObjectCreateOptions {
7
+ model: string;
8
+ rotation: IVector3D;
9
+ }
5
10
  export interface IEntitiesManager<T extends IEntity> extends IWorldObjectsManager<T> {
6
11
  }
@@ -1,7 +1,10 @@
1
1
  import { IWorldObject, IWorldObjectOptions } from "../worldObject/IWorldObject";
2
+ import { IVector3D } from "../../../common/utils";
2
3
  export interface IEntityOptions extends IWorldObjectOptions {
3
4
  }
4
5
  export interface IEntity extends IWorldObject {
5
6
  get model(): number;
7
+ get rotation(): IVector3D;
6
8
  setModel(value: string): void;
9
+ setRotation(value: IVector3D): void;
7
10
  }
@@ -1,7 +1,8 @@
1
1
  import { IEntity, IEntityOptions } from "../entity/IEntity";
2
- import { IPlayerNetManager } from "./IPlayerNetManager";
3
2
  import { IVehicle } from "../vehicle/IVehicle";
4
3
  import { IVector3D } from "../../../common/utils/math/Vectors";
4
+ import { INetClientEvents } from "../../../net/common/events/IEventsManager";
5
+ import { INetClientRPC } from "../../../net/common/rpc/IRPCManager";
5
6
  export interface ICustomization {
6
7
  gender: boolean;
7
8
  shapeFirst: number;
@@ -21,7 +22,6 @@ export interface ICustomization {
21
22
  export interface IPlayerOptions extends IEntityOptions {
22
23
  }
23
24
  export interface IPlayer extends IEntity {
24
- get net(): IPlayerNetManager;
25
25
  get name(): string;
26
26
  get socialClub(): string;
27
27
  get heading(): number;
@@ -35,7 +35,8 @@ export interface IPlayer extends IEntity {
35
35
  get weaponAmmo(): number;
36
36
  get eyeColor(): number;
37
37
  get streamedPlayers(): IPlayer[];
38
- get isExists(): boolean;
38
+ emitEvent<K extends keyof INetClientEvents>(eventName: K, ...args: Parameters<INetClientEvents[K]>): void;
39
+ emitRPC<K extends keyof INetClientEvents>(rpcName: K, ...args: Parameters<INetClientEvents[K]>): Promise<ReturnType<INetClientRPC[K]>>;
39
40
  spawn(position: IVector3D): void;
40
41
  setName(name: string): void;
41
42
  setHeading(value: number): void;
@@ -1,3 +1,2 @@
1
1
  export * from "./IPlayer";
2
- export * from "./IPlayerNetManager";
3
2
  export * from "./IPlayersManager";
@@ -15,5 +15,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./IPlayer"), exports);
18
- __exportStar(require("./IPlayerNetManager"), exports);
19
18
  __exportStar(require("./IPlayersManager"), exports);
@@ -1,4 +1,6 @@
1
1
  import { IEntity, IEntityOptions } from "../entity/IEntity";
2
+ import { IRGBA } from "../../../common/utils";
3
+ import { IPlayer } from "../player";
2
4
  export declare enum VehicleSeat {
3
5
  NONE = 255,
4
6
  DRIVER = 256,
@@ -23,5 +25,24 @@ export interface IVehicleOptions extends IEntityOptions {
23
25
  }
24
26
  export interface IVehicle extends IEntity {
25
27
  get bodyHealth(): number;
28
+ get engineHealth(): number;
29
+ get numberPlate(): string;
30
+ get isLocked(): boolean;
31
+ get isDead(): boolean;
32
+ get primaryColor(): number;
33
+ get secondaryColor(): number;
34
+ get customPrimaryColor(): IRGBA;
35
+ get customSecondaryColor(): IRGBA;
36
+ get driver(): IPlayer | null;
37
+ get passengers(): Set<IPlayer>;
26
38
  setBodyHealth(value: number): void;
39
+ setEngineHealth(value: number): void;
40
+ setNumberPlate(value: string): void;
41
+ setLocked(value: boolean): void;
42
+ setPrimaryColor(value: number): void;
43
+ setSecondaryColor(value: number): void;
44
+ setCustomPrimaryColor(value: IRGBA): void;
45
+ setCustomSecondaryColor(value: IRGBA): void;
46
+ explode(): void;
47
+ repair(): void;
27
48
  }
@@ -1,10 +1,8 @@
1
- import { IEntitiesManager } from "../entity/IEntitiesManager";
1
+ import { IEntitiesManager, IEntityCreateOptions } from "../entity/IEntitiesManager";
2
2
  import { IVehicle } from "./IVehicle";
3
- import { Vector3D } from "../../../common/utils/math/Vectors";
4
- export interface IVehicleCreateOptions {
5
- model: string;
6
- position: Vector3D;
7
- rotation: Vector3D;
3
+ export interface IVehicleCreateOptions extends IEntityCreateOptions {
4
+ engine: boolean;
5
+ locked: boolean;
8
6
  }
9
7
  export interface IVehiclesManager extends IEntitiesManager<IVehicle> {
10
8
  create(options: IVehicleCreateOptions): IVehicle;
@@ -1,8 +1,13 @@
1
- import { IBaseObjectsManager, IBaseObjectsManagerOptions } from "../baseObject/IBaseObjectsManager";
1
+ import { IBaseObjectCreateOptions, IBaseObjectsManager, IBaseObjectsManagerOptions } from "../baseObject/IBaseObjectsManager";
2
2
  import { IWorldObject } from "./IWorldObject";
3
3
  import { IWorldObjectsIterator } from "./IWorldObjectsIterator";
4
+ import { IVector3D } from "../../../common/utils";
4
5
  export interface IWorldObjectsManagerOptions extends IBaseObjectsManagerOptions {
5
6
  }
7
+ export interface IWorldObjectCreateOptions extends IBaseObjectCreateOptions {
8
+ position: IVector3D;
9
+ dimension: number;
10
+ }
6
11
  export interface IWorldObjectsManager<T extends IWorldObject> extends IBaseObjectsManager<T> {
7
12
  get iterator(): IWorldObjectsIterator<T>;
8
13
  }
@@ -6,6 +6,7 @@ export declare abstract class RageBaseObject<T extends EntityMp = EntityMp> impl
6
6
  private readonly _mpEntity;
7
7
  get id(): number;
8
8
  get type(): BaseObjectType;
9
+ get isExists(): boolean;
9
10
  protected get mpEntity(): T;
10
11
  protected constructor(options: IRageBaseObjectOptions<T>);
11
12
  destroy(): void;
@@ -9,6 +9,9 @@ class RageBaseObject {
9
9
  get type() {
10
10
  return this._mpEntity.type;
11
11
  }
12
+ get isExists() {
13
+ return this._mpEntity.isExists();
14
+ }
12
15
  get mpEntity() {
13
16
  return this._mpEntity;
14
17
  }
@@ -1,9 +1,12 @@
1
1
  import { IEntity } from "../../common/entity/IEntity";
2
2
  import { IRageWorldObjectOptions, RageWorldObject } from "../worldObject/RageWorldObject";
3
+ import { Vector3D } from "../../../common/utils";
3
4
  export interface IRageEntityOptions<T extends EntityMp> extends IRageWorldObjectOptions<T> {
4
5
  }
5
6
  export declare abstract class RageEntity<T extends EntityMp> extends RageWorldObject<T> implements IEntity {
6
7
  get model(): number;
8
+ get rotation(): Vector3D;
7
9
  protected constructor(options: IRageEntityOptions<T>);
8
10
  setModel(value: string): void;
11
+ setRotation(value: Vector3D): void;
9
12
  }
@@ -2,15 +2,23 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RageEntity = void 0;
4
4
  const RageWorldObject_1 = require("../worldObject/RageWorldObject");
5
+ const utils_1 = require("../../../common/utils");
5
6
  class RageEntity extends RageWorldObject_1.RageWorldObject {
6
7
  get model() {
7
8
  return this.mpEntity.model;
8
9
  }
10
+ get rotation() {
11
+ const { x, y, z } = this.mpEntity.rotation;
12
+ return new utils_1.Vector3D(x, y, z);
13
+ }
9
14
  constructor(options) {
10
15
  super(options);
11
16
  }
12
17
  setModel(value) {
13
18
  this.mpEntity.model = mp.joaat(value);
14
19
  }
20
+ setRotation(value) {
21
+ this.mpEntity.rotation = new mp.Vector3(value);
22
+ }
15
23
  }
16
24
  exports.RageEntity = RageEntity;
@@ -1,13 +1,12 @@
1
1
  import { IRageEntityOptions, RageEntity } from "../entity/RageEntity";
2
2
  import { ICustomization, IPlayer } from "../../common/player/IPlayer";
3
- import { RagePlayerNetManager } from "./RagePlayerNetManager";
4
3
  import { RageVehicle } from "../vehicle/RageVehicle";
5
4
  import { Vector3D } from "../../../common/utils/math/Vectors";
5
+ import { IRageClientEvents } from "../../../net/ragemp/events/RageEventsManager";
6
+ import { IRageClientRPC } from "../../../net/ragemp/rpc/RageRPCManager";
6
7
  interface IRagePlayerOptions extends IRageEntityOptions<PlayerMp> {
7
8
  }
8
9
  export declare class RagePlayer extends RageEntity<PlayerMp> implements IPlayer {
9
- private readonly _net;
10
- get net(): RagePlayerNetManager;
11
10
  get name(): string;
12
11
  get socialClub(): string;
13
12
  get heading(): number;
@@ -21,8 +20,9 @@ export declare class RagePlayer extends RageEntity<PlayerMp> implements IPlayer
21
20
  get weaponAmmo(): number;
22
21
  get eyeColor(): number;
23
22
  get streamedPlayers(): RagePlayer[];
24
- get isExists(): boolean;
25
23
  constructor(options: IRagePlayerOptions);
24
+ emitEvent<K extends keyof IRageClientEvents>(eventName: K, ...args: Parameters<IRageClientEvents[K]>): void;
25
+ emitRPC<K extends keyof IRageClientRPC>(rpcName: K, ...args: Parameters<IRageClientRPC[K]>): Promise<ReturnType<IRageClientRPC[K]>>;
26
26
  spawn(position: Vector3D): void;
27
27
  setName(name: string): void;
28
28
  setHeading(value: number): void;