#pragma once #include "CoreMinimal.h" #include "UObject/NoExportTypes.h" #include "Engine/DataAsset.h" #include "GameplayTagContainer.h" #include "RoomGeneratorGroupInstance.h" #include "RoomGeneratorGroup.generated.h" class URoomGenerator; UCLASS(Blueprintable) class URoomGeneratorGroup : public UDataAsset { GENERATED_BODY() public: UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) TArray Rooms; URoomGeneratorGroup(); UFUNCTION(BlueprintCallable) static URoomGenerator* GetRandomRoomWithTags(UPARAM(Ref) FRoomGeneratorGroupInstance& groupInstance, const FGameplayTagQuery& queury, UPARAM(Ref) FRandomStream& RandomStream); UFUNCTION(BlueprintCallable) URoomGenerator* GetRandomRoom(UPARAM(Ref) FRandomStream& RandomStream); UFUNCTION(BlueprintCallable, BlueprintPure) FRoomGeneratorGroupInstance CreateGroupInstance() const; };