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"
47 virtual void BeginPlay()
override;
49 virtual void EndPlay(
const EEndPlayReason::Type EndPlayReason)
override;
55 UFUNCTION(BlueprintCallable)
56 bool AddToInstancedRendering();
65 UFUNCTION(BlueprintCallable)
66 void SetTypeAndModel(const FString& Type, const FString& Model)
75 UFUNCTION(BlueprintCallable)
76 bool IsTreeActor()
const;
84 PreviousTransform = NewTransform;
91 UFUNCTION(BlueprintPure)
92 bool IsAddedToInstancedRendering()
const
94 return AddedToInstancedRenderer;
97 UFUNCTION(BlueprintPure)
98 UStaticMeshComponent* GetStaticMeshComponent()
const
100 return StaticMeshComponent;
103 UFUNCTION(BlueprintPure)
104 int32 GetInstanceStartCullDistance()
const
106 return InstanceStartCullDistanceInCm;
109 UFUNCTION(BlueprintPure)
110 int32 GetInstanceEndCullDistance()
const
112 return InstanceEndCullDistanceInCm;
115 UFUNCTION(BlueprintPure)
116 bool UpdateTransformAutomatically()
const
118 return ShouldUpdateTransformAutomatically;
121 UFUNCTION(BlueprintCallable)
122 FString GetTypeIDString()
const
127 UFUNCTION(BlueprintCallable)
128 FString GetModelIDString()
const
135 return AlternativeMaterial;
140 return CustomDepthSetup;
145 return AllowWorldPositionOffsetDisable;
150 return PreviousTransform;
153 UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category =
"AInstancedActor")
154 UStaticMeshComponent* StaticMeshComponent =
nullptr;
156 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "
AInstancedActor")
157 bool AllowWorldPositionOffsetDisable = false;
159 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "
AInstancedActor")
160 bool AddToInstancedRenderer = true;
162 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "
AInstancedActor")
163 int InstanceStartCullDistanceInCm = 45000;
165 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "
AInstancedActor")
166 int InstanceEndCullDistanceInCm = 46500;
169 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "
AInstancedActor")
170 bool ShouldUpdateTransformAutomatically = false;
173 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "
AInstancedActor")
174 bool AlternativeMaterial = false;
176 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "
AInstancedActor")
177 FText InteractableName;
179 virtual FText GetInteractableName_Implementation()
const override
181 return InteractableName;
186 return GetActorTransform();
201 ActorName = NewActorName;
206 ActorName = NewActorName;
208 SetAndValidateActorIDAndName(ActorName, ActorID, TWeakObjectPtr<AActor>(
this));
213 UPROPERTY(VisibleAnywhere)
216 UPROPERTY(VisibleAnywhere)
219 FTransform PreviousTransform;
221 bool AddedToInstancedRenderer = false;
223 FString TypeID = "none";
225 FString ModelID = "none";
227 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