diff --git a/Assets/Engine/Config/engine_core.thread_config b/Assets/Engine/Config/engine_core.thread_config
deleted file mode 100644
index f9183d9174..0000000000
--- a/Assets/Engine/Config/engine_core.thread_config
+++ /dev/null
@@ -1,402 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Assets/Engine/Config/engine_sandbox.thread_config b/Assets/Engine/Config/engine_sandbox.thread_config
deleted file mode 100644
index 7c0dc00b71..0000000000
--- a/Assets/Engine/Config/engine_sandbox.thread_config
+++ /dev/null
@@ -1,128 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/AutomatedTesting/Gem/PythonTests/CMakeLists.txt b/AutomatedTesting/Gem/PythonTests/CMakeLists.txt
index 3124f1048a..3f0827f995 100644
--- a/AutomatedTesting/Gem/PythonTests/CMakeLists.txt
+++ b/AutomatedTesting/Gem/PythonTests/CMakeLists.txt
@@ -123,6 +123,21 @@ if(PAL_TRAIT_BUILD_TESTS_SUPPORTED AND PAL_TRAIT_BUILD_HOST_TOOLS)
)
endif()
+## Prefab ##
+if(PAL_TRAIT_BUILD_TESTS_SUPPORTED AND PAL_TRAIT_BUILD_HOST_TOOLS)
+ ly_add_pytest(
+ NAME AutomatedTesting::PrefabTests
+ TEST_SUITE main
+ TEST_SERIAL
+ PATH ${CMAKE_CURRENT_LIST_DIR}/prefab/TestSuite_Main.py
+ TIMEOUT 1500
+ RUNTIME_DEPENDENCIES
+ Legacy::Editor
+ AZ::AssetProcessor
+ AutomatedTesting.Assets
+ )
+endif()
+
## Editor Python Bindings ##
if(PAL_TRAIT_BUILD_TESTS_SUPPORTED AND PAL_TRAIT_BUILD_HOST_TOOLS)
ly_add_pytest(
diff --git a/AutomatedTesting/Gem/PythonTests/prefab/PrefabLevel_OpensLevelWithEntities.py b/AutomatedTesting/Gem/PythonTests/prefab/PrefabLevel_OpensLevelWithEntities.py
new file mode 100644
index 0000000000..3401c6a0a9
--- /dev/null
+++ b/AutomatedTesting/Gem/PythonTests/prefab/PrefabLevel_OpensLevelWithEntities.py
@@ -0,0 +1,76 @@
+"""
+All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
+its licensors.
+
+For complete copyright and license terms please see the LICENSE at the root of this
+distribution (the "License"). All use of this software is governed by the License,
+or, if provided, by the license below or the license accompanying this file. Do not
+remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+"""
+
+# fmt:off
+class Tests():
+ find_empty_entity = ("Entity: 'EmptyEntity' found", "Entity: 'EmptyEntity' *not* found in level")
+ empty_entity_pos = ("'EmptyEntity' position is at the expected position", "'EmptyEntity' position is *not* at the expected position")
+ find_pxentity = ("Entity: 'EntityWithPxCollider' found", "Entity: 'EntityWithPxCollider' *not* found in level")
+ pxentity_component = ("Entity: 'EntityWithPxCollider' has a Physx Collider", "Entity: 'EntityWithPxCollider' does *not* have a Physx Collider")
+
+# fmt:on
+
+def PrefabLevel_OpensLevelWithEntities():
+ """
+ Opens the level that contains 2 entities, "EmptyEntity" and "EntityWithPxCollider".
+ This test makes sure that both entities exist after opening the level and that:
+ - EmptyEntity is at Position: (10, 20, 30)
+ - EntityWithPxCollider has a PhysXCollider component
+ """
+
+ import os
+ import sys
+
+ from editor_python_test_tools.utils import Report
+ from editor_python_test_tools.utils import TestHelper as helper
+
+ import editor_python_test_tools.hydra_editor_utils as hydra
+
+ import azlmbr.entity as entity
+ import azlmbr.bus as bus
+ from azlmbr.math import Vector3
+
+ EXPECTED_EMPTY_ENTITY_POS = Vector3(10.00, 20.0, 30.0)
+
+ helper.init_idle()
+ helper.open_level("prefab", "PrefabLevel_OpensLevelWithEntities")
+
+ def find_entity(entity_name):
+ searchFilter = entity.SearchFilter()
+ searchFilter.names = [entity_name]
+ entityIds = entity.SearchBus(bus.Broadcast, 'SearchEntities', searchFilter)
+ if entityIds[0].IsValid():
+ return entityIds[0]
+ return None
+#Checks for an entity called "EmptyEntity"
+ helper.wait_for_condition(lambda: find_entity("EmptyEntity").IsValid(), 5.0)
+ empty_entity_id = find_entity("EmptyEntity")
+ Report.result(Tests.find_empty_entity, empty_entity_id.IsValid())
+
+# Checks if the EmptyEntity is in the correct position and if it fails, it will provide the expected postion and the actual postion of the entity in the Editor log
+ empty_entity_pos = azlmbr.components.TransformBus(azlmbr.bus.Event, "GetWorldTranslation", empty_entity_id)
+ is_at_position = empty_entity_pos.IsClose(EXPECTED_EMPTY_ENTITY_POS)
+ Report.result(Tests.empty_entity_pos, is_at_position)
+ if not is_at_position:
+ Report.info(f'Expected position: {EXPECTED_EMPTY_ENTITY_POS.ToString()}, actual position: {empty_entity_pos.ToString()}')
+
+#Checks for an entity called "EntityWithPxCollider" and if it has the PhysX Collider component
+ pxentity = find_entity("EntityWithPxCollider")
+ Report.result(Tests.find_pxentity, pxentity.IsValid())
+
+ pxcollider_id = hydra.get_component_type_id("PhysX Collider")
+ hasComponent = azlmbr.editor.EditorComponentAPIBus(azlmbr.bus.Broadcast, 'HasComponentOfType', pxentity, pxcollider_id)
+ Report.result(Tests.pxentity_component, hasComponent)
+
+if __name__ == "__main__":
+
+ from editor_python_test_tools.utils import Report
+ Report.start_test (PrefabLevel_OpensLevelWithEntities)
diff --git a/AutomatedTesting/Gem/PythonTests/prefab/TestSuite_Main.py b/AutomatedTesting/Gem/PythonTests/prefab/TestSuite_Main.py
new file mode 100644
index 0000000000..51c78a99e2
--- /dev/null
+++ b/AutomatedTesting/Gem/PythonTests/prefab/TestSuite_Main.py
@@ -0,0 +1,35 @@
+"""
+ All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
+ its licensors.
+
+ For complete copyright and license terms please see the LICENSE at the root of this
+ distribution (the "License"). All use of this software is governed by the License,
+ or, if provided, by the license below or the license accompanying this file. Do not
+ remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
+ """
+
+# This suite consists of all test cases that are passing and have been verified.
+
+import pytest
+import os
+import sys
+
+from ly_test_tools import LAUNCHERS
+
+sys.path.append (os.path.dirname (os.path.abspath (__file__)) + '/../automatedtesting_shared')
+
+from base import TestAutomationBase
+
+@pytest.mark.SUITE_main
+@pytest.mark.parametrize("launcher_platform", ['windows_editor'])
+@pytest.mark.parametrize("project", ["AutomatedTesting"])
+class TestAutomation(TestAutomationBase):
+
+ def _run_prefab_test(self, request, workspace, editor, test_module):
+ self._run_test(request, workspace, editor, test_module, ["--regset=/Amazon/Preferences/EnablePrefabSystem=true"])
+
+ def test_PrefabLevel_OpensLevelWithEntities(self, request, workspace, editor, launcher_platform):
+ from . import PrefabLevel_OpensLevelWithEntities as test_module
+ self._run_prefab_test(request, workspace, editor, test_module)
diff --git a/AutomatedTesting/Gem/PythonTests/prefab/__init__.py b/AutomatedTesting/Gem/PythonTests/prefab/__init__.py
new file mode 100644
index 0000000000..79f8fa4422
--- /dev/null
+++ b/AutomatedTesting/Gem/PythonTests/prefab/__init__.py
@@ -0,0 +1,10 @@
+"""
+All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
+its licensors.
+
+For complete copyright and license terms please see the LICENSE at the root of this
+distribution (the "License"). All use of this software is governed by the License,
+or, if provided, by the license below or the license accompanying this file. Do not
+remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+"""
diff --git a/AutomatedTesting/Gem/PythonTests/scripting/Node_HappyPath_DuplicateNode.py b/AutomatedTesting/Gem/PythonTests/scripting/Node_HappyPath_DuplicateNode.py
new file mode 100644
index 0000000000..77d3b2fcde
--- /dev/null
+++ b/AutomatedTesting/Gem/PythonTests/scripting/Node_HappyPath_DuplicateNode.py
@@ -0,0 +1,117 @@
+"""
+All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
+its licensors.
+
+For complete copyright and license terms please see the LICENSE at the root of this
+distribution (the "License"). All use of this software is governed by the License,
+or, if provided, by the license below or the license accompanying this file. Do not
+remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+"""
+
+
+# fmt: off
+class Tests():
+ node_duplicated = ("Successfully duplicated node", "Failed to duplicate the node")
+# fmt: on
+
+
+def Node_HappyPath_DuplicateNode():
+ """
+ Summary:
+ Duplicating node in graph
+
+ Expected Behavior:
+ Upon selecting a node and pressing Ctrl+D, the node will be duplicated
+
+ Test Steps:
+ 1) Open Script Canvas window (Tools > Script Canvas)
+ 2) Open a new graph
+ 3) Add node to graph
+ 4) Duplicate node
+ 5) Verify the node was duplicated6) Verify the node was duplicated
+
+ Note:
+ - This test file must be called from the Open 3D Engine Editor command terminal
+ - Any passed and failed tests are written to the Editor.log file.
+ Parsing the file or running a log_monitor are required to observe the test results.
+
+ :return: None
+ """
+ from PySide2 import QtWidgets, QtTest
+ from PySide2.QtCore import Qt
+
+ from editor_python_test_tools.utils import Report
+ from editor_python_test_tools.utils import TestHelper as helper
+ import editor_python_test_tools.pyside_utils as pyside_utils
+
+ import azlmbr.legacy.general as general
+
+ WAIT_FRAMES = 200
+
+ NODE_NAME = "Print"
+ NODE_CATEGORY = "Debug"
+ EXPECTED_STRING = f"{NODE_NAME} - {NODE_CATEGORY} (2 Selected)"
+
+ def command_line_input(command_str):
+ cmd_action = pyside_utils.find_child_by_pattern(
+ sc_main, {"objectName": "action_ViewCommandLine", "type": QtWidgets.QAction}
+ )
+ cmd_action.trigger()
+ textbox = sc.findChild(QtWidgets.QLineEdit, "commandText")
+ QtTest.QTest.keyClicks(textbox, command_str)
+ QtTest.QTest.keyClick(textbox, Qt.Key_Enter, Qt.NoModifier)
+
+ def grab_title_text():
+ scroll_area = node_inspector.findChild(QtWidgets.QScrollArea, "")
+ QtTest.QTest.keyClick(graph, "a", Qt.ControlModifier, WAIT_FRAMES)
+ background = scroll_area.findChild(QtWidgets.QFrame, "Background")
+ title = background.findChild(QtWidgets.QLabel, "Title")
+ text = title.findChild(QtWidgets.QLabel, "Title")
+ return text.text()
+
+ # 1) Open Script Canvas window (Tools > Script Canvas)
+ general.idle_enable(True)
+ general.open_pane("Script Canvas")
+ helper.wait_for_condition(lambda: general.is_pane_visible("Script Canvas"), 5.0)
+
+ # 2) Open a new graph
+ editor_window = pyside_utils.get_editor_main_window()
+ sc = editor_window.findChild(QtWidgets.QDockWidget, "Script Canvas")
+ sc_main = sc.findChild(QtWidgets.QMainWindow)
+ create_new_graph = pyside_utils.find_child_by_pattern(
+ sc_main, {"objectName": "action_New_Script", "type": QtWidgets.QAction}
+ )
+ if sc.findChild(QtWidgets.QDockWidget, "NodeInspector") is None:
+ action = pyside_utils.find_child_by_pattern(sc, {"text": "Node Inspector", "type": QtWidgets.QAction})
+ action.trigger()
+ node_inspector = sc.findChild(QtWidgets.QDockWidget, "NodeInspector")
+ create_new_graph.trigger()
+
+ # 3) Add node
+ command_line_input("add_node Print")
+
+ # 4) Duplicate node
+ graph_view = sc.findChild(QtWidgets.QFrame, "graphicsViewFrame")
+ graph = graph_view.findChild(QtWidgets.QWidget, "")
+ # There are currently no utilities available to directly duplicate the node,
+ # therefore the node is selected using CTRL+A on the graph to select
+ # it and then CTRL+D to duplicate
+ sc_main.activateWindow()
+ QtTest.QTest.keyClick(graph, "a", Qt.ControlModifier, WAIT_FRAMES)
+ QtTest.QTest.keyClick(graph, "d", Qt.ControlModifier, WAIT_FRAMES)
+
+ # 5) Verify the node was duplicated
+ # As direct interaction with node is not available the text on the label
+ # inside the Node Inspector is validated showing two nodes exist
+ after_dup = grab_title_text()
+ Report.result(Tests.node_duplicated, after_dup == EXPECTED_STRING)
+
+
+if __name__ == "__main__":
+ import ImportPathHelper as imports
+
+ imports.init()
+ from editor_python_test_tools.utils import Report
+
+ Report.start_test(Node_HappyPath_DuplicateNode)
diff --git a/AutomatedTesting/Gem/PythonTests/scripting/TestSuite_Active.py b/AutomatedTesting/Gem/PythonTests/scripting/TestSuite_Active.py
index dda75f0a0c..2cd41d1980 100755
--- a/AutomatedTesting/Gem/PythonTests/scripting/TestSuite_Active.py
+++ b/AutomatedTesting/Gem/PythonTests/scripting/TestSuite_Active.py
@@ -84,7 +84,7 @@ class TestAutomation(TestAutomationBase):
file_system.delete([os.path.join(workspace.paths.project(), "Levels", level)], True, True)
from . import OnEntityActivatedDeactivated_PrintMessage as test_module
self._run_test(request, workspace, editor, test_module)
-
+
@pytest.mark.test_case_id("T92562993")
def test_NodePalette_ClearSelection(self, request, workspace, editor, launcher_platform, project):
from . import NodePalette_ClearSelection as test_module
@@ -122,7 +122,7 @@ class TestAutomation(TestAutomationBase):
def test_NodeInspector_RenameVariable(self, request, workspace, editor, launcher_platform, project):
from . import NodeInspector_RenameVariable as test_module
self._run_test(request, workspace, editor, test_module)
-
+
@pytest.mark.test_case_id("T92569137")
def test_Debugging_TargetMultipleGraphs(self, request, workspace, editor, launcher_platform, project):
from . import Debugging_TargetMultipleGraphs as test_module
@@ -195,7 +195,7 @@ class TestAutomation(TestAutomationBase):
def test_NodeCategory_ExpandOnClick(self, request, workspace, editor, launcher_platform):
from . import NodeCategory_ExpandOnClick as test_module
self._run_test(request, workspace, editor, test_module)
-
+
def test_NodePalette_SearchText_Deletion(self, request, workspace, editor, launcher_platform):
from . import NodePalette_SearchText_Deletion as test_module
self._run_test(request, workspace, editor, test_module)
@@ -204,6 +204,10 @@ class TestAutomation(TestAutomationBase):
from . import VariableManager_UnpinVariableType_Works as test_module
self._run_test(request, workspace, editor, test_module)
+ def test_Node_HappyPath_DuplicateNode(self, request, workspace, editor, launcher_platform):
+ from . import Node_HappyPath_DuplicateNode as test_module
+ self._run_test(request, workspace, editor, test_module)
+
# NOTE: We had to use hydra_test_utils.py, as TestAutomationBase run_test method
# fails because of pyside_utils import
@pytest.mark.SUITE_periodic
diff --git a/AutomatedTesting/Levels/Prefab/PrefabLevel_OpensLevelWithEntities/PrefabLevel_OpensLevelWithEntities.prefab b/AutomatedTesting/Levels/Prefab/PrefabLevel_OpensLevelWithEntities/PrefabLevel_OpensLevelWithEntities.prefab
new file mode 100644
index 0000000000..0776f25935
--- /dev/null
+++ b/AutomatedTesting/Levels/Prefab/PrefabLevel_OpensLevelWithEntities/PrefabLevel_OpensLevelWithEntities.prefab
@@ -0,0 +1,171 @@
+{
+ "Source": "Levels/PrefabLevel_OpensLevelWithEntities/PrefabLevel_OpensLevelWithEntities.prefab",
+ "ContainerEntity": {
+ "Id": "Entity_[403811863694]",
+ "Name": "Level",
+ "Components": {
+ "Component_[10582285743525614098]": {
+ "$type": "SelectionComponent",
+ "Id": 10582285743525614098
+ },
+ "Component_[12253783095375428046]": {
+ "$type": "EditorInspectorComponent",
+ "Id": 12253783095375428046
+ },
+ "Component_[13764860261821571747]": {
+ "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+ "Id": 13764860261821571747,
+ "Parent Entity": ""
+ },
+ "Component_[15844324401733835865]": {
+ "$type": "EditorEntitySortComponent",
+ "Id": 15844324401733835865
+ },
+ "Component_[1605854641405361768]": {
+ "$type": "EditorLockComponent",
+ "Id": 1605854641405361768
+ },
+ "Component_[17698173984524983803]": {
+ "$type": "EditorOnlyEntityComponent",
+ "Id": 17698173984524983803
+ },
+ "Component_[3444251662966224826]": {
+ "$type": "EditorPendingCompositionComponent",
+ "Id": 3444251662966224826
+ },
+ "Component_[4231768881195179982]": {
+ "$type": "EditorVisibilityComponent",
+ "Id": 4231768881195179982
+ },
+ "Component_[4722360315410084479]": {
+ "$type": "EditorDisabledCompositionComponent",
+ "Id": 4722360315410084479
+ },
+ "Component_[7614719100624882952]": {
+ "$type": "EditorPrefabComponent",
+ "Id": 7614719100624882952
+ },
+ "Component_[9585901769691795481]": {
+ "$type": "EditorEntityIconComponent",
+ "Id": 9585901769691795481
+ }
+ },
+ "IsDependencyReady": true
+ },
+ "Entities": {
+ "Entity_[438171602062]": {
+ "Id": "Entity_[438171602062]",
+ "Name": "EntityWithPxCollider",
+ "Components": {
+ "Component_[11161653124805884473]": {
+ "$type": "EditorPendingCompositionComponent",
+ "Id": 11161653124805884473
+ },
+ "Component_[13116773315299882093]": {
+ "$type": "EditorOnlyEntityComponent",
+ "Id": 13116773315299882093
+ },
+ "Component_[15820915681461536711]": {
+ "$type": "EditorVisibilityComponent",
+ "Id": 15820915681461536711
+ },
+ "Component_[2222061938345834243]": {
+ "$type": "SelectionComponent",
+ "Id": 2222061938345834243
+ },
+ "Component_[3861913165076405600]": {
+ "$type": "EditorEntitySortComponent",
+ "Id": 3861913165076405600
+ },
+ "Component_[7118587015611303204]": {
+ "$type": "EditorLockComponent",
+ "Id": 7118587015611303204
+ },
+ "Component_[7751174327125555504]": {
+ "$type": "EditorDisabledCompositionComponent",
+ "Id": 7751174327125555504
+ },
+ "Component_[8304730147756374057]": {
+ "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+ "Id": 8304730147756374057,
+ "Parent Entity": "Entity_[403811863694]",
+ "Transform Data": {
+ "Translate": [
+ 0.0,
+ 20.0,
+ 34.0
+ ]
+ }
+ },
+ "Component_[8866353210615920259]": {
+ "$type": "EditorEntityIconComponent",
+ "Id": 8866353210615920259
+ },
+ "Component_[8988181228601932779]": {
+ "$type": "EditorInspectorComponent",
+ "Id": 8988181228601932779
+ },
+ "Component_[7103333782129541775]": {
+ "$type": "EditorColliderComponent",
+ "Id": 7103333782129541775
+ }
+ },
+ "IsDependencyReady": true
+ },
+ "Entity_[532660882574]": {
+ "Id": "Entity_[532660882574]",
+ "Name": "EmptyEntity",
+ "Components": {
+ "Component_[16437814751543997955]": {
+ "$type": "EditorEntitySortComponent",
+ "Id": 16437814751543997955
+ },
+ "Component_[16751517102089557119]": {
+ "$type": "EditorPendingCompositionComponent",
+ "Id": 16751517102089557119
+ },
+ "Component_[16773275259304187949]": {
+ "$type": "EditorInspectorComponent",
+ "Id": 16773275259304187949
+ },
+ "Component_[17283539636910567200]": {
+ "$type": "SelectionComponent",
+ "Id": 17283539636910567200
+ },
+ "Component_[250004123617033400]": {
+ "$type": "EditorLockComponent",
+ "Id": 250004123617033400
+ },
+ "Component_[2791138963683667073]": {
+ "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+ "Id": 2791138963683667073,
+ "Parent Entity": "Entity_[403811863694]",
+ "Transform Data": {
+ "Translate": [
+ 10.0,
+ 20.0,
+ 30.0
+ ]
+ }
+ },
+ "Component_[3296942400051129145]": {
+ "$type": "EditorEntityIconComponent",
+ "Id": 3296942400051129145
+ },
+ "Component_[3422076964671342434]": {
+ "$type": "EditorOnlyEntityComponent",
+ "Id": 3422076964671342434
+ },
+ "Component_[3431895414183121731]": {
+ "$type": "EditorVisibilityComponent",
+ "Id": 3431895414183121731
+ },
+ "Component_[7072085777705148766]": {
+ "$type": "EditorDisabledCompositionComponent",
+ "Id": 7072085777705148766
+ }
+ },
+ "IsDependencyReady": true
+ }
+ }
+}
\ No newline at end of file
diff --git a/Code/CryEngine/CryCommon/CMakeLists.txt b/Code/CryEngine/CryCommon/CMakeLists.txt
index 4725489358..5105ff1a5b 100644
--- a/Code/CryEngine/CryCommon/CMakeLists.txt
+++ b/Code/CryEngine/CryCommon/CMakeLists.txt
@@ -32,41 +32,6 @@ ly_add_target(
AZ::AzFramework
)
-ly_add_target(
- NAME CryCommon.EngineSettings.Static STATIC
- NAMESPACE Legacy
- FILES_CMAKE
- crycommon_enginesettings_files.cmake
- ${pal_dir}/crycommon_enginesettings_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
- INCLUDE_DIRECTORIES
- PUBLIC
- .
- ${pal_dir}
- BUILD_DEPENDENCIES
- PUBLIC
- AZ::AzCore
- AZ::AzFramework
-)
-
-ly_add_target(
- NAME CryCommon.EngineSettings.RC.Static STATIC
- NAMESPACE Legacy
- FILES_CMAKE
- crycommon_enginesettings_files.cmake
- ${pal_dir}/crycommon_enginesettings_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
- INCLUDE_DIRECTORIES
- PUBLIC
- .
- ${pal_dir}
- COMPILE_DEFINITIONS
- PRIVATE
- RESOURCE_COMPILER
- BUILD_DEPENDENCIES
- PUBLIC
- AZ::AzCore
- AZ::AzFramework
-)
-
if(PAL_TRAIT_BUILD_TESTS_SUPPORTED)
ly_add_target(
diff --git a/Code/CryEngine/CryCommon/CryAssert_Android.h b/Code/CryEngine/CryCommon/CryAssert_Android.h
index 68f716ec28..6e60df1bb1 100644
--- a/Code/CryEngine/CryCommon/CryAssert_Android.h
+++ b/Code/CryEngine/CryCommon/CryAssert_Android.h
@@ -31,7 +31,7 @@ void CryAssertTrace(const char* szFormat, ...)
return;
}
- if (!gEnv->bIgnoreAllAsserts || gEnv->bTesting)
+ if (!gEnv->bIgnoreAllAsserts)
{
if (szFormat == NULL)
{
diff --git a/Code/CryEngine/CryCommon/CryAssert_Linux.h b/Code/CryEngine/CryCommon/CryAssert_Linux.h
index 7c52f78366..f0acdd79db 100644
--- a/Code/CryEngine/CryCommon/CryAssert_Linux.h
+++ b/Code/CryEngine/CryCommon/CryAssert_Linux.h
@@ -34,7 +34,7 @@ void CryAssertTrace(const char* szFormat, ...)
return;
}
- if (!gEnv->bIgnoreAllAsserts || gEnv->bTesting)
+ if (!gEnv->bIgnoreAllAsserts)
{
if (szFormat == NULL)
{
diff --git a/Code/CryEngine/CryCommon/CryAssert_Mac.h b/Code/CryEngine/CryCommon/CryAssert_Mac.h
index 9502605fea..f7f74c3b58 100644
--- a/Code/CryEngine/CryCommon/CryAssert_Mac.h
+++ b/Code/CryEngine/CryCommon/CryAssert_Mac.h
@@ -30,7 +30,7 @@ void CryAssertTrace(const char* szFormat, ...)
return;
}
- if (!gEnv->bIgnoreAllAsserts || gEnv->bTesting)
+ if (!gEnv->bIgnoreAllAsserts)
{
if (szFormat == NULL)
{
diff --git a/Code/CryEngine/CryCommon/CryAssert_iOS.h b/Code/CryEngine/CryCommon/CryAssert_iOS.h
index ad668fb131..2cb08befff 100644
--- a/Code/CryEngine/CryCommon/CryAssert_iOS.h
+++ b/Code/CryEngine/CryCommon/CryAssert_iOS.h
@@ -31,7 +31,7 @@ void CryAssertTrace(const char* szFormat, ...)
return;
}
- if (!gEnv->bIgnoreAllAsserts || gEnv->bTesting)
+ if (!gEnv->bIgnoreAllAsserts)
{
if (szFormat == NULL)
{
diff --git a/Code/CryEngine/CryCommon/CryAssert_impl.h b/Code/CryEngine/CryCommon/CryAssert_impl.h
index ed55162f1a..edbbb2f0c4 100644
--- a/Code/CryEngine/CryCommon/CryAssert_impl.h
+++ b/Code/CryEngine/CryCommon/CryAssert_impl.h
@@ -305,7 +305,7 @@ void CryAssertTrace(const char* _pszFormat, ...)
{
return;
}
- if (!gEnv->bIgnoreAllAsserts || gEnv->bTesting)
+ if (!gEnv->bIgnoreAllAsserts)
{
if (NULL == _pszFormat)
{
diff --git a/Code/CryEngine/CryCommon/CrySystemBus.h b/Code/CryEngine/CryCommon/CrySystemBus.h
index f183de0fa9..def1ce4688 100644
--- a/Code/CryEngine/CryCommon/CrySystemBus.h
+++ b/Code/CryEngine/CryCommon/CrySystemBus.h
@@ -49,12 +49,6 @@ public:
//! ISystem has shut down.
virtual void OnCrySystemPostShutdown() {}
- //! Engine pre physics update.
- virtual void OnCrySystemPrePhysicsUpdate() {}
-
- //! Engine post physics update.
- virtual void OnCrySystemPostPhysicsUpdate() {}
-
//! Sent when a new level is being created.
virtual void OnCryEditorBeginCreate() {}
diff --git a/Code/CryEngine/CryCommon/CryThread.h b/Code/CryEngine/CryCommon/CryThread.h
index f1e97b2199..9aa7bce128 100644
--- a/Code/CryEngine/CryCommon/CryThread.h
+++ b/Code/CryEngine/CryCommon/CryThread.h
@@ -37,9 +37,6 @@ enum CryLockType
#define CRYLOCK_HAVE_FASTLOCK 1
-void CryThreadSetName(threadID nThreadId, const char* sThreadName);
-const char* CryThreadGetName(threadID nThreadId);
-
/////////////////////////////////////////////////////////////////////////////
//
// Primitive locks and conditions.
diff --git a/Code/CryEngine/CryCommon/CryThreadImpl.h b/Code/CryEngine/CryCommon/CryThreadImpl.h
index b151b3da8a..da9be86dd5 100644
--- a/Code/CryEngine/CryCommon/CryThreadImpl.h
+++ b/Code/CryEngine/CryCommon/CryThreadImpl.h
@@ -31,22 +31,3 @@
#else
// Put other platform specific includes here!
#endif
-
-#include
-
-void CryThreadSetName(threadID dwThreadId, const char* sThreadName)
-{
- if (gEnv && gEnv->pSystem && gEnv->pSystem->GetIThreadTaskManager())
- {
- gEnv->pSystem->GetIThreadTaskManager()->SetThreadName(dwThreadId, sThreadName);
- }
-}
-
-const char* CryThreadGetName(threadID dwThreadId)
-{
- if (gEnv && gEnv->pSystem && gEnv->pSystem->GetIThreadTaskManager())
- {
- return gEnv->pSystem->GetIThreadTaskManager()->GetThreadName(dwThreadId);
- }
- return "";
-}
diff --git a/Code/CryEngine/CryCommon/CryThreadImpl_windows.h b/Code/CryEngine/CryCommon/CryThreadImpl_windows.h
index 6f37edeea1..3ff28a81be 100644
--- a/Code/CryEngine/CryCommon/CryThreadImpl_windows.h
+++ b/Code/CryEngine/CryCommon/CryThreadImpl_windows.h
@@ -13,8 +13,6 @@
#pragma once
-//#include
-
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif
diff --git a/Code/CryEngine/CryCommon/CryThread_windows.h b/Code/CryEngine/CryCommon/CryThread_windows.h
index 1d9ea6dc31..b70260c7ac 100644
--- a/Code/CryEngine/CryCommon/CryThread_windows.h
+++ b/Code/CryEngine/CryCommon/CryThread_windows.h
@@ -249,10 +249,6 @@ public:
void SetName(const char* Name)
{
m_name = Name;
- if (m_threadId)
- {
- CryThreadSetName(m_threadId, m_name);
- }
}
const char* GetName() { return m_name; }
@@ -289,11 +285,6 @@ private:
self->m_bIsStarted = true;
self->m_bIsRunning = true;
- if (!self->m_name.empty())
- {
- CryThreadSetName(-1, self->m_name);
- }
-
self->m_Runnable->Run();
self->m_bIsRunning = false;
self->m_bCreatedThread = false;
@@ -311,11 +302,6 @@ private:
self->m_bIsStarted = true;
self->m_bIsRunning = true;
- if (!self->m_name.empty())
- {
- CryThreadSetName(-1, self->m_name);
- }
-
self->Run();
self->m_bIsRunning = false;
self->m_bCreatedThread = false;
diff --git a/Code/CryEngine/CryCommon/EngineSettingsBackend.cpp b/Code/CryEngine/CryCommon/EngineSettingsBackend.cpp
deleted file mode 100644
index caf7e03f31..0000000000
--- a/Code/CryEngine/CryCommon/EngineSettingsBackend.cpp
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
- * its licensors.
- *
- * For complete copyright and license terms please see the LICENSE at the root of this
- * distribution (the "License"). All use of this software is governed by the License,
- * or, if provided, by the license below or the license accompanying this file. Do not
- * remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *
- */
-
-
-#include "EngineSettingsBackend.h"
-
-#ifdef CRY_ENABLE_RC_HELPER
-
-CEngineSettingsBackend::CEngineSettingsBackend(CEngineSettingsManager* parent, const wchar_t* moduleName)
- : m_parent(parent)
- , m_moduleName()
-{
- if (moduleName != nullptr)
- {
- m_moduleName = moduleName;
- }
-}
-
-CEngineSettingsBackend::~CEngineSettingsBackend()
-{
-
-}
-
-#endif // CRY_ENABLE_RC_HELPER
-
diff --git a/Code/CryEngine/CryCommon/EngineSettingsBackend.h b/Code/CryEngine/CryCommon/EngineSettingsBackend.h
deleted file mode 100644
index fce16517ec..0000000000
--- a/Code/CryEngine/CryCommon/EngineSettingsBackend.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
- * its licensors.
- *
- * For complete copyright and license terms please see the LICENSE at the root of this
- * distribution (the "License"). All use of this software is governed by the License,
- * or, if provided, by the license below or the license accompanying this file. Do not
- * remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *
- */
-#ifndef CRYINCLUDE_CRYCOMMON_ENGINESETTINGSBACKEND_H
-#define CRYINCLUDE_CRYCOMMON_ENGINESETTINGSBACKEND_H
-#pragma once
-
-#include "ProjectDefines.h"
-
-#ifdef CRY_ENABLE_RC_HELPER
-
-#include "SettingsManagerHelpers.h"
-
-#include
-
-class CEngineSettingsManager;
-
-class CEngineSettingsBackend
-{
-public:
- CEngineSettingsBackend(CEngineSettingsManager* parent, const wchar_t* moduleName = NULL);
- virtual ~CEngineSettingsBackend();
-
- virtual std::wstring GetModuleFilePath() const = 0;
-
- virtual bool GetModuleSpecificStringEntryUtf16(const char* key, SettingsManagerHelpers::CWCharBuffer wbuffer) = 0;
- virtual bool GetModuleSpecificIntEntry(const char* key, int& value) = 0;
- virtual bool GetModuleSpecificBoolEntry(const char* key, bool& value) = 0;
-
- virtual bool SetModuleSpecificStringEntryUtf16(const char* key, const wchar_t* str) = 0;
- virtual bool SetModuleSpecificIntEntry(const char* key, const int& value) = 0;
- virtual bool SetModuleSpecificBoolEntry(const char* key, const bool& value) = 0;
-
- virtual bool GetInstalledBuildRootPathUtf16(const int index, SettingsManagerHelpers::CWCharBuffer name, SettingsManagerHelpers::CWCharBuffer path) = 0;
-
- virtual void LoadEngineSettingsFromRegistry() = 0;
- virtual bool StoreEngineSettingsToRegistry() = 0;
-
-protected:
- CEngineSettingsManager* parent() const
- {
- return m_parent;
- }
-
- const std::wstring& moduleName() const
- {
- return m_moduleName;
- }
-
-private:
- std::wstring m_moduleName;
- CEngineSettingsManager* m_parent;
-};
-
-#endif // CRY_ENABLE_RC_HELPER
-
-#endif // CRYINCLUDE_CRYCOMMON_ENGINESETTINGSBACKEND_H
diff --git a/Code/CryEngine/CryCommon/EngineSettingsBackendApple.cpp b/Code/CryEngine/CryCommon/EngineSettingsBackendApple.cpp
deleted file mode 100644
index 06f8d532d3..0000000000
--- a/Code/CryEngine/CryCommon/EngineSettingsBackendApple.cpp
+++ /dev/null
@@ -1,486 +0,0 @@
-/*
- * All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
- * its licensors.
- *
- * For complete copyright and license terms please see the LICENSE at the root of this
- * distribution (the "License"). All use of this software is governed by the License,
- * or, if provided, by the license below or the license accompanying this file. Do not
- * remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *
- */
-
-#include "EngineSettingsBackendApple.h"
-
-#ifdef CRY_ENABLE_RC_HELPER
-
-#include "AzCore/PlatformDef.h"
-
-#if AZ_TRAIT_OS_PLATFORM_APPLE
-
-#include "EngineSettingsManager.h"
-#include "SettingsManagerHelpers.h"
-
-#include "platform.h"
-
-#include
-#include
-#include
-
-#include
-#include
-#include
-#include
-#include