UNPKG

@tolokoban/tgd

Version:

ToloGameDev library for WebGL2

22 lines 1.87 kB
export class TgdTimeInterval { constructor(options) { this.intervalInSeconds = 0; this.action = undefined; this.previousTime = 0; this.intervalInSeconds = options.intervalInSeconds; this.action = options.action; } /** * If more than `intervalInSeconds` have passed since * then last call of `update()`, then we call `action()`. */ update(time, delta) { const deltaFromPrevious = time - this.previousTime; if (deltaFromPrevious < this.intervalInSeconds) return; this.intervalInSeconds = Math.max(this.intervalInSeconds, 1 / 60); this.previousTime += Math.floor(deltaFromPrevious / this.intervalInSeconds) * this.intervalInSeconds; this.action?.(time, delta); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJ2YWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGltZS9pbnRlcnZhbC9pbnRlcnZhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxNQUFNLE9BQU8sZUFBZTtJQU14QixZQUFZLE9BQStCO1FBTHBDLHNCQUFpQixHQUFHLENBQUMsQ0FBQTtRQUNyQixXQUFNLEdBQTJDLFNBQVMsQ0FBQTtRQUV6RCxpQkFBWSxHQUFHLENBQUMsQ0FBQTtRQUdwQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFBO1FBQ2xELElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQTtJQUNoQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLElBQVksRUFBRSxLQUFhO1FBQzlCLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUE7UUFDbEQsSUFBSSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCO1lBQUUsT0FBTTtRQUV0RCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFBO1FBQ2pFLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUE7UUFDcEcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUM5QixDQUFDO0NBQ0oifQ==