@open-core/framework 1.0.5-beta.2 → 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 +3 -3
- package/dist/adapters/contracts/IExports.d.ts +2 -2
- package/dist/adapters/contracts/client/IClientLocalPlayerBridge.d.ts +21 -0
- package/dist/adapters/contracts/client/IClientLocalPlayerBridge.js +6 -0
- package/dist/adapters/contracts/client/IClientRuntimeBridge.d.ts +5 -5
- 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 +4 -0
- package/dist/adapters/contracts/client/index.js +4 -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 +5 -6
- package/dist/adapters/contracts/client/spawn/IClientSpawnBridge.js +5 -1
- 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 +2 -0
- package/dist/adapters/contracts/client/spawn/index.js +2 -0
- package/dist/adapters/contracts/client/spawn/types.d.ts +3 -0
- package/dist/adapters/contracts/client/ui/webview/IClientWebViewBridge.d.ts +1 -0
- package/dist/adapters/contracts/client/ui/webview/types.d.ts +2 -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/transport/events.api.d.ts +3 -3
- package/dist/adapters/contracts/transport/rpc.api.d.ts +3 -3
- 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/contracts.d.ts +1 -0
- package/dist/contracts.js +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/kernel/logger/client-log-console.js +8 -8
- package/dist/kernel/logger/index.d.ts +1 -1
- package/dist/kernel/logger/index.js +1 -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/simple-console.transport.js +2 -2
- package/dist/runtime/client/adapter/index.d.ts +5 -0
- package/dist/runtime/client/adapter/index.js +5 -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.js +15 -1
- package/dist/runtime/client/adapter/node-local-player-bridge.d.ts +3 -0
- package/dist/runtime/client/adapter/node-local-player-bridge.js +9 -0
- package/dist/runtime/client/adapter/node-log-console.js +8 -8
- 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-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 +2 -4
- package/dist/runtime/client/adapter/node-spawn-bridge.d.ts +5 -5
- package/dist/runtime/client/adapter/node-spawn-bridge.js +8 -4
- 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 +1 -0
- package/dist/runtime/client/adapter/node-webview-bridge.js +2 -0
- package/dist/runtime/client/controllers/appearance.controller.d.ts +3 -3
- package/dist/runtime/client/controllers/appearance.controller.js +11 -10
- package/dist/runtime/client/controllers/spawner.controller.js +4 -3
- package/dist/runtime/client/services/camera.d.ts +4 -26
- package/dist/runtime/client/services/camera.js +21 -27
- package/dist/runtime/client/services/notification.service.d.ts +3 -3
- package/dist/runtime/client/services/notification.service.js +7 -7
- package/dist/runtime/client/services/ped.service.d.ts +6 -21
- package/dist/runtime/client/services/ped.service.js +31 -78
- package/dist/runtime/client/services/progress.service.d.ts +4 -50
- package/dist/runtime/client/services/progress.service.js +11 -143
- package/dist/runtime/client/services/session-bridge.service.js +3 -2
- package/dist/runtime/client/services/spawn.service.d.ts +3 -5
- package/dist/runtime/client/services/spawn.service.js +12 -17
- package/dist/runtime/client/services/vehicle-client.service.d.ts +3 -3
- package/dist/runtime/client/services/vehicle-client.service.js +43 -143
- package/dist/runtime/client/services/vehicle.service.d.ts +4 -41
- package/dist/runtime/client/services/vehicle.service.js +24 -130
- package/dist/runtime/client/webview-bridge.d.ts +3 -0
- package/dist/runtime/client/webview-bridge.js +6 -0
- package/dist/runtime/client/webview.service.d.ts +1 -0
- package/dist/runtime/client/webview.service.js +5 -0
- package/dist/runtime/server/adapter/node-player-appearance-lifecycle-server.js +3 -2
- package/dist/runtime/server/adapter/node-player-lifecycle-server.js +4 -3
- package/dist/runtime/server/adapter/node-vehicle-lifecycle-server.js +2 -1
- package/dist/runtime/server/apis/chat.api.js +6 -5
- package/dist/runtime/server/apis/npcs.api.js +2 -1
- package/dist/runtime/server/apis/parallel-compute.api.js +1 -0
- package/dist/runtime/server/apis/vehicle-modification.api.js +6 -4
- package/dist/runtime/server/apis/vehicles.api.js +7 -4
- package/dist/runtime/server/bootstrap.js +13 -12
- package/dist/runtime/server/controllers/command-export.controller.js +4 -2
- package/dist/runtime/server/controllers/remote-command-execution.controller.js +2 -1
- package/dist/runtime/server/controllers/vehicle.controller.js +6 -5
- package/dist/runtime/server/decorators/command.d.ts +2 -0
- package/dist/runtime/server/decorators/command.js +3 -1
- package/dist/runtime/server/entities/npc.d.ts +1 -1
- package/dist/runtime/server/entities/player.d.ts +1 -1
- package/dist/runtime/server/entities/player.js +10 -3
- package/dist/runtime/server/helpers/command-validation.helper.js +20 -7
- 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/ports/channel.api-port.d.ts +1 -1
- 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/system/schema-generator.d.ts +1 -1
- package/dist/runtime/server/system/schema-generator.js +6 -3
- package/dist/runtime/shared/helpers/process-tuple-schema.js +3 -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 +21 -11
|
@@ -6,8 +6,8 @@ export declare abstract class IEngineEvents {
|
|
|
6
6
|
* @param eventName - The event name to listen for
|
|
7
7
|
* @param handler - The callback to invoke when the event is emitted
|
|
8
8
|
*/
|
|
9
|
-
abstract on(eventName: string, handler?: (...args:
|
|
10
|
-
onRuntime(eventName: RuntimeEventName, handler?: (...args:
|
|
9
|
+
abstract on<TArgs extends readonly unknown[]>(eventName: string, handler?: (...args: TArgs) => void): void;
|
|
10
|
+
onRuntime<TArgs extends readonly unknown[]>(eventName: RuntimeEventName, handler?: (...args: TArgs) => void): void;
|
|
11
11
|
getRuntimeEventMap(): RuntimeEventMap;
|
|
12
12
|
/**
|
|
13
13
|
* Emits a local event.
|
|
@@ -19,5 +19,5 @@ export declare abstract class IEngineEvents {
|
|
|
19
19
|
* @param eventName - The event name to emit
|
|
20
20
|
* @param args - Arguments to pass to event handlers
|
|
21
21
|
*/
|
|
22
|
-
abstract emit(eventName: string, ...args:
|
|
22
|
+
abstract emit<TArgs extends readonly unknown[]>(eventName: string, ...args: TArgs): void;
|
|
23
23
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export declare abstract class IExports {
|
|
2
|
-
abstract register(exportName: string, handler: (...args:
|
|
3
|
-
abstract getResource<T =
|
|
2
|
+
abstract register(exportName: string, handler: (...args: unknown[]) => unknown): void;
|
|
3
|
+
abstract getResource<T = unknown>(resourceName: string): T | undefined;
|
|
4
4
|
}
|
|
@@ -1,4 +1,25 @@
|
|
|
1
1
|
import type { Vector3 } from '../../../kernel/utils/vector3';
|
|
2
|
+
/**
|
|
3
|
+
* Port describing the local player from the client perspective.
|
|
4
|
+
*
|
|
5
|
+
* Adapters expose the local player's handle and spatial context so framework
|
|
6
|
+
* services do not need to reach into low-level platform primitives.
|
|
7
|
+
*/
|
|
2
8
|
export declare abstract class IClientLocalPlayerBridge {
|
|
9
|
+
/**
|
|
10
|
+
* Returns the current runtime handle for the local player entity.
|
|
11
|
+
*/
|
|
12
|
+
abstract getHandle(): number;
|
|
13
|
+
/**
|
|
14
|
+
* Returns the current world position for the local player.
|
|
15
|
+
*/
|
|
16
|
+
abstract getPosition(): Vector3;
|
|
17
|
+
/**
|
|
18
|
+
* Returns the current heading for the local player.
|
|
19
|
+
*/
|
|
20
|
+
abstract getHeading(): number;
|
|
21
|
+
/**
|
|
22
|
+
* Moves the local player to a new position and optional heading.
|
|
23
|
+
*/
|
|
3
24
|
abstract setPosition(position: Vector3, heading?: number): void;
|
|
4
25
|
}
|
|
@@ -1,2 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Port describing the local player from the client perspective.
|
|
3
|
+
*
|
|
4
|
+
* Adapters expose the local player's handle and spatial context so framework
|
|
5
|
+
* services do not need to reach into low-level platform primitives.
|
|
6
|
+
*/
|
|
1
7
|
export class IClientLocalPlayerBridge {
|
|
2
8
|
}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
export declare abstract class IClientRuntimeBridge {
|
|
2
2
|
abstract getCurrentResourceName(): string;
|
|
3
|
-
abstract on(eventName: string, handler: (...args:
|
|
4
|
-
abstract registerCommand(commandName: string, handler: (...args:
|
|
3
|
+
abstract on<TArgs extends readonly unknown[]>(eventName: string, handler: (...args: TArgs) => void | Promise<void>): void;
|
|
4
|
+
abstract registerCommand(commandName: string, handler: (...args: unknown[]) => void, restricted: boolean): void;
|
|
5
5
|
abstract registerKeyMapping(commandName: string, description: string, inputMapper: string, key: string): void;
|
|
6
6
|
abstract setTick(handler: () => void | Promise<void>): unknown;
|
|
7
7
|
abstract clearTick(handle: unknown): void;
|
|
8
8
|
abstract getGameTimer(): number;
|
|
9
|
-
registerWebViewCallback(eventName: string, handler: (data:
|
|
9
|
+
registerWebViewCallback(eventName: string, handler: (data: unknown, cb: (response: unknown) => void) => void | Promise<void>): void;
|
|
10
10
|
sendWebViewMessage(message: string): void;
|
|
11
11
|
setWebViewFocus(hasFocus: boolean, hasCursor: boolean): void;
|
|
12
12
|
setWebViewInputPassthrough(enabled: boolean): void;
|
|
13
|
-
abstract registerNuiCallback(eventName: string, handler: (data:
|
|
13
|
+
abstract registerNuiCallback(eventName: string, handler: (data: unknown, cb: (response: unknown) => void) => void | Promise<void>): void;
|
|
14
14
|
abstract sendNuiMessage(message: string): void;
|
|
15
15
|
abstract setNuiFocus(hasFocus: boolean, hasCursor: boolean): void;
|
|
16
16
|
abstract setNuiFocusKeepInput(keepInput: boolean): void;
|
|
17
|
-
abstract registerExport(exportName: string, handler: (...args:
|
|
17
|
+
abstract registerExport<TArgs extends readonly unknown[], TResult = unknown>(exportName: string, handler: (...args: TArgs) => TResult): void;
|
|
18
18
|
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import type { Vector3 } from '../../../../kernel/utils/vector3';
|
|
2
|
+
/**
|
|
3
|
+
* Euler rotation used by scripted camera implementations.
|
|
4
|
+
*/
|
|
5
|
+
export interface ClientCameraRotation {
|
|
6
|
+
x: number;
|
|
7
|
+
y: number;
|
|
8
|
+
z: number;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Complete transform payload for a scripted camera.
|
|
12
|
+
*/
|
|
13
|
+
export interface ClientCameraTransform {
|
|
14
|
+
position: Vector3;
|
|
15
|
+
rotation?: ClientCameraRotation;
|
|
16
|
+
fov?: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Options for creating a new scripted camera.
|
|
20
|
+
*/
|
|
21
|
+
export interface ClientCameraCreateOptions {
|
|
22
|
+
camName?: string;
|
|
23
|
+
active?: boolean;
|
|
24
|
+
transform?: ClientCameraTransform;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Options for enabling or disabling camera rendering.
|
|
28
|
+
*/
|
|
29
|
+
export interface ClientCameraRenderOptions {
|
|
30
|
+
ease?: boolean;
|
|
31
|
+
easeTimeMs?: number;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Shake parameters for a scripted camera.
|
|
35
|
+
*/
|
|
36
|
+
export interface ClientCameraShakeOptions {
|
|
37
|
+
type: string;
|
|
38
|
+
amplitude: number;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Intent-oriented client camera port.
|
|
42
|
+
*
|
|
43
|
+
* The framework asks for high-level camera actions through this port and the
|
|
44
|
+
* active adapter decides how those actions are achieved for the runtime.
|
|
45
|
+
*/
|
|
46
|
+
export declare abstract class IClientCameraPort {
|
|
47
|
+
/**
|
|
48
|
+
* Creates a new scripted camera and returns its runtime handle.
|
|
49
|
+
*/
|
|
50
|
+
abstract create(options?: ClientCameraCreateOptions): number;
|
|
51
|
+
/**
|
|
52
|
+
* Activates or deactivates a specific camera.
|
|
53
|
+
*/
|
|
54
|
+
abstract setActive(camera: number, active: boolean): void;
|
|
55
|
+
/**
|
|
56
|
+
* Enables or disables scripted camera rendering.
|
|
57
|
+
*/
|
|
58
|
+
abstract render(enable: boolean, options?: ClientCameraRenderOptions): void;
|
|
59
|
+
/**
|
|
60
|
+
* Destroys a single scripted camera.
|
|
61
|
+
*/
|
|
62
|
+
abstract destroy(camera: number, destroyActiveCamera?: boolean): void;
|
|
63
|
+
/**
|
|
64
|
+
* Destroys every scripted camera controlled by the adapter/runtime.
|
|
65
|
+
*/
|
|
66
|
+
abstract destroyAll(destroyActiveCamera?: boolean): void;
|
|
67
|
+
/**
|
|
68
|
+
* Applies a transform to a camera.
|
|
69
|
+
*/
|
|
70
|
+
abstract setTransform(camera: number, transform: ClientCameraTransform): void;
|
|
71
|
+
/**
|
|
72
|
+
* Updates only the position of a camera.
|
|
73
|
+
*/
|
|
74
|
+
abstract setPosition(camera: number, position: Vector3): void;
|
|
75
|
+
/**
|
|
76
|
+
* Updates only the rotation of a camera.
|
|
77
|
+
*/
|
|
78
|
+
abstract setRotation(camera: number, rotation: ClientCameraRotation, rotationOrder?: number): void;
|
|
79
|
+
/**
|
|
80
|
+
* Updates only the field of view of a camera.
|
|
81
|
+
*/
|
|
82
|
+
abstract setFov(camera: number, fov: number): void;
|
|
83
|
+
/**
|
|
84
|
+
* Makes the camera point at a world position.
|
|
85
|
+
*/
|
|
86
|
+
abstract pointAtCoords(camera: number, position: Vector3): void;
|
|
87
|
+
/**
|
|
88
|
+
* Makes the camera point at an entity with an optional offset.
|
|
89
|
+
*/
|
|
90
|
+
abstract pointAtEntity(camera: number, entity: number, offset?: Vector3): void;
|
|
91
|
+
/**
|
|
92
|
+
* Stops any pointing target on the camera.
|
|
93
|
+
*/
|
|
94
|
+
abstract stopPointing(camera: number): void;
|
|
95
|
+
/**
|
|
96
|
+
* Interpolates from one camera to another.
|
|
97
|
+
*/
|
|
98
|
+
abstract interpolate(fromCamera: number, toCamera: number, durationMs: number, easeLocation?: boolean, easeRotation?: boolean): void;
|
|
99
|
+
/**
|
|
100
|
+
* Starts a camera shake effect.
|
|
101
|
+
*/
|
|
102
|
+
abstract shake(camera: number, options: ClientCameraShakeOptions): void;
|
|
103
|
+
/**
|
|
104
|
+
* Stops any active shake effect on a camera.
|
|
105
|
+
*/
|
|
106
|
+
abstract stopShaking(camera: number, stopImmediately?: boolean): void;
|
|
107
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './IClientCameraPort';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './IClientCameraPort';
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
+
export * from './camera';
|
|
1
2
|
export * from './IClientLogConsole';
|
|
2
3
|
export * from './IClientLocalPlayerBridge';
|
|
3
4
|
export * from './IClientPlatformBridge';
|
|
4
5
|
export * from './IClientRuntimeBridge';
|
|
5
6
|
export * from './IGtaPedAppearanceBridge';
|
|
7
|
+
export * from './ped';
|
|
8
|
+
export * from './progress';
|
|
6
9
|
export * from './spawn';
|
|
7
10
|
export * from './ui';
|
|
11
|
+
export * from './vehicle';
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
+
export * from './camera';
|
|
1
2
|
export * from './IClientLogConsole';
|
|
2
3
|
export * from './IClientLocalPlayerBridge';
|
|
3
4
|
export * from './IClientPlatformBridge';
|
|
4
5
|
export * from './IClientRuntimeBridge';
|
|
5
6
|
export * from './IGtaPedAppearanceBridge';
|
|
7
|
+
export * from './ped';
|
|
8
|
+
export * from './progress';
|
|
6
9
|
export * from './spawn';
|
|
7
10
|
export * from './ui';
|
|
11
|
+
export * from './vehicle';
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { Vector3 } from '../../../../kernel/utils/vector3';
|
|
2
|
+
/**
|
|
3
|
+
* High-level options for spawning a ped.
|
|
4
|
+
*/
|
|
5
|
+
export interface ClientPedSpawnOptions {
|
|
6
|
+
model: string;
|
|
7
|
+
position: Vector3;
|
|
8
|
+
heading?: number;
|
|
9
|
+
networked?: boolean;
|
|
10
|
+
missionEntity?: boolean;
|
|
11
|
+
relationshipGroup?: string;
|
|
12
|
+
blockEvents?: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* High-level animation request for a ped.
|
|
16
|
+
*/
|
|
17
|
+
export interface ClientPedAnimationOptions {
|
|
18
|
+
dict: string;
|
|
19
|
+
anim: string;
|
|
20
|
+
blendInSpeed?: number;
|
|
21
|
+
blendOutSpeed?: number;
|
|
22
|
+
duration?: number;
|
|
23
|
+
flags?: number;
|
|
24
|
+
playbackRate?: number;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Intent-oriented client ped port.
|
|
28
|
+
*/
|
|
29
|
+
export declare abstract class IClientPedPort {
|
|
30
|
+
/** Spawns a ped and returns its runtime handle. */
|
|
31
|
+
abstract spawn(options: ClientPedSpawnOptions): Promise<number>;
|
|
32
|
+
/** Deletes a ped handle if it exists. */
|
|
33
|
+
abstract delete(handle: number): void;
|
|
34
|
+
/** Returns whether a ped handle exists. */
|
|
35
|
+
abstract exists(handle: number): boolean;
|
|
36
|
+
/** Plays an animation on a ped. */
|
|
37
|
+
abstract playAnimation(handle: number, options: ClientPedAnimationOptions): Promise<void>;
|
|
38
|
+
/** Stops the current animation/task on a ped. */
|
|
39
|
+
abstract stopAnimation(handle: number): void;
|
|
40
|
+
/** Stops the current animation/task immediately on a ped. */
|
|
41
|
+
abstract stopAnimationImmediately(handle: number): void;
|
|
42
|
+
/** Freezes or unfreezes a ped. */
|
|
43
|
+
abstract freeze(handle: number, freeze: boolean): void;
|
|
44
|
+
/** Sets invincibility for a ped. */
|
|
45
|
+
abstract setInvincible(handle: number, invincible: boolean): void;
|
|
46
|
+
/** Gives a weapon to a ped. */
|
|
47
|
+
abstract giveWeapon(handle: number, weapon: string, ammo?: number, hidden?: boolean, forceInHand?: boolean): void;
|
|
48
|
+
/** Removes all weapons from a ped. */
|
|
49
|
+
abstract removeAllWeapons(handle: number): void;
|
|
50
|
+
/** Returns the closest ped to the local player. */
|
|
51
|
+
abstract getClosest(radius?: number, excludeLocalPlayer?: boolean): number | null;
|
|
52
|
+
/** Returns nearby ped handles. */
|
|
53
|
+
abstract getNearby(position: Vector3, radius: number, excludeEntity?: number): number[];
|
|
54
|
+
/** Makes a ped look at an entity. */
|
|
55
|
+
abstract lookAtEntity(handle: number, entity: number, duration?: number): void;
|
|
56
|
+
/** Makes a ped look at coordinates. */
|
|
57
|
+
abstract lookAtCoords(handle: number, position: Vector3, duration?: number): void;
|
|
58
|
+
/** Makes a ped walk to coordinates. */
|
|
59
|
+
abstract walkTo(handle: number, position: Vector3, speed?: number): void;
|
|
60
|
+
/** Sets basic combat intent flags for a ped. */
|
|
61
|
+
abstract setCombatAttributes(handle: number, canFight: boolean, canUseCover?: boolean): void;
|
|
62
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './IClientPedPort';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './IClientPedPort';
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { Vector3 } from '../../../../kernel/utils/vector3';
|
|
2
|
+
/**
|
|
3
|
+
* Progress task options used by client adapters.
|
|
4
|
+
*/
|
|
5
|
+
export interface ClientProgressOptions {
|
|
6
|
+
label: string;
|
|
7
|
+
duration: number;
|
|
8
|
+
useCircular?: boolean;
|
|
9
|
+
canCancel?: boolean;
|
|
10
|
+
disableControls?: boolean;
|
|
11
|
+
disableMovement?: boolean;
|
|
12
|
+
disableCombat?: boolean;
|
|
13
|
+
animation?: {
|
|
14
|
+
dict: string;
|
|
15
|
+
anim: string;
|
|
16
|
+
flags?: number;
|
|
17
|
+
};
|
|
18
|
+
prop?: {
|
|
19
|
+
model: string;
|
|
20
|
+
bone: number;
|
|
21
|
+
offset: Vector3;
|
|
22
|
+
rotation: Vector3;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Runtime snapshot for an active progress task.
|
|
27
|
+
*/
|
|
28
|
+
export interface ClientProgressState {
|
|
29
|
+
active: boolean;
|
|
30
|
+
progress: number;
|
|
31
|
+
label: string;
|
|
32
|
+
startTime: number;
|
|
33
|
+
duration: number;
|
|
34
|
+
options: ClientProgressOptions;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Intent-oriented client progress port.
|
|
38
|
+
*
|
|
39
|
+
* Adapters own the platform-specific implementation for task animations,
|
|
40
|
+
* props, controls, and HUD rendering while the framework exposes a stable API.
|
|
41
|
+
*/
|
|
42
|
+
export declare abstract class IClientProgressPort {
|
|
43
|
+
/** Starts a progress task and resolves to true when completed. */
|
|
44
|
+
abstract start(options: ClientProgressOptions): Promise<boolean>;
|
|
45
|
+
/** Cancels the active task if one exists. */
|
|
46
|
+
abstract cancel(): void;
|
|
47
|
+
/** Returns whether a task is active. */
|
|
48
|
+
abstract isActive(): boolean;
|
|
49
|
+
/** Returns the current progress percentage. */
|
|
50
|
+
abstract getProgress(): number;
|
|
51
|
+
/** Returns the active task snapshot. */
|
|
52
|
+
abstract getState(): ClientProgressState | null;
|
|
53
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './IClientProgressPort';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './IClientProgressPort';
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
abstract teleport(request: TeleportRequest): Promise<void>;
|
|
1
|
+
import { IClientSpawnPort } from './IClientSpawnPort';
|
|
2
|
+
/**
|
|
3
|
+
* @deprecated Use IClientSpawnPort for new runtime integrations.
|
|
4
|
+
*/
|
|
5
|
+
export declare abstract class IClientSpawnBridge extends IClientSpawnPort {
|
|
7
6
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { RespawnRequest, SpawnExecutionResult, SpawnRequest, TeleportRequest } from './types';
|
|
2
|
+
export declare abstract class IClientSpawnPort {
|
|
3
|
+
/**
|
|
4
|
+
* Waits until the runtime reports that spawning can safely occur.
|
|
5
|
+
*/
|
|
6
|
+
abstract waitUntilReady(timeoutMs?: number): Promise<void>;
|
|
7
|
+
/**
|
|
8
|
+
* Performs a full local-player spawn.
|
|
9
|
+
*/
|
|
10
|
+
abstract spawn(request: SpawnRequest): Promise<SpawnExecutionResult>;
|
|
11
|
+
/**
|
|
12
|
+
* Performs a respawn flow for the local player.
|
|
13
|
+
*/
|
|
14
|
+
abstract respawn(request: RespawnRequest): Promise<SpawnExecutionResult>;
|
|
15
|
+
/**
|
|
16
|
+
* Repositions the local player without a full spawn sequence.
|
|
17
|
+
*/
|
|
18
|
+
abstract teleport(request: TeleportRequest): Promise<void>;
|
|
19
|
+
}
|
|
@@ -8,6 +8,7 @@ export declare abstract class IClientWebViewBridge {
|
|
|
8
8
|
abstract hide(viewId: string): void;
|
|
9
9
|
abstract focus(viewId: string, options?: WebViewFocusOptions): void;
|
|
10
10
|
abstract blur(viewId: string): void;
|
|
11
|
+
abstract markAsChat(viewId: string): void;
|
|
11
12
|
abstract send(viewId: string, event: string, payload: unknown): void;
|
|
12
13
|
abstract onMessage(handler: (message: WebViewMessage) => void | Promise<void>): () => void;
|
|
13
14
|
}
|
|
@@ -5,6 +5,7 @@ export interface WebViewCapabilities {
|
|
|
5
5
|
supportsBidirectionalMessaging: boolean;
|
|
6
6
|
supportsExecute: boolean;
|
|
7
7
|
supportsHeadless: boolean;
|
|
8
|
+
supportsChatMode: boolean;
|
|
8
9
|
}
|
|
9
10
|
export interface WebViewDefinition {
|
|
10
11
|
id: string;
|
|
@@ -13,6 +14,7 @@ export interface WebViewDefinition {
|
|
|
13
14
|
focused?: boolean;
|
|
14
15
|
cursor?: boolean;
|
|
15
16
|
inputPassthrough?: boolean;
|
|
17
|
+
chatMode?: boolean;
|
|
16
18
|
}
|
|
17
19
|
export interface WebViewFocusOptions {
|
|
18
20
|
cursor?: boolean;
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import type { Vector3 } from '../../../../kernel/utils/vector3';
|
|
2
|
+
/**
|
|
3
|
+
* High-level vehicle creation options understood by client adapters.
|
|
4
|
+
*/
|
|
5
|
+
export interface ClientVehicleSpawnOptions {
|
|
6
|
+
model: string;
|
|
7
|
+
position: Vector3;
|
|
8
|
+
heading?: number;
|
|
9
|
+
placeOnGround?: boolean;
|
|
10
|
+
warpIntoVehicle?: boolean;
|
|
11
|
+
seatIndex?: number;
|
|
12
|
+
primaryColor?: number;
|
|
13
|
+
secondaryColor?: number;
|
|
14
|
+
plate?: string;
|
|
15
|
+
networked?: boolean;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Common vehicle modification payload used by the framework.
|
|
19
|
+
*/
|
|
20
|
+
export interface ClientVehicleMods {
|
|
21
|
+
spoiler?: number;
|
|
22
|
+
frontBumper?: number;
|
|
23
|
+
rearBumper?: number;
|
|
24
|
+
sideSkirt?: number;
|
|
25
|
+
exhaust?: number;
|
|
26
|
+
frame?: number;
|
|
27
|
+
grille?: number;
|
|
28
|
+
hood?: number;
|
|
29
|
+
fender?: number;
|
|
30
|
+
rightFender?: number;
|
|
31
|
+
roof?: number;
|
|
32
|
+
engine?: number;
|
|
33
|
+
brakes?: number;
|
|
34
|
+
transmission?: number;
|
|
35
|
+
horns?: number;
|
|
36
|
+
suspension?: number;
|
|
37
|
+
armor?: number;
|
|
38
|
+
turbo?: boolean;
|
|
39
|
+
xenon?: boolean;
|
|
40
|
+
wheelType?: number;
|
|
41
|
+
wheels?: number;
|
|
42
|
+
windowTint?: number;
|
|
43
|
+
livery?: number;
|
|
44
|
+
plateStyle?: number;
|
|
45
|
+
neonEnabled?: [boolean, boolean, boolean, boolean];
|
|
46
|
+
neonColor?: [number, number, number];
|
|
47
|
+
extras?: Record<string, boolean>;
|
|
48
|
+
pearlescentColor?: number;
|
|
49
|
+
wheelColor?: number;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Intent-oriented client vehicle port.
|
|
53
|
+
*
|
|
54
|
+
* The framework requests vehicle operations through this port and the adapter
|
|
55
|
+
* decides how to fulfill them for the active runtime.
|
|
56
|
+
*/
|
|
57
|
+
export declare abstract class IClientVehiclePort {
|
|
58
|
+
/**
|
|
59
|
+
* Spawns a vehicle and returns its runtime handle.
|
|
60
|
+
*/
|
|
61
|
+
abstract spawn(options: ClientVehicleSpawnOptions): Promise<number>;
|
|
62
|
+
/**
|
|
63
|
+
* Deletes an existing vehicle handle.
|
|
64
|
+
*/
|
|
65
|
+
abstract delete(vehicle: number): void;
|
|
66
|
+
/**
|
|
67
|
+
* Repairs a vehicle and restores it to a drivable state.
|
|
68
|
+
*/
|
|
69
|
+
abstract repair(vehicle: number): void;
|
|
70
|
+
/**
|
|
71
|
+
* Sets normalized fuel in the 0..1 range unless the adapter documents otherwise.
|
|
72
|
+
*/
|
|
73
|
+
abstract setFuel(vehicle: number, level: number): void;
|
|
74
|
+
/**
|
|
75
|
+
* Gets normalized fuel in the 0..1 range unless the adapter documents otherwise.
|
|
76
|
+
*/
|
|
77
|
+
abstract getFuel(vehicle: number): number;
|
|
78
|
+
/**
|
|
79
|
+
* Returns the closest vehicle around the local player.
|
|
80
|
+
*/
|
|
81
|
+
abstract getClosest(radius?: number): number | null;
|
|
82
|
+
/**
|
|
83
|
+
* Returns whether the local player is currently inside any vehicle.
|
|
84
|
+
*/
|
|
85
|
+
abstract isLocalPlayerInVehicle(): boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Returns the vehicle currently occupied by the local player.
|
|
88
|
+
*/
|
|
89
|
+
abstract getCurrentForLocalPlayer(): number | null;
|
|
90
|
+
/**
|
|
91
|
+
* Returns the last vehicle used by the local player.
|
|
92
|
+
*/
|
|
93
|
+
abstract getLastForLocalPlayer(): number | null;
|
|
94
|
+
/**
|
|
95
|
+
* Returns whether the local player is driving the provided vehicle.
|
|
96
|
+
*/
|
|
97
|
+
abstract isLocalPlayerDriver(vehicle: number): boolean;
|
|
98
|
+
/**
|
|
99
|
+
* Warps the local player into a seat.
|
|
100
|
+
*/
|
|
101
|
+
abstract warpLocalPlayerInto(vehicle: number, seatIndex?: number): void;
|
|
102
|
+
/**
|
|
103
|
+
* Makes the local player leave the provided vehicle.
|
|
104
|
+
*/
|
|
105
|
+
abstract leaveLocalPlayerVehicle(vehicle: number, flags?: number): void;
|
|
106
|
+
/**
|
|
107
|
+
* Applies visual/performance modifications to a vehicle.
|
|
108
|
+
*/
|
|
109
|
+
abstract applyMods(vehicle: number, mods: ClientVehicleMods): void;
|
|
110
|
+
/**
|
|
111
|
+
* Updates door lock state.
|
|
112
|
+
*/
|
|
113
|
+
abstract setDoorsLocked(vehicle: number, locked: boolean): void;
|
|
114
|
+
/**
|
|
115
|
+
* Starts or stops the engine.
|
|
116
|
+
*/
|
|
117
|
+
abstract setEngineRunning(vehicle: number, running: boolean, instant?: boolean): void;
|
|
118
|
+
/**
|
|
119
|
+
* Sets invincibility state for the vehicle entity.
|
|
120
|
+
*/
|
|
121
|
+
abstract setInvincible(vehicle: number, invincible: boolean): void;
|
|
122
|
+
/**
|
|
123
|
+
* Returns speed in meters per second.
|
|
124
|
+
*/
|
|
125
|
+
abstract getSpeed(vehicle: number): number;
|
|
126
|
+
/**
|
|
127
|
+
* Sets heading for a vehicle.
|
|
128
|
+
*/
|
|
129
|
+
abstract setHeading(vehicle: number, heading: number): void;
|
|
130
|
+
/**
|
|
131
|
+
* Teleports a vehicle to a world position.
|
|
132
|
+
*/
|
|
133
|
+
abstract teleport(vehicle: number, position: Vector3, heading?: number): void;
|
|
134
|
+
/**
|
|
135
|
+
* Returns whether a vehicle handle exists.
|
|
136
|
+
*/
|
|
137
|
+
abstract exists(vehicle: number): boolean;
|
|
138
|
+
/**
|
|
139
|
+
* Resolves the runtime network identifier for a vehicle.
|
|
140
|
+
*/
|
|
141
|
+
abstract getNetworkId(vehicle: number): number;
|
|
142
|
+
/**
|
|
143
|
+
* Resolves a vehicle handle from a runtime network identifier.
|
|
144
|
+
*/
|
|
145
|
+
abstract getFromNetworkId(networkId: number): number;
|
|
146
|
+
/**
|
|
147
|
+
* Reads a runtime state bag/state entry from a vehicle.
|
|
148
|
+
*/
|
|
149
|
+
abstract getState<T = unknown>(vehicle: number, key: string): T | undefined;
|
|
150
|
+
/**
|
|
151
|
+
* Returns the world position of a vehicle.
|
|
152
|
+
*/
|
|
153
|
+
abstract getPosition(vehicle: number): Vector3 | null;
|
|
154
|
+
/**
|
|
155
|
+
* Returns the heading of a vehicle.
|
|
156
|
+
*/
|
|
157
|
+
abstract getHeading(vehicle: number): number;
|
|
158
|
+
/**
|
|
159
|
+
* Returns the model hash of a vehicle.
|
|
160
|
+
*/
|
|
161
|
+
abstract getModel(vehicle: number): number;
|
|
162
|
+
/**
|
|
163
|
+
* Returns the current number plate text.
|
|
164
|
+
*/
|
|
165
|
+
abstract getPlate(vehicle: number): string;
|
|
166
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './IClientVehiclePort';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './IClientVehiclePort';
|