GetAllTransforms is just getting the world transforms of all group actors and returning it.
not checking anything == or != in this function.
the checking takes place in RandomLocation and on beginplay.
GroupActor.cpp
void AItemGroup::CreateStaticMeshComponents()
{
//Override the Existing Scene component
NewScene = CreateDefaultSubobject <USceneComponent>("Scene Component");
RootComponent = NewScene;
FVector StaticMesh01Location(-44.814232, -77.620117, -0.000031);
FRotator StaticMesh01Rotation(0.000000, 0.000000, 0.000000);
FVector StaticMesh01Scale(1.000000, 1.000000, 1.000000);
StaticMesh01 = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("StaticMesh01"));
StaticMesh01->AttachToComponent(NewScene, FAttachmentTransformRules::KeepRelativeTransform);
StaticMesh01->SetRelativeLocation(StaticMesh01Location);
StaticMesh01->SetRelativeRotation(StaticMesh01Rotation);
FVector StaticMesh02Location(100.352554, -36.545986, -0.001999);
FRotator StaticMesh02Rotation(0.000000, 90.000000, 0.000000);
FVector StaticMesh02Scale(1.000000, 1.000000, 1.000000);
StaticMesh02 = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("StaticMesh02"));
StaticMesh02->AttachToComponent(NewScene, FAttachmentTransformRules::KeepRelativeTransform);
StaticMesh02->SetRelativeLocation(StaticMesh02Location);
StaticMesh02->SetRelativeRotation(StaticMesh02Rotation);
FVector StaticMesh03Location(-41.113689, 0.000000, -0.000015);
FRotator StaticMesh03Rotation(0.000000, 0.000000, 0.000000);
FVector StaticMesh03Scale(1.000000, 1.000000, 1.000000);
StaticMesh03 = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("StaticMesh03"));
StaticMesh03->AttachToComponent(NewScene, FAttachmentTransformRules::KeepRelativeTransform);
StaticMesh03->SetRelativeLocation(StaticMesh03Location);
StaticMesh03->SetRelativeRotation(StaticMesh03Rotation);
FVector StaticMesh04Location(-107.150299, 25.726238, -0.001434);
FRotator StaticMesh04Rotation(0.000000, -90.000000, 0.000000);
FVector StaticMesh04Scale(1.000000, 1.000000, 1.000000);
StaticMesh04 = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("StaticMesh04"));
StaticMesh04->AttachToComponent(NewScene, FAttachmentTransformRules::KeepRelativeTransform);
StaticMesh04->SetRelativeLocation(StaticMesh04Location);
StaticMesh04->SetRelativeRotation(StaticMesh04Rotation);
FVector StaticMesh05Location(17.254007, 82.015709, 0.001145);
FRotator StaticMesh05Rotation(0.000000, 180.000000, 0.000000);
FVector StaticMesh05Scale(1.000000, 1.000000, 1.000000);
StaticMesh05 = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("StaticMesh05"));
StaticMesh05->AttachToComponent(NewScene, FAttachmentTransformRules::KeepRelativeTransform);
StaticMesh05->SetRelativeLocation(StaticMesh05Location);
StaticMesh05->SetRelativeRotation(StaticMesh05Rotation);
}
void AItemGroup::GetAllTransforms(/*Out*/ TArray<FTransform>& Transform)
{
FTransform GetWorldTransform_0{};
FTransform GetWorldTransform_1{};
FTransform GetWorldTransform_2{};
FTransform GetWorldTransform_3{};
FTransform GetWorldTransform_4{};
TArray<FTransform> MakeArray{};
if (::IsValid(StaticMesh01))
{
GetWorldTransform_0 = StaticMesh01->GetComponentToWorld();
}
if (::IsValid(StaticMesh02))
{
GetWorldTransform_1 = StaticMesh02->USceneComponent::GetComponentToWorld();
}
if (::IsValid(StaticMesh03))
{
GetWorldTransform_2 = StaticMesh03->USceneComponent::GetComponentToWorld();
}
if (::IsValid(StaticMesh04))
{
GetWorldTransform_3 = StaticMesh04->USceneComponent::GetComponentToWorld();
}
if (::IsValid(StaticMesh05))
{
GetWorldTransform_4 = StaticMesh05->USceneComponent::GetComponentToWorld();
}
MakeArray.SetNum(5, true);
MakeArray[0] = GetWorldTransform_0;
MakeArray[1] = GetWorldTransform_1;
MakeArray[2] = GetWorldTransform_2;
MakeArray[3] = GetWorldTransform_3;
MakeArray[4] = GetWorldTransform_4;
Transform = MakeArray;
}
This groupactor has a refference casted in beginplay of mygamemode and later called the function GetAllTransforms.
