@open-core/framework 0.1.0-alpha.1 → 0.2.0-beta.1
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/README.md +217 -360
- package/dist/adapters/contracts/IEngineEvents.d.ts +20 -0
- package/dist/adapters/contracts/IEngineEvents.js +6 -0
- package/dist/adapters/contracts/IEntityServer.d.ts +88 -0
- package/dist/adapters/contracts/IEntityServer.js +13 -0
- package/dist/adapters/contracts/IExports.d.ts +4 -0
- package/dist/adapters/contracts/IExports.js +6 -0
- package/dist/adapters/contracts/IHasher.d.ts +15 -0
- package/dist/adapters/contracts/IHasher.js +12 -0
- package/dist/adapters/contracts/INetTransport.d.ts +8 -0
- package/dist/adapters/contracts/INetTransport.js +6 -0
- package/dist/adapters/contracts/IPedAppearanceClient.d.ts +206 -0
- package/dist/adapters/contracts/IPedAppearanceClient.js +16 -0
- package/dist/adapters/contracts/IPedAppearanceServer.d.ts +45 -0
- package/dist/adapters/contracts/IPedAppearanceServer.js +16 -0
- package/dist/adapters/contracts/IPlayerInfo.d.ts +5 -0
- package/dist/adapters/contracts/IPlayerInfo.js +6 -0
- package/dist/adapters/contracts/IPlayerServer.d.ts +73 -0
- package/dist/adapters/contracts/IPlayerServer.js +13 -0
- package/dist/adapters/contracts/IResourceInfo.d.ts +3 -0
- package/dist/adapters/contracts/IResourceInfo.js +6 -0
- package/dist/adapters/contracts/ITick.d.ts +10 -0
- package/dist/adapters/contracts/ITick.js +9 -0
- package/dist/adapters/contracts/IVehicleServer.d.ts +55 -0
- package/dist/adapters/contracts/IVehicleServer.js +13 -0
- package/dist/{server/database/adapters → adapters/database}/oxmysql.adapter.d.ts +2 -2
- package/dist/{server/database/adapters → adapters/database}/oxmysql.adapter.js +2 -2
- package/dist/adapters/database/resource.adapter.d.ts +12 -0
- package/dist/adapters/database/resource.adapter.js +68 -0
- package/dist/adapters/fivem/fivem-engine-events.d.ts +5 -0
- package/dist/adapters/fivem/fivem-engine-events.js +13 -0
- package/dist/adapters/fivem/fivem-entity-server.d.ts +22 -0
- package/dist/adapters/fivem/fivem-entity-server.js +80 -0
- package/dist/adapters/fivem/fivem-exports.d.ts +5 -0
- package/dist/adapters/fivem/fivem-exports.js +14 -0
- package/dist/adapters/fivem/fivem-hasher.d.ts +7 -0
- package/dist/adapters/fivem/fivem-hasher.js +23 -0
- package/dist/adapters/fivem/fivem-net-transport.d.ts +5 -0
- package/dist/adapters/fivem/fivem-net-transport.js +24 -0
- package/dist/adapters/fivem/fivem-ped-appearance-client.d.ts +34 -0
- package/dist/adapters/fivem/fivem-ped-appearance-client.js +84 -0
- package/dist/adapters/fivem/fivem-ped-appearance-server.d.ts +14 -0
- package/dist/adapters/fivem/fivem-ped-appearance-server.js +26 -0
- package/dist/adapters/fivem/fivem-player-server.d.ts +15 -0
- package/dist/adapters/fivem/fivem-player-server.js +63 -0
- package/dist/adapters/fivem/fivem-playerinfo.d.ts +6 -0
- package/dist/adapters/fivem/fivem-playerinfo.js +14 -0
- package/dist/adapters/fivem/fivem-resourceinfo.d.ts +4 -0
- package/dist/adapters/fivem/fivem-resourceinfo.js +16 -0
- package/dist/adapters/fivem/fivem-tick.d.ts +7 -0
- package/dist/adapters/fivem/fivem-tick.js +22 -0
- package/dist/adapters/fivem/fivem-vehicle-server.d.ts +15 -0
- package/dist/adapters/fivem/fivem-vehicle-server.js +47 -0
- package/dist/adapters/index.d.ts +15 -0
- package/dist/adapters/index.js +40 -0
- package/dist/adapters/node/index.d.ts +8 -0
- package/dist/adapters/node/index.js +19 -0
- package/dist/adapters/node/node-engine-events.d.ts +20 -0
- package/dist/adapters/node/node-engine-events.js +42 -0
- package/dist/adapters/node/node-entity-server.d.ts +26 -0
- package/dist/adapters/node/node-entity-server.js +101 -0
- package/dist/adapters/node/node-exports.d.ts +26 -0
- package/dist/adapters/node/node-exports.js +63 -0
- package/dist/adapters/node/node-hasher.d.ts +12 -0
- package/dist/adapters/node/node-hasher.js +39 -0
- package/dist/adapters/node/node-net-transport.d.ts +18 -0
- package/dist/adapters/node/node-net-transport.js +57 -0
- package/dist/adapters/node/node-ped-appearance-client.d.ts +34 -0
- package/dist/adapters/node/node-ped-appearance-client.js +59 -0
- package/dist/adapters/node/node-ped-appearance-server.d.ts +14 -0
- package/dist/adapters/node/node-ped-appearance-server.js +18 -0
- package/dist/adapters/node/node-player-server.d.ts +27 -0
- package/dist/adapters/node/node-player-server.js +82 -0
- package/dist/adapters/node/node-playerinfo.d.ts +6 -0
- package/dist/adapters/node/node-playerinfo.js +12 -0
- package/dist/adapters/node/node-resourceinfo.d.ts +12 -0
- package/dist/adapters/node/node-resourceinfo.js +27 -0
- package/dist/adapters/node/node-tick.d.ts +10 -0
- package/dist/{server/system/processors/command.processor.js → adapters/node/node-tick.js} +27 -14
- package/dist/adapters/node/node-vehicle-server.d.ts +21 -0
- package/dist/adapters/node/node-vehicle-server.js +93 -0
- package/dist/adapters/register-capabilities.d.ts +11 -0
- package/dist/adapters/register-capabilities.js +148 -0
- package/dist/adapters/register-client-capabilities.d.ts +8 -0
- package/dist/adapters/register-client-capabilities.js +56 -0
- package/dist/index.d.ts +5 -4
- package/dist/index.js +9 -5
- package/dist/kernel/di/index.d.ts +4 -0
- package/dist/kernel/di/index.js +20 -0
- package/dist/{system → kernel/di}/metadata.scanner.d.ts +1 -2
- package/dist/kernel/di/tokens.d.ts +30 -0
- package/dist/kernel/di/tokens.js +38 -0
- package/dist/kernel/index.d.ts +7 -0
- package/dist/kernel/index.js +30 -0
- package/dist/kernel/schema/index.d.ts +32 -0
- package/dist/kernel/schema/index.js +5 -0
- package/dist/kernel/shared/appearance/appearance.interface.d.ts +276 -0
- package/dist/kernel/shared/appearance/appearance.interface.js +77 -0
- package/dist/kernel/shared/appearance/index.d.ts +1 -0
- package/dist/kernel/shared/appearance/index.js +17 -0
- package/dist/kernel/shared/index.d.ts +2 -0
- package/dist/{shared → kernel/shared}/index.js +1 -0
- package/dist/{shared → kernel/shared}/logger/core-logger.d.ts +13 -0
- package/dist/{shared → kernel/shared}/logger/core-logger.js +38 -9
- package/dist/{shared → kernel/shared}/logger/index.d.ts +12 -9
- package/dist/{shared → kernel/shared}/logger/index.js +24 -15
- package/dist/{shared → kernel/shared}/logger/logger.config.d.ts +1 -1
- package/dist/kernel/shared/logger/logger.env.d.ts +28 -0
- package/dist/kernel/shared/logger/logger.env.js +51 -0
- package/dist/{shared → kernel/shared}/logger/logger.service.d.ts +2 -2
- package/dist/{shared → kernel/shared}/logger/transports/buffered.transport.d.ts +2 -2
- package/dist/{shared → kernel/shared}/logger/transports/buffered.transport.js +1 -1
- package/dist/{shared → kernel/shared}/logger/transports/console.transport.d.ts +2 -2
- package/dist/{shared → kernel/shared}/logger/transports/console.transport.js +1 -0
- package/dist/kernel/shared/logger/transports/dev-transport.factory.d.ts +75 -0
- package/dist/kernel/shared/logger/transports/dev-transport.factory.js +111 -0
- package/dist/kernel/shared/logger/transports/http.transport.d.ts +67 -0
- package/dist/kernel/shared/logger/transports/http.transport.js +170 -0
- package/dist/kernel/shared/logger/transports/index.d.ts +7 -0
- package/dist/kernel/shared/logger/transports/index.js +34 -0
- package/dist/kernel/shared/logger/transports/simple-console.transport.d.ts +38 -0
- package/dist/kernel/shared/logger/transports/simple-console.transport.js +93 -0
- package/dist/{shared → kernel/shared}/logger/transports/transport.interface.d.ts +1 -1
- package/dist/kernel/shared/logger/transports/websocket.transport.d.ts +69 -0
- package/dist/kernel/shared/logger/transports/websocket.transport.js +169 -0
- package/dist/kernel/utils/error/app.error.d.ts +9 -0
- package/dist/{utils/errors.js → kernel/utils/error/app.error.js} +1 -9
- package/dist/kernel/utils/error/security.error.d.ts +6 -0
- package/dist/kernel/utils/error/security.error.js +12 -0
- package/dist/{utils → kernel/utils}/index.d.ts +3 -2
- package/dist/{utils → kernel/utils}/index.js +3 -2
- package/dist/{utils → kernel/utils}/result.d.ts +1 -1
- package/dist/runtime/client/client-bootstrap.d.ts +7 -0
- package/dist/runtime/client/client-bootstrap.js +180 -0
- package/dist/runtime/client/client-core.d.ts +19 -0
- package/dist/runtime/client/client-core.js +24 -0
- package/dist/runtime/client/client-runtime.d.ts +58 -0
- package/dist/runtime/client/client-runtime.js +32 -0
- package/dist/runtime/client/controllers/appearance.controller.d.ts +8 -0
- package/dist/runtime/client/controllers/appearance.controller.js +50 -0
- package/dist/runtime/client/controllers/player-sync.controller.d.ts +11 -0
- package/dist/runtime/client/controllers/player-sync.controller.js +54 -0
- package/dist/{client → runtime/client}/controllers/spawner.controller.d.ts +1 -1
- package/dist/runtime/client/decorators/controller.d.ts +20 -0
- package/dist/runtime/client/decorators/controller.js +55 -0
- package/dist/runtime/client/decorators/export.d.ts +21 -0
- package/dist/runtime/client/decorators/export.js +29 -0
- package/dist/{client → runtime/client}/decorators/gameEvent.d.ts +2 -2
- package/dist/runtime/client/decorators/interval.d.ts +23 -0
- package/dist/runtime/client/decorators/interval.js +31 -0
- package/dist/runtime/client/decorators/key.d.ts +23 -0
- package/dist/runtime/client/decorators/key.js +31 -0
- package/dist/runtime/client/decorators/localEvent.d.ts +21 -0
- package/dist/runtime/client/decorators/localEvent.js +29 -0
- package/dist/runtime/client/decorators/nui.d.ts +21 -0
- package/dist/runtime/client/decorators/nui.js +29 -0
- package/dist/runtime/client/decorators/onNet.d.ts +21 -0
- package/dist/runtime/client/decorators/onNet.js +29 -0
- package/dist/runtime/client/decorators/resourceLifecycle.d.ts +40 -0
- package/dist/runtime/client/decorators/resourceLifecycle.js +53 -0
- package/dist/runtime/client/decorators/tick.d.ts +21 -0
- package/dist/runtime/client/decorators/tick.js +29 -0
- package/dist/{client → runtime/client}/index.d.ts +2 -2
- package/dist/{client → runtime/client}/index.js +4 -2
- package/dist/runtime/client/interfaces/appearance.interface.d.ts +25 -0
- package/dist/runtime/client/interfaces/appearance.interface.js +2 -0
- package/dist/{client → runtime/client}/player/player.d.ts +1 -1
- package/dist/{client → runtime/client}/player/player.js +5 -6
- package/dist/{client → runtime/client}/player/player.loader.js +2 -2
- package/dist/runtime/client/services/appearance.service.d.ts +132 -0
- package/dist/runtime/client/services/appearance.service.js +328 -0
- package/dist/{client → runtime/client}/services/blip.service.d.ts +1 -1
- package/dist/{client → runtime/client}/services/index.d.ts +6 -5
- package/dist/{client → runtime/client}/services/index.js +6 -5
- package/dist/{client → runtime/client}/services/marker.service.d.ts +1 -1
- package/dist/{client → runtime/client}/services/ped.service.d.ts +1 -1
- package/dist/{client → runtime/client}/services/ped.service.js +3 -2
- package/dist/{client → runtime/client}/services/spawn.service.d.ts +2 -2
- package/dist/{client → runtime/client}/services/spawn.service.js +4 -8
- package/dist/{client → runtime/client}/services/textui.service.d.ts +1 -1
- package/dist/runtime/client/services/vehicle-client.service.d.ts +180 -0
- package/dist/runtime/client/services/vehicle-client.service.js +485 -0
- package/dist/{client → runtime/client}/services/vehicle.service.d.ts +2 -2
- package/dist/{client → runtime/client}/services/vehicle.service.js +1 -1
- package/dist/{client → runtime/client}/system/processors/export.processor.d.ts +1 -1
- package/dist/{client → runtime/client}/system/processors/export.processor.js +1 -1
- package/dist/{client → runtime/client}/system/processors/gameEvent.processor.d.ts +1 -1
- package/dist/{client → runtime/client}/system/processors/gameEvent.processor.js +2 -2
- package/dist/{client → runtime/client}/system/processors/interval.processor.d.ts +1 -1
- package/dist/{client → runtime/client}/system/processors/interval.processor.js +1 -1
- package/dist/{client → runtime/client}/system/processors/key.processor.d.ts +1 -1
- package/dist/{client → runtime/client}/system/processors/localEvent.processor.d.ts +1 -1
- package/dist/{client → runtime/client}/system/processors/localEvent.processor.js +1 -1
- package/dist/{client → runtime/client}/system/processors/netEvent.processor.d.ts +1 -1
- package/dist/{client → runtime/client}/system/processors/netEvent.processor.js +1 -1
- package/dist/{client → runtime/client}/system/processors/nui.processor.d.ts +1 -1
- package/dist/{client → runtime/client}/system/processors/nui.processor.js +1 -1
- package/dist/{client → runtime/client}/system/processors/resourceLifecycle.processor.d.ts +1 -1
- package/dist/{client → runtime/client}/system/processors/resourceLifecycle.processor.js +1 -1
- package/dist/{client → runtime/client}/system/processors/tick.processor.d.ts +1 -1
- package/dist/{client → runtime/client}/system/processors/tick.processor.js +1 -1
- package/dist/{client → runtime/client}/types/game-events.js +0 -8
- package/dist/{client → runtime/client}/ui-bridge.js +1 -1
- package/dist/runtime/index.d.ts +2 -0
- package/dist/runtime/index.js +39 -0
- package/dist/{server → runtime/server}/bootstrap.d.ts +2 -1
- package/dist/runtime/server/bootstrap.js +234 -0
- package/dist/runtime/server/bootstrap.validation.d.ts +12 -0
- package/dist/runtime/server/bootstrap.validation.js +102 -0
- package/dist/runtime/server/bus/core-event-bus.d.ts +6 -0
- package/dist/{server → runtime/server}/bus/core-event-bus.js +5 -5
- package/dist/{server → runtime/server}/configs/api.config.d.ts +1 -1
- package/dist/{server/templates/auth → runtime/server/contracts}/auth-provider.contract.d.ts +2 -2
- package/dist/runtime/server/contracts/index.d.ts +7 -0
- package/dist/{server/templates → runtime/server/contracts}/index.js +8 -4
- package/dist/{server/templates/persistence → runtime/server/contracts}/player-persistence.contract.d.ts +1 -1
- package/dist/{server/templates → runtime/server/contracts}/repository/index.d.ts +2 -2
- package/dist/{server/templates → runtime/server/contracts}/repository/index.js +1 -1
- package/dist/{server/templates → runtime/server/contracts}/repository/repository.contract.d.ts +2 -2
- package/dist/{server/templates → runtime/server/contracts}/repository/repository.contract.js +0 -1
- package/dist/runtime/server/contracts/security/net-event-security-observer.contract.d.ts +15 -0
- package/dist/runtime/server/contracts/security/net-event-security-observer.contract.js +6 -0
- package/dist/{server/templates → runtime/server/contracts}/security/principal-provider.contract.d.ts +3 -3
- package/dist/{server/templates → runtime/server/contracts}/security/security-handler.contract.d.ts +2 -2
- package/dist/runtime/server/controllers/chat.controller.d.ts +11 -0
- package/dist/{server → runtime/server}/controllers/chat.controller.js +23 -11
- package/dist/runtime/server/controllers/command-export.controller.d.ts +74 -0
- package/dist/runtime/server/controllers/command-export.controller.js +260 -0
- package/dist/runtime/server/controllers/command.controller.d.ts +15 -0
- package/dist/runtime/server/controllers/command.controller.js +100 -0
- package/dist/runtime/server/controllers/player-export.controller.d.ts +29 -0
- package/dist/runtime/server/controllers/player-export.controller.js +173 -0
- package/dist/runtime/server/controllers/principal-export.controller.d.ts +79 -0
- package/dist/runtime/server/controllers/principal-export.controller.js +296 -0
- package/dist/runtime/server/controllers/remote-command-execution.controller.d.ts +43 -0
- package/dist/runtime/server/controllers/remote-command-execution.controller.js +104 -0
- package/dist/runtime/server/controllers/session.controller.d.ts +11 -0
- package/dist/{server → runtime/server}/controllers/session.controller.js +15 -12
- package/dist/runtime/server/controllers/vehicle.controller.d.ts +55 -0
- package/dist/runtime/server/controllers/vehicle.controller.js +216 -0
- package/dist/runtime/server/core.d.ts +3 -0
- package/dist/runtime/server/core.js +11 -0
- package/dist/runtime/server/database/adapter.registry.d.ts +4 -0
- package/dist/runtime/server/database/adapter.registry.js +14 -0
- package/dist/{server → runtime/server}/database/database.contract.d.ts +1 -1
- package/dist/{server → runtime/server}/database/database.service.d.ts +3 -31
- package/dist/{server → runtime/server}/database/database.service.js +36 -50
- package/dist/runtime/server/database/index.d.ts +5 -0
- package/dist/runtime/server/database/index.js +25 -0
- package/dist/runtime/server/decorators/bind.d.ts +21 -0
- package/dist/runtime/server/decorators/bind.js +31 -0
- package/dist/runtime/server/decorators/command.d.ts +81 -0
- package/dist/runtime/server/decorators/command.js +32 -0
- package/dist/{server → runtime/server}/decorators/controller.d.ts +4 -3
- package/dist/runtime/server/decorators/controller.js +61 -0
- package/dist/runtime/server/decorators/export.d.ts +24 -0
- package/dist/runtime/server/decorators/export.js +32 -0
- package/dist/runtime/server/decorators/guard.d.ts +49 -0
- package/dist/{server → runtime/server}/decorators/guard.js +33 -32
- package/dist/{server → runtime/server}/decorators/index.d.ts +7 -4
- package/dist/{server → runtime/server}/decorators/index.js +8 -5
- package/dist/runtime/server/decorators/onFiveMEvent.d.ts +24 -0
- package/dist/runtime/server/decorators/onFiveMEvent.js +32 -0
- package/dist/runtime/server/decorators/onFrameworkEvent.d.ts +22 -0
- package/dist/{server → runtime/server}/decorators/onFrameworkEvent.js +9 -9
- package/dist/runtime/server/decorators/onNet.d.ts +62 -0
- package/dist/runtime/server/decorators/onNet.js +15 -0
- package/dist/runtime/server/decorators/onTick.d.ts +21 -0
- package/dist/runtime/server/decorators/onTick.js +29 -0
- package/dist/runtime/server/decorators/public.d.ts +26 -0
- package/dist/{server → runtime/server}/decorators/public.js +15 -16
- package/dist/{server → runtime/server}/decorators/requiresState.d.ts +29 -22
- package/dist/runtime/server/decorators/requiresState.js +73 -0
- package/dist/runtime/server/decorators/throttle.d.ts +56 -0
- package/dist/{server → runtime/server}/decorators/throttle.js +31 -19
- package/dist/runtime/server/decorators/utils.d.ts +54 -0
- package/dist/runtime/server/decorators/utils.js +60 -0
- package/dist/runtime/server/devmode/contracts/IDevModeBridge.d.ts +36 -0
- package/dist/runtime/server/devmode/contracts/IDevModeBridge.js +12 -0
- package/dist/runtime/server/devmode/contracts/IDevModeInspector.d.ts +52 -0
- package/dist/runtime/server/devmode/contracts/IDevModeInspector.js +12 -0
- package/dist/runtime/server/devmode/contracts/IDevModeInterceptor.d.ts +41 -0
- package/dist/runtime/server/devmode/contracts/IDevModeInterceptor.js +11 -0
- package/dist/runtime/server/devmode/contracts/index.d.ts +3 -0
- package/dist/runtime/server/devmode/contracts/index.js +9 -0
- package/dist/runtime/server/devmode/dev-mode.service.d.ts +110 -0
- package/dist/runtime/server/devmode/dev-mode.service.js +324 -0
- package/dist/runtime/server/devmode/event-interceptor.service.d.ts +80 -0
- package/dist/runtime/server/devmode/event-interceptor.service.js +232 -0
- package/dist/runtime/server/devmode/hot-reload.server.d.ts +74 -0
- package/dist/runtime/server/devmode/hot-reload.server.js +261 -0
- package/dist/runtime/server/devmode/index.d.ts +8 -0
- package/dist/runtime/server/devmode/index.js +32 -0
- package/dist/runtime/server/devmode/player-simulator.service.d.ts +66 -0
- package/dist/runtime/server/devmode/player-simulator.service.js +202 -0
- package/dist/runtime/server/devmode/state-inspector.service.d.ts +57 -0
- package/dist/runtime/server/devmode/state-inspector.service.js +183 -0
- package/dist/runtime/server/devmode/types.d.ts +161 -0
- package/dist/runtime/server/devmode/types.js +28 -0
- package/dist/runtime/server/entities/index.d.ts +2 -0
- package/dist/{server → runtime/server}/entities/index.js +1 -0
- package/dist/{server → runtime/server}/entities/player.d.ts +70 -3
- package/dist/{server → runtime/server}/entities/player.js +92 -14
- package/dist/runtime/server/entities/vehicle.d.ts +160 -0
- package/dist/runtime/server/entities/vehicle.js +261 -0
- package/dist/{server → runtime/server}/error-handler.d.ts +1 -1
- package/dist/{server → runtime/server}/error-handler.js +7 -8
- package/dist/runtime/server/helpers/command-validation.helper.d.ts +6 -0
- package/dist/runtime/server/helpers/command-validation.helper.js +72 -0
- package/dist/runtime/server/helpers/function-helper.d.ts +1 -0
- package/dist/runtime/server/helpers/function-helper.js +15 -0
- package/dist/{server → runtime/server}/helpers/resolve-method.d.ts +1 -1
- package/dist/runtime/server/helpers/resolve-method.js +28 -0
- package/dist/{server → runtime/server}/index.d.ts +8 -6
- package/dist/{server → runtime/server}/index.js +14 -10
- package/dist/runtime/server/runtime.d.ts +408 -0
- package/dist/runtime/server/runtime.js +234 -0
- package/dist/runtime/server/services/access-control.service.d.ts +59 -0
- package/dist/runtime/server/services/access-control.service.js +127 -0
- package/dist/runtime/server/services/appearance.service.d.ts +99 -0
- package/dist/runtime/server/services/appearance.service.js +307 -0
- package/dist/runtime/server/services/chat.service.d.ts +33 -0
- package/dist/{server → runtime/server}/services/chat.service.js +26 -0
- package/dist/{server → runtime/server}/services/config.service.js +1 -1
- package/dist/runtime/server/services/core/command.service.d.ts +49 -0
- package/dist/runtime/server/services/core/command.service.js +112 -0
- package/dist/{server/services → runtime/server/services/core}/player.service.d.ts +48 -22
- package/dist/{server/services → runtime/server/services/core}/player.service.js +98 -14
- package/dist/runtime/server/services/core/principal.service.d.ts +28 -0
- package/dist/runtime/server/services/core/principal.service.js +126 -0
- package/dist/runtime/server/services/core/vehicle-modification.service.d.ts +104 -0
- package/dist/runtime/server/services/core/vehicle-modification.service.js +330 -0
- package/dist/runtime/server/services/core/vehicle.service.d.ts +128 -0
- package/dist/runtime/server/services/core/vehicle.service.js +391 -0
- package/dist/runtime/server/services/default/default-net-event-security-observer.d.ts +15 -0
- package/dist/runtime/server/services/default/default-net-event-security-observer.js +28 -0
- package/dist/runtime/server/services/default/default-security.handler.d.ts +19 -0
- package/dist/{server → runtime/server}/services/default/default-security.handler.js +15 -2
- package/dist/{server → runtime/server}/services/http/http.service.js +5 -5
- package/dist/runtime/server/services/index.d.ts +16 -0
- package/dist/runtime/server/services/index.js +39 -0
- package/dist/{server → runtime/server}/services/parallel/index.d.ts +2 -4
- package/dist/{server → runtime/server}/services/parallel/index.js +13 -15
- package/dist/{server → runtime/server}/services/parallel/parallel-compute.service.d.ts +1 -1
- package/dist/{server → runtime/server}/services/parallel/parallel-compute.service.js +2 -1
- package/dist/{server → runtime/server}/services/parallel/worker-pool.d.ts +1 -1
- package/dist/{server → runtime/server}/services/parallel/worker.d.ts +1 -1
- package/dist/{server → runtime/server}/services/persistence.service.d.ts +1 -1
- package/dist/{server → runtime/server}/services/persistence.service.js +13 -9
- package/dist/runtime/server/services/ports/command-execution.port.d.ts +41 -0
- package/dist/runtime/server/services/ports/command-execution.port.js +15 -0
- package/dist/runtime/server/services/ports/player-directory.port.d.ts +107 -0
- package/dist/runtime/server/services/ports/player-directory.port.js +23 -0
- package/dist/runtime/server/services/ports/player-session-lifecycle.port.d.ts +49 -0
- package/dist/runtime/server/services/ports/player-session-lifecycle.port.js +16 -0
- package/dist/runtime/server/services/ports/principal.port.d.ts +149 -0
- package/dist/runtime/server/services/ports/principal.port.js +32 -0
- package/dist/runtime/server/services/rate-limiter.service.d.ts +23 -0
- package/dist/{server → runtime/server}/services/rate-limiter.service.js +18 -0
- package/dist/runtime/server/services/remote/remote-command.service.d.ts +63 -0
- package/dist/runtime/server/services/remote/remote-command.service.js +139 -0
- package/dist/runtime/server/services/remote/remote-player.service.d.ts +62 -0
- package/dist/runtime/server/services/remote/remote-player.service.js +191 -0
- package/dist/runtime/server/services/remote/remote-principal.provider.d.ts +55 -0
- package/dist/runtime/server/services/remote/remote-principal.provider.js +130 -0
- package/dist/runtime/server/services/remote/remote-principal.service.d.ts +33 -0
- package/dist/runtime/server/services/remote/remote-principal.service.js +99 -0
- package/dist/runtime/server/services/remote/server-bridge.d.ts +34 -0
- package/dist/runtime/server/services/remote/server-bridge.js +94 -0
- package/dist/runtime/server/services/services.register.d.ts +14 -0
- package/dist/runtime/server/services/services.register.js +98 -0
- package/dist/runtime/server/services/types/linked-id.d.ts +6 -0
- package/dist/runtime/server/services/types/player-session.object.d.ts +11 -0
- package/dist/runtime/server/services/vehicle-modification.service.d.ts +94 -0
- package/dist/runtime/server/services/vehicle-modification.service.js +310 -0
- package/dist/runtime/server/services/vehicle.service.d.ts +138 -0
- package/dist/runtime/server/services/vehicle.service.js +361 -0
- package/dist/runtime/server/setup.d.ts +10 -0
- package/dist/runtime/server/setup.js +33 -0
- package/dist/{server → runtime/server}/system/metadata-server.keys.d.ts +2 -0
- package/dist/{server → runtime/server}/system/metadata-server.keys.js +2 -0
- package/dist/runtime/server/system/processors/command.processor.d.ts +16 -0
- package/dist/runtime/server/system/processors/command.processor.js +54 -0
- package/dist/{server → runtime/server}/system/processors/coreEvent.processor.d.ts +1 -1
- package/dist/{server → runtime/server}/system/processors/coreEvent.processor.js +3 -3
- package/dist/runtime/server/system/processors/export.processor.d.ts +10 -0
- package/dist/{server → runtime/server}/system/processors/export.processor.js +15 -5
- package/dist/runtime/server/system/processors/fivemEvent.processor.d.ts +10 -0
- package/dist/{server → runtime/server}/system/processors/fivemEvent.processor.js +15 -5
- package/dist/runtime/server/system/processors/netEvent.processor.d.ts +23 -0
- package/dist/runtime/server/system/processors/netEvent.processor.js +240 -0
- package/dist/runtime/server/system/processors/tick.processor.d.ts +8 -0
- package/dist/{server → runtime/server}/system/processors/tick.processor.js +14 -4
- package/dist/runtime/server/system/processors.register.d.ts +2 -0
- package/dist/runtime/server/system/processors.register.js +37 -0
- package/dist/{server → runtime/server}/system/schema-generator.d.ts +1 -1
- package/dist/{server → runtime/server}/system/schema-generator.js +17 -8
- package/dist/{server/templates/admin → runtime/server/templates}/admin.controller-template.d.ts +1 -1
- package/dist/runtime/server/templates/index.d.ts +1 -0
- package/dist/runtime/server/templates/index.js +17 -0
- package/dist/runtime/server/types/core-exports.d.ts +285 -0
- package/dist/runtime/server/types/core-exports.js +2 -0
- package/dist/runtime/server/types/index.d.ts +4 -0
- package/dist/runtime/server/types/index.js +20 -0
- package/dist/runtime/server/types/security.types.js +2 -0
- package/dist/runtime/server/types/vehicle.types.d.ts +152 -0
- package/dist/runtime/server/types/vehicle.types.js +2 -0
- package/package.json +30 -30
- package/dist/client/client-bootstrap.d.ts +0 -1
- package/dist/client/client-bootstrap.js +0 -50
- package/dist/client/client-core.d.ts +0 -1
- package/dist/client/client-core.js +0 -7
- package/dist/client/decorators/controller.d.ts +0 -3
- package/dist/client/decorators/controller.js +0 -14
- package/dist/client/decorators/export.d.ts +0 -7
- package/dist/client/decorators/export.js +0 -15
- package/dist/client/decorators/interval.d.ts +0 -7
- package/dist/client/decorators/interval.js +0 -15
- package/dist/client/decorators/key.d.ts +0 -2
- package/dist/client/decorators/key.js +0 -10
- package/dist/client/decorators/localEvent.d.ts +0 -7
- package/dist/client/decorators/localEvent.js +0 -15
- package/dist/client/decorators/nui.d.ts +0 -1
- package/dist/client/decorators/nui.js +0 -9
- package/dist/client/decorators/onNet.d.ts +0 -1
- package/dist/client/decorators/onNet.js +0 -9
- package/dist/client/decorators/resourceLifecycle.d.ts +0 -11
- package/dist/client/decorators/resourceLifecycle.js +0 -24
- package/dist/client/decorators/tick.d.ts +0 -1
- package/dist/client/decorators/tick.js +0 -9
- package/dist/client/interfaces/appearance.interface.d.ts +0 -19
- package/dist/client/services/appearance.service.d.ts +0 -6
- package/dist/client/services/appearance.service.js +0 -89
- package/dist/server/bootstrap.js +0 -57
- package/dist/server/bus/core-event-bus.d.ts +0 -6
- package/dist/server/controllers/chat.controller.d.ts +0 -10
- package/dist/server/controllers/command.controller.d.ts +0 -7
- package/dist/server/controllers/command.controller.js +0 -47
- package/dist/server/controllers/session.controller.d.ts +0 -9
- package/dist/server/core.d.ts +0 -1
- package/dist/server/core.js +0 -7
- package/dist/server/database/index.d.ts +0 -53
- package/dist/server/database/index.js +0 -70
- package/dist/server/decorators/bind.d.ts +0 -2
- package/dist/server/decorators/bind.js +0 -15
- package/dist/server/decorators/command.d.ts +0 -49
- package/dist/server/decorators/command.js +0 -23
- package/dist/server/decorators/controller.js +0 -36
- package/dist/server/decorators/export.d.ts +0 -39
- package/dist/server/decorators/export.js +0 -47
- package/dist/server/decorators/guard.d.ts +0 -56
- package/dist/server/decorators/onFiveMEvent.d.ts +0 -6
- package/dist/server/decorators/onFiveMEvent.js +0 -14
- package/dist/server/decorators/onFrameworkEvent.d.ts +0 -22
- package/dist/server/decorators/onNet.d.ts +0 -58
- package/dist/server/decorators/onNet.js +0 -57
- package/dist/server/decorators/onTick.d.ts +0 -32
- package/dist/server/decorators/onTick.js +0 -40
- package/dist/server/decorators/public.d.ts +0 -27
- package/dist/server/decorators/requiresState.js +0 -63
- package/dist/server/decorators/throttle.d.ts +0 -48
- package/dist/server/decorators/utils.d.ts +0 -57
- package/dist/server/decorators/utils.js +0 -63
- package/dist/server/entities/index.d.ts +0 -1
- package/dist/server/helpers/resolve-method.js +0 -18
- package/dist/server/loaders/exports.loader.d.ts +0 -0
- package/dist/server/loaders/exports.loader.js +0 -23
- package/dist/server/loaders/playerSession.loader.d.ts +0 -1
- package/dist/server/loaders/playerSession.loader.js +0 -51
- package/dist/server/services/access-control.service.d.ts +0 -56
- package/dist/server/services/access-control.service.js +0 -99
- package/dist/server/services/chat.service.d.ts +0 -7
- package/dist/server/services/command.service.d.ts +0 -15
- package/dist/server/services/command.service.js +0 -77
- package/dist/server/services/default/default-security.handler.d.ts +0 -6
- package/dist/server/services/index.d.ts +0 -10
- package/dist/server/services/index.js +0 -26
- package/dist/server/services/rate-limiter.service.d.ts +0 -5
- package/dist/server/services/registers.d.ts +0 -1
- package/dist/server/services/registers.js +0 -18
- package/dist/server/setup.d.ts +0 -9
- package/dist/server/setup.js +0 -28
- package/dist/server/system/processors/command.processor.d.ts +0 -9
- package/dist/server/system/processors/export.processor.d.ts +0 -7
- package/dist/server/system/processors/fivemEvent.processor.d.ts +0 -7
- package/dist/server/system/processors/netEvent.processor.d.ts +0 -11
- package/dist/server/system/processors/netEvent.processor.js +0 -103
- package/dist/server/system/processors/tick.processor.d.ts +0 -5
- package/dist/server/system/processors.register.d.ts +0 -1
- package/dist/server/system/processors.register.js +0 -23
- package/dist/server/templates/index.d.ts +0 -8
- package/dist/server/templates/persistence/index.d.ts +0 -30
- package/dist/server/templates/persistence/index.js +0 -34
- package/dist/shared/index.d.ts +0 -1
- package/dist/shared/logger/transports/index.d.ts +0 -3
- package/dist/shared/logger/transports/index.js +0 -19
- package/dist/utils/errors.d.ts +0 -14
- package/dist/{system → kernel/di}/class-constructor.d.ts +0 -0
- package/dist/{system → kernel/di}/class-constructor.js +0 -0
- package/dist/{server → kernel/di}/container.d.ts +0 -0
- package/dist/{server → kernel/di}/container.js +0 -0
- package/dist/{system → kernel/di}/decorator-processor.d.ts +0 -0
- package/dist/{system → kernel/di}/decorator-processor.js +0 -0
- package/dist/{system → kernel/di}/metadata.scanner.js +0 -0
- package/dist/{shared → kernel/shared}/logger/logger.config.js +0 -0
- package/dist/{shared → kernel/shared}/logger/logger.service.js +0 -0
- package/dist/{shared → kernel/shared}/logger/logger.types.d.ts +0 -0
- package/dist/{shared → kernel/shared}/logger/logger.types.js +0 -0
- package/dist/{shared → kernel/shared}/logger/transports/transport.interface.js +0 -0
- package/dist/{utils → kernel/utils}/result.js +0 -0
- package/dist/{utils → kernel/utils}/rgb.d.ts +0 -0
- package/dist/{utils → kernel/utils}/rgb.js +0 -0
- package/dist/{utils → kernel/utils}/vector3.d.ts +0 -0
- package/dist/{utils → kernel/utils}/vector3.js +0 -0
- package/dist/{client → runtime/client}/client-container.d.ts +0 -0
- package/dist/{client → runtime/client}/client-container.js +0 -0
- package/dist/{client → runtime/client}/controllers/spawner.controller.js +0 -0
- package/dist/{client → runtime/client}/decorators/gameEvent.js +0 -0
- package/dist/{client → runtime/client}/decorators/index.d.ts +5 -5
- package/dist/{client → runtime/client}/decorators/index.js +5 -5
- package/dist/{client → runtime/client}/player/player.loader.d.ts +0 -0
- package/dist/{client → runtime/client}/services/blip.service.js +0 -0
- package/dist/{client → runtime/client}/services/marker.service.js +0 -0
- package/dist/{client → runtime/client}/services/notification.service.d.ts +0 -0
- package/dist/{client → runtime/client}/services/notification.service.js +0 -0
- package/dist/{client → runtime/client}/services/progress.service.d.ts +0 -0
- package/dist/{client → runtime/client}/services/progress.service.js +0 -0
- package/dist/{client → runtime/client}/services/streaming.service.d.ts +0 -0
- package/dist/{client → runtime/client}/services/streaming.service.js +0 -0
- package/dist/{client → runtime/client}/services/textui.service.js +0 -0
- package/dist/{client → runtime/client}/system/metadata-client.keys.d.ts +0 -0
- package/dist/{client → runtime/client}/system/metadata-client.keys.js +0 -0
- package/dist/{client → runtime/client}/system/processors/key.processor.js +0 -0
- package/dist/{client → runtime/client}/system/processors.register.d.ts +0 -0
- package/dist/{client → runtime/client}/system/processors.register.js +6 -6
- /package/dist/{client → runtime/client}/types/game-events.d.ts +0 -0
- /package/dist/{client → runtime/client}/types/index.d.ts +0 -0
- /package/dist/{client → runtime/client}/types/index.js +0 -0
- /package/dist/{client → runtime/client}/ui-bridge.d.ts +0 -0
- /package/dist/{server → runtime/server}/configs/api.config.js +0 -0
- /package/dist/{server → runtime/server}/configs/config.base.d.ts +0 -0
- /package/dist/{server → runtime/server}/configs/config.base.js +0 -0
- /package/dist/{server → runtime/server}/configs/index.d.ts +0 -0
- /package/dist/{server → runtime/server}/configs/index.js +0 -0
- /package/dist/{server/templates/auth → runtime/server/contracts}/auth-provider.contract.js +0 -0
- /package/dist/{server/templates/persistence → runtime/server/contracts}/player-persistence.contract.js +0 -0
- /package/dist/{server/templates → runtime/server/contracts}/repository/repository.types.d.ts +0 -0
- /package/dist/{server/templates → runtime/server/contracts}/repository/repository.types.js +0 -0
- /package/dist/{server/templates → runtime/server/contracts}/security/permission.types.d.ts +0 -0
- /package/dist/{server/templates → runtime/server/contracts}/security/permission.types.js +0 -0
- /package/dist/{server/templates → runtime/server/contracts}/security/principal-provider.contract.js +0 -0
- /package/dist/{server/templates → runtime/server/contracts}/security/security-handler.contract.js +0 -0
- /package/dist/{server → runtime/server}/database/database.contract.js +0 -0
- /package/dist/{server → runtime/server}/database/types.d.ts +0 -0
- /package/dist/{server → runtime/server}/database/types.js +0 -0
- /package/dist/{server → runtime/server}/database.d.ts +0 -0
- /package/dist/{server → runtime/server}/database.js +0 -0
- /package/dist/{server → runtime/server}/services/config.service.d.ts +0 -0
- /package/dist/{server → runtime/server}/services/http/http.service.d.ts +0 -0
- /package/dist/{server → runtime/server}/services/parallel/types.d.ts +0 -0
- /package/dist/{server → runtime/server}/services/parallel/types.js +0 -0
- /package/dist/{server → runtime/server}/services/parallel/worker-pool.js +0 -0
- /package/dist/{server → runtime/server}/services/parallel/worker.js +0 -0
- /package/dist/{client/interfaces/appearance.interface.js → runtime/server/services/types/linked-id.js} +0 -0
- /package/dist/{server/templates/admin/admin.controller-template.js → runtime/server/services/types/player-session.object.js} +0 -0
- /package/dist/{server/types/core-events.js → runtime/server/templates/admin.controller-template.js} +0 -0
- /package/dist/{server → runtime/server}/types/core-events.d.ts +0 -0
- /package/dist/{server/types/security.types.js → runtime/server/types/core-events.js} +0 -0
- /package/dist/{server → runtime/server}/types/security.types.d.ts +0 -0
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.AppearanceService = void 0;
|
|
16
|
+
const tsyringe_1 = require("tsyringe");
|
|
17
|
+
const IHasher_1 = require("../../../adapters/contracts/IHasher");
|
|
18
|
+
const IPedAppearanceClient_1 = require("../../../adapters/contracts/IPedAppearanceClient");
|
|
19
|
+
/**
|
|
20
|
+
* Client-side appearance management service.
|
|
21
|
+
*
|
|
22
|
+
* @remarks
|
|
23
|
+
* Handles applying and retrieving ped appearance data on the client.
|
|
24
|
+
* Uses adapters for FiveM native abstraction, enabling testability.
|
|
25
|
+
*
|
|
26
|
+
* This service is typically called in response to server events
|
|
27
|
+
* after the server has validated the appearance data.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```typescript
|
|
31
|
+
* // Apply appearance from server-validated data
|
|
32
|
+
* await appearanceService.applyAppearance(PlayerPedId(), validatedAppearance)
|
|
33
|
+
*
|
|
34
|
+
* // Get current appearance for saving
|
|
35
|
+
* const currentAppearance = await appearanceService.getAppearance(PlayerPedId())
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
let AppearanceService = class AppearanceService {
|
|
39
|
+
constructor(pedAdapter, hasher) {
|
|
40
|
+
this.pedAdapter = pedAdapter;
|
|
41
|
+
this.hasher = hasher;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Applies a complete appearance to a ped.
|
|
45
|
+
*
|
|
46
|
+
* @remarks
|
|
47
|
+
* The order of application is important:
|
|
48
|
+
* 1. HeadBlend (required before overlays/features)
|
|
49
|
+
* 2. Face features
|
|
50
|
+
* 3. Components
|
|
51
|
+
* 4. Props
|
|
52
|
+
* 5. Head overlays with colors
|
|
53
|
+
* 6. Hair color
|
|
54
|
+
* 7. Eye color
|
|
55
|
+
* 8. Tattoos
|
|
56
|
+
*
|
|
57
|
+
* @param ped - Ped entity handle
|
|
58
|
+
* @param appearance - Appearance data to apply
|
|
59
|
+
*/
|
|
60
|
+
async applyAppearance(ped, appearance) {
|
|
61
|
+
var _a;
|
|
62
|
+
// 1. HeadBlend must be set first (required for overlays and face features)
|
|
63
|
+
if (appearance.headBlend) {
|
|
64
|
+
this.pedAdapter.setHeadBlendData(ped, appearance.headBlend);
|
|
65
|
+
}
|
|
66
|
+
// 2. Face features (requires headBlend)
|
|
67
|
+
if (appearance.faceFeatures) {
|
|
68
|
+
for (const [index, value] of Object.entries(appearance.faceFeatures)) {
|
|
69
|
+
this.pedAdapter.setFaceFeature(ped, parseInt(index, 10), value);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
// 3. Components (clothing, hair, etc.)
|
|
73
|
+
if (appearance.components) {
|
|
74
|
+
for (const [componentId, data] of Object.entries(appearance.components)) {
|
|
75
|
+
this.pedAdapter.setComponentVariation(ped, parseInt(componentId, 10), data.drawable, data.texture, 2);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// 4. Props (hats, glasses, etc.)
|
|
79
|
+
if (appearance.props) {
|
|
80
|
+
for (const [propId, data] of Object.entries(appearance.props)) {
|
|
81
|
+
if (data.drawable === -1) {
|
|
82
|
+
this.pedAdapter.clearProp(ped, parseInt(propId, 10));
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
this.pedAdapter.setPropIndex(ped, parseInt(propId, 10), data.drawable, data.texture, true);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
// 5. Head overlays with colors (requires headBlend)
|
|
90
|
+
if (appearance.headOverlays) {
|
|
91
|
+
for (const [overlayId, overlay] of Object.entries(appearance.headOverlays)) {
|
|
92
|
+
const id = parseInt(overlayId, 10);
|
|
93
|
+
this.pedAdapter.setHeadOverlay(ped, id, overlay.index, overlay.opacity);
|
|
94
|
+
if (overlay.colorType !== undefined && overlay.colorId !== undefined) {
|
|
95
|
+
this.pedAdapter.setHeadOverlayColor(ped, id, overlay.colorType, overlay.colorId, (_a = overlay.secondColorId) !== null && _a !== void 0 ? _a : overlay.colorId);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// 6. Hair color
|
|
100
|
+
if (appearance.hairColor) {
|
|
101
|
+
this.pedAdapter.setHairColor(ped, appearance.hairColor.colorId, appearance.hairColor.highlightColorId);
|
|
102
|
+
}
|
|
103
|
+
// 7. Eye color
|
|
104
|
+
if (appearance.eyeColor !== undefined) {
|
|
105
|
+
this.pedAdapter.setEyeColor(ped, appearance.eyeColor);
|
|
106
|
+
}
|
|
107
|
+
// 8. Tattoos
|
|
108
|
+
if (appearance.tattoos && appearance.tattoos.length > 0) {
|
|
109
|
+
this.pedAdapter.clearDecorations(ped);
|
|
110
|
+
for (const tattoo of appearance.tattoos) {
|
|
111
|
+
const collectionHash = this.hasher.getHashKey(tattoo.collection);
|
|
112
|
+
const overlayHash = this.hasher.getHashKey(tattoo.overlay);
|
|
113
|
+
this.pedAdapter.addDecoration(ped, collectionHash, overlayHash);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Retrieves the current appearance of a ped.
|
|
119
|
+
*
|
|
120
|
+
* @remarks
|
|
121
|
+
* Only retrieves components and props as other data (headBlend, overlays, etc.)
|
|
122
|
+
* cannot be read back from the game.
|
|
123
|
+
*
|
|
124
|
+
* @param ped - Ped entity handle
|
|
125
|
+
* @returns Partial appearance data (components and props only)
|
|
126
|
+
*/
|
|
127
|
+
async getAppearance(ped) {
|
|
128
|
+
const appearance = {
|
|
129
|
+
components: {},
|
|
130
|
+
props: {},
|
|
131
|
+
};
|
|
132
|
+
// Components (0-11)
|
|
133
|
+
for (let i = 0; i <= 11; i++) {
|
|
134
|
+
const drawable = this.pedAdapter.getDrawableVariation(ped, i);
|
|
135
|
+
const texture = this.pedAdapter.getTextureVariation(ped, i);
|
|
136
|
+
if (drawable !== -1) {
|
|
137
|
+
appearance.components[i] = { drawable, texture };
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
// Props (0-7)
|
|
141
|
+
for (let i = 0; i <= 7; i++) {
|
|
142
|
+
const drawable = this.pedAdapter.getPropIndex(ped, i);
|
|
143
|
+
const texture = this.pedAdapter.getPropTextureIndex(ped, i);
|
|
144
|
+
if (drawable !== -1) {
|
|
145
|
+
appearance.props[i] = { drawable, texture };
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return appearance;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Gets the number of available drawable variations for a component.
|
|
152
|
+
*
|
|
153
|
+
* @param ped - Ped entity handle
|
|
154
|
+
* @param componentId - Component ID (0-11)
|
|
155
|
+
* @returns Number of available drawables
|
|
156
|
+
*/
|
|
157
|
+
getNumComponentDrawables(ped, componentId) {
|
|
158
|
+
return this.pedAdapter.getNumDrawableVariations(ped, componentId);
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Gets the number of available texture variations for a component drawable.
|
|
162
|
+
*
|
|
163
|
+
* @param ped - Ped entity handle
|
|
164
|
+
* @param componentId - Component ID (0-11)
|
|
165
|
+
* @param drawable - Drawable index
|
|
166
|
+
* @returns Number of available textures
|
|
167
|
+
*/
|
|
168
|
+
getNumComponentTextures(ped, componentId, drawable) {
|
|
169
|
+
return this.pedAdapter.getNumTextureVariations(ped, componentId, drawable);
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Gets the number of available drawable variations for a prop.
|
|
173
|
+
*
|
|
174
|
+
* @param ped - Ped entity handle
|
|
175
|
+
* @param propId - Prop ID (0-7)
|
|
176
|
+
* @returns Number of available drawables
|
|
177
|
+
*/
|
|
178
|
+
getNumPropDrawables(ped, propId) {
|
|
179
|
+
return this.pedAdapter.getNumPropDrawableVariations(ped, propId);
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Gets the number of available texture variations for a prop drawable.
|
|
183
|
+
*
|
|
184
|
+
* @param ped - Ped entity handle
|
|
185
|
+
* @param propId - Prop ID (0-7)
|
|
186
|
+
* @param drawable - Drawable index
|
|
187
|
+
* @returns Number of available textures
|
|
188
|
+
*/
|
|
189
|
+
getNumPropTextures(ped, propId, drawable) {
|
|
190
|
+
return this.pedAdapter.getNumPropTextureVariations(ped, propId, drawable);
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Gets the number of available overlay variations.
|
|
194
|
+
*
|
|
195
|
+
* @param overlayId - Overlay ID (0-12)
|
|
196
|
+
* @returns Number of available variations
|
|
197
|
+
*/
|
|
198
|
+
getNumOverlayValues(overlayId) {
|
|
199
|
+
return this.pedAdapter.getNumOverlayValues(overlayId);
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Gets the number of available hair colors.
|
|
203
|
+
*
|
|
204
|
+
* @returns Number of hair colors
|
|
205
|
+
*/
|
|
206
|
+
getNumHairColors() {
|
|
207
|
+
return this.pedAdapter.getNumHairColors();
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Gets the number of available makeup colors.
|
|
211
|
+
*
|
|
212
|
+
* @returns Number of makeup colors
|
|
213
|
+
*/
|
|
214
|
+
getNumMakeupColors() {
|
|
215
|
+
return this.pedAdapter.getNumMakeupColors();
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Validates appearance data structure.
|
|
219
|
+
*
|
|
220
|
+
* @remarks
|
|
221
|
+
* This is a client-side validation for data integrity.
|
|
222
|
+
* Server-side validation should always be performed for security.
|
|
223
|
+
*
|
|
224
|
+
* @param appearance - Appearance data to validate
|
|
225
|
+
* @returns Validation result with errors if any
|
|
226
|
+
*/
|
|
227
|
+
validateAppearance(appearance) {
|
|
228
|
+
const errors = [];
|
|
229
|
+
if (!appearance) {
|
|
230
|
+
return { valid: false, errors: ['Appearance data is null or undefined'] };
|
|
231
|
+
}
|
|
232
|
+
// Validate components (0-11)
|
|
233
|
+
if (appearance.components) {
|
|
234
|
+
for (const [id, data] of Object.entries(appearance.components)) {
|
|
235
|
+
const componentId = parseInt(id, 10);
|
|
236
|
+
if (Number.isNaN(componentId) || componentId < 0 || componentId > 11) {
|
|
237
|
+
errors.push(`Invalid component ID: ${id}`);
|
|
238
|
+
}
|
|
239
|
+
if (data.drawable === undefined || data.texture === undefined) {
|
|
240
|
+
errors.push(`Missing drawable or texture for component ${id}`);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
// Validate props (0-7)
|
|
245
|
+
if (appearance.props) {
|
|
246
|
+
for (const [id, data] of Object.entries(appearance.props)) {
|
|
247
|
+
const propId = parseInt(id, 10);
|
|
248
|
+
if (Number.isNaN(propId) || propId < 0 || propId > 7) {
|
|
249
|
+
errors.push(`Invalid prop ID: ${id}`);
|
|
250
|
+
}
|
|
251
|
+
if (data.drawable === undefined || data.texture === undefined) {
|
|
252
|
+
errors.push(`Missing drawable or texture for prop ${id}`);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
// Validate faceFeatures (0-19, values -1.0 to 1.0)
|
|
257
|
+
if (appearance.faceFeatures) {
|
|
258
|
+
for (const [id, value] of Object.entries(appearance.faceFeatures)) {
|
|
259
|
+
const index = parseInt(id, 10);
|
|
260
|
+
if (Number.isNaN(index) || index < 0 || index > 19) {
|
|
261
|
+
errors.push(`Invalid face feature index: ${id}`);
|
|
262
|
+
}
|
|
263
|
+
if (value < -1.0 || value > 1.0) {
|
|
264
|
+
errors.push(`Face feature ${id} value out of range: ${value}`);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
// Validate headBlend
|
|
269
|
+
if (appearance.headBlend) {
|
|
270
|
+
const hb = appearance.headBlend;
|
|
271
|
+
if (hb.shapeFirst < 0 || hb.shapeFirst > 45)
|
|
272
|
+
errors.push('Invalid shapeFirst (0-45)');
|
|
273
|
+
if (hb.shapeSecond < 0 || hb.shapeSecond > 45)
|
|
274
|
+
errors.push('Invalid shapeSecond (0-45)');
|
|
275
|
+
if (hb.skinFirst < 0 || hb.skinFirst > 45)
|
|
276
|
+
errors.push('Invalid skinFirst (0-45)');
|
|
277
|
+
if (hb.skinSecond < 0 || hb.skinSecond > 45)
|
|
278
|
+
errors.push('Invalid skinSecond (0-45)');
|
|
279
|
+
if (hb.shapeMix < 0 || hb.shapeMix > 1)
|
|
280
|
+
errors.push('Invalid shapeMix (0.0-1.0)');
|
|
281
|
+
if (hb.skinMix < 0 || hb.skinMix > 1)
|
|
282
|
+
errors.push('Invalid skinMix (0.0-1.0)');
|
|
283
|
+
}
|
|
284
|
+
// Validate headOverlays (0-12)
|
|
285
|
+
if (appearance.headOverlays) {
|
|
286
|
+
for (const [id, overlay] of Object.entries(appearance.headOverlays)) {
|
|
287
|
+
const overlayId = parseInt(id, 10);
|
|
288
|
+
if (Number.isNaN(overlayId) || overlayId < 0 || overlayId > 12) {
|
|
289
|
+
errors.push(`Invalid overlay ID: ${id}`);
|
|
290
|
+
}
|
|
291
|
+
if (overlay.opacity < 0 || overlay.opacity > 1) {
|
|
292
|
+
errors.push(`Invalid overlay opacity for ID ${id}`);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
// Validate eyeColor (0-31)
|
|
297
|
+
if (appearance.eyeColor !== undefined) {
|
|
298
|
+
if (appearance.eyeColor < 0 || appearance.eyeColor > 31) {
|
|
299
|
+
errors.push(`Invalid eye color: ${appearance.eyeColor} (0-31)`);
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
return { valid: errors.length === 0, errors };
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Sets the ped to default component variation.
|
|
306
|
+
*
|
|
307
|
+
* @param ped - Ped entity handle
|
|
308
|
+
*/
|
|
309
|
+
setDefaultAppearance(ped) {
|
|
310
|
+
this.pedAdapter.setDefaultComponentVariation(ped);
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Clears all tattoos from a ped.
|
|
314
|
+
*
|
|
315
|
+
* @param ped - Ped entity handle
|
|
316
|
+
*/
|
|
317
|
+
clearTattoos(ped) {
|
|
318
|
+
this.pedAdapter.clearDecorations(ped);
|
|
319
|
+
}
|
|
320
|
+
};
|
|
321
|
+
exports.AppearanceService = AppearanceService;
|
|
322
|
+
exports.AppearanceService = AppearanceService = __decorate([
|
|
323
|
+
(0, tsyringe_1.injectable)(),
|
|
324
|
+
__param(0, (0, tsyringe_1.inject)(IPedAppearanceClient_1.IPedAppearanceClient)),
|
|
325
|
+
__param(1, (0, tsyringe_1.inject)(IHasher_1.IHasher)),
|
|
326
|
+
__metadata("design:paramtypes", [IPedAppearanceClient_1.IPedAppearanceClient,
|
|
327
|
+
IHasher_1.IHasher])
|
|
328
|
+
], AppearanceService);
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
export * from './spawn.service';
|
|
2
1
|
export * from './blip.service';
|
|
3
|
-
export * from './
|
|
4
|
-
export * from './ped.service';
|
|
5
|
-
export * from './streaming.service';
|
|
2
|
+
export * from './marker.service';
|
|
6
3
|
export * from './notification.service';
|
|
4
|
+
export * from './ped.service';
|
|
7
5
|
export * from './progress.service';
|
|
8
|
-
export * from './
|
|
6
|
+
export * from './spawn.service';
|
|
7
|
+
export * from './streaming.service';
|
|
9
8
|
export * from './textui.service';
|
|
9
|
+
export * from './vehicle.service';
|
|
10
|
+
export * from './vehicle-client.service';
|
|
@@ -14,12 +14,13 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./spawn.service"), exports);
|
|
18
17
|
__exportStar(require("./blip.service"), exports);
|
|
19
|
-
__exportStar(require("./
|
|
20
|
-
__exportStar(require("./ped.service"), exports);
|
|
21
|
-
__exportStar(require("./streaming.service"), exports);
|
|
18
|
+
__exportStar(require("./marker.service"), exports);
|
|
22
19
|
__exportStar(require("./notification.service"), exports);
|
|
20
|
+
__exportStar(require("./ped.service"), exports);
|
|
23
21
|
__exportStar(require("./progress.service"), exports);
|
|
24
|
-
__exportStar(require("./
|
|
22
|
+
__exportStar(require("./spawn.service"), exports);
|
|
23
|
+
__exportStar(require("./streaming.service"), exports);
|
|
25
24
|
__exportStar(require("./textui.service"), exports);
|
|
25
|
+
__exportStar(require("./vehicle.service"), exports);
|
|
26
|
+
__exportStar(require("./vehicle-client.service"), exports);
|
|
@@ -211,15 +211,16 @@ let PedService = class PedService {
|
|
|
211
211
|
getNearby(position, radius, excludePlayer = true) {
|
|
212
212
|
const peds = [];
|
|
213
213
|
const playerPed = PlayerPedId();
|
|
214
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
214
215
|
const [handle, _] = FindFirstPed(0);
|
|
215
|
-
|
|
216
|
+
const ped = handle;
|
|
216
217
|
do {
|
|
217
218
|
if (!DoesEntityExist(ped))
|
|
218
219
|
continue;
|
|
219
220
|
if (excludePlayer && ped === playerPed)
|
|
220
221
|
continue;
|
|
221
222
|
const [ex, ey, ez] = GetEntityCoords(ped, true);
|
|
222
|
-
const dist = Math.sqrt(
|
|
223
|
+
const dist = Math.sqrt((ex - position.x) ** 2 + (ey - position.y) ** 2 + (ez - position.z) ** 2);
|
|
223
224
|
if (dist <= radius) {
|
|
224
225
|
peds.push(ped);
|
|
225
226
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PlayerAppearance } from '../../../kernel/shared';
|
|
2
|
+
import { Vector3 } from '../../../kernel/utils';
|
|
2
3
|
import { AppearanceService } from './appearance.service';
|
|
3
|
-
import { PlayerAppearance } from '../interfaces/appearance.interface';
|
|
4
4
|
interface SpawnOptions {
|
|
5
5
|
/** Optional: Apply complete character appearance (RP clothing, face, props, tattoos...) */
|
|
6
6
|
appearance?: PlayerAppearance;
|
|
@@ -11,7 +11,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.SpawnService = void 0;
|
|
13
13
|
const tsyringe_1 = require("tsyringe");
|
|
14
|
-
const shared_1 = require("
|
|
14
|
+
const shared_1 = require("../../../kernel/shared");
|
|
15
15
|
const appearance_service_1 = require("./appearance.service");
|
|
16
16
|
const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
17
17
|
const NETWORK_TIMEOUT_MS = 15000;
|
|
@@ -111,10 +111,6 @@ let SpawnService = class SpawnService {
|
|
|
111
111
|
SetEntityHeading(ped, heading);
|
|
112
112
|
}
|
|
113
113
|
FreezeEntityPosition(ped, false);
|
|
114
|
-
shared_1.loggers.spawn.debug('Teleported', {
|
|
115
|
-
position: { x: position.x, y: position.y, z: position.z },
|
|
116
|
-
heading,
|
|
117
|
-
});
|
|
118
114
|
}
|
|
119
115
|
/**
|
|
120
116
|
* Respawns the player after death or a gameplay event.
|
|
@@ -185,7 +181,6 @@ let SpawnService = class SpawnService {
|
|
|
185
181
|
if (ped !== 0) {
|
|
186
182
|
SetPedDefaultComponentVariation(ped);
|
|
187
183
|
}
|
|
188
|
-
shared_1.loggers.spawn.debug('Player model set', { model, modelHash });
|
|
189
184
|
}
|
|
190
185
|
async ensurePed() {
|
|
191
186
|
const start = GetGameTimer();
|
|
@@ -225,7 +220,6 @@ let SpawnService = class SpawnService {
|
|
|
225
220
|
SetEntityVisible(ped, true, false);
|
|
226
221
|
SetEntityCollision(ped, true, true);
|
|
227
222
|
SetEntityInvincible(ped, false);
|
|
228
|
-
shared_1.loggers.spawn.debug('Ped prepared for gameplay', { ped });
|
|
229
223
|
}
|
|
230
224
|
async placePed(ped, position, heading) {
|
|
231
225
|
FreezeEntityPosition(ped, true);
|
|
@@ -239,7 +233,9 @@ let SpawnService = class SpawnService {
|
|
|
239
233
|
SetPedDefaultComponentVariation(ped);
|
|
240
234
|
return;
|
|
241
235
|
}
|
|
242
|
-
|
|
236
|
+
const validation = this.appearanceService.validateAppearance(appearance);
|
|
237
|
+
if (!validation.valid) {
|
|
238
|
+
shared_1.loggers.spawn.warn('Invalid appearance data', { errors: validation.errors });
|
|
243
239
|
SetPedDefaultComponentVariation(ped);
|
|
244
240
|
return;
|
|
245
241
|
}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { Vector3 } from '../../../kernel/utils';
|
|
2
|
+
import { SerializedVehicleData, VehicleCreateOptions, VehicleSpawnResult } from '../../server/types/vehicle.types';
|
|
3
|
+
/**
|
|
4
|
+
* Client-side vehicle service.
|
|
5
|
+
*
|
|
6
|
+
* This service provides a simplified interface for vehicle operations on the client.
|
|
7
|
+
* Most operations delegate to the server for security and synchronization.
|
|
8
|
+
*
|
|
9
|
+
* @remarks
|
|
10
|
+
* - Vehicle creation is server-authoritative (prevents spawning exploits)
|
|
11
|
+
* - Modifications require server validation
|
|
12
|
+
* - Local operations (queries, visual changes) are safe to perform client-side
|
|
13
|
+
*/
|
|
14
|
+
export declare class VehicleClientService {
|
|
15
|
+
private pendingCreations;
|
|
16
|
+
private requestIdCounter;
|
|
17
|
+
constructor();
|
|
18
|
+
/**
|
|
19
|
+
* Requests vehicle creation from the server.
|
|
20
|
+
*
|
|
21
|
+
* @param options - Vehicle creation options
|
|
22
|
+
* @returns Promise resolving to spawn result
|
|
23
|
+
*/
|
|
24
|
+
createVehicle(options: Omit<VehicleCreateOptions, 'ownership'>): Promise<VehicleSpawnResult>;
|
|
25
|
+
/**
|
|
26
|
+
* Requests vehicle deletion from the server.
|
|
27
|
+
*
|
|
28
|
+
* @param networkId - Network ID of the vehicle
|
|
29
|
+
* @returns Promise resolving to success status
|
|
30
|
+
*/
|
|
31
|
+
deleteVehicle(networkId: number): Promise<boolean>;
|
|
32
|
+
/**
|
|
33
|
+
* Requests vehicle repair from the server.
|
|
34
|
+
*
|
|
35
|
+
* @param networkId - Network ID of the vehicle
|
|
36
|
+
* @returns Promise resolving to success status
|
|
37
|
+
*/
|
|
38
|
+
repairVehicle(networkId: number): Promise<boolean>;
|
|
39
|
+
/**
|
|
40
|
+
* Gets the closest vehicle to the player.
|
|
41
|
+
*
|
|
42
|
+
* @param radius - Search radius
|
|
43
|
+
* @returns Vehicle handle or null
|
|
44
|
+
*/
|
|
45
|
+
getClosestVehicle(radius?: number): number | null;
|
|
46
|
+
/**
|
|
47
|
+
* Checks if the player is in a vehicle.
|
|
48
|
+
*/
|
|
49
|
+
isPlayerInVehicle(): boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Gets the vehicle the player is currently in.
|
|
52
|
+
*
|
|
53
|
+
* @returns Vehicle handle or null
|
|
54
|
+
*/
|
|
55
|
+
getCurrentVehicle(): number | null;
|
|
56
|
+
/**
|
|
57
|
+
* Gets the last vehicle the player was in.
|
|
58
|
+
*
|
|
59
|
+
* @returns Vehicle handle or null
|
|
60
|
+
*/
|
|
61
|
+
getLastVehicle(): number | null;
|
|
62
|
+
/**
|
|
63
|
+
* Checks if player is the driver of their current vehicle.
|
|
64
|
+
*/
|
|
65
|
+
isPlayerDriver(): boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Gets vehicle speed in km/h.
|
|
68
|
+
*
|
|
69
|
+
* @param vehicle - Vehicle handle
|
|
70
|
+
*/
|
|
71
|
+
getSpeed(vehicle: number): number;
|
|
72
|
+
/**
|
|
73
|
+
* Gets the network ID from a vehicle handle.
|
|
74
|
+
*
|
|
75
|
+
* @param vehicle - Vehicle handle
|
|
76
|
+
* @returns Network ID or 0 if invalid
|
|
77
|
+
*/
|
|
78
|
+
getNetworkId(vehicle: number): number;
|
|
79
|
+
/**
|
|
80
|
+
* Gets the vehicle handle from a network ID.
|
|
81
|
+
*
|
|
82
|
+
* @param networkId - Network ID
|
|
83
|
+
* @returns Vehicle handle or 0 if not found
|
|
84
|
+
*/
|
|
85
|
+
getVehicleFromNetworkId(networkId: number): number;
|
|
86
|
+
/**
|
|
87
|
+
* Gets vehicle data from state bag.
|
|
88
|
+
*
|
|
89
|
+
* @param vehicle - Vehicle handle
|
|
90
|
+
* @param key - State bag key
|
|
91
|
+
* @returns State value or undefined
|
|
92
|
+
*/
|
|
93
|
+
getVehicleState<T = any>(vehicle: number, key: string): T | undefined;
|
|
94
|
+
/**
|
|
95
|
+
* Requests to lock/unlock vehicle doors.
|
|
96
|
+
*
|
|
97
|
+
* @param networkId - Network ID of the vehicle
|
|
98
|
+
* @param locked - Whether to lock or unlock
|
|
99
|
+
*/
|
|
100
|
+
setDoorsLocked(networkId: number, locked: boolean): void;
|
|
101
|
+
/**
|
|
102
|
+
* Requests vehicle data from the server.
|
|
103
|
+
*
|
|
104
|
+
* @param networkId - Network ID of the vehicle
|
|
105
|
+
* @returns Promise resolving to vehicle data
|
|
106
|
+
*/
|
|
107
|
+
getVehicleData(networkId: number): Promise<SerializedVehicleData | null>;
|
|
108
|
+
/**
|
|
109
|
+
* Requests all player vehicles from the server.
|
|
110
|
+
*
|
|
111
|
+
* @returns Promise resolving to array of vehicle data
|
|
112
|
+
*/
|
|
113
|
+
getPlayerVehicles(): Promise<SerializedVehicleData[]>;
|
|
114
|
+
/**
|
|
115
|
+
* Local-only: Warps player into a vehicle.
|
|
116
|
+
*
|
|
117
|
+
* @param vehicle - Vehicle handle
|
|
118
|
+
* @param seatIndex - Seat index (-1 = driver)
|
|
119
|
+
*/
|
|
120
|
+
warpIntoVehicle(vehicle: number, seatIndex?: number): void;
|
|
121
|
+
/**
|
|
122
|
+
* Local-only: Sets vehicle heading.
|
|
123
|
+
*
|
|
124
|
+
* @param vehicle - Vehicle handle
|
|
125
|
+
* @param heading - Heading in degrees
|
|
126
|
+
*/
|
|
127
|
+
setHeading(vehicle: number, heading: number): void;
|
|
128
|
+
/**
|
|
129
|
+
* Local-only: Gets vehicle position.
|
|
130
|
+
*
|
|
131
|
+
* @param vehicle - Vehicle handle
|
|
132
|
+
* @returns Position vector
|
|
133
|
+
*/
|
|
134
|
+
getPosition(vehicle: number): Vector3 | null;
|
|
135
|
+
/**
|
|
136
|
+
* Local-only: Gets vehicle heading.
|
|
137
|
+
*
|
|
138
|
+
* @param vehicle - Vehicle handle
|
|
139
|
+
* @returns Heading in degrees
|
|
140
|
+
*/
|
|
141
|
+
getHeading(vehicle: number): number;
|
|
142
|
+
/**
|
|
143
|
+
* Local-only: Gets vehicle model hash.
|
|
144
|
+
*
|
|
145
|
+
* @param vehicle - Vehicle handle
|
|
146
|
+
* @returns Model hash
|
|
147
|
+
*/
|
|
148
|
+
getModel(vehicle: number): number;
|
|
149
|
+
/**
|
|
150
|
+
* Local-only: Gets vehicle license plate.
|
|
151
|
+
*
|
|
152
|
+
* @param vehicle - Vehicle handle
|
|
153
|
+
* @returns License plate text
|
|
154
|
+
*/
|
|
155
|
+
getPlate(vehicle: number): string;
|
|
156
|
+
/**
|
|
157
|
+
* Applies vehicle mods from state bag data.
|
|
158
|
+
*
|
|
159
|
+
* @param vehicle - Vehicle handle
|
|
160
|
+
* @param mods - Mods object from state bag
|
|
161
|
+
*/
|
|
162
|
+
applyMods(vehicle: number, mods: Record<string, any>): void;
|
|
163
|
+
/**
|
|
164
|
+
* Repairs a vehicle completely (client-side).
|
|
165
|
+
*
|
|
166
|
+
* @param vehicle - Vehicle handle
|
|
167
|
+
*/
|
|
168
|
+
repair(vehicle: number): void;
|
|
169
|
+
/**
|
|
170
|
+
* Sets fuel level on a vehicle (client-side).
|
|
171
|
+
*
|
|
172
|
+
* @param vehicle - Vehicle handle
|
|
173
|
+
* @param level - Fuel level (0-100)
|
|
174
|
+
*/
|
|
175
|
+
setFuel(vehicle: number, level: number): void;
|
|
176
|
+
/**
|
|
177
|
+
* Registers event handlers for server responses.
|
|
178
|
+
*/
|
|
179
|
+
private registerEventHandlers;
|
|
180
|
+
}
|