* Clear prefab templates on new level creations and loads
Signed-off-by: srikappa-amzn <srikappa@amazon.com>
* Fixed failing prefab unit tests after change to clear templates
Signed-off-by: srikappa-amzn <srikappa@amazon.com>
* Remove dirty entities correctly when prefab entities get destroyed
Signed-off-by: srikappa-amzn <srikappa@amazon.com>
* Remove call to clear dirty entity for single entity delete
Signed-off-by: srikappa-amzn <srikappa@amazon.com>
* Removed couple of asserts because order of operations is not fixed
Signed-off-by: srikappa-amzn <srikappa@amazon.com>
* Final update copyright headers to reference license files at the repo root
Signed-off-by: spham <spham@amazon.com>
* Fix copyright validator unit tests to support the stale O3DE header scenario
Signed-off-by: spham <spham@amazon.com>
* Restore the code that display the dirty marker on the Level container. Ensure the dirty marker is cleared on level save.
* Moving call one level up to allow usage of the SaveTemplateToString function without clearing the dirty flag.
* Add instanceToIgnore to calls leading to instances being added to the queue for propagation.
* Change PrefabUndoEntityUpdate to make it so that the instance triggering the prefab template change is not reloaded on propagation, since it will already be up to date due to the way we generated the patch to begin with.
* Add FindPrefabDomValue utility function for paths
* Expose the level root prefab template id in the Prefab EOS Interface
* Fix Instance Alias Path generation to work with the new FindValueInPrefabDom function
* Stop reloading ancestors on propagation, and fix instance reloading so that the level dom is used (and overrides are preserved)
* Remove commented out code, refactor FindPrefabDomValue for paths (was handling an edge case incorrectly, and it's not even triggered)
* Fix issue with PathView reference - with PathView already being a reference, this resulted in a copy and triggered a warning during automated review builds.
* Additional fix to the build warning, remove redundant error message
* Revert changes to Instance::GetAbsoluteInstanceAliasPath(), as they were impacting serialization.
* Remove the dependency to the level root prefab template in the propagation code, climb up the hierarchy instead. This allows tests to work despite not using the EOS properly.
Also use PrefabDomPaths to retrieve the instance dom from the root dom instead of iterating.
* Remove now unused PrefabDomUtils function, extend optimization to link updates.
* Trigger a full instance propagation to correctly refresh alias references.
This is an issue in the test because some operations are called from the backend API and will not trigger propagation properly. Tests will soon be rewritten to more properly represent frontend workflows.
* Fixes lingering issues with propagation:
- Restores code that fixes the selection if entityIds have changed;
- Fixes Do() function on link update. Prefab containers will propagate correctly while still being stable during editing.
* Remove GetRootPrefabInstanceTemplateId (no longer necessary after the code has been rewritten)
* Fix optimization code to account for instances being removed and propagation being run out of order in Create Prefab undo.
* Renamed variable, added comments for clarity.
* Restore asserts on instance not being found; Rename Do to Redo for clarity; Add comments.
* Fixed incomplete comment.
The method "PrefabLoader::GetRelativePathToProject" has been changed to "PrefabLoader::GenerateRelativePath", and reworked to get a correct relative path. GetFullPath has also been modified to get correct relative paths too. This requires an Asset Processor connection - if one isn't available (like during unit tests), the methods have fallback logic to produce project-relative paths.
With this change, SliceConverter can't use SaveTemplate() to save the file any more, because GetFullPath now expects to find an existing path, which doesn't work for not-yet-created files. Instead, it now has to use the same technique as the Editor and call SaveTemplateToString then save the string out as a file.
* Started update for prefab based initial asset inclusion
* Newly Created levels now use a template prefab
* Review feedback changes
* Moved to better asset-based queries to generate the full path.
* Removed pesky pragma
* Replaced with const name instead of literal string
Updated AzFramework::Scene to allow it to serve as the one-stop location for localized singletons. Localized singletons in this case are instance that can only occur once in an environment but multiple times within an application. As an example, this allows settings up a single camera per viewport for instance.
Highlights of changes:
Replaced the original ebuses with interfaces and events for easy of use and performance.
Removed the Entity Context specific code and moved that to new locations within the Entity Context itself.
Allowed basic inheritance. If a subsystem isn't found in a scene the parent can optionally be searched.
Scenes can enter a zombie state and avoid immediately being deleted. This is needed for situations where subsystems can't be destroyed until async calls have been completed.