Commit Graph

39 Commits

Author SHA1 Message Date
Artur K 567c0ae24d Modernization + AZStd::function compare fix. (#3680)
* Modernization + small fix.

Modernize ( `bool`/`override`/other) code in AzCore, AzFramework, AzQtComponents, AzToolsFramework, etc.
Replaced a `bind` or two, use `using` in a few places as well.

Fix nullptr comparison of AZStd::function.

Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>

* Apply review-based changes

Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
2021-09-02 14:55:09 -05:00
Steve Pham fa0f2a1007 Fix unused warnings release (#3677)
* Release build fix for Windows
* Release build fix for Android
* Release build fix for Windows
* Release build fix for Android
* Release build fix for Linux
* Release build fix for Mac
* Release build fix for iOS

Signed-off-by: Steve Pham <spham@amazon.com>
2021-08-30 13:10:41 -07:00
chiyenteng 7e5cbdab1e Create a new automated test for Prefab basic workflows (#2715)
Adds a new ebus for prefab apis and refactored the apis
Removed an empty test level
Auto delete tmp level when teardown tests
Add Base test level in Prefab folder
Removed unused comments
Checked if absolute path as an input of Create Prefab functions
Changed created prefab file path to support all platfroms
Added missing includes

Signed-off-by: chiyteng <chiyteng@amazon.com>
2021-08-11 14:11:26 -07:00
Steve Pham 38261d0800 Shorten copyright headers by splitting into 2 lines (#2213)
* Updated all copyright headers to split the longer original copyright line into 2 shorter lines

Signed-off-by: Steve Pham <spham@amazon.com>
2021-07-16 15:25:48 -07:00
Danilo Aimini 1d022907dc Prefabs | Introduce sanitation of prefab doms on loading (#1929)
* Update PrefabLoader to sanitize ingested prefabs and have core systems operate with default values

Signed-off-by: sconel <sconel@amazon.com>
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Remove IsExplicitDefault implementation to avoid confusion (since the function isn't virtual).
Avoid copying PrefabDoms over in SanitizeLoadTemplate.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Address naming and commenting concerns from PR reviews.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Fix to error detection code

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Add support for all uuid formats for zero check.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

Co-authored-by: sconel <sconel@amazon.com>
2021-07-09 16:22:38 -07:00
Steve Pham b4a2edec6a Final update copyright headers to reference license files at the repo root (#1693)
* 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>
2021-06-30 19:51:55 -07:00
Danilo Aimini 9b6ef150ff LYN-2480 | Minor fixes to the Prefab system (#1581)
Remove warning when entities that aren't registered to instances get passed to the Prefab Undo Cache (just ignore them to avoid noise in the console).
Also avoid marking templates dirty when they are added.
2021-06-25 08:53:25 -07:00
Steve Pham 70042fcdcd O3DE Copyright Updates for Linux Foundation (#1504) 2021-06-23 10:55:22 -07:00
Danilo Aimini 80f62d0523 LYN-3708 | Optimize Prefab instance propagation to stabilize UX (#700)
* 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.
2021-06-08 10:44:20 -07:00
Danilo Aimini fda28bb7b2 LYN-1818 | [USE CASE] Reparenting between different prefab instances by drag/drop in the Outliner (#1088)
* 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.
2021-06-03 14:02:40 -07:00
srikappa a9d030b454 Merge branch 'main' into DetachPrefab 2021-06-01 11:12:52 -07:00
Mike Balfour 96905a26d7 Add support for AP-compliant relative paths (#998)
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.
2021-05-28 09:57:17 -05:00
srikappa 57913d8378 A couple of bug fixes 2021-05-27 18:19:28 -07:00
srikappa 886fe22b16 Merge branch 'main' into Prefab/CreatePrefab 2021-05-10 12:31:18 -07:00
srikappa 4994103627 Add const ref function parameters as needed 2021-05-10 11:58:54 -07:00
daimini 47001dc0c3 Merge main 2021-05-07 16:42:51 -07:00
srikappa eb8084d3f6 Initial draft for getting instantiation to work immediately after creation is undone 2021-05-07 16:21:23 -07:00
srikappa-amzn a5ccfa6053 Merge pull request #456 from aws-lumberyard-dev/Prefab/CreatePrefab
Fix undo for nested prefab creation by providing link patches to the undo node
2021-05-04 13:20:37 -07:00
AMZN-koppersr 5eeeaf4346 Fixed several release build compile errors. 2021-05-01 13:26:54 -07:00
daimini 7f971f726d Merge branch 'main' into Prefab/Instantiate/Loop 2021-04-29 17:05:17 -07:00
srikappa d433cd623b Fix undo for nested prefab creation by providing link patches to the undo node 2021-04-29 17:02:44 -07:00
srikappa 6947e8fe29 Added an IsObject check for nested instance DOM during link creation that happens during prefab loading 2021-04-28 12:14:55 -07:00
daimini b758a1553f GetTemplateIdFromFilePath now asserts if it's passed an absolute path. This is helpful for debugging, since the function would silently fail even if the file was actually loaded. 2021-04-27 17:21:33 -07:00
srikappa 26604fd66c Merge branch 'main' into Prefab/CreatePrefab 2021-04-27 15:41:04 -07:00
srikappa 06803040ac Fixed an assert during loading a level with prefabs 2021-04-27 15:36:44 -07:00
AMZN-daimini e772afa06e Merge pull request #226 from aws-lumberyard-dev/Prefab/Instantiate/Setup
KEYSTONE USE CASE | Instantiate Prefab
2021-04-23 09:23:31 -07:00
srikappa a9af90be5a Removed the shouldPropagateTemplateChanges flag to revisit optimization later and fixed some function comments 2021-04-22 17:01:29 -07:00
srikappa 3b3b4305c1 Merge branch 'main' into Prefab/CreatePrefab 2021-04-22 14:54:01 -07:00
srikappa 17dbe55189 Added undo and redo support for nested prefab creation 2021-04-22 13:57:08 -07:00
daimini ca8d6f8818 Instantiate Prefab 2021-04-21 17:42:33 -07:00
AMZN-daimini 62bc7a66bb Remove the Level Inspector from Prefab mode and move behavior to Entity Inspector. (#149)
* Remove Level Inspector from Prefab mode, and integrate the same behavior in the Entity Inspector

* Show prefab name in level entity row of the Outliner. Allow Ui Handlers to prevent renaming.

* Separate setting the prefab's template path and the container entity name.

* Disable reparenting to root level

* Disable the ability to rename the level entity.

* Fixes as per Ram's review
2021-04-20 16:22:34 -07:00
srikappa f3ff5ec886 Add helper method for adding link in CreatePrefab 2021-04-19 11:05:28 -07:00
srikappa 889158e3a9 A couple of minor fixes 2021-04-19 09:53:45 -07:00
srikappa 778d60bd0c Replaced unique instance queue with checks in template to instance mapper 2021-04-15 18:45:48 -07:00
srikappa a371edd07f Initial commit of CreatePrefab work 2021-04-14 17:26:14 -07:00
alexpete 1044dc3da1 Integrating github/staging through commit ab87ed9 2021-04-09 11:27:37 -07:00
alexpete c2cbd430fe Integrating up through commit 90f050496 2021-04-07 14:03:29 -07:00
alexpete 75dc720198 Integrating latest 47acbe8 2021-03-25 13:57:57 -07:00
alexpete a10351f38d Initial commit 2021-03-08 14:30:57 -08:00