fixed observers, added GameObserver

This commit is contained in:
2024-02-11 14:24:30 +01:00
parent 72f0aa7691
commit 65ddec3fa4
18 changed files with 122 additions and 53 deletions

View File

@@ -6,6 +6,7 @@ import (
"log"
"openquell/assets"
"openquell/components"
"openquell/config"
"openquell/observers"
"github.com/mlange-42/arche/ecs"
@@ -27,10 +28,11 @@ func NewGrid(world *ecs.World,
// we use this to turn our tiles into iterable entities, used for
// collision detection, transformation and other things
playermapper := generic.NewMap4[
playermapper := generic.NewMap5[
components.Position,
components.Velocity,
components.Renderable,
components.Speed,
components.Player](world)
solidmapper := generic.NewMap4[
@@ -48,6 +50,7 @@ func NewGrid(world *ecs.World,
var pos *components.Position
var render *components.Renderable
var speed *components.Speed
playerobserver := observers.GetPlayerObserver(world)
@@ -60,9 +63,9 @@ func NewGrid(world *ecs.World,
pos, render, _, _ = solidmapper.Get(entity)
case tile.Player:
entity := playermapper.New()
pos, _, render, _ = playermapper.Get(entity)
pos, _, render, speed, _ = playermapper.Get(entity)
playerobserver.AddEntity(entity)
speed.Value = config.PLAYERSPEED
fmt.Printf("player start pos: %d,%d\n", point.X*tilesize, point.Y*tilesize)
case tile.Collectible:
entity := colmapper.New()