8#include "CoreMinimal.h"
9#include "GameFramework/Actor.h"
10#include "Engine/EngineTypes.h"
11#include "Engine/StaticMesh.h"
12#include "Components/StaticMeshComponent.h"
13#include "Internationalization/Text.h"
19#include "InstancedActor.generated.h"
46 virtual void BeginPlay()
override;
48 virtual void EndPlay(
const EEndPlayReason::Type EndPlayReason)
override;
54 UFUNCTION(BlueprintCallable)
55 bool CanAddToInstancedRenderer();
64 UFUNCTION(BlueprintCallable)
65 void SetTypeAndModel(const FString& Type, const FString& Model)
74 UFUNCTION(BlueprintCallable)
75 bool IsTreeActor()
const;
83 PreviousTransform = NewTransform;
90 UFUNCTION(BlueprintPure)
91 bool IsAddedToInstancedRendering()
const
93 return AddedToInstancedRenderer;
96 UFUNCTION(BlueprintPure)
97 UStaticMeshComponent* GetStaticMeshComponent()
const
99 return StaticMeshComponent;
102 UFUNCTION(BlueprintPure)
103 int32 GetInstanceStartCullDistance()
const
105 return InstanceStartCullDistanceInCm;
108 UFUNCTION(BlueprintPure)
109 int32 GetInstanceEndCullDistance()
const
111 return InstanceEndCullDistanceInCm;
114 UFUNCTION(BlueprintPure)
115 bool UpdateTransformAutomatically()
const
117 return ShouldUpdateTransformAutomatically;
120 UFUNCTION(BlueprintCallable)
121 FString GetTypeIDString()
const
126 UFUNCTION(BlueprintCallable)
127 FString GetModelIDString()
const
134 return AlternativeMaterial;
139 return CustomDepthSetup;
144 return AllowWorldPositionOffsetDisable;
149 return PreviousTransform;
152 UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category =
"AInstancedActor")
153 UStaticMeshComponent* StaticMeshComponent =
nullptr;
155 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "
AInstancedActor")
156 bool AllowWorldPositionOffsetDisable = false;
158 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "
AInstancedActor")
159 bool AddToInstancedRenderer = true;
161 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "
AInstancedActor")
162 int32 InstanceStartCullDistanceInCm = 45000;
164 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "
AInstancedActor")
165 int32 InstanceEndCullDistanceInCm = 46500;
168 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "
AInstancedActor")
169 bool ShouldUpdateTransformAutomatically = false;
172 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "
AInstancedActor")
173 bool AlternativeMaterial = false;
175 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "
AInstancedActor")
176 FText InteractableName;
178 virtual FText GetInteractableName_Implementation()
const override
180 return InteractableName;
185 return GetActorTransform();
200 ActorName = NewActorName;
205 ActorName = NewActorName;
207 SetAndValidateActorIDAndName(ActorName, ActorID, TWeakObjectPtr<AActor>(
this));
212 UPROPERTY(VisibleAnywhere)
215 UPROPERTY(VisibleAnywhere)
218 FTransform PreviousTransform;
220 bool AddedToInstancedRenderer = false;
222 FString TypeID = "none";
224 FString ModelID = "none";
226 bool CustomDepthSetup = false;
virtual void SetActorIDAndName_Implementation(const FString &NewActorName, const FString &NewID) override
FTransform GetPreviousTransform() const
bool HasAlternativeMaterial() const
virtual void SetActorName_Implementation(const FString &NewActorName) override
virtual FString GetActorID_Implementation() const override
virtual FTransform GetInteractableWorldTransform_Implementation() const override
void UpdatePreviousTransform(const FTransform &NewTransform)
bool IsCustomDepthSetup() const
bool GetAllowWorldPositionOffsetDisable() const
virtual FString GetActorName_Implementation() const override