2024-02-27 14:45:23 +01:00
|
|
|
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)
|
2024-02-28 19:58:05 +01:00
|
|
|
|
|
|
|
|
ebitenutil.DebugPrintAt(screen, fmt.Sprintf("Score: %d", system.Observer.GetScore()), 10, 455)
|
2024-02-27 14:45:23 +01:00
|
|
|
}
|