import { Text, Container } from 'pixi.js';

/**
 * Дебаг-оверлей: FPS и произвольные строки статистики.
 * Добавьте view в uiRoot и вызывайте update(dt) каждый тик.
 */
export class DebugOverlay {
    readonly view: Container;
    private text: Text;
    private lines: string[] = [];
    private acc = 0;
    private frames = 0;
    private fps = 0;

    constructor(enabled = true) {
        this.view = new Container();
        this.view.visible = enabled;
        this.text = new Text({
            text: '',
            style: { fontFamily: 'monospace', fontSize: 8, fill: 0x00ff88, lineHeight: 10 }
        });
        this.view.addChild(this.text);
    }

    /** Задать строки статуса (fps подставляется автоматически). */
    setLines(lines: string[]): void {
        this.lines = lines;
    }

    update(dt: number): void {
        this.acc += dt;
        this.frames++;
        if (this.acc >= 0.5) {
            this.fps = Math.round(this.frames / this.acc);
            this.acc = 0;
            this.frames = 0;
        }
        this.text.text = `fps ${this.fps}\n${this.lines.join('\n')}`;
    }
}