package fi import ( "fmt" "joylink.club/ecs" "joylink.club/rtsssimulation/component" "joylink.club/rtsssimulation/entity" ) // 按下按钮 func PressDownButton(w ecs.World, id string) error { result := <-ecs.Request[ecs.EmptyType](w, func() ecs.Result[ecs.EmptyType] { wd := entity.GetWorldData(w) entry, ok := wd.EntityMap[id] if ok { state := component.BitStateType.Get(entry) state.Val = true } else { return ecs.NewErrResult(fmt.Errorf("未找到id=%s的按钮", id)) } return ecs.NewOkEmptyResult() }) return result.Err } // 抬起拉起按钮 func PressUpButton(w ecs.World, id string) error { result := <-ecs.Request[ecs.EmptyType](w, func() ecs.Result[ecs.EmptyType] { wd := entity.GetWorldData(w) entry, ok := wd.EntityMap[id] if ok { state := component.BitStateType.Get(entry) state.Val = false } else { return ecs.NewErrResult(fmt.Errorf("未找到id=%s的按钮", id)) } return ecs.NewOkEmptyResult() }) return result.Err } // 修改钥匙挡位 func SwitchKeyGear(w ecs.World, id string, gear int32) error { result := <-ecs.Request[ecs.EmptyType](w, func() ecs.Result[ecs.EmptyType] { wd := entity.GetWorldData(w) entry, ok := wd.EntityMap[id] if ok { state := component.GearStateType.Get(entry) state.Val = gear } else { return ecs.NewErrResult(fmt.Errorf("未找到id=%s的钥匙开关", id)) } return ecs.NewOkEmptyResult() }) return result.Err }