All files / games/src/engine scheduler.ts

100% Statements 40/40
100% Branches 6/6
100% Functions 6/6
100% Lines 40/40

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 411x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 33x 33x 1x 1x 15x 15x 1x 1x 9x 9x 1x 1x 2x 2x 1x 1x 1x 1x 1x 1x 2x 2x 1x  
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();
    }
}