260 lines
7.7 KiB
Go
260 lines
7.7 KiB
Go
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
|
|
}
|
|
|
|
// NewFasAcsEntity 创建火警ACS联动实体
|
|
func NewFasAcsEntity(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.FasAcsType))
|
|
component.UidType.SetValue(e, component.Uid{Id: id})
|
|
wd.EntityMap[id] = e
|
|
}
|
|
return e
|
|
}
|
|
|
|
// NewFasAfcEntity 创建火警AFC联动实体
|
|
func NewFasAfcEntity(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.FasAfcType))
|
|
component.UidType.SetValue(e, component.Uid{Id: id})
|
|
wd.EntityMap[id] = e
|
|
}
|
|
return e
|
|
}
|
|
|
|
// NewWaterFlowIndicatorEntity 创建水流指示器实体
|
|
func NewWaterFlowIndicatorEntity(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.WaterFlowIndicatorType))
|
|
component.UidType.SetValue(e, component.Uid{Id: id})
|
|
wd.EntityMap[id] = e
|
|
}
|
|
return e
|
|
}
|
|
|
|
// NewSignalButterflyValveEntity 创建信号蝶阀实体
|
|
func NewSignalButterflyValveEntity(w ecs.World, id string) *ecs.Entry {
|
|
entry := NewElectricControlValveEntity(w, id)
|
|
entry.AddComponent(component.SignalButterflyValveTag)
|
|
return entry
|
|
}
|
|
|
|
// NewPressureSwitchEntity 压力开关是与电器开关相结合的装置,当到达预先设定的流体压力时,开关接点动作
|
|
func NewPressureSwitchEntity(w ecs.World, id string) *ecs.Entry {
|
|
entry := NewElectricControlValveEntity(w, id)
|
|
entry.AddComponent(component.PressureSwitchTag)
|
|
return entry
|
|
}
|
|
|
|
// NewNonFirePowerSourceEntity 创建非消防电源实体
|
|
func NewNonFirePowerSourceEntity(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.NonFirePowerSourceType))
|
|
component.UidType.SetValue(e, component.Uid{Id: id})
|
|
wd.EntityMap[id] = e
|
|
}
|
|
return e
|
|
}
|
|
|
|
// NewPumpStartButtonEntity 创建启泵按钮实体
|
|
func NewPumpStartButtonEntity(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.PumpStartButtonType))
|
|
component.UidType.SetValue(e, component.Uid{Id: id})
|
|
wd.EntityMap[id] = e
|
|
}
|
|
return e
|
|
}
|
|
|
|
// NewTemperatureSensingCableEntity 创建感温电缆实体
|
|
func NewTemperatureSensingCableEntity(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.TemperatureSensingCableType))
|
|
component.UidType.SetValue(e, component.Uid{Id: id})
|
|
wd.EntityMap[id] = e
|
|
}
|
|
return e
|
|
}
|
|
|
|
// NewElevatorToOriginalPosModuleEntity 电梯归首功能模块实体
|
|
func NewElevatorToOriginalPosModuleEntity(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.ElevatorToOriginalPosModuleType))
|
|
component.UidType.SetValue(e, component.Uid{Id: id})
|
|
wd.EntityMap[id] = e
|
|
}
|
|
return e
|
|
}
|
|
|
|
// NewFireDamperEntity 创建防火阀实体
|
|
func NewFireDamperEntity(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.FireDamperType))
|
|
component.UidType.SetValue(e, component.Uid{Id: id})
|
|
wd.EntityMap[id] = e
|
|
}
|
|
return e
|
|
}
|
|
|
|
// NewElectricSmokeFireDamperEntity 创建电动防火防烟阀实体
|
|
func NewElectricSmokeFireDamperEntity(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.ElectricSmokeFireDamperType))
|
|
component.UidType.SetValue(e, component.Uid{Id: id})
|
|
wd.EntityMap[id] = e
|
|
}
|
|
return e
|
|
}
|
|
|
|
// NewFireInterconnectionSignalEntity 创建火灾互联互通信号设备实体
|
|
func NewFireInterconnectionSignalEntity(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.FireInterconnectionSignalType))
|
|
component.UidType.SetValue(e, component.Uid{Id: id})
|
|
wd.EntityMap[id] = e
|
|
}
|
|
return e
|
|
}
|