rock-mod 0.0.1 → 0.1.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/index.d.ts +1 -1
  2. package/dist/index.js +1 -1
  3. package/dist/server/RockMod.d.ts +11 -5
  4. package/dist/server/RockMod.js +61 -19
  5. package/dist/server/common/utils/index.d.ts +1 -0
  6. package/dist/server/common/utils/index.js +17 -0
  7. package/dist/server/common/utils/math/Math.d.ts +6 -0
  8. package/dist/server/common/utils/math/Math.js +7 -0
  9. package/dist/server/common/utils/math/Vectors.d.ts +15 -2
  10. package/dist/server/common/utils/math/index.d.ts +1 -0
  11. package/dist/server/common/utils/math/index.js +17 -0
  12. package/dist/server/entities/altv/baseObject/AltVBaseObject.d.ts +8 -4
  13. package/dist/server/entities/altv/baseObject/AltVBaseObject.js +17 -6
  14. package/dist/server/entities/altv/baseObject/AltVBaseObjectsIterator.d.ts +2 -1
  15. package/dist/server/entities/altv/baseObject/AltVBaseObjectsManager.d.ts +7 -2
  16. package/dist/server/entities/altv/baseObject/AltVBaseObjectsManager.js +14 -0
  17. package/dist/server/entities/altv/entity/AltVEntitiesManager.d.ts +2 -1
  18. package/dist/server/entities/altv/entity/AltVEntity.d.ts +8 -6
  19. package/dist/server/entities/altv/entity/AltVEntity.js +3 -4
  20. package/dist/server/entities/altv/player/AltVPlayer.d.ts +42 -8
  21. package/dist/server/entities/altv/player/AltVPlayer.js +117 -12
  22. package/dist/server/entities/altv/player/AltVPlayerNetManager.d.ts +8 -0
  23. package/dist/server/entities/altv/player/AltVPlayerNetManager.js +16 -0
  24. package/dist/server/entities/altv/vehicle/AltVVehicle.d.ts +7 -5
  25. package/dist/server/entities/altv/vehicle/AltVVehicle.js +2 -4
  26. package/dist/server/entities/altv/vehicle/AltVVehiclesManager.d.ts +5 -1
  27. package/dist/server/entities/altv/vehicle/AltVVehiclesManager.js +9 -0
  28. package/dist/server/entities/altv/worldObject/AltVWorldObject.d.ts +9 -6
  29. package/dist/server/entities/altv/worldObject/AltVWorldObject.js +11 -6
  30. package/dist/server/entities/altv/worldObject/AltVWorldObjectsIterator.d.ts +2 -1
  31. package/dist/server/entities/altv/worldObject/AltVWorldObjectsManager.d.ts +7 -4
  32. package/dist/server/entities/common/baseObject/IBaseObject.d.ts +2 -2
  33. package/dist/server/entities/common/baseObject/index.d.ts +3 -0
  34. package/dist/server/entities/common/baseObject/index.js +19 -0
  35. package/dist/server/entities/common/entity/IEntity.d.ts +1 -2
  36. package/dist/server/entities/common/entity/index.d.ts +2 -0
  37. package/dist/server/entities/common/entity/index.js +18 -0
  38. package/dist/server/entities/common/index.d.ts +5 -0
  39. package/dist/server/entities/common/index.js +21 -0
  40. package/dist/server/entities/common/player/IPlayer.d.ts +49 -3
  41. package/dist/server/entities/common/player/IPlayerNetManager.d.ts +4 -0
  42. package/dist/server/entities/common/player/index.d.ts +3 -0
  43. package/dist/server/entities/common/player/index.js +19 -0
  44. package/dist/server/entities/common/vehicle/IVehicle.d.ts +20 -0
  45. package/dist/server/entities/common/vehicle/IVehicle.js +22 -0
  46. package/dist/server/entities/common/vehicle/IVehiclesManager.d.ts +7 -0
  47. package/dist/server/entities/common/vehicle/index.d.ts +2 -0
  48. package/dist/server/entities/common/vehicle/index.js +18 -0
  49. package/dist/server/entities/common/worldObject/IWorldObject.d.ts +5 -5
  50. package/dist/server/entities/common/worldObject/index.d.ts +3 -0
  51. package/dist/server/entities/common/worldObject/index.js +19 -0
  52. package/dist/server/entities/index.d.ts +1 -0
  53. package/dist/server/entities/index.js +17 -0
  54. package/dist/server/entities/ragemp/baseObject/RageBaseObject.d.ts +7 -4
  55. package/dist/server/entities/ragemp/baseObject/RageBaseObject.js +7 -6
  56. package/dist/server/entities/ragemp/baseObject/RageBaseObjectsManager.d.ts +6 -2
  57. package/dist/server/entities/ragemp/baseObject/RageBaseObjectsManager.js +14 -0
  58. package/dist/server/entities/ragemp/entity/RageEntitiesManager.d.ts +6 -4
  59. package/dist/server/entities/ragemp/entity/RageEntity.d.ts +7 -6
  60. package/dist/server/entities/ragemp/entity/RageEntity.js +2 -4
  61. package/dist/server/entities/ragemp/player/RagePlayer.d.ts +41 -8
  62. package/dist/server/entities/ragemp/player/RagePlayer.js +109 -12
  63. package/dist/server/entities/ragemp/player/RagePlayerNetManager.d.ts +7 -0
  64. package/dist/server/entities/ragemp/player/RagePlayerNetManager.js +16 -0
  65. package/dist/server/entities/ragemp/player/RagePlayersManager.d.ts +1 -0
  66. package/dist/server/entities/ragemp/player/RagePlayersManager.js +20 -0
  67. package/dist/server/entities/ragemp/vehicle/RageVehicle.d.ts +6 -5
  68. package/dist/server/entities/ragemp/vehicle/RageVehicle.js +2 -4
  69. package/dist/server/entities/ragemp/vehicle/RageVehiclesManager.d.ts +4 -1
  70. package/dist/server/entities/ragemp/vehicle/RageVehiclesManager.js +8 -0
  71. package/dist/server/entities/ragemp/worldObject/RageWorldObject.d.ts +8 -6
  72. package/dist/server/entities/ragemp/worldObject/RageWorldObject.js +10 -6
  73. package/dist/server/entities/ragemp/worldObject/RageWorldObjectsIterator.d.ts +1 -1
  74. package/dist/server/entities/ragemp/worldObject/RageWorldObjectsManager.d.ts +6 -4
  75. package/dist/server/factories/altv/AltVManagersFactory.d.ts +9 -0
  76. package/dist/server/{entities → factories}/altv/AltVManagersFactory.js +6 -2
  77. package/dist/server/factories/common/IManagersFactory.d.ts +8 -0
  78. package/dist/server/factories/common/IManagersFactory.js +2 -0
  79. package/dist/server/factories/ragemp/RageManagersFactory.d.ts +9 -0
  80. package/dist/server/{entities → factories}/ragemp/RageManagersFactory.js +6 -2
  81. package/dist/server/index.d.ts +3 -0
  82. package/dist/server/index.js +19 -0
  83. package/dist/server/net/altv/AltVNetManager.d.ts +10 -0
  84. package/dist/server/net/altv/AltVNetManager.js +20 -0
  85. package/dist/server/net/altv/events/AltVEventsManager.d.ts +16 -0
  86. package/dist/server/net/altv/events/AltVEventsManager.js +28 -0
  87. package/dist/server/net/altv/rpc/AltVRPCManager.d.ts +11 -0
  88. package/dist/server/net/altv/rpc/AltVRPCManager.js +18 -0
  89. package/dist/server/net/common/INetManager.d.ts +6 -0
  90. package/dist/server/net/common/INetManager.js +2 -0
  91. package/dist/server/net/common/events/IEventsManager.d.ts +15 -0
  92. package/dist/server/net/common/events/IEventsManager.js +2 -0
  93. package/dist/server/net/common/rpc/IRPCManager.d.ts +6 -0
  94. package/dist/server/net/common/rpc/IRPCManager.js +2 -0
  95. package/dist/server/net/ragemp/RageNetManager.d.ts +10 -0
  96. package/dist/server/net/ragemp/RageNetManager.js +20 -0
  97. package/dist/server/net/ragemp/events/RageEventsManager.d.ts +19 -0
  98. package/dist/server/net/ragemp/events/RageEventsManager.js +25 -0
  99. package/dist/server/net/ragemp/rpc/RageRPCManager.d.ts +7 -0
  100. package/dist/server/net/ragemp/rpc/RageRPCManager.js +15 -0
  101. package/package.json +14 -8
  102. package/dist/server/entities/altv/AltVManagersFactory.d.ts +0 -7
  103. package/dist/server/entities/common/IManagersFactory.d.ts +0 -6
  104. package/dist/server/entities/ragemp/RageManagersFactory.d.ts +0 -7
  105. /package/dist/server/entities/common/{IManagersFactory.js → player/IPlayerNetManager.js} +0 -0
package/dist/index.d.ts CHANGED
@@ -1 +1 @@
1
- export * from "./server/RockMod";
1
+ export * from "./server";
package/dist/index.js CHANGED
@@ -14,4 +14,4 @@ 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("./server/RockMod"), exports);
17
+ __exportStar(require("./server"), exports);
@@ -1,3 +1,4 @@
1
+ import { INetManager } from "./net/common/INetManager";
1
2
  import { IPlayersManager } from "./entities/common/player/IPlayersManager";
2
3
  import { IVehiclesManager } from "./entities/common/vehicle/IVehiclesManager";
3
4
  type MultiplayerType = "RageMP" | "AltV";
@@ -5,13 +6,18 @@ export interface RockModOptions {
5
6
  multiplayer: MultiplayerType;
6
7
  }
7
8
  export declare class RockMod {
8
- private readonly _options;
9
- private readonly _players;
10
- private readonly _vehicles;
9
+ private static _instance?;
10
+ static create(options: RockModOptions): Promise<RockMod>;
11
+ static get instance(): RockMod;
12
+ private static _initManagersFactory;
13
+ private readonly _managersFactory;
14
+ private readonly _net;
15
+ private _players;
16
+ private _vehicles;
17
+ get net(): INetManager;
11
18
  get players(): IPlayersManager;
12
19
  get vehicles(): IVehiclesManager;
13
- constructor(options: RockModOptions);
20
+ private constructor();
14
21
  init(): void;
15
- private _initManagersFactory;
16
22
  }
17
23
  export {};
@@ -1,37 +1,79 @@
1
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  Object.defineProperty(exports, "__esModule", { value: true });
3
26
  exports.RockMod = void 0;
4
- const AltVManagersFactory_1 = require("./entities/altv/AltVManagersFactory");
5
- const RageManagersFactory_1 = require("./entities/ragemp/RageManagersFactory");
6
27
  class RockMod {
7
- _options;
28
+ static _instance;
29
+ static async create(options) {
30
+ if (this._instance) {
31
+ throw new Error("RockMod already created");
32
+ }
33
+ const managersFactory = await this._initManagersFactory(options);
34
+ this._instance = new RockMod(managersFactory);
35
+ return this._instance;
36
+ }
37
+ static get instance() {
38
+ if (!this._instance) {
39
+ throw new Error("RockMod not created");
40
+ }
41
+ return this._instance;
42
+ }
43
+ static async _initManagersFactory(options) {
44
+ const { multiplayer } = options;
45
+ switch (multiplayer) {
46
+ case "AltV": {
47
+ const { AltVManagersFactory } = await Promise.resolve().then(() => __importStar(require("./factories/altv/AltVManagersFactory")));
48
+ return new AltVManagersFactory();
49
+ }
50
+ case "RageMP": {
51
+ const { RageManagersFactory } = await Promise.resolve().then(() => __importStar(require("./factories/ragemp/RageManagersFactory")));
52
+ return new RageManagersFactory();
53
+ }
54
+ }
55
+ }
56
+ _managersFactory;
57
+ _net;
8
58
  _players;
9
59
  _vehicles;
60
+ get net() {
61
+ return this._net;
62
+ }
10
63
  get players() {
11
64
  return this._players;
12
65
  }
13
66
  get vehicles() {
14
67
  return this._vehicles;
15
68
  }
16
- constructor(options) {
17
- this._options = options;
18
- const managersFactory = this._initManagersFactory();
19
- this._players = managersFactory.createPlayersManager();
20
- this._vehicles = managersFactory.createVehiclesManager();
69
+ constructor(managersFactory) {
70
+ this._managersFactory = managersFactory;
71
+ this._net = managersFactory.createNetManager();
21
72
  }
22
73
  init() {
23
74
  console.log("RockMod init");
24
- }
25
- _initManagersFactory() {
26
- const { multiplayer } = this._options;
27
- switch (multiplayer) {
28
- case "AltV": {
29
- return new AltVManagersFactory_1.AltVManagersFactory();
30
- }
31
- case "RageMP": {
32
- return new RageManagersFactory_1.RageManagersFactory();
33
- }
34
- }
75
+ this._players = this._managersFactory.createPlayersManager();
76
+ this._vehicles = this._managersFactory.createVehiclesManager();
35
77
  }
36
78
  }
37
79
  exports.RockMod = RockMod;
@@ -0,0 +1 @@
1
+ export * from "./math";
@@ -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("./math"), exports);
@@ -0,0 +1,6 @@
1
+ declare global {
2
+ interface Math {
3
+ clamp(value: number, min: number, max: number): number;
4
+ }
5
+ }
6
+ export declare function clamp(value: number, min: number, max: number): number;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.clamp = clamp;
4
+ function clamp(value, min, max) {
5
+ return Math.max(min, Math.min(max, value));
6
+ }
7
+ Math.clamp = clamp;
@@ -1,4 +1,17 @@
1
- export declare class Vector2D {
1
+ export interface IVector2D {
2
+ get x(): number;
3
+ get y(): number;
4
+ distanceTo(position: IVector2D): number;
5
+ squaredDistanceTo(position: IVector2D): number;
6
+ isInRange(position: IVector2D, range: number): boolean;
7
+ }
8
+ export interface IVector3D extends IVector2D {
9
+ get z(): number;
10
+ distanceTo(position: IVector3D): number;
11
+ squaredDistanceTo(position: IVector3D): number;
12
+ isInRange(position: IVector3D, range: number): boolean;
13
+ }
14
+ export declare class Vector2D implements IVector2D {
2
15
  private readonly _x;
3
16
  private readonly _y;
4
17
  get x(): number;
@@ -8,7 +21,7 @@ export declare class Vector2D {
8
21
  squaredDistanceTo(position: Vector2D): number;
9
22
  isInRange(position: Vector2D, range: number): boolean;
10
23
  }
11
- export declare class Vector3D extends Vector2D {
24
+ export declare class Vector3D extends Vector2D implements IVector3D {
12
25
  private readonly _z;
13
26
  get z(): number;
14
27
  constructor(x: number, y: number, z: number);
@@ -0,0 +1 @@
1
+ export * from "./Vectors";
@@ -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("./Vectors"), exports);
@@ -1,9 +1,13 @@
1
1
  import { BaseObjectType, IBaseObject, IBaseObjectOptions } from "../../common/baseObject/IBaseObject";
2
- export declare abstract class AltVBaseObject implements IBaseObject {
3
- private readonly _id;
4
- private readonly _type;
2
+ import BaseObject = AltVServer.BaseObject;
3
+ export interface IAltVBaseObjectOptions<T extends BaseObject> extends IBaseObjectOptions {
4
+ mpEntity: T;
5
+ }
6
+ export declare abstract class AltVBaseObject<T extends BaseObject> implements IBaseObject {
7
+ private readonly _mpEntity;
5
8
  get id(): number;
6
9
  get type(): BaseObjectType;
7
- protected constructor(options: IBaseObjectOptions);
10
+ protected get mpEntity(): T;
11
+ protected constructor(options: IAltVBaseObjectOptions<T>);
8
12
  destroy(): void;
9
13
  }
@@ -1,18 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AltVBaseObject = void 0;
4
+ const IBaseObject_1 = require("../../common/baseObject/IBaseObject");
5
+ var BaseObjectTypeMP = AltVShared.BaseObjectType;
4
6
  class AltVBaseObject {
5
- _id;
6
- _type;
7
+ _mpEntity;
7
8
  get id() {
8
- return this._id;
9
+ return this._mpEntity.id;
9
10
  }
10
11
  get type() {
11
- return this._type;
12
+ switch (this._mpEntity.type) {
13
+ case BaseObjectTypeMP.Player: {
14
+ return IBaseObject_1.BaseObjectType.Player;
15
+ }
16
+ case BaseObjectTypeMP.Vehicle: {
17
+ return IBaseObject_1.BaseObjectType.Vehicle;
18
+ }
19
+ }
20
+ throw new Error(`BaseObject type ${this._mpEntity.type} not supported`);
21
+ }
22
+ get mpEntity() {
23
+ return this._mpEntity;
12
24
  }
13
25
  constructor(options) {
14
- this._id = options.id;
15
- this._type = options.type;
26
+ this._mpEntity = options.mpEntity;
16
27
  }
17
28
  destroy() {
18
29
  console.log("destroy");
@@ -1,6 +1,7 @@
1
1
  import { AltVBaseObject } from "./AltVBaseObject";
2
2
  import { IBaseObjectsIterator } from "../../common/baseObject/IBaseObjectsIterator";
3
- export declare class AltVBaseObjectsIterator<T extends AltVBaseObject> implements IBaseObjectsIterator<T> {
3
+ import BaseObject = AltVServer.BaseObject;
4
+ export declare class AltVBaseObjectsIterator<T extends AltVBaseObject<BaseObject>> implements IBaseObjectsIterator<T> {
4
5
  private readonly _baseObjects;
5
6
  constructor(baseObjects: ReadonlyMap<number, T>);
6
7
  all(): IterableIterator<T>;
@@ -1,13 +1,18 @@
1
1
  import { IBaseObjectsManager, IBaseObjectsManagerOptions } from "../../common/baseObject/IBaseObjectsManager";
2
2
  import { AltVBaseObject } from "./AltVBaseObject";
3
3
  import { AltVBaseObjectsIterator } from "./AltVBaseObjectsIterator";
4
- export declare abstract class AltVBaseObjectsManager<T extends AltVBaseObject> implements IBaseObjectsManager<T> {
4
+ import BaseObject = AltVServer.BaseObject;
5
+ export interface IAltVBaseObjectsManagerOptions extends IBaseObjectsManagerOptions {
6
+ }
7
+ export declare abstract class AltVBaseObjectsManager<T extends AltVBaseObject<BaseObject>> implements IBaseObjectsManager<T> {
5
8
  private readonly _baseObjects;
6
9
  private readonly _baseObjectsType;
7
10
  protected readonly _iterator: AltVBaseObjectsIterator<T>;
8
11
  protected get baseObjects(): ReadonlyMap<number, T>;
9
12
  get iterator(): AltVBaseObjectsIterator<T>;
10
- protected constructor(options: IBaseObjectsManagerOptions);
13
+ protected constructor(options: IAltVBaseObjectsManagerOptions);
11
14
  getByID(id: number): T;
12
15
  findByID(id: number): T | null;
16
+ protected registerBaseObject(baseObject: T): void;
17
+ protected unregisterBaseObject(baseObject: T): void;
13
18
  }
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AltVBaseObjectsManager = void 0;
4
4
  const AltVBaseObjectsIterator_1 = require("./AltVBaseObjectsIterator");
5
+ const RockMod_1 = require("../../../RockMod");
5
6
  class AltVBaseObjectsManager {
6
7
  _baseObjects;
7
8
  _baseObjectsType;
@@ -28,5 +29,18 @@ class AltVBaseObjectsManager {
28
29
  const baseObject = this._baseObjects.get(id);
29
30
  return baseObject ?? null;
30
31
  }
32
+ registerBaseObject(baseObject) {
33
+ if (this._baseObjects.has(baseObject.id)) {
34
+ throw new Error(`BaseObject [${this._baseObjectsType}] with id ${baseObject.id} already exists`);
35
+ }
36
+ this._baseObjects.set(baseObject.id, baseObject);
37
+ RockMod_1.RockMod.instance.net.events.emit("entityCreated", baseObject);
38
+ }
39
+ unregisterBaseObject(baseObject) {
40
+ if (!this._baseObjects.delete(baseObject.id)) {
41
+ throw new Error(`BaseObject [${this._baseObjectsType}] with id ${baseObject.id} not found`);
42
+ }
43
+ RockMod_1.RockMod.instance.net.events.emit("entityDestroyed", baseObject);
44
+ }
31
45
  }
32
46
  exports.AltVBaseObjectsManager = AltVBaseObjectsManager;
@@ -1,5 +1,6 @@
1
1
  import { IEntitiesManager } from "../../common/entity/IEntitiesManager";
2
2
  import { AltVEntity } from "./AltVEntity";
3
3
  import { AltVWorldObjectsManager } from "../worldObject/AltVWorldObjectsManager";
4
- export declare abstract class AltVEntitiesManager<T extends AltVEntity> extends AltVWorldObjectsManager<T> implements IEntitiesManager<T> {
4
+ import Entity = AltVServer.Entity;
5
+ export declare abstract class AltVEntitiesManager<T extends AltVEntity<Entity>> extends AltVWorldObjectsManager<T> implements IEntitiesManager<T> {
5
6
  }
@@ -1,8 +1,10 @@
1
- import { IEntity, IEntityOptions } from "../../common/entity/IEntity";
2
- import { AltVWorldObject } from "../worldObject/AltVWorldObject";
3
- export declare abstract class AltVEntity extends AltVWorldObject implements IEntity {
4
- private _model;
5
- get model(): string;
6
- protected constructor(options: IEntityOptions);
1
+ import { IEntity } from "../../common/entity/IEntity";
2
+ import { AltVWorldObject, IAltVWorldObjectOptions } from "../worldObject/AltVWorldObject";
3
+ import Entity = AltVServer.Entity;
4
+ export interface IAltVEntityOptions<T extends Entity> extends IAltVWorldObjectOptions<T> {
5
+ }
6
+ export declare abstract class AltVEntity<T extends Entity> extends AltVWorldObject<T> implements IEntity {
7
+ get model(): number;
8
+ protected constructor(options: IAltVEntityOptions<T>);
7
9
  setModel(value: string): void;
8
10
  }
@@ -2,17 +2,16 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AltVEntity = void 0;
4
4
  const AltVWorldObject_1 = require("../worldObject/AltVWorldObject");
5
+ var hash = AltVShared.hash;
5
6
  class AltVEntity extends AltVWorldObject_1.AltVWorldObject {
6
- _model;
7
7
  get model() {
8
- return this._model;
8
+ return this.mpEntity.model;
9
9
  }
10
10
  constructor(options) {
11
11
  super(options);
12
- this._model = options.model;
13
12
  }
14
13
  setModel(value) {
15
- this._model = value;
14
+ this.mpEntity.model = hash(value);
16
15
  }
17
16
  }
18
17
  exports.AltVEntity = AltVEntity;
@@ -1,13 +1,47 @@
1
- import { AltVEntity } from "../entity/AltVEntity";
2
- import { IPlayer, IPlayerOptions } from "../../common/player/IPlayer";
3
- export declare class AltVPlayer extends AltVEntity implements IPlayer {
4
- private _name;
5
- private readonly _socialClub;
6
- private _health;
1
+ import { AltVEntity, IAltVEntityOptions } from "../entity/AltVEntity";
2
+ import { ICustomization, IPlayer } from "../../common/player/IPlayer";
3
+ import { AltVPlayerNetManager } from "./AltVPlayerNetManager";
4
+ import { AltVVehicle } from "../vehicle/AltVVehicle";
5
+ import Player = AltVServer.Player;
6
+ import { Vector3D } from "../../../common/utils/math/Vectors";
7
+ interface AltVPlayerOptions extends IAltVEntityOptions<Player> {
8
+ }
9
+ export declare class AltVPlayer extends AltVEntity<Player> implements IPlayer {
10
+ private readonly _net;
11
+ get net(): AltVPlayerNetManager;
7
12
  get name(): string;
8
13
  get socialClub(): string;
14
+ get heading(): number;
9
15
  get health(): number;
10
- constructor(options: IPlayerOptions);
11
- setName(value: string): void;
16
+ get armour(): number;
17
+ get ip(): string;
18
+ get serial(): string;
19
+ get vehicle(): AltVVehicle | null;
20
+ get seat(): number;
21
+ get weapon(): number;
22
+ get weaponAmmo(): number;
23
+ get eyeColor(): number;
24
+ get streamedPlayers(): AltVPlayer[];
25
+ get isExists(): boolean;
26
+ constructor(options: AltVPlayerOptions);
27
+ spawn(position: Vector3D): void;
28
+ setName(name: string): void;
29
+ setHeading(value: number): void;
12
30
  setHealth(value: number): void;
31
+ setArmour(value: number): void;
32
+ setWeaponAmmo(weapon: string, ammo: number): void;
33
+ giveWeapon(weapon: string, ammo: number): void;
34
+ removeWeapon(weapon: string): void;
35
+ enableVoiceTo(player: AltVPlayer): void;
36
+ disableVoiceTo(player: AltVPlayer): void;
37
+ putIntoVehicle(vehicle: AltVVehicle, seat?: number): void;
38
+ ejectFromVehicle(): void;
39
+ setCustomization(data: Partial<ICustomization>): void;
40
+ setHeadOverlay(overlayID: number, index: number, opacity: number, firstColor: number, secondColor: number): void;
41
+ setEyeColor(colorID: number): void;
42
+ setProp(propID: number, drawableID: number, textureID: number): void;
43
+ setClothes(componentID: number, drawableID: number, textureID: number, paletteID: number): void;
44
+ setHairColor(colorID: number, highlightColorID: number): void;
45
+ kick(reason?: string): void;
13
46
  }
47
+ export {};
@@ -2,30 +2,135 @@
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
+ const RockMod_1 = require("../../../RockMod");
7
+ var Player = AltVServer.Player;
8
+ var Vehicle = AltVServer.Vehicle;
9
+ var Vector3 = AltVShared.Vector3;
10
+ var hash = AltVShared.hash;
5
11
  class AltVPlayer extends AltVEntity_1.AltVEntity {
6
- _name;
7
- _socialClub;
8
- _health;
12
+ _net;
13
+ get net() {
14
+ return this._net;
15
+ }
9
16
  get name() {
10
- return this._name;
17
+ return this.mpEntity.name;
11
18
  }
12
19
  get socialClub() {
13
- return this._socialClub;
20
+ return this.mpEntity.socialClubName;
21
+ }
22
+ get heading() {
23
+ return this.mpEntity.headRot.z;
14
24
  }
15
25
  get health() {
16
- return this._health;
26
+ return this.mpEntity.health;
27
+ }
28
+ get armour() {
29
+ return this.mpEntity.armour;
30
+ }
31
+ get ip() {
32
+ return this.mpEntity.ip;
33
+ }
34
+ get serial() {
35
+ return this.mpEntity.hwidHash;
36
+ }
37
+ get vehicle() {
38
+ const mpVehicle = this.mpEntity.vehicle;
39
+ if (!mpVehicle) {
40
+ return null;
41
+ }
42
+ return RockMod_1.RockMod.instance.vehicles.getByID(mpVehicle.id);
43
+ }
44
+ get seat() {
45
+ return this.mpEntity.seat;
46
+ }
47
+ get weapon() {
48
+ return this.mpEntity.currentWeapon;
49
+ }
50
+ get weaponAmmo() {
51
+ return this.mpEntity.getAmmo(this.weapon);
52
+ }
53
+ get eyeColor() {
54
+ return this.mpEntity.getEyeColor();
55
+ }
56
+ get streamedPlayers() {
57
+ const players = [];
58
+ for (const { entity } of this.mpEntity.streamedEntities) {
59
+ if (entity instanceof Player) {
60
+ players.push(RockMod_1.RockMod.instance.players.getByID(entity.id));
61
+ }
62
+ }
63
+ return players;
64
+ }
65
+ get isExists() {
66
+ return this.mpEntity.valid;
17
67
  }
18
68
  constructor(options) {
19
69
  super(options);
20
- this._name = options.name;
21
- this._socialClub = options.socialClub;
22
- this._health = 100;
70
+ this._net = new AltVPlayerNetManager_1.AltVPlayerNetManager(this.mpEntity);
23
71
  }
24
- setName(value) {
25
- this._name = value;
72
+ spawn(position) {
73
+ return this.mpEntity.spawn(position);
74
+ }
75
+ setName(name) {
76
+ throw new Error(`Not implemented (setName: ${name})`);
77
+ }
78
+ setHeading(value) {
79
+ this.mpEntity.rot = new Vector3(0, 0, value);
26
80
  }
27
81
  setHealth(value) {
28
- this._health = value;
82
+ this.mpEntity.health = Math.clamp(value, 0, 100);
83
+ }
84
+ setArmour(value) {
85
+ this.mpEntity.armour = Math.clamp(value, 0, 100);
86
+ }
87
+ setWeaponAmmo(weapon, ammo) {
88
+ return this.mpEntity.setWeaponAmmo(weapon, ammo);
89
+ }
90
+ giveWeapon(weapon, ammo) {
91
+ return this.mpEntity.giveWeapon(weapon, ammo, true);
92
+ }
93
+ removeWeapon(weapon) {
94
+ return this.mpEntity.removeWeapon(hash(weapon));
95
+ }
96
+ enableVoiceTo(player) {
97
+ throw new Error(`Not implemented (enableVoiceTo: ${this.id} -> ${player.id})`);
98
+ }
99
+ disableVoiceTo(player) {
100
+ throw new Error(`Not implemented (disableVoiceTo: ${this.id} -> ${player.id})`);
101
+ }
102
+ putIntoVehicle(vehicle, seat) {
103
+ const mpVehicle = Vehicle.getByID(vehicle.id);
104
+ if (!mpVehicle) {
105
+ throw new Error(`Multiplayer vehicle with id ${vehicle.id} not found`);
106
+ }
107
+ return this.mpEntity.setIntoVehicle(mpVehicle, seat ?? 0);
108
+ }
109
+ ejectFromVehicle() {
110
+ return this.mpEntity.clearTasks();
111
+ }
112
+ setCustomization(data) {
113
+ throw new Error(`Not implemented (setCustomization: ${data})`);
114
+ }
115
+ setHeadOverlay(overlayID, index, opacity, firstColor, secondColor) {
116
+ this.mpEntity.setHeadOverlayColor(overlayID, 1, firstColor, secondColor);
117
+ this.mpEntity.setHeadOverlay(overlayID, index, opacity);
118
+ }
119
+ setEyeColor(colorID) {
120
+ this.mpEntity.setEyeColor(colorID);
121
+ }
122
+ setProp(propID, drawableID, textureID) {
123
+ this.mpEntity.setProp(propID, drawableID, textureID);
124
+ }
125
+ setClothes(componentID, drawableID, textureID, paletteID) {
126
+ this.mpEntity.setClothes(componentID, drawableID, textureID, paletteID);
127
+ }
128
+ setHairColor(colorID, highlightColorID) {
129
+ this.mpEntity.setHairColor(colorID);
130
+ this.mpEntity.setHairHighlightColor(highlightColorID);
131
+ }
132
+ kick(reason) {
133
+ return this.mpEntity.kick(reason);
29
134
  }
30
135
  }
31
136
  exports.AltVPlayer = AltVPlayer;
@@ -0,0 +1,8 @@
1
+ import { IPlayerNetManager } from "../../common/player/IPlayerNetManager";
2
+ import Player = AltVServer.Player;
3
+ export declare class AltVPlayerNetManager implements IPlayerNetManager {
4
+ private readonly _player;
5
+ constructor(player: Player);
6
+ callEvent(eventName: string, ...args: unknown[]): void;
7
+ callRPC(rpcName: string, ...args: unknown[]): Promise<unknown>;
8
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AltVPlayerNetManager = void 0;
4
+ class AltVPlayerNetManager {
5
+ _player;
6
+ constructor(player) {
7
+ this._player = player;
8
+ }
9
+ callEvent(eventName, ...args) {
10
+ return this._player.emit(eventName, ...args);
11
+ }
12
+ callRPC(rpcName, ...args) {
13
+ return this._player.emitRpc(rpcName, ...args);
14
+ }
15
+ }
16
+ exports.AltVPlayerNetManager = AltVPlayerNetManager;
@@ -1,8 +1,10 @@
1
- import { AltVEntity } from "../entity/AltVEntity";
2
- import { IVehicle, IVehicleOptions } from "../../common/vehicle/IVehicle";
3
- export declare class AltVVehicle extends AltVEntity implements IVehicle {
4
- private _bodyHealth;
1
+ import { AltVEntity, IAltVEntityOptions } from "../entity/AltVEntity";
2
+ import { IVehicle } from "../../common/vehicle/IVehicle";
3
+ import Vehicle = AltVServer.Vehicle;
4
+ export interface IAltVVehicleOptions extends IAltVEntityOptions<Vehicle> {
5
+ }
6
+ export declare class AltVVehicle extends AltVEntity<Vehicle> implements IVehicle {
5
7
  get bodyHealth(): number;
6
- constructor(options: IVehicleOptions);
8
+ constructor(options: IAltVVehicleOptions);
7
9
  setBodyHealth(value: number): void;
8
10
  }
@@ -3,16 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AltVVehicle = void 0;
4
4
  const AltVEntity_1 = require("../entity/AltVEntity");
5
5
  class AltVVehicle extends AltVEntity_1.AltVEntity {
6
- _bodyHealth;
7
6
  get bodyHealth() {
8
- return this._bodyHealth;
7
+ return this.mpEntity.bodyHealth;
9
8
  }
10
9
  constructor(options) {
11
10
  super(options);
12
- this._bodyHealth = 100;
13
11
  }
14
12
  setBodyHealth(value) {
15
- this._bodyHealth = value;
13
+ this.mpEntity.bodyHealth = value;
16
14
  }
17
15
  }
18
16
  exports.AltVVehicle = AltVVehicle;