ecspresso
    Preparing search index...

    Function defineStateMachine

    • Define a state machine with type-safe state names.

      Type Parameters

      • S extends string

        Union of state name strings, inferred from states keys

      Parameters

      • id: string

        Unique identifier for this definition

      • config: { initial: NoInfer<S>; states: Record<S, StateConfig<NoInfer<S>>> }

        Initial state and state configurations

      Returns StateMachineDefinition<S>

      A frozen StateMachineDefinition

      const enemyFSM = defineStateMachine('enemy', {
      initial: 'idle',
      states: {
      idle: {
      onEnter: ({ ecs, entityId }) => { ... },
      transitions: [{ target: 'chase', guard: ({ ecs, entityId }) => playerNearby(ecs, entityId) }],
      },
      chase: {
      onUpdate: ({ ecs, entityId, dt }) => { ... },
      on: { playerLost: 'idle' },
      },
      },
      });