Commit Graph

108 Commits

Author SHA1 Message Date
robert manuszewski
d1443992e1 Deprecating ANY_PACKAGE.
This change consists of multiple changes:

Core:
- Deprecation of ANY_PACKAGE macro. Added ANY_PACKAGE_DEPRECATED macro which can still be used for backwards compatibility purposes (only used in CoreUObject)
- Deprecation of StaticFindObjectFast* functions that take bAnyPackage parameter
- Added UStruct::GetStructPathName function that returns FTopLevelAssetPath representing the path name (package + object FName, super quick compared to UObject::GetPathName) + wrapper UClass::GetClassPathName to make it look better when used with UClasses
- Added (Static)FindFirstObject* functions that find a first object given its Name (no Outer). These functions are used in places I consider valid to do global UObject (UClass) lookups like parsing command line parameters / checking for unique object names
- Added static UClass::TryFindType function which serves a similar purpose as FindFirstObject however it's going to throw a warning (with a callstack / maybe ensure in the future?) if short class name is provided. This function is used  in places that used to use short class names but now should have been converted to use path names to catch any potential regressions and or edge cases I missed.
- Added static UClass::TryConvertShortNameToPathName utility function
- Added static UClass::TryFixShortClassNameExportPath utility function
- Object text export paths will now also include class path (Texture2D'/Game/Textures/Grass.Grass' -> /Script/Engine.Texture2D'/Game/Textures/Grass.Grass')
- All places that manually generated object export paths for objects will now use FObjectPropertyBase::GetExportPath
- Added a new startup test that checks for short type names in UClass/FProperty MetaData values

AssetRegistry:
- Deprecated any member variables (FAssetData / FARFilter) or functions that use FNames to represent class names and replaced them with FTopLevelAssetPath
- Added new member variables and new function overloads that use FTopLevelAssetPath to represent class names
- This also applies to a few other modules' APIs to match AssetRegistry changes

Everything else:
- Updated code that used ANY_PACKAGE (depending on the use case) to use FindObject(nullptr, PathToObject), UClass::TryFindType (used when path name is expected, warns if it's a short name) or FindFirstObject (usually for finding types based on user input but there's been a few legitimate use cases not related to user input)
- Updated code that used AssetRegistry API to use FTopLevelAssetPaths and USomeClass::StaticClass()->GetClassPathName() instead of GetFName()
- Updated meta data and hardcoded FindObject(ANY_PACKAGE, "EEnumNameOrClassName") calls to use path names

#jira UE-99463
#rb many.people
[FYI] Marcus.Wassmer
#preflight 629248ec2256738f75de9b32

#codereviewnumbers 20320742, 20320791, 20320799, 20320756, 20320809, 20320830, 20320840, 20320846, 20320851, 20320863, 20320780, 20320765, 20320876, 20320786

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 20430220 via CL 20433854 via CL 20435474 via CL 20435484
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)

[CL 20448496 by robert manuszewski in ue5-main branch]
2022-06-01 03:46:59 -04:00
vincent beauchemin
cb7e4fc951 Fix World Partition Convert Cmdlet when starting from a project containing a whitespace in their path.
#rb jeanfrancois.dube
#jira UE-154026 - World Partition - Convert level process fails with an errors "Error: extra parameters
#preflight skip
#rnx

[CL 20437525 by vincent beauchemin in ue5-main branch]
2022-05-31 11:22:42 -04:00
JeanFrancois Dube
9732fab483 World Partition: remove code related to editing the editor hash cell size.
#rb patrick.enfedaque
#preflight 6286765415019f647748a032
#rnx

[CL 20283537 by JeanFrancois Dube in ue5-main branch]
2022-05-19 13:41:50 -04:00
vincent beauchemin
056d5ec123 Update World Partition link with right/new/changed website path. Another change on WorldPartition.cpp will come by RM when 5.0.3 gates open.
#rb jeanfrancois.dube
#preflight skip
#rnx

[CL 20279721 by vincent beauchemin in ue5-main branch]
2022-05-19 10:04:54 -04:00
JeanFrancois Dube
9d46f9daf9 World Partition:
- Added assert that the provided world is not a game world in IWorldPartitionActorLoaderInterface::ILoaderAdapter constructor.
- Apply the ALocationVolume.DebugColor to the World Partition display for loader adapters UI.

#rb richard.malo
#preflight 6283e231ed2c0847b04fd00b
#rnx

[CL 20247563 by JeanFrancois Dube in ue5-main branch]
2022-05-17 14:12:02 -04:00
JeanFrancois Dube
5f70054b02 World Partition: added option to convert loading regions to a location volume actor in the World Partition UI.
#rb richard.malo
#preflight 628286d9162e4a77e52243ce
#rnx

[CL 20227547 by JeanFrancois Dube in ue5-main branch]
2022-05-16 13:36:20 -04:00
JeanFrancois Dube
13ea13eb8f World Partition Editor Hash:
- Unbound octree now stores hierarchical editor cells instead of leaves, this greatly reduce the number of needed editor cells for very large worlds.
- Implemented loading regions support to replace editor cells loading, in preparation for bookmark regions.

Tested against a 2000KMx2000km world + various internal projects and demos.

#rb patrick.enfedaque, richard.malo
#preflight 628239b5cf7e4667a97e3fe0

[CL 20222133 by JeanFrancois Dube in ue5-main branch]
2022-05-16 08:08:40 -04:00
Richard Malo
ed2a2aa1ca Fixed crash when loading/switching from 2 partitioned maps in the editor : WorldPartitionDetailsCustomizaiton now keeps a WeakPtr on the WorldPartition object.
#rb jeanfrancois.dube
#jira none
#preflight 627bc6510a5817c9d94baf19
#rnx

[CL 20140137 by Richard Malo in ue5-main branch]
2022-05-11 10:50:11 -04:00
Lauren Barnes
6248f8d412 Replacing legacy EditorStyle calls with AppStyle
#preflight 6272a74d2f6d177be3c6fdda
#rb Matt.Kuhlenschmidt

#ROBOMERGE-OWNER: Lauren.Barnes
#ROBOMERGE-AUTHOR: lauren.barnes
#ROBOMERGE-SOURCE: CL 20057269 via CL 20070159 via CL 20072035 via CL 20072203
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)
#ROBOMERGE-CONFLICT from-shelf

[CL 20105363 by Lauren Barnes in ue5-main branch]
2022-05-09 13:12:28 -04:00
jeanfrancois dube
b27de8149e World Partition Actor Descriptors
- Now includes full path to the base class to support BP classes (none if from a native class).
- FWorldPartitionHelpers actor descriptors iterator functions now supports BP classes.
- UWorldPartitionResaveActorsBuilder now supports filtering actors by BP classes.
- Scene Ouliner now shows the correct base class for unloaded actors instead of the first native class.

#rb patrick.enfedaque, richard.malo
#preflight 6273b366e95a8b960e43e5d4
#rnx

#ROBOMERGE-AUTHOR: jeanfrancois.dube
#ROBOMERGE-SOURCE: CL 20057885 via CL 20058202 via CL 20058209
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 20061192 by jeanfrancois dube in ue5-main branch]
2022-05-05 14:10:10 -04:00
Patrick Boutot
bdae98ad4e Slate: Transform some ElementPayload from Vector2D to Vector2f. Use FDeprecateVector2D to create a deprecation path for function that returns a FVector2D.
#jira UE-137340
#rb sebastian.nordgren
#preflight 6273e2f3230c8997ad94b076

[CL 20059075 by Patrick Boutot in ue5-main branch]
2022-05-05 12:02:42 -04:00
Sebastien Lussier
8eb1d82e35 Fixed issues when running HLOD/Minimap builds on an unsaved map
* External commandlet would be executed on the /Temp/Untitled package
#jira none
#rb patrick.enfedaque
#preflight 6273d0f0b86624d2e8cb7194

[CL 20056979 by Sebastien Lussier in ue5-main branch]
2022-05-05 09:40:14 -04:00
sebastien lussier
0df6b0725f Fixed issue with WorldPartitionEditorModule when running from a commandlet
#rb rex.hill

#ROBOMERGE-AUTHOR: sebastien.lussier
#ROBOMERGE-SOURCE: CL 20024947 via CL 20025014 via CL 20025021 via CL 20025028
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 20026073 by sebastien lussier in ue5-main branch]
2022-05-03 11:11:47 -04:00
sebastien lussier
0e6c257387 Allow HLOD/Minimap commandlets to be executed with vk
* Must provide a VK project on which to operate
#rb patrick.enfedaque

#ROBOMERGE-OWNER: sebastien.lussier
#ROBOMERGE-AUTHOR: sebastien.lussier
#ROBOMERGE-SOURCE: CL 20018658 via CL 20018661 via CL 20018677 via CL 20018678
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 20019494 by sebastien lussier in ue5-main branch]
2022-05-02 21:59:41 -04:00
Matt Peters
7ad238a806 AssetRegistry includes (Engine/Source): change #include "AssetData.h" -> #include "AssetRegistry/AssetData.h", and similar for the other moved AssetRegistry headers.
#rb Zousar.Shaker
#rnx
#preflight 6270509a220f89f0ad573030

[CL 20016982 by Matt Peters in ue5-main branch]
2022-05-02 18:06:48 -04:00
JeanFrancois Dube
6ebf4c139d The PreviewGrids flag in WorldPartitionRuntimeSpatialHash is now transacted.
#rb richard.malo
#preflight none
#rnx

[CL 19919738 by JeanFrancois Dube in ue5-main branch]
2022-04-26 10:22:37 -04:00
Richard Malo
ae56f2b0a7 - Added a detail customization for WorldPartitionRuntimeSpatialHash
- Avoid dirtying level when changing the Preview Grids flag.
#rb patrick.enfedaque
#jira UE-149700
#preflight 62601507e30cb43e8cb9bf9e

[CL 19830945 by Richard Malo in ue5-main branch]
2022-04-20 11:15:20 -04:00
dominic couture
a9c45c0275 -Fix crash (access on a NULL Wolrd ptr) that happens when switching to an non WP map when you have the World Partition editor opened and if you have opened the Levels editor while in the current map.
#rb jeanfrancois.dube, philippe.deseve
#preflight 62466591637925b5d3d4d3c1

#ROBOMERGE-AUTHOR: dominic.couture
#ROBOMERGE-SOURCE: CL 19587094 via CL 19587153 via CL 19587157
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v938-19570697)

[CL 19588133 by dominic couture in ue5-main branch]
2022-04-01 10:23:32 -04:00
jeanfrancois dube
fb8c01ffe8 World Partition: minor code cleanups.
#rb patrick.enfedaque
#preflight none
#rnx

#ROBOMERGE-AUTHOR: jeanfrancois.dube
#ROBOMERGE-SOURCE: CL 19540402 via CL 19540412 via CL 19540414
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v937-19513599)

[CL 19540628 by jeanfrancois dube in ue5-main branch]
2022-03-29 08:40:54 -04:00
robomerge
64699afe63 World Partition Editor: fix displaying message when streaming is disabled.
#rb richard.malo
#preflight none
#rnx

#ROBOMERGE-AUTHOR: jeanfrancois.dube
#ROBOMERGE-SOURCE: CL 19532086 via CL 19533378 via CL 19533395 via CL 19533429
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v937-19513599)

[CL 19534927 by robomerge in ue5-main branch]
2022-03-28 18:51:08 -04:00
jeanfrancois dube
f80edf3e16 fix non-unity build
#rb none
#preflight none
#rnx

#ROBOMERGE-OWNER: jeanfrancois.dube
#ROBOMERGE-AUTHOR: jeanfrancois.dube
#ROBOMERGE-SOURCE: CL 19529136 via CL 19529290 via CL 19529301 via CL 19529312
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v937-19513599)

[CL 19532786 by jeanfrancois dube in ue5-main branch]
2022-03-28 16:29:50 -04:00
jeanfrancois dube
f57363964c World Partition: force disabling streaming when the world settings doesn't support streaming.
#rb patrick.enfedaque
#preflight 623e0b61982d12a89972e0c8

#ROBOMERGE-OWNER: jeanfrancois.dube
#ROBOMERGE-AUTHOR: jeanfrancois.dube
#ROBOMERGE-SOURCE: CL 19525249 via CL 19527006 via CL 19527434 via CL 19527451
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v937-19513599)

[CL 19532685 by jeanfrancois dube in ue5-main branch]
2022-03-28 16:26:14 -04:00
jeanfrancois dube
86437b50f4 World Partition
- Edigrate 19149766 from Main: wp by default with disabled streaming to mimic classic level streaming with data layers as a bonus.
- Revert part of 18994482: removed option to force load everything in the editor.
- Warn the user when the world is large enough to justify enabling streaming.

#rb richard.malo
#preflight 623c57bdbe1e4104d37b6dd5
#rnx

#ROBOMERGE-OWNER: jeanfrancois.dube
#ROBOMERGE-AUTHOR: jeanfrancois.dube
#ROBOMERGE-SOURCE: CL 19494492 via CL 19495530 via CL 19501961 via CL 19501993
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v936-19480137)

[CL 19503573 by jeanfrancois dube in ue5-main branch]
2022-03-24 18:01:12 -04:00
sebastien lussier
c1e3510947 Minimap for Open World Template maps is not displayed in the World Partition Editor outside of QAGame
* Avoid UDIM setup for the minimap as there are no fallback possible to normal texture if Virtual Texture support is disabled in the project settings
* Rebuilt minimap for the default OpenWorld template to ensure it is not UDIM based and wil work outside of QAGame
* Added warning if a minimap exceeds the maximum texture resolution & VT support is disabled.
* Fix WorldPartitionBuilder cell iteration sometimes performed on extra cells outside of the world bound
* When running World Partition commandlets from the editor, provide the -unattended flag (to avoid blocking popups) and hide the subprocess window.

#jira UE-145488
#rb patrick.enfedaque, jeanfrancois.dube
#preflight 622b961e0a614dcb0c0227f9
#lockdown simon.tourangeau

#ROBOMERGE-OWNER: sebastien.lussier
#ROBOMERGE-AUTHOR: sebastien.lussier
#ROBOMERGE-SOURCE: CL 19359957 in //UE5/Release-5.0/... via CL 19361451
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)

[CL 19363331 by sebastien lussier in ue5-main branch]
2022-03-11 18:25:48 -05:00
sebastien lussier
a1e2270aa7 #jira UE-143721
Build HLODs / Minimap in editor

* Added the necessary code to be able these builds from inside the editor, using the "Build" menu
* The HLOD build will show a dialog where you can select a few options (setup, build, forcebuild, delete), then start the build
* The minimap build has no options, will start right away
* Build is actually done through an external process, so the editor will ask to save any changes that's been made, and unload the current map before starting a commandlet
* Progress is updated by parsing the commandlet log during it's execution
* Once the build is complete, will force an asset registry scan and reload the map

* Also disabled the "HLOD Outliner" tool when in a partitionned level, as it is not working and may be confusing.

#preflight 6226e29f671c913c0502a807
#rb jeanfrancois.dube, patrick.enfedaque

#ROBOMERGE-AUTHOR: sebastien.lussier
#ROBOMERGE-SOURCE: CL 19302772 in //UE5/Release-5.0/... via CL 19303919
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)

[CL 19346855 by sebastien lussier in ue5-main branch]
2022-03-10 20:49:05 -05:00