import { Text, Container } from 'pixi.js';
import type { FpsMeter } from '../core/FpsMeter';
/**
* Дебаг-оверлей: FPS (из FpsMeter движка) и произвольные строки статистики.
* Добавьте view в uiRoot и вызывайте update(dt) каждый тик; перерисовка Text
* дорога (растеризация) — не чаще 0,5 с.
*/
export class DebugOverlay {
readonly view: Container;
private text: Text;
private lines: string[] = [];
private acc = 0;
constructor(
private readonly fpsMeter: FpsMeter,
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;
if (this.acc < 0.5) return;
this.acc = 0;
this.text.text = `fps ${this.fpsMeter.fps}\n${this.lines.join('\n')}`;
}
}