Skip to content

TimerPlugin

Defined in: plugins/TimerPlugin.ts:641

Interface for the Timer Plugin which manages both main-thread and web worker timers.

The Timer Plugin provides functionality for:

  • Creating and managing countdown and count-up timers
  • Running timers in a web worker for better performance
  • Pausing and resuming all timers
  • Handling timer lifecycle events
// Create a 5-second countdown timer
const countdown = this.app.timers.createTimer({
duration: 5000,
autoStart: true,
onTick: (remaining) => {
console.log(`Time remaining: ${formatTime(remaining, 'mm:ss')}`);
},
onComplete: () => {
console.log('Timer completed!');
}
});
// Create a count-up timer in a web worker
const stopwatch = this.app.timers.createTimer({
useWorker: true,
workerInterval: 100, // Update every 100ms
onTick: (elapsed) => {
console.log(`Time elapsed: ${formatTime(elapsed, 'mm:ss')}`);
}
});
// Pause all timers
this.app.timers.pauseAllTimers();
// Resume all timers
this.app.timers.resumeAllTimers();

new TimerPlugin(): TimerPlugin

Defined in: plugins/TimerPlugin.ts:658

TimerPlugin

Plugin.constructor

__dill_pixel_method_binding_root: boolean

Defined in: plugins/Plugin.ts:39

Plugin.__dill_pixel_method_binding_root


id: string = 'Plugin'

Defined in: plugins/Plugin.ts:48

ITimerPlugin.id

Plugin.id


readonly onAllTimersPaused: Signal<() => void>

Defined in: plugins/TimerPlugin.ts:655

Signal emitted when all timers are paused.

this.app.timers.onAllTimersPaused.connect(() => {
console.log('All timers paused');
});

ITimerPlugin.onAllTimersPaused


readonly onAllTimersResumed: Signal<() => void>

Defined in: plugins/TimerPlugin.ts:656

Signal emitted when all timers are resumed.

this.app.timers.onAllTimersResumed.connect(() => {
console.log('All timers resumed');
});

ITimerPlugin.onAllTimersResumed


readonly onTimerCreated: Signal<(timer) => void>

Defined in: plugins/TimerPlugin.ts:653

Signal emitted when a new timer is created.

this.app.timers.onTimerCreated.connect((timer) => {
console.log(`New timer created with ID: ${timer.getId()}`);
});

ITimerPlugin.onTimerCreated


readonly onTimerDestroyed: Signal<(timer) => void>

Defined in: plugins/TimerPlugin.ts:654

Signal emitted when a timer is destroyed.

this.app.timers.onTimerDestroyed.connect((timer) => {
console.log(`Timer destroyed: ${timer.getId()}`);
});

ITimerPlugin.onTimerDestroyed

get app(): A

Defined in: plugins/Plugin.ts:53

A

ITimerPlugin.app

Plugin.app


get hasWorkerSupport(): boolean

Defined in: plugins/TimerPlugin.ts:649

boolean


get options(): O

Defined in: plugins/Plugin.ts:44

O

ITimerPlugin.options

Plugin.options

addSignalConnection(…args): void

Defined in: plugins/Plugin.ts:79

Add signal connections to the container.

SignalConnection[]

The signal connections to add.

void

ITimerPlugin.addSignalConnection

Plugin.addSignalConnection


adjustWorkerTimer(timerId, timeAdjustment): void

Defined in: plugins/TimerPlugin.ts:832

Adjusts the time of a worker timer. This is primarily used internally by the Timer class.

string

The ID of the worker timer to adjust

number

The amount of time to add (positive) or remove (negative) in milliseconds

void

// This is typically called internally by the Timer class
this.app.timers.adjustWorkerTimer(timer.getId(), 5000); // Add 5 seconds

ITimerPlugin.adjustWorkerTimer


clearSignalConnections(): void

Defined in: plugins/Plugin.ts:85

void

ITimerPlugin.clearSignalConnections

Plugin.clearSignalConnections


createTimer(options?): Timer

Defined in: plugins/TimerPlugin.ts:782

Creates a new timer with the specified options.

TimerOptions

Configuration options for the timer

Timer

A new Timer instance

// Create a looping timer that runs in a web worker
const timer = this.app.timers.createTimer({
duration: 1000,
loop: true,
useWorker: true,
onTick: (remaining) => {
console.log(`${remaining}ms remaining`);
}
});

ITimerPlugin.createTimer


destroy(): void

Defined in: plugins/TimerPlugin.ts:765

void

ITimerPlugin.destroy

Plugin.destroy


destroyAllTimers(): void

Defined in: plugins/TimerPlugin.ts:826

Destroys all active timers, both main thread and worker timers . This will remove all timers from the plugin and stop them.

void

this.app.timers.destroyAllTimers();

ITimerPlugin.destroyAllTimers


destroyTimer(timer): void

Defined in: plugins/TimerPlugin.ts:796

Destroys a timer, cleaning up all resources and removing it from the plugin.

Timer

The timer instance to destroy

void

const timer = this.app.timers.createTimer({ duration: 5000 });
// ... later ...
this.app.timers.destroyTimer(timer);

ITimerPlugin.destroyTimer


initialize(options?, _app?): void | Promise<void>

Defined in: plugins/Plugin.ts:61

Partial<any>

IApplication<DataSchema, ActionContext, Action>

void | Promise<void>

ITimerPlugin.initialize

Plugin.initialize


pauseAllTimers(): void

Defined in: plugins/TimerPlugin.ts:810

Pauses all active timers, both main thread and worker timers. Timers will maintain their current state and can be resumed later.

void

// Pause all timers when the game loses focus
window.onblur = () => {
this.app.timers.pauseAllTimers();
};

ITimerPlugin.pauseAllTimers


postInitialize(): void

Defined in: plugins/TimerPlugin.ts:677

void

ITimerPlugin.postInitialize

Plugin.postInitialize


resetWorkerTimer(timerId): void

Defined in: plugins/TimerPlugin.ts:756

Resets a worker timer to its initial state. This is primarily used internally by the Timer class.

string

The ID of the worker timer to reset

void

// This is typically called internally by the Timer class
this.app.timers.resetWorkerTimer(timer.getId());

ITimerPlugin.resetWorkerTimer


resumeAllTimers(): void

Defined in: plugins/TimerPlugin.ts:818

Resumes all paused timers, both main thread and worker timers. Timers will continue from their paused state.

void

// Resume all timers when the game regains focus
window.onfocus = () => {
this.app.timers.resumeAllTimers();
};

ITimerPlugin.resumeAllTimers


startWorkerTimer(timerId, options): void

Defined in: plugins/TimerPlugin.ts:731

string

TimerOptions

void


stopWorkerTimer(timerId): void

Defined in: plugins/TimerPlugin.ts:746

string

void