All files / games/src/engine scheduler.ts

100% Statements 40/40
100% Branches 7/7
100% Functions 7/7
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 69x 69x 69x 69x 69x 69x 69x 69x 68x 68x 69x 69x 20x 20x 69x 69x 6x 6x 69x 69x 1x 1x 69x 69x 2x 2x 69x  
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();
    }
}