【修改人员防护、紧急关闭逻辑】
This commit is contained in:
parent
1a809f1af4
commit
d81a36634a
@ -1,28 +0,0 @@
|
|||||||
package component
|
|
||||||
|
|
||||||
import "joylink.club/ecs"
|
|
||||||
|
|
||||||
// 标签
|
|
||||||
var (
|
|
||||||
// 非自复式按下接通式按钮
|
|
||||||
NoResetPressBtn = ecs.NewTag()
|
|
||||||
|
|
||||||
// 非自复式拉起接通式按钮
|
|
||||||
NoResetUpBtn = ecs.NewTag()
|
|
||||||
|
|
||||||
// 自复式按下接通式按钮
|
|
||||||
ResetPressBtn = ecs.NewTag()
|
|
||||||
|
|
||||||
// 自复式拉起接通式按钮
|
|
||||||
ResetUpBtn = ecs.NewTag()
|
|
||||||
)
|
|
||||||
|
|
||||||
// 按钮的实际转台
|
|
||||||
type ButtonState struct {
|
|
||||||
Tq bool // 是否抬起(位置信息)
|
|
||||||
Jt bool // 是否接通(状态信息)
|
|
||||||
Remain int // 接通保持时间
|
|
||||||
}
|
|
||||||
|
|
||||||
// 实际按钮的实际位置组件类型
|
|
||||||
var ButtonStateType = ecs.NewComponentType[ButtonState]()
|
|
@ -2,6 +2,26 @@ package component
|
|||||||
|
|
||||||
import "joylink.club/ecs"
|
import "joylink.club/ecs"
|
||||||
|
|
||||||
|
// 按钮标签
|
||||||
|
var (
|
||||||
|
// 非自复式按下接通式按钮
|
||||||
|
NoResetPressBtn = ecs.NewTag()
|
||||||
|
// 非自复式拉起接通式按钮
|
||||||
|
NoResetUpBtn = ecs.NewTag()
|
||||||
|
// 自复式按下接通式按钮
|
||||||
|
ResetPressBtn = ecs.NewTag()
|
||||||
|
// 自复式拉起接通式按钮
|
||||||
|
ResetUpBtn = ecs.NewTag()
|
||||||
|
)
|
||||||
|
|
||||||
|
// 蜂鸣器驱动
|
||||||
|
type FMQDrive struct {
|
||||||
|
Td bool
|
||||||
|
}
|
||||||
|
|
||||||
|
// 蜂鸣器驱动组件
|
||||||
|
var FMQDriveType = ecs.NewComponentType[FMQDrive]()
|
||||||
|
|
||||||
// SPK继电器控制电路
|
// SPK继电器控制电路
|
||||||
type SpkControlElectronic struct {
|
type SpkControlElectronic struct {
|
||||||
SPKSXPLA_BTN *ecs.Entry
|
SPKSXPLA_BTN *ecs.Entry
|
||||||
@ -30,12 +50,12 @@ type SpksStateElectronic struct {
|
|||||||
SPKSXPLAJ *ecs.Entry
|
SPKSXPLAJ *ecs.Entry
|
||||||
SPKSSPLAJ *ecs.Entry
|
SPKSSPLAJ *ecs.Entry
|
||||||
|
|
||||||
SPKSX1D bool
|
SPKSX1D *ecs.Entry
|
||||||
SPKSX3D bool
|
SPKSX3D *ecs.Entry
|
||||||
SPKSS2D bool
|
SPKSS2D *ecs.Entry
|
||||||
SPKSS4D bool
|
SPKSS4D *ecs.Entry
|
||||||
SPKSXPLAD bool
|
SPKSXPLAD *ecs.Entry
|
||||||
SPKSSPLAD bool
|
SPKSSPLAD *ecs.Entry
|
||||||
|
|
||||||
SDA *ecs.Entry
|
SDA *ecs.Entry
|
||||||
}
|
}
|
||||||
@ -64,16 +84,15 @@ var EmpControlElectronicType = ecs.NewComponentType[EmpControlElectronic]()
|
|||||||
|
|
||||||
// EMP 标识状态电路
|
// EMP 标识状态电路
|
||||||
type EmpStateElectronic struct {
|
type EmpStateElectronic struct {
|
||||||
XEMPJ *ecs.Entry // 继电器
|
XEMPJ *ecs.Entry // 继电器
|
||||||
XEMPD bool
|
XEMPD *ecs.Entry
|
||||||
XEMPD_SDA *ecs.Entry // 按钮
|
|
||||||
|
|
||||||
SEMPJ *ecs.Entry // 继电器
|
SEMPJ *ecs.Entry // 继电器
|
||||||
SEMPD bool
|
SEMPD *ecs.Entry
|
||||||
SEMPD_SDA *ecs.Entry // 按钮
|
|
||||||
|
|
||||||
|
SDA *ecs.Entry // 按钮
|
||||||
QBA *ecs.Entry // 非自复位按钮
|
QBA *ecs.Entry // 非自复位按钮
|
||||||
FMQ bool // 蜂鸣器
|
FMQ *ecs.Entry // 蜂鸣器
|
||||||
}
|
}
|
||||||
|
|
||||||
var EmpStateElectronicType = ecs.NewComponentType[EmpStateElectronic]()
|
var EmpStateElectronicType = ecs.NewComponentType[EmpStateElectronic]()
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit af605020f1bccf1f1b2ab5a4ae4966d1c6c9776c
|
Subproject commit e7797346722a572814539d9a453789b89ffe6bf4
|
@ -1,80 +0,0 @@
|
|||||||
package circuit_sys
|
|
||||||
|
|
||||||
import (
|
|
||||||
"joylink.club/ecs"
|
|
||||||
"joylink.club/ecs/filter"
|
|
||||||
"joylink.club/rtsssimulation/component"
|
|
||||||
)
|
|
||||||
|
|
||||||
// emp 继电器控制电路
|
|
||||||
type EmpControlSys struct {
|
|
||||||
query *ecs.Query
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewEmpControl() *EmpControlSys {
|
|
||||||
return &EmpControlSys{
|
|
||||||
query: ecs.NewQuery(filter.Contains(component.EmpControlElectronicType)),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 控制电路更新
|
|
||||||
func (emp *EmpControlSys) Update(w ecs.World) {
|
|
||||||
emp.query.Each(w, func(entry *ecs.Entry) {
|
|
||||||
s := component.EmpControlElectronicType.Get(entry)
|
|
||||||
xempfab := component.ButtonStateType.Get(s.XEMPFA_BTN)
|
|
||||||
xempj := component.RelayDriveType.Get(s.XEMPJ)
|
|
||||||
if xempfab.Jt {
|
|
||||||
xempj.Td = true
|
|
||||||
} else {
|
|
||||||
emp1 := component.ButtonStateType.Get(s.EMP1_BTN)
|
|
||||||
emp3 := component.ButtonStateType.Get(s.EMP3_BTN)
|
|
||||||
emp5 := component.ButtonStateType.Get(s.EMP5_BTN)
|
|
||||||
empx := component.ButtonStateType.Get(s.EMPX_BTN)
|
|
||||||
xempj.Td = xempj.Td && (emp1.Jt && emp3.Jt && emp5.Jt && empx.Jt)
|
|
||||||
}
|
|
||||||
|
|
||||||
sempfab := component.ButtonStateType.Get(s.SEMPFA_BTN)
|
|
||||||
sempj := component.RelayDriveType.Get(s.SEMPJ)
|
|
||||||
if sempfab.Jt {
|
|
||||||
sempj.Td = true
|
|
||||||
} else {
|
|
||||||
emp2 := component.ButtonStateType.Get(s.EMP2_BTN)
|
|
||||||
emp4 := component.ButtonStateType.Get(s.EMP4_BTN)
|
|
||||||
emp6 := component.ButtonStateType.Get(s.EMP6_BTN)
|
|
||||||
emps := component.ButtonStateType.Get(s.EMPS_BTN)
|
|
||||||
sempj.Td = sempj.Td && (emp2.Jt && emp4.Jt && emp6.Jt && emps.Jt)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// emp 继电器状态电路
|
|
||||||
type EmpStateSys struct {
|
|
||||||
query *ecs.Query
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewEmpState() *EmpStateSys {
|
|
||||||
return &EmpStateSys{
|
|
||||||
query: ecs.NewQuery(filter.Contains(component.EmpStateElectronicType)),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 控制电路更新
|
|
||||||
func (emp *EmpStateSys) Update(w ecs.World) {
|
|
||||||
emp.query.Each(w, func(entry *ecs.Entry) {
|
|
||||||
s := component.EmpStateElectronicType.Get(entry)
|
|
||||||
xempSda := component.ButtonStateType.Get(s.XEMPD_SDA)
|
|
||||||
xempj := component.RelayDriveType.Get(s.XEMPJ)
|
|
||||||
s.XEMPD = xempSda.Jt || !xempj.Xq
|
|
||||||
|
|
||||||
sempSda := component.ButtonStateType.Get(s.SEMPD_SDA)
|
|
||||||
sempj := component.RelayDriveType.Get(s.SEMPJ)
|
|
||||||
s.SEMPD = sempSda.Jt || !sempj.Xq
|
|
||||||
|
|
||||||
qba := component.ButtonStateType.Get(s.QBA)
|
|
||||||
if qba.Jt {
|
|
||||||
s.FMQ = xempj.Xq && sempj.Xq
|
|
||||||
} else {
|
|
||||||
s.FMQ = (!xempj.Xq) || (!sempj.Xq)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
127
sys/circuit_sys/ibp.go
Normal file
127
sys/circuit_sys/ibp.go
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
package circuit_sys
|
||||||
|
|
||||||
|
import (
|
||||||
|
"joylink.club/ecs"
|
||||||
|
"joylink.club/ecs/filter"
|
||||||
|
"joylink.club/rtsssimulation/component"
|
||||||
|
)
|
||||||
|
|
||||||
|
// ibp 系统
|
||||||
|
type IBPSys struct {
|
||||||
|
query *ecs.Query
|
||||||
|
}
|
||||||
|
|
||||||
|
// ibp盘系统
|
||||||
|
func NewIBPSys() *IBPSys {
|
||||||
|
return &IBPSys{
|
||||||
|
query: ecs.NewQuery(filter.Contains(
|
||||||
|
component.SpkControlElectronicType,
|
||||||
|
component.SpksStateElectronicType,
|
||||||
|
component.EmpControlElectronicType,
|
||||||
|
component.EmpStateElectronicType,
|
||||||
|
)),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 控制电路更新
|
||||||
|
func (ibp *IBPSys) Update(w ecs.World) {
|
||||||
|
ibp.query.Each(w, func(entry *ecs.Entry) {
|
||||||
|
ibp.spkControl(entry)
|
||||||
|
ibp.spksState(entry)
|
||||||
|
ibp.empControl(entry)
|
||||||
|
ibp.empState(entry)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 人员防护继电器控制电路逻辑
|
||||||
|
func (ibp *IBPSys) spkControl(entry *ecs.Entry) {
|
||||||
|
spkState := component.SpkControlElectronicType.Get(entry)
|
||||||
|
spksxplaBtn := getBtnVal(spkState.SPKSXPLA_BTN)
|
||||||
|
// spksx1j 通电状态
|
||||||
|
setRelayTdVal(spkState.SPKSX1J, spksxplaBtn || getBtnVal(spkState.SPKSX1J_BTN))
|
||||||
|
// spksx3j 通电状态
|
||||||
|
setRelayTdVal(spkState.SPKSX3J, spksxplaBtn || getBtnVal(spkState.SPKSX3J_BTN))
|
||||||
|
spkssplaBtn := getBtnVal(spkState.SPKSSPLA_BTN)
|
||||||
|
// spkss2j 通电状态
|
||||||
|
setRelayTdVal(spkState.SPKSS2J, spkssplaBtn || getBtnVal(spkState.SPKSS2J_BTN))
|
||||||
|
// spkss4j 通电状态
|
||||||
|
setRelayTdVal(spkState.SPKSS4J, spkssplaBtn || getBtnVal(spkState.SPKSS4J_BTN))
|
||||||
|
}
|
||||||
|
|
||||||
|
// 人员防护表示状态电路逻辑
|
||||||
|
func (ibp *IBPSys) spksState(entry *ecs.Entry) {
|
||||||
|
spkState := component.SpksStateElectronicType.Get(entry)
|
||||||
|
sda := getBtnVal(spkState.SDA)
|
||||||
|
// SPKSXPLAJ
|
||||||
|
spksxplaj := component.RelayDriveType.Get(spkState.SPKSXPLAJ)
|
||||||
|
setLightTdVal(spkState.SPKSXPLAD, sda || spksxplaj.Xq)
|
||||||
|
// SPKSSPLAJ
|
||||||
|
spkssplaj := component.RelayDriveType.Get(spkState.SPKSSPLAJ)
|
||||||
|
setLightTdVal(spkState.SPKSSPLAD, sda || spkssplaj.Xq)
|
||||||
|
// SPKSX1J
|
||||||
|
spksx1j := component.RelayDriveType.Get(spkState.SPKSX1J)
|
||||||
|
setLightTdVal(spkState.SPKSX1D, sda || !spksx1j.Xq)
|
||||||
|
// SPKSX3J
|
||||||
|
spksx3j := component.RelayDriveType.Get(spkState.SPKSX3J)
|
||||||
|
setLightTdVal(spkState.SPKSX3D, sda || !spksx3j.Xq)
|
||||||
|
// SPKSS2J
|
||||||
|
spkss2j := component.RelayDriveType.Get(spkState.SPKSS2J)
|
||||||
|
setLightTdVal(spkState.SPKSS2D, sda || !spkss2j.Xq)
|
||||||
|
// SPKSS4J
|
||||||
|
spkss4j := component.RelayDriveType.Get(spkState.SPKSS4J)
|
||||||
|
setLightTdVal(spkState.SPKSS4D, sda || !spkss4j.Xq)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 紧急关闭控制电路
|
||||||
|
func (ibp *IBPSys) empControl(entry *ecs.Entry) {
|
||||||
|
s := component.EmpControlElectronicType.Get(entry)
|
||||||
|
xempfab := getBtnVal(s.XEMPFA_BTN)
|
||||||
|
xempj := component.RelayDriveType.Get(s.XEMPJ)
|
||||||
|
// xempfab接通或者按钮组接通并且xempj继电器吸起状态
|
||||||
|
xempj.Td = xempfab || (xempj.Xq && getBtnVal(s.EMP1_BTN) && getBtnVal(s.EMP3_BTN) && getBtnVal(s.EMP5_BTN) && getBtnVal(s.EMPX_BTN))
|
||||||
|
sempfab := getBtnVal(s.SEMPFA_BTN)
|
||||||
|
sempj := component.RelayDriveType.Get(s.SEMPJ)
|
||||||
|
// sempfab接通或者按钮组接通并且sempj继电器吸起状态
|
||||||
|
sempj.Td = sempfab || (sempj.Xq && getBtnVal(s.EMP2_BTN) && getBtnVal(s.EMP4_BTN) && getBtnVal(s.EMP6_BTN) && getBtnVal(s.EMPS_BTN))
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// 紧急关闭表示电路
|
||||||
|
func (ibp *IBPSys) empState(entry *ecs.Entry) {
|
||||||
|
s := component.EmpStateElectronicType.Get(entry)
|
||||||
|
sda := getBtnVal(s.SDA)
|
||||||
|
xempj := component.RelayDriveType.Get(s.XEMPJ)
|
||||||
|
setLightTdVal(s.XEMPD, sda || !xempj.Xq)
|
||||||
|
sempj := component.RelayDriveType.Get(s.SEMPJ)
|
||||||
|
setLightTdVal(s.SEMPD, sda || !sempj.Xq)
|
||||||
|
qba := getBtnVal(s.QBA)
|
||||||
|
if qba {
|
||||||
|
setFMQTdVal(s.FMQ, xempj.Xq && sempj.Xq)
|
||||||
|
} else {
|
||||||
|
setFMQTdVal(s.FMQ, (!xempj.Xq) || (!sempj.Xq))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取按钮状态
|
||||||
|
func getBtnVal(entry *ecs.Entry) bool {
|
||||||
|
btn := component.BitStateType.Get(entry)
|
||||||
|
return btn.Val
|
||||||
|
}
|
||||||
|
|
||||||
|
// 设置继电器通电状态
|
||||||
|
func setRelayTdVal(entry *ecs.Entry, val bool) {
|
||||||
|
relay := component.RelayDriveType.Get(entry)
|
||||||
|
relay.Td = val
|
||||||
|
}
|
||||||
|
|
||||||
|
// 设置信号灯通电状态
|
||||||
|
func setLightTdVal(entry *ecs.Entry, val bool) {
|
||||||
|
light := component.LightDriveType.Get(entry)
|
||||||
|
light.Td = val
|
||||||
|
}
|
||||||
|
|
||||||
|
// 设置蜂鸣器通电状态
|
||||||
|
func setFMQTdVal(entry *ecs.Entry, val bool) {
|
||||||
|
fmq := component.FMQDriveType.Get(entry)
|
||||||
|
fmq.Td = val
|
||||||
|
}
|
@ -1,98 +0,0 @@
|
|||||||
package circuit_sys
|
|
||||||
|
|
||||||
import (
|
|
||||||
"joylink.club/ecs"
|
|
||||||
"joylink.club/ecs/filter"
|
|
||||||
"joylink.club/rtsssimulation/component"
|
|
||||||
)
|
|
||||||
|
|
||||||
type SpkControlSys struct {
|
|
||||||
query *ecs.Query
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewSpkControl() *SpkControlSys {
|
|
||||||
return &SpkControlSys{
|
|
||||||
query: ecs.NewQuery(filter.Contains(component.SpkControlElectronicType)),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 控制电路更新
|
|
||||||
func (spk *SpkControlSys) Update(w ecs.World) {
|
|
||||||
spk.query.Each(w, func(entry *ecs.Entry) {
|
|
||||||
spkState := component.SpkControlElectronicType.Get(entry)
|
|
||||||
spksxplaBtn := component.ButtonStateType.Get(spkState.SPKSXPLA_BTN)
|
|
||||||
spksx1j := component.RelayDriveType.Get(spkState.SPKSX1J)
|
|
||||||
spksx3j := component.RelayDriveType.Get(spkState.SPKSX3J)
|
|
||||||
if spksxplaBtn.Jt {
|
|
||||||
spksx1j.Td = true
|
|
||||||
spksx3j.Td = true
|
|
||||||
} else {
|
|
||||||
spksx1jBtn := component.ButtonStateType.Get(spkState.SPKSX1J_BTN)
|
|
||||||
spksx3jBtn := component.ButtonStateType.Get(spkState.SPKSX3J_BTN)
|
|
||||||
spksx1j.Td = spksx1jBtn.Jt
|
|
||||||
spksx3j.Td = spksx3jBtn.Jt
|
|
||||||
}
|
|
||||||
|
|
||||||
spkssplaBtn := component.ButtonStateType.Get(spkState.SPKSSPLA_BTN)
|
|
||||||
spkss2j := component.RelayDriveType.Get(spkState.SPKSS2J)
|
|
||||||
spkss4j := component.RelayDriveType.Get(spkState.SPKSS4J)
|
|
||||||
if spkssplaBtn.Jt {
|
|
||||||
spkss2j.Td = true
|
|
||||||
spkss4j.Td = true
|
|
||||||
} else {
|
|
||||||
spkss2jBtn := component.ButtonStateType.Get(spkState.SPKSS2J_BTN)
|
|
||||||
spkss4jBtn := component.ButtonStateType.Get(spkState.SPKSS4J_BTN)
|
|
||||||
spkss2j.Td = spkss2jBtn.Jt
|
|
||||||
spkss4j.Td = spkss4jBtn.Jt
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 人员防护状态系统
|
|
||||||
type SpksStateSys struct {
|
|
||||||
query *ecs.Query
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewSpksStateSys() *SpksStateSys {
|
|
||||||
return &SpksStateSys{
|
|
||||||
query: ecs.NewQuery(filter.Contains(component.SpksStateElectronicType)),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 状态电路更新
|
|
||||||
func (spk *SpksStateSys) Update(w ecs.World) {
|
|
||||||
spk.query.Each(w, func(entry *ecs.Entry) {
|
|
||||||
spkState := component.SpksStateElectronicType.Get(entry)
|
|
||||||
sda := component.ButtonStateType.Get(spkState.SDA)
|
|
||||||
|
|
||||||
// SPKSXPLAJ
|
|
||||||
spksxplaj := component.RelayDriveType.Get(spkState.SPKSXPLAJ)
|
|
||||||
spksxplaj.Xq = spksxplaj.Td
|
|
||||||
spkState.SPKSXPLAD = sda.Jt || spksxplaj.Xq
|
|
||||||
|
|
||||||
// SPKSSPLAJ
|
|
||||||
spkssplaj := component.RelayDriveType.Get(spkState.SPKSSPLAJ)
|
|
||||||
spkssplaj.Xq = spkssplaj.Td
|
|
||||||
spkState.SPKSSPLAD = sda.Jt || spkssplaj.Xq
|
|
||||||
|
|
||||||
// SPKSX1J
|
|
||||||
spksx1j := component.RelayDriveType.Get(spkState.SPKSX1J)
|
|
||||||
spksx1j.Xq = spksx1j.Td || spksxplaj.Xq
|
|
||||||
spkState.SPKSX1D = sda.Jt || !spksx1j.Xq
|
|
||||||
|
|
||||||
// SPKSX3J
|
|
||||||
spksx3j := component.RelayDriveType.Get(spkState.SPKSX3J)
|
|
||||||
spksx3j.Xq = spksx3j.Td || spksxplaj.Xq
|
|
||||||
spkState.SPKSX3D = sda.Jt || spksx3j.Xq
|
|
||||||
|
|
||||||
// SPKSS2J
|
|
||||||
spkss2j := component.RelayDriveType.Get(spkState.SPKSS2J)
|
|
||||||
spkss2j.Xq = spkss2j.Td || spkssplaj.Xq
|
|
||||||
spkState.SPKSS2D = sda.Jt || !spkss2j.Xq
|
|
||||||
|
|
||||||
// SPKSS4J
|
|
||||||
spkss4j := component.RelayDriveType.Get(spkState.SPKSS4J)
|
|
||||||
spkss4j.Xq = spkss4j.Td || spkssplaj.Xq
|
|
||||||
spkState.SPKSS4D = sda.Jt || !spkss4j.Xq
|
|
||||||
})
|
|
||||||
}
|
|
26
sys/device_sys/fmq.go
Normal file
26
sys/device_sys/fmq.go
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
package device_sys
|
||||||
|
|
||||||
|
import (
|
||||||
|
"joylink.club/ecs"
|
||||||
|
"joylink.club/ecs/filter"
|
||||||
|
"joylink.club/rtsssimulation/component"
|
||||||
|
)
|
||||||
|
|
||||||
|
// FMQSys 蜂鸣系统
|
||||||
|
type FMQSys struct {
|
||||||
|
query *ecs.Query
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewFMQSys() *FMQSys {
|
||||||
|
return &FMQSys{query: ecs.NewQuery(filter.Contains(component.FMQDriveType, component.BitStateType))}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (fmq *FMQSys) Update(w ecs.World) {
|
||||||
|
fmq.query.Each(w, func(entry *ecs.Entry) {
|
||||||
|
drive := component.FMQDriveType.Get(entry)
|
||||||
|
state := component.BitStateType.Get(entry)
|
||||||
|
if drive.Td != state.Val {
|
||||||
|
state.Val = drive.Td
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user