Files
2026-04-22 15:51:07 +02:00

143 lines
6.4 KiB
C++

#pragma once
#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
#include "GameFramework/Info.h"
#include "GameFramework/OnlineReplStructs.h"
#include "ActiveTieredCollectionLayoutArray.h"
#include "AvailableTierLayout.h"
#include "DeployableBaseArray.h"
#include "EDeployableBaseUseType.h"
#include "EHordeWaveStingerType.h"
#include "EnvironmentBuildingRestorationRecord.h"
#include "FortTierCollectionLayoutOutput.h"
#include "OnDeployableBasePlotsSpawnedDelegate.h"
#include "OnLocalDeployablePlotInventoryChangedDelegate.h"
#include "OnLocalPlayerEntersDeployablePlotDelegate.h"
#include "OnLocalPlayerLeavesDeployablePlotDelegate.h"
#include "PendingDeployableBaseUser.h"
#include "PendingDeployableManagerAction.h"
#include "Templates/SubclassOf.h"
#include "FortDeployableBaseManager.generated.h"
class ADeployableBasePlot;
class AFortDeployableBaseManager;
class UFortDeployableBaseCloudSaveItemDefinition;
class UFortDeployableBaseSkillTreeUnlocks;
class UFortTieredCollectionLayout;
class UObject;
UCLASS(Blueprintable, Config=Game)
class FORTNITEGAME_API AFortDeployableBaseManager : public AInfo {
GENERATED_BODY()
public:
protected:
UPROPERTY(BlueprintReadWrite, EditAnywhere, Replicated, meta=(AllowPrivateAccess=true))
uint8 bRestrictedBuildingActive: 1;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Replicated, Transient, meta=(AllowPrivateAccess=true))
uint8 bBusyWithPlotActions: 1;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
uint8 bDestroyAllBuildingPiecesOnReload: 1;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
int32 NumPiecesDestroyedOnZoneCleanupPerUpdate;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
int32 NumEnvPiecesRestoredPerUpdate;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
bool bDeployableBasesReadOnly;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Replicated, Transient, meta=(AllowPrivateAccess=true))
EDeployableBaseUseType DeployableBaseUseType;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Replicated, Transient, meta=(AllowPrivateAccess=true))
FActiveTieredCollectionLayoutArray ActiveTieredCollectionLayouts;
UPROPERTY(BlueprintAssignable, BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FOnDeployableBasePlotsSpawned OnDeployableBasePlotsSpawned;
UPROPERTY(BlueprintAssignable, BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FOnLocalPlayerEntersDeployablePlot OnLocalPlayerEntersDeployablePlotEvent;
UPROPERTY(BlueprintAssignable, BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FOnLocalPlayerLeavesDeployablePlot OnLocalPlayerLeavesDeployablePlotEvent;
UPROPERTY(BlueprintAssignable, BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FOnLocalDeployablePlotInventoryChanged OnLocalDeployablePlotInventoryChangedEvent;
private:
UPROPERTY(BlueprintReadWrite, EditAnywhere, Replicated, Transient, meta=(AllowPrivateAccess=true))
FDeployableBaseArray DeployableBaseArray;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
UFortDeployableBaseCloudSaveItemDefinition* DeployableBaseItemDefinition;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
TSubclassOf<ADeployableBasePlot> DeployableBasePlotClass;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
UFortDeployableBaseSkillTreeUnlocks* SupportedSkillTreeBasedUnlocks;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
int32 NumExpectedPlots;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
TArray<FPendingDeployableBaseUser> PendingUsers;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
TArray<FPendingDeployableManagerAction> PendingDeployableManagerActions;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
TArray<FEnvironmentBuildingRestorationRecord> EnvironmentActorsRequiringRestoration;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
uint8 bCaptureEnvironmentActorsForRestoration: 1;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
uint8 bWorldInitialized: 1;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
uint8 bKeepBasesOnLogout: 1;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
TArray<FUniqueNetIdRepl> PlayersPendingPlotReset;
public:
AFortDeployableBaseManager();
virtual void GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const override;
UFUNCTION(BlueprintAuthorityOnly, BlueprintCallable)
void SetKeepDeployableBasesOnLogout(bool bInKeepBasesOnLogout);
UFUNCTION(BlueprintAuthorityOnly, BlueprintCallable)
void ReloadAllPlots();
UFUNCTION(BlueprintAuthorityOnly, BlueprintCallable, BlueprintPure)
bool GetTierOutputForSelectedTier(int32 Tier, const UFortTieredCollectionLayout* Layout, FFortTierCollectionLayoutOutput& Output) const;
UFUNCTION(BlueprintCallable, BlueprintPure)
int32 GetHighestDefeatedTierForPlayerAndLayout(FUniqueNetIdRepl PlayerID, const UFortTieredCollectionLayout* Layout) const;
UFUNCTION(BlueprintCallable, BlueprintPure)
EDeployableBaseUseType GetDeployableBaseUseType() const;
UFUNCTION(BlueprintCallable, BlueprintPure)
ADeployableBasePlot* GetDeployableBasePlotFromLocation(const FVector& Location) const;
UFUNCTION(BlueprintCallable, meta=(WorldContext="WorldContextObject"))
static AFortDeployableBaseManager* GetCurrent(UObject* WorldContextObject);
UFUNCTION(BlueprintCallable, BlueprintPure)
void GetAvailableTiers(TArray<FAvailableTierLayout>& OutAvailableTiers) const;
UFUNCTION(BlueprintCallable, BlueprintPure)
void GetAllDeployableBasePlots(TArray<ADeployableBasePlot*>& OutDeployableBasePlots) const;
UFUNCTION(BlueprintAuthorityOnly, BlueprintCallable, BlueprintPure=false)
void BroadcastHordeWaveStinger(EHordeWaveStingerType StingerType) const;
};