You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
o3de/AutomatedTesting
nvsickle c9fb41d0e5 Fix Entity Outliner sort order with Prefabs enabled
The EditorEntitySortComponent was relying on serialization callbacks not exposed to the JSON serializer to marshal data between its serialized state and its runtime state, which led to the outliner sort order becoming disrupted every time a prefab propagation occurs (and the component is subsequently serialized and deserialized). This change:
- Forces `PrepareSave` and `PostLoad` for `EditorEntitySortComponent` to be called at update (direct descendant added or removed) and activation time respectively while prefabs are enabled. While this could be optimized, and this logic stands to be refactored once slices are fully removed, I was unable to gather any samples in which `PrepareSave` are called in a sampling profiler in a scene with 1000 top-level entities, so I don't anticipate this introducing a meaningful performance regression in the short term.
- Disables updates in `EditorEntitySortComponent` during prefab propagation, as any detected changes do not signal authored intent at this time
- Made `GetEntityChildOrder` in `EditorEntityHelpers` work with prefabs enabled, which restores the existing "Sort: A -> Z" and "Sort: Z -> A" behaviors (which have some preexisting issues this does not fix)
- Adds a Python regression test to the Editor suite to validate this behavior - the test is currently in TestSuite_Main and not TestSuite_Main_Optimized because it requires an Editor launch with prefabs enabled, this can be fixed once AutomatedTesting is further migrated away from slices

@AMZN-daimini has a larger change that improves the JSON serialization format (https://github.com/o3de/o3de/pull/1292) which we should absolutely bring in in the future to improve the legibility of the Prefab format, but this change fixes the functionality (including saving & reloading a level and keeping a consistent order) without altering the Prefab format - this lower impact radius fix is my preference for our stabilization period.

Signed-off-by: nvsickle <nvsickle@amazon.com>
4 years ago
..
Animations Cleaning motion asset infos (#2197) 4 years ago
Assets ATOM-16575 clean up image builder presets files (#4611) 4 years ago
Config Hair - Adding the Hair Gem to the automated testing (#4498) 4 years ago
Editor/Scripts {lyn7251} Add material component example in Python (#4724) 4 years ago
Fonts Integrating latest 47acbe8 5 years ago
Gem Fix Entity Outliner sort order with Prefabs enabled 4 years ago
Levels Added option to reopen if the current level is the same. This contributes to stability for batched tests (#4043) 4 years ago
LightingPresets ATOM-13950 Material Editor: Removing auto select option from lighting and model presets 5 years ago
LuaScripts Shorten copyright headers by splitting into 2 lines (#2213) 4 years ago
Materials Made material property auto-rename procedure apply to Material Component at runtime. This ensures that an material property overrides and any gameplay scripts that work with property overrides can get the benefit of the material type version update procedure. 4 years ago
Objects Move wrinkle mask data out of default object srg (#4578) 4 years ago
Passes Reenable support for UI Elements that use Render Targets (#2352) 4 years ago
Registry Deleted PhysXSamples gem (#4753) 4 years ago
ScriptCanvas Fixed Physics SC tests (#4001) 4 years ago
ShaderLib Shorten copyright headers by splitting into 2 lines (#2213) 4 years ago
Slices Updating test asset for DistanceBetweenFilter tests 5 years ago
TestAssets Shorten copyright headers by splitting into 2 lines (#2213) 4 years ago
UI Integrating latest from github/staging 5 years ago
libs Integrating latest 47acbe8 5 years ago
multiple_mesh_one_material Squashed commit of Procedural Prefab work (#4481) 4 years ago
physicssurfaces Integrating up through commit 90f050496 5 years ago
sounds Updating to support Wwise SDK 2021.1.1.X (#686) 5 years ago
textures ATOM-16575 clean up image builder presets files (#4611) 4 years ago
AssetProcessorGamePlatformConfig.setreg MaterialEditor BasicTests added to AutomatedTesting for AR (#3022) 4 years ago
AutomatedTesting_Dependencies.xml Archive Component - Rewrite and additional work on Archive and Asset Bundler (#4332) 4 years ago
CMakeLists.txt Shorten copyright headers by splitting into 2 lines (#2213) 4 years ago
EngineFinder.cmake Shorten copyright headers by splitting into 2 lines (#2213) 4 years ago
UtilTest_PhysxConfig_Override.physxconfiguration Integrating latest 47acbe8 5 years ago
default.blastconfiguration Reenable Blast Automated tests (#42) 5 years ago
game.cfg Fixed All Physics automated tests (#129) 5 years ago
preview.png Updated Project Manager O3DE Logos with Rotated Squares Version (#1595) 5 years ago
project.json Integrating latest 47acbe8 5 years ago
test1.lua Shorten copyright headers by splitting into 2 lines (#2213) 4 years ago
test2.lua Shorten copyright headers by splitting into 2 lines (#2213) 4 years ago
test123.scriptcanvas Integrating latest 47acbe8 5 years ago