added hud system, turned all observers into one central observer

This commit is contained in:
2024-02-27 14:45:23 +01:00
parent 451b66a53d
commit 18be0ebe38
13 changed files with 160 additions and 206 deletions

View File

@@ -71,8 +71,10 @@ func NewGrid(world *ecs.World,
var player *components.Player
var destroyable *components.Destroyable
playerobserver := observers.GetPlayerObserver(world)
obstacleobserver := observers.GetObstacleObserver(world)
playerID := ecs.ComponentID[components.Player](world)
obstacleID := ecs.ComponentID[components.Obstacle](world)
observer := observers.GetGameObserver(world)
for point, tile := range mapslice {
switch tile.Renderable {
@@ -84,7 +86,7 @@ func NewGrid(world *ecs.World,
case tile.Player:
entity := playermapper.New()
pos, vel, render, player = playermapper.Get(entity)
playerobserver.AddEntity(entity)
observer.AddEntity(entity, playerID)
vel.Speed = config.PLAYERSPEED
player.IsPrimary = tile.IsPrimary
player.Sprites = tile.Tiles
@@ -97,7 +99,7 @@ func NewGrid(world *ecs.World,
vel.Direction = tile.Direction
vel.PointingAt = tile.Direction
vel.Speed = config.PLAYERSPEED
obstacleobserver.AddEntity(entity)
observer.AddEntity(entity, obstacleID)
case tile.Transient:
entity := transmapper.New()
pos, render, transient = transmapper.Get(entity)