package systems import ( "fmt" "openquell/assets" "openquell/observers" "github.com/hajimehoshi/ebiten/v2" "github.com/hajimehoshi/ebiten/v2/ebitenutil" "github.com/mlange-42/arche/ecs" ) type HudSystem struct { World *ecs.World Cellsize int Observer *observers.GameObserver Plan *assets.RawLevel } func NewHudSystem(world *ecs.World, plan *assets.RawLevel) System { system := &HudSystem{ Observer: observers.GetGameObserver(world), World: world, Plan: plan, } return system } func (system *HudSystem) Update() error { return nil } func (system *HudSystem) Draw(screen *ebiten.Image) { op := &ebiten.DrawImageOptions{} screen.DrawImage(assets.Assets["hud"], op) ebitenutil.DebugPrintAt(screen, fmt.Sprintf( "FPS: %02.f TPS: %02.f Level %s: %s", ebiten.ActualFPS(), ebiten.ActualTPS(), system.Plan.Name, system.Plan.Description, ), 10, 10) }