All files / libs/games/src/engine scheduler.ts

100% Statements 8/8
100% Branches 0/0
100% Functions 6/6
100% Lines 8/8

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 4150x                       50x         62x       61x       20x       2x       1x       2x      
import * as ROT from "rot-js";
 
import { Entity } from "./entities/entity";
 
export interface SchedulerInterface {
    add(item: Entity, repeat: boolean): void;
    next(): Entity | null;
    remove(item: Entity): void;
    clear(): void;
    getTime(): number;
}
 
export class Scheduler implements SchedulerInterface {
    // eslint-disable-next-line @typescript-eslint/no-explicit-any
    private readonly _scheduler: any;
 
    public constructor() {
        this._scheduler = new ROT.Scheduler.Simple();
    }
 
    public add(item: Entity, repeat: boolean): void {
        return this._scheduler.add(item, repeat);
    }
 
    public next(): Entity | null {
        return this._scheduler.next();
    }
 
    public remove(item: Entity): void {
        return this._scheduler.remove(item);
    }
 
    public clear(): void {
        return this._scheduler.clear();
    }
 
    public getTime(): number {
        return this._scheduler.getTime();
    }
}