@open-core/framework 1.0.5-beta.1 → 1.0.5
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.
- package/dist/adapters/contracts/IEngineEvents.d.ts +5 -2
- package/dist/adapters/contracts/IEngineEvents.js +7 -0
- package/dist/adapters/contracts/IExports.d.ts +2 -2
- package/dist/adapters/contracts/IPlatformContext.d.ts +43 -0
- package/dist/adapters/contracts/IPlatformContext.js +8 -0
- package/dist/adapters/contracts/client/IClientLocalPlayerBridge.d.ts +25 -0
- package/dist/adapters/contracts/client/IClientLocalPlayerBridge.js +8 -0
- package/dist/adapters/contracts/client/IClientLogConsole.d.ts +13 -0
- package/dist/adapters/contracts/client/IClientLogConsole.js +2 -0
- package/dist/adapters/contracts/client/IClientPlatformBridge.d.ts +195 -0
- package/dist/adapters/contracts/client/IClientPlatformBridge.js +282 -0
- package/dist/adapters/contracts/client/IClientRuntimeBridge.d.ts +18 -0
- package/dist/adapters/contracts/client/IClientRuntimeBridge.js +14 -0
- package/dist/adapters/contracts/client/IGtaPedAppearanceBridge.d.ts +26 -0
- package/dist/adapters/contracts/client/IGtaPedAppearanceBridge.js +2 -0
- package/dist/adapters/contracts/client/camera/IClientCameraPort.d.ts +107 -0
- package/dist/adapters/contracts/client/camera/IClientCameraPort.js +8 -0
- package/dist/adapters/contracts/client/camera/index.d.ts +1 -0
- package/dist/adapters/contracts/client/camera/index.js +1 -0
- package/dist/adapters/contracts/client/index.d.ts +11 -0
- package/dist/adapters/contracts/client/index.js +11 -0
- package/dist/adapters/contracts/client/ped/IClientPedPort.d.ts +62 -0
- package/dist/adapters/contracts/client/ped/IClientPedPort.js +5 -0
- package/dist/adapters/contracts/client/ped/index.d.ts +1 -0
- package/dist/adapters/contracts/client/ped/index.js +1 -0
- package/dist/adapters/contracts/client/progress/IClientProgressPort.d.ts +53 -0
- package/dist/adapters/contracts/client/progress/IClientProgressPort.js +8 -0
- package/dist/adapters/contracts/client/progress/index.d.ts +1 -0
- package/dist/adapters/contracts/client/progress/index.js +1 -0
- package/dist/adapters/contracts/client/spawn/IClientSpawnBridge.d.ts +6 -0
- package/dist/adapters/contracts/client/spawn/IClientSpawnBridge.js +6 -0
- package/dist/adapters/contracts/client/spawn/IClientSpawnPort.d.ts +19 -0
- package/dist/adapters/contracts/client/spawn/IClientSpawnPort.js +2 -0
- package/dist/adapters/contracts/client/spawn/index.d.ts +4 -0
- package/dist/adapters/contracts/client/spawn/index.js +4 -0
- package/dist/adapters/contracts/client/spawn/types.d.ts +17 -0
- package/dist/adapters/contracts/client/ui/IClientBlipBridge.d.ts +25 -0
- package/dist/adapters/contracts/client/ui/IClientBlipBridge.js +2 -0
- package/dist/adapters/contracts/client/ui/IClientMarkerBridge.d.ts +31 -0
- package/dist/adapters/contracts/client/ui/IClientMarkerBridge.js +2 -0
- package/dist/adapters/contracts/client/ui/IClientNotificationBridge.d.ts +21 -0
- package/dist/adapters/contracts/client/ui/IClientNotificationBridge.js +2 -0
- package/dist/adapters/contracts/client/ui/index.d.ts +4 -0
- package/dist/adapters/contracts/client/ui/index.js +4 -0
- package/dist/adapters/contracts/client/ui/webview/IClientWebViewBridge.d.ts +14 -0
- package/dist/adapters/contracts/client/ui/webview/IClientWebViewBridge.js +2 -0
- package/dist/adapters/contracts/client/ui/webview/index.d.ts +2 -0
- package/dist/adapters/contracts/client/ui/webview/index.js +2 -0
- package/dist/adapters/contracts/client/ui/webview/types.d.ts +27 -0
- package/dist/adapters/contracts/client/ui/webview/types.js +0 -0
- package/dist/adapters/contracts/client/vehicle/IClientVehiclePort.d.ts +166 -0
- package/dist/adapters/contracts/client/vehicle/IClientVehiclePort.js +8 -0
- package/dist/adapters/contracts/client/vehicle/index.d.ts +1 -0
- package/dist/adapters/contracts/client/vehicle/index.js +1 -0
- package/dist/adapters/contracts/index.d.ts +4 -2
- package/dist/adapters/contracts/index.js +4 -3
- package/dist/adapters/contracts/runtime/index.d.ts +1 -0
- package/dist/adapters/contracts/runtime/index.js +1 -0
- package/dist/adapters/contracts/runtime/runtime-events.d.ts +9 -0
- package/dist/adapters/contracts/runtime/runtime-events.js +7 -0
- package/dist/adapters/contracts/server/IEntityServer.d.ts +4 -28
- package/dist/adapters/contracts/server/IEntityServer.js +0 -26
- package/dist/adapters/contracts/server/IPlayerServer.d.ts +7 -26
- package/dist/adapters/contracts/server/IPlayerServer.js +0 -26
- package/dist/adapters/contracts/server/index.d.ts +10 -0
- package/dist/adapters/contracts/server/index.js +10 -0
- package/dist/adapters/contracts/server/npc-lifecycle/INpcLifecycleServer.d.ts +5 -0
- package/dist/adapters/contracts/server/npc-lifecycle/INpcLifecycleServer.js +2 -0
- package/dist/adapters/contracts/server/npc-lifecycle/index.d.ts +2 -0
- package/dist/adapters/contracts/server/npc-lifecycle/index.js +2 -0
- package/dist/adapters/contracts/server/npc-lifecycle/types.d.ts +17 -0
- package/dist/adapters/contracts/server/npc-lifecycle/types.js +0 -0
- package/dist/adapters/contracts/server/player-appearance/IPlayerAppearanceLifecycleServer.d.ts +11 -0
- package/dist/adapters/contracts/server/player-appearance/IPlayerAppearanceLifecycleServer.js +2 -0
- package/dist/adapters/contracts/server/player-appearance/index.d.ts +1 -0
- package/dist/adapters/contracts/server/player-appearance/index.js +1 -0
- package/dist/adapters/contracts/server/player-lifecycle/IPlayerLifecycleServer.d.ts +6 -0
- package/dist/adapters/contracts/server/player-lifecycle/IPlayerLifecycleServer.js +2 -0
- package/dist/adapters/contracts/server/player-lifecycle/index.d.ts +2 -0
- package/dist/adapters/contracts/server/player-lifecycle/index.js +2 -0
- package/dist/adapters/contracts/server/player-lifecycle/types.d.ts +17 -0
- package/dist/adapters/contracts/server/player-lifecycle/types.js +0 -0
- package/dist/adapters/contracts/server/player-state/IPlayerStateSyncServer.d.ts +6 -0
- package/dist/adapters/contracts/server/player-state/IPlayerStateSyncServer.js +2 -0
- package/dist/adapters/contracts/server/player-state/index.d.ts +1 -0
- package/dist/adapters/contracts/server/player-state/index.js +1 -0
- package/dist/adapters/contracts/server/vehicle-lifecycle/IVehicleLifecycleServer.d.ts +5 -0
- package/dist/adapters/contracts/server/vehicle-lifecycle/IVehicleLifecycleServer.js +2 -0
- package/dist/adapters/contracts/server/vehicle-lifecycle/index.d.ts +2 -0
- package/dist/adapters/contracts/server/vehicle-lifecycle/index.js +2 -0
- package/dist/adapters/contracts/server/vehicle-lifecycle/types.d.ts +16 -0
- package/dist/adapters/contracts/server/vehicle-lifecycle/types.js +0 -0
- package/dist/adapters/contracts/transport/events.api.d.ts +3 -3
- package/dist/adapters/contracts/transport/index.d.ts +4 -0
- package/dist/adapters/contracts/transport/index.js +4 -0
- package/dist/adapters/contracts/transport/rpc.api.d.ts +3 -3
- package/dist/adapters/index.d.ts +3 -14
- package/dist/adapters/index.js +3 -20
- package/dist/adapters/node/node-capabilities.d.ts +11 -11
- package/dist/adapters/node/node-capabilities.js +15 -27
- package/dist/adapters/node/node-engine-events.d.ts +1 -1
- package/dist/adapters/node/node-engine-events.js +2 -1
- package/dist/adapters/node/node-entity-server.d.ts +2 -2
- package/dist/adapters/node/node-entity-server.js +2 -2
- package/dist/adapters/node/node-ped-appearance-client.d.ts +2 -2
- package/dist/adapters/node/node-ped-appearance-client.js +2 -2
- package/dist/adapters/node/node-platform.js +4 -4
- package/dist/adapters/node/node-player-server.d.ts +3 -2
- package/dist/adapters/node/node-player-server.js +8 -2
- package/dist/adapters/node/transport/node.events.d.ts +4 -4
- package/dist/adapters/node/transport/node.rpc.d.ts +3 -3
- package/dist/adapters/node/transport/node.rpc.js +1 -1
- package/dist/adapters/register-capabilities.d.ts +1 -1
- package/dist/adapters/register-capabilities.js +1 -3
- package/dist/adapters/register-client-capabilities.d.ts +3 -2
- package/dist/adapters/register-client-capabilities.js +16 -41
- package/dist/contracts/client.d.ts +5 -0
- package/dist/contracts/client.js +5 -0
- package/dist/contracts/server.d.ts +19 -0
- package/dist/contracts/server.js +19 -0
- package/dist/contracts.d.ts +5 -0
- package/dist/contracts.js +5 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/kernel/logger/client-log-console.d.ts +4 -0
- package/dist/kernel/logger/client-log-console.js +43 -0
- package/dist/kernel/logger/core-logger.d.ts +3 -1
- package/dist/kernel/logger/core-logger.js +4 -2
- package/dist/kernel/logger/index.d.ts +3 -1
- package/dist/kernel/logger/index.js +2 -1
- package/dist/kernel/logger/logger.types.d.ts +1 -0
- package/dist/kernel/logger/logger.types.js +35 -0
- package/dist/kernel/logger/transports/buffered.transport.js +4 -4
- package/dist/kernel/logger/transports/console.transport.js +2 -2
- package/dist/kernel/logger/transports/dev-transport.factory.js +1 -1
- package/dist/kernel/logger/transports/simple-console.transport.js +15 -10
- package/dist/kernel-public.d.ts +1 -0
- package/dist/kernel-public.js +1 -0
- package/dist/runtime/client/adapter/client-adapter.d.ts +25 -0
- package/dist/runtime/client/adapter/client-adapter.js +11 -0
- package/dist/runtime/client/adapter/index.d.ts +20 -0
- package/dist/runtime/client/adapter/index.js +20 -0
- package/dist/runtime/client/adapter/local-player-bridge.d.ts +1 -0
- package/dist/runtime/client/adapter/local-player-bridge.js +1 -0
- package/dist/runtime/client/adapter/node-blip-bridge.d.ts +9 -0
- package/dist/runtime/client/adapter/node-blip-bridge.js +34 -0
- package/dist/runtime/client/adapter/node-camera-port.d.ts +19 -0
- package/dist/runtime/client/adapter/node-camera-port.js +31 -0
- package/dist/runtime/client/adapter/node-client-adapter.d.ts +5 -0
- package/dist/runtime/client/adapter/node-client-adapter.js +64 -0
- package/dist/runtime/client/adapter/node-local-player-bridge.d.ts +11 -0
- package/dist/runtime/client/adapter/node-local-player-bridge.js +27 -0
- package/dist/runtime/client/adapter/node-log-console.d.ts +11 -0
- package/dist/runtime/client/adapter/node-log-console.js +48 -0
- package/dist/runtime/client/adapter/node-marker-bridge.d.ts +10 -0
- package/dist/runtime/client/adapter/node-marker-bridge.js +35 -0
- package/dist/runtime/client/adapter/node-notification-bridge.d.ts +5 -0
- package/dist/{adapters/fivem/fivem-hasher.js → runtime/client/adapter/node-notification-bridge.js} +7 -11
- package/dist/runtime/client/adapter/node-ped-port.d.ts +20 -0
- package/dist/runtime/client/adapter/node-ped-port.js +38 -0
- package/dist/runtime/client/adapter/node-platform-bridge.d.ts +3 -0
- package/dist/{adapters/fivem/fivem-tick.js → runtime/client/adapter/node-platform-bridge.js} +5 -10
- package/dist/runtime/client/adapter/node-progress-port.d.ts +8 -0
- package/dist/runtime/client/adapter/node-progress-port.js +27 -0
- package/dist/runtime/client/adapter/node-runtime-bridge.d.ts +22 -0
- package/dist/runtime/client/adapter/node-runtime-bridge.js +58 -0
- package/dist/runtime/client/adapter/node-spawn-bridge.d.ts +8 -0
- package/dist/runtime/client/adapter/node-spawn-bridge.js +22 -0
- package/dist/runtime/client/adapter/node-vehicle-port.d.ts +31 -0
- package/dist/runtime/client/adapter/node-vehicle-port.js +73 -0
- package/dist/runtime/client/adapter/node-webview-bridge.d.ts +16 -0
- package/dist/runtime/client/adapter/node-webview-bridge.js +45 -0
- package/dist/runtime/client/adapter/platform-bridge.d.ts +1 -0
- package/dist/runtime/client/adapter/platform-bridge.js +1 -0
- package/dist/runtime/client/adapter/registry.d.ts +9 -0
- package/dist/runtime/client/adapter/registry.js +85 -0
- package/dist/runtime/client/adapter/runtime-bridge.d.ts +1 -0
- package/dist/runtime/client/adapter/runtime-bridge.js +1 -0
- package/dist/runtime/client/api.d.ts +2 -1
- package/dist/runtime/client/api.js +2 -1
- package/dist/runtime/client/client-bootstrap.js +51 -44
- package/dist/runtime/client/client-core.d.ts +2 -0
- package/dist/runtime/client/client-core.js +9 -0
- package/dist/runtime/client/client-runtime.d.ts +3 -0
- package/dist/runtime/client/client-runtime.js +3 -0
- package/dist/runtime/client/controllers/appearance.controller.d.ts +3 -1
- package/dist/runtime/client/controllers/appearance.controller.js +17 -6
- package/dist/runtime/client/controllers/spawner.controller.js +6 -3
- package/dist/runtime/client/decorators/controller.js +2 -10
- package/dist/runtime/client/decorators/onView.d.ts +3 -3
- package/dist/runtime/client/decorators/onView.js +3 -3
- package/dist/runtime/client/index.d.ts +1 -0
- package/dist/runtime/client/index.js +1 -0
- package/dist/runtime/client/library/create-client-library.js +9 -1
- package/dist/runtime/client/services/appearance.service.d.ts +2 -2
- package/dist/runtime/client/services/appearance.service.js +7 -4
- package/dist/runtime/client/services/blip.service.d.ts +6 -93
- package/dist/runtime/client/services/blip.service.js +58 -153
- package/dist/runtime/client/services/camera-effects.registry.d.ts +3 -0
- package/dist/runtime/client/services/camera-effects.registry.js +20 -7
- package/dist/runtime/client/services/camera.d.ts +4 -106
- package/dist/runtime/client/services/camera.js +36 -98
- package/dist/runtime/client/services/cinematic.d.ts +5 -1
- package/dist/runtime/client/services/cinematic.js +45 -30
- package/dist/runtime/client/services/index.d.ts +1 -0
- package/dist/runtime/client/services/index.js +1 -0
- package/dist/runtime/client/services/marker.service.d.ts +12 -63
- package/dist/runtime/client/services/marker.service.js +62 -97
- package/dist/runtime/client/services/notification.service.d.ts +6 -57
- package/dist/runtime/client/services/notification.service.js +43 -81
- package/dist/runtime/client/services/ped.service.d.ts +6 -148
- package/dist/runtime/client/services/ped.service.js +42 -221
- package/dist/runtime/client/services/progress.service.d.ts +4 -75
- package/dist/runtime/client/services/progress.service.js +20 -178
- package/dist/runtime/client/services/session-bridge.service.d.ts +15 -0
- package/dist/runtime/client/services/session-bridge.service.js +62 -0
- package/dist/runtime/client/services/spawn.service.d.ts +4 -56
- package/dist/runtime/client/services/spawn.service.js +29 -191
- package/dist/runtime/client/services/streaming.service.d.ts +5 -126
- package/dist/runtime/client/services/streaming.service.js +72 -217
- package/dist/runtime/client/services/textui.service.d.ts +5 -45
- package/dist/runtime/client/services/textui.service.js +55 -88
- package/dist/runtime/client/services/vehicle-client.service.d.ts +12 -149
- package/dist/runtime/client/services/vehicle-client.service.js +128 -374
- package/dist/runtime/client/services/vehicle.service.d.ts +4 -147
- package/dist/runtime/client/services/vehicle.service.js +33 -239
- package/dist/runtime/client/system/processors/export.processor.d.ts +3 -0
- package/dist/runtime/client/system/processors/export.processor.js +16 -3
- package/dist/runtime/client/system/processors/gameEvent.processor.d.ts +3 -0
- package/dist/runtime/client/system/processors/gameEvent.processor.js +16 -3
- package/dist/runtime/client/system/processors/interval.processor.d.ts +3 -0
- package/dist/runtime/client/system/processors/interval.processor.js +17 -4
- package/dist/runtime/client/system/processors/key.processor.d.ts +3 -0
- package/dist/runtime/client/system/processors/key.processor.js +18 -5
- package/dist/runtime/client/system/processors/localEvent.processor.d.ts +3 -0
- package/dist/runtime/client/system/processors/localEvent.processor.js +16 -3
- package/dist/runtime/client/system/processors/netEvent.processor.d.ts +3 -0
- package/dist/runtime/client/system/processors/netEvent.processor.js +16 -3
- package/dist/runtime/client/system/processors/onRpc.processor.js +1 -1
- package/dist/runtime/client/system/processors/resourceLifecycle.processor.d.ts +5 -0
- package/dist/runtime/client/system/processors/resourceLifecycle.processor.js +26 -7
- package/dist/runtime/client/system/processors/tick.processor.d.ts +3 -0
- package/dist/runtime/client/system/processors/tick.processor.js +16 -3
- package/dist/runtime/client/system/processors/view.processor.d.ts +3 -0
- package/dist/runtime/client/system/processors/view.processor.js +21 -10
- package/dist/runtime/client/system/processors.register.d.ts +1 -0
- package/dist/runtime/client/system/processors.register.js +8 -0
- package/dist/runtime/client/ui-bridge.d.ts +2 -114
- package/dist/runtime/client/ui-bridge.js +2 -194
- package/dist/runtime/client/webview-bridge.d.ts +34 -0
- package/dist/runtime/client/webview-bridge.js +103 -0
- package/dist/runtime/client/webview.service.d.ts +15 -0
- package/dist/runtime/client/webview.service.js +103 -0
- package/dist/runtime/server/adapter/index.d.ts +5 -0
- package/dist/runtime/server/adapter/index.js +5 -0
- package/dist/runtime/server/adapter/node-npc-lifecycle-server.d.ts +12 -0
- package/dist/runtime/server/adapter/node-npc-lifecycle-server.js +52 -0
- package/dist/runtime/server/adapter/node-player-appearance-lifecycle-server.d.ts +22 -0
- package/dist/runtime/server/adapter/node-player-appearance-lifecycle-server.js +95 -0
- package/dist/runtime/server/adapter/node-player-lifecycle-server.d.ts +11 -0
- package/dist/runtime/server/adapter/node-player-lifecycle-server.js +56 -0
- package/dist/runtime/server/adapter/node-player-state-sync-server.d.ts +12 -0
- package/dist/runtime/server/adapter/node-player-state-sync-server.js +49 -0
- package/dist/runtime/server/adapter/node-server-adapter.d.ts +5 -0
- package/dist/runtime/server/adapter/node-server-adapter.js +67 -0
- package/dist/runtime/server/adapter/node-vehicle-lifecycle-server.d.ts +13 -0
- package/dist/runtime/server/adapter/node-vehicle-lifecycle-server.js +58 -0
- package/dist/runtime/server/adapter/player-adapter.d.ts +28 -0
- package/dist/runtime/server/adapter/player-adapter.js +28 -0
- package/dist/runtime/server/adapter/registry.d.ts +26 -0
- package/dist/runtime/server/adapter/registry.js +101 -0
- package/dist/runtime/server/adapter/serialization.d.ts +6 -0
- package/dist/runtime/server/adapter/serialization.js +9 -0
- package/dist/runtime/server/adapter/server-adapter.d.ts +28 -0
- package/dist/runtime/server/adapter/server-adapter.js +14 -0
- package/dist/runtime/server/api.d.ts +2 -1
- package/dist/runtime/server/api.js +2 -1
- package/dist/runtime/server/apis/appearance.api.d.ts +5 -3
- package/dist/runtime/server/apis/appearance.api.js +20 -7
- package/dist/runtime/server/apis/chat.api.js +6 -5
- package/dist/runtime/server/apis/npcs.api.d.ts +3 -4
- package/dist/runtime/server/apis/npcs.api.js +28 -57
- package/dist/runtime/server/apis/parallel-compute.api.js +1 -0
- package/dist/runtime/server/apis/vehicle-modification.api.d.ts +3 -1
- package/dist/runtime/server/apis/vehicle-modification.api.js +13 -6
- package/dist/runtime/server/apis/vehicles.api.d.ts +12 -6
- package/dist/runtime/server/apis/vehicles.api.js +55 -40
- package/dist/runtime/server/bootstrap.js +28 -19
- package/dist/runtime/server/controllers/channel.controller.js +2 -1
- package/dist/runtime/server/controllers/command-export.controller.js +5 -3
- package/dist/runtime/server/controllers/player-export.controller.js +5 -4
- package/dist/runtime/server/controllers/remote-command-execution.controller.js +2 -1
- package/dist/runtime/server/controllers/session.controller.js +3 -2
- package/dist/runtime/server/controllers/vehicle.controller.d.ts +3 -1
- package/dist/runtime/server/controllers/vehicle.controller.js +13 -7
- package/dist/runtime/server/core.d.ts +2 -0
- package/dist/runtime/server/core.js +9 -1
- package/dist/runtime/server/decorators/command.d.ts +2 -0
- package/dist/runtime/server/decorators/command.js +3 -1
- package/dist/runtime/server/decorators/onRuntimeEvent.d.ts +2 -1
- package/dist/runtime/server/entities/npc.d.ts +3 -1
- package/dist/runtime/server/entities/npc.js +3 -3
- package/dist/runtime/server/entities/player.d.ts +9 -12
- package/dist/runtime/server/entities/player.js +49 -31
- package/dist/runtime/server/entities/vehicle.js +2 -2
- package/dist/runtime/server/error-handler.js +13 -2
- package/dist/runtime/server/helpers/command-validation.helper.js +21 -8
- package/dist/runtime/server/helpers/function-helper.d.ts +1 -0
- package/dist/runtime/server/helpers/function-helper.js +15 -8
- package/dist/runtime/server/implementations/local/channel.local.d.ts +1 -1
- package/dist/runtime/server/implementations/local/channel.local.js +3 -2
- package/dist/runtime/server/implementations/local/player.local.d.ts +7 -3
- package/dist/runtime/server/implementations/local/player.local.js +23 -11
- package/dist/runtime/server/implementations/remote/channel.remote.d.ts +2 -1
- package/dist/runtime/server/implementations/remote/channel.remote.js +5 -2
- package/dist/runtime/server/implementations/remote/command.remote.d.ts +3 -1
- package/dist/runtime/server/implementations/remote/command.remote.js +9 -4
- package/dist/runtime/server/implementations/remote/player.remote.d.ts +7 -10
- package/dist/runtime/server/implementations/remote/player.remote.js +24 -29
- package/dist/runtime/server/library/create-server-library.js +17 -2
- package/dist/runtime/server/ports/channel.api-port.d.ts +1 -1
- package/dist/runtime/server/runtime.d.ts +3 -0
- package/dist/runtime/server/runtime.js +1 -15
- package/dist/runtime/server/services/appearance.service.d.ts +0 -95
- package/dist/runtime/server/services/appearance.service.js +15 -192
- package/dist/runtime/server/services/parallel/worker-pool.d.ts +1 -1
- package/dist/runtime/server/services/parallel/worker-pool.js +38 -6
- package/dist/runtime/server/services/parallel/worker.js +1 -0
- package/dist/runtime/server/services/services.register.js +56 -24
- package/dist/runtime/server/system/processors/netEvent.processor.js +1 -1
- package/dist/runtime/server/system/processors/onRpc.processor.js +1 -1
- package/dist/runtime/server/system/processors/runtimeEvent.processor.d.ts +2 -1
- package/dist/runtime/server/system/processors/runtimeEvent.processor.js +1 -1
- package/dist/runtime/server/system/schema-generator.d.ts +1 -1
- package/dist/runtime/server/system/schema-generator.js +6 -3
- package/dist/runtime/server/types/core-exports.types.d.ts +5 -0
- package/dist/runtime/shared/helpers/process-tuple-schema.d.ts +2 -0
- package/dist/runtime/shared/helpers/process-tuple-schema.js +32 -0
- package/dist/runtime/shared/types/system-types.d.ts +55 -0
- package/dist/runtime/shared/types/system-types.js +54 -0
- package/package.json +41 -13
- package/dist/adapters/cfx/cfx-capabilities.d.ts +0 -16
- package/dist/adapters/cfx/cfx-capabilities.js +0 -70
- package/dist/adapters/cfx/cfx-platform.d.ts +0 -2
- package/dist/adapters/cfx/cfx-platform.js +0 -85
- package/dist/adapters/cfx/index.d.ts +0 -3
- package/dist/adapters/cfx/index.js +0 -3
- package/dist/adapters/cfx/runtime-profile.d.ts +0 -3
- package/dist/adapters/cfx/runtime-profile.js +0 -37
- package/dist/adapters/contracts/IPlatformCapabilities.d.ts +0 -79
- package/dist/adapters/contracts/IPlatformCapabilities.js +0 -27
- package/dist/adapters/contracts/client/IPedAppearanceClient.d.ts +0 -206
- package/dist/adapters/contracts/client/IPedAppearanceClient.js +0 -12
- package/dist/adapters/fivem/fivem-capabilities.d.ts +0 -18
- package/dist/adapters/fivem/fivem-capabilities.js +0 -61
- package/dist/adapters/fivem/fivem-engine-events.d.ts +0 -5
- package/dist/adapters/fivem/fivem-engine-events.js +0 -24
- package/dist/adapters/fivem/fivem-entity-server.d.ts +0 -26
- package/dist/adapters/fivem/fivem-entity-server.js +0 -87
- package/dist/adapters/fivem/fivem-exports.d.ts +0 -5
- package/dist/adapters/fivem/fivem-exports.js +0 -9
- package/dist/adapters/fivem/fivem-hasher.d.ts +0 -7
- package/dist/adapters/fivem/fivem-net-transport.d.ts +0 -1
- package/dist/adapters/fivem/fivem-ped-appearance-client.d.ts +0 -34
- package/dist/adapters/fivem/fivem-ped-appearance-client.js +0 -79
- package/dist/adapters/fivem/fivem-ped-appearance-server.d.ts +0 -14
- package/dist/adapters/fivem/fivem-ped-appearance-server.js +0 -22
- package/dist/adapters/fivem/fivem-ped-server.d.ts +0 -9
- package/dist/adapters/fivem/fivem-ped-server.js +0 -30
- package/dist/adapters/fivem/fivem-platform.d.ts +0 -5
- package/dist/adapters/fivem/fivem-platform.js +0 -74
- package/dist/adapters/fivem/fivem-player-server.d.ts +0 -24
- package/dist/adapters/fivem/fivem-player-server.js +0 -83
- package/dist/adapters/fivem/fivem-playerinfo.d.ts +0 -6
- package/dist/adapters/fivem/fivem-playerinfo.js +0 -10
- package/dist/adapters/fivem/fivem-resourceinfo.d.ts +0 -5
- package/dist/adapters/fivem/fivem-resourceinfo.js +0 -24
- package/dist/adapters/fivem/fivem-tick.d.ts +0 -7
- package/dist/adapters/fivem/fivem-vehicle-server.d.ts +0 -15
- package/dist/adapters/fivem/fivem-vehicle-server.js +0 -44
- package/dist/adapters/fivem/index.d.ts +0 -14
- package/dist/adapters/fivem/index.js +0 -16
- package/dist/adapters/fivem/transport/adapter.d.ts +0 -8
- package/dist/adapters/fivem/transport/adapter.js +0 -8
- package/dist/adapters/fivem/transport/fivem.events.d.ts +0 -8
- package/dist/adapters/fivem/transport/fivem.events.js +0 -36
- package/dist/adapters/fivem/transport/fivem.rpc.d.ts +0 -28
- package/dist/adapters/fivem/transport/fivem.rpc.js +0 -183
- package/dist/runtime/client/controllers/player-sync.controller.d.ts +0 -11
- package/dist/runtime/client/controllers/player-sync.controller.js +0 -51
- package/dist/runtime/client/player/player.d.ts +0 -262
- package/dist/runtime/client/player/player.js +0 -474
- package/dist/runtime/client/player/player.loader.d.ts +0 -1
- package/dist/runtime/client/player/player.loader.js +0 -18
- package/dist/runtime/server/helpers/process-tuple-schema.d.ts +0 -20
- package/dist/runtime/server/helpers/process-tuple-schema.js +0 -56
- /package/dist/adapters/{fivem/fivem-net-transport.js → contracts/client/spawn/types.js} +0 -0
|
@@ -12,6 +12,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
12
12
|
};
|
|
13
13
|
import { inject, injectable } from 'tsyringe';
|
|
14
14
|
import { EventsAPI } from '../../../adapters/contracts/transport/events.api';
|
|
15
|
+
import { SYSTEM_EVENTS } from '../../shared/types/system-types';
|
|
15
16
|
import { Players } from '../ports/players.api-port';
|
|
16
17
|
/**
|
|
17
18
|
* Service for sending chat messages to players.
|
|
@@ -35,7 +36,7 @@ let Chat = class Chat {
|
|
|
35
36
|
* @param color - Message color (RGB). Defaults to white.
|
|
36
37
|
*/
|
|
37
38
|
broadcast(message, author = 'SYSTEM', color = { r: 255, g: 255, b: 255 }) {
|
|
38
|
-
this.events.emit(
|
|
39
|
+
this.events.emit(SYSTEM_EVENTS.chat.message, 'all', {
|
|
39
40
|
args: [author, message],
|
|
40
41
|
color: color,
|
|
41
42
|
});
|
|
@@ -49,7 +50,7 @@ let Chat = class Chat {
|
|
|
49
50
|
* @param color - Message color (RGB).
|
|
50
51
|
*/
|
|
51
52
|
sendPrivate(player, message, author = 'Private', color = { r: 200, g: 200, b: 200 }) {
|
|
52
|
-
this.events.emit(
|
|
53
|
+
this.events.emit(SYSTEM_EVENTS.chat.addMessage, player.clientID, {
|
|
53
54
|
args: [author, message],
|
|
54
55
|
color: color,
|
|
55
56
|
});
|
|
@@ -60,7 +61,7 @@ let Chat = class Chat {
|
|
|
60
61
|
* @param player - Target player.
|
|
61
62
|
*/
|
|
62
63
|
clearChat(player) {
|
|
63
|
-
this.events.emit(
|
|
64
|
+
this.events.emit(SYSTEM_EVENTS.chat.clear, player.clientID);
|
|
64
65
|
}
|
|
65
66
|
/**
|
|
66
67
|
* Send a chat message to multiple players.
|
|
@@ -72,7 +73,7 @@ let Chat = class Chat {
|
|
|
72
73
|
*/
|
|
73
74
|
sendMany(players, message, author = 'SYSTEM', color = { r: 255, g: 255, b: 255 }) {
|
|
74
75
|
const targetIds = players.map((p) => (typeof p === 'number' ? p : p.clientID));
|
|
75
|
-
this.events.emit(
|
|
76
|
+
this.events.emit(SYSTEM_EVENTS.chat.addMessage, targetIds, {
|
|
76
77
|
args: [author, message],
|
|
77
78
|
color: color,
|
|
78
79
|
});
|
|
@@ -116,7 +117,7 @@ let Chat = class Chat {
|
|
|
116
117
|
* Clear chat for all connected players.
|
|
117
118
|
*/
|
|
118
119
|
clearChatAll() {
|
|
119
|
-
this.events.emit(
|
|
120
|
+
this.events.emit(SYSTEM_EVENTS.chat.clear, 'all');
|
|
120
121
|
}
|
|
121
122
|
};
|
|
122
123
|
Chat = __decorate([
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { IHasher } from '../../../adapters/contracts/IHasher';
|
|
2
2
|
import { EventsAPI } from '../../../adapters/contracts/transport/events.api';
|
|
3
3
|
import { IEntityServer } from '../../../adapters/contracts/server/IEntityServer';
|
|
4
|
+
import { INpcLifecycleServer } from '../../../adapters/contracts/server/npc-lifecycle/INpcLifecycleServer';
|
|
4
5
|
import { IPedServer } from '../../../adapters/contracts/server/IPedServer';
|
|
5
6
|
import { Vector3 } from '../../../kernel/utils/vector3';
|
|
6
7
|
import { WorldContext } from '../../core/world';
|
|
@@ -20,6 +21,7 @@ import { NpcSpawnOptions, NpcSpawnResult, SerializedNpcData } from '../types/npc
|
|
|
20
21
|
export declare class Npcs {
|
|
21
22
|
private readonly world;
|
|
22
23
|
private readonly entityServer;
|
|
24
|
+
private readonly npcLifecycle;
|
|
23
25
|
private readonly pedServer;
|
|
24
26
|
private readonly hasher;
|
|
25
27
|
private readonly events;
|
|
@@ -27,7 +29,7 @@ export declare class Npcs {
|
|
|
27
29
|
private readonly idByHandle;
|
|
28
30
|
private readonly idByNetId;
|
|
29
31
|
private readonly adapters;
|
|
30
|
-
constructor(world: WorldContext, entityServer: IEntityServer, pedServer: IPedServer, hasher: IHasher, events: EventsAPI<'server'>);
|
|
32
|
+
constructor(world: WorldContext, entityServer: IEntityServer, npcLifecycle: INpcLifecycleServer, pedServer: IPedServer, hasher: IHasher, events: EventsAPI<'server'>);
|
|
31
33
|
/**
|
|
32
34
|
* Spawn (create) a single NPC and register it into the runtime.
|
|
33
35
|
*
|
|
@@ -206,8 +208,5 @@ export declare class Npcs {
|
|
|
206
208
|
* @returns An array of serialized NPC data.
|
|
207
209
|
*/
|
|
208
210
|
serializeAll(): SerializedNpcData[];
|
|
209
|
-
private resolveNetId;
|
|
210
211
|
private removeFromRegistry;
|
|
211
|
-
private safeDeleteHandle;
|
|
212
|
-
private waitForSpawn;
|
|
213
212
|
}
|
|
@@ -15,12 +15,12 @@ import { v4 as uuid } from 'uuid';
|
|
|
15
15
|
import { IHasher } from '../../../adapters/contracts/IHasher';
|
|
16
16
|
import { EventsAPI } from '../../../adapters/contracts/transport/events.api';
|
|
17
17
|
import { IEntityServer } from '../../../adapters/contracts/server/IEntityServer';
|
|
18
|
+
import { INpcLifecycleServer } from '../../../adapters/contracts/server/npc-lifecycle/INpcLifecycleServer';
|
|
18
19
|
import { IPedServer } from '../../../adapters/contracts/server/IPedServer';
|
|
19
20
|
import { coreLogger } from '../../../kernel/logger';
|
|
20
21
|
import { WorldContext } from '../../core/world';
|
|
22
|
+
import { SYSTEM_EVENTS } from '../../shared/types/system-types';
|
|
21
23
|
import { NPC } from '../entities/npc';
|
|
22
|
-
const DEFAULT_PED_TYPE = 4;
|
|
23
|
-
const DEFAULT_SPAWN_TIMEOUT_MS = 2000;
|
|
24
24
|
/**
|
|
25
25
|
* Server-side API responsible for the full NPC (ped) lifecycle:
|
|
26
26
|
* spawn, registry, queries, spatial search, serialization and deletion.
|
|
@@ -35,6 +35,7 @@ const DEFAULT_SPAWN_TIMEOUT_MS = 2000;
|
|
|
35
35
|
let Npcs = class Npcs {
|
|
36
36
|
world;
|
|
37
37
|
entityServer;
|
|
38
|
+
npcLifecycle;
|
|
38
39
|
pedServer;
|
|
39
40
|
hasher;
|
|
40
41
|
events;
|
|
@@ -42,15 +43,17 @@ let Npcs = class Npcs {
|
|
|
42
43
|
idByHandle = new Map();
|
|
43
44
|
idByNetId = new Map();
|
|
44
45
|
adapters;
|
|
45
|
-
constructor(world, entityServer, pedServer, hasher, events) {
|
|
46
|
+
constructor(world, entityServer, npcLifecycle, pedServer, hasher, events) {
|
|
46
47
|
this.world = world;
|
|
47
48
|
this.entityServer = entityServer;
|
|
49
|
+
this.npcLifecycle = npcLifecycle;
|
|
48
50
|
this.pedServer = pedServer;
|
|
49
51
|
this.hasher = hasher;
|
|
50
52
|
this.events = events;
|
|
51
53
|
this.adapters = {
|
|
52
54
|
entityServer: this.entityServer,
|
|
53
55
|
pedServer: this.pedServer,
|
|
56
|
+
npcLifecycle: this.npcLifecycle,
|
|
54
57
|
};
|
|
55
58
|
}
|
|
56
59
|
/**
|
|
@@ -67,7 +70,7 @@ let Npcs = class Npcs {
|
|
|
67
70
|
* @returns An object containing a `result` (success/error) and the created `npc` on success.
|
|
68
71
|
*/
|
|
69
72
|
async create(options) {
|
|
70
|
-
const { id, model, position, heading = 0, networked = true,
|
|
73
|
+
const { id, model, position, heading = 0, networked = true, routingBucket = 0, persistent = false, metadata, } = options;
|
|
71
74
|
const npcId = id ?? uuid();
|
|
72
75
|
if (this.npcById.has(npcId)) {
|
|
73
76
|
return {
|
|
@@ -78,27 +81,29 @@ let Npcs = class Npcs {
|
|
|
78
81
|
};
|
|
79
82
|
}
|
|
80
83
|
const modelHash = typeof model === 'string' ? this.hasher.getHashKey(model) : model;
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
84
|
+
let lifecycleResult;
|
|
85
|
+
try {
|
|
86
|
+
lifecycleResult = await Promise.resolve(this.npcLifecycle.create({
|
|
87
|
+
model: typeof model === 'string' ? model : String(model),
|
|
88
|
+
modelHash,
|
|
89
|
+
position,
|
|
90
|
+
heading,
|
|
91
|
+
networked,
|
|
92
|
+
routingBucket,
|
|
93
|
+
persistent,
|
|
94
|
+
}));
|
|
89
95
|
}
|
|
90
|
-
|
|
91
|
-
if (!spawnOk) {
|
|
92
|
-
this.safeDeleteHandle(handle);
|
|
96
|
+
catch (error) {
|
|
93
97
|
return {
|
|
94
98
|
result: {
|
|
95
99
|
success: false,
|
|
96
|
-
error:
|
|
100
|
+
error: error instanceof Error ? error.message : 'Failed to create NPC ped entity',
|
|
97
101
|
},
|
|
98
102
|
};
|
|
99
103
|
}
|
|
104
|
+
const handle = lifecycleResult.handle;
|
|
100
105
|
const resolvedModel = typeof model === 'string' ? model : modelHash.toString();
|
|
101
|
-
const netId =
|
|
106
|
+
const netId = lifecycleResult.netId;
|
|
102
107
|
const session = {
|
|
103
108
|
id: npcId,
|
|
104
109
|
handle,
|
|
@@ -110,12 +115,6 @@ let Npcs = class Npcs {
|
|
|
110
115
|
createdAt: Date.now(),
|
|
111
116
|
};
|
|
112
117
|
const npc = new NPC(session, this.adapters);
|
|
113
|
-
if (routingBucket !== 0) {
|
|
114
|
-
npc.setRoutingBucket(routingBucket);
|
|
115
|
-
}
|
|
116
|
-
if (persistent) {
|
|
117
|
-
this.entityServer.setOrphanMode(handle, 2);
|
|
118
|
-
}
|
|
119
118
|
if (metadata) {
|
|
120
119
|
for (const [key, value] of Object.entries(metadata)) {
|
|
121
120
|
npc.setMeta(key, value);
|
|
@@ -313,7 +312,7 @@ let Npcs = class Npcs {
|
|
|
313
312
|
netId: npc.netId,
|
|
314
313
|
remainingNpcs: this.npcById.size,
|
|
315
314
|
});
|
|
316
|
-
this.events.emit(
|
|
315
|
+
this.events.emit(SYSTEM_EVENTS.npc.deleted, 'all', npc.npcId);
|
|
317
316
|
return true;
|
|
318
317
|
}
|
|
319
318
|
/**
|
|
@@ -410,10 +409,6 @@ let Npcs = class Npcs {
|
|
|
410
409
|
serializeAll() {
|
|
411
410
|
return Array.from(this.npcById.values()).map((npc) => npc.serialize());
|
|
412
411
|
}
|
|
413
|
-
resolveNetId(handle) {
|
|
414
|
-
const netId = this.pedServer.getNetworkIdFromEntity(handle);
|
|
415
|
-
return netId > 0 ? netId : undefined;
|
|
416
|
-
}
|
|
417
412
|
removeFromRegistry(npc) {
|
|
418
413
|
this.npcById.delete(npc.npcId);
|
|
419
414
|
this.idByHandle.delete(npc.getHandle());
|
|
@@ -422,44 +417,20 @@ let Npcs = class Npcs {
|
|
|
422
417
|
}
|
|
423
418
|
this.world.remove(npc.id);
|
|
424
419
|
}
|
|
425
|
-
safeDeleteHandle(handle) {
|
|
426
|
-
try {
|
|
427
|
-
if (this.entityServer.doesExist(handle)) {
|
|
428
|
-
this.pedServer.delete(handle);
|
|
429
|
-
}
|
|
430
|
-
}
|
|
431
|
-
catch (error) {
|
|
432
|
-
coreLogger.warn('Failed to cleanup NPC handle after spawn failure', {
|
|
433
|
-
handle,
|
|
434
|
-
error: error instanceof Error ? error.message : String(error),
|
|
435
|
-
});
|
|
436
|
-
}
|
|
437
|
-
}
|
|
438
|
-
async waitForSpawn(handle, timeoutMs = DEFAULT_SPAWN_TIMEOUT_MS) {
|
|
439
|
-
const startedAt = Date.now();
|
|
440
|
-
while (!this.entityServer.doesExist(handle)) {
|
|
441
|
-
if (Date.now() - startedAt > timeoutMs) {
|
|
442
|
-
return false;
|
|
443
|
-
}
|
|
444
|
-
await sleep(0);
|
|
445
|
-
}
|
|
446
|
-
return true;
|
|
447
|
-
}
|
|
448
420
|
};
|
|
449
421
|
Npcs = __decorate([
|
|
450
422
|
injectable(),
|
|
451
423
|
__param(0, inject(WorldContext)),
|
|
452
424
|
__param(1, inject(IEntityServer)),
|
|
453
|
-
__param(2, inject(
|
|
454
|
-
__param(3, inject(
|
|
455
|
-
__param(4, inject(
|
|
425
|
+
__param(2, inject(INpcLifecycleServer)),
|
|
426
|
+
__param(3, inject(IPedServer)),
|
|
427
|
+
__param(4, inject(IHasher)),
|
|
428
|
+
__param(5, inject(EventsAPI)),
|
|
456
429
|
__metadata("design:paramtypes", [WorldContext,
|
|
457
430
|
IEntityServer,
|
|
431
|
+
INpcLifecycleServer,
|
|
458
432
|
IPedServer,
|
|
459
433
|
IHasher,
|
|
460
434
|
EventsAPI])
|
|
461
435
|
], Npcs);
|
|
462
436
|
export { Npcs };
|
|
463
|
-
function sleep(ms) {
|
|
464
|
-
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
465
|
-
}
|
|
@@ -4,6 +4,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
+
import { performance } from 'node:perf_hooks';
|
|
7
8
|
import { injectable } from 'tsyringe';
|
|
8
9
|
import { v4 as uuid } from 'uuid';
|
|
9
10
|
import { WorkerPool } from '../services/parallel/worker-pool';
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { EventsAPI } from '../../../adapters/contracts/transport/events.api';
|
|
1
2
|
import { VehicleModificationOptions, VehicleMods } from '../types/vehicle.types';
|
|
2
3
|
import { Vehicles } from './vehicles.api';
|
|
3
4
|
/**
|
|
@@ -14,7 +15,8 @@ import { Vehicles } from './vehicles.api';
|
|
|
14
15
|
*/
|
|
15
16
|
export declare class VehicleModification {
|
|
16
17
|
private readonly vehicleService;
|
|
17
|
-
|
|
18
|
+
private readonly events;
|
|
19
|
+
constructor(vehicleService: Vehicles, events: EventsAPI<'server'>);
|
|
18
20
|
/**
|
|
19
21
|
* Applies modifications to a vehicle with validation.
|
|
20
22
|
*
|
|
@@ -10,8 +10,11 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
11
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
12
|
};
|
|
13
|
-
import { inject
|
|
13
|
+
import { inject } from 'tsyringe';
|
|
14
|
+
import { EventsAPI } from '../../../adapters/contracts/transport/events.api';
|
|
14
15
|
import { coreLogger } from '../../../kernel/logger';
|
|
16
|
+
import { SYSTEM_EVENTS } from '../../shared/types/system-types';
|
|
17
|
+
import { Bind } from '../decorators/bind';
|
|
15
18
|
import { Vehicles } from './vehicles.api';
|
|
16
19
|
/**
|
|
17
20
|
* Service for handling vehicle modifications with validation.
|
|
@@ -27,8 +30,10 @@ import { Vehicles } from './vehicles.api';
|
|
|
27
30
|
*/
|
|
28
31
|
let VehicleModification = class VehicleModification {
|
|
29
32
|
vehicleService;
|
|
30
|
-
|
|
33
|
+
events;
|
|
34
|
+
constructor(vehicleService, events) {
|
|
31
35
|
this.vehicleService = vehicleService;
|
|
36
|
+
this.events = events;
|
|
32
37
|
}
|
|
33
38
|
/**
|
|
34
39
|
* Applies modifications to a vehicle with validation.
|
|
@@ -70,7 +75,7 @@ let VehicleModification = class VehicleModification {
|
|
|
70
75
|
requestedBy,
|
|
71
76
|
mods: Object.keys(validatedMods),
|
|
72
77
|
});
|
|
73
|
-
|
|
78
|
+
this.events.emit(SYSTEM_EVENTS.vehicle.modified, 'all', {
|
|
74
79
|
networkId,
|
|
75
80
|
mods: validatedMods,
|
|
76
81
|
});
|
|
@@ -197,7 +202,7 @@ let VehicleModification = class VehicleModification {
|
|
|
197
202
|
windowTint: 0,
|
|
198
203
|
};
|
|
199
204
|
coreLogger.info('Vehicle modifications reset', { networkId, requestedBy });
|
|
200
|
-
|
|
205
|
+
this.events.emit(SYSTEM_EVENTS.vehicle.modified, 'all', {
|
|
201
206
|
networkId,
|
|
202
207
|
mods: defaultMods,
|
|
203
208
|
});
|
|
@@ -301,8 +306,10 @@ let VehicleModification = class VehicleModification {
|
|
|
301
306
|
}
|
|
302
307
|
};
|
|
303
308
|
VehicleModification = __decorate([
|
|
304
|
-
|
|
309
|
+
Bind('singleton'),
|
|
305
310
|
__param(0, inject(Vehicles)),
|
|
306
|
-
|
|
311
|
+
__param(1, inject(EventsAPI)),
|
|
312
|
+
__metadata("design:paramtypes", [Vehicles,
|
|
313
|
+
EventsAPI])
|
|
307
314
|
], VehicleModification);
|
|
308
315
|
export { VehicleModification };
|
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
import { IHasher } from '../../../adapters/contracts/IHasher';
|
|
2
|
-
import { IPlatformCapabilities } from '../../../adapters/contracts/IPlatformCapabilities';
|
|
3
2
|
import { EventsAPI } from '../../../adapters/contracts/transport/events.api';
|
|
4
3
|
import { IEntityServer } from '../../../adapters/contracts/server/IEntityServer';
|
|
5
|
-
import {
|
|
4
|
+
import { IVehicleLifecycleServer } from '../../../adapters/contracts/server/vehicle-lifecycle/IVehicleLifecycleServer';
|
|
6
5
|
import { IVehicleServer } from '../../../adapters/contracts/server/IVehicleServer';
|
|
6
|
+
import { Vector3 } from '../../../kernel/utils/vector3';
|
|
7
|
+
import { Player } from '../entities/player';
|
|
7
8
|
import { Vehicle } from '../entities/vehicle';
|
|
8
9
|
import { SerializedVehicleData, VehicleCreateOptions, VehicleSpawnResult } from '../types/vehicle.types';
|
|
9
10
|
import { Players } from '../ports/players.api-port';
|
|
11
|
+
export interface VehicleCreateForPlayerOptions extends Omit<VehicleCreateOptions, 'position' | 'ownership'> {
|
|
12
|
+
offset?: Vector3;
|
|
13
|
+
seatIndex?: number;
|
|
14
|
+
}
|
|
10
15
|
/**
|
|
11
16
|
* Server-side service for managing vehicle entities.
|
|
12
17
|
*
|
|
@@ -24,9 +29,8 @@ export declare class Vehicles {
|
|
|
24
29
|
private readonly playerDirectory;
|
|
25
30
|
private readonly entityServer;
|
|
26
31
|
private readonly vehicleServer;
|
|
27
|
-
private readonly
|
|
32
|
+
private readonly vehicleLifecycle;
|
|
28
33
|
private readonly hasher;
|
|
29
|
-
private readonly playerServer;
|
|
30
34
|
private readonly events;
|
|
31
35
|
/**
|
|
32
36
|
* Internal registry of all managed vehicles indexed by Network ID
|
|
@@ -36,7 +40,7 @@ export declare class Vehicles {
|
|
|
36
40
|
* Cached adapters bundle for Vehicle instances
|
|
37
41
|
*/
|
|
38
42
|
private readonly vehicleAdapters;
|
|
39
|
-
constructor(playerDirectory: Players, entityServer: IEntityServer, vehicleServer: IVehicleServer,
|
|
43
|
+
constructor(playerDirectory: Players, entityServer: IEntityServer, vehicleServer: IVehicleServer, vehicleLifecycle: IVehicleLifecycleServer, hasher: IHasher, events: EventsAPI<'server'>);
|
|
40
44
|
/**
|
|
41
45
|
* Creates a new vehicle on the server.
|
|
42
46
|
*
|
|
@@ -54,7 +58,9 @@ export declare class Vehicles {
|
|
|
54
58
|
* @param options - Vehicle creation options
|
|
55
59
|
* @returns Spawn result
|
|
56
60
|
*/
|
|
57
|
-
createForPlayer(
|
|
61
|
+
createForPlayer(playerOrClientID: Player | number, options: VehicleCreateForPlayerOptions): Promise<VehicleSpawnResult>;
|
|
62
|
+
private resolvePlayer;
|
|
63
|
+
private getSpawnPositionForPlayer;
|
|
58
64
|
/**
|
|
59
65
|
* Retrieves a vehicle by its Network ID.
|
|
60
66
|
*
|
|
@@ -10,16 +10,18 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
11
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
12
|
};
|
|
13
|
-
import { inject
|
|
13
|
+
import { inject } from 'tsyringe';
|
|
14
14
|
import { IHasher } from '../../../adapters/contracts/IHasher';
|
|
15
|
-
import { IPlatformCapabilities, PlatformFeatures, } from '../../../adapters/contracts/IPlatformCapabilities';
|
|
16
15
|
import { EventsAPI } from '../../../adapters/contracts/transport/events.api';
|
|
17
16
|
import { IEntityServer } from '../../../adapters/contracts/server/IEntityServer';
|
|
18
|
-
import {
|
|
17
|
+
import { IVehicleLifecycleServer } from '../../../adapters/contracts/server/vehicle-lifecycle/IVehicleLifecycleServer';
|
|
19
18
|
import { IVehicleServer } from '../../../adapters/contracts/server/IVehicleServer';
|
|
20
19
|
import { coreLogger } from '../../../kernel/logger';
|
|
20
|
+
import { SYSTEM_EVENTS } from '../../shared/types/system-types';
|
|
21
21
|
import { Vehicle } from '../entities/vehicle';
|
|
22
22
|
import { Players } from '../ports/players.api-port';
|
|
23
|
+
import { Bind } from '../decorators/bind';
|
|
24
|
+
const DEFAULT_PLAYER_VEHICLE_OFFSET = { x: 0, y: 3, z: 0 };
|
|
23
25
|
/**
|
|
24
26
|
* Server-side service for managing vehicle entities.
|
|
25
27
|
*
|
|
@@ -37,9 +39,8 @@ let Vehicles = class Vehicles {
|
|
|
37
39
|
playerDirectory;
|
|
38
40
|
entityServer;
|
|
39
41
|
vehicleServer;
|
|
40
|
-
|
|
42
|
+
vehicleLifecycle;
|
|
41
43
|
hasher;
|
|
42
|
-
playerServer;
|
|
43
44
|
events;
|
|
44
45
|
/**
|
|
45
46
|
* Internal registry of all managed vehicles indexed by Network ID
|
|
@@ -49,13 +50,12 @@ let Vehicles = class Vehicles {
|
|
|
49
50
|
* Cached adapters bundle for Vehicle instances
|
|
50
51
|
*/
|
|
51
52
|
vehicleAdapters;
|
|
52
|
-
constructor(playerDirectory, entityServer, vehicleServer,
|
|
53
|
+
constructor(playerDirectory, entityServer, vehicleServer, vehicleLifecycle, hasher, events) {
|
|
53
54
|
this.playerDirectory = playerDirectory;
|
|
54
55
|
this.entityServer = entityServer;
|
|
55
56
|
this.vehicleServer = vehicleServer;
|
|
56
|
-
this.
|
|
57
|
+
this.vehicleLifecycle = vehicleLifecycle;
|
|
57
58
|
this.hasher = hasher;
|
|
58
|
-
this.playerServer = playerServer;
|
|
59
59
|
this.events = events;
|
|
60
60
|
this.vehicleAdapters = {
|
|
61
61
|
entityServer: this.entityServer,
|
|
@@ -75,20 +75,13 @@ let Vehicles = class Vehicles {
|
|
|
75
75
|
try {
|
|
76
76
|
const { model, position, heading = 0, plate, primaryColor, secondaryColor, mods, persistent = false, ownership, metadata, routingBucket = 0, locked = false, fuel = 100.0, } = options;
|
|
77
77
|
const modelHash = typeof model === 'string' ? this.hasher.getHashKey(model) : model;
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
success: false,
|
|
86
|
-
error: `Server vehicle creation is disabled for profile '${profile}'`,
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
const vehicleType = this.platformCapabilities.getConfig('defaultVehicleType') ?? 'automobile';
|
|
90
|
-
const handle = this.vehicleServer.createServerSetter(modelHash, vehicleType, position.x, position.y, position.z, heading);
|
|
91
|
-
if (!handle || handle === 0) {
|
|
78
|
+
const { handle, networkId } = await this.vehicleLifecycle.create({
|
|
79
|
+
model: typeof model === 'string' ? model : String(model),
|
|
80
|
+
modelHash,
|
|
81
|
+
position,
|
|
82
|
+
heading,
|
|
83
|
+
});
|
|
84
|
+
if (!Number.isFinite(handle) || handle < 0) {
|
|
92
85
|
coreLogger.error('Failed to create vehicle', { model, position });
|
|
93
86
|
return {
|
|
94
87
|
networkId: 0,
|
|
@@ -100,7 +93,6 @@ let Vehicles = class Vehicles {
|
|
|
100
93
|
while (!this.entityServer.doesExist(handle)) {
|
|
101
94
|
await new Promise((resolve) => setTimeout(resolve, 0));
|
|
102
95
|
}
|
|
103
|
-
const networkId = this.vehicleServer.getNetworkIdFromEntity(handle);
|
|
104
96
|
const vehicleOwnership = {
|
|
105
97
|
clientID: ownership?.clientID,
|
|
106
98
|
accountID: ownership?.accountID,
|
|
@@ -129,14 +121,18 @@ let Vehicles = class Vehicles {
|
|
|
129
121
|
vehicle.setRoutingBucket(routingBucket);
|
|
130
122
|
}
|
|
131
123
|
this.vehiclesByNetworkId.set(networkId, vehicle);
|
|
124
|
+
let ownershipComp = vehicleOwnership.type;
|
|
125
|
+
if (vehicleOwnership.type === 'player') {
|
|
126
|
+
ownershipComp = `${vehicleOwnership.type}:${ownership?.clientID}`;
|
|
127
|
+
}
|
|
132
128
|
coreLogger.info('Vehicle created', {
|
|
133
129
|
networkId,
|
|
134
130
|
model,
|
|
135
|
-
ownership:
|
|
131
|
+
ownership: ownershipComp,
|
|
136
132
|
persistent,
|
|
137
133
|
totalVehicles: this.vehiclesByNetworkId.size,
|
|
138
134
|
});
|
|
139
|
-
this.events.emit(
|
|
135
|
+
this.events.emit(SYSTEM_EVENTS.vehicle.created, 'all', vehicle.serialize());
|
|
140
136
|
return {
|
|
141
137
|
networkId,
|
|
142
138
|
handle,
|
|
@@ -163,8 +159,8 @@ let Vehicles = class Vehicles {
|
|
|
163
159
|
* @param options - Vehicle creation options
|
|
164
160
|
* @returns Spawn result
|
|
165
161
|
*/
|
|
166
|
-
async createForPlayer(
|
|
167
|
-
const player = this.
|
|
162
|
+
async createForPlayer(playerOrClientID, options) {
|
|
163
|
+
const player = this.resolvePlayer(playerOrClientID);
|
|
168
164
|
if (!player) {
|
|
169
165
|
return {
|
|
170
166
|
networkId: 0,
|
|
@@ -174,19 +170,43 @@ let Vehicles = class Vehicles {
|
|
|
174
170
|
};
|
|
175
171
|
}
|
|
176
172
|
const ownership = {
|
|
177
|
-
clientID,
|
|
173
|
+
clientID: player.clientID,
|
|
178
174
|
accountID: player.accountID,
|
|
179
175
|
type: 'player',
|
|
180
176
|
};
|
|
177
|
+
const spawnPosition = this.getSpawnPositionForPlayer(player, options.offset);
|
|
178
|
+
const spawnHeading = options.heading ?? player.getHeading();
|
|
181
179
|
const result = await this.create({
|
|
182
180
|
...options,
|
|
181
|
+
position: spawnPosition,
|
|
182
|
+
heading: spawnHeading,
|
|
183
|
+
plate: ownership.type === 'player' ? player.name : 'anom',
|
|
183
184
|
ownership,
|
|
184
185
|
});
|
|
185
186
|
if (result.success) {
|
|
186
|
-
|
|
187
|
+
const seatIndex = options.seatIndex ?? -1;
|
|
188
|
+
await Promise.resolve(this.vehicleLifecycle.warpPlayerIntoVehicle({
|
|
189
|
+
playerSrc: player.clientID.toString(),
|
|
190
|
+
networkId: result.networkId,
|
|
191
|
+
seatIndex,
|
|
192
|
+
}));
|
|
187
193
|
}
|
|
188
194
|
return result;
|
|
189
195
|
}
|
|
196
|
+
resolvePlayer(playerOrClientID) {
|
|
197
|
+
return typeof playerOrClientID === 'number'
|
|
198
|
+
? this.playerDirectory.getByClient(playerOrClientID)
|
|
199
|
+
: playerOrClientID;
|
|
200
|
+
}
|
|
201
|
+
getSpawnPositionForPlayer(player, offset = DEFAULT_PLAYER_VEHICLE_OFFSET) {
|
|
202
|
+
const position = player.getPosition();
|
|
203
|
+
const headingRadians = (player.getHeading() * Math.PI) / 180;
|
|
204
|
+
return {
|
|
205
|
+
x: position.x + Math.sin(headingRadians) * offset.y + Math.cos(headingRadians) * offset.x,
|
|
206
|
+
y: position.y + Math.cos(headingRadians) * offset.y - Math.sin(headingRadians) * offset.x,
|
|
207
|
+
z: position.z + offset.z,
|
|
208
|
+
};
|
|
209
|
+
}
|
|
190
210
|
/**
|
|
191
211
|
* Retrieves a vehicle by its Network ID.
|
|
192
212
|
*
|
|
@@ -272,7 +292,7 @@ let Vehicles = class Vehicles {
|
|
|
272
292
|
networkId,
|
|
273
293
|
totalVehicles: this.vehiclesByNetworkId.size,
|
|
274
294
|
});
|
|
275
|
-
this.events.emit(
|
|
295
|
+
this.events.emit(SYSTEM_EVENTS.vehicle.deleted, 'all', networkId);
|
|
276
296
|
return true;
|
|
277
297
|
}
|
|
278
298
|
/**
|
|
@@ -318,10 +338,7 @@ let Vehicles = class Vehicles {
|
|
|
318
338
|
const player = this.playerDirectory.getByClient(clientID);
|
|
319
339
|
if (!player)
|
|
320
340
|
return false;
|
|
321
|
-
const
|
|
322
|
-
if (!playerPed || playerPed === 0)
|
|
323
|
-
return false;
|
|
324
|
-
const playerPos = this.entityServer.getCoords(playerPed);
|
|
341
|
+
const playerPos = player.getPosition();
|
|
325
342
|
const vehiclePos = vehicle.position;
|
|
326
343
|
const distance = Math.sqrt((playerPos.x - vehiclePos.x) ** 2 +
|
|
327
344
|
(playerPos.y - vehiclePos.y) ** 2 +
|
|
@@ -367,20 +384,18 @@ let Vehicles = class Vehicles {
|
|
|
367
384
|
}
|
|
368
385
|
};
|
|
369
386
|
Vehicles = __decorate([
|
|
370
|
-
|
|
387
|
+
Bind('singleton'),
|
|
371
388
|
__param(0, inject(Players)),
|
|
372
389
|
__param(1, inject(IEntityServer)),
|
|
373
390
|
__param(2, inject(IVehicleServer)),
|
|
374
|
-
__param(3, inject(
|
|
391
|
+
__param(3, inject(IVehicleLifecycleServer)),
|
|
375
392
|
__param(4, inject(IHasher)),
|
|
376
|
-
__param(5, inject(
|
|
377
|
-
__param(6, inject(EventsAPI)),
|
|
393
|
+
__param(5, inject(EventsAPI)),
|
|
378
394
|
__metadata("design:paramtypes", [Players,
|
|
379
395
|
IEntityServer,
|
|
380
396
|
IVehicleServer,
|
|
381
|
-
|
|
397
|
+
IVehicleLifecycleServer,
|
|
382
398
|
IHasher,
|
|
383
|
-
IPlayerServer,
|
|
384
399
|
EventsAPI])
|
|
385
400
|
], Vehicles);
|
|
386
401
|
export { Vehicles };
|