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

154 lines
5.5 KiB
C++

#pragma once
#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
#include "GameFramework/Actor.h"
#include "Engine/CurveTable.h"
#include "Layout/Margin.h"
#include "EFortTeam.h"
#include "EMapCaptureMethod.h"
#include "FortInitializationInterface.h"
#include "OnMapExplorationThresholdReachedDelegate.h"
#include "OnMapFullyExploredDelegate.h"
#include "TeamMapExplorationEvent.h"
#include "TeamMapInfo.h"
#include "Templates/SubclassOf.h"
#include "FortInGameMapManager.generated.h"
class AFortInGameMapManager;
class ASceneCapture2D;
class UMaterialInterface;
class UObject;
class UTexture2D;
UCLASS(Blueprintable)
class FORTNITEGAME_API AFortInGameMapManager : public AActor, public IFortInitializationInterface {
GENERATED_BODY()
public:
protected:
UPROPERTY(BlueprintReadWrite, EditAnywhere, ReplicatedUsing=OnRep_MapData, meta=(AllowPrivateAccess=true))
TArray<FTeamMapInfo> MapData;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float DelayBetweenDispersions;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float ExploredRadius;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float ExploredFalloffRadius;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float SeenRadius;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float SeenFalloffRadius;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
int32 VisibilityMaxGradient;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
int32 UnexploredOpacity;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float OffsetZ;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
int32 MapLayerSize;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float FullscreenMapZoom;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FMargin MapMargin;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
int32 IconVisibilityFogThreshold;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
TSubclassOf<ASceneCapture2D> SceneCaptureClass;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
TSubclassOf<ASceneCapture2D> SceneCaptureBlurryClass;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UMaterialInterface* MapMaterial;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FCurveTableRowHandle CloudBrightnessCurve;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FCurveTableRowHandle DesaturationFactorCurve;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float MapOpacityWhenWalking;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float MaxPercentageMapExplored;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float MapExplorationThresholdPercentage;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float LastMapExplorationThresholdPercentageReached;
UPROPERTY(BlueprintAssignable, BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FOnMapFullyExplored OnMapFullyExplored;
UPROPERTY(BlueprintAssignable, BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FOnMapExplorationThresholdReached OnMapExplorationThresholdReached;
UPROPERTY(EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
EMapCaptureMethod MapCaptureMethod;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
ASceneCapture2D* SceneCapture;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
ASceneCapture2D* SceneCaptureBlurry;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
UTexture2D* FogMask;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float MapWorldScale;
public:
AFortInGameMapManager();
virtual void GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const override;
UFUNCTION(BlueprintCallable)
void PaintOnFog(const FVector& WorldCoords, TEnumAsByte<EFortTeam::Type> Team);
protected:
UFUNCTION(BlueprintCallable)
void OnRep_MapData();
public:
UFUNCTION(BlueprintCallable, BlueprintPure, meta=(WorldContext="WorldContextObject"))
static AFortInGameMapManager* GetCurrent(const UObject* WorldContextObject);
protected:
UFUNCTION(BlueprintCallable, NetMulticast, Reliable)
void BroadcastExplorationEvents(const TArray<FTeamMapExplorationEvent>& Events);
public:
UFUNCTION(BlueprintCallable)
void AllowShowMiniMap(bool bAllowShow);
UFUNCTION(BlueprintCallable)
void AllowShowMainMap(bool bAllowShow);
// Fix for true pure virtual functions not being implemented
UFUNCTION()
void WorldReady() override PURE_VIRTUAL(WorldReady,);
UFUNCTION()
bool NeedsWorldReady() const override PURE_VIRTUAL(NeedsWorldReady, return false;);
UFUNCTION()
void MatchStarted() override PURE_VIRTUAL(MatchStarted,);
};