rts-sim-module/sys/device_sys/light.go

30 lines
677 B
Go
Raw Normal View History

2023-10-11 13:38:33 +08:00
package device_sys
import (
"joylink.club/ecs"
"joylink.club/ecs/filter"
"joylink.club/rtsssimulation/component"
)
// LightSys 灯控制系统
type LightSys struct {
query *ecs.Query
}
func NewLightSys() *LightSys {
return &LightSys{query: ecs.NewQuery(filter.Contains(component.LightDriveType, component.BitStateType))}
}
func (ls *LightSys) Update(w ecs.World) {
ls.query.Each(w, func(entry *ecs.Entry) {
//灯驱动
drive := component.LightDriveType.Get(entry)
//灯当前状态,true-灯丝有电流false-灯丝没有电流
state := component.BitStateType.Get(entry)
//驱动灯亮或灭
if drive.Td != state.Val {
state.Val = drive.Td
}
})
}