Critical fixes for packaged builds:
- Widget weak ptrs (SpawnManager/SceneSerializer) are null in packaged due to
HUD deferred init. All button lambdas now get references fresh from
PlayerController via GetOwningPlayer() cast instead of cached weak ptrs.
- HUD BeginPlay deferred by one tick (SetTimerForNextTick) to ensure
PlayerController has initialized SpawnManager before wiring.
Module split:
- Factories moved to separate PS_EditorTools module (Type: Editor)
to fix UHT error with UFactory in packaging builds.
- PS_Editor module no longer depends on UnrealEd for factories.
Asset references:
- TSoftObjectPtr/TSoftClassPtr changed to TObjectPtr/TSubclassOf for
MasterCatalog, SpawnCatalogs, and ActorClass entries. Hard references
ensure assets are cooked in packaged builds.
Other fixes:
- GetActorLabel() replaced with GetClass()->GetName() (editor-only API)
- Missing brace in Browse dialog BaseLevel sync code
- BaseLevel sync only when scenario specifies a LevelName (no more clearing on empty)
- Save As dialog with native Windows file picker
- Debug info in catalog UI when empty (shows chain: Master→Catalogs→Entries)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>