Each symbol below had zero references in Source/ (tests included), Tools/, Config/ and the build files after comment/string stripping. Functions: EvaluateTunnelCoreSDF, EvaluateSDF (uncached wrapper), IsTunnelSupportFloorWorldPoint, BuildTunnelSupportFloorColumn, IsTunnelSupportFloorColumnZ, GetTunnelSupportFloorColumnBand, VF_TunnelFloorAtSegment, VF_ProjectSweptTunnelFloor, FVoxelWormField EvaluateExact, ApplyPassageLandingAirMC, ApplyPassageTunnelAirMC, GetGenerationParamsFingerprint, FVoxelStrateCorpus::LoadFromSettings, GetSkippedDefinitions, VF_RollStrateParams, VF_ArePlayerFitConnectedWithSampler, VF_GetVoxelSeasonSelectionReasonName, UVoxelSeasonAsset::GetManifestContentHash, FVoxelStackSampler::IsRunning, CompareSkippedPostValue, MakeSurfaceColumnSource, WriteObjTile, ExploreEffectName, ExploreTileClassName, and the VoxelTypes.h chunk-local helpers (WorldToLocalCoord, ChunkToWorldPos, LocalToIndex, IndexToLocal, IsValidLocalCoord, GetFaceDirection, GetFaceNormal, CHUNK_SIZE_SQUARED, CHUNK_VOLUME). Members/types: write-only floor flags (FVoxelOpSample:: bProtectedStructuralFloor, StructuralFloorMinimumDensity, bTunnelCoreSupportFloor; bSupportFloor on the tunnel evaluations; FTunnelFloorSegmentProfile::NumSteps), UVoxelStrateManager::BlendChunks, unused FSummary counters in the stack sampler, two unused FVoxelSeasonCompositionSettings aliases, and a few unused locals/constants. No UPROPERTY, UFUNCTION, reflected type or enum was touched. Behaviour is unchanged: removed code was unreachable or only written, never read. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01URDGLsu7c4nunqNFPJEFPU
72 lines
2.5 KiB
C++
72 lines
2.5 KiB
C++
// Cookable runtime carrier for one reviewed season manifest.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "Engine/DataAsset.h"
|
|
#include "VoxelSeasonAsset.generated.h"
|
|
|
|
struct FVoxelSeasonManifest;
|
|
class UVoxelStrateDefinition;
|
|
|
|
/**
|
|
* The JSON remains the reviewed/diffable source artifact. This asset embeds that exact text so
|
|
* Unreal's cooker can carry it into a packaged build, together with an independently stored digest
|
|
* used to detect an accidentally stale or edited asset.
|
|
*/
|
|
UCLASS(BlueprintType)
|
|
class VOXELFORGE_API UVoxelSeasonAsset : public UPrimaryDataAsset
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
virtual FPrimaryAssetId GetPrimaryAssetId() const override;
|
|
|
|
/** Parse and validate the embedded manifest, including both content-hash copies. */
|
|
bool LoadManifest(FVoxelSeasonManifest& OutManifest, FString& OutReport) const;
|
|
|
|
/** Runtime-safe import core used by the editor button and automation. */
|
|
bool SetManifestJson(const FString& InManifestJson, FString& OutReport);
|
|
|
|
int32 GetSeasonNumber() const { return SeasonNumber; }
|
|
int32 GetSeasonSeed() const { return SeasonSeed; }
|
|
float GetOriginSpineRadius() const { return OriginSpineRadius; }
|
|
float GetWorldRadiusVoxels() const { return WorldRadiusVoxels; }
|
|
|
|
/** Create the asset in Content Browser, choose a JSON file, then press this button. */
|
|
UFUNCTION(CallInEditor, Category = "Season")
|
|
void ImportSeasonManifestJson();
|
|
|
|
#if WITH_EDITORONLY_DATA
|
|
UPROPERTY(EditAnywhere, Category = "Season|Import", meta = (FilePathFilter = "json"))
|
|
FFilePath SourceManifestJson;
|
|
#endif
|
|
|
|
private:
|
|
UPROPERTY(VisibleAnywhere, Category = "Season")
|
|
int32 SchemaVersion = 0;
|
|
|
|
UPROPERTY(VisibleAnywhere, Category = "Season")
|
|
int32 SeasonNumber = 0;
|
|
|
|
UPROPERTY(VisibleAnywhere, Category = "Season")
|
|
int32 SeasonSeed = 0;
|
|
|
|
UPROPERTY(VisibleAnywhere, Category = "Season")
|
|
float OriginSpineRadius = 0.0f;
|
|
|
|
UPROPERTY(VisibleAnywhere, Category = "Season")
|
|
float WorldRadiusVoxels = 0.0f;
|
|
|
|
UPROPERTY(VisibleAnywhere, Category = "Season")
|
|
FString ManifestContentHash;
|
|
|
|
UPROPERTY(VisibleAnywhere, Category = "Season", meta = (MultiLine = true))
|
|
FString ManifestJson;
|
|
|
|
// Import-derived cook references for fixed/authored content bags named by the JSON. Generated
|
|
// strates legitimately have no source definition and use deterministic C++ defaults at runtime.
|
|
UPROPERTY(VisibleAnywhere, Category = "Season")
|
|
TArray<TSoftObjectPtr<UVoxelStrateDefinition>> ReferencedDefinitions;
|
|
};
|