#pragma once #include "CoreMinimal.h" #include "GameFramework/Actor.h" #include "EventRewardFrame.generated.h" class AEventRewardDispenser; class USpecialEventUsableComponent; UCLASS(Blueprintable) class AEventRewardFrame : public AActor { GENERATED_BODY() public: UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true)) USpecialEventUsableComponent* EventUsable; protected: UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true)) TArray Dispensers; UPROPERTY(BlueprintReadWrite, EditAnywhere, Replicated, Transient, meta=(AllowPrivateAccess=true)) bool keyInserted; UPROPERTY(BlueprintReadWrite, EditAnywhere, Replicated, Transient, meta=(AllowPrivateAccess=true)) TArray EventPlayerIDs; public: AEventRewardFrame(); virtual void GetLifetimeReplicatedProps(TArray& OutLifetimeProps) const override; UFUNCTION(BlueprintCallable) void TurnOff(); UFUNCTION(BlueprintCallable) void SetKeyInserted(bool NewKeyInserted); UFUNCTION(BlueprintAuthorityOnly, BlueprintCallable) void SetDispenseRewards(bool dispensRewards); protected: UFUNCTION(BlueprintCallable) void RegisterDispenser(AEventRewardDispenser* Dispenser); public: UFUNCTION(BlueprintCallable, BlueprintPure) bool GetDispensRewards() const; };