package entity import ( "joylink.club/ecs" "joylink.club/rtsssimulation/component" ) // NewLightEntity 创建无色灯实体 func NewLightEntity(w ecs.World) *ecs.Entry { return w.Entry(w.Create(component.LightDriveType, component.BitStateType)) } // NewLightLEntity 创建绿色灯实体 func NewLightLEntity(w ecs.World) *ecs.Entry { e := NewLightEntity(w) e.AddComponent(component.LdTag) return e } // NewLightHEntity 创建红色灯实体 func NewLightHEntity(w ecs.World) *ecs.Entry { e := NewLightEntity(w) e.AddComponent(component.HdTag) return e } // NewLightUEntity 创建黄色灯实体 func NewLightUEntity(w ecs.World) *ecs.Entry { e := NewLightEntity(w) e.AddComponent(component.UdTag) return e } // NewLightBEntity 创建白色灯实体 func NewLightBEntity(w ecs.World) *ecs.Entry { e := NewLightEntity(w) e.AddComponent(component.BdTag) return e } // NewLightAEntity 创建蓝色灯实体 func NewLightAEntity(w ecs.World) *ecs.Entry { e := NewLightEntity(w) e.AddComponent(component.AdTag) return e } // NewLights 创建灯位列表(灯位顺序与lightTags一致) func NewLights(w ecs.World, lightTags ...ecs.IComponentType) []*ecs.Entry { ls := make([]*ecs.Entry, 0, len(lightTags)) for _, lightTag := range lightTags { lightEntry := NewLightEntity(w) lightEntry.AddComponent(lightTag) ls = append(ls, lightEntry) } return ls }