Add readable MVP survival object proxies
This commit is contained in:
@@ -9,8 +9,33 @@
|
||||
#include "Particles/ParticleSystemComponent.h"
|
||||
#include "Components/PointLightComponent.h"
|
||||
#include "Components/StaticMeshComponent.h"
|
||||
#include "Engine/StaticMesh.h"
|
||||
#include "Kismet/GameplayStatics.h"
|
||||
#include "Materials/MaterialInterface.h"
|
||||
#include "Net/UnrealNetwork.h"
|
||||
#include "UObject/ConstructorHelpers.h"
|
||||
|
||||
namespace
|
||||
{
|
||||
void ConfigureCampfireProxyComponent(UStaticMeshComponent* Component, UStaticMesh* MeshAsset, UMaterialInterface* MaterialAsset)
|
||||
{
|
||||
if (!Component)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Component->SetCollisionEnabled(ECollisionEnabled::NoCollision);
|
||||
Component->SetGenerateOverlapEvents(false);
|
||||
if (MeshAsset)
|
||||
{
|
||||
Component->SetStaticMesh(MeshAsset);
|
||||
}
|
||||
if (MaterialAsset)
|
||||
{
|
||||
Component->SetMaterial(0, MaterialAsset);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
AAgrarianCampfire::AAgrarianCampfire()
|
||||
{
|
||||
@@ -20,6 +45,56 @@ AAgrarianCampfire::AAgrarianCampfire()
|
||||
|
||||
Mesh = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("Mesh"));
|
||||
RootComponent = Mesh;
|
||||
Mesh->SetCollisionProfileName(TEXT("BlockAll"));
|
||||
|
||||
static ConstructorHelpers::FObjectFinder<UStaticMesh> CylinderMesh(TEXT("/Game/Agrarian/Environment/PlaceholderMeshes/SM_AGR_Placeholder_Cylinder.SM_AGR_Placeholder_Cylinder"));
|
||||
static ConstructorHelpers::FObjectFinder<UStaticMesh> ChamferCubeMesh(TEXT("/Game/Agrarian/Environment/PlaceholderMeshes/SM_AGR_Placeholder_ChamferCube.SM_AGR_Placeholder_ChamferCube"));
|
||||
static ConstructorHelpers::FObjectFinder<UStaticMesh> CubeMesh(TEXT("/Game/Agrarian/Environment/PlaceholderMeshes/SM_AGR_Placeholder_Cube.SM_AGR_Placeholder_Cube"));
|
||||
static ConstructorHelpers::FObjectFinder<UMaterialInterface> StoneMaterial(TEXT("/Game/Agrarian/Materials/M_AGR_GZ_Stone_Sandstone.M_AGR_GZ_Stone_Sandstone"));
|
||||
static ConstructorHelpers::FObjectFinder<UMaterialInterface> WoodMaterial(TEXT("/Game/Agrarian/Materials/M_AGR_GZ_Wood_Resource.M_AGR_GZ_Wood_Resource"));
|
||||
static ConstructorHelpers::FObjectFinder<UMaterialInterface> FiberMaterial(TEXT("/Game/Agrarian/Materials/M_AGR_GZ_Fiber_Resource.M_AGR_GZ_Fiber_Resource"));
|
||||
|
||||
if (CylinderMesh.Succeeded())
|
||||
{
|
||||
Mesh->SetStaticMesh(CylinderMesh.Object);
|
||||
Mesh->SetRelativeScale3D(FVector(0.72f, 0.72f, 0.08f));
|
||||
}
|
||||
if (StoneMaterial.Succeeded())
|
||||
{
|
||||
Mesh->SetMaterial(0, StoneMaterial.Object);
|
||||
}
|
||||
|
||||
StoneRingProxy = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("StoneRingProxy"));
|
||||
StoneRingProxy->SetupAttachment(RootComponent);
|
||||
ConfigureCampfireProxyComponent(StoneRingProxy, CylinderMesh.Succeeded() ? CylinderMesh.Object : nullptr, StoneMaterial.Succeeded() ? StoneMaterial.Object : nullptr);
|
||||
StoneRingProxy->SetRelativeScale3D(FVector(1.05f, 1.05f, 0.12f));
|
||||
|
||||
LogProxyA = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("LogProxyA"));
|
||||
LogProxyA->SetupAttachment(RootComponent);
|
||||
ConfigureCampfireProxyComponent(LogProxyA, CylinderMesh.Succeeded() ? CylinderMesh.Object : nullptr, WoodMaterial.Succeeded() ? WoodMaterial.Object : nullptr);
|
||||
LogProxyA->SetRelativeLocation(FVector(0.0f, -12.0f, 18.0f));
|
||||
LogProxyA->SetRelativeRotation(FRotator(0.0f, 90.0f, 90.0f));
|
||||
LogProxyA->SetRelativeScale3D(FVector(0.16f, 0.16f, 0.72f));
|
||||
|
||||
LogProxyB = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("LogProxyB"));
|
||||
LogProxyB->SetupAttachment(RootComponent);
|
||||
ConfigureCampfireProxyComponent(LogProxyB, CylinderMesh.Succeeded() ? CylinderMesh.Object : nullptr, WoodMaterial.Succeeded() ? WoodMaterial.Object : nullptr);
|
||||
LogProxyB->SetRelativeLocation(FVector(-12.0f, 10.0f, 20.0f));
|
||||
LogProxyB->SetRelativeRotation(FRotator(0.0f, 28.0f, 90.0f));
|
||||
LogProxyB->SetRelativeScale3D(FVector(0.16f, 0.16f, 0.68f));
|
||||
|
||||
LogProxyC = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("LogProxyC"));
|
||||
LogProxyC->SetupAttachment(RootComponent);
|
||||
ConfigureCampfireProxyComponent(LogProxyC, CylinderMesh.Succeeded() ? CylinderMesh.Object : nullptr, WoodMaterial.Succeeded() ? WoodMaterial.Object : nullptr);
|
||||
LogProxyC->SetRelativeLocation(FVector(12.0f, 10.0f, 22.0f));
|
||||
LogProxyC->SetRelativeRotation(FRotator(0.0f, -28.0f, 90.0f));
|
||||
LogProxyC->SetRelativeScale3D(FVector(0.16f, 0.16f, 0.68f));
|
||||
|
||||
EmberProxy = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("EmberProxy"));
|
||||
EmberProxy->SetupAttachment(RootComponent);
|
||||
ConfigureCampfireProxyComponent(EmberProxy, ChamferCubeMesh.Succeeded() ? ChamferCubeMesh.Object : (CubeMesh.Succeeded() ? CubeMesh.Object : nullptr), FiberMaterial.Succeeded() ? FiberMaterial.Object : nullptr);
|
||||
EmberProxy->SetRelativeLocation(FVector(0.0f, 0.0f, 13.0f));
|
||||
EmberProxy->SetRelativeScale3D(FVector(0.38f, 0.38f, 0.09f));
|
||||
|
||||
FireLight = CreateDefaultSubobject<UPointLightComponent>(TEXT("FireLight"));
|
||||
FireLight->SetupAttachment(RootComponent);
|
||||
|
||||
Reference in New Issue
Block a user