package common_sys import ( "joylink.club/ecs" "joylink.club/ecs/filter" "joylink.club/rtsssimulation/component" ) type CounterSys struct { query *ecs.Query } func NewCounterSys() *CounterSys { return &CounterSys{ query: ecs.NewQuery(filter.Contains(component.CounterType)), } } // 更新 func (c *CounterSys) Update(w ecs.World) { c.query.Each(w, func(entry *ecs.Entry) { counter := component.CounterType.Get(entry) if counter.Step > 0 { counter.Val = counter.Val + counter.Step } }) }