bool UPawnAction::Activate() { bool bResult = false; UE_VLOG(GetPawn(), LogPawnAction, Log, TEXT("%s> Activating at priority %s! First start? %s Paused? %s") , *GetName() , *GetPriorityName() , HasBeenStarted() ? TEXT("NO") : TEXT("YES") , IsPaused() ? TEXT("YES") : TEXT("NO")); if (HasBeenStarted() && IsPaused()) { bResult = Resume(); } else { bResult = Start(); if (bResult == false) { UE_VLOG(GetPawn(), LogPawnAction, Log, TEXT("%s> Failed to start.") , *GetName()); bFailedToStart = true; SetFinishResult(EPawnActionResult::Failed); SendEvent(EPawnActionEventType::FailedToStart); } } return bResult; }
void UPawnAction::Finish(TEnumAsByte<EPawnActionResult::Type> WithResult) { UE_VLOG(GetPawn(), LogPawnAction, Log, TEXT("%s> finishing with result %s") , *GetName(), *GetActionResultName(WithResult)); SetFinishResult(WithResult); StopWaitingForMessages(); SendEvent(EPawnActionEventType::FinishedExecution); }