UNPKG

@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
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 {};