* Fix several Prefab outliner ordering issues
This change does a few things to address instability in entity order when prefabs are enabled:
- Changes ordering behavior on entity add to always be "insert after the last selected sibling of the new entity, or at the end if there is no selected sibling"
- Adds some logic to ensure selection stays frozen during prefab propagation to allow this behavior to be used
- Alters delta generation in `PrefabPublicHandler::CreateEntity` to use the template instead of reserializing the DOM - this avoids a whole bunch of patching issues caused by EditorEntitySortComponent doing post-hoc order fix-up and should generally be safer/faster as we're producing patches for the actual target for those patches
- Because the duplicate action is DOM-driven, and there's some thorniness around making changes that will affect the template during propagation, this adds `PrefabPublicHandler::AddNewEntityToSortOrder` to directly patch the DOM for the duplicate case
Two bits of this come from patches from the incredibly helpful @AMZN-daimini
- Alters `PrefabPublicHandler::GenerateUndoNodesForEntityChangeAndUpdateCache` behavior for determining what's an override: we now check to see if we're part of the current focused instance but *not* owned by the focus instance directly. This lets entity order for nested prefabs get saved to the owning prefab instead of as an override. I'm putting this up for discussion without a feature flag gating it, but we may wish to make this a toggle or disable it outright for stabilization (in which case entity order won't be saved to the owning prefab)
- Adds a custom serializer for EditorEntitySortComponent. This isn't strictly necessary now, but it was very useful for debugging and ended up receiving much more manual testing its migration path and save/load path more than I've tested without using the serializer.
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
* Add missing serializers
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
* Address some review feedback
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
* Generate patch in `PrefabPublicHandler::CreateEntity` using the instance's fully evaluated template in-memory
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
* Fix up comment
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
* Fix Linux build
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
* Try to make test less timing dependent (haven't been able to repro failure locally)
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
* Fix another build issue
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
* Fix unit test failures
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
* Fix a duplicate issue with sanitization that was causing sporadic test failure (thanks, test!)
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
* One more Linux fix...
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
* Cleaning up errors with default assets, used in bundled release builds
Signed-off-by: AMZN-stankowi <4838196+AMZN-stankowi@users.noreply.github.com>
* Updated simple asset references to be to the product, not source assets
Signed-off-by: AMZN-stankowi <4838196+AMZN-stankowi@users.noreply.github.com>
* Fixed test_WindowsAndMac_FilesMarkedSkip_FilesAreSkipped to pass again.
Updated the test to verify the assets are actually skipped and not just missing, by having it first run without the skip command and verify they are in the first run. Also updated logging to print out sorted lists, to make it easier to debug failures on Jenkins in the future.
Signed-off-by: AMZN-stankowi <4838196+AMZN-stankowi@users.noreply.github.com>
* Removed a test marked skip for legacy levels that featured a lot of assets that are no longer valid.
I don't think we need this specific test anymore in the future because prefabs replace the level system, and prefabs should have their own tests for product dependencies.
Signed-off-by: AMZN-stankowi <4838196+AMZN-stankowi@users.noreply.github.com>
* Updated project path to use absolute path (#5459)
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Updated project path to work with latest project path changes
Signed-off-by: AMZN-stankowi <4838196+AMZN-stankowi@users.noreply.github.com>
* Changed to workspace.paths.project() for getting full path to projects
Signed-off-by: AMZN-stankowi <4838196+AMZN-stankowi@users.noreply.github.com>
Co-authored-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
Replaced and removed the CryTimer (gEnv->pTimer). The new TimeSystem is a merger of the current time functionality found in the engine.
* Rename TimeSystemComponent.h/.cpp to TimeSystem.h/.cpp
* Adding New TimeSystem
* remove old timer cvars
* small improvements to the time system.
- updated parts to use the time conversion functions.
- in AdvanceTickDeltaTimes applying t_simulationTickScale is now uses doubles instead of floats.
* Replace gEnv->pTimer / ITimer usages with TimeSystem
* Updating usages of AZ::TimeMs{ 0 } and AZ::TimeUs{ 0 } to AZ::Time::ZeroTimeMs and AZ::Time::ZeroTimeUs
* red code the CryTimer
* using TimeUs instead of TimeMs is some cases + updating usages of old cvars to new
Signed-off-by: amzn-sean <75276488+amzn-sean@users.noreply.github.com>