Commit Graph

258 Commits

Author SHA1 Message Date
Esteban Papp 2f2bbc7d43 no message
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
2021-07-13 11:02:16 -07:00
Chris Galvan e924ed0b86 Merged stabilization/2106 to development; Resolved merge conflicts
Signed-off-by: Chris Galvan <chgalvan@amazon.com>
2021-07-12 10:45:23 -05:00
greerdv 504201aef2 Merge pull request #2036 from aws-lumberyard-dev/lua-scene-queries
Lua scene queries
2021-07-12 11:57:51 +01: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
moraaar 4475528df2 Fixed Event Hander's copy constructor and copy assignments
It was missing to save the event before connecting to it. (#2026)

Signed-off-by: moraaar <moraaar@amazon.com>
2021-07-09 11:48:04 -07:00
greerdv c7b3a06c6b expose scene queries to lua
Signed-off-by: greerdv <greerdv@amazon.com>
2021-07-09 19:24:09 +01:00
lumberyard-employee-dm 8a76ec713e Updated the SettingsRegistry Specialization tag name max size to 64 (#2016)
The tag name max size should match the maximum size of a project name,
since the project name is automatically added as a specialization tag in
the settings registry when loading .setreg files from within the
<ExecutableDirectory>/Registry directory

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
2021-07-09 12:41:43 -05:00
Esteban Papp d075d5f7b5 fix AzGenericTypeInfo template handling with clang 12+ (#833) (#1947)
Co-authored-by: Tom spot Callaway <spot@fedoraproject.org>
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

Co-authored-by: Tom "spot" Callaway <72474383+spotaws@users.noreply.github.com>
Co-authored-by: Tom spot Callaway <spot@fedoraproject.org>
2021-07-08 11:29:55 -07:00
hultonha 2ea9bfb144 merge stabilization/2106 into development
Signed-off-by: hultonha <hultonha@amazon.co.uk>
2021-07-06 17:34:04 +01:00
Sandeep 4c684b1a10 Merge pull request #1657 from aws-lumberyard-dev/carlitosan/scriptcanvas/prefabs
Initial prefab integration
2021-07-02 14:05:25 -07:00
Chris Galvan d7574777a8 Resolved merge conflicts
Signed-off-by: Chris Galvan <chgalvan@amazon.com>
2021-07-02 12:42:44 -05:00
Mike Balfour d34d088191 Miscellaneous prefab/converter bugfixes to support TrackView (#1701)
This has a small bundle of bugfixes and improvements all based around improving prefab TrackView support:

* JsonMerger - improved the error message when patch remove operations fail to make the specific failure more obvious
Instance - swapped the order of destroying entities vs clearing the lookup tables so that lookups still produce valid results during destruction. (This could happen while creating undo caches)
* InstanceEntityIdMapper - in the case where an id isn't found, it now returns an invalid id instead of an "attempted-valid" one that still generally turned out to be not-valid
* PrefabUndo - downgraded a potential crash to an error message if for some reason the patch contains changes to an entity that doesn't currently have an alias. (This case can be caused occasionally by other bugs and error conditions)
* EditorSequenceComponent - downgraded a potential crash to an assert for the times when it tries to remove components, fails, but thinks it succeeded. (This case can currently be caused by using Maestro with Prefabs enabled)
* EditorSequenceAgentComponent - added an undo cache refresh whenever the component deletes itself, so that deleting itself during an EditorSequenceComponent destruction chain of events leaves the undo cache in the correct state.
* SliceConverter - fixed the conversion of entity references in top-level slice instance entities that refer down to nested slice entities. There was a chicken-and-egg problem in terms of which entities need to be created first to make the references and the prefab patching & serialization happy. This was worked around by creating placeholder top-level entities, then the nested slice entities, then replacing the top-level entities with the fully-realized ones.

Specific changes:
* Added more informative error message.

Signed-off-by: mbalfour <mbalfour@amazon.com>
(cherry picked from commit 672608a6c833c07295996cd9b3449825222b74d0)

* Changed the error condition to produce a "valid" invalid id instead of a deterministic but not-valid id

Signed-off-by: mbalfour <mbalfour@amazon.com>
(cherry picked from commit 3673950c949de8e067b32ddafaffd07e648a13d8)

* Guard against invalid reference assert/crash

Signed-off-by: mbalfour <mbalfour@amazon.com>
(cherry picked from commit 268d4ef3447f268a1372d07e028b9e67bac5c64e)

* Downgrade an invalid reference crash to an assert

Signed-off-by: mbalfour <mbalfour@amazon.com>
(cherry picked from commit 38c9303770845f4e863273dd6fb8fc7e83380425)

* Improved logic for handling entity references across nested slices.

Signed-off-by: mbalfour <mbalfour@amazon.com>
(cherry picked from commit 7e89a016d95fb72cb5f119e1e3768daa60e6bfb4)

* Changed order of entities.clear() call so that instance lookups are still valid during entity destruction.

Signed-off-by: mbalfour <mbalfour@amazon.com>

* Add undo cache notification when removing Maestro components.

Signed-off-by: mbalfour <mbalfour@amazon.com>
2021-07-01 13:53:17 -05:00
chcurran 2281330a7c merge latest
Signed-off-by: chcurran <82187351+carlitosan@users.noreply.github.com>
2021-06-30 20:42:41 -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
chcurran 0136c92467 PR white space feedback, better Lua print error message, fix ACM static variable culling
Signed-off-by: chcurran <82187351+carlitosan@users.noreply.github.com>
2021-06-30 16:55:26 -07:00
chcurran 5b7b989733 use more constexpr in ScriptCanvasAttributes.h, remove superfluous string use in SC user data serialization
Signed-off-by: chcurran <82187351+carlitosan@users.noreply.github.com>
2021-06-30 11:44:25 -07:00
chcurran 9d9205d067 SC user nodeables now use __index method does not report error on (allowable) nil table entries LYN-3664
Signed-off-by: chcurran <82187351+carlitosan@users.noreply.github.com>
2021-06-29 18:42:32 -07:00
Esteban Papp 9f0bbf3b74 SPEC-7531 Change Code/CryEngine to Code/Legacy (#1634)
* git mv Code\CryEngine Code\Legacy
* redirecting CMakeLists.txt
* fixing uic warning
* Some more CryEngine mentions
* validation scripts

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
2021-06-29 13:51:24 -07:00
Gene Walters 4e14c0069b Merge branch 'upstream/stabilization/2106' into genewalt/gitflow_210628 2021-06-28 19:09:20 -07:00
amzn-mgwynn ce955715a8 Merge pull request #1543 from aws-lumberyard-dev/native-ui-changes
More specific component error messaging and modes for native UI to prevent blocking dialog in some applications
2021-06-25 19:18:03 -04:00
mgwynn 6721485946 Added parameter names to virtual function definitions for intellisense 2021-06-25 17:03:02 -04:00
Terry Michaels 21ebff5709 Updated help search and all docs.o3de.org links to o3de.org (#1594) 2021-06-25 15:23:57 -05:00
mgwynn 692c993bdb Incorporating review comments. Adding nativeUI setting for launchers. 2021-06-25 15:34:32 -04:00
Benjamin Jillich bf0816fb69 [LYN-4574] [LYN-4603] [LYN-4669] Saving motions and actors to json-based .assetinfo files in the Animation Editor fails (#1509)
* Fixes saving motions from within the Animation Editor
* Fixes saving actors from within the Animation Editor
* The motion event chunk of the .motion file format now also stores the event data as json (rather than XML) reducing motion file sizes (Example: 60KB motion went down to 49KB, containing only 4 motion events from 2 tracks).
* Fully backward compatible
* New motion meta data rule stores the event data directly rather than command strings or objects. This is the way that aligns with the Json paradigm and as side-effect bypasses the optionals that we use for the commands which fixes the issue.

* [LYN-4574] Adding new motion event meta data rule that stores the event data directly rather than via commands to align with the Json paradigm
* [LYN-4574] Preparing motion, event table and event track for Json serialization
* [LYN-4574] New chunk to store motion event data in Json format (fully backward compatible to XML)
* [LYN-4669] Json: Empty AZStd::vector<AZStd::shared_ptr<T>> serializes into 1x element with nullptr as data
* [LYN-4603] EMotion FX: Cannot save actors with physics or simulated object setup in Json format
2021-06-25 11:47:09 +02:00
mgwynn fb3940fa31 More specific component error messaging and modes for native UI to prevent blocking dialog in some applications 2021-06-23 21:05:17 -04:00
Terry Michaels 1e457928f5 Update help URLs and remove unneeded links (#1520) 2021-06-23 14:42:33 -05:00
Steve Pham 70042fcdcd O3DE Copyright Updates for Linux Foundation (#1504) 2021-06-23 10:55:22 -07:00
mbalfour df648db62e Merge branch 'stabilization/2106' into mbalfour/gitflow_210622
# Conflicts:
#	Code/Framework/AzQtComponents/AzQtComponents/Components/Style.cpp
#	Code/Framework/AzToolsFramework/AzToolsFramework/Viewport/ViewportMessages.h
#	Gems/AWSCore/Code/Source/Editor/UI/AWSCoreEditorMenu.cpp
2021-06-22 12:55:18 -05:00
Benjamin Jillich 7d5a7b47ac [LYN-3717] When pulling in an actor FBX, two entities are spawned & [ATOM-15258] Clicking and Dragging fbx file into viewport produces 2 entities (#1392)
* [LYN-3717] When pulling in an actor FBX, two entities are spawned & [ATOM-15258] Clicking and Dragging fbx file into viewport produces 2 entities
* Added another operation to the CanSpawnEntityForProduct that checks the other products and can veto the creation process.
* The model product will not create an entity in case there is already an actor exported, which prevents the issue reported by two different teams/users.
2021-06-22 14:12:42 +02:00
nvsickle e55580af57 Merge remote-tracking branch 'upstream/stabilization/2106' into nvsickle/MergeStabilizationJun18 2021-06-18 13:25:53 -07:00
Chris Burel 6d0ef1cf57 Avoid reading from a destroyed variable (#1347)
This code iterates over the items in a vector, and if one case is met,
it mutates that same vector. This invalidates the object, as the place
where that object used to be has been moved.
2021-06-17 17:54:10 -07:00
lumberyard-employee-dm 7dabe8b6e9 Updated Several Engine Gem's CMakeLists.txt to add themselves as required Gems (#1262)
* Fixed organization of the AssetProcessor SourceAssetBrowser

Assets within the Engine Root were grouped under a '/' entry.
That has been fixed to use the relative path within the engine root for
those assets
Assets outside of the Engine Root, but on the same drive were using
absolute paths before. Now there are child entries that navigate up the
directory hierarchy to those asset locations

* Added ly_enable_gems call to Atom gems targets that are required

The DefaultLevel.prefab contains several Atom components, that require
the Atom RHI, RPI, Common_Feature, ShaderBuilder and AtomLyIntegration CommonFeatures
gems to be enabled in order to successfully process in the
AssetProcessor.

* Added ly_enable_gems call to make the Camera gem required in Tools,
Builders and Clients.

This is needed as the DefaultLevel.prefab contains an Editor Camera
Component

* Adding the ly_enable_gem call to make the Maestro gem required

CrySystem currently requires Maestro to be enabled in order to
initialize

* Added ly_enable_gems call to the SceneProcessing gem to make it required

The SceneCore and SceneData libraries that are part of the core engine
Code folder requires the SceneProcessing gem to be enabled in order to
invoke the InitializeDynamicModule hooks in DllMain.cpp in order to
initialize those libraries.

* Fixed bad argument in comment for Prefab CMakeLists.txt

* Fixed Assert in Asset Builders due to the Atom RPI Builder

The Atom RPI Builder was enabling the Asset Catalog for the ScriptAsset a second time

The Atom Feature Common EditorSystemCommonComponent.cpp which also loads
in the AssetBuilder is enabling the Asset Catalog for the ScriptAsset

Added BehaviorContext reflection to the OutputDeviceTransformType enum
to fix the BehaviorContext errors about reflecting a method that returns
such an enum

* Added TypeId output to the JsonDeserializer report message about missing
ClassData

Previously the report callback would indicate that the target type was
missing Serialization class data, but didn't indicate the TypeId of the
target type

* Added support to the ly_enable_gems function to be able to support
0 gems being enabled.

Updated the Install step for CMake to propagate any ly_enable_gems
within a CMakeLists.txt for a target into the generated CMakeLists.txt
that is made for each installed IMPORTED target

* Adding newline to the end of the Camera Gem CMakeLists.txt

* Fixing target TYPE parameter for actual Gem Modules to use the GEM_MODULE tag instead of MODULE

* Reverting change to the DESTINATION directory for the installed CMakeLists.txt to use the relative path to the installed directory

* Adding the Atom_Bootstrap gem as a required gem

The Client and GameLaunchers required the Atom_Bootstrap gem in order to create the NativeWindow
Added Atom_Feature_Common client module as a runtime dependency of the AtomLyIntegration CommonsFeature client module

* Fixed register.py --all-projects-path and --all-gems-path arguments to
NOT register projects or gems that are within a template folder
Fixed reading of old pre-1.0 o3de_manifest.json files where the
"engines" key was a json array

* Changed how the relative target source directory is calculated when that source directroy resides outside of the engine root.
The final dirname component is used with a unique SHA256 has to form a <dirname>-<8 char SHA256> folder for installing files into

* Adding newline to the end of Atom_Bootstrap CMakeLists.txt

* Moving ly_enable_gems variants for Tools and Builders inside of PAL_TRAIT_BUILD_HOST_TOOLS block

* Adding a comment to AWSCore.ResourceMappingTool target to indicate that it is not a GEM_MODULE.
Furthermore it cannot be loaded with the Gem system because the library is in a different directory the executable
2021-06-17 13:58:20 -05:00
AMZN-koppersr 6b08ab6e03 Merge branch 'stabilization/2106' into JsonSerialization/ArrayDefaultsFix 2021-06-17 09:32:43 -07:00
AMZN-koppersr 1b1a5a28f4 Using zero-initializer for defaults in the Json Serializer instead of explicit values 2021-06-16 17:26:14 -07:00
AMZN-koppersr ddc60041d3 Addressing PR feedback 2021-06-16 16:40:46 -07:00
Tom Hulton-Harrop d9b1ccd323 Add align grid button to Viewport UI (#1311)
* first pass of adding grid snapping button

* update to request current grid size

* show/hide snapping option based on selection

* small tidy-up changes

* small updates following review feedback

* added some unit tests for snapping functionality and some small tidy-up/refactoring

* small refactor to ensure snap to grid ui only appears with snapping enabled

* add missing include to resolve build error

* fixes for build

* add & to make compiler happy
2021-06-16 12:58:01 +01:00
AMZN-koppersr 780dd0df9f Container fixes for the Json Serialization
These changes fix the following:
- Containers treat new values as new objects and make sure they're initialized.
- Fixed sized containers behave slightly different and will initialize all values when a new fixed sized container is created.
- Loading any values to a container will now return PartialDefaults instead of defaults used as adding any value to a container no longer makes the container a default as the default is always an empty container.
- The previous doesn't apply to fixed sized containers as those containers are always considered to have the exact number of values they can hold.
2021-06-15 14:14:27 -07:00
AMZN-koppersr f00fa26e12 Separated initializing new and all objects in the Json Serialization
Introduced OperationFlags::InitializeNewInstance to the Json Serialization which allows custom json serializers to indicate that they need to set defaults only to new instances. Objects created to fill in a pointer are considered new objects and serializer can use the new ContinuationFlags::LoadAsNewInstance to also inform that the load is happening on a new object. Serializer that use the InitializeNewInstance flag know that a new object is begin initialized if they're called with an explicit default object.
2021-06-15 14:14:24 -07:00
AMZN-koppersr 08abc497f3 Fixed initialization of math types for Json Serialization
Several math types in AzCore deliberately don't initialize through a constructor. This set of changes make sure that they still get properly initialized in the Json Serialization instead having random values.
2021-06-15 14:14:16 -07:00
AMZN-koppersr 716e99a8a7 Reverted string change because it cause incorrect string sizes. 2021-06-15 14:14:08 -07:00
AMZN-koppersr a98355e000 Fix PODs not initializing in Json Serialization
When pointers are used new instances are created for pod types, which will have random values at that point. The Json Serialization did not set a value for these if they were explicitly set to defaults. This change adds initialization for explicit defaults in the bool, integer and double serializer plus unit tests to verify.
2021-06-15 14:14:04 -07:00
AMZN-koppersr 6f50207b06 Updated the unit tests for the Json Serialization array fix 2021-06-15 14:14:00 -07:00
Yuriy Toporovskyy 3c46a72672 Bug fix: handle the case where a container has only default elements 2021-06-15 14:13:56 -07:00
chcurran 9f7f6e84a4 Merge branch 'stabilization/2106' of https://github.com/aws-lumberyard/o3de into carlito/stabilization/2106 2021-06-15 12:10:10 -07:00
Mike Balfour ab3aa904f0 Fixed misc slice conversion bugs
* Fixed crash caused by nesting the same slice twice
If the same slice is nested at multiple levels in the same slice hierarchy, the second conversion would reregister the prefab and crash.  Now that case is detected and the slice isn't reconverted.

* Fixed json array patches where multiple elements are removed.
The patches now generate removals from back to front, instead of front to back, so that the indices remain valid as each patch is applied.
2021-06-15 14:00:47 -05:00
mnaumov 9ca0e731f4 Merge remote-tracking branch 'upstream/stabilization/2106' into mnaumov/StabilizationJun15
# Conflicts:
#	Code/CryEngine/CrySystem/LevelSystem/LevelSystem.cpp
2021-06-15 10:41:13 -07:00
Alex Peterson ecded991b5 Display error when unable to start Python
Added AzFramework Application, logging, unit tests
2021-06-14 17:02:22 -07:00
yuriy0 12c7391bd7 Bug fix: correct RTTI for AttributeInvocable (#1004)
* Bug fix: correct RTTI for AttributeInvocable

* Allow test case to crash if RTTI is wrong

* Revert "Allow test case to crash if RTTI is wrong"

Based on PR feedback, this change adds no value to the test and is confusing.

This reverts commit 6c36065c3759d857cc16ab011d09167261181141.

* Remove perhaps confusing comments and add a more to the point comment

Co-authored-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
2021-06-14 17:29:19 -05:00
chcurran 10081fefb9 Remove unwanted entries from node palette 2021-06-11 16:28:34 -07:00
greerdv 3895c93e04 avoid some divisions by zero in simd math types 2021-06-11 22:05:37 +01:00