ecspresso
    Preparing search index...

    Function createTimerPlugin

    • Create a timer plugin for ECSpresso.

      This plugin provides:

      • Timer update system that processes all timer components each frame
      • justFinished flag pattern for one-frame completion detection
      • Automatic cleanup when entities are removed

      Type Parameters

      • G extends string = "timers"

      Parameters

      Returns Plugin<WorldConfigFrom<TimerComponentTypes>, EmptyConfig, "timer-update", G>

      const ecs = ECSpresso
      .create<Components, Events, Resources>()
      .withPlugin(createTimerPlugin())
      .build();

      // Spawn entity with timer
      ecs.spawn({
      ...createRepeatingTimer(5),
      spawner: true,
      });

      // React to timer completion in a system
      ecs.addSystem('spawn-on-timer')
      .addQuery('spawners', { with: ['timer', 'spawner'] })
      .setProcess((queries, _dt, ecs) => {
      for (const { components } of queries.spawners) {
      if (components.timer.justFinished) {
      ecs.spawn({ enemy: true });
      }
      }
      });