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

148 lines
5.7 KiB
C++

#pragma once
#include "CoreMinimal.h"
#include "UObject/Object.h"
#include "UObject/NoExportTypes.h"
#include "UObject/NoExportTypes.h"
#include "ActorInstanceRecord.h"
#include "ActorTemplateRecord.h"
#include "AsyncTaskCallbackDelegateDelegate.h"
#include "DeleteActorRecord.h"
#include "RecordBucketMap.h"
#include "Templates/SubclassOf.h"
#include "LevelSaveRecord.generated.h"
class AActor;
class AFortVolume;
class UAsyncTaskQueue;
class UWorld;
UCLASS(Blueprintable)
class ULevelSaveRecord : public UObject {
GENERATED_BODY()
public:
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FName PackageName;
UPROPERTY(EditAnywhere, meta=(AllowPrivateAccess=true))
int16 SaveVersion;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
bool bCompressed;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UWorld* OverrideWorld;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FVector Center;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FVector HalfBoundsExtent;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FRotator Rotation;
UPROPERTY(EditAnywhere, meta=(AllowPrivateAccess=true))
uint64 LastRecordID;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
TMap<int32, FActorTemplateRecord> TemplateRecords;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
TMap<FName, FActorInstanceRecord> ActorInstanceRecords;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
TMap<FName, FActorInstanceRecord> VolumeInfoActorRecords;
private:
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
TArray<FActorInstanceRecord> InstanceRecords_LEGACY;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
TArray<FDeleteActorRecord> DeleteActorRecords_LEGACY;
public:
UPROPERTY(BlueprintAssignable, BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
FAsyncTaskCallbackDelegate FinishSpawningDelegate;
UPROPERTY(BlueprintAssignable, BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
FAsyncTaskCallbackDelegate OnFinishedWrite;
UPROPERTY(BlueprintAssignable, BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
FAsyncTaskCallbackDelegate OnFinishedRead;
UPROPERTY(BlueprintAssignable, BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
FAsyncTaskCallbackDelegate OnFinishedRecordCollapse;
private:
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
TArray<TSubclassOf<AActor>> ActorClassesThatWereAlreadyLoaded;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
TArray<AActor*> SpawnedActors;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
TArray<FActorInstanceRecord> InstanceRecordsToSpawn;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
AFortVolume* VolumeCurrentlySpawningWithin;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
UAsyncTaskQueue* TaskQueue;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
FAsyncTaskCallbackDelegate OnFinishedRemoveInvalidDeleteRecords;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
FAsyncTaskCallbackDelegate OnFinishedRemoveInvalidInstanceRecords;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
FAsyncTaskCallbackDelegate OnFinishedRemoveDuplicateInstanceRecords;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
FAsyncTaskCallbackDelegate OnFinishedAsyncLoadingActors;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
FAsyncTaskCallbackDelegate OnFinishedSpawningFromRecords;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
FAsyncTaskCallbackDelegate OnFinishedPostUpdate;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
FRecordBucketMap RecordBucketMap;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
FAsyncTaskCallbackDelegate OnFinishedSeparateModifiedActors;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
FAsyncTaskCallbackDelegate OnFinishedDeleteActorsForRollback;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
FAsyncTaskCallbackDelegate OnFinishedWriteToBuffer;
public:
ULevelSaveRecord();
private:
UFUNCTION(BlueprintCallable)
void RemoveInvalidInstanceRecordsHelper(const int32 StartRecordIndex);
UFUNCTION(BlueprintCallable)
void RemoveInvalidDeleteRecordsHelper(const int32 StartRecordIndex);
UFUNCTION(BlueprintCallable)
void PostUpdateSpawnedActorsHelper(const int32 StartActorIndex);
UFUNCTION(BlueprintCallable)
void NotifyFinishedSpawning();
UFUNCTION(BlueprintCallable)
void FindAndRemoveDuplicateRecordsUsingBucketMap(const int32 StartRecordIndex);
UFUNCTION(BlueprintCallable)
void FailsafeTimerExpired();
UFUNCTION(BlueprintCallable)
void BroadcastPostUpdateSpawnedCompleted();
};