道岔ZDJ9电路系统

This commit is contained in:
xzb 2023-09-05 14:47:38 +08:00
parent 4a69767c4d
commit 83c53f27f6
4 changed files with 8 additions and 46 deletions

View File

@ -4,6 +4,7 @@ import (
"fmt" "fmt"
"time" "time"
"github.com/yohamta/donburi/features/events"
"joylink.club/ecs" "joylink.club/ecs"
system "joylink.club/ecs/examples/rtss/sys" system "joylink.club/ecs/examples/rtss/sys"
) )
@ -15,4 +16,5 @@ func main() {
w.StartUp() w.StartUp()
time.Sleep(5 * time.Second) time.Sleep(5 * time.Second)
events.ProcessAllEvents(nil)
} }

@ -1 +1 @@
Subproject commit 8ffea356da60f2811eed5735c5733c0a24b0fbea Subproject commit c3b9d965c607a2f29e0bdc586aba6851d4f29f13

View File

@ -1,45 +0,0 @@
package system
import (
"github.com/yohamta/donburi/filter"
"joylink.club/ecs"
"joylink.club/rtsssimulation/components"
"joylink.club/rtsssimulation/umi"
)
// 信号机继电器系统
type SignalRelaySystem struct {
//继电器系统基类
relaySystem
//信号机查询
query *ecs.Query
}
func NewSignalReplaySystem() *SignalRelaySystem {
return &SignalRelaySystem{
relaySystem: relaySystem{relayQuery: make(map[string]*ecs.Query)},
query: ecs.NewQuery(filter.Contains(components.SignalStateComponent)),
}
}
// world 执行
func (me *SignalRelaySystem) Update(world ecs.World) {
//迭代所有信号机
me.query.Each(world, func(signalEntry *ecs.Entry) {
//key-继电器作用名value-继电器实体
usageRelayMapper := make(map[string]*ecs.Entry)
//迭代一个信号机关联的所有继电器
me.getDeviceRelayQuery(signalEntry).Each(world, func(signalRelayEntry *ecs.Entry) {
relayId := components.DeviceIdentityComponent.Get(signalRelayEntry).Id
relayModel := (WorldModelStorage(world).FindById(relayId)).(umi.IRelayModel)
usageRelayMapper[relayModel.UsageName()] = signalRelayEntry
})
//根据具体业务逻辑处理继电器
me.dealWithRelays(world, signalEntry, usageRelayMapper)
})
}
// 根据具体业务逻辑处理继电器
func (me *SignalRelaySystem) dealWithRelays(world ecs.World, signalEntry *ecs.Entry, relays map[string]*ecs.Entry) {
}

View File

@ -0,0 +1,5 @@
package system
// ZDJ9道岔系统
type SwitchZdj9System struct {
}