defineBehavior
@zylem/game-lib / behavior / defineBehavior
Function: defineBehavior()
defineBehavior<
O,H,I>(config):BehaviorDescriptor<O,H,I>
Defined in: node_modules/.pnpm/@zylem+behaviors@0.8.9_@types+react@19.3.0_react@19.3.0_three@0.185.1/node_modules/@zylem/behaviors/dist/behavior-system-DkFAwLb_.d.ts:105
Define a typed behavior descriptor.
Type Parameters
O
O extends Record<string, any>
H
H extends Record<string, any> = Record<string, never>
I
I = unknown
Parameters
config
DefineBehaviorConfig<O, H, I>
Returns
BehaviorDescriptor<O, H, I>
Example
export const WorldBoundary2DBehavior = defineBehavior({
name: 'world-boundary-2d',
defaultOptions: { boundaries: { top: 0, bottom: 0, left: 0, right: 0 } },
systemFactory: (ctx) => new WorldBoundary2DSystem(ctx.world),
createHandle: (ref) => ({
getLastHits: () => ref.fsm?.getLastHits() ?? null,
getMovement: (moveX: number, moveY: number) =>
ref.fsm?.getMovement(moveX, moveY) ?? { moveX, moveY },
}),
});
// Usage - handle has getLastHits and getMovement with full types
const boundary = ship.use(WorldBoundary2DBehavior, { ... });
const hits = boundary.getLastHits(); // Fully typed!