32 lines
1.1 KiB
Go
32 lines
1.1 KiB
Go
package entity
|
|
|
|
import (
|
|
"joylink.club/ecs"
|
|
"joylink.club/rtsssimulation/component"
|
|
"joylink.club/rtsssimulation/component/relation"
|
|
"joylink.club/rtsssimulation/component/singleton"
|
|
"joylink.club/rtsssimulation/modelrepo/model"
|
|
)
|
|
|
|
// 电子元件相关实体创建
|
|
|
|
// 创建断相保护器实体
|
|
func NewDbq(w ecs.World, dbq model.Dbq) *ecs.Entry {
|
|
uid := dbq.Uid().Id()
|
|
re := w.Entry(w.Create(component.DBQTag, component.UidType, component.DbqModelRelaType, component.DbqStateType, component.CounterType))
|
|
component.UidType.Set(re, &component.Uid{Id: uid})
|
|
component.DbqModelRelaType.Set(re, &relation.DbqModelRela{M: dbq})
|
|
singleton.GetEntityUidIndex(w).Add(uid, re)
|
|
return re
|
|
}
|
|
|
|
// 创建继电器实体
|
|
func NewRelay(w ecs.World, r model.Relay) *ecs.Entry {
|
|
uid := r.Uid().Id()
|
|
re := w.Entry(w.Create(component.RelayTag, component.UidType, component.RelayModelRelaType, component.RelayStateType))
|
|
component.UidType.Set(re, &component.Uid{Id: uid})
|
|
component.RelayModelRelaType.Set(re, &relation.RelayModelRela{M: r})
|
|
singleton.GetEntityUidIndex(w).Add(uid, re)
|
|
return re
|
|
}
|