openquell/systems/hud_system.go

45 lines
902 B
Go

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)
}