@open-core/framework 1.0.5-beta.1 → 1.0.5-beta.2

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 (344) hide show
  1. package/dist/adapters/contracts/IEngineEvents.d.ts +3 -0
  2. package/dist/adapters/contracts/IEngineEvents.js +7 -0
  3. package/dist/adapters/contracts/IPlatformContext.d.ts +43 -0
  4. package/dist/adapters/contracts/IPlatformContext.js +8 -0
  5. package/dist/adapters/contracts/client/IClientLocalPlayerBridge.d.ts +4 -0
  6. package/dist/adapters/contracts/client/IClientLocalPlayerBridge.js +2 -0
  7. package/dist/adapters/contracts/client/IClientLogConsole.d.ts +13 -0
  8. package/dist/adapters/contracts/client/IClientLogConsole.js +2 -0
  9. package/dist/adapters/contracts/client/IClientPlatformBridge.d.ts +195 -0
  10. package/dist/adapters/contracts/client/IClientPlatformBridge.js +282 -0
  11. package/dist/adapters/contracts/client/IClientRuntimeBridge.d.ts +18 -0
  12. package/dist/adapters/contracts/client/IClientRuntimeBridge.js +14 -0
  13. package/dist/adapters/contracts/client/IGtaPedAppearanceBridge.d.ts +26 -0
  14. package/dist/adapters/contracts/client/IGtaPedAppearanceBridge.js +2 -0
  15. package/dist/adapters/contracts/client/index.d.ts +7 -0
  16. package/dist/adapters/contracts/client/index.js +7 -0
  17. package/dist/adapters/contracts/client/spawn/IClientSpawnBridge.d.ts +7 -0
  18. package/dist/adapters/contracts/client/spawn/IClientSpawnBridge.js +2 -0
  19. package/dist/adapters/contracts/client/spawn/index.d.ts +2 -0
  20. package/dist/adapters/contracts/client/spawn/index.js +2 -0
  21. package/dist/adapters/contracts/client/spawn/types.d.ts +14 -0
  22. package/dist/adapters/contracts/client/ui/IClientBlipBridge.d.ts +25 -0
  23. package/dist/adapters/contracts/client/ui/IClientBlipBridge.js +2 -0
  24. package/dist/adapters/contracts/client/ui/IClientMarkerBridge.d.ts +31 -0
  25. package/dist/adapters/contracts/client/ui/IClientMarkerBridge.js +2 -0
  26. package/dist/adapters/contracts/client/ui/IClientNotificationBridge.d.ts +21 -0
  27. package/dist/adapters/contracts/client/ui/IClientNotificationBridge.js +2 -0
  28. package/dist/adapters/contracts/client/ui/index.d.ts +4 -0
  29. package/dist/adapters/contracts/client/ui/index.js +4 -0
  30. package/dist/adapters/contracts/client/ui/webview/IClientWebViewBridge.d.ts +13 -0
  31. package/dist/adapters/contracts/client/ui/webview/IClientWebViewBridge.js +2 -0
  32. package/dist/adapters/contracts/client/ui/webview/index.d.ts +2 -0
  33. package/dist/adapters/contracts/client/ui/webview/index.js +2 -0
  34. package/dist/adapters/contracts/client/ui/webview/types.d.ts +25 -0
  35. package/dist/adapters/contracts/client/ui/webview/types.js +0 -0
  36. package/dist/adapters/contracts/index.d.ts +4 -2
  37. package/dist/adapters/contracts/index.js +4 -3
  38. package/dist/adapters/contracts/runtime/index.d.ts +1 -0
  39. package/dist/adapters/contracts/runtime/index.js +1 -0
  40. package/dist/adapters/contracts/runtime/runtime-events.d.ts +9 -0
  41. package/dist/adapters/contracts/runtime/runtime-events.js +7 -0
  42. package/dist/adapters/contracts/server/IEntityServer.d.ts +4 -28
  43. package/dist/adapters/contracts/server/IEntityServer.js +0 -26
  44. package/dist/adapters/contracts/server/IPlayerServer.d.ts +7 -26
  45. package/dist/adapters/contracts/server/IPlayerServer.js +0 -26
  46. package/dist/adapters/contracts/server/index.d.ts +10 -0
  47. package/dist/adapters/contracts/server/index.js +10 -0
  48. package/dist/adapters/contracts/server/npc-lifecycle/INpcLifecycleServer.d.ts +5 -0
  49. package/dist/adapters/contracts/server/npc-lifecycle/INpcLifecycleServer.js +2 -0
  50. package/dist/adapters/contracts/server/npc-lifecycle/index.d.ts +2 -0
  51. package/dist/adapters/contracts/server/npc-lifecycle/index.js +2 -0
  52. package/dist/adapters/contracts/server/npc-lifecycle/types.d.ts +17 -0
  53. package/dist/adapters/contracts/server/npc-lifecycle/types.js +0 -0
  54. package/dist/adapters/contracts/server/player-appearance/IPlayerAppearanceLifecycleServer.d.ts +11 -0
  55. package/dist/adapters/contracts/server/player-appearance/IPlayerAppearanceLifecycleServer.js +2 -0
  56. package/dist/adapters/contracts/server/player-appearance/index.d.ts +1 -0
  57. package/dist/adapters/contracts/server/player-appearance/index.js +1 -0
  58. package/dist/adapters/contracts/server/player-lifecycle/IPlayerLifecycleServer.d.ts +6 -0
  59. package/dist/adapters/contracts/server/player-lifecycle/IPlayerLifecycleServer.js +2 -0
  60. package/dist/adapters/contracts/server/player-lifecycle/index.d.ts +2 -0
  61. package/dist/adapters/contracts/server/player-lifecycle/index.js +2 -0
  62. package/dist/adapters/contracts/server/player-lifecycle/types.d.ts +17 -0
  63. package/dist/adapters/contracts/server/player-lifecycle/types.js +0 -0
  64. package/dist/adapters/contracts/server/player-state/IPlayerStateSyncServer.d.ts +6 -0
  65. package/dist/adapters/contracts/server/player-state/IPlayerStateSyncServer.js +2 -0
  66. package/dist/adapters/contracts/server/player-state/index.d.ts +1 -0
  67. package/dist/adapters/contracts/server/player-state/index.js +1 -0
  68. package/dist/adapters/contracts/server/vehicle-lifecycle/IVehicleLifecycleServer.d.ts +5 -0
  69. package/dist/adapters/contracts/server/vehicle-lifecycle/IVehicleLifecycleServer.js +2 -0
  70. package/dist/adapters/contracts/server/vehicle-lifecycle/index.d.ts +2 -0
  71. package/dist/adapters/contracts/server/vehicle-lifecycle/index.js +2 -0
  72. package/dist/adapters/contracts/server/vehicle-lifecycle/types.d.ts +16 -0
  73. package/dist/adapters/contracts/server/vehicle-lifecycle/types.js +0 -0
  74. package/dist/adapters/contracts/transport/index.d.ts +4 -0
  75. package/dist/adapters/contracts/transport/index.js +4 -0
  76. package/dist/adapters/index.d.ts +3 -14
  77. package/dist/adapters/index.js +3 -20
  78. package/dist/adapters/node/node-capabilities.d.ts +11 -11
  79. package/dist/adapters/node/node-capabilities.js +15 -27
  80. package/dist/adapters/node/node-engine-events.d.ts +1 -1
  81. package/dist/adapters/node/node-engine-events.js +2 -1
  82. package/dist/adapters/node/node-entity-server.d.ts +2 -2
  83. package/dist/adapters/node/node-entity-server.js +2 -2
  84. package/dist/adapters/node/node-ped-appearance-client.d.ts +2 -2
  85. package/dist/adapters/node/node-ped-appearance-client.js +2 -2
  86. package/dist/adapters/node/node-platform.js +4 -4
  87. package/dist/adapters/node/node-player-server.d.ts +3 -2
  88. package/dist/adapters/node/node-player-server.js +8 -2
  89. package/dist/adapters/register-capabilities.d.ts +1 -1
  90. package/dist/adapters/register-capabilities.js +1 -3
  91. package/dist/adapters/register-client-capabilities.d.ts +3 -2
  92. package/dist/adapters/register-client-capabilities.js +16 -41
  93. package/dist/contracts/client.d.ts +5 -0
  94. package/dist/contracts/client.js +5 -0
  95. package/dist/contracts/server.d.ts +19 -0
  96. package/dist/contracts/server.js +19 -0
  97. package/dist/contracts.d.ts +4 -0
  98. package/dist/contracts.js +4 -0
  99. package/dist/index.d.ts +1 -1
  100. package/dist/index.js +1 -1
  101. package/dist/kernel/logger/client-log-console.d.ts +4 -0
  102. package/dist/kernel/logger/client-log-console.js +43 -0
  103. package/dist/kernel/logger/core-logger.d.ts +3 -1
  104. package/dist/kernel/logger/core-logger.js +4 -2
  105. package/dist/kernel/logger/index.d.ts +2 -0
  106. package/dist/kernel/logger/index.js +1 -0
  107. package/dist/kernel/logger/transports/dev-transport.factory.js +1 -1
  108. package/dist/kernel/logger/transports/simple-console.transport.js +13 -8
  109. package/dist/kernel-public.d.ts +1 -0
  110. package/dist/kernel-public.js +1 -0
  111. package/dist/runtime/client/adapter/client-adapter.d.ts +25 -0
  112. package/dist/runtime/client/adapter/client-adapter.js +11 -0
  113. package/dist/runtime/client/adapter/index.d.ts +15 -0
  114. package/dist/runtime/client/adapter/index.js +15 -0
  115. package/dist/runtime/client/adapter/local-player-bridge.d.ts +1 -0
  116. package/dist/runtime/client/adapter/local-player-bridge.js +1 -0
  117. package/dist/runtime/client/adapter/node-blip-bridge.d.ts +9 -0
  118. package/dist/runtime/client/adapter/node-blip-bridge.js +34 -0
  119. package/dist/runtime/client/adapter/node-client-adapter.d.ts +5 -0
  120. package/dist/runtime/client/adapter/node-client-adapter.js +50 -0
  121. package/dist/runtime/client/adapter/node-local-player-bridge.d.ts +8 -0
  122. package/dist/{adapters/fivem/fivem-hasher.js → runtime/client/adapter/node-local-player-bridge.js} +7 -9
  123. package/dist/runtime/client/adapter/node-log-console.d.ts +11 -0
  124. package/dist/runtime/client/adapter/node-log-console.js +48 -0
  125. package/dist/runtime/client/adapter/node-marker-bridge.d.ts +10 -0
  126. package/dist/runtime/client/adapter/node-marker-bridge.js +35 -0
  127. package/dist/runtime/client/adapter/node-notification-bridge.d.ts +5 -0
  128. package/dist/runtime/client/adapter/node-notification-bridge.js +16 -0
  129. package/dist/runtime/client/adapter/node-platform-bridge.d.ts +3 -0
  130. package/dist/{adapters/fivem/fivem-tick.js → runtime/client/adapter/node-platform-bridge.js} +5 -10
  131. package/dist/runtime/client/adapter/node-runtime-bridge.d.ts +24 -0
  132. package/dist/runtime/client/adapter/node-runtime-bridge.js +58 -0
  133. package/dist/runtime/client/adapter/node-spawn-bridge.d.ts +8 -0
  134. package/dist/runtime/client/adapter/node-spawn-bridge.js +18 -0
  135. package/dist/runtime/client/adapter/node-webview-bridge.d.ts +15 -0
  136. package/dist/runtime/client/adapter/node-webview-bridge.js +43 -0
  137. package/dist/runtime/client/adapter/platform-bridge.d.ts +1 -0
  138. package/dist/runtime/client/adapter/platform-bridge.js +1 -0
  139. package/dist/runtime/client/adapter/registry.d.ts +9 -0
  140. package/dist/runtime/client/adapter/registry.js +85 -0
  141. package/dist/runtime/client/adapter/runtime-bridge.d.ts +1 -0
  142. package/dist/runtime/client/adapter/runtime-bridge.js +1 -0
  143. package/dist/runtime/client/api.d.ts +2 -1
  144. package/dist/runtime/client/api.js +2 -1
  145. package/dist/runtime/client/client-bootstrap.js +51 -44
  146. package/dist/runtime/client/client-core.d.ts +2 -0
  147. package/dist/runtime/client/client-core.js +9 -0
  148. package/dist/runtime/client/client-runtime.d.ts +3 -0
  149. package/dist/runtime/client/client-runtime.js +3 -0
  150. package/dist/runtime/client/controllers/appearance.controller.d.ts +3 -1
  151. package/dist/runtime/client/controllers/appearance.controller.js +14 -4
  152. package/dist/runtime/client/controllers/spawner.controller.js +2 -0
  153. package/dist/runtime/client/decorators/controller.js +2 -10
  154. package/dist/runtime/client/decorators/onView.d.ts +3 -3
  155. package/dist/runtime/client/decorators/onView.js +3 -3
  156. package/dist/runtime/client/index.d.ts +1 -0
  157. package/dist/runtime/client/index.js +1 -0
  158. package/dist/runtime/client/library/create-client-library.js +9 -1
  159. package/dist/runtime/client/services/appearance.service.d.ts +2 -2
  160. package/dist/runtime/client/services/appearance.service.js +7 -4
  161. package/dist/runtime/client/services/blip.service.d.ts +6 -93
  162. package/dist/runtime/client/services/blip.service.js +58 -153
  163. package/dist/runtime/client/services/camera-effects.registry.d.ts +3 -0
  164. package/dist/runtime/client/services/camera-effects.registry.js +20 -7
  165. package/dist/runtime/client/services/camera.d.ts +3 -83
  166. package/dist/runtime/client/services/camera.js +37 -93
  167. package/dist/runtime/client/services/cinematic.d.ts +5 -1
  168. package/dist/runtime/client/services/cinematic.js +45 -30
  169. package/dist/runtime/client/services/index.d.ts +1 -0
  170. package/dist/runtime/client/services/index.js +1 -0
  171. package/dist/runtime/client/services/marker.service.d.ts +12 -63
  172. package/dist/runtime/client/services/marker.service.js +62 -97
  173. package/dist/runtime/client/services/notification.service.d.ts +6 -57
  174. package/dist/runtime/client/services/notification.service.js +43 -81
  175. package/dist/runtime/client/services/ped.service.d.ts +3 -130
  176. package/dist/runtime/client/services/ped.service.js +66 -198
  177. package/dist/runtime/client/services/progress.service.d.ts +5 -30
  178. package/dist/runtime/client/services/progress.service.js +73 -99
  179. package/dist/runtime/client/services/session-bridge.service.d.ts +15 -0
  180. package/dist/runtime/client/services/session-bridge.service.js +61 -0
  181. package/dist/runtime/client/services/spawn.service.d.ts +6 -56
  182. package/dist/runtime/client/services/spawn.service.js +34 -191
  183. package/dist/runtime/client/services/streaming.service.d.ts +5 -126
  184. package/dist/runtime/client/services/streaming.service.js +72 -217
  185. package/dist/runtime/client/services/textui.service.d.ts +5 -45
  186. package/dist/runtime/client/services/textui.service.js +55 -88
  187. package/dist/runtime/client/services/vehicle-client.service.d.ts +12 -149
  188. package/dist/runtime/client/services/vehicle-client.service.js +180 -326
  189. package/dist/runtime/client/services/vehicle.service.d.ts +3 -109
  190. package/dist/runtime/client/services/vehicle.service.js +94 -194
  191. package/dist/runtime/client/system/processors/export.processor.d.ts +3 -0
  192. package/dist/runtime/client/system/processors/export.processor.js +16 -3
  193. package/dist/runtime/client/system/processors/gameEvent.processor.d.ts +3 -0
  194. package/dist/runtime/client/system/processors/gameEvent.processor.js +16 -3
  195. package/dist/runtime/client/system/processors/interval.processor.d.ts +3 -0
  196. package/dist/runtime/client/system/processors/interval.processor.js +17 -4
  197. package/dist/runtime/client/system/processors/key.processor.d.ts +3 -0
  198. package/dist/runtime/client/system/processors/key.processor.js +18 -5
  199. package/dist/runtime/client/system/processors/localEvent.processor.d.ts +3 -0
  200. package/dist/runtime/client/system/processors/localEvent.processor.js +16 -3
  201. package/dist/runtime/client/system/processors/netEvent.processor.d.ts +3 -0
  202. package/dist/runtime/client/system/processors/netEvent.processor.js +16 -3
  203. package/dist/runtime/client/system/processors/onRpc.processor.js +1 -1
  204. package/dist/runtime/client/system/processors/resourceLifecycle.processor.d.ts +5 -0
  205. package/dist/runtime/client/system/processors/resourceLifecycle.processor.js +26 -7
  206. package/dist/runtime/client/system/processors/tick.processor.d.ts +3 -0
  207. package/dist/runtime/client/system/processors/tick.processor.js +16 -3
  208. package/dist/runtime/client/system/processors/view.processor.d.ts +3 -0
  209. package/dist/runtime/client/system/processors/view.processor.js +21 -10
  210. package/dist/runtime/client/system/processors.register.d.ts +1 -0
  211. package/dist/runtime/client/system/processors.register.js +8 -0
  212. package/dist/runtime/client/ui-bridge.d.ts +2 -114
  213. package/dist/runtime/client/ui-bridge.js +2 -194
  214. package/dist/runtime/client/webview-bridge.d.ts +31 -0
  215. package/dist/runtime/client/webview-bridge.js +97 -0
  216. package/dist/runtime/client/webview.service.d.ts +14 -0
  217. package/dist/runtime/client/webview.service.js +98 -0
  218. package/dist/runtime/server/adapter/index.d.ts +5 -0
  219. package/dist/runtime/server/adapter/index.js +5 -0
  220. package/dist/runtime/server/adapter/node-npc-lifecycle-server.d.ts +12 -0
  221. package/dist/runtime/server/adapter/node-npc-lifecycle-server.js +52 -0
  222. package/dist/runtime/server/adapter/node-player-appearance-lifecycle-server.d.ts +22 -0
  223. package/dist/runtime/server/adapter/node-player-appearance-lifecycle-server.js +94 -0
  224. package/dist/runtime/server/adapter/node-player-lifecycle-server.d.ts +11 -0
  225. package/dist/runtime/server/adapter/node-player-lifecycle-server.js +55 -0
  226. package/dist/runtime/server/adapter/node-player-state-sync-server.d.ts +12 -0
  227. package/dist/runtime/server/adapter/node-player-state-sync-server.js +49 -0
  228. package/dist/runtime/server/adapter/node-server-adapter.d.ts +5 -0
  229. package/dist/runtime/server/adapter/node-server-adapter.js +67 -0
  230. package/dist/runtime/server/adapter/node-vehicle-lifecycle-server.d.ts +13 -0
  231. package/dist/runtime/server/adapter/node-vehicle-lifecycle-server.js +57 -0
  232. package/dist/runtime/server/adapter/player-adapter.d.ts +28 -0
  233. package/dist/runtime/server/adapter/player-adapter.js +28 -0
  234. package/dist/runtime/server/adapter/registry.d.ts +26 -0
  235. package/dist/runtime/server/adapter/registry.js +101 -0
  236. package/dist/runtime/server/adapter/serialization.d.ts +6 -0
  237. package/dist/runtime/server/adapter/serialization.js +9 -0
  238. package/dist/runtime/server/adapter/server-adapter.d.ts +28 -0
  239. package/dist/runtime/server/adapter/server-adapter.js +14 -0
  240. package/dist/runtime/server/api.d.ts +2 -1
  241. package/dist/runtime/server/api.js +2 -1
  242. package/dist/runtime/server/apis/appearance.api.d.ts +5 -3
  243. package/dist/runtime/server/apis/appearance.api.js +20 -7
  244. package/dist/runtime/server/apis/npcs.api.d.ts +3 -4
  245. package/dist/runtime/server/apis/npcs.api.js +26 -56
  246. package/dist/runtime/server/apis/vehicle-modification.api.d.ts +3 -1
  247. package/dist/runtime/server/apis/vehicle-modification.api.js +9 -4
  248. package/dist/runtime/server/apis/vehicles.api.d.ts +12 -6
  249. package/dist/runtime/server/apis/vehicles.api.js +48 -36
  250. package/dist/runtime/server/bootstrap.js +15 -7
  251. package/dist/runtime/server/controllers/channel.controller.js +2 -1
  252. package/dist/runtime/server/controllers/command-export.controller.js +1 -1
  253. package/dist/runtime/server/controllers/player-export.controller.js +5 -4
  254. package/dist/runtime/server/controllers/session.controller.js +3 -2
  255. package/dist/runtime/server/controllers/vehicle.controller.d.ts +3 -1
  256. package/dist/runtime/server/controllers/vehicle.controller.js +10 -5
  257. package/dist/runtime/server/core.d.ts +2 -0
  258. package/dist/runtime/server/core.js +9 -1
  259. package/dist/runtime/server/decorators/onRuntimeEvent.d.ts +2 -1
  260. package/dist/runtime/server/entities/npc.d.ts +2 -0
  261. package/dist/runtime/server/entities/npc.js +3 -3
  262. package/dist/runtime/server/entities/player.d.ts +8 -11
  263. package/dist/runtime/server/entities/player.js +39 -28
  264. package/dist/runtime/server/entities/vehicle.js +2 -2
  265. package/dist/runtime/server/error-handler.js +13 -2
  266. package/dist/runtime/server/helpers/command-validation.helper.js +1 -1
  267. package/dist/runtime/server/implementations/local/player.local.d.ts +7 -3
  268. package/dist/runtime/server/implementations/local/player.local.js +23 -11
  269. package/dist/runtime/server/implementations/remote/channel.remote.d.ts +2 -1
  270. package/dist/runtime/server/implementations/remote/channel.remote.js +5 -2
  271. package/dist/runtime/server/implementations/remote/command.remote.d.ts +3 -1
  272. package/dist/runtime/server/implementations/remote/command.remote.js +9 -4
  273. package/dist/runtime/server/implementations/remote/player.remote.d.ts +7 -10
  274. package/dist/runtime/server/implementations/remote/player.remote.js +24 -29
  275. package/dist/runtime/server/library/create-server-library.js +17 -2
  276. package/dist/runtime/server/runtime.d.ts +3 -0
  277. package/dist/runtime/server/runtime.js +1 -15
  278. package/dist/runtime/server/services/appearance.service.d.ts +0 -95
  279. package/dist/runtime/server/services/appearance.service.js +15 -192
  280. package/dist/runtime/server/services/services.register.js +56 -24
  281. package/dist/runtime/server/system/processors/netEvent.processor.js +1 -1
  282. package/dist/runtime/server/system/processors/onRpc.processor.js +1 -1
  283. package/dist/runtime/server/system/processors/runtimeEvent.processor.d.ts +2 -1
  284. package/dist/runtime/server/system/processors/runtimeEvent.processor.js +1 -1
  285. package/dist/runtime/server/types/core-exports.types.d.ts +5 -0
  286. package/dist/runtime/shared/helpers/process-tuple-schema.d.ts +2 -0
  287. package/dist/runtime/shared/helpers/process-tuple-schema.js +29 -0
  288. package/package.json +21 -3
  289. package/dist/adapters/cfx/cfx-capabilities.d.ts +0 -16
  290. package/dist/adapters/cfx/cfx-capabilities.js +0 -70
  291. package/dist/adapters/cfx/cfx-platform.d.ts +0 -2
  292. package/dist/adapters/cfx/cfx-platform.js +0 -85
  293. package/dist/adapters/cfx/index.d.ts +0 -3
  294. package/dist/adapters/cfx/index.js +0 -3
  295. package/dist/adapters/cfx/runtime-profile.d.ts +0 -3
  296. package/dist/adapters/cfx/runtime-profile.js +0 -37
  297. package/dist/adapters/contracts/IPlatformCapabilities.d.ts +0 -79
  298. package/dist/adapters/contracts/IPlatformCapabilities.js +0 -27
  299. package/dist/adapters/contracts/client/IPedAppearanceClient.d.ts +0 -206
  300. package/dist/adapters/contracts/client/IPedAppearanceClient.js +0 -12
  301. package/dist/adapters/fivem/fivem-capabilities.d.ts +0 -18
  302. package/dist/adapters/fivem/fivem-capabilities.js +0 -61
  303. package/dist/adapters/fivem/fivem-engine-events.d.ts +0 -5
  304. package/dist/adapters/fivem/fivem-engine-events.js +0 -24
  305. package/dist/adapters/fivem/fivem-entity-server.d.ts +0 -26
  306. package/dist/adapters/fivem/fivem-entity-server.js +0 -87
  307. package/dist/adapters/fivem/fivem-exports.d.ts +0 -5
  308. package/dist/adapters/fivem/fivem-exports.js +0 -9
  309. package/dist/adapters/fivem/fivem-hasher.d.ts +0 -7
  310. package/dist/adapters/fivem/fivem-net-transport.d.ts +0 -1
  311. package/dist/adapters/fivem/fivem-ped-appearance-client.d.ts +0 -34
  312. package/dist/adapters/fivem/fivem-ped-appearance-client.js +0 -79
  313. package/dist/adapters/fivem/fivem-ped-appearance-server.d.ts +0 -14
  314. package/dist/adapters/fivem/fivem-ped-appearance-server.js +0 -22
  315. package/dist/adapters/fivem/fivem-ped-server.d.ts +0 -9
  316. package/dist/adapters/fivem/fivem-ped-server.js +0 -30
  317. package/dist/adapters/fivem/fivem-platform.d.ts +0 -5
  318. package/dist/adapters/fivem/fivem-platform.js +0 -74
  319. package/dist/adapters/fivem/fivem-player-server.d.ts +0 -24
  320. package/dist/adapters/fivem/fivem-player-server.js +0 -83
  321. package/dist/adapters/fivem/fivem-playerinfo.d.ts +0 -6
  322. package/dist/adapters/fivem/fivem-playerinfo.js +0 -10
  323. package/dist/adapters/fivem/fivem-resourceinfo.d.ts +0 -5
  324. package/dist/adapters/fivem/fivem-resourceinfo.js +0 -24
  325. package/dist/adapters/fivem/fivem-tick.d.ts +0 -7
  326. package/dist/adapters/fivem/fivem-vehicle-server.d.ts +0 -15
  327. package/dist/adapters/fivem/fivem-vehicle-server.js +0 -44
  328. package/dist/adapters/fivem/index.d.ts +0 -14
  329. package/dist/adapters/fivem/index.js +0 -16
  330. package/dist/adapters/fivem/transport/adapter.d.ts +0 -8
  331. package/dist/adapters/fivem/transport/adapter.js +0 -8
  332. package/dist/adapters/fivem/transport/fivem.events.d.ts +0 -8
  333. package/dist/adapters/fivem/transport/fivem.events.js +0 -36
  334. package/dist/adapters/fivem/transport/fivem.rpc.d.ts +0 -28
  335. package/dist/adapters/fivem/transport/fivem.rpc.js +0 -183
  336. package/dist/runtime/client/controllers/player-sync.controller.d.ts +0 -11
  337. package/dist/runtime/client/controllers/player-sync.controller.js +0 -51
  338. package/dist/runtime/client/player/player.d.ts +0 -262
  339. package/dist/runtime/client/player/player.js +0 -474
  340. package/dist/runtime/client/player/player.loader.d.ts +0 -1
  341. package/dist/runtime/client/player/player.loader.js +0 -18
  342. package/dist/runtime/server/helpers/process-tuple-schema.d.ts +0 -20
  343. package/dist/runtime/server/helpers/process-tuple-schema.js +0 -56
  344. /package/dist/adapters/{fivem/fivem-net-transport.js → contracts/client/spawn/types.js} +0 -0
@@ -7,477 +7,331 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
- import { injectable } from 'tsyringe';
11
- /**
12
- * Client-side vehicle service.
13
- *
14
- * This service provides a simplified interface for vehicle operations on the client.
15
- * Most operations delegate to the server for security and synchronization.
16
- *
17
- * @remarks
18
- * - Vehicle creation is server-authoritative (prevents spawning exploits)
19
- * - Modifications require server validation
20
- * - Local operations (queries, visual changes) are safe to perform client-side
21
- */
10
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
11
+ return function (target, key) { decorator(target, key, paramIndex); }
12
+ };
13
+ import { inject, injectable } from 'tsyringe';
14
+ import { EventsAPI } from '../../../adapters/contracts/transport/events.api';
15
+ import { IClientPlatformBridge } from '../adapter/platform-bridge';
16
+ import { IClientRuntimeBridge } from '../adapter/runtime-bridge';
22
17
  let VehicleClientService = class VehicleClientService {
18
+ events;
19
+ platform;
20
+ runtime;
23
21
  pendingCreations = new Map();
22
+ pendingDeletes = new Map();
23
+ pendingRepairs = new Map();
24
+ pendingData = new Map();
25
+ pendingPlayerVehicles = null;
24
26
  requestIdCounter = 0;
25
- constructor() {
27
+ constructor(events, platform, runtime) {
28
+ this.events = events;
29
+ this.platform = platform;
30
+ this.runtime = runtime;
26
31
  this.registerEventHandlers();
27
32
  }
28
- /**
29
- * Requests vehicle creation from the server.
30
- *
31
- * @param options - Vehicle creation options
32
- * @returns Promise resolving to spawn result
33
- */
34
33
  async createVehicle(options) {
35
34
  return new Promise((resolve) => {
36
35
  const requestId = this.requestIdCounter++;
37
36
  this.pendingCreations.set(requestId, resolve);
38
- emitNet('opencore:vehicle:create', {
39
- ...options,
40
- _requestId: requestId,
41
- });
37
+ this.events.emit('opencore:vehicle:create', { ...options, _requestId: requestId });
42
38
  setTimeout(() => {
43
- if (this.pendingCreations.has(requestId)) {
44
- this.pendingCreations.delete(requestId);
45
- resolve({
46
- networkId: 0,
47
- handle: 0,
48
- success: false,
49
- error: 'Request timeout',
50
- });
51
- }
39
+ if (!this.pendingCreations.has(requestId))
40
+ return;
41
+ this.pendingCreations.delete(requestId);
42
+ resolve({ networkId: 0, handle: 0, success: false, error: 'Request timeout' });
52
43
  }, 5000);
53
44
  });
54
45
  }
55
- /**
56
- * Requests vehicle deletion from the server.
57
- *
58
- * @param networkId - Network ID of the vehicle
59
- * @returns Promise resolving to success status
60
- */
61
46
  async deleteVehicle(networkId) {
62
47
  return new Promise((resolve) => {
63
- const handler = (result) => {
64
- if (result.networkId === networkId) {
65
- resolve(result.success);
66
- }
67
- };
68
- const eventName = 'opencore:vehicle:deleteResult';
69
- onNet(eventName, handler);
70
- emitNet('opencore:vehicle:delete', networkId);
48
+ this.pendingDeletes.set(networkId, resolve);
49
+ this.events.emit('opencore:vehicle:delete', networkId);
71
50
  setTimeout(() => {
72
- removeEventListener(eventName, handler);
51
+ if (!this.pendingDeletes.has(networkId))
52
+ return;
53
+ this.pendingDeletes.delete(networkId);
73
54
  resolve(false);
74
55
  }, 5000);
75
56
  });
76
57
  }
77
- /**
78
- * Requests vehicle repair from the server.
79
- *
80
- * @param networkId - Network ID of the vehicle
81
- * @returns Promise resolving to success status
82
- */
83
58
  async repairVehicle(networkId) {
84
59
  return new Promise((resolve) => {
85
- const handler = (result) => {
86
- if (result.networkId === networkId) {
87
- resolve(result.success);
88
- }
89
- };
90
- const eventName = 'opencore:vehicle:repairResult';
91
- onNet(eventName, handler);
92
- emitNet('opencore:vehicle:repair', networkId);
60
+ this.pendingRepairs.set(networkId, resolve);
61
+ this.events.emit('opencore:vehicle:repair', networkId);
93
62
  setTimeout(() => {
94
- removeEventListener(eventName, handler);
63
+ if (!this.pendingRepairs.has(networkId))
64
+ return;
65
+ this.pendingRepairs.delete(networkId);
95
66
  resolve(false);
96
67
  }, 5000);
97
68
  });
98
69
  }
99
- /**
100
- * Gets the closest vehicle to the player.
101
- *
102
- * @param radius - Search radius
103
- * @returns Vehicle handle or null
104
- */
105
70
  getClosestVehicle(radius = 10.0) {
106
- const playerPed = PlayerPedId();
107
- const [px, py, pz] = GetEntityCoords(playerPed, true);
108
- const vehicle = GetClosestVehicle(px, py, pz, radius, 0, 71);
109
- return vehicle !== 0 ? vehicle : null;
71
+ const playerPed = this.platform.getLocalPlayerPed();
72
+ return this.platform.getClosestVehicle(this.platform.getEntityCoords(playerPed), radius);
110
73
  }
111
- /**
112
- * Checks if the player is in a vehicle.
113
- */
114
74
  isPlayerInVehicle() {
115
- return IsPedInAnyVehicle(PlayerPedId(), false);
75
+ return this.platform.isPedInAnyVehicle(this.platform.getLocalPlayerPed());
116
76
  }
117
- /**
118
- * Gets the vehicle the player is currently in.
119
- *
120
- * @returns Vehicle handle or null
121
- */
122
77
  getCurrentVehicle() {
123
- const ped = PlayerPedId();
124
- if (!IsPedInAnyVehicle(ped, false))
78
+ const ped = this.platform.getLocalPlayerPed();
79
+ if (!this.platform.isPedInAnyVehicle(ped))
125
80
  return null;
126
- return GetVehiclePedIsIn(ped, false);
81
+ return this.platform.getVehiclePedIsIn(ped, false);
127
82
  }
128
- /**
129
- * Gets the last vehicle the player was in.
130
- *
131
- * @returns Vehicle handle or null
132
- */
133
83
  getLastVehicle() {
134
- const vehicle = GetVehiclePedIsIn(PlayerPedId(), true);
135
- return vehicle !== 0 ? vehicle : null;
84
+ return this.platform.getVehiclePedIsIn(this.platform.getLocalPlayerPed(), true);
136
85
  }
137
- /**
138
- * Checks if player is the driver of their current vehicle.
139
- */
140
86
  isPlayerDriver() {
141
87
  const vehicle = this.getCurrentVehicle();
142
88
  if (!vehicle)
143
89
  return false;
144
- return GetPedInVehicleSeat(vehicle, -1) === PlayerPedId();
90
+ return this.platform.getPedInVehicleSeat(vehicle, -1) === this.platform.getLocalPlayerPed();
145
91
  }
146
- /**
147
- * Gets vehicle speed in km/h.
148
- *
149
- * @param vehicle - Vehicle handle
150
- */
151
92
  getSpeed(vehicle) {
152
- if (!DoesEntityExist(vehicle))
93
+ if (!this.platform.doesEntityExist(vehicle))
153
94
  return 0;
154
- return GetEntitySpeed(vehicle) * 3.6;
95
+ return this.platform.getEntitySpeed(vehicle) * 3.6;
155
96
  }
156
- /**
157
- * Gets the network ID from a vehicle handle.
158
- *
159
- * @param vehicle - Vehicle handle
160
- * @returns Network ID or 0 if invalid
161
- */
162
97
  getNetworkId(vehicle) {
163
- if (!DoesEntityExist(vehicle))
98
+ if (!this.platform.doesEntityExist(vehicle))
164
99
  return 0;
165
- return NetworkGetNetworkIdFromEntity(vehicle);
100
+ return this.platform.networkGetNetworkIdFromEntity(vehicle);
166
101
  }
167
- /**
168
- * Gets the vehicle handle from a network ID.
169
- *
170
- * @param networkId - Network ID
171
- * @returns Vehicle handle or 0 if not found
172
- */
173
102
  getVehicleFromNetworkId(networkId) {
174
- if (!NetworkDoesEntityExistWithNetworkId(networkId))
103
+ if (!this.platform.networkDoesEntityExistWithNetworkId(networkId))
175
104
  return 0;
176
- return NetworkGetEntityFromNetworkId(networkId);
105
+ return this.platform.networkGetEntityFromNetworkId(networkId);
177
106
  }
178
- /**
179
- * Gets vehicle data from state bag.
180
- *
181
- * @param vehicle - Vehicle handle
182
- * @param key - State bag key
183
- * @returns State value or undefined
184
- */
185
107
  getVehicleState(vehicle, key) {
186
- if (!DoesEntityExist(vehicle))
108
+ if (!this.platform.doesEntityExist(vehicle))
187
109
  return undefined;
188
- const stateBag = Entity(vehicle).state;
189
- return stateBag[key];
110
+ return this.platform.getEntityState(vehicle, key);
190
111
  }
191
- /**
192
- * Requests to lock/unlock vehicle doors.
193
- *
194
- * @param networkId - Network ID of the vehicle
195
- * @param locked - Whether to lock or unlock
196
- */
197
112
  setDoorsLocked(networkId, locked) {
198
- emitNet('opencore:vehicle:setLocked', networkId, locked);
113
+ this.events.emit('opencore:vehicle:setLocked', networkId, locked);
199
114
  }
200
- /**
201
- * Requests vehicle data from the server.
202
- *
203
- * @param networkId - Network ID of the vehicle
204
- * @returns Promise resolving to vehicle data
205
- */
206
115
  async getVehicleData(networkId) {
207
116
  return new Promise((resolve) => {
208
- const handler = (data) => {
209
- resolve(data);
210
- };
211
- const eventName = 'opencore:vehicle:dataResult';
212
- onNet(eventName, handler);
213
- emitNet('opencore:vehicle:getData', networkId);
117
+ this.pendingData.set(networkId, resolve);
118
+ this.events.emit('opencore:vehicle:getData', networkId);
214
119
  setTimeout(() => {
215
- removeEventListener(eventName, handler);
120
+ if (!this.pendingData.has(networkId))
121
+ return;
122
+ this.pendingData.delete(networkId);
216
123
  resolve(null);
217
124
  }, 5000);
218
125
  });
219
126
  }
220
- /**
221
- * Requests all player vehicles from the server.
222
- *
223
- * @returns Promise resolving to array of vehicle data
224
- */
225
127
  async getPlayerVehicles() {
226
128
  return new Promise((resolve) => {
227
- const handler = (vehicles) => {
228
- resolve(vehicles);
229
- };
230
- const eventName = 'opencore:vehicle:playerVehiclesResult';
231
- onNet(eventName, handler);
232
- emitNet('opencore:vehicle:getPlayerVehicles');
129
+ this.pendingPlayerVehicles = resolve;
130
+ this.events.emit('opencore:vehicle:getPlayerVehicles');
233
131
  setTimeout(() => {
234
- removeEventListener(eventName, handler);
132
+ if (!this.pendingPlayerVehicles)
133
+ return;
134
+ this.pendingPlayerVehicles = null;
235
135
  resolve([]);
236
136
  }, 5000);
237
137
  });
238
138
  }
239
- /**
240
- * Local-only: Warps player into a vehicle.
241
- *
242
- * @param vehicle - Vehicle handle
243
- * @param seatIndex - Seat index (-1 = driver)
244
- */
245
139
  warpIntoVehicle(vehicle, seatIndex = -1) {
246
- if (!DoesEntityExist(vehicle))
140
+ if (!this.platform.doesEntityExist(vehicle))
247
141
  return;
248
- TaskWarpPedIntoVehicle(PlayerPedId(), vehicle, seatIndex);
142
+ this.platform.taskWarpPedIntoVehicle(this.platform.getLocalPlayerPed(), vehicle, seatIndex);
249
143
  }
250
- /**
251
- * Local-only: Sets vehicle heading.
252
- *
253
- * @param vehicle - Vehicle handle
254
- * @param heading - Heading in degrees
255
- */
256
144
  setHeading(vehicle, heading) {
257
- if (!DoesEntityExist(vehicle))
145
+ if (!this.platform.doesEntityExist(vehicle))
258
146
  return;
259
- SetEntityHeading(vehicle, heading);
147
+ this.platform.setEntityHeading(vehicle, heading);
260
148
  }
261
- /**
262
- * Local-only: Gets vehicle position.
263
- *
264
- * @param vehicle - Vehicle handle
265
- * @returns Position vector
266
- */
267
149
  getPosition(vehicle) {
268
- if (!DoesEntityExist(vehicle))
150
+ if (!this.platform.doesEntityExist(vehicle))
269
151
  return null;
270
- const coords = GetEntityCoords(vehicle, true);
271
- return { x: coords[0], y: coords[1], z: coords[2] };
152
+ return this.platform.getEntityCoords(vehicle);
272
153
  }
273
- /**
274
- * Local-only: Gets vehicle heading.
275
- *
276
- * @param vehicle - Vehicle handle
277
- * @returns Heading in degrees
278
- */
279
154
  getHeading(vehicle) {
280
- if (!DoesEntityExist(vehicle))
155
+ if (!this.platform.doesEntityExist(vehicle))
281
156
  return 0;
282
- return GetEntityHeading(vehicle);
157
+ return this.platform.getEntityHeading(vehicle);
283
158
  }
284
- /**
285
- * Local-only: Gets vehicle model hash.
286
- *
287
- * @param vehicle - Vehicle handle
288
- * @returns Model hash
289
- */
290
159
  getModel(vehicle) {
291
- if (!DoesEntityExist(vehicle))
160
+ if (!this.platform.doesEntityExist(vehicle))
292
161
  return 0;
293
- return GetEntityModel(vehicle);
162
+ return this.platform.getEntityModel(vehicle);
294
163
  }
295
- /**
296
- * Local-only: Gets vehicle license plate.
297
- *
298
- * @param vehicle - Vehicle handle
299
- * @returns License plate text
300
- */
301
164
  getPlate(vehicle) {
302
- if (!DoesEntityExist(vehicle))
165
+ if (!this.platform.doesEntityExist(vehicle))
303
166
  return '';
304
- return GetVehicleNumberPlateText(vehicle);
167
+ return this.platform.getVehicleNumberPlateText(vehicle);
305
168
  }
306
- /**
307
- * Applies vehicle mods from state bag data.
308
- *
309
- * @param vehicle - Vehicle handle
310
- * @param mods - Mods object from state bag
311
- */
312
169
  applyMods(vehicle, mods) {
313
- if (!DoesEntityExist(vehicle))
170
+ if (!this.platform.doesEntityExist(vehicle))
314
171
  return;
315
- SetVehicleModKit(vehicle, 0);
172
+ this.platform.setVehicleModKit(vehicle, 0);
316
173
  if (mods.spoiler !== undefined)
317
- SetVehicleMod(vehicle, 0, mods.spoiler, false);
174
+ this.platform.setVehicleMod(vehicle, 0, mods.spoiler, false);
318
175
  if (mods.frontBumper !== undefined)
319
- SetVehicleMod(vehicle, 1, mods.frontBumper, false);
176
+ this.platform.setVehicleMod(vehicle, 1, mods.frontBumper, false);
320
177
  if (mods.rearBumper !== undefined)
321
- SetVehicleMod(vehicle, 2, mods.rearBumper, false);
178
+ this.platform.setVehicleMod(vehicle, 2, mods.rearBumper, false);
322
179
  if (mods.sideSkirt !== undefined)
323
- SetVehicleMod(vehicle, 3, mods.sideSkirt, false);
180
+ this.platform.setVehicleMod(vehicle, 3, mods.sideSkirt, false);
324
181
  if (mods.exhaust !== undefined)
325
- SetVehicleMod(vehicle, 4, mods.exhaust, false);
182
+ this.platform.setVehicleMod(vehicle, 4, mods.exhaust, false);
326
183
  if (mods.frame !== undefined)
327
- SetVehicleMod(vehicle, 5, mods.frame, false);
184
+ this.platform.setVehicleMod(vehicle, 5, mods.frame, false);
328
185
  if (mods.grille !== undefined)
329
- SetVehicleMod(vehicle, 6, mods.grille, false);
186
+ this.platform.setVehicleMod(vehicle, 6, mods.grille, false);
330
187
  if (mods.hood !== undefined)
331
- SetVehicleMod(vehicle, 7, mods.hood, false);
188
+ this.platform.setVehicleMod(vehicle, 7, mods.hood, false);
332
189
  if (mods.fender !== undefined)
333
- SetVehicleMod(vehicle, 8, mods.fender, false);
190
+ this.platform.setVehicleMod(vehicle, 8, mods.fender, false);
334
191
  if (mods.rightFender !== undefined)
335
- SetVehicleMod(vehicle, 9, mods.rightFender, false);
192
+ this.platform.setVehicleMod(vehicle, 9, mods.rightFender, false);
336
193
  if (mods.roof !== undefined)
337
- SetVehicleMod(vehicle, 10, mods.roof, false);
194
+ this.platform.setVehicleMod(vehicle, 10, mods.roof, false);
338
195
  if (mods.engine !== undefined)
339
- SetVehicleMod(vehicle, 11, mods.engine, false);
196
+ this.platform.setVehicleMod(vehicle, 11, mods.engine, false);
340
197
  if (mods.brakes !== undefined)
341
- SetVehicleMod(vehicle, 12, mods.brakes, false);
198
+ this.platform.setVehicleMod(vehicle, 12, mods.brakes, false);
342
199
  if (mods.transmission !== undefined)
343
- SetVehicleMod(vehicle, 13, mods.transmission, false);
200
+ this.platform.setVehicleMod(vehicle, 13, mods.transmission, false);
344
201
  if (mods.horns !== undefined)
345
- SetVehicleMod(vehicle, 14, mods.horns, false);
202
+ this.platform.setVehicleMod(vehicle, 14, mods.horns, false);
346
203
  if (mods.suspension !== undefined)
347
- SetVehicleMod(vehicle, 15, mods.suspension, false);
204
+ this.platform.setVehicleMod(vehicle, 15, mods.suspension, false);
348
205
  if (mods.armor !== undefined)
349
- SetVehicleMod(vehicle, 16, mods.armor, false);
206
+ this.platform.setVehicleMod(vehicle, 16, mods.armor, false);
350
207
  if (mods.turbo !== undefined)
351
- ToggleVehicleMod(vehicle, 18, mods.turbo);
208
+ this.platform.toggleVehicleMod(vehicle, 18, mods.turbo);
352
209
  if (mods.xenon !== undefined)
353
- ToggleVehicleMod(vehicle, 22, mods.xenon);
210
+ this.platform.toggleVehicleMod(vehicle, 22, mods.xenon);
354
211
  if (mods.wheelType !== undefined)
355
- SetVehicleWheelType(vehicle, mods.wheelType);
212
+ this.platform.setVehicleWheelType(vehicle, mods.wheelType);
356
213
  if (mods.wheels !== undefined)
357
- SetVehicleMod(vehicle, 23, mods.wheels, false);
214
+ this.platform.setVehicleMod(vehicle, 23, mods.wheels, false);
358
215
  if (mods.windowTint !== undefined)
359
- SetVehicleWindowTint(vehicle, mods.windowTint);
216
+ this.platform.setVehicleWindowTint(vehicle, mods.windowTint);
360
217
  if (mods.livery !== undefined)
361
- SetVehicleLivery(vehicle, mods.livery);
218
+ this.platform.setVehicleLivery(vehicle, mods.livery);
362
219
  if (mods.plateStyle !== undefined)
363
- SetVehicleNumberPlateTextIndex(vehicle, mods.plateStyle);
220
+ this.platform.setVehicleNumberPlateTextIndex(vehicle, mods.plateStyle);
364
221
  if (mods.neonEnabled !== undefined) {
365
- SetVehicleNeonLightEnabled(vehicle, 0, mods.neonEnabled[0]);
366
- SetVehicleNeonLightEnabled(vehicle, 1, mods.neonEnabled[1]);
367
- SetVehicleNeonLightEnabled(vehicle, 2, mods.neonEnabled[2]);
368
- SetVehicleNeonLightEnabled(vehicle, 3, mods.neonEnabled[3]);
222
+ this.platform.setVehicleNeonLightEnabled(vehicle, 0, mods.neonEnabled[0]);
223
+ this.platform.setVehicleNeonLightEnabled(vehicle, 1, mods.neonEnabled[1]);
224
+ this.platform.setVehicleNeonLightEnabled(vehicle, 2, mods.neonEnabled[2]);
225
+ this.platform.setVehicleNeonLightEnabled(vehicle, 3, mods.neonEnabled[3]);
369
226
  }
370
227
  if (mods.neonColor !== undefined) {
371
- SetVehicleNeonLightsColour(vehicle, mods.neonColor[0], mods.neonColor[1], mods.neonColor[2]);
228
+ this.platform.setVehicleNeonLightsColour(vehicle, mods.neonColor[0], mods.neonColor[1], mods.neonColor[2]);
372
229
  }
373
230
  if (mods.extras) {
374
231
  for (const [extraId, enabled] of Object.entries(mods.extras)) {
375
- SetVehicleExtra(vehicle, Number(extraId), !enabled);
232
+ this.platform.setVehicleExtra(vehicle, Number(extraId), !enabled);
376
233
  }
377
234
  }
378
235
  if (mods.pearlescentColor !== undefined || mods.wheelColor !== undefined) {
379
- const [currentPearl, currentWheel] = GetVehicleExtraColours(vehicle);
380
- SetVehicleExtraColours(vehicle, mods.pearlescentColor ?? currentPearl, mods.wheelColor ?? currentWheel);
236
+ const [currentPearl, currentWheel] = this.platform.getVehicleExtraColours(vehicle);
237
+ this.platform.setVehicleExtraColours(vehicle, mods.pearlescentColor ?? currentPearl, mods.wheelColor ?? currentWheel);
381
238
  }
382
239
  }
383
- /**
384
- * Repairs a vehicle completely (client-side).
385
- *
386
- * @param vehicle - Vehicle handle
387
- */
388
240
  repair(vehicle) {
389
- if (!DoesEntityExist(vehicle))
241
+ if (!this.platform.doesEntityExist(vehicle))
390
242
  return;
391
- SetVehicleFixed(vehicle);
392
- SetVehicleDeformationFixed(vehicle);
393
- SetVehicleUndriveable(vehicle, false);
394
- SetVehicleEngineOn(vehicle, true, true, false);
395
- SetVehicleEngineHealth(vehicle, 1000.0);
396
- SetVehiclePetrolTankHealth(vehicle, 1000.0);
243
+ this.platform.setVehicleFixed(vehicle);
244
+ this.platform.setVehicleDeformationFixed(vehicle);
245
+ this.platform.setVehicleUndriveable(vehicle, false);
246
+ this.platform.setVehicleEngineOn(vehicle, true, true, false);
247
+ this.platform.setVehicleEngineHealth(vehicle, 1000.0);
248
+ this.platform.setVehiclePetrolTankHealth(vehicle, 1000.0);
397
249
  }
398
- /**
399
- * Sets fuel level on a vehicle (client-side).
400
- *
401
- * @param vehicle - Vehicle handle
402
- * @param level - Fuel level (0-100)
403
- */
404
250
  setFuel(vehicle, level) {
405
- if (!DoesEntityExist(vehicle))
251
+ if (!this.platform.doesEntityExist(vehicle))
406
252
  return;
407
- SetVehicleFuelLevel(vehicle, Math.max(0, Math.min(100, level)));
253
+ this.platform.setVehicleFuelLevel(vehicle, Math.max(0, Math.min(100, level)));
408
254
  }
409
- /**
410
- * Registers event handlers for server responses.
411
- */
412
255
  registerEventHandlers() {
413
- onNet('opencore:vehicle:createResult', (result) => {
414
- if (result._requestId !== undefined) {
415
- const callback = this.pendingCreations.get(result._requestId);
416
- if (callback) {
417
- callback(result);
418
- this.pendingCreations.delete(result._requestId);
419
- }
420
- }
256
+ this.events.on('opencore:vehicle:createResult', (_ctx, result) => {
257
+ if (result._requestId === undefined)
258
+ return;
259
+ const callback = this.pendingCreations.get(result._requestId);
260
+ if (!callback)
261
+ return;
262
+ callback(result);
263
+ this.pendingCreations.delete(result._requestId);
421
264
  });
422
- onNet('opencore:vehicle:created', async (data) => {
423
- // Wait for vehicle to exist locally
424
- const started = GetGameTimer();
425
- let veh = 0;
426
- while (GetGameTimer() - started < 5000) {
427
- veh = this.getVehicleFromNetworkId(data.networkId);
428
- if (veh && DoesEntityExist(veh))
429
- break;
430
- await new Promise((r) => setTimeout(r, 0));
431
- }
432
- if (veh && DoesEntityExist(veh)) {
433
- // Apply mods from server data
434
- if (data.mods && Object.keys(data.mods).length > 0) {
435
- this.applyMods(veh, data.mods);
436
- }
437
- // Apply fuel from metadata
438
- if (data.metadata?.fuel !== undefined) {
439
- this.setFuel(veh, data.metadata.fuel);
440
- }
441
- }
265
+ this.events.on('opencore:vehicle:deleteResult', (_ctx, result) => {
266
+ const callback = this.pendingDeletes.get(result.networkId);
267
+ if (!callback)
268
+ return;
269
+ callback(result.success);
270
+ this.pendingDeletes.delete(result.networkId);
271
+ });
272
+ this.events.on('opencore:vehicle:repairResult', (_ctx, result) => {
273
+ const callback = this.pendingRepairs.get(result.networkId);
274
+ if (!callback)
275
+ return;
276
+ callback(result.success);
277
+ this.pendingRepairs.delete(result.networkId);
442
278
  });
443
- onNet('opencore:vehicle:deleted', (networkId) => {
444
- console.log('[VehicleClient] Vehicle deleted:', networkId);
279
+ this.events.on('opencore:vehicle:dataResult', (_ctx, data) => {
280
+ if (!data)
281
+ return;
282
+ const callback = this.pendingData.get(data.networkId);
283
+ if (!callback)
284
+ return;
285
+ callback(data);
286
+ this.pendingData.delete(data.networkId);
445
287
  });
446
- onNet('opencore:vehicle:modified', (data) => {
288
+ this.events.on('opencore:vehicle:playerVehiclesResult', (_ctx, vehicles) => {
289
+ this.pendingPlayerVehicles?.(vehicles);
290
+ this.pendingPlayerVehicles = null;
291
+ });
292
+ this.events.on('opencore:vehicle:created', async (_ctx, data) => {
293
+ const veh = await this.waitForVehicle(data.networkId);
294
+ if (!veh)
295
+ return;
296
+ if (data.mods && Object.keys(data.mods).length > 0)
297
+ this.applyMods(veh, data.mods);
298
+ if (data.metadata?.fuel !== undefined)
299
+ this.setFuel(veh, data.metadata.fuel);
300
+ });
301
+ this.events.on('opencore:vehicle:modified', (_ctx, data) => {
447
302
  const veh = this.getVehicleFromNetworkId(data.networkId);
448
- if (veh && DoesEntityExist(veh)) {
303
+ if (veh && this.platform.doesEntityExist(veh))
449
304
  this.applyMods(veh, data.mods);
450
- }
451
305
  });
452
- onNet('opencore:vehicle:repaired', (networkId) => {
306
+ this.events.on('opencore:vehicle:repaired', (_ctx, networkId) => {
453
307
  const veh = this.getVehicleFromNetworkId(networkId);
454
- if (veh && DoesEntityExist(veh)) {
308
+ if (veh && this.platform.doesEntityExist(veh))
455
309
  this.repair(veh);
456
- }
457
- });
458
- onNet('opencore:vehicle:lockedChanged', (data) => {
459
- console.log('[VehicleClient] Vehicle lock changed:', data.networkId, data.locked);
460
310
  });
461
- onNet('opencore:vehicle:warpInto', async (networkId, seatIndex = -1) => {
462
- const started = GetGameTimer();
463
- let veh = 0;
464
- while (GetGameTimer() - started < 5000) {
465
- veh = this.getVehicleFromNetworkId(networkId);
466
- if (veh && DoesEntityExist(veh))
467
- break;
468
- await new Promise((r) => setTimeout(r, 0));
469
- }
470
- if (veh && DoesEntityExist(veh)) {
311
+ this.events.on('opencore:vehicle:warpInto', async (_ctx, networkId, seatIndex = -1) => {
312
+ const veh = await this.waitForVehicle(networkId);
313
+ if (veh)
471
314
  this.warpIntoVehicle(veh, seatIndex);
472
- }
473
- else {
474
- console.error('[VehicleClient] Failed to warp into vehicle:', networkId);
475
- }
476
315
  });
477
316
  }
317
+ async waitForVehicle(networkId) {
318
+ const started = this.runtime.getGameTimer();
319
+ while (this.runtime.getGameTimer() - started < 5000) {
320
+ const veh = this.getVehicleFromNetworkId(networkId);
321
+ if (veh && this.platform.doesEntityExist(veh))
322
+ return veh;
323
+ await new Promise((r) => setTimeout(r, 0));
324
+ }
325
+ return null;
326
+ }
478
327
  };
479
328
  VehicleClientService = __decorate([
480
329
  injectable(),
481
- __metadata("design:paramtypes", [])
330
+ __param(0, inject(EventsAPI)),
331
+ __param(1, inject(IClientPlatformBridge)),
332
+ __param(2, inject(IClientRuntimeBridge)),
333
+ __metadata("design:paramtypes", [EventsAPI,
334
+ IClientPlatformBridge,
335
+ IClientRuntimeBridge])
482
336
  ], VehicleClientService);
483
337
  export { VehicleClientService };