package operate import ( "fmt" "github.com/yohamta/donburi/filter" "joylink.club/ecs" "joylink.club/rtsssimulation/components" "joylink.club/rtsssimulation/system" ) // 紧急停车按钮查询 var empQuery *ecs.Query = ecs.NewQuery(filter.Contains(components.DeviceIdentityComponent, components.EmpStateComponent)) func findEmpEntry(world ecs.World, empId string) (*ecs.Entry, error) { empEntry := system.QueryEntityById(world, empQuery, empId) if empEntry == nil { return nil, fmt.Errorf("紧急停车按钮[%s]实体不存在", empId) } else { return empEntry, nil } } // 激活紧急停车按钮 func FireEmpPressed(world ecs.World, empId string) error { entry, err := findEmpEntry(world, empId) if err != nil { return err } components.EmpStateComponent.Get(entry).Pressed = true return nil } // 复位紧急停车按钮 func FireEmpReset(world ecs.World, empId string) error { entry, err := findEmpEntry(world, empId) if err != nil { return err } components.EmpStateComponent.Get(entry).Pressed = false return nil }