@dcl-sdk/utils
Version:
A collection of helpers to make it easier to build a Decentraland scene using the SDK 7.
102 lines (101 loc) • 4.82 kB
TypeScript
import { Entity, IEngine } from '@dcl/sdk/ecs';
import { Vector3, Color3 } from '@dcl/sdk/math';
export declare const LAYER_1 = 1;
export declare const LAYER_2 = 2;
export declare const LAYER_3 = 4;
export declare const LAYER_4 = 8;
export declare const LAYER_5 = 16;
export declare const LAYER_6 = 32;
export declare const LAYER_7 = 64;
export declare const LAYER_8 = 128;
export declare const ALL_LAYERS = 255;
export declare const NO_LAYERS = 0;
export declare let PLAYER_LAYER_ID: number;
export type TriggerBoxAreaSpec = {
type: 'box';
position?: Vector3;
scale?: Vector3;
};
export type TriggerSphereAreaSpec = {
type: 'sphere';
position?: Vector3;
radius?: number;
};
export type TriggerAreaSpec = TriggerBoxAreaSpec | TriggerSphereAreaSpec;
export type TriggerBoxArea = {
position: Vector3;
scale: Vector3;
};
export type TriggerSphereArea = {
position: Vector3;
radius: number;
};
export type TriggerArea = {
$case: 'box';
value: TriggerBoxArea;
} | {
$case: 'sphere';
value: TriggerSphereArea;
};
type OnTriggerEnterCallback = (entity: Entity) => void;
type OnTriggerExitCallback = (entity: Entity) => void;
export type Triggers = ReturnType<typeof createTriggers>;
declare function createTriggers(targetEngine: IEngine): {
addTrigger(entity: Entity, layerMask?: number, triggeredByMask?: number, areas?: Array<TriggerAreaSpec>, onEnterCallback?: OnTriggerEnterCallback, onExitCallback?: OnTriggerExitCallback, debugColor?: Color3): void;
removeTrigger(entity: Entity): void;
oneTimeTrigger(entity: Entity, layerMask?: number, triggeredByMask?: number, areas?: Array<TriggerAreaSpec>, onEnterCallback?: OnTriggerEnterCallback, debugColor?: Color3): void;
enableTrigger(entity: Entity, enabled: boolean): void;
isTriggerEnabled(entity: Entity): boolean;
getLayerMask(entity: Entity): number;
setLayerMask(entity: Entity, mask: number): void;
getTriggeredByMask(entity: Entity): number;
setTriggeredByMask(entity: Entity, mask: number): void;
getAreas(entity: Entity): readonly (import("@dcl/sdk/ecs").DeepReadonlyObject<{
readonly $case: "box";
readonly value: import("@dcl/sdk/ecs").MapResult<{
position: import("@dcl/sdk/ecs").ISchema<import("@dcl/sdk/ecs").Vector3Type>;
scale: import("@dcl/sdk/ecs").ISchema<import("@dcl/sdk/ecs").Vector3Type>;
}>;
}> | import("@dcl/sdk/ecs").DeepReadonlyObject<{
readonly $case: "sphere";
readonly value: import("@dcl/sdk/ecs").MapResult<{
position: import("@dcl/sdk/ecs").ISchema<import("@dcl/sdk/ecs").Vector3Type>;
radius: import("@dcl/sdk/ecs").ISchema<number>;
}>;
}>)[];
setAreas(entity: Entity, areas: Array<TriggerAreaSpec>): void;
setOnEnterCallback(entity: Entity, callback: OnTriggerEnterCallback): void;
setOnExitCallback(entity: Entity, callback: OnTriggerExitCallback): void;
enableDebugDraw(enabled: boolean): void;
isDebugDrawEnabled(): boolean;
};
export declare const triggers: {
addTrigger(entity: Entity, layerMask?: number, triggeredByMask?: number, areas?: Array<TriggerAreaSpec>, onEnterCallback?: OnTriggerEnterCallback, onExitCallback?: OnTriggerExitCallback, debugColor?: Color3): void;
removeTrigger(entity: Entity): void;
oneTimeTrigger(entity: Entity, layerMask?: number, triggeredByMask?: number, areas?: Array<TriggerAreaSpec>, onEnterCallback?: OnTriggerEnterCallback, debugColor?: Color3): void;
enableTrigger(entity: Entity, enabled: boolean): void;
isTriggerEnabled(entity: Entity): boolean;
getLayerMask(entity: Entity): number;
setLayerMask(entity: Entity, mask: number): void;
getTriggeredByMask(entity: Entity): number;
setTriggeredByMask(entity: Entity, mask: number): void;
getAreas(entity: Entity): readonly (import("@dcl/sdk/ecs").DeepReadonlyObject<{
readonly $case: "box";
readonly value: import("@dcl/sdk/ecs").MapResult<{
position: import("@dcl/sdk/ecs").ISchema<import("@dcl/sdk/ecs").Vector3Type>;
scale: import("@dcl/sdk/ecs").ISchema<import("@dcl/sdk/ecs").Vector3Type>;
}>;
}> | import("@dcl/sdk/ecs").DeepReadonlyObject<{
readonly $case: "sphere";
readonly value: import("@dcl/sdk/ecs").MapResult<{
position: import("@dcl/sdk/ecs").ISchema<import("@dcl/sdk/ecs").Vector3Type>;
radius: import("@dcl/sdk/ecs").ISchema<number>;
}>;
}>)[];
setAreas(entity: Entity, areas: Array<TriggerAreaSpec>): void;
setOnEnterCallback(entity: Entity, callback: OnTriggerEnterCallback): void;
setOnExitCallback(entity: Entity, callback: OnTriggerExitCallback): void;
enableDebugDraw(enabled: boolean): void;
isDebugDrawEnabled(): boolean;
};
export {};