@rpgjs/physic
Version:
A deterministic 2D top-down physics library for RPG, sandbox and MMO games
105 lines • 2.99 kB
TypeScript
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