package entity import ( "joylink.club/ecs" "joylink.club/rtsssimulation/component" ) // NewIscsFanEntity 创建风机实体 func NewIscsFanEntity(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.FanType, component.FanStateType)) component.UidType.SetValue(e, component.Uid{Id: id}) wd.EntityMap[id] = e } return e } // NewIscsTwoSpeedFanEntity 创建双速风机实体 func NewIscsTwoSpeedFanEntity(w ecs.World, id string) *ecs.Entry { entry := NewIscsFanEntity(w, id) entry.AddComponent(component.TwoSpeedFanTag) return entry } // NewAirConditionerEntity 创建空调实体/空调器实体 // // fc-true变频空调; func NewAirConditionerEntity(w ecs.World, id string, fc bool) *ecs.Entry { entry := NewIscsFanEntity(w, id) entry.HasComponent(component.AirConditionerTag) component.FanType.Get(entry).Fc = fc return entry } // NewCombinedAirConditionerEntity 组合式空调(变频空调) func NewCombinedAirConditionerEntity(w ecs.World, id string) *ecs.Entry { entry := NewAirConditionerEntity(w, id, true) entry.AddComponent(component.CombinedAirConditionerTag) return entry } // NewElectricControlValveEntity 创建电动调节阀实体 func NewElectricControlValveEntity(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.ElectricControlValveType, component.TwoPositionTransformType)) component.UidType.SetValue(e, component.Uid{Id: id}) wd.EntityMap[id] = e } return e } // NewElectricAirValveEntity 创建电动风阀实体 func NewElectricAirValveEntity(w ecs.World, id string) *ecs.Entry { entry := NewElectricControlValveEntity(w, id) entry.AddComponent(component.ElectricAirValveTag) return entry } // NewCombinationAirValveEntity 创建组合式风阀 func NewCombinationAirValveEntity(w ecs.World, id string) *ecs.Entry { entry := NewElectricControlValveEntity(w, id) entry.AddComponent(component.CombinationAirValveTag) return entry } // NewElectricTwoWayValveEntity 创建电动两通调节阀实体 func NewElectricTwoWayValveEntity(w ecs.World, id string) *ecs.Entry { entry := NewElectricControlValveEntity(w, id) entry.AddComponent(component.ElectricTwoWayValveTag) return entry } // NewPurificationDeviceEntity 创建净化装置实体 func NewPurificationDeviceEntity(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.PurificationDeviceType, component.CounterType)) component.UidType.SetValue(e, component.Uid{Id: id}) wd.EntityMap[id] = e } return e } // NewElevatorDeviceEntity 创建垂直电梯实体 func NewElevatorDeviceEntity(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.ElevatorType)) component.UidType.SetValue(e, component.Uid{Id: id}) wd.EntityMap[id] = e } return e } // NewEscalatorDeviceEntity 创建自动扶梯实体 func NewEscalatorDeviceEntity(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.EscalatorType)) component.UidType.SetValue(e, component.Uid{Id: id}) wd.EntityMap[id] = e } return e }