5#include "CoreMinimal.h"
6#include "GameFramework/Actor.h"
7#include "DeployableMarker.generated.h"
9UENUM(BlueprintType, meta = (Bitflags))
20UENUM(BlueprintType, meta = (Bitflags, UseEnumValuesAsMaskValuesInEditor =
"true"))
36 GENERATED_UCLASS_BODY()
39 UFUNCTION(BlueprintCallable, Category = Marker)
40 FORCEINLINE
float GetDeployRadius()
const {
return DeployRadius; }
41 UFUNCTION(BlueprintCallable, Category = Marker)
42 FORCEINLINE
float GetMaxVerticalDelta()
const {
return MaxDeployVerticalDelta; }
44 UFUNCTION(BlueprintCallable, Category = Marker)
45 FORCEINLINE
bool IsValidPlacement()
const {
return PlacementFlags == 0; }
46 UFUNCTION(BlueprintCallable, Category = Marker)
48 UFUNCTION(BlueprintCallable, Category = Marker)
50 UFUNCTION(BlueprintCallable, Category = Marker)
52 UFUNCTION(BlueprintCallable, Category = Marker)
54 UFUNCTION(BlueprintCallable, Category = Marker)
55 FORCEINLINE
bool ShouldTestBeRun(
EPlacementTests DataType)
const {
return ((PlacementTestsToRun & uint8(DataType)) != 0); }
59 virtual void BeginPlay()
override;
62 virtual void Tick(
float DeltaTime)
override;
67 bool IsValidPlacement(FTransform& Transform, UWorld* World)
const;
68 uint8 TestPlacement(FTransform& Transform, UWorld* World,
bool bFullTest =
true)
const;
70 UFUNCTION(BlueprintImplementableEvent, Category = Marker)
71 void OnMarkerSuccess();
74 UFUNCTION(BlueprintImplementableEvent, Category = Marker)
78 virtual
void UpdatePlacementFlags(
bool bForceUpdate = false);
80 virtual
bool GetGroundedTransform(FTransform& Transform, UWorld* World) const;
81 virtual
bool PerformTraceTest(const FTransform& Transform, FTransform& CapsuleBaseTransform, UWorld* World) const;
82 virtual
bool PerformCapsuleTest(const FTransform& BaseTransform, UWorld* World) const;
87 uint8 PlacementFlags = MAX_uint8;
90 UPROPERTY(EditDefaultsOnly, Category = Marker)
91 float DeployRadius = 80.f;
93 UPROPERTY(EditDefaultsOnly, Category = Marker)
94 int32 RadialTestPoints = 8;
96 UPROPERTY(EditDefaultsOnly, Category = Marker)
97 float MaxDeploySlope = 30.f;
99 UPROPERTY(EditDefaultsOnly, Category = Marker)
100 float MaxDeployVerticalDelta = 30.f;
102 UPROPERTY(EditDefaultsOnly, Category = Marker)
105 UPROPERTY(EditDefaultsOnly, Category = Marker,meta = (Bitmask, BitmaskEnum =
EPlacementTests))
106 uint8 PlacementTestsToRun;
EPlacementTests
Definition: DeployableMarker.h:22
EPlacementFailureReason
Definition: DeployableMarker.h:11
Definition: DeployableMarker.h:35