Files
UnrealEngine/Engine/Plugins/Runtime/MassGameplay/Source/MassReplication/Private/MassReplicationTransformHandlers.cpp
2025-05-18 13:04:45 +08:00

27 lines
1.0 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "MassReplicationTransformHandlers.h"
#include "MassEntityQuery.h"
#include "MassCommonFragments.h"
#include "MassExecutionContext.h"
#include "AIHelpers.h"
void FMassReplicationProcessorTransformHandlerBase::AddRequirements(FMassEntityQuery& InQuery)
{
InQuery.AddRequirement<FTransformFragment>(EMassFragmentAccess::ReadWrite);
}
void FMassReplicationProcessorTransformHandlerBase::CacheFragmentViews(FMassExecutionContext& ExecContext)
{
TransformList = ExecContext.GetMutableFragmentView<FTransformFragment>();
}
void FMassReplicationProcessorPositionYawHandler::AddEntity(const int32 EntityIdx, FReplicatedAgentPositionYawData& InOutReplicatedPositionYawData) const
{
const FTransformFragment& TransformFragment = TransformList[EntityIdx];
InOutReplicatedPositionYawData.SetPosition(TransformFragment.GetTransform().GetLocation());
const FRotator::FReal Yaw = FMath::DegreesToRadians(TransformFragment.GetTransform().Rotator().Yaw);
InOutReplicatedPositionYawData.SetYaw(static_cast<float>(Yaw));
}