组件名称修改
This commit is contained in:
parent
b4830de31c
commit
e672fdb99d
@ -6,43 +6,47 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
// 系统时钟组件
|
// 系统时钟组件
|
||||||
var ComSystemTimer = ecs.NewComponentType[state.SystemTimer]()
|
var SystemTimerComponent = ecs.NewComponentType[state.SystemTimer]()
|
||||||
|
|
||||||
// 身份组件
|
// 身份组件
|
||||||
var ComDeviceIdentity = ecs.NewComponentType[state.DeviceIdentity]()
|
var DeviceIdentityComponent = ecs.NewComponentType[state.DeviceIdentity]()
|
||||||
|
|
||||||
// 持有实体标签的组件
|
// 持有实体标签的组件
|
||||||
var ComEntityTagHandler = ecs.NewComponentType[state.EntityTagHandler]()
|
var EntityTagHandlerComponent = ecs.NewComponentType[state.EntityTagHandler]()
|
||||||
|
|
||||||
|
// 百分比设备组件
|
||||||
|
var PercentageDeviceComponent = ecs.NewComponentType[state.PercentageDeviceState]()
|
||||||
|
var PercentageDeviceOperatingComponent = ecs.NewComponentType[state.PercentageDeviceOperating]()
|
||||||
|
|
||||||
// 道岔状态组件
|
// 道岔状态组件
|
||||||
var ComSwitchState = ecs.NewComponentType[state.SwitchState]()
|
var SwitchStateComponent = ecs.NewComponentType[state.SwitchState]()
|
||||||
|
|
||||||
// 道岔定反操继电器动作组件
|
// 道岔定反操继电器动作组件
|
||||||
var ComSwitchNRRelayOperating = ecs.NewComponentType[state.SwitchNRRelayOperating]()
|
var SwitchNRRelayOperatingComponent = ecs.NewComponentType[state.SwitchNRRelayOperating]()
|
||||||
|
|
||||||
// 道岔正常转动组件
|
// 道岔正常转动组件
|
||||||
var ComSwitchTurnOperating = ecs.NewComponentType[state.SwitchTurnOperating]()
|
var SwitchTurnOperatingComponent = ecs.NewComponentType[state.SwitchTurnOperating]()
|
||||||
|
|
||||||
// 物理区段状态组件
|
// 物理区段状态组件
|
||||||
var ComPhysicalSectionState = ecs.NewComponentType[state.PhysicalSectionState]()
|
var PhysicalSectionStateComponent = ecs.NewComponentType[state.PhysicalSectionState]()
|
||||||
|
|
||||||
// 信号机状态组件
|
// 信号机状态组件
|
||||||
var ComSignalState = ecs.NewComponentType[state.SignalState]()
|
var SignalStateComponent = ecs.NewComponentType[state.SignalState]()
|
||||||
|
|
||||||
// 信号机显示操作组件
|
// 信号机显示操作组件
|
||||||
var ComSignalDisplayOperating = ecs.NewComponentType[state.SignalDisplayOperating]()
|
var SignalDisplayOperatingComponent = ecs.NewComponentType[state.SignalDisplayOperating]()
|
||||||
|
|
||||||
// 单个屏蔽门状态组件
|
// 单个屏蔽门状态组件
|
||||||
var ComPsdCellState = ecs.NewComponentType[state.PsdCellState]()
|
var PsdCellStateComponent = ecs.NewComponentType[state.PsdCellState]()
|
||||||
|
|
||||||
// 单个屏蔽门操作组件
|
// 单个屏蔽门操作组件
|
||||||
var ComPsdCellOperating = ecs.NewComponentType[state.PsdCellOperating]()
|
var PsdCellOperatingComponent = ecs.NewComponentType[state.PsdCellOperating]()
|
||||||
|
|
||||||
// 站台单侧所有单个屏蔽门状态组件
|
// 站台单侧所有单个屏蔽门状态组件
|
||||||
var ComPsdState = ecs.NewComponentType[state.PsdState]()
|
var PsdStateComponent = ecs.NewComponentType[state.PsdState]()
|
||||||
|
|
||||||
// 应答器状态组件
|
// 应答器状态组件
|
||||||
var ComBaliseState = ecs.NewComponentType[state.BaliseState]()
|
var BaliseStateComponent = ecs.NewComponentType[state.BaliseState]()
|
||||||
|
|
||||||
// 列车状态组件
|
// 列车状态组件
|
||||||
var ComTrainState = ecs.NewComponentType[state.TrainState]()
|
var TrainStateComponent = ecs.NewComponentType[state.TrainState]()
|
||||||
|
@ -83,22 +83,22 @@ func testSignalOpt(world ecs.World, face *system.FaceSystem) {
|
|||||||
func initDevicesStatus(world ecs.World) {
|
func initDevicesStatus(world ecs.World) {
|
||||||
//当组件未显式set值时,world会初始化组件的零值
|
//当组件未显式set值时,world会初始化组件的零值
|
||||||
switch1Entry := memory.CreateSwitchEntity(world)
|
switch1Entry := memory.CreateSwitchEntity(world)
|
||||||
components.ComDeviceIdentity.Set(switch1Entry, &state.DeviceIdentity{Id: "switch1"})
|
components.DeviceIdentityComponent.Set(switch1Entry, &state.DeviceIdentity{Id: "switch1"})
|
||||||
components.ComSwitchState.Set(switch1Entry, &state.SwitchState{NormalRelay: false, ReverseRelay: false, NormalTable: true, ReverseTable: false})
|
components.SwitchStateComponent.Set(switch1Entry, &state.SwitchState{NormalRelay: false, ReverseRelay: false, NormalTable: true, ReverseTable: false})
|
||||||
//
|
//
|
||||||
signal1Entry := memory.CreateSignalEntity(world)
|
signal1Entry := memory.CreateSignalEntity(world)
|
||||||
components.ComDeviceIdentity.Set(signal1Entry, &state.DeviceIdentity{Id: "siganl1"})
|
components.DeviceIdentityComponent.Set(signal1Entry, &state.DeviceIdentity{Id: "siganl1"})
|
||||||
components.ComSignalState.Set(signal1Entry, &state.SignalState{Display: state.SignalAspect_No})
|
components.SignalStateComponent.Set(signal1Entry, &state.SignalState{Display: state.SignalAspect_No})
|
||||||
//psd1两个cell
|
//psd1两个cell
|
||||||
psd1Entry := memory.CreatePsdEntity(world)
|
psd1Entry := memory.CreatePsdEntity(world)
|
||||||
components.ComDeviceIdentity.Set(psd1Entry, &state.DeviceIdentity{Id: "psd1"})
|
components.DeviceIdentityComponent.Set(psd1Entry, &state.DeviceIdentity{Id: "psd1"})
|
||||||
components.ComPsdState.Set(psd1Entry, &state.PsdState{AllClosed: true, AllOpened: false, InterlockReleased: false})
|
components.PsdStateComponent.Set(psd1Entry, &state.PsdState{AllClosed: true, AllOpened: false, InterlockReleased: false})
|
||||||
psd1Cell1Entry := memory.CreatePsdCellEntity(world, psd1Entry)
|
psd1Cell1Entry := memory.CreatePsdCellEntity(world, psd1Entry)
|
||||||
components.ComDeviceIdentity.Set(psd1Cell1Entry, &state.DeviceIdentity{Id: "psd1Cell1"})
|
components.DeviceIdentityComponent.Set(psd1Cell1Entry, &state.DeviceIdentity{Id: "psd1Cell1"})
|
||||||
components.ComPsdCellState.Set(psd1Cell1Entry, &state.PsdCellState{CloseRate: 100})
|
components.PsdCellStateComponent.Set(psd1Cell1Entry, &state.PsdCellState{CloseRate: 100})
|
||||||
psd1Cell2Entry := memory.CreatePsdCellEntity(world, psd1Entry)
|
psd1Cell2Entry := memory.CreatePsdCellEntity(world, psd1Entry)
|
||||||
components.ComDeviceIdentity.Set(psd1Cell2Entry, &state.DeviceIdentity{Id: "psd1Cell2"})
|
components.DeviceIdentityComponent.Set(psd1Cell2Entry, &state.DeviceIdentity{Id: "psd1Cell2"})
|
||||||
components.ComPsdCellState.Set(psd1Cell2Entry, &state.PsdCellState{CloseRate: 100})
|
components.PsdCellStateComponent.Set(psd1Cell2Entry, &state.PsdCellState{CloseRate: 100})
|
||||||
}
|
}
|
||||||
|
|
||||||
func initSystems(world ecs.World) {
|
func initSystems(world ecs.World) {
|
||||||
|
@ -12,8 +12,8 @@ import (
|
|||||||
// 初始化world,添加一些内置的组件和系统
|
// 初始化world,添加一些内置的组件和系统
|
||||||
func InitializeWorld(w ecs.World, worldTime time.Time) *system.FaceSystem {
|
func InitializeWorld(w ecs.World, worldTime time.Time) *system.FaceSystem {
|
||||||
//初始化world时钟
|
//初始化world时钟
|
||||||
timeEntry := w.Create(components.ComSystemTimer)
|
timeEntry := w.Create(components.SystemTimerComponent)
|
||||||
components.ComSystemTimer.Set(timeEntry, state.NewSystemTimer(&worldTime))
|
components.SystemTimerComponent.Set(timeEntry, state.NewSystemTimer(&worldTime))
|
||||||
w.AddSystem(system.NewTimerSystem())
|
w.AddSystem(system.NewTimerSystem())
|
||||||
//初始化world与外界交互的门面
|
//初始化world与外界交互的门面
|
||||||
faceSystem := system.NewFaceSystem(w)
|
faceSystem := system.NewFaceSystem(w)
|
||||||
@ -26,37 +26,37 @@ func InitializeWorld(w ecs.World, worldTime time.Time) *system.FaceSystem {
|
|||||||
|
|
||||||
// 创建道岔实体
|
// 创建道岔实体
|
||||||
func CreateSwitchEntity(w ecs.World) *ecs.Entry {
|
func CreateSwitchEntity(w ecs.World) *ecs.Entry {
|
||||||
return w.Create(components.ComDeviceIdentity, components.ComSwitchState)
|
return w.Create(components.DeviceIdentityComponent, components.SwitchStateComponent)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 创建信号机实体
|
// 创建信号机实体
|
||||||
func CreateSignalEntity(w ecs.World) *ecs.Entry {
|
func CreateSignalEntity(w ecs.World) *ecs.Entry {
|
||||||
return w.Create(components.ComDeviceIdentity, components.ComSignalState)
|
return w.Create(components.DeviceIdentityComponent, components.SignalStateComponent)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 创建物理区段实体
|
// 创建物理区段实体
|
||||||
func CreatePhysicalSectionEntity(w ecs.World) *ecs.Entry {
|
func CreatePhysicalSectionEntity(w ecs.World) *ecs.Entry {
|
||||||
return w.Create(components.ComDeviceIdentity, components.ComPhysicalSectionState)
|
return w.Create(components.DeviceIdentityComponent, components.PhysicalSectionStateComponent)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 创建站台单侧屏蔽门实体
|
// 创建站台单侧屏蔽门实体
|
||||||
func CreatePsdEntity(w ecs.World) *ecs.Entry {
|
func CreatePsdEntity(w ecs.World) *ecs.Entry {
|
||||||
e := w.Create(components.ComDeviceIdentity, components.ComPsdState, components.ComEntityTagHandler)
|
e := w.Create(components.DeviceIdentityComponent, components.PsdStateComponent, components.EntityTagHandlerComponent)
|
||||||
components.ComEntityTagHandler.Set(e, &state.EntityTagHandler{Tag: ecs.NewComponentType[struct{}]()})
|
components.EntityTagHandlerComponent.Set(e, &state.EntityTagHandler{Tag: ecs.NewComponentType[struct{}]()})
|
||||||
return e
|
return e
|
||||||
}
|
}
|
||||||
|
|
||||||
// 创建单个屏蔽门实体
|
// 创建单个屏蔽门实体
|
||||||
func CreatePsdCellEntity(w ecs.World, psdEntry *ecs.Entry) *ecs.Entry {
|
func CreatePsdCellEntity(w ecs.World, psdEntry *ecs.Entry) *ecs.Entry {
|
||||||
return w.Create(components.ComDeviceIdentity, components.ComPsdCellState, components.ComEntityTagHandler.Get(psdEntry).Tag)
|
return w.Create(components.DeviceIdentityComponent, components.PsdCellStateComponent, components.EntityTagHandlerComponent.Get(psdEntry).Tag)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 创建应答器实体
|
// 创建应答器实体
|
||||||
func CreateBaliseEntity(w ecs.World) *ecs.Entry {
|
func CreateBaliseEntity(w ecs.World) *ecs.Entry {
|
||||||
return w.Create(components.ComDeviceIdentity, components.ComBaliseState)
|
return w.Create(components.DeviceIdentityComponent, components.BaliseStateComponent)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 创建列车实体
|
// 创建列车实体
|
||||||
func CreateTrainEntity(w ecs.World) *ecs.Entry {
|
func CreateTrainEntity(w ecs.World) *ecs.Entry {
|
||||||
return w.Create(components.ComDeviceIdentity, components.ComTrainState)
|
return w.Create(components.DeviceIdentityComponent, components.TrainStateComponent)
|
||||||
}
|
}
|
||||||
|
@ -8,10 +8,10 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
// 应答器查询
|
// 应答器查询
|
||||||
var baliseQuery *ecs.Query = ecs.NewQuery(filter.Contains(components.ComDeviceIdentity, components.ComBaliseState))
|
var baliseQuery *ecs.Query = ecs.NewQuery(filter.Contains(components.DeviceIdentityComponent, components.BaliseStateComponent))
|
||||||
|
|
||||||
// 列车查询
|
// 列车查询
|
||||||
var trainQuery *ecs.Query = ecs.NewQuery(filter.Contains(components.ComDeviceIdentity, components.ComTrainState))
|
var trainQuery *ecs.Query = ecs.NewQuery(filter.Contains(components.DeviceIdentityComponent, components.TrainStateComponent))
|
||||||
|
|
||||||
// 应答器模拟系统
|
// 应答器模拟系统
|
||||||
// 检测当有列车经过时,把报文发送给该列车
|
// 检测当有列车经过时,把报文发送给该列车
|
||||||
@ -33,7 +33,7 @@ func (me *BaliseSystem) Update(w ecs.World) {
|
|||||||
func SendMessageToTransponder(world ecs.World, transponderId string, message *state.BaliseContent) bool {
|
func SendMessageToTransponder(world ecs.World, transponderId string, message *state.BaliseContent) bool {
|
||||||
var transponderEntry *ecs.Entry = nil
|
var transponderEntry *ecs.Entry = nil
|
||||||
baliseQuery.Each(world, func(e *ecs.Entry) {
|
baliseQuery.Each(world, func(e *ecs.Entry) {
|
||||||
if transponderId == components.ComDeviceIdentity.Get(e).Id {
|
if transponderId == components.DeviceIdentityComponent.Get(e).Id {
|
||||||
transponderEntry = e
|
transponderEntry = e
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -42,7 +42,7 @@ func SendMessageToTransponder(world ecs.World, transponderId string, message *st
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
components.ComBaliseState.Get(transponderEntry).Content = message
|
components.BaliseStateComponent.Get(transponderEntry).Content = message
|
||||||
//
|
//
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,7 @@ type ButtonSystem struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 按钮组件
|
// 按钮组件
|
||||||
var btnIdCom, btnStaCom, btnPreOperCom, btnConOperCom = components.ComDeviceIdentity,
|
var btnIdCom, btnStaCom, btnPreOperCom, btnConOperCom = components.DeviceIdentityComponent,
|
||||||
components.ButtonStateComponent, components.ButtonPressOperatingComponent, components.ButtonConfirmOperatingComponent
|
components.ButtonStateComponent, components.ButtonPressOperatingComponent, components.ButtonConfirmOperatingComponent
|
||||||
|
|
||||||
// 查询
|
// 查询
|
||||||
|
@ -23,21 +23,21 @@ func (me *DebugSystem) Update(w ecs.World) {
|
|||||||
|
|
||||||
// 屏蔽门状态
|
// 屏蔽门状态
|
||||||
func debugPsd(w ecs.World) {
|
func debugPsd(w ecs.World) {
|
||||||
psdQuery = ecs.NewQuery(filter.Contains(components.ComDeviceIdentity, components.ComPsdState, components.ComEntityTagHandler))
|
psdQuery = ecs.NewQuery(filter.Contains(components.DeviceIdentityComponent, components.PsdStateComponent, components.EntityTagHandlerComponent))
|
||||||
psdQuery.Each(w, func(e *ecs.Entry) {
|
psdQuery.Each(w, func(e *ecs.Entry) {
|
||||||
psdId := components.ComDeviceIdentity.Get(e).Id
|
psdId := components.DeviceIdentityComponent.Get(e).Id
|
||||||
psdState := components.ComPsdState.Get(e)
|
psdState := components.PsdStateComponent.Get(e)
|
||||||
psdTag := components.ComEntityTagHandler.Get(e).Tag
|
psdTag := components.EntityTagHandlerComponent.Get(e).Tag
|
||||||
fmt.Printf("屏蔽门[%s] ,全关=%t ,全开=%t ,互锁解除=%t > ", psdId, psdState.AllClosed, psdState.AllOpened, psdState.InterlockReleased)
|
fmt.Printf("屏蔽门[%s] ,全关=%t ,全开=%t ,互锁解除=%t > ", psdId, psdState.AllClosed, psdState.AllOpened, psdState.InterlockReleased)
|
||||||
//
|
//
|
||||||
psdCellQuery := ecs.NewQuery(filter.Contains(psdTag, components.ComPsdCellState))
|
psdCellQuery := ecs.NewQuery(filter.Contains(psdTag, components.PsdCellStateComponent))
|
||||||
psdCellQuery.Each(w, func(e *ecs.Entry) {
|
psdCellQuery.Each(w, func(e *ecs.Entry) {
|
||||||
psdCellId := components.ComDeviceIdentity.Get(e).Id
|
psdCellId := components.DeviceIdentityComponent.Get(e).Id
|
||||||
psdCellState := components.ComPsdCellState.Get(e)
|
psdCellState := components.PsdCellStateComponent.Get(e)
|
||||||
//
|
//
|
||||||
fmt.Printf("|| cell[%s] ,closeRate=%d ", psdCellId, psdCellState.CloseRate)
|
fmt.Printf("|| cell[%s] ,closeRate=%d ", psdCellId, psdCellState.CloseRate)
|
||||||
if e.HasComponent(components.ComPsdCellOperating) {
|
if e.HasComponent(components.PsdCellOperatingComponent) {
|
||||||
psdCellOpt := components.ComPsdCellOperating.Get(e)
|
psdCellOpt := components.PsdCellOperatingComponent.Get(e)
|
||||||
if psdCellOpt.CloseOperate {
|
if psdCellOpt.CloseOperate {
|
||||||
fmt.Printf("== 关门操作中,剩余移动距离=%d", psdCellOpt.RemainingDistance)
|
fmt.Printf("== 关门操作中,剩余移动距离=%d", psdCellOpt.RemainingDistance)
|
||||||
} else {
|
} else {
|
||||||
@ -52,31 +52,31 @@ func debugPsd(w ecs.World) {
|
|||||||
|
|
||||||
// 显示信号机状态
|
// 显示信号机状态
|
||||||
func debugSignal(w ecs.World) {
|
func debugSignal(w ecs.World) {
|
||||||
siganlQuery := ecs.NewQuery(filter.Contains(components.ComDeviceIdentity, components.ComSignalState))
|
siganlQuery := ecs.NewQuery(filter.Contains(components.DeviceIdentityComponent, components.SignalStateComponent))
|
||||||
siganlQuery.Each(w, func(e *ecs.Entry) {
|
siganlQuery.Each(w, func(e *ecs.Entry) {
|
||||||
id := components.ComDeviceIdentity.Get(e).Id
|
id := components.DeviceIdentityComponent.Get(e).Id
|
||||||
state := components.ComSignalState.Get(e)
|
state := components.SignalStateComponent.Get(e)
|
||||||
fmt.Printf("==>>信号机[%s],显示=%d\n", id, state.Display)
|
fmt.Printf("==>>信号机[%s],显示=%d\n", id, state.Display)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// 显示道岔状态
|
// 显示道岔状态
|
||||||
func debugSwitch(w ecs.World) {
|
func debugSwitch(w ecs.World) {
|
||||||
switchesQuery := ecs.NewQuery(filter.Contains(components.ComDeviceIdentity, components.ComSwitchState))
|
switchesQuery := ecs.NewQuery(filter.Contains(components.DeviceIdentityComponent, components.SwitchStateComponent))
|
||||||
switchesQuery.Each(w, func(e *ecs.Entry) {
|
switchesQuery.Each(w, func(e *ecs.Entry) {
|
||||||
id := components.ComDeviceIdentity.Get(e).Id
|
id := components.DeviceIdentityComponent.Get(e).Id
|
||||||
state := components.ComSwitchState.Get(e)
|
state := components.SwitchStateComponent.Get(e)
|
||||||
fmt.Printf("==>>道岔[%s] ,定操Relay=%t ,反操Relay=%t ,定表Relay=%t ,反表Relay=%t ,", id, state.NormalRelay, state.ReverseRelay, state.NormalTable, state.ReverseTable)
|
fmt.Printf("==>>道岔[%s] ,定操Relay=%t ,反操Relay=%t ,定表Relay=%t ,反表Relay=%t ,", id, state.NormalRelay, state.ReverseRelay, state.NormalTable, state.ReverseTable)
|
||||||
if e.HasComponent(components.ComSwitchNRRelayOperating) {
|
if e.HasComponent(components.SwitchNRRelayOperatingComponent) {
|
||||||
nrOperation := components.ComSwitchNRRelayOperating.Get(e)
|
nrOperation := components.SwitchNRRelayOperatingComponent.Get(e)
|
||||||
if nrOperation.Normal {
|
if nrOperation.Normal {
|
||||||
fmt.Printf("定操动作Start=%t ,剩余时间=%d ,吸合动作=%t ,", nrOperation.Start, nrOperation.OperateTime, nrOperation.Close)
|
fmt.Printf("定操动作Start=%t ,剩余时间=%d ,吸合动作=%t ,", nrOperation.Start, nrOperation.OperateTime, nrOperation.Close)
|
||||||
} else {
|
} else {
|
||||||
fmt.Printf("反操动作Start=%t ,剩余时间=%d ,吸合动作=%t ,", nrOperation.Start, nrOperation.OperateTime, nrOperation.Close)
|
fmt.Printf("反操动作Start=%t ,剩余时间=%d ,吸合动作=%t ,", nrOperation.Start, nrOperation.OperateTime, nrOperation.Close)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if e.HasComponent(components.ComSwitchTurnOperating) {
|
if e.HasComponent(components.SwitchTurnOperatingComponent) {
|
||||||
turnOperation := components.ComSwitchTurnOperating.Get(e)
|
turnOperation := components.SwitchTurnOperatingComponent.Get(e)
|
||||||
fmt.Printf("转动操作Start=%t ,转动到定位=%t ,剩余时间=%d", turnOperation.Start, turnOperation.TurnNormal, turnOperation.OperateTime)
|
fmt.Printf("转动操作Start=%t ,转动到定位=%t ,剩余时间=%d", turnOperation.Start, turnOperation.TurnNormal, turnOperation.OperateTime)
|
||||||
}
|
}
|
||||||
fmt.Println()
|
fmt.Println()
|
||||||
|
12
system/percentage_system.go
Normal file
12
system/percentage_system.go
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
package system
|
||||||
|
|
||||||
|
import "joylink.club/ecs"
|
||||||
|
|
||||||
|
//百分比设备系统
|
||||||
|
type PercentageSystem struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
// world 执行
|
||||||
|
func (me *PercentageSystem) Update(world ecs.World) {
|
||||||
|
|
||||||
|
}
|
@ -7,7 +7,7 @@ import (
|
|||||||
"joylink.club/rtsssimulation/state"
|
"joylink.club/rtsssimulation/state"
|
||||||
)
|
)
|
||||||
|
|
||||||
var psdQuery = ecs.NewQuery(filter.Contains(components.ComDeviceIdentity, components.ComPsdState, components.ComEntityTagHandler))
|
var psdQuery = ecs.NewQuery(filter.Contains(components.DeviceIdentityComponent, components.PsdStateComponent, components.EntityTagHandlerComponent))
|
||||||
|
|
||||||
type PsdSystem struct {
|
type PsdSystem struct {
|
||||||
psdTagMap map[state.EntityTag][]*ecs.Query
|
psdTagMap map[state.EntityTag][]*ecs.Query
|
||||||
@ -28,7 +28,7 @@ func (me *PsdSystem) Update(world ecs.World) {
|
|||||||
// 车站单侧屏蔽门
|
// 车站单侧屏蔽门
|
||||||
func (me *PsdSystem) updatePsd(world ecs.World) {
|
func (me *PsdSystem) updatePsd(world ecs.World) {
|
||||||
psdQuery.Each(world, func(e *ecs.Entry) {
|
psdQuery.Each(world, func(e *ecs.Entry) {
|
||||||
psdTag := components.ComEntityTagHandler.Get(e).Tag
|
psdTag := components.EntityTagHandlerComponent.Get(e).Tag
|
||||||
_, ok := me.psdTagMap[psdTag]
|
_, ok := me.psdTagMap[psdTag]
|
||||||
if !ok {
|
if !ok {
|
||||||
me.psdTagMap[psdTag] = make([]*ecs.Query, 2)
|
me.psdTagMap[psdTag] = make([]*ecs.Query, 2)
|
||||||
@ -36,13 +36,13 @@ func (me *PsdSystem) updatePsd(world ecs.World) {
|
|||||||
psdCellQuery := ecs.NewQuery(filter.Contains(psdTag))
|
psdCellQuery := ecs.NewQuery(filter.Contains(psdTag))
|
||||||
me.psdTagMap[psdTag][0] = psdCellQuery
|
me.psdTagMap[psdTag][0] = psdCellQuery
|
||||||
//psd的所有cell中的操作查询
|
//psd的所有cell中的操作查询
|
||||||
psdCellOperateQuery := ecs.NewQuery(filter.Contains(psdTag, components.ComPsdCellOperating))
|
psdCellOperateQuery := ecs.NewQuery(filter.Contains(psdTag, components.PsdCellOperatingComponent))
|
||||||
me.psdTagMap[psdTag][1] = psdCellOperateQuery
|
me.psdTagMap[psdTag][1] = psdCellOperateQuery
|
||||||
}
|
}
|
||||||
var allClosed bool = true
|
var allClosed bool = true
|
||||||
var allOpened bool = true
|
var allOpened bool = true
|
||||||
me.psdTagMap[psdTag][0].Each(world, func(e *ecs.Entry) {
|
me.psdTagMap[psdTag][0].Each(world, func(e *ecs.Entry) {
|
||||||
cellState := components.ComPsdCellState.Get(e)
|
cellState := components.PsdCellStateComponent.Get(e)
|
||||||
if allClosed {
|
if allClosed {
|
||||||
if cellState.CloseRate < 100 {
|
if cellState.CloseRate < 100 {
|
||||||
allClosed = false
|
allClosed = false
|
||||||
@ -55,7 +55,7 @@ func (me *PsdSystem) updatePsd(world ecs.World) {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
//
|
//
|
||||||
psdState := components.ComPsdState.Get(e)
|
psdState := components.PsdStateComponent.Get(e)
|
||||||
psdState.AllClosed = allClosed
|
psdState.AllClosed = allClosed
|
||||||
psdState.AllOpened = allOpened
|
psdState.AllOpened = allOpened
|
||||||
})
|
})
|
||||||
@ -75,12 +75,12 @@ func (me *PsdSystem) updatePsdCell(world ecs.World) {
|
|||||||
for _, psdTagQueries := range me.psdTagMap {
|
for _, psdTagQueries := range me.psdTagMap {
|
||||||
//遍历某个车站单侧的所有单个门的操作
|
//遍历某个车站单侧的所有单个门的操作
|
||||||
psdTagQueries[1].Each(world, func(e *ecs.Entry) {
|
psdTagQueries[1].Each(world, func(e *ecs.Entry) {
|
||||||
if psdCellOpt := components.ComPsdCellOperating.Get(e); psdCellOpt.Start {
|
if psdCellOpt := components.PsdCellOperatingComponent.Get(e); psdCellOpt.Start {
|
||||||
psdCellState := components.ComPsdCellState.Get(e)
|
psdCellState := components.PsdCellStateComponent.Get(e)
|
||||||
if psdCellOpt.RemainingDistance <= 0 {
|
if psdCellOpt.RemainingDistance <= 0 {
|
||||||
psdCellOpt.Start = false
|
psdCellOpt.Start = false
|
||||||
psdCellOpt.RemainingDistance = 0
|
psdCellOpt.RemainingDistance = 0
|
||||||
e.RemoveComponent(components.ComPsdCellOperating)
|
e.RemoveComponent(components.PsdCellOperatingComponent)
|
||||||
} else {
|
} else {
|
||||||
psdCellOpt.RemainingDistance -= int64(pSD_CELL_MOVE_SPEED * world.Tick())
|
psdCellOpt.RemainingDistance -= int64(pSD_CELL_MOVE_SPEED * world.Tick())
|
||||||
}
|
}
|
||||||
@ -99,7 +99,7 @@ func (me *PsdSystem) updatePsdCell(world ecs.World) {
|
|||||||
func FirePsdInterlockRelease(world ecs.World, psdId string, lockRelease bool) bool {
|
func FirePsdInterlockRelease(world ecs.World, psdId string, lockRelease bool) bool {
|
||||||
var psdEntry *ecs.Entry = nil
|
var psdEntry *ecs.Entry = nil
|
||||||
psdQuery.Each(world, func(e *ecs.Entry) {
|
psdQuery.Each(world, func(e *ecs.Entry) {
|
||||||
if psdId == components.ComDeviceIdentity.Get(e).Id {
|
if psdId == components.DeviceIdentityComponent.Get(e).Id {
|
||||||
psdEntry = e
|
psdEntry = e
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -107,7 +107,7 @@ func FirePsdInterlockRelease(world ecs.World, psdId string, lockRelease bool) bo
|
|||||||
if psdEntry == nil {
|
if psdEntry == nil {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
components.ComPsdState.Get(psdEntry).InterlockReleased = lockRelease
|
components.PsdStateComponent.Get(psdEntry).InterlockReleased = lockRelease
|
||||||
//
|
//
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
@ -117,7 +117,7 @@ func FirePsdInterlockRelease(world ecs.World, psdId string, lockRelease bool) bo
|
|||||||
func FirePsdMove(world ecs.World, psdId string, closeOpt bool) bool {
|
func FirePsdMove(world ecs.World, psdId string, closeOpt bool) bool {
|
||||||
var psdEntry *ecs.Entry = nil
|
var psdEntry *ecs.Entry = nil
|
||||||
psdQuery.Each(world, func(e *ecs.Entry) {
|
psdQuery.Each(world, func(e *ecs.Entry) {
|
||||||
if psdId == components.ComDeviceIdentity.Get(e).Id {
|
if psdId == components.DeviceIdentityComponent.Get(e).Id {
|
||||||
psdEntry = e
|
psdEntry = e
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -133,10 +133,10 @@ func FirePsdMove(world ecs.World, psdId string, closeOpt bool) bool {
|
|||||||
closeRate = 0
|
closeRate = 0
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
psdTag := components.ComEntityTagHandler.Get(psdEntry).Tag
|
psdTag := components.EntityTagHandlerComponent.Get(psdEntry).Tag
|
||||||
psdCellQuery := ecs.NewQuery(filter.Contains(psdTag))
|
psdCellQuery := ecs.NewQuery(filter.Contains(psdTag))
|
||||||
psdCellQuery.Each(world, func(e *ecs.Entry) {
|
psdCellQuery.Each(world, func(e *ecs.Entry) {
|
||||||
psdCellId := components.ComDeviceIdentity.Get(e).Id
|
psdCellId := components.DeviceIdentityComponent.Get(e).Id
|
||||||
firePsdCellMove0(world, psdEntry, psdCellId, closeRate)
|
firePsdCellMove0(world, psdEntry, psdCellId, closeRate)
|
||||||
})
|
})
|
||||||
//
|
//
|
||||||
@ -150,7 +150,7 @@ func FirePsdMove(world ecs.World, psdId string, closeOpt bool) bool {
|
|||||||
func FirePsdCellMove(world ecs.World, psdId string, psdCellId string, closeRate int) bool {
|
func FirePsdCellMove(world ecs.World, psdId string, psdCellId string, closeRate int) bool {
|
||||||
var psdEntry *ecs.Entry = nil
|
var psdEntry *ecs.Entry = nil
|
||||||
psdQuery.Each(world, func(e *ecs.Entry) {
|
psdQuery.Each(world, func(e *ecs.Entry) {
|
||||||
if psdId == components.ComDeviceIdentity.Get(e).Id {
|
if psdId == components.DeviceIdentityComponent.Get(e).Id {
|
||||||
psdEntry = e
|
psdEntry = e
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -162,11 +162,11 @@ func firePsdCellMove0(world ecs.World, psdEntry *ecs.Entry, psdCellId string, cl
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
psdTag := components.ComEntityTagHandler.Get(psdEntry).Tag
|
psdTag := components.EntityTagHandlerComponent.Get(psdEntry).Tag
|
||||||
psdCellQuery := ecs.NewQuery(filter.Contains(psdTag))
|
psdCellQuery := ecs.NewQuery(filter.Contains(psdTag))
|
||||||
var psdCellEntry *ecs.Entry = nil
|
var psdCellEntry *ecs.Entry = nil
|
||||||
psdCellQuery.Each(world, func(e *ecs.Entry) {
|
psdCellQuery.Each(world, func(e *ecs.Entry) {
|
||||||
if psdCellId == components.ComDeviceIdentity.Get(e).Id {
|
if psdCellId == components.DeviceIdentityComponent.Get(e).Id {
|
||||||
psdCellEntry = e
|
psdCellEntry = e
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -174,15 +174,15 @@ func firePsdCellMove0(world ecs.World, psdEntry *ecs.Entry, psdCellId string, cl
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
psdCellState := components.ComPsdCellState.Get(psdCellEntry)
|
psdCellState := components.PsdCellStateComponent.Get(psdCellEntry)
|
||||||
if closeRate == int(psdCellState.CloseRate) {
|
if closeRate == int(psdCellState.CloseRate) {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
// 判断是关门还是开门操作
|
// 判断是关门还是开门操作
|
||||||
close := closeRate > int(psdCellState.CloseRate)
|
close := closeRate > int(psdCellState.CloseRate)
|
||||||
//
|
//
|
||||||
if !psdCellEntry.HasComponent(components.ComPsdCellOperating) {
|
if !psdCellEntry.HasComponent(components.PsdCellOperatingComponent) {
|
||||||
psdCellEntry.AddComponent(components.ComPsdCellOperating)
|
psdCellEntry.AddComponent(components.PsdCellOperatingComponent)
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
var initDistance int64
|
var initDistance int64
|
||||||
@ -195,7 +195,7 @@ func firePsdCellMove0(world ecs.World, psdEntry *ecs.Entry, psdCellId string, cl
|
|||||||
sumDistance = int64(float32(pSD_CELL_LEN) * (float32(int(psdCellState.CloseRate)-closeRate) / float32(100)))
|
sumDistance = int64(float32(pSD_CELL_LEN) * (float32(int(psdCellState.CloseRate)-closeRate) / float32(100)))
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
*(components.ComPsdCellOperating.Get(psdCellEntry)) = state.PsdCellOperating{
|
*(components.PsdCellOperatingComponent.Get(psdCellEntry)) = state.PsdCellOperating{
|
||||||
Start: true,
|
Start: true,
|
||||||
CloseOperate: close,
|
CloseOperate: close,
|
||||||
InitDistance: initDistance,
|
InitDistance: initDistance,
|
||||||
|
@ -11,7 +11,7 @@ type SignalSystem struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 信号机显示状态查询
|
// 信号机显示状态查询
|
||||||
var signalQuery *ecs.Query = ecs.NewQuery(filter.Contains(components.ComDeviceIdentity, components.ComSignalState))
|
var signalQuery *ecs.Query = ecs.NewQuery(filter.Contains(components.DeviceIdentityComponent, components.SignalStateComponent))
|
||||||
|
|
||||||
// world 执行
|
// world 执行
|
||||||
func (me *SignalSystem) Update(world ecs.World) {
|
func (me *SignalSystem) Update(world ecs.World) {
|
||||||
@ -26,7 +26,7 @@ func NewSignalSystem() *SignalSystem {
|
|||||||
func SetSignalDisplay(w ecs.World, signalId string, display state.SignalAspect) bool {
|
func SetSignalDisplay(w ecs.World, signalId string, display state.SignalAspect) bool {
|
||||||
var signalEntry *ecs.Entry
|
var signalEntry *ecs.Entry
|
||||||
signalQuery.Each(w, func(e *ecs.Entry) {
|
signalQuery.Each(w, func(e *ecs.Entry) {
|
||||||
if signalId == components.ComDeviceIdentity.Get(e).Id {
|
if signalId == components.DeviceIdentityComponent.Get(e).Id {
|
||||||
signalEntry = e
|
signalEntry = e
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -35,7 +35,7 @@ func SetSignalDisplay(w ecs.World, signalId string, display state.SignalAspect)
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
signalState := components.ComSignalState.Get(signalEntry)
|
signalState := components.SignalStateComponent.Get(signalEntry)
|
||||||
signalState.Display = display
|
signalState.Display = display
|
||||||
//
|
//
|
||||||
return true
|
return true
|
||||||
|
@ -8,13 +8,13 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
// 定反操继电器查询
|
// 定反操继电器查询
|
||||||
var nrRelayQuery *ecs.Query = ecs.NewQuery(filter.Contains(components.ComSwitchNRRelayOperating))
|
var nrRelayQuery *ecs.Query = ecs.NewQuery(filter.Contains(components.SwitchNRRelayOperatingComponent))
|
||||||
|
|
||||||
// 道岔转动查询
|
// 道岔转动查询
|
||||||
var turningQuery *ecs.Query = ecs.NewQuery(filter.Contains(components.ComSwitchTurnOperating))
|
var turningQuery *ecs.Query = ecs.NewQuery(filter.Contains(components.SwitchTurnOperatingComponent))
|
||||||
|
|
||||||
// 道岔状态查询
|
// 道岔状态查询
|
||||||
var switchStateQuery *ecs.Query = ecs.NewQuery(filter.Contains(components.ComDeviceIdentity, components.ComSwitchState))
|
var switchStateQuery *ecs.Query = ecs.NewQuery(filter.Contains(components.DeviceIdentityComponent, components.SwitchStateComponent))
|
||||||
|
|
||||||
// 道岔系统操作
|
// 道岔系统操作
|
||||||
type SwitchSystem struct {
|
type SwitchSystem struct {
|
||||||
@ -31,7 +31,7 @@ func NewSwitchSystem() *SwitchSystem {
|
|||||||
func FireSwitchTurn(w ecs.World, switchId string, turnNormal bool) bool {
|
func FireSwitchTurn(w ecs.World, switchId string, turnNormal bool) bool {
|
||||||
var switchEntry *ecs.Entry = nil
|
var switchEntry *ecs.Entry = nil
|
||||||
switchStateQuery.Each(w, func(e *ecs.Entry) {
|
switchStateQuery.Each(w, func(e *ecs.Entry) {
|
||||||
if id := components.ComDeviceIdentity.Get(e).Id; id == switchId {
|
if id := components.DeviceIdentityComponent.Get(e).Id; id == switchId {
|
||||||
switchEntry = e
|
switchEntry = e
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -40,16 +40,16 @@ func FireSwitchTurn(w ecs.World, switchId string, turnNormal bool) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
switchState := components.ComSwitchState.Get(switchEntry)
|
switchState := components.SwitchStateComponent.Get(switchEntry)
|
||||||
if turnNormal == switchState.NormalTable && !turnNormal == switchState.ReverseTable {
|
if turnNormal == switchState.NormalTable && !turnNormal == switchState.ReverseTable {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
nrRelayTime := getSwitchNRDelayTime(switchId)
|
nrRelayTime := getSwitchNRDelayTime(switchId)
|
||||||
if !switchEntry.HasComponent(components.ComSwitchNRRelayOperating) {
|
if !switchEntry.HasComponent(components.SwitchNRRelayOperatingComponent) {
|
||||||
switchEntry.AddComponent(components.ComSwitchNRRelayOperating)
|
switchEntry.AddComponent(components.SwitchNRRelayOperatingComponent)
|
||||||
}
|
}
|
||||||
*(components.ComSwitchNRRelayOperating.Get(switchEntry)) = state.SwitchNRRelayOperating{Start: true, OperateTime: nrRelayTime, Close: true, Normal: turnNormal}
|
*(components.SwitchNRRelayOperatingComponent.Get(switchEntry)) = state.SwitchNRRelayOperating{Start: true, OperateTime: nrRelayTime, Close: true, Normal: turnNormal}
|
||||||
//
|
//
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
@ -63,9 +63,9 @@ func (me *SwitchSystem) Update(w ecs.World) {
|
|||||||
// 道岔转动动作
|
// 道岔转动动作
|
||||||
func updateTurnOperating(w ecs.World) {
|
func updateTurnOperating(w ecs.World) {
|
||||||
turningQuery.Each(w, func(e *ecs.Entry) {
|
turningQuery.Each(w, func(e *ecs.Entry) {
|
||||||
if !e.HasComponent(components.ComSwitchNRRelayOperating) {
|
if !e.HasComponent(components.SwitchNRRelayOperatingComponent) {
|
||||||
operation := components.ComSwitchTurnOperating.Get(e)
|
operation := components.SwitchTurnOperatingComponent.Get(e)
|
||||||
switchState := components.ComSwitchState.Get(e)
|
switchState := components.SwitchStateComponent.Get(e)
|
||||||
if operation.Start {
|
if operation.Start {
|
||||||
if operation.OperateTime <= 0 {
|
if operation.OperateTime <= 0 {
|
||||||
operation.Start = false
|
operation.Start = false
|
||||||
@ -80,10 +80,10 @@ func updateTurnOperating(w ecs.World) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if !operation.Start {
|
if !operation.Start {
|
||||||
e.RemoveComponent(components.ComSwitchTurnOperating)
|
e.RemoveComponent(components.SwitchTurnOperatingComponent)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
e.RemoveComponent(components.ComSwitchTurnOperating)
|
e.RemoveComponent(components.SwitchTurnOperatingComponent)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -91,12 +91,12 @@ func updateTurnOperating(w ecs.World) {
|
|||||||
// 定反操继电器操作
|
// 定反操继电器操作
|
||||||
func updateNormalReverseRelay(w ecs.World) {
|
func updateNormalReverseRelay(w ecs.World) {
|
||||||
nrRelayQuery.Each(w, func(e *ecs.Entry) {
|
nrRelayQuery.Each(w, func(e *ecs.Entry) {
|
||||||
operation := components.ComSwitchNRRelayOperating.Get(e)
|
operation := components.SwitchNRRelayOperatingComponent.Get(e)
|
||||||
if operation.Start {
|
if operation.Start {
|
||||||
if operation.OperateTime <= 0 {
|
if operation.OperateTime <= 0 {
|
||||||
operation.Start = false
|
operation.Start = false
|
||||||
//
|
//
|
||||||
switchState := components.ComSwitchState.Get(e)
|
switchState := components.SwitchStateComponent.Get(e)
|
||||||
if operation.Normal {
|
if operation.Normal {
|
||||||
switchState.NormalRelay = operation.Close
|
switchState.NormalRelay = operation.Close
|
||||||
} else {
|
} else {
|
||||||
@ -104,19 +104,19 @@ func updateNormalReverseRelay(w ecs.World) {
|
|||||||
}
|
}
|
||||||
//
|
//
|
||||||
if operation.Close { //触发道岔转动操作
|
if operation.Close { //触发道岔转动操作
|
||||||
if !e.HasComponent(components.ComSwitchTurnOperating) {
|
if !e.HasComponent(components.SwitchTurnOperatingComponent) {
|
||||||
e.AddComponent(components.ComSwitchTurnOperating)
|
e.AddComponent(components.SwitchTurnOperatingComponent)
|
||||||
}
|
}
|
||||||
switchId := components.ComDeviceIdentity.Get(e).Id
|
switchId := components.DeviceIdentityComponent.Get(e).Id
|
||||||
turnTime := getSwitchTurnTime(switchId)
|
turnTime := getSwitchTurnTime(switchId)
|
||||||
*(components.ComSwitchTurnOperating.Get(e)) = state.SwitchTurnOperating{Start: true, OperateTime: turnTime, TurnNormal: operation.Normal}
|
*(components.SwitchTurnOperatingComponent.Get(e)) = state.SwitchTurnOperating{Start: true, OperateTime: turnTime, TurnNormal: operation.Normal}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
operation.OperateTime -= int64(w.Tick())
|
operation.OperateTime -= int64(w.Tick())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if !operation.Start {
|
if !operation.Start {
|
||||||
e.RemoveComponent(components.ComSwitchNRRelayOperating)
|
e.RemoveComponent(components.SwitchNRRelayOperatingComponent)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,7 @@ import (
|
|||||||
"joylink.club/rtsssimulation/components"
|
"joylink.club/rtsssimulation/components"
|
||||||
)
|
)
|
||||||
|
|
||||||
var timerQuery *ecs.Query = ecs.NewQuery(filter.Contains(components.ComSystemTimer))
|
var timerQuery *ecs.Query = ecs.NewQuery(filter.Contains(components.SystemTimerComponent))
|
||||||
|
|
||||||
// 系统时钟操作
|
// 系统时钟操作
|
||||||
type TimerSystem struct {
|
type TimerSystem struct {
|
||||||
@ -21,7 +21,7 @@ func NewTimerSystem() *TimerSystem {
|
|||||||
// world 执行
|
// world 执行
|
||||||
func (me *TimerSystem) Update(w ecs.World) {
|
func (me *TimerSystem) Update(w ecs.World) {
|
||||||
if e, ok := timerQuery.First(w); ok {
|
if e, ok := timerQuery.First(w); ok {
|
||||||
timer := components.ComSystemTimer.Get(e)
|
timer := components.SystemTimerComponent.Get(e)
|
||||||
timer.Tick(w.Tick())
|
timer.Tick(w.Tick())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -29,7 +29,7 @@ func (me *TimerSystem) Update(w ecs.World) {
|
|||||||
// 重置world时间
|
// 重置world时间
|
||||||
func ResetWorldTimer(w ecs.World, time time.Time) {
|
func ResetWorldTimer(w ecs.World, time time.Time) {
|
||||||
if e, ok := timerQuery.First(w); ok {
|
if e, ok := timerQuery.First(w); ok {
|
||||||
timer := components.ComSystemTimer.Get(e)
|
timer := components.SystemTimerComponent.Get(e)
|
||||||
timer.ResetTime(time)
|
timer.ResetTime(time)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -37,7 +37,7 @@ func ResetWorldTimer(w ecs.World, time time.Time) {
|
|||||||
// 获取world当前时间
|
// 获取world当前时间
|
||||||
func GetWorldNow(w ecs.World) *time.Time {
|
func GetWorldNow(w ecs.World) *time.Time {
|
||||||
if e, ok := timerQuery.First(w); ok {
|
if e, ok := timerQuery.First(w); ok {
|
||||||
timer := components.ComSystemTimer.Get(e)
|
timer := components.SystemTimerComponent.Get(e)
|
||||||
now := timer.Now()
|
now := timer.Now()
|
||||||
return &now
|
return &now
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user