UNPKG

ecspresso

Version:

A minimal Entity-Component-System library for typescript and javascript.

18 lines (17 loc) 784 B
/** * Lazy monotonic registry mapping layer name → unique bit. Lets pair * filtering use a single `(a.collidesWithMask & b.layerBit)` check * instead of `Array.includes` on every collision pair. * * One registry per dimension (2D and 3D) — user-defined layer namespaces * are independent, so bits should not be shared across systems. * * Maximum 32 layers per registry (one per bit in a 32-bit signed int). * Crossing the limit throws on the next `getLayerBit` call. */ export interface LayerBitRegistry { getLayerBit(layer: string): number; /** OR of `getLayerBit` for every entry. Cached by array reference. */ getCollidesWithMask(collidesWith: readonly string[]): number; } export declare function createLayerBitRegistry(label: string): LayerBitRegistry;