wip(unreal): VoxelForgeCore UBT module + asset adapter reproduce the standalone world
Luna, integration round 1 (BuildHost only; owner's project and assets untouched): - New runtime module VoxelForgeCore: one shim per Standalone/Core/core_sources.txt row (sources stay canonical under Standalone/), NoPCH/no unity, manifest check; VoxelForge links it (no runtime routing yet). UE link-safety audit: 18 shims, 83,843 symbol lines vs 399 Unreal-style names, 0 clashes. - Adapter (editor commandlet path) turns staged copies of the owner's DA_* assets into schema-v1 JSON; with clip_radius=3/max_clip_level=8 it reproduces all four Core hashes (0xdb2991c73215af4c, 0x8236c5edd7fc8e4f, 0x4c48fa75a543d58e, 0xbea22e76b34a4dfc) and walkability 5,642/5,642 at worker limits 1, 8 and 16. - Noted: the owner's settings asset says max clip level 6 (standalone used 8); Core uses 25 cm voxels vs the plugin runtime's 12.5 cm. Not done yet: AVoxelWorld switch and Core runtime route (round 2). Docs: CODEMAP, ARCHITECTURE, SHARED_CPP_LIBRARY_PLAN, UNREAL_INTEGRATION_REPORT. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MmSoF64BbRFmk9C3p1VsBJ
This commit is contained in:
1 parent
a1dfc0422e
commit
29ca99af7f
32 files changed
+919
-69
No files matched your search
@@ -587,6 +587,20 @@ function Copy-DirectoryContents([string]$Source, [string]$Destination) {
|
||||
}
|
||||
}
|
||||
|
||||
function Sync-StagedCoreSources {
|
||||
# UBT reads these canonical files through the plugin module's include roots. Keep the host
|
||||
# copy source-only; Core verification logs and standalone binaries are not part of the module.
|
||||
$stageStandalone = Join-Path $StagePlugin 'Standalone'
|
||||
$sourceStandalone = Join-Path $PluginRoot 'Standalone'
|
||||
Ensure-Directory $stageStandalone
|
||||
foreach ($relative in @('Core\include', 'Core\src', 'Compat', 'Source')) {
|
||||
Copy-DirectoryContents (Join-Path $sourceStandalone $relative) `
|
||||
(Join-Path $stageStandalone $relative)
|
||||
}
|
||||
$null = Copy-Item -LiteralPath (Join-Path $sourceStandalone 'Core\core_sources.txt') `
|
||||
-Destination (Join-Path $stageStandalone 'Core\core_sources.txt') -Force -PassThru
|
||||
}
|
||||
|
||||
function Sync-StagedHost {
|
||||
if (-not (Test-Path -LiteralPath $HostProject -PathType Leaf)) {
|
||||
throw "Staged host project is missing: $HostProject"
|
||||
@@ -602,6 +616,7 @@ function Sync-StagedHost {
|
||||
Remove-Item -LiteralPath $stageSource -Recurse -Force
|
||||
}
|
||||
Copy-DirectoryContents (Join-Path $PluginRoot 'Source') $stageSource
|
||||
Sync-StagedCoreSources
|
||||
$null = Copy-Item -LiteralPath (Join-Path $PluginRoot 'VoxelForge.uplugin') `
|
||||
-Destination (Join-Path $StagePlugin 'VoxelForge.uplugin') -Force -PassThru
|
||||
|
||||
|
||||
Reference in new issue
Block a user