UNPKG

@dcl/ecs

Version:
110 lines (109 loc) 4.11 kB
import { InputAction } from '../components/generated/pb/decentraland/sdk/components/common/input_action.gen'; import { PBPointerEventsResult } from '../components/generated/pb/decentraland/sdk/components/pointer_events_result.gen'; import { IEngine } from '../engine/types'; import { Entity } from '../engine/entity'; import { IInputSystem } from '../engine/input'; /** * @public */ export type EventSystemCallback = (event: PBPointerEventsResult) => void; /** * @public */ export type EventSystemOptions = { button: InputAction; hoverText?: string; maxDistance?: number; showFeedback?: boolean; showHighlight?: boolean; maxPlayerDistance?: number; }; export declare const getDefaultOpts: (opts?: Partial<EventSystemOptions>) => EventSystemOptions; /** * @public */ export interface PointerEventsSystem { /** * @public * Remove the callback for onPointerDown event * @param entity - Entity where the callback was attached */ removeOnPointerDown(entity: Entity): void; /** * @public * Remove the callback for onPointerUp event * @param entity - Entity where the callback was attached */ removeOnPointerUp(entity: Entity): void; /** * @public * Remove the callback for onPointerHoverEnter event * @param entity - Entity where the callback was attached */ removeOnPointerHoverEnter(entity: Entity): void; /** * @public * Remove the callback for onPointerHoverLeave event * @param entity - Entity where the callback was attached */ removeOnPointerHoverLeave(entity: Entity): void; /** * @public * Execute callback when the user press the InputButton pointing at the entity * @param pointerData - Entity to attach the callback, Opts to trigger Feedback and Button * @param cb - Function to execute when click fires */ onPointerDown(pointerData: { entity: Entity; opts?: Partial<EventSystemOptions>; }, cb: EventSystemCallback): void; /** * @deprecated Use onPointerDown with (pointerData, cb) * @param entity - Entity to attach the callback * @param cb - Function to execute when click fires * @param opts - Opts to trigger Feedback and Button */ onPointerDown(entity: Entity, cb: EventSystemCallback, opts?: Partial<EventSystemOptions>): void; /** * @public * Execute callback when the user releases the InputButton pointing at the entity * @param pointerData - Entity to attach the callback - Opts to trigger Feedback and Button * @param cb - Function to execute when click fires */ onPointerUp(pointerData: { entity: Entity; opts?: Partial<EventSystemOptions>; }, cb: EventSystemCallback): void; /** * @deprecated Use onPointerUp with (pointerData, cb) * @param entity - Entity to attach the callback * @param cb - Function to execute when click fires * @param opts - Opts to trigger Feedback and Button */ onPointerUp(entity: Entity, cb: EventSystemCallback, opts?: Partial<EventSystemOptions>): void; /** * @public * Execute callback when the user place the pointer over the entity * @param pointerData - Entity to attach the callback - Opts to trigger Feedback and Button * @param cb - Function to execute when click fires */ onPointerHoverEnter(pointerData: { entity: Entity; opts?: Partial<EventSystemOptions>; }, cb: EventSystemCallback): void; /** * @public * Execute callback when the user take the pointer out of the entity * @param pointerData - Entity to attach the callback - Opts to trigger Feedback and Button * @param cb - Function to execute when click fires */ onPointerHoverLeave(pointerData: { entity: Entity; opts?: Partial<EventSystemOptions>; }, cb: EventSystemCallback): void; } /** * @public * ___DO NOT USE___ use pointerEventsSystem instead */ export declare function createPointerEventsSystem(engine: IEngine, inputSystem: IInputSystem): PointerEventsSystem;