package systems import ( "fmt" "lab.zaar.be/thefish/alchemyst-go/engine/ecs" "lab.zaar.be/thefish/alchemyst-go/engine/gamemap" "lab.zaar.be/thefish/alchemyst-go/engine/types" "lab.zaar.be/thefish/alchemyst-go/ui/mainwindow" ) type MobRenderSystem struct { Controller *ecs.Controller Layer *mainwindow.Layer Viewport *mainwindow.ViewPort *gamemap.Level } func (mrs MobRenderSystem) Process(){ for e := range mrs.Controller.GetEntities() { if mrs.Controller.HasComponent(e, ecs.CoordsComponent) && mrs.Controller.HasComponent(e, ecs.AppearanceComponent) { pos := mrs.Controller.GetComponent(e, ecs.CoordsComponent).(types.Coords) appearance := mrs.Controller.GetComponent(e, ecs.AppearanceComponent).(types.Appearance) vpc, err := mrs.Viewport.ToVPCoords(pos) if err != nil { fmt.Printf("Err: " , err) } mrs.Layer.WithRawColor(appearance.ColorSet.Fg.GetColor()).Put(vpc.X, vpc.Y, appearance.Glyph.GetGlyph()) } } } func (mrs MobRenderSystem) SystemType() string { return ecs.MobRenderSystem }