UNPKG

@rpgjs/physic

Version:

A deterministic 2D top-down physics library for RPG, sandbox and MMO games

105 lines 2.99 kB
import { Entity } from '../physics/Entity'; import { CollisionInfo } from '../collision/Collider'; /** * Event handler types */ export type CollisionEventHandler = (collision: CollisionInfo) => void; export type EntityEventHandler = (entity: Entity) => void; export type SleepEventHandler = (entity: Entity) => void; export type WakeEventHandler = (entity: Entity) => void; /** * Event system for physics world * * Manages event handlers for collisions, entity lifecycle, and other physics events. */ export declare class EventSystem { private collisionEnterHandlers; private collisionExitHandlers; private entityAddedHandlers; private entityRemovedHandlers; private entitySleepHandlers; private entityWakeHandlers; /** * Registers a collision enter handler * * @param handler - Handler function * @returns Unsubscribe function */ onCollisionEnter(handler: CollisionEventHandler): () => void; /** * Registers a collision exit handler * * @param handler - Handler function * @returns Unsubscribe function */ onCollisionExit(handler: CollisionEventHandler): () => void; /** * Registers an entity added handler * * @param handler - Handler function * @returns Unsubscribe function */ onEntityAdded(handler: EntityEventHandler): () => void; /** * Registers an entity removed handler * * @param handler - Handler function * @returns Unsubscribe function */ onEntityRemoved(handler: EntityEventHandler): () => void; /** * Registers an entity sleep handler * * @param handler - Handler function * @returns Unsubscribe function */ onEntitySleep(handler: SleepEventHandler): () => void; /** * Registers an entity wake handler * * @param handler - Handler function * @returns Unsubscribe function */ onEntityWake(handler: WakeEventHandler): () => void; /** * Emits a collision enter event * * @param collision - Collision information */ emitCollisionEnter(collision: CollisionInfo): void; /** * Emits a collision exit event * * @param collision - Collision information */ emitCollisionExit(collision: CollisionInfo): void; /** * Emits an entity added event * * @param entity - Entity that was added */ emitEntityAdded(entity: Entity): void; /** * Emits an entity removed event * * @param entity - Entity that was removed */ emitEntityRemoved(entity: Entity): void; /** * Emits an entity sleep event * * @param entity - Entity that went to sleep */ emitEntitySleep(entity: Entity): void; /** * Emits an entity wake event * * @param entity - Entity that woke up */ emitEntityWake(entity: Entity): void; /** * Clears all event handlers */ clear(): void; } //# sourceMappingURL=events.d.ts.map