rts-sim-module/entity/iscs_load.go
2023-12-25 17:31:35 +08:00

97 lines
2.5 KiB
Go

package entity
import (
"joylink.club/ecs"
"joylink.club/rtsssimulation/repository/model/proto"
)
// LoadIscs 加载ISCS相关设备实体
func LoadIscs(w ecs.World) error {
data := GetWorldData(w)
//电力母线实体
for _, pipe := range data.Repo.PipeMap {
switch pipe.PipeType {
case proto.Pipe_ElectricPower:
NewPowerPipeEntity(w, pipe.Id())
}
}
//断路器
for _, circuitBreaker := range data.Repo.CircuitBreakerMap {
NewCircuitBreakerEntity(w, circuitBreaker.Id())
}
//三工位开关
for _, tps := range data.Repo.ThreePositionSwitchMap {
NewThreePositionSwitchEntity(w, tps.Id())
}
//手车
for _, hs := range data.Repo.HandcartSwitchMap {
NewHandcartSwitchEntity(w, hs.Id())
}
//整流器
for _, rectifier := range data.Repo.RectifierMap {
NewRectifierEntity(w, rectifier.Id())
}
//隔离开关
for _, disconnector := range data.Repo.DisconnectorMap {
NewDisconnectorEntity(w, disconnector.Id())
}
//变压器
for _, vt := range data.Repo.VoltageTransformerMap {
NewVoltageTransformerEntity(w, vt.Id())
}
//电源
for _, ps := range data.Repo.PowerSourceMap {
NewPowerSourceEntity(w, ps.Id(), ps.Ac, ps.Voltage)
}
//避雷器
for _, la := range data.Repo.LightningArresterMap {
NewLightningArresterEntity(w, la.Id())
}
//接地装置
for _, ed := range data.Repo.EarthingDeviceMap {
NewEarthingDeviceEntity(w, ed.Id())
}
//网络交换机
for _, networkSwitch := range data.Repo.NetworkSwitchMap {
NewNetworkSwitchEntity(w, networkSwitch.Id())
}
//线柜
for _, wc := range data.Repo.WireCabinetMap {
NewWireCabinetEntity(w, wc.Id())
}
//风亭(排风亭、送风亭)
for _, ap := range data.Repo.AirPavilionMap {
NewAirPavilionEntity(w, ap.Id(), ap.PavilionType)
}
//阀门
for _, valve := range data.Repo.ValveMap {
NewValveEntity(w, valve.Id(), valve.ValveType)
}
//混合室静压箱
for _, gmc := range data.Repo.GasMixingChamberMap {
NewGasMixingChamberEntity(w, gmc.Id())
}
//组合式空调
for _, cac := range data.Repo.CombinationAirConditionerMap {
NewCombinationAirConditionerEntity(w, cac.Id())
}
//净化装置
for _, apd := range data.Repo.AirPurificationDeviceMap {
NewPurificationDeviceEntity(w, apd.Id())
}
//空气幕
for _, ac := range data.Repo.AirCurtainMap {
NewAirCurtainEntity(w, ac.Id())
}
//气体环境
for _, gasEnv := range data.Repo.GasEnvironmentMap {
NewGasEnvironmentEntity(w, gasEnv.Id())
}
//风机
for _, fan := range data.Repo.FanMap {
NewFanEntity(w, fan.Id(), fan.FanType)
}
//
return nil
}