DRG-Femboy-Voice/Source/FSD/Public/RefineryObjective.h
2025-04-15 12:39:31 -07:00

81 lines
2.9 KiB
C++
Executable file

#pragma once
#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
#include "UObject/NoExportTypes.h"
#include "ERefineryState.h"
#include "Objective.h"
#include "Templates/SubclassOf.h"
#include "RefineryObjective.generated.h"
class AActor;
class AFSDRefinery;
class AProceduralSetup;
class UDebrisPositioning;
UCLASS(Abstract, Blueprintable, ClassGroup=Custom, meta=(BlueprintSpawnableComponent))
class FSD_API URefineryObjective : public UObjective {
GENERATED_BODY()
public:
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FRefineryDelegate, AFSDRefinery*, InRefinery);
UPROPERTY(BlueprintAssignable, BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FRefineryDelegate OnRefinerySpawned;
protected:
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
TSoftClassPtr<AFSDRefinery> refineryClass;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, ReplicatedUsing=OnRep_Refinery, meta=(AllowPrivateAccess=true))
TWeakObjectPtr<AFSDRefinery> Refinery;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
ERefineryState RefineryState;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UDebrisPositioning* RefineryPlacement;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
TSoftClassPtr<AActor> RawMaterialClass;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UDebrisPositioning* RawMaterialPlacement;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
int32 RawMaterialCount;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
bool bMissionCompleted;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
bool bIsFinalBattle;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
int32 OptionalTunnelRoomID;
public:
URefineryObjective();
virtual void GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const override;
UFUNCTION(BlueprintCallable)
void SpawnWells(AProceduralSetup* Setup, const FVector& rigLocation, float minDistanceBetween, const TArray<FVector2D>& minMaxDistancesToRig);
protected:
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
void ReceiveRefinerySpawned(AFSDRefinery* InRefinery);
UFUNCTION(BlueprintCallable)
void OnRep_Refinery();
UFUNCTION(BlueprintCallable)
void OnRefineryStateChanged(ERefineryState InRefineryState);
public:
UFUNCTION(BlueprintCallable)
FVector GetRefinerySpawnLocation(TSubclassOf<AFSDRefinery> NewRefineryClass);
protected:
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
void AddMissionCriticalItems(AProceduralSetup* Setup);
};