rock-mod 0.20.0 → 0.22.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 (194) hide show
  1. package/dist/client/RockMod.d.ts +1 -1
  2. package/dist/client/RockMod.js +4 -0
  3. package/dist/client/entities/ccmp/blip/CCMPBlip.d.ts +38 -0
  4. package/dist/client/entities/ccmp/blip/CCMPBlip.js +118 -0
  5. package/dist/client/entities/ccmp/blip/CCMPBlipsManager.d.ts +27 -0
  6. package/dist/client/entities/ccmp/blip/CCMPBlipsManager.js +191 -0
  7. package/dist/client/entities/ccmp/camera/CCMPCamera.d.ts +24 -0
  8. package/dist/client/entities/ccmp/camera/CCMPCamera.js +58 -0
  9. package/dist/client/entities/ccmp/camera/CCMPCameraManager.d.ts +16 -0
  10. package/dist/client/entities/ccmp/camera/CCMPCameraManager.js +51 -0
  11. package/dist/client/entities/ccmp/colshape/CCMPColshape.d.ts +26 -0
  12. package/dist/client/entities/ccmp/colshape/CCMPColshape.js +83 -0
  13. package/dist/client/entities/ccmp/colshape/CCMPColshapesManager.d.ts +31 -0
  14. package/dist/client/entities/ccmp/colshape/CCMPColshapesManager.js +193 -0
  15. package/dist/client/entities/ccmp/marker/CCMPMarker.d.ts +34 -0
  16. package/dist/client/entities/ccmp/marker/CCMPMarker.js +109 -0
  17. package/dist/client/entities/ccmp/marker/CCMPMarkersManager.d.ts +27 -0
  18. package/dist/client/entities/ccmp/marker/CCMPMarkersManager.js +180 -0
  19. package/dist/client/entities/ccmp/object/CCMPObject.d.ts +53 -0
  20. package/dist/client/entities/ccmp/object/CCMPObject.js +218 -0
  21. package/dist/client/entities/ccmp/object/CCMPObjectsManager.d.ts +27 -0
  22. package/dist/client/entities/ccmp/object/CCMPObjectsManager.js +177 -0
  23. package/dist/client/entities/ccmp/ped/CCMPPed.d.ts +65 -0
  24. package/dist/client/entities/ccmp/ped/CCMPPed.js +199 -0
  25. package/dist/client/entities/ccmp/ped/CCMPPedsManager.d.ts +27 -0
  26. package/dist/client/entities/ccmp/ped/CCMPPedsManager.js +177 -0
  27. package/dist/client/entities/ccmp/player/CCMPPlayer.d.ts +112 -0
  28. package/dist/client/entities/ccmp/player/CCMPPlayer.js +338 -0
  29. package/dist/client/entities/ccmp/player/CCMPPlayersManager.d.ts +85 -0
  30. package/dist/client/entities/ccmp/player/CCMPPlayersManager.js +331 -0
  31. package/dist/client/entities/ccmp/vehicle/CCMPVehicle.d.ts +119 -0
  32. package/dist/client/entities/ccmp/vehicle/CCMPVehicle.js +392 -0
  33. package/dist/client/entities/ccmp/vehicle/CCMPVehiclesManager.d.ts +27 -0
  34. package/dist/client/entities/ccmp/vehicle/CCMPVehiclesManager.js +183 -0
  35. package/dist/client/entities/common/baseObject/IBaseObject.d.ts +2 -1
  36. package/dist/client/entities/common/entity/IEntity.d.ts +3 -0
  37. package/dist/client/entities/ragemp/entity/RageEntity.d.ts +7 -0
  38. package/dist/client/entities/ragemp/entity/RageEntity.js +45 -2
  39. package/dist/client/factories/ccmp/CCMPManagersFactory.d.ts +48 -0
  40. package/dist/client/factories/ccmp/CCMPManagersFactory.js +189 -0
  41. package/dist/client/factories/ccmp/createNotImplementedProxy.d.ts +1 -0
  42. package/dist/client/factories/ccmp/createNotImplementedProxy.js +24 -0
  43. package/dist/client/game/ccmp/browser/CCMPBrowserManager.d.ts +22 -0
  44. package/dist/client/game/ccmp/browser/CCMPBrowserManager.js +66 -0
  45. package/dist/client/game/ccmp/chat/CCMPChatManager.d.ts +26 -0
  46. package/dist/client/game/ccmp/chat/CCMPChatManager.js +41 -0
  47. package/dist/client/game/ccmp/controls/CCMPControlsManager.d.ts +33 -0
  48. package/dist/client/game/ccmp/controls/CCMPControlsManager.js +47 -0
  49. package/dist/client/game/ccmp/cursor/CCMPCursorManager.d.ts +6 -0
  50. package/dist/client/game/ccmp/cursor/CCMPCursorManager.js +15 -0
  51. package/dist/client/game/ccmp/gameplay/CCMPGameplayManager.d.ts +6 -0
  52. package/dist/client/game/ccmp/gameplay/CCMPGameplayManager.js +10 -0
  53. package/dist/client/game/ccmp/graphics/CCMPGraphicsManager.d.ts +58 -0
  54. package/dist/client/game/ccmp/graphics/CCMPGraphicsManager.js +112 -0
  55. package/dist/client/game/ccmp/gui/CCMPGuiManager.d.ts +5 -0
  56. package/dist/client/game/ccmp/gui/CCMPGuiManager.js +17 -0
  57. package/dist/client/game/ccmp/keys/CCMPKeysManager.d.ts +41 -0
  58. package/dist/client/game/ccmp/keys/CCMPKeysManager.js +94 -0
  59. package/dist/client/game/ccmp/nametags/CCMPNametagsManager.d.ts +4 -0
  60. package/dist/client/game/ccmp/nametags/CCMPNametagsManager.js +6 -0
  61. package/dist/client/game/ccmp/native/CCMPNativeCallerManager.d.ts +74 -0
  62. package/dist/client/game/ccmp/native/CCMPNativeCallerManager.js +129 -0
  63. package/dist/client/game/ccmp/native/_generated/nativeDispatch.d.ts +5 -0
  64. package/dist/client/game/ccmp/native/_generated/nativeDispatch.js +8123 -0
  65. package/dist/client/game/ccmp/object/CCMPGameObjectManager.d.ts +4 -0
  66. package/dist/client/game/ccmp/object/CCMPGameObjectManager.js +6 -0
  67. package/dist/client/game/ccmp/pathfind/CCMPPathfindManager.d.ts +26 -0
  68. package/dist/client/game/ccmp/pathfind/CCMPPathfindManager.js +31 -0
  69. package/dist/client/game/ccmp/raycasting/CCMPRaycastingManager.d.ts +10 -0
  70. package/dist/client/game/ccmp/raycasting/CCMPRaycastingManager.js +46 -0
  71. package/dist/client/game/ccmp/storage/CCMPStorageManager.d.ts +7 -0
  72. package/dist/client/game/ccmp/storage/CCMPStorageManager.js +14 -0
  73. package/dist/client/game/ccmp/streaming/CCMPStreamingManager.d.ts +17 -0
  74. package/dist/client/game/ccmp/streaming/CCMPStreamingManager.js +41 -0
  75. package/dist/client/game/ccmp/ui/CCMPUiManager.d.ts +41 -0
  76. package/dist/client/game/ccmp/ui/CCMPUiManager.js +69 -0
  77. package/dist/client/game/ccmp/zone/CCMPZoneManager.d.ts +19 -0
  78. package/dist/client/game/ccmp/zone/CCMPZoneManager.js +20 -0
  79. package/dist/client/game/common/browser/IBrowserManager.d.ts +7 -0
  80. package/dist/client/game/common/chat/IChatManager.d.ts +1 -0
  81. package/dist/client/game/common/controls/IControlsManager.d.ts +3 -0
  82. package/dist/client/game/common/graphics/IGraphicsManager.d.ts +17 -0
  83. package/dist/client/game/common/streaming/IStreamingManager.d.ts +2 -0
  84. package/dist/client/game/ragemp/browser/RageBrowserManager.d.ts +2 -1
  85. package/dist/client/game/ragemp/browser/RageBrowserManager.js +30 -1
  86. package/dist/client/game/ragemp/chat/RageChatManager.d.ts +1 -0
  87. package/dist/client/game/ragemp/chat/RageChatManager.js +3 -0
  88. package/dist/client/game/ragemp/controls/RageControlsManager.d.ts +3 -0
  89. package/dist/client/game/ragemp/controls/RageControlsManager.js +9 -0
  90. package/dist/client/game/ragemp/graphics/RageGraphicsManager.d.ts +5 -1
  91. package/dist/client/game/ragemp/graphics/RageGraphicsManager.js +12 -0
  92. package/dist/client/game/ragemp/streaming/RageStreamingManager.d.ts +2 -0
  93. package/dist/client/game/ragemp/streaming/RageStreamingManager.js +6 -0
  94. package/dist/client/net/ccmp/CCMPConsoleForwarder.d.ts +11 -0
  95. package/dist/client/net/ccmp/CCMPConsoleForwarder.js +153 -0
  96. package/dist/client/net/ccmp/CCMPNetManager.d.ts +23 -0
  97. package/dist/client/net/ccmp/CCMPNetManager.js +55 -0
  98. package/dist/client/net/ccmp/dataHandler/CCMPDataHandler.d.ts +23 -0
  99. package/dist/client/net/ccmp/dataHandler/CCMPDataHandler.js +43 -0
  100. package/dist/client/net/ccmp/events/CCMPEventsBridge.d.ts +14 -0
  101. package/dist/client/net/ccmp/events/CCMPEventsBridge.js +19 -0
  102. package/dist/client/net/ccmp/events/CCMPEventsManager.d.ts +72 -0
  103. package/dist/client/net/ccmp/events/CCMPEventsManager.js +177 -0
  104. package/dist/client/net/ccmp/events/CCMPInProcessEmitter.d.ts +45 -0
  105. package/dist/client/net/ccmp/events/CCMPInProcessEmitter.js +133 -0
  106. package/dist/client/net/ccmp/events/CCMPRenderTicker.d.ts +18 -0
  107. package/dist/client/net/ccmp/events/CCMPRenderTicker.js +74 -0
  108. package/dist/client/net/ccmp/events/CCMPSyncedMetaBridge.d.ts +29 -0
  109. package/dist/client/net/ccmp/events/CCMPSyncedMetaBridge.js +45 -0
  110. package/dist/client/net/ccmp/rpc/CCMPRPCManager.d.ts +22 -0
  111. package/dist/client/net/ccmp/rpc/CCMPRPCManager.js +31 -0
  112. package/dist/client/net/common/dataHandler/IDataHandler.d.ts +2 -2
  113. package/dist/client/net/common/events/types.d.ts +6 -4
  114. package/dist/client/net/common/events/types.js +1 -0
  115. package/dist/client/net/ragemp/dataHandler/RageDataHandler.d.ts +2 -2
  116. package/dist/client/utils/ccmp/CCMPUtilsManager.d.ts +18 -0
  117. package/dist/client/utils/ccmp/CCMPUtilsManager.js +20 -0
  118. package/dist/server/RockMod.d.ts +1 -1
  119. package/dist/server/RockMod.js +4 -0
  120. package/dist/server/entities/ccmp/baseObject/CCMPBaseObject.d.ts +8 -0
  121. package/dist/server/entities/ccmp/baseObject/CCMPBaseObject.js +21 -0
  122. package/dist/server/entities/ccmp/baseObject/CCMPBaseObjectsIterator.d.ts +8 -0
  123. package/dist/server/entities/ccmp/baseObject/CCMPBaseObjectsIterator.js +16 -0
  124. package/dist/server/entities/ccmp/baseObject/CCMPBaseObjectsManager.d.ts +19 -0
  125. package/dist/server/entities/ccmp/baseObject/CCMPBaseObjectsManager.js +49 -0
  126. package/dist/server/entities/ccmp/blip/CCMPBlip.d.ts +36 -0
  127. package/dist/server/entities/ccmp/blip/CCMPBlip.js +86 -0
  128. package/dist/server/entities/ccmp/blip/CCMPBlipsManager.d.ts +9 -0
  129. package/dist/server/entities/ccmp/blip/CCMPBlipsManager.js +33 -0
  130. package/dist/server/entities/ccmp/colshape/CCMPCircleColshape.d.ts +7 -0
  131. package/dist/server/entities/ccmp/colshape/CCMPCircleColshape.js +10 -0
  132. package/dist/server/entities/ccmp/colshape/CCMPColshape.d.ts +25 -0
  133. package/dist/server/entities/ccmp/colshape/CCMPColshape.js +53 -0
  134. package/dist/server/entities/ccmp/colshape/CCMPColshapesManager.d.ts +28 -0
  135. package/dist/server/entities/ccmp/colshape/CCMPColshapesManager.js +108 -0
  136. package/dist/server/entities/ccmp/colshape/CCMPCuboidColshape.d.ts +7 -0
  137. package/dist/server/entities/ccmp/colshape/CCMPCuboidColshape.js +10 -0
  138. package/dist/server/entities/ccmp/colshape/CCMPCylinderColshape.d.ts +7 -0
  139. package/dist/server/entities/ccmp/colshape/CCMPCylinderColshape.js +10 -0
  140. package/dist/server/entities/ccmp/colshape/CCMPRectangleColshape.d.ts +7 -0
  141. package/dist/server/entities/ccmp/colshape/CCMPRectangleColshape.js +10 -0
  142. package/dist/server/entities/ccmp/colshape/CCMPSphereColshape.d.ts +7 -0
  143. package/dist/server/entities/ccmp/colshape/CCMPSphereColshape.js +10 -0
  144. package/dist/server/entities/ccmp/entity/CCMPEntitiesManager.d.ts +8 -0
  145. package/dist/server/entities/ccmp/entity/CCMPEntitiesManager.js +10 -0
  146. package/dist/server/entities/ccmp/entity/CCMPEntity.d.ts +13 -0
  147. package/dist/server/entities/ccmp/entity/CCMPEntity.js +28 -0
  148. package/dist/server/entities/ccmp/marker/CCMPMarker.d.ts +34 -0
  149. package/dist/server/entities/ccmp/marker/CCMPMarker.js +85 -0
  150. package/dist/server/entities/ccmp/marker/CCMPMarkersManager.d.ts +9 -0
  151. package/dist/server/entities/ccmp/marker/CCMPMarkersManager.js +30 -0
  152. package/dist/server/entities/ccmp/object/CCMPObject.d.ts +48 -0
  153. package/dist/server/entities/ccmp/object/CCMPObject.js +68 -0
  154. package/dist/server/entities/ccmp/object/CCMPObjectsManager.d.ts +9 -0
  155. package/dist/server/entities/ccmp/object/CCMPObjectsManager.js +27 -0
  156. package/dist/server/entities/ccmp/ped/CCMPPed.d.ts +33 -0
  157. package/dist/server/entities/ccmp/ped/CCMPPed.js +82 -0
  158. package/dist/server/entities/ccmp/ped/CCMPPedsManager.d.ts +9 -0
  159. package/dist/server/entities/ccmp/ped/CCMPPedsManager.js +28 -0
  160. package/dist/server/entities/ccmp/player/CCMPPlayer.d.ts +65 -0
  161. package/dist/server/entities/ccmp/player/CCMPPlayer.js +180 -0
  162. package/dist/server/entities/ccmp/player/CCMPPlayersManager.d.ts +12 -0
  163. package/dist/server/entities/ccmp/player/CCMPPlayersManager.js +66 -0
  164. package/dist/server/entities/ccmp/vehicle/CCMPVehicle.d.ts +58 -0
  165. package/dist/server/entities/ccmp/vehicle/CCMPVehicle.js +161 -0
  166. package/dist/server/entities/ccmp/vehicle/CCMPVehiclesManager.d.ts +9 -0
  167. package/dist/server/entities/ccmp/vehicle/CCMPVehiclesManager.js +31 -0
  168. package/dist/server/entities/ccmp/worldObject/CCMPWorldObject.d.ts +9 -0
  169. package/dist/server/entities/ccmp/worldObject/CCMPWorldObject.js +7 -0
  170. package/dist/server/entities/ccmp/worldObject/CCMPWorldObjectsIterator.d.ts +10 -0
  171. package/dist/server/entities/ccmp/worldObject/CCMPWorldObjectsIterator.js +40 -0
  172. package/dist/server/entities/ccmp/worldObject/CCMPWorldObjectsManager.d.ts +11 -0
  173. package/dist/server/entities/ccmp/worldObject/CCMPWorldObjectsManager.js +16 -0
  174. package/dist/server/entities/mock/player/MockPlayersManager.js +2 -1
  175. package/dist/server/entities/ragemp/entity/RageEntity.d.ts +5 -1
  176. package/dist/server/entities/ragemp/entity/RageEntity.js +17 -1
  177. package/dist/server/entities/ragemp/object/RageObjectsManager.js +1 -1
  178. package/dist/server/entities/ragemp/ped/RagePedsManager.js +1 -1
  179. package/dist/server/entities/ragemp/vehicle/RageVehiclesManager.js +1 -1
  180. package/dist/server/factories/ccmp/CCMPManagersFactory.d.ts +23 -0
  181. package/dist/server/factories/ccmp/CCMPManagersFactory.js +46 -0
  182. package/dist/server/net/ccmp/CCMPNetManager.d.ts +19 -0
  183. package/dist/server/net/ccmp/CCMPNetManager.js +112 -0
  184. package/dist/server/net/ccmp/events/CCMPEventsManager.d.ts +17 -0
  185. package/dist/server/net/ccmp/events/CCMPEventsManager.js +54 -0
  186. package/dist/server/net/ccmp/rpc/CCMPRPCManager.d.ts +8 -0
  187. package/dist/server/net/ccmp/rpc/CCMPRPCManager.js +18 -0
  188. package/dist/server/net/common/events/types.d.ts +2 -0
  189. package/dist/server/net/common/events/types.js +1 -0
  190. package/dist/server/utils/ccmp/CCMPUtilsManager.d.ts +4 -0
  191. package/dist/server/utils/ccmp/CCMPUtilsManager.js +9 -0
  192. package/dist/server/world/ccmp/CCMPWorldManager.d.ts +10 -0
  193. package/dist/server/world/ccmp/CCMPWorldManager.js +24 -0
  194. package/package.json +3 -1
@@ -5,8 +5,8 @@ export class RageEntity extends RageWorldObject {
5
5
  return this.mpEntity.model;
6
6
  }
7
7
  get rotation() {
8
- const { x, y, z } = this.mpEntity.rotation;
9
- return new Vector3D(x, y, z);
8
+ var _a, _b;
9
+ return (_b = (_a = this._getNativeRotation()) !== null && _a !== void 0 ? _a : this._getEntityRotationProperty()) !== null && _b !== void 0 ? _b : new Vector3D(0, 0, this.heading);
10
10
  }
11
11
  constructor(options) {
12
12
  super(options);
@@ -22,6 +22,9 @@ export class RageEntity extends RageWorldObject {
22
22
  }
23
23
  setRotation(value) {
24
24
  this.mpEntity.rotation = new mp.Vector3(value);
25
+ if (this._hasValidHandle()) {
26
+ mp.game.entity.setRotation(this.handle, value.x, value.y, value.z, 2, true);
27
+ }
25
28
  }
26
29
  get forwardVector() {
27
30
  const vector = this.mpEntity.getForwardVector();
@@ -65,6 +68,17 @@ export class RageEntity extends RageWorldObject {
65
68
  getVariable(name) {
66
69
  return this.mpEntity.getVariable(name);
67
70
  }
71
+ getSyncedMeta(key) {
72
+ const value = this.mpEntity.getVariable(key);
73
+ return value === null ? undefined : value;
74
+ }
75
+ hasSyncedMeta(key) {
76
+ return this.mpEntity.getVariable(key) !== null;
77
+ }
78
+ getSyncedMetaKeys() {
79
+ // RageMP не экспонирует список ключей синхронно — возвращаем пустой массив.
80
+ return [];
81
+ }
68
82
  attachToEntity(target, boneIndex, offset, rotation, p9, useSoftPinning, collision, isPed, vertexIndex, fixedRot) {
69
83
  mp.game.entity.attachToEntity(this.handle, target.handle, boneIndex, offset.x, offset.y, offset.z, rotation.x, rotation.y, rotation.z, p9, useSoftPinning, collision, isPed, vertexIndex, fixedRot);
70
84
  }
@@ -77,4 +91,33 @@ export class RageEntity extends RageWorldObject {
77
91
  isPlayingAnim(dictionary, name, taskFlag) {
78
92
  return mp.game.entity.isPlayingAnim(this.handle, dictionary, name, taskFlag);
79
93
  }
94
+ _getNativeRotation() {
95
+ if (!this._hasValidHandle())
96
+ return null;
97
+ try {
98
+ const rotation = mp.game.entity.getRotation(this.handle, 2);
99
+ if (!this._isVectorLike(rotation))
100
+ return null;
101
+ return new Vector3D(rotation.x, rotation.y, rotation.z);
102
+ }
103
+ catch (_a) {
104
+ return null;
105
+ }
106
+ }
107
+ _getEntityRotationProperty() {
108
+ const rotation = this.mpEntity.rotation;
109
+ if (!this._isVectorLike(rotation))
110
+ return null;
111
+ return new Vector3D(rotation.x, rotation.y, rotation.z);
112
+ }
113
+ _hasValidHandle() {
114
+ return typeof this.handle === "number" && this.handle > 0;
115
+ }
116
+ _isVectorLike(value) {
117
+ return (typeof value === "object" &&
118
+ value !== null &&
119
+ typeof value.x === "number" &&
120
+ typeof value.y === "number" &&
121
+ typeof value.z === "number");
122
+ }
80
123
  }
@@ -0,0 +1,48 @@
1
+ import { type IManagersFactory } from "../common/IManagersFactory";
2
+ type ManagerReturn<K extends keyof IManagersFactory> = IManagersFactory[K] extends (...args: never[]) => infer R ? R : never;
3
+ export declare class CCMPManagersFactory implements IManagersFactory {
4
+ private _netManager;
5
+ private _blipsManager;
6
+ private _colshapesManager;
7
+ private _markersManager;
8
+ private _objectsManager;
9
+ private _pedsManager;
10
+ private _playersManager;
11
+ private _vehiclesManager;
12
+ private _syncedMetaBridgeRegistered;
13
+ createNetManager(): ManagerReturn<"createNetManager">;
14
+ private _requireNetManager;
15
+ private _registerSyncedMetaBridgeIfReady;
16
+ createBlipsManager(): ManagerReturn<"createBlipsManager">;
17
+ createColshapesManager(): ManagerReturn<"createColshapesManager">;
18
+ createMarkersManager(): ManagerReturn<"createMarkersManager">;
19
+ createObjectsManager(): ManagerReturn<"createObjectsManager">;
20
+ createPedsManager(): ManagerReturn<"createPedsManager">;
21
+ createPlayersManager(): ManagerReturn<"createPlayersManager">;
22
+ createUtilsManager(): ManagerReturn<"createUtilsManager">;
23
+ createVehiclesManager(): ManagerReturn<"createVehiclesManager">;
24
+ createBrowserManager(): ManagerReturn<"createBrowserManager">;
25
+ createChatManager(): ManagerReturn<"createChatManager">;
26
+ createCursorManager(): ManagerReturn<"createCursorManager">;
27
+ createGuiManager(): ManagerReturn<"createGuiManager">;
28
+ createRaycastingManager(): ManagerReturn<"createRaycastingManager">;
29
+ createVoiceChatManager(): ManagerReturn<"createVoiceChatManager">;
30
+ createCameraManager(): ManagerReturn<"createCameraManager">;
31
+ createStorageManager(): ManagerReturn<"createStorageManager">;
32
+ createGraphicsManager(): ManagerReturn<"createGraphicsManager">;
33
+ createNativeManager(): ManagerReturn<"createNativeManager">;
34
+ createStreamingManager(): ManagerReturn<"createStreamingManager">;
35
+ createLocalPlayerManager(): ManagerReturn<"createLocalPlayerManager">;
36
+ createControlsManager(): ManagerReturn<"createControlsManager">;
37
+ createKeysManager(): ManagerReturn<"createKeysManager">;
38
+ createGameplayManager(): ManagerReturn<"createGameplayManager">;
39
+ createGameCameraManager(): ManagerReturn<"createGameCameraManager">;
40
+ createUiManager(): ManagerReturn<"createUiManager">;
41
+ createNametagsManager(): ManagerReturn<"createNametagsManager">;
42
+ createPathfindManager(): ManagerReturn<"createPathfindManager">;
43
+ createZoneManager(): ManagerReturn<"createZoneManager">;
44
+ createWeaponManager(): ManagerReturn<"createWeaponManager">;
45
+ createGameObjectManager(): ManagerReturn<"createGameObjectManager">;
46
+ createConsoleManager(): ManagerReturn<"createConsoleManager">;
47
+ }
48
+ export {};
@@ -0,0 +1,189 @@
1
+ import { CCMPNetManager } from "../../net/ccmp/CCMPNetManager";
2
+ import { CCMPBrowserManager } from "../../game/ccmp/browser/CCMPBrowserManager";
3
+ import { CCMPStorageManager } from "../../game/ccmp/storage/CCMPStorageManager";
4
+ import { CCMPKeysManager } from "../../game/ccmp/keys/CCMPKeysManager";
5
+ import { CCMPNametagsManager } from "../../game/ccmp/nametags/CCMPNametagsManager";
6
+ import { CCMPChatManager } from "../../game/ccmp/chat/CCMPChatManager";
7
+ import { CCMPControlsManager } from "../../game/ccmp/controls/CCMPControlsManager";
8
+ import { CCMPPlayersManager } from "../../entities/ccmp/player/CCMPPlayersManager";
9
+ import { CCMPPedsManager } from "../../entities/ccmp/ped/CCMPPedsManager";
10
+ import { CCMPVehiclesManager } from "../../entities/ccmp/vehicle/CCMPVehiclesManager";
11
+ import { CCMPObjectsManager } from "../../entities/ccmp/object/CCMPObjectsManager";
12
+ import { CCMPMarkersManager } from "../../entities/ccmp/marker/CCMPMarkersManager";
13
+ import { CCMPBlipsManager } from "../../entities/ccmp/blip/CCMPBlipsManager";
14
+ import { CCMPColshapesManager } from "../../entities/ccmp/colshape/CCMPColshapesManager";
15
+ import { CCMPUtilsManager } from "../../utils/ccmp/CCMPUtilsManager";
16
+ import { CCMPGraphicsManager } from "../../game/ccmp/graphics/CCMPGraphicsManager";
17
+ import { CCMPUiManager } from "../../game/ccmp/ui/CCMPUiManager";
18
+ import { CCMPPathfindManager } from "../../game/ccmp/pathfind/CCMPPathfindManager";
19
+ import { CCMPZoneManager } from "../../game/ccmp/zone/CCMPZoneManager";
20
+ import { CCMPNativeCallerManager } from "../../game/ccmp/native/CCMPNativeCallerManager";
21
+ import { CCMPGuiManager } from "../../game/ccmp/gui/CCMPGuiManager";
22
+ import { CCMPRaycastingManager } from "../../game/ccmp/raycasting/CCMPRaycastingManager";
23
+ import { CCMPSyncedMetaBridge } from "../../net/ccmp/events/CCMPSyncedMetaBridge";
24
+ import { CCMPCameraManager } from "../../entities/ccmp/camera/CCMPCameraManager";
25
+ import { CCMPStreamingManager } from "../../game/ccmp/streaming/CCMPStreamingManager";
26
+ import { CCMPCursorManager } from "../../game/ccmp/cursor/CCMPCursorManager";
27
+ import { CCMPGameObjectManager } from "../../game/ccmp/object/CCMPGameObjectManager";
28
+ import { CCMPGameplayManager } from "../../game/ccmp/gameplay/CCMPGameplayManager";
29
+ import { createNotImplementedProxy } from "./createNotImplementedProxy";
30
+ export class CCMPManagersFactory {
31
+ constructor() {
32
+ this._netManager = null;
33
+ this._blipsManager = null;
34
+ this._colshapesManager = null;
35
+ this._markersManager = null;
36
+ this._objectsManager = null;
37
+ this._pedsManager = null;
38
+ this._playersManager = null;
39
+ this._vehiclesManager = null;
40
+ this._syncedMetaBridgeRegistered = false;
41
+ }
42
+ createNetManager() {
43
+ this._netManager = new CCMPNetManager();
44
+ return this._netManager;
45
+ }
46
+ _requireNetManager(forMethod) {
47
+ if (!this._netManager) {
48
+ throw new Error(`CCMPManagersFactory.${forMethod}: ` +
49
+ "createNetManager() was not called yet. This violates RockMod manager factory order.");
50
+ }
51
+ return this._netManager;
52
+ }
53
+ _registerSyncedMetaBridgeIfReady() {
54
+ if (this._syncedMetaBridgeRegistered ||
55
+ !this._netManager ||
56
+ !this._blipsManager ||
57
+ !this._colshapesManager ||
58
+ !this._markersManager ||
59
+ !this._objectsManager ||
60
+ !this._pedsManager ||
61
+ !this._playersManager ||
62
+ !this._vehiclesManager) {
63
+ return;
64
+ }
65
+ new CCMPSyncedMetaBridge(this._netManager.events, {
66
+ blips: this._blipsManager,
67
+ colshapes: this._colshapesManager,
68
+ markers: this._markersManager,
69
+ objects: this._objectsManager,
70
+ peds: this._pedsManager,
71
+ players: this._playersManager,
72
+ vehicles: this._vehiclesManager,
73
+ }).register();
74
+ this._syncedMetaBridgeRegistered = true;
75
+ }
76
+ createBlipsManager() {
77
+ const netManager = this._requireNetManager("createBlipsManager");
78
+ this._blipsManager = new CCMPBlipsManager(netManager.events);
79
+ this._registerSyncedMetaBridgeIfReady();
80
+ return this._blipsManager;
81
+ }
82
+ createColshapesManager() {
83
+ const netManager = this._requireNetManager("createColshapesManager");
84
+ this._colshapesManager = new CCMPColshapesManager(netManager.events);
85
+ this._registerSyncedMetaBridgeIfReady();
86
+ return this._colshapesManager;
87
+ }
88
+ createMarkersManager() {
89
+ const netManager = this._requireNetManager("createMarkersManager");
90
+ this._markersManager = new CCMPMarkersManager(netManager.events);
91
+ this._registerSyncedMetaBridgeIfReady();
92
+ return this._markersManager;
93
+ }
94
+ createObjectsManager() {
95
+ const netManager = this._requireNetManager("createObjectsManager");
96
+ this._objectsManager = new CCMPObjectsManager(netManager.events);
97
+ this._registerSyncedMetaBridgeIfReady();
98
+ return this._objectsManager;
99
+ }
100
+ createPedsManager() {
101
+ const netManager = this._requireNetManager("createPedsManager");
102
+ this._pedsManager = new CCMPPedsManager(netManager.events);
103
+ this._registerSyncedMetaBridgeIfReady();
104
+ return this._pedsManager;
105
+ }
106
+ createPlayersManager() {
107
+ const netManager = this._requireNetManager("createPlayersManager");
108
+ this._playersManager = new CCMPPlayersManager(netManager.events);
109
+ this._registerSyncedMetaBridgeIfReady();
110
+ return this._playersManager;
111
+ }
112
+ createUtilsManager() {
113
+ return new CCMPUtilsManager();
114
+ }
115
+ createVehiclesManager() {
116
+ this._vehiclesManager = new CCMPVehiclesManager();
117
+ this._registerSyncedMetaBridgeIfReady();
118
+ return this._vehiclesManager;
119
+ }
120
+ createBrowserManager() {
121
+ return new CCMPBrowserManager();
122
+ }
123
+ createChatManager() {
124
+ return new CCMPChatManager();
125
+ }
126
+ createCursorManager() {
127
+ return new CCMPCursorManager();
128
+ }
129
+ createGuiManager() {
130
+ return new CCMPGuiManager();
131
+ }
132
+ createRaycastingManager() {
133
+ return new CCMPRaycastingManager();
134
+ }
135
+ createVoiceChatManager() {
136
+ return createNotImplementedProxy("CCMPVoiceChatManager");
137
+ }
138
+ createCameraManager() {
139
+ return new CCMPCameraManager();
140
+ }
141
+ createStorageManager() {
142
+ return new CCMPStorageManager();
143
+ }
144
+ createGraphicsManager() {
145
+ return new CCMPGraphicsManager();
146
+ }
147
+ createNativeManager() {
148
+ return new CCMPNativeCallerManager();
149
+ }
150
+ createStreamingManager() {
151
+ return new CCMPStreamingManager();
152
+ }
153
+ createLocalPlayerManager() {
154
+ return createNotImplementedProxy("CCMPLocalPlayerManager");
155
+ }
156
+ createControlsManager() {
157
+ return new CCMPControlsManager();
158
+ }
159
+ createKeysManager() {
160
+ return new CCMPKeysManager();
161
+ }
162
+ createGameplayManager() {
163
+ return new CCMPGameplayManager();
164
+ }
165
+ createGameCameraManager() {
166
+ return createNotImplementedProxy("CCMPGameCameraManager");
167
+ }
168
+ createUiManager() {
169
+ return new CCMPUiManager();
170
+ }
171
+ createNametagsManager() {
172
+ return new CCMPNametagsManager();
173
+ }
174
+ createPathfindManager() {
175
+ return new CCMPPathfindManager();
176
+ }
177
+ createZoneManager() {
178
+ return new CCMPZoneManager();
179
+ }
180
+ createWeaponManager() {
181
+ return createNotImplementedProxy("CCMPWeaponManager");
182
+ }
183
+ createGameObjectManager() {
184
+ return new CCMPGameObjectManager();
185
+ }
186
+ createConsoleManager() {
187
+ return createNotImplementedProxy("CCMPConsoleManager");
188
+ }
189
+ }
@@ -0,0 +1 @@
1
+ export declare const createNotImplementedProxy: <T extends object>(name: string) => T;
@@ -0,0 +1,24 @@
1
+ const createNotImplementedError = (path) => new Error(`${path}: not implemented yet`);
2
+ const createProxy = (path) => {
3
+ function notImplementedProxyTarget() {
4
+ throw createNotImplementedError(path);
5
+ }
6
+ return new Proxy(notImplementedProxyTarget, {
7
+ apply() {
8
+ throw createNotImplementedError(path);
9
+ },
10
+ construct() {
11
+ throw createNotImplementedError(path);
12
+ },
13
+ get(_target, property) {
14
+ if (property === "then") {
15
+ return undefined;
16
+ }
17
+ return createProxy(`${path}.${String(property)}`);
18
+ },
19
+ set(_target, property) {
20
+ throw createNotImplementedError(`${path}.${String(property)}`);
21
+ },
22
+ });
23
+ };
24
+ export const createNotImplementedProxy = (name) => createProxy(name);
@@ -0,0 +1,22 @@
1
+ import { type IBrowserHandle, type IBrowserManager } from "../../common/browser/IBrowserManager";
2
+ /**
3
+ * Реализация `IBrowserManager` поверх нативного CCMP browser API.
4
+ *
5
+ * CCMP предоставляет полноценное CEF-управление через `ccmp.browsers` —
6
+ * это прямое соответствие RageMP'шному `mp.browsers`. Маппинг:
7
+ * - `create(url)` → `ccmp.browsers.create(url)` → возвращает `Browser` с
8
+ * числовым `id`, который мы храним для последующих `execute`/`destroy`.
9
+ * - `execute(code)` → `Browser.executeJavaScript(code)`.
10
+ * - `destroy()` → `Browser.destroy()`.
11
+ *
12
+ * Геймод-консьюмер (`BrowserService` → один логический браузер на гейм-mod)
13
+ * управляет только одним инстансом одновременно, поэтому держим ссылку
14
+ * на единственный созданный браузер.
15
+ */
16
+ export declare class CCMPBrowserManager implements IBrowserManager {
17
+ private _browser;
18
+ create(url: string): void;
19
+ createInstance(url: string): IBrowserHandle;
20
+ destroy(): void;
21
+ execute(code: string): void;
22
+ }
@@ -0,0 +1,66 @@
1
+ class CCMPBrowserHandle {
2
+ constructor(url) {
3
+ this._browser = ccmp.browsers.create(url);
4
+ }
5
+ get isAlive() {
6
+ return this._browser !== null;
7
+ }
8
+ destroy() {
9
+ if (!this._browser) {
10
+ return;
11
+ }
12
+ this._browser.destroy();
13
+ this._browser = null;
14
+ }
15
+ execute(code) {
16
+ if (!this._browser) {
17
+ return;
18
+ }
19
+ this._browser.executeJavaScript(code);
20
+ }
21
+ setOrderId(orderId) {
22
+ if (!this._browser) {
23
+ return;
24
+ }
25
+ this._browser.setOrderId(orderId);
26
+ }
27
+ }
28
+ /**
29
+ * Реализация `IBrowserManager` поверх нативного CCMP browser API.
30
+ *
31
+ * CCMP предоставляет полноценное CEF-управление через `ccmp.browsers` —
32
+ * это прямое соответствие RageMP'шному `mp.browsers`. Маппинг:
33
+ * - `create(url)` → `ccmp.browsers.create(url)` → возвращает `Browser` с
34
+ * числовым `id`, который мы храним для последующих `execute`/`destroy`.
35
+ * - `execute(code)` → `Browser.executeJavaScript(code)`.
36
+ * - `destroy()` → `Browser.destroy()`.
37
+ *
38
+ * Геймод-консьюмер (`BrowserService` → один логический браузер на гейм-mod)
39
+ * управляет только одним инстансом одновременно, поэтому держим ссылку
40
+ * на единственный созданный браузер.
41
+ */
42
+ export class CCMPBrowserManager {
43
+ constructor() {
44
+ this._browser = null;
45
+ }
46
+ create(url) {
47
+ this.destroy();
48
+ this._browser = this.createInstance(url);
49
+ }
50
+ createInstance(url) {
51
+ return new CCMPBrowserHandle(url);
52
+ }
53
+ destroy() {
54
+ if (!this._browser) {
55
+ return;
56
+ }
57
+ this._browser.destroy();
58
+ this._browser = null;
59
+ }
60
+ execute(code) {
61
+ if (!this._browser) {
62
+ return;
63
+ }
64
+ this._browser.execute(code);
65
+ }
66
+ }
@@ -0,0 +1,26 @@
1
+ import { type IChatManager } from "../../common/chat/IChatManager";
2
+ /**
3
+ * No-op реализация `IChatManager` под CCMP.
4
+ *
5
+ * У RageMP клиента есть `mp.gui.chat.activate(state)` (разрешает игроку
6
+ * печатать в чат по T) и `mp.gui.chat.show(state)` (видимость чат-окна).
7
+ * У CCMP **нет JS API для управления чатом** — только встроенное событие
8
+ * `chatMessage` на приём входящих сообщений и `ccmp.notify(text)` для HUD-
9
+ * уведомлений (не относится к чату).
10
+ *
11
+ * Бросать нельзя: геймод-консьюмер `RockModChatAdapter.activate` вызывается
12
+ * из `ChatService.onModuleInit` — исключение поднимет весь bootstrap DI.
13
+ * Поэтому игнорируем + один раз пишем warn, чтобы было видно в логах что
14
+ * фича недоступна.
15
+ *
16
+ * Следствие: под CCMP программное управление чатом не работает. Чат-UI
17
+ * (если он есть) рисуется самим CCMP-клиентом на Rust-стороне и реагирует
18
+ * на свои клавиши. Когда (если) CCMP добавит JS-API для чата — заменим.
19
+ */
20
+ export declare class CCMPChatManager implements IChatManager {
21
+ private _warned;
22
+ activate(state: boolean): void;
23
+ show(state: boolean): void;
24
+ push(text: string): void;
25
+ private _warnOnce;
26
+ }
@@ -0,0 +1,41 @@
1
+ /**
2
+ * No-op реализация `IChatManager` под CCMP.
3
+ *
4
+ * У RageMP клиента есть `mp.gui.chat.activate(state)` (разрешает игроку
5
+ * печатать в чат по T) и `mp.gui.chat.show(state)` (видимость чат-окна).
6
+ * У CCMP **нет JS API для управления чатом** — только встроенное событие
7
+ * `chatMessage` на приём входящих сообщений и `ccmp.notify(text)` для HUD-
8
+ * уведомлений (не относится к чату).
9
+ *
10
+ * Бросать нельзя: геймод-консьюмер `RockModChatAdapter.activate` вызывается
11
+ * из `ChatService.onModuleInit` — исключение поднимет весь bootstrap DI.
12
+ * Поэтому игнорируем + один раз пишем warn, чтобы было видно в логах что
13
+ * фича недоступна.
14
+ *
15
+ * Следствие: под CCMP программное управление чатом не работает. Чат-UI
16
+ * (если он есть) рисуется самим CCMP-клиентом на Rust-стороне и реагирует
17
+ * на свои клавиши. Когда (если) CCMP добавит JS-API для чата — заменим.
18
+ */
19
+ export class CCMPChatManager {
20
+ constructor() {
21
+ this._warned = false;
22
+ }
23
+ activate(state) {
24
+ this._warnOnce("activate", state);
25
+ }
26
+ show(state) {
27
+ this._warnOnce("show", state);
28
+ }
29
+ push(text) {
30
+ ccmp.notify(text);
31
+ }
32
+ _warnOnce(method, state) {
33
+ if (this._warned) {
34
+ return;
35
+ }
36
+ this._warned = true;
37
+ console.warn(`[CCMPChatManager] ${method}(${String(state)}) вызван, но CCMP не ` +
38
+ `предоставляет JS API для управления чатом. Дальнейшие вызовы ` +
39
+ `activate/show будут проигнорированы молча.`);
40
+ }
41
+ }
@@ -0,0 +1,33 @@
1
+ import { type IControlsManager } from "../../common/controls/IControlsManager";
2
+ /**
3
+ * Реализация `IControlsManager` поверх натива-обёртки CCMP `ccmp.natives.pad.*`.
4
+ *
5
+ * Все четыре метода — прямой passthrough к соответствующим GTA V-нативам
6
+ * (`DISABLE_CONTROL_ACTION`, `IS_CONTROL_PRESSED`, `IS_DISABLED_CONTROL_PRESSED`,
7
+ * `GET_DISABLED_CONTROL_NORMAL`) с сохранением порядка аргументов:
8
+ *
9
+ * IControlsManager.disableControlAction(padIndex, control, disable)
10
+ * → ccmp.natives.pad.disableControlAction(padIndex, control, disable)
11
+ *
12
+ * Семантика и значения индексов идентичны RageMP — гейм-mod консьюмеры
13
+ * (`ControlsService` / `WeaponService.disableControlActions`) используют те
14
+ * же константы `Control.*` (см. `@shared/common/enums/Control`).
15
+ *
16
+ * **Hot path:** `disableControlAction` вызывается на каждый render-tick из
17
+ * `WeaponController.onRender`. CCMP-native — это синхронный вызов V8 op'а,
18
+ * стоимость порядка единиц микросекунд; никакой буферизации не нужно.
19
+ *
20
+ * Имена параметров `CcmpNativesPad.disableControlAction(control, action, ...)`
21
+ * **обманчивы** — это generic-renames из натив-генератора. Фактически первый
22
+ * аргумент — `padIndex` (0..2), второй — `control` (Control.*), третий —
23
+ * `disable: boolean`. См. https://docs.fivem.net/natives/?_0xFE99B66D43DA8E7B.
24
+ */
25
+ export declare class CCMPControlsManager implements IControlsManager {
26
+ disableControlAction(padIndex: number, control: number, disable: boolean): void;
27
+ isDisabledControlPressed(padIndex: number, control: number): boolean;
28
+ isDisabledControlJustPressed(padIndex: number, control: number): boolean;
29
+ isControlPressed(padIndex: number, control: number): boolean;
30
+ isControlJustPressed(padIndex: number, control: number): boolean;
31
+ isControlJustReleased(padIndex: number, control: number): boolean;
32
+ getDisabledControlNormal(padIndex: number, control: number): number;
33
+ }
@@ -0,0 +1,47 @@
1
+ /// <reference types="@classic-mp/types/client" />
2
+ /**
3
+ * Реализация `IControlsManager` поверх натива-обёртки CCMP `ccmp.natives.pad.*`.
4
+ *
5
+ * Все четыре метода — прямой passthrough к соответствующим GTA V-нативам
6
+ * (`DISABLE_CONTROL_ACTION`, `IS_CONTROL_PRESSED`, `IS_DISABLED_CONTROL_PRESSED`,
7
+ * `GET_DISABLED_CONTROL_NORMAL`) с сохранением порядка аргументов:
8
+ *
9
+ * IControlsManager.disableControlAction(padIndex, control, disable)
10
+ * → ccmp.natives.pad.disableControlAction(padIndex, control, disable)
11
+ *
12
+ * Семантика и значения индексов идентичны RageMP — гейм-mod консьюмеры
13
+ * (`ControlsService` / `WeaponService.disableControlActions`) используют те
14
+ * же константы `Control.*` (см. `@shared/common/enums/Control`).
15
+ *
16
+ * **Hot path:** `disableControlAction` вызывается на каждый render-tick из
17
+ * `WeaponController.onRender`. CCMP-native — это синхронный вызов V8 op'а,
18
+ * стоимость порядка единиц микросекунд; никакой буферизации не нужно.
19
+ *
20
+ * Имена параметров `CcmpNativesPad.disableControlAction(control, action, ...)`
21
+ * **обманчивы** — это generic-renames из натив-генератора. Фактически первый
22
+ * аргумент — `padIndex` (0..2), второй — `control` (Control.*), третий —
23
+ * `disable: boolean`. См. https://docs.fivem.net/natives/?_0xFE99B66D43DA8E7B.
24
+ */
25
+ export class CCMPControlsManager {
26
+ disableControlAction(padIndex, control, disable) {
27
+ ccmp.natives.pad.disableControlAction(padIndex, control, disable);
28
+ }
29
+ isDisabledControlPressed(padIndex, control) {
30
+ return ccmp.natives.pad.isDisabledControlPressed(padIndex, control);
31
+ }
32
+ isDisabledControlJustPressed(padIndex, control) {
33
+ return ccmp.natives.pad.isDisabledControlJustPressed(padIndex, control);
34
+ }
35
+ isControlPressed(padIndex, control) {
36
+ return ccmp.natives.pad.isControlPressed(padIndex, control);
37
+ }
38
+ isControlJustPressed(padIndex, control) {
39
+ return ccmp.natives.pad.isControlJustPressed(padIndex, control);
40
+ }
41
+ isControlJustReleased(padIndex, control) {
42
+ return ccmp.natives.pad.isControlJustReleased(padIndex, control);
43
+ }
44
+ getDisabledControlNormal(padIndex, control) {
45
+ return ccmp.natives.pad.getDisabledControlNormal(padIndex, control);
46
+ }
47
+ }
@@ -0,0 +1,6 @@
1
+ import { type ICursorManager } from "../../../game";
2
+ import { Vector2D } from "../../../../shared/common/utils";
3
+ export declare class CCMPCursorManager implements ICursorManager {
4
+ show(_freezeControls: boolean, state: boolean): void;
5
+ getPosition(): Vector2D;
6
+ }
@@ -0,0 +1,15 @@
1
+ /// <reference types="@classic-mp/types/client" />
2
+ import { Vector2D } from "../../../../shared/common/utils";
3
+ export class CCMPCursorManager {
4
+ show(_freezeControls, state) {
5
+ if (state) {
6
+ ccmp.cursor.show();
7
+ return;
8
+ }
9
+ ccmp.cursor.hide();
10
+ }
11
+ getPosition() {
12
+ const position = ccmp.cursor.getPosition();
13
+ return new Vector2D(position.x, position.y);
14
+ }
15
+ }
@@ -0,0 +1,6 @@
1
+ import { type IGameplayManager } from "../../../game";
2
+ import { type IVector3D } from "../../../../shared/common/utils";
3
+ export declare class CCMPGameplayManager implements IGameplayManager {
4
+ setFadeOutAfterDeath(toggle: boolean): void;
5
+ getGroundZFor3dCoord(position: IVector3D, ignoreWater: boolean, waterLevelCheck: boolean): number;
6
+ }
@@ -0,0 +1,10 @@
1
+ /// <reference types="@classic-mp/types/client" />
2
+ export class CCMPGameplayManager {
3
+ setFadeOutAfterDeath(toggle) {
4
+ ccmp.natives.misc.setFadeOutAfterDeath(toggle);
5
+ }
6
+ getGroundZFor3dCoord(position, ignoreWater, waterLevelCheck) {
7
+ const result = ccmp.natives.misc.getGroundZFor3dCoord(position.x, position.y, position.z, ignoreWater, waterLevelCheck);
8
+ return result.groundz;
9
+ }
10
+ }