38 lines
1.4 KiB
C++
38 lines
1.4 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "MassNavigationFragments.h"
|
|
#include "GameFramework/GameStateBase.h"
|
|
#include "Engine/World.h"
|
|
|
|
const float FMassMoveTargetFragment::UnsetDistance = -1.f;
|
|
|
|
void FMassMoveTargetFragment::CreateNewAction(const EMassMovementAction InAction, const UWorld& InWorld)
|
|
{
|
|
ensureMsgf(InWorld.GetNetMode() != NM_Client, TEXT("This version of SetDesiredAction should only be called on the authority."));
|
|
CurrentAction = InAction;
|
|
CurrentActionID++;
|
|
CurrentActionWorldStartTime = InWorld.TimeSeconds;
|
|
|
|
const AGameStateBase* GameState = InWorld.GetGameState();
|
|
CurrentActionServerStartTime = GameState != nullptr ? GameState->GetServerWorldTimeSeconds() : CurrentActionWorldStartTime;
|
|
|
|
MarkNetDirty();
|
|
}
|
|
|
|
void FMassMoveTargetFragment::CreateReplicatedAction(const EMassMovementAction InAction, const uint16 InActionID, const double InWorldStartTime, const double InServerStartTime)
|
|
{
|
|
CurrentAction = InAction;
|
|
CurrentActionID = InActionID;
|
|
CurrentActionWorldStartTime = InWorldStartTime;
|
|
CurrentActionServerStartTime = InServerStartTime;
|
|
}
|
|
|
|
FString FMassMoveTargetFragment::ToString() const
|
|
{
|
|
return FString::Printf(TEXT("ActionID:%d Action:%s StartTime: World:%.1f Server:%.1f DesiredSpeed:%.1f "),
|
|
CurrentActionID,
|
|
*UEnum::GetValueAsString(CurrentAction),
|
|
CurrentActionWorldStartTime,
|
|
CurrentActionServerStartTime,
|
|
DesiredSpeed.Get());
|
|
} |