rts-sim-module/entity/iscs_fas.go

126 lines
3.6 KiB
Go
Raw Normal View History

2023-12-14 13:33:18 +08:00
package entity
import (
"joylink.club/ecs"
"joylink.club/rtsssimulation/component"
)
// NewNetworkHostEntity 创建网络设备、网络主机等实体
func NewNetworkHostEntity(w ecs.World, id string) *ecs.Entry {
wd := GetWorldData(w)
e, ok := wd.EntityMap[id]
if !ok {
e := w.Entry(w.Create(component.UidType, component.NetworkHostType))
component.UidType.SetValue(e, component.Uid{Id: id})
wd.EntityMap[id] = e
}
return e
}
// NewSmokeDetectorEntity 创建烟感实体
func NewSmokeDetectorEntity(w ecs.World, id string) *ecs.Entry {
wd := GetWorldData(w)
e, ok := wd.EntityMap[id]
if !ok {
e := w.Entry(w.Create(component.UidType, component.SmokeDetectorType))
component.UidType.SetValue(e, component.Uid{Id: id})
wd.EntityMap[id] = e
}
return e
}
// NewTemperatureDetectorEntity 创建温感实体
func NewTemperatureDetectorEntity(w ecs.World, id string) *ecs.Entry {
wd := GetWorldData(w)
e, ok := wd.EntityMap[id]
if !ok {
e := w.Entry(w.Create(component.UidType, component.TemperatureDetectorType))
component.UidType.SetValue(e, component.Uid{Id: id})
wd.EntityMap[id] = e
}
return e
}
// NewManualFireAlarmButtonEntity 创建手动火灾报警按钮实体
func NewManualFireAlarmButtonEntity(w ecs.World, id string) *ecs.Entry {
wd := GetWorldData(w)
e, ok := wd.EntityMap[id]
if !ok {
e := w.Entry(w.Create(component.UidType, component.ManualFireAlarmButtonType))
component.UidType.SetValue(e, component.Uid{Id: id})
wd.EntityMap[id] = e
}
return e
}
// NewGasFireExtinguisherEntity 创建气体灭火器实体
func NewGasFireExtinguisherEntity(w ecs.World, id string) *ecs.Entry {
wd := GetWorldData(w)
e, ok := wd.EntityMap[id]
if !ok {
e := w.Entry(w.Create(component.UidType, component.GasFireExtinguisherType))
component.UidType.SetValue(e, component.Uid{Id: id})
wd.EntityMap[id] = e
}
return e
}
// NewAlarmBellEntity 创建警铃实体
func NewAlarmBellEntity(w ecs.World, id string) *ecs.Entry {
wd := GetWorldData(w)
e, ok := wd.EntityMap[id]
if !ok {
e := w.Entry(w.Create(component.UidType, component.AlarmBellType))
component.UidType.SetValue(e, component.Uid{Id: id})
wd.EntityMap[id] = e
}
return e
}
// 创建防火卷帘
func newFireRollerShutterEntity(w ecs.World, id string) *ecs.Entry {
wd := GetWorldData(w)
e, ok := wd.EntityMap[id]
if !ok {
e := w.Entry(w.Create(component.UidType, component.FireRollerShutterType))
component.UidType.SetValue(e, component.Uid{Id: id})
wd.EntityMap[id] = e
}
return e
}
// NewPartitionTypeFireRollerShutterEntity 创建隔断型防火卷帘
func NewPartitionTypeFireRollerShutterEntity(w ecs.World, id string) *ecs.Entry {
entry := newFireRollerShutterEntity(w, id)
entry.AddComponent(component.PartitionTypeFireRollerShutterTag)
return entry
}
// NewEvacuationTypeFireRollerShutterEntity 创建疏散型防火卷帘
func NewEvacuationTypeFireRollerShutterEntity(w ecs.World, id string) *ecs.Entry {
entry := newFireRollerShutterEntity(w, id)
entry.AddComponent(component.EvacuationTypeFireRollerShutterTag)
return entry
}
// NewFirePumpEntity 创建消防泵实体
func NewFirePumpEntity(w ecs.World, id string) *ecs.Entry {
entry := NewWaterPumpEntity(w, id)
entry.AddComponent(component.FirePumpTag)
return entry
}
// NewSprayPumpEntity 创建喷淋泵实体
func NewSprayPumpEntity(w ecs.World, id string) *ecs.Entry {
entry := NewWaterPumpEntity(w, id)
entry.AddComponent(component.SprayPumpTag)
return entry
}
// NewStabilizedPressurePumpEntity 创建稳压泵实体
func NewStabilizedPressurePumpEntity(w ecs.World, id string) *ecs.Entry {
entry := NewWaterPumpEntity(w, id)
entry.AddComponent(component.StabilizedPressurePumpTag)
return entry
}