44 lines
1.3 KiB
Go
44 lines
1.3 KiB
Go
package systems
|
|
|
|
import (
|
|
"lab.zaar.be/thefish/alchemyst-go/engine/ecs"
|
|
"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
|
|
}
|
|
|
|
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)
|
|
|
|
//fixme
|
|
// if vp.Rect.InBounds(pos) {
|
|
// Clear the cell this entity occupies, so it is the only glyph drawn there
|
|
|
|
//for i := 0; i <= 2; i++ {
|
|
//mrs.Layer.ClearArea(pos.X, pos.Y,1,1) //WHY?!
|
|
//gogue.ClearArea(pos.X, pos.Y, 1, 1, i)
|
|
//}
|
|
|
|
//fixme
|
|
mrs.Layer.WithRawColor(appearance.ColorSet.Fg.GetColor()).Put(pos.X, pos.Y, appearance.Glyph.GetGlyph())
|
|
mrs.Layer.WithRawColor(appearance.ColorSet.Fg.GetColor()).Put(pos.X, pos.Y, appearance.Glyph.GetGlyph())
|
|
//gogue.PrintGlyph(pos.X, pos.Y, appearance.Glyph, "", appearance.Layer)
|
|
|
|
//}
|
|
}
|
|
}
|
|
}
|
|
|
|
func (mrs MobRenderSystem) SystemType() string {
|
|
return ecs.MobRenderSystem
|
|
} |