func (ds *DeathSystem) New() { ds.System = engi.NewSystem() // Subscribe to ScoreMessage engi.Mailbox.Listen("ScoreMessage", func(message engi.Message) { collision, isCollision := message.(engi.CollisionMessage) if isCollision { log.Println(collision, message) log.Println("DEAD") } }) }
func (ms *SpeedSystem) New() { ms.System = engi.NewSystem() engi.Mailbox.Listen("CollisionMessage", func(message engi.Message) { log.Println("collision") collision, isCollision := message.(engi.CollisionMessage) if isCollision { var speed *SpeedComponent if !collision.Entity.Component(&speed) { return } speed.X *= -1 } }) }
func (sc *ScoreSystem) New() { sc.upToDate = true sc.System = engi.NewSystem() engi.Mailbox.Listen("ScoreMessage", func(message engi.Message) { scoreMessage, isScore := message.(ScoreMessage) if !isScore { return } sc.scoreLock.Lock() if scoreMessage.Player != 1 { sc.PlayerOneScore += 1 } else { sc.PlayerTwoScore += 1 } log.Println("The score is now", sc.PlayerOneScore, "vs", sc.PlayerTwoScore) sc.upToDate = false sc.scoreLock.Unlock() }) }
func (rock *RockSpawnSystem) New() { rock.System = engi.NewSystem() }
func (control *ControlSystem) New() { control.System = engi.NewSystem() }
func (fs *FallingSystem) New() { fs.System = engi.NewSystem() //engi.Mailbox.Listen("CollisionMessage", fs) }
func (c *ControlSystem) New() { c.System = engi.NewSystem() }
func (bs *BallSystem) New() { bs.System = engi.NewSystem() }
func (s *HideSystem) New() { s.System = engi.NewSystem() }
func (s *ScaleSystem) New() { s.System = engi.NewSystem() }