5#include "CoreMinimal.h"
6#include "GameFramework/Actor.h"
7#include "Runtime/Engine/Classes/Engine/EngineTypes.h"
8#include "Runtime/Core/Public/Containers/EnumAsByte.h"
9#include "Components/BoxComponent.h"
13#include "ActorSpawningVolume.generated.h"
24 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = SpawningVolume, meta = (EditCondition =
"!bExecutesOnBeginPlay"))
25 bool bExecuteOnMatchStart = true;
27 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = SpawningVolume, meta = (EditCondition = "!bExecuteOnMatchStart"))
28 bool bExecutesOnBeginPlay = false;
30 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = SpawningVolume)
33 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = SpawningVolume)
34 FVector2D SpawnInitialDelay = FVector2D(5.0f, 10.0f);
36 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = SpawningVolume)
37 FVector2D SpawnDelay = FVector2D(5.0f, 10.0f);
39 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = SpawningVolume)
42 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = SpawningVolume)
43 bool bGroundActors = false;
45 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = SpawningVolume, meta = (EditCondition = "bGroundActors"))
46 bool bProjectPointToNavigation = false;
48 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = SpawningVolume, meta = (EditCondition = "bGroundActors"))
49 TEnumAsByte<ECollisionChannel> TraceChannel;
51 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = SpawningVolume, meta = (EditCondition = "bGroundActors"))
52 ESpawnActorCollisionHandlingMethod SpawnCollisionHandling = ESpawnActorCollisionHandlingMethod::AdjustIfPossibleButAlwaysSpawn;
54 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = SpawningVolume)
55 float CleanupDelay = 1.0f;
57 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = SpawningVolume)
58 AActor* ActorBoundsOverride =
nullptr;
60 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = SpawningVolume)
61 float ActorBoundsOverrideGameTime = 0.0f;
63 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = SpawningVolume)
66 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = SpawningVolume)
67 bool bDestroyWhenFinishedSpawning = true;
71 virtual
void BeginSpawning_Implementation() override;
72 virtual
void StopSpawning_Implementation() override;
73 virtual
bool ImplementsSpawnCompleteCallback()
const override {
return true; }
75 virtual void MatchStarted()
override;
76 virtual void EndPlay(
const EEndPlayReason::Type EndPlayReason)
override;
77 virtual void BeginPlay();
78 virtual bool AttemptToGroundPoint(FVector& RandomPoint,
const FVector& Origin,
const FVector& Extent);
79 virtual void SpawningFinished();
82 UFUNCTION(BlueprintImplementableEvent, Category = SpawningVolume)
83 void SpawningCompleted();
86 FTimerHandle SpawnTimer;
88 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = SpawningVolume, meta = (AllowPrivateAccess = true))
90 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = SpawningVolume, meta = (AllowPrivateAccess = true))
91 UBoxComponent* BoxComponent;
93 int32 ChildSpawnersSpawning = 0;
94 uint16 CurrentLoopCount = 0;
97 FVector GetRandomPointInBox(const AActor* TransformActor, const FVector& Extent, const FVector& Origin) const;
101 void CleanupNetObject(AActor* SpawnedActor);
105 void OnChildFinishedSpawning(UObject* Spawner);
107 TArray<TWeakObjectPtr<AActor>> SpawnedActors;
108 bool bCalledSpawnCompleteEvents = false;
Definition: ActorSpawningVolume.h:19
Definition: StartPointVolume.h:14
Definition: ReactsToMatchEvents.h:16
Definition: SpawnInterface.h:24
Definition: ProjectXGameMode.h:79