rts-sim-module/system/signal_system.go
2023-08-16 17:17:20 +08:00

43 lines
968 B
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package system
import (
"github.com/yohamta/donburi/filter"
"joylink.club/ecs"
"joylink.club/rtsssimulation/components"
"joylink.club/rtsssimulation/state"
)
type SignalSystem struct {
}
// 信号机显示状态查询
var signalQuery *ecs.Query = ecs.NewQuery(filter.Contains(components.ComDeviceIdentity, components.ComSignalState))
// world 执行
func (me *SignalSystem) Update(world ecs.World) {
}
func NewSignalSystem() *SignalSystem {
return &SignalSystem{}
}
// 设置某个信号机的显示
// 返回值true-设置成功false-设置失败
func SetSignalDisplay(w ecs.World, signalId string, display state.SignalAspect) bool {
var signalEntry *ecs.Entry
signalQuery.Each(w, func(e *ecs.Entry) {
if signalId == components.ComDeviceIdentity.Get(e).Id {
signalEntry = e
}
})
//s
if signalEntry == nil {
return false
}
//
signalState := components.ComSignalState.Get(signalEntry)
signalState.Display = display
//
return true
}