Initial commit: Vertical Partition Streaming plugin (UE 5.7)
Bounded vertical route partition / streaming for handcrafted spiral climb maps (Only Up / Only Climb). Not World Partition, not Level Instances as core arch. - Z-cell segmentation + optional XY subcells, editor builder + commandlet - NonDestructive visibility backend + streaming-level backend - Offline HLOD proxies: MergedMesh / SimplifiedProxy (ProxyLOD) - Universal Level Instance + Packed Level Actor + HISM support (flatten+merge) - Vertical-aware runtime streamer (full/preload/HLOD/unload, hysteresis, velocity prediction, fall-risk), WP-style debug viz + vp.* console - Safe-by-default: only static decor streams; sky/lights/gameplay stay persistent Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@ -0,0 +1,50 @@
|
||||
// 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<FVerticalCellDescriptor> 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;
|
||||
};
|
||||
Reference in New Issue
Block a user