// Copyright IHY. Vertical Partition Streaming plugin. // // The build artifact: a data asset describing every generated cell plus a snapshot // of the settings and volume bounds the build was run with. The runtime streamer // consumes this; the editor builder produces it. #pragma once #include "CoreMinimal.h" #include "Engine/DataAsset.h" #include "VerticalPartitionTypes.h" #include "VerticalPartitionDescriptor.generated.h" UCLASS(BlueprintType) class VERTICALPARTITION_API UVerticalPartitionDescriptor : public UDataAsset { GENERATED_BODY() public: /** Map this descriptor was built from (for rebuild / out-of-date checks). */ UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="VerticalPartition") FSoftObjectPath SourceLevel; /** Settings snapshot used at build time (runtime ranges may be overridden live). */ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="VerticalPartition") FVerticalPartitionSettings Settings; /** World bounds of the partition volume at build time. */ UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="VerticalPartition") FBox VolumeBounds = FBox(ForceInit); UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="VerticalPartition") EVerticalConversionMode BuiltMode = EVerticalConversionMode::NonDestructive; /** Content hash of the source actors at build time (for incremental rebuild). */ UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="VerticalPartition") int64 SourceContentHash = 0; UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="VerticalPartition") TArray Cells; /** Last build report (kept for the UI / Dump Report). */ UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="VerticalPartition") FVerticalPartitionBuildReport LastReport; /** Find a cell descriptor by id. Returns nullptr if absent. */ const FVerticalCellDescriptor* FindCell(const FVerticalCellId& Id) const; int32 FindCellIndex(const FVerticalCellId& Id) const; bool HasFullPackages() const; };