package entity import ( "joylink.club/ecs" "joylink.club/rtsssimulation/component" ) func newAfcGateEntity(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.AfcGateType)) component.UidType.SetValue(e, component.Uid{Id: id}) wd.EntityMap[id] = e } return e } // NewEntranceGateEntity 创建进闸机实体 func NewEntranceGateEntity(w ecs.World, id string) *ecs.Entry { entry := newAfcGateEntity(w, id) entry.AddComponent(component.EntranceGateTag) return entry } // NewExitGateEntity 创建出闸机实体 func NewExitGateEntity(w ecs.World, id string) *ecs.Entry { entry := newAfcGateEntity(w, id) entry.AddComponent(component.ExitGateTag) return entry } // NewTwoWayGateEntity 创建双向闸机实体 func NewTwoWayGateEntity(w ecs.World, id string) *ecs.Entry { entry := newAfcGateEntity(w, id) entry.AddComponent(component.TwoWayGateTag) return entry } func newTicketMachineEntity(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.TicketMachineType)) component.UidType.SetValue(e, component.Uid{Id: id}) wd.EntityMap[id] = e } return e } // NewTicketVendingMachineEntity 创建自动售票机实体 func NewTicketVendingMachineEntity(w ecs.World, id string) *ecs.Entry { entry := newTicketMachineEntity(w, id) entry.AddComponent(component.TicketVendingMachineTag) return entry } // NewSemiAutoTicketMachineEntity 创建半自动售票机实体 func NewSemiAutoTicketMachineEntity(w ecs.World, id string) *ecs.Entry { entry := newTicketMachineEntity(w, id) entry.AddComponent(component.SemiAutoTicketMachineTag) return entry } // NewTicketCheckingMachineEntity 创建验票机实体 func NewTicketCheckingMachineEntity(w ecs.World, id string) *ecs.Entry { entry := newTicketMachineEntity(w, id) entry.AddComponent(component.TicketCheckingMachineTag) return entry }