-module(lift_task). -behaviour(bt_task). -export([ get_params/0, run/3 ]). get_params() -> ["bid", "direction"]. run(#{"bid" := BId_key, "direction" := Direction_key}, BB, _Event) -> BId = blackboard:eval(BId_key, BB), Direction = blackboard:eval(Direction_key, BB), case gproc:lookup_local_name({dummy_navigator, BId}) of undefined -> io:format("Could not lift: navigator not found for bulter ~p~n", [BId]), {failure, BB}; Pid -> DirectionAtom = list_to_atom(Direction), ButlerLiftState = dummy_navigator:get_lift_state(Pid), if DirectionAtom =:= ButlerLiftState -> io:format("Not doing any lifting."), {success, BB}; true -> io:format("Lifting butler ~p in direction ~p~n", [BId, DirectionAtom]), dummy_navigator:lift(Pid, DirectionAtom), {running, BB} end end.