Commit Graph

338 Commits

Author SHA1 Message Date
chiyenteng 90503f2bef Remove error message from InMemorySpawnableAssetContainer (#7499)
* Remove error message from InMemorySpawnableAssetContainer

Signed-off-by: chiyenteng <82238204+chiyenteng@users.noreply.github.com>

* Fix nits

Signed-off-by: chiyenteng <82238204+chiyenteng@users.noreply.github.com>
2022-02-08 15:25:35 -08:00
Danilo Aimini 48313cd6de Remove const reference to prevent issues in nightly builds. (#7491)
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
2022-02-08 12:40:10 -08:00
srikappa-amzn 1db12ca463 Always store LinkIds during prefab instance serialization except when saving to disk (#7444)
* Always store prefab instance linkIds to DOM except for saving to disk

Signed-off-by: srikappa-amzn <82230713+srikappa-amzn@users.noreply.github.com>

* Added more checks to remove linkIds from templates

Signed-off-by: srikappa-amzn <82230713+srikappa-amzn@users.noreply.github.com>

* Remove additional check to remove LinkId during template update

Signed-off-by: srikappa-amzn <82230713+srikappa-amzn@users.noreply.github.com>
2022-02-07 17:59:13 -08:00
Danilo Aimini dc6d8ab2ba Fix conversion issues blocking nightly builds.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
2022-02-04 17:21:48 -08:00
Allen Jackson 76b2932cae {lyn7307} disable saving procedural prefabs in the Editor (#4877)
disable saving procedural prefabs in the Editor since the templates are backed by asset files that will change outside the Editor


Signed-off-by: jackalbe <23512001+jackalbe@users.noreply.github.com>
2022-02-04 08:50:14 -06:00
Danilo Aimini 69c8ebd7fb Prefabs UI | Finalize RootAliasPath as a standardized instance handle system, and refactor PrefabFocusHandler to take advantage of it. (#7365)
* Move the RootAliasPath class definition to the Prefab EOS. Introduce utility functions to enable using the path as an instance handler in UI.

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

* Refactor the PrefabFocusHandler to use the utility functions that were introduced to the Prefab EOS. Remove the m_instanceFocusHierarchy from the Focus Handler, and simplify calls for performance.

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

* Minor adjustments after PR discussion

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

* Silly mistake in function simplification. Turns out == and != are different.

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

* Fixed doxygen comments

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

* Add numeric cast when storing result of AZStd::distance to int.

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

* Restore additional checks in FocusOnparentOfFocusedPrefab that got removed during merge.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
2022-02-03 11:13:19 -08:00
Danilo Aimini daeab4bbb1 Focus Mode | Switch instance referencing in Prefab Focus Handler to use more reliable Instance handles (#7304)
* Add function to Prefab Instances allowing to get a reference to a nested instance by alias.

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

* Refactor the Prefab Focus Handler to use RootAliasPaths to store the reference to the currently focused prefab instance instead of the previous method (entityId of the prefab container).

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

* Use existing FindNestedInstance method instead of adding new one.

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

* Minor fixes to style and comments

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

* Removing indexing in GetInstanceReferenceFromRootAliasPath, turn variables into constants where possible.

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

* Modified the Prefab Focus test fixture to ensure the entity hierarchy is generated under the Prefab EOS, allowing tests to work with the new implementation of the focus mode handler.

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

* Ensure RootAliasPath is iterated by reference in GetInstanceReferenceFromRootAliasPath

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
2022-02-02 09:17:59 -08:00
AMZN-koppersr 3a08a3b325 Removed some unused local variables.
Signed-off-by: AMZN-koppersr <82230785+AMZN-koppersr@users.noreply.github.com>
2022-01-27 12:38:57 -08:00
AMZN-koppersr 94919fe270 Moved Serialize Context retrieval out of a loop and expanded an error message in InMemorySpawnableAssetContainer::LoadReferencedAssets.
Signed-off-by: AMZN-koppersr <82230785+AMZN-koppersr@users.noreply.github.com>
2022-01-27 09:47:12 -08:00
AMZN-koppersr 498e5b738f Removed SetAutoLoadBehavior from InMemorySpawnableAssetContainer.
These calls didn't have any practical effect and created confusion, so they were removed.

Signed-off-by: AMZN-koppersr <82230785+AMZN-koppersr@users.noreply.github.com>
2022-01-26 16:40:53 -08:00
AMZN-koppersr 27a75fa6a1 Addressing feedback for the Play In Editor missing asset fixes.
- Deduplicated code for StoreInstanceInPrefabDom.
- Used QueueLoad to load an asset instead of starting a load by getting a new asset instance.
- Extended the error information when failing to load an asset.
- RefreshPrefabDom no longer returns a boolean as it wasn't used.

Signed-off-by: AMZN-koppersr <82230785+AMZN-koppersr@users.noreply.github.com>
2022-01-25 18:15:09 -08:00
AMZN-koppersr e27a666bac Fixed missing assets when entering Play-In-Editor.
At the root the problem is that some editor-only components store information to construct an asset for the runtime component but not the asset itself. This behavior caused the assets to not be correctly detected in two places.

The first place was due to the recent move to PrefDocument to avoid repeated (de)serialization of the PrefabDOM when converting to spawnables. Due to the caching the change from editor-only component to runtime component didn't record the new asset. This has been fixed by allowing assets to be collected on store as well and to check the cache validity when retrieving the list of referenced assets.

The second problem was with loading assets from the in-memory spawnable that's created for Play-In-Editor. Because the newly created assets wouldn't be loaded they need to be explicitly loaded. The original code used the collected list of assets from the PrefabDocument and checked if they were loaded, depending on hot-reloading to trigger a reload on the actual asset. This turned out to not be universally applicable, so instead the Serialize Context is now used to find all the assets that aren't loaded yet and queues a load. This is a bit more expensive to do, but to offset this cost checks are done to only do any operations on assets that haven't been loaded yet which reduces the number of calls to the Asset Manager.

Signed-off-by: AMZN-koppersr <82230785+AMZN-koppersr@users.noreply.github.com>
2022-01-25 10:11:38 -08:00
Daniel Edwards 0a5f472f43 Clang 13: Fix build errors ...
... due to local variables only being written to (but never read).

Signed-off-by: Daniel Edwards <dev@danieledwards.de>
2022-01-23 22:29:03 +01:00
chiyenteng dd7706f9fe Fire OnEditorEntityCreated notification in SandboxIntegrationManager::CreateNewEntityAtPosition (#7079)
* Ensure to fire OnEditorEntityCreated notification in SandboxIntegrationManager::CreateNewEntityAtPosition

Signed-off-by: chiyenteng <82238204+chiyenteng@users.noreply.github.com>

* Ensure to fire OnEditorEntityCreated notification in SandboxIntegrationManager::CreateNewEntityAtPosition

Signed-off-by: chiyenteng <82238204+chiyenteng@users.noreply.github.com>

* convert test AreaNodes_DependentComponentsAdded to use prefab system

Signed-off-by: chiyenteng <82238204+chiyenteng@users.noreply.github.com>

* Prevent SetupEditorEntity being called twice

Signed-off-by: chiyenteng <82238204+chiyenteng@users.noreply.github.com>
2022-01-21 16:23:31 -08:00
Danilo Aimini 86a0be2561 Prevent read-only entities from being duplicated via prefab workflows (#7076)
* Refactor the sanitation of the selection for prefab operations to prevent read-only entities from being deleted or duplicated.

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

* Fix comment.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
2022-01-21 12:35:29 -08:00
Mikhail Naumov f7c120b4b7 PR feedback
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
2022-01-19 15:15:15 -06:00
Mikhail Naumov 3506a39759 Merge branch 'mnaumov/FixingEOOrdering' of https://github.com/aws-lumberyard-dev/o3de into mnaumov/FixingEOOrdering_signofffix
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
2022-01-19 15:01:21 -06:00
Nicholas Van Sickle 74e4055195 Fix Prefab instance assets not preloading (#6834)
PrefabCatchmentProcessor::ProcessPrefab was no longer updating the ProcessedObjectStore's referenced object list, this change exposes the referenced asset list in the new PrefabDocument API and uses them to update the referenced asset list.

Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
2022-01-12 15:23:06 -08:00
srikappa-amzn 13bc91aa77 Split editor entity activation from PrefabSystemComponent (#6787)
* Split editor entity activation from PrefabSystemComponent

Signed-off-by: srikappa-amzn <82230713+srikappa-amzn@users.noreply.github.com>

* Fixed a small typo

Signed-off-by: srikappa-amzn <82230713+srikappa-amzn@users.noreply.github.com>

* Pass entity activation callback during prefab instantiation for failing tests

Signed-off-by: srikappa-amzn <82230713+srikappa-amzn@users.noreply.github.com>
2022-01-11 16:53:46 -08:00
AMZN-koppersr e2a960e442 Fixed a sync issue when a PrefaDOM was taken from a PrefabDocument.
When a PrefabDOM was taken from a PrefabDocument the Instance would continue to have the data from the original Prefab, which means they'd no longer be in sync as the Prefab would be empty. This was fixed by resetting the Instance so they're both clear.

Signed-off-by: AMZN-koppersr <82230785+AMZN-koppersr@users.noreply.github.com>
2022-01-05 17:21:15 -08:00
AMZN-koppersr 31e51f8c3a Minor updates to the Spawnable Entity Aliases in response to PR feedback.
Signed-off-by: AMZN-koppersr <82230785+AMZN-koppersr@users.noreply.github.com>
2022-01-05 10:47:23 -08:00
AMZN-koppersr 34edd4d0c0 Fixed post rebase Spawnable issues.
Signed-off-by: AMZN-koppersr <82230785+AMZN-koppersr@users.noreply.github.com>
2021-12-16 18:06:25 -08:00
AMZN-koppersr 43c42f63c6 Cleaned up some unused code in the Prefab processor.
Signed-off-by: AMZN-koppersr <82230785+AMZN-koppersr@users.noreply.github.com>
2021-12-16 16:01:04 -08:00
AMZN-koppersr 7b5868d198 Added additional functions to edit prefabs during processing to PrefabDocument.
Signed-off-by: AMZN-koppersr <82230785+AMZN-koppersr@users.noreply.github.com>
2021-12-16 16:00:54 -08:00
AMZN-koppersr b8e3b27ea9 Added a PrefabDocument for Prefab to simplify working with Prefabs during conversion to spawnables.
The new PrefabDocument handles the Prefab and the Instance. This reduces the number of times the Instance has to be reloaded from the Prefab and keeps the entity ids stable between steps. The intention is for all the PrefabDocument to conceptually manipulate the Prefab DOM, although behind the scenes it will manipulate the Instance for now. The Instance should only be directly used in case the PrefabDocument doesn't provide the functionality yet.

Signed-off-by: AMZN-koppersr <82230785+AMZN-koppersr@users.noreply.github.com>
2021-12-16 16:00:00 -08:00
AMZN-koppersr 9def902e1c Fixes up parents for entities that are moved to another Prefab.
This fixes issues with entities that are moved to another Prefab and have a parent that was also moved to the same Prefab. Entities that have their parent moved to another Prefab continue to work as is because a placeholder entity is always left behind. Entities that are moved to another Prefab but have a parent that's still in the original Prefab will currently not work correctly. This will be a addressed in a future commit.

Signed-off-by: AMZN-koppersr <82230785+AMZN-koppersr@users.noreply.github.com>
2021-12-16 15:35:51 -08:00
AMZN-koppersr 76a913882c Resolving links in the Prefab Processing Stack now also makes sure that entity ids of aliased entities are appropriately unique or match.
Signed-off-by: AMZN-koppersr <82230785+AMZN-koppersr@users.noreply.github.com>
2021-12-16 15:35:47 -08:00
AMZN-koppersr cbea11c452 Minor performance optimization to Prefab Instance.
Signed-off-by: AMZN-koppersr <82230785+AMZN-koppersr@users.noreply.github.com>
2021-12-16 15:35:43 -08:00
AMZN-koppersr 7e38a5f35c Fixed entity registration issue when setting up Spawnable Entity Aliases.
In some cases entities created for use as a Spawnable Entity Alias would share an entity id with their original. This is no longer working due to a reverse lookup from an entity id to its PrefabDOM. Upon further investigation this turned out to not matter as instances that are created by the PrefabCatchmentProcessor would create new entity ids any way. This cause unexpected behavior at runtime as entity relations may be broken. This will be addressed in a future fix.
Testing the above also highlighted a possible double delete in the builder when aliases were registered. This has also been fixed.

Signed-off-by: AMZN-koppersr <82230785+AMZN-koppersr@users.noreply.github.com>
2021-12-16 15:35:38 -08:00
AMZN-koppersr 016eda6cf1 Fixed infinite recursion when adding prefabs
While processing prefabs into spawnables new prefabs can be added for later processing. Because the new prefabs were immediately added to the list of prefabs it could happen that the new prefabs would be added to the active processor for processing, which could lead to infinite recursion. Adding prefabs while iterating prefabs now delays the addition until the iteration has completed.

Signed-off-by: AMZN-koppersr <82230785+AMZN-koppersr@users.noreply.github.com>
2021-12-16 15:35:33 -08:00
amzn-mike 18cfcd659b Fix missing parent class reflection for ProceduralPrefabSystemComponent (#6413)
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
2021-12-16 07:49:32 -08:00
amzn-mike 71bb200e0a [LYN-7064] Hot Loading of Procedural Prefabs (#4923)
* Prefab hotloading - load and maintain asset references

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>

* Working hotloading

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>

* Clean up code, add comments

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>

* Add missing includes

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>

* Add event for template removal.

Clear ProceduralPrefabSystemComponent lookup when templates are removed.

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>

* Add unit test.

Fix missing include, make sure source name is set

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>

* Fix missing include

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>

* Fix missing include

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>

* Update comments to make ebus event behavior more clear

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>

* Fix missing include

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>

* Fix missing includes

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>

* Fix missing include

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>

* Fix temp directory usage which doesn't work on linux

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>

* Fix temp directory usage which doesn't work on linux

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>

* Use AZ::IO::Path for comparison.  Print paths on failure

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>

* Fix unit test - register asset with catalog so it can be looked up later

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
2021-12-13 12:44:41 -08:00
amzn-mike 45abb9f88e Proc Prefabs: Remove feature toggle (#6348)
* Disable feature flag - redirect proc prefab check to IsPrefabSystemEnabled.

Procedural Prefabs are now on by default when the prefab system is enabled.

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>

* Bump scene builder version to cause all procedural prefabs to rebuild

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>

* Switch to lambda for ebus call

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>

* Remove unused const

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
2021-12-13 11:52:03 -08:00
amzn-mike 8f134a82d1 Procedural Prefabs: Stable transform component ID (#6227)
* Set Procedural Prefab Transform ComponentId to the hash of the file path.

Procedural prefabs needs to have a deterministic transform component ID in order for saved patches still work when the prefab is regenerated.

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>

* Switch to Cityhash instead of XXHash since prefab system is using that elsewhere

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>

* Added unit test

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>

* Fix missing include

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
2021-12-10 11:20:31 -08:00
chiyenteng ca49eedc5f Convert prefab to temp spawnable assets (#6179)
* Convert prefab to temp in-memory spawnable assets

Signed-off-by: chiyenteng <82238204+chiyenteng@users.noreply.github.com>
2021-12-10 10:55:01 -08:00
amzn-mike c63b4eb905 Removing unused variable and fix typo (#6265)
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
2021-12-09 12:53:25 -08:00
Chris Galvan 6532c50c27 Some read-only prefab workflow updates.
Signed-off-by: Chris Galvan <chgalvan@amazon.com>
2021-12-07 17:22:10 -06:00
amzn-mike 7c96bc4f1f Fix loaded procprefabs not going through the asset hint fixup process… (#6077)
* Fix loaded procprefabs not going through the asset hint fixup process for all versions of LoadInstanceFromPrefabDom.

Fixes procprefab asset references not working when pressing Ctrl+G in the editor

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>

* Add unit test

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>

* Add missing include

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
2021-12-07 13:00:47 -06:00
Danilo Aimini 476e66d902 LYN-8631 + LYN-8632 | Display appropriate read-only icons and procedural prefabs ui in the Outliner (#6160)
* First step of procedural prefab styling and read-only registration.

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

* WIP - Introduce read-only handler for procedural prefabs (not hooked up)

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

* Introduce read-only entity interface, handler and unit tests.

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

* Introduce temp read-only icon, use new icon hierarchy in Outliner.

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

* Switch from a push paradigm to a pull paradigm - handlers get to implement logic to determine if an entity should be read-only. This allows multiple systems to weigh into whether an entity is read-only.

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

* Fixed to missing call in test

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

* Post-rebase fixes to class name changes

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

* Display a lock icon on top of the entity icon in the Entity Outliner. This icon is added programmatically, which prevents having to alter all Outliner icons and future-proofs this functionality.

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

* Minor style changes to procedural prefabs in the Outliner (use white icon)

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

* Ensure cache is refreshed when the handler is created, and also whenever the focus changes.

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

* Remove Procedural Prefab setreg that was added in the wrong place

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

* Remove redundant function

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

* Fix spacing issue caused by rebase

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

* Change tooltip so that it accurately says "inspect" instead of "edit" for procedural prefabs.

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

* Address minor styling issues mentioned in PR.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
2021-12-06 12:16:16 -08:00
Danilo Aimini 87fb6be964 Fixes to Procedural Prefab instantiation - ensure the container of the procprefab has the correct editor components, and remove limitation to instantiating at the root. (#6147)
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
2021-12-03 15:38:29 -08:00
srikappa-amzn 625fca71ab Prefab/unit tests for deletion (#6034)
* Added tests for deleting entity under level and other prefabs

Signed-off-by: srikappa-amzn <82230713+srikappa-amzn@users.noreply.github.com>

* Added class comments and improved variable names

Signed-off-by: srikappa-amzn <82230713+srikappa-amzn@users.noreply.github.com>

* Called the reflect function of PrefabFocusHandler from PrefabSystemComponent

Signed-off-by: srikappa-amzn <82230713+srikappa-amzn@users.noreply.github.com>

* Added couple of unit tests around entity and prefab deletion

Signed-off-by: srikappa-amzn <82230713+srikappa-amzn@users.noreply.github.com>

* Used engine root path from settings registry as fake path for prefab creation

Signed-off-by: srikappa-amzn <82230713+srikappa-amzn@users.noreply.github.com>

* Added 2 unit tests around deleting prefabs

Signed-off-by: srikappa-amzn <82230713+srikappa-amzn@users.noreply.github.com>
2021-12-02 08:09:28 -08:00
srikappa-amzn 4dd9e94bc3 Add tests for deleting an entity from the level and from another prefab (#5839)
* Added tests for deleting entity under level and other prefabs

Signed-off-by: srikappa-amzn <82230713+srikappa-amzn@users.noreply.github.com>

* Added class comments and improved variable names

Signed-off-by: srikappa-amzn <82230713+srikappa-amzn@users.noreply.github.com>

* Called the reflect function of PrefabFocusHandler from PrefabSystemComponent

Signed-off-by: srikappa-amzn <82230713+srikappa-amzn@users.noreply.github.com>

* Added function comments and made an if statement to be one line

Signed-off-by: srikappa-amzn <82230713+srikappa-amzn@users.noreply.github.com>
2021-11-30 08:20:25 -08:00
Junbo Liang 7086aa1a75 Merge commit 'dbc5d7a8bc5404b80fbc38b6b004aaa1f9e06df9' into junbo/gitflow_211123_o3de 2021-11-23 13:28:04 -08:00
Junbo Liang e2649512b2 Merge commit '4be1e68bad1b627668a4517b00526bba6cc7acea' into junbo/gitflow_211123_o3de 2021-11-23 13:16:55 -08:00
Junbo Liang 6a40d21b66 Merge commit '4ee2f341dc0dc709aedb446b57d5cca61b86160d' into junbo/gitflow_211123_o3de 2021-11-23 13:14:59 -08:00
Esteban Papp dbc5d7a8bc Cherry-pick of Linux deb package to stabilization (#5778)
* Cherry-pick 49e8f35858

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Merging differences from development of other changes that need to be there for deb packaging

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Picks a needed change for the installer

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Fixes warning in mac

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Takes version from environment if defined

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Do not pick up version if it is empty string since that will also break version comparison

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* creating temp directories if they dont exist

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* removing a dependency to itself (Multiplayer.Builders is an alias of Multiplayer.Editor)

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Filters which runtime dependencies are passed from private build dependencies to only those that are actual targets.
This avoids something like a "d3d12" private build dependency from being passed to the runtime dependencies

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
2021-11-19 14:07:25 -08:00
Danilo Aimini 4be1e68bad Fix oversight from recent change to PrefabFocusHandler internals. (#5794)
* Fix oversight from recent change to PrefabFocusHandler internals.

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

* Introduce check for null instance in case this is called before the Prefab Focus Handler is initialized.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
2021-11-19 10:45:06 -08:00
Nicholas Van Sickle 4ee2f341dc Fix several Prefab outliner ordering issues (#5747)
* 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>
2021-11-19 23:35:19 +05:30
puvvadar f65f744358 Merge commit 'ac959bcc01a52f1738e439b0291dfb8b0a73b388' into puvvadar/gitflow_211118_o3de 2021-11-19 09:16:14 -08:00
Danilo Aimini ac959bcc01 Dragging an entity from outside the focused Prefab into it may crash the Editor (#5762)
* Replace Instance References with EntityId of the Prefab Container (WIP)

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

* Use the invalid entity id for the root instance and get the root instance every time to prevent weird Prefab EOS shenanigans.

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

* Revert unnecessary changes, fix IsOwningPrefabBeingFocused to match previous behavior. Disable some tests that no longer apply correctly due to the testing environment not relying on the Prefab EOS.

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

* Fix minor typo in test comment

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
2021-11-18 15:06:58 -08:00