* Add the last known parent to the prefab undo cache to detect changes in the owning instance.
Still WIP.
* Progress in handling reparenting. Still WIP, need a change in CreateLink that will be addressed in a separate branch and then merged back.
* A few fixes, reparenting now works with entities. Still working on instances.
* Fix assert crashing the Editor because of the arguments being in the wrong order.
* Handle moving the patches when removing and recreating links when reparenting nested instances.
* Rearrange some code to prevent including instance removal in instance update undo node, as it would be redundant and cause errors in some edge cases.
* Reorder instance reparenting to account for correct order of operation during undo/redo
* Fix order of operations to support multiple operations in one edit (reparenting to non-container entities while changing instance)
* Add function to refresh patches on links to allow aliases to be restored correctly on reparenting.
* Removed RefreshEntityPatchOnLink function. Introduced a simpler way of handling porting patches.
* Removing unnecessary code that was left after testing.
* Minor fixes to naming and comments.
* Restore previous error, no longer printing the failed patch.
* Remove unused includes.
* Restore include removed by mistake.
* Simplified patches retrieval by using internal function. Renamed some internal functions and variables to be more accurate.
This set of changes enables conversions for singly-nested slices. Multiple nesting hierarchies are only partially supported at this point. Conversion is also significantly more deterministic, which makes it easier to convert single slices without needing to reconvert every slice or level that relies on it as well.
Changes:
- Added version of Instance::AddInstance() that takes in an alias to allow for deterministic aliases
- Added a "SliceConverterEditorEntityContextComponent" that's used to specifically disable entity activation on creation. The disabling is done this way vs adding a new public API, because the disable shouldn't be required in any normal case outside of this tool.
- Disabled more AWS gems for the SliceConverter, as they're unneeded and cause issues if they're around in the tool.
- Added a small null check to the Camera Controller.
- Added the actual support for slice instance conversion. This instantiates the entities, applies the data patches, turns them into a prefab instance, and generates a JSON patch out of the changes.
* Show container transforms, reset container transform to zero before saving a prefab after create.
* Fix order of operations to prevent patching issues
* Reset the entity to the Identity Transform instead of the default constructor to correctly set the scale to 1.0
* Fix some FOV calculation viewport issues:
-Avoid calculating FOV if we've got an invalid viewport
-Don't override game mode FOV, let the active camera components manage it instead
* Fix viewport font positioning
This updates code in a few places to respect an API change/fix made to AtomFont - also switched the default value of m_virtual800x600ScreenSize to false as it's really behavior you want to opt into
* Don't activate CameraComponentController when in the Editor / not in game mode
The initial CreatePrefab flow was trying to go from absolute -> relative -> absolute path before the file had ever been saved, so the relative -> absolute path conversion generated an error and always produced a project-relative path, even if the initial path was in a gem. For example, trying to save "c:/o3de/Gems/Camera/Assets/Entity1.prefab" would instead create "c:/o3de/AutomatedTesting/Entity1.prefab". This change preserves the absolute path throughout the initial creation flow so that the file is saved in the correct location.
- Invalidate 'Physics Materials From Mesh' boolean from collider component
- Removed material library from material selector. Default material library will always be used instead.
- Marking failing automated test as xfail
- Added default material to physics configuration.
- Moved material library asset from physx configuration to physics configuration, as it doesn't need to be physx specific.
- Refactor physics material system having into account that there is only one material library in the project.
- Renaming code from DefaultMaterialLibrary to MaterialLibrary.
- All queries about physics materials unified under PhysicsMaterialRequests bus.
- PhysXSystem only manages the material library asset.
- Saving and reloading the same physics material asset with different content didn't trigger a events that the material library has changed.
- Changing Physics Material Request interface to use shared_ptr instead of weak_ptr to be simpler to handle the returned materials and having a more consistent code.
- Refactored Material Manager to improve its implementation. Still following the same approach of "creating materials on the fly as they are requested", but now it's doing it consistently across the interface, with private helpers functions FindOrCreateMaterial that simplify vastly the implementation.
- Material Manager now listens to change event of material library asset and default material configuration so it updates its materials accordingly.
- Complete Material move constructor and operator.
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.
* wip support for mesh intersection with intersector bus
* WIP camera mesh intersection orbit logic
* remove unneeded template argument
* add bus connect/disconnect
* fix intersection logic
* small updates, additional comments, some tidy-up
* update formatting options slightly
* use aznumeric_cast
* temp workaround for negative distances with RayIntersection