Merge branch 'development' of https://github.com/o3de/o3de into cgalvan/RemovedUnusedViewPaneClass
commit
cc6f687359
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:bfc2ef8c6dbf2fba078e27e4e94384099e090468e679327dd826a5cbf22b04ed
|
|
||||||
size 1019
|
|
||||||
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:708b12d41229afab78e0f7d59097ae3de855fea8525a920c5c214fc0ce79f1bd
|
|
||||||
size 1209
|
|
||||||
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:fab63af9b50790dca25330058e70517987ea8bf11c00f9353dd951ebdbd1dbe5
|
|
||||||
size 5008
|
|
||||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:3789abdf439a6d70438fd4bb1e06881ae6686a4699209c6bc371d22d161e5347
|
||||||
|
size 26476
|
||||||
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:c987d7d79685fda83efcffb7e1afbcd356c37fc68ec5c663a89b02d4df10caea
|
||||||
|
size 46412
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
|
||||||
|
<Component
|
||||||
|
Name="NetworkTestLevelEntityComponent"
|
||||||
|
Namespace="AutomatedTesting"
|
||||||
|
OverrideComponent="false"
|
||||||
|
OverrideController="false"
|
||||||
|
OverrideInclude=""
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
|
|
||||||
|
<ComponentRelation Constraint="Required" HasController="true" Name="NetworkTransformComponent" Namespace="Multiplayer" Include="Multiplayer/Components/NetworkTransformComponent.h" />
|
||||||
|
|
||||||
|
<RemoteProcedure Name="AuthorityToClientNoParams_PlayFx" InvokeFrom="Authority" HandleOn="Client" IsPublic="false" IsReliable="true" GenerateEventBindings="true" Description="" />
|
||||||
|
|
||||||
|
</Component>
|
||||||
@ -0,0 +1,72 @@
|
|||||||
|
"""
|
||||||
|
Copyright (c) Contributors to the Open 3D Engine Project.
|
||||||
|
For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
||||||
|
|
||||||
|
SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
def Atom_LevelLoadTest():
|
||||||
|
"""
|
||||||
|
Summary:
|
||||||
|
Loads all graphics levels within the AutomatedTesting project in editor. For each level this script will verify that
|
||||||
|
the level loads, and can enter/exit gameplay without crashing the editor.
|
||||||
|
|
||||||
|
Test setup:
|
||||||
|
- Store all available levels in a list.
|
||||||
|
- Set up a for loop to run all checks for each level.
|
||||||
|
|
||||||
|
Expected Behavior:
|
||||||
|
Test verifies that each level loads, enters/exits game mode, and reports success for all test actions.
|
||||||
|
|
||||||
|
Test Steps for each level:
|
||||||
|
1) Create tuple with level load success and failure messages
|
||||||
|
2) Open the level using the python test tools command
|
||||||
|
3) Verify level is loaded using a separate command, and report success/failure
|
||||||
|
4) Enter gameplay and report result using a tuple
|
||||||
|
5) Exit Gameplay and report result using a tuple
|
||||||
|
6) Look for errors or asserts.
|
||||||
|
|
||||||
|
:return: None
|
||||||
|
"""
|
||||||
|
|
||||||
|
import azlmbr.legacy.general as general
|
||||||
|
|
||||||
|
from editor_python_test_tools.utils import Report, Tracer, TestHelper
|
||||||
|
from Atom.atom_utils.atom_constants import LEVEL_LIST
|
||||||
|
|
||||||
|
with Tracer() as error_tracer:
|
||||||
|
|
||||||
|
for level in LEVEL_LIST:
|
||||||
|
|
||||||
|
# 1. Create tuple with level load success and failure messages
|
||||||
|
level_check_tuple = (f"loaded {level}", f"failed to load {level}")
|
||||||
|
|
||||||
|
# 2. Open the level using the python test tools command
|
||||||
|
TestHelper.init_idle()
|
||||||
|
TestHelper.open_level("Graphics", level)
|
||||||
|
|
||||||
|
# 3. Verify level is loaded using a separate command, and report success/failure
|
||||||
|
Report.result(level_check_tuple, level == general.get_current_level_name())
|
||||||
|
|
||||||
|
# 4. Enter gameplay and report result using a tuple
|
||||||
|
enter_game_mode_tuple = (f"{level} entered gameplay successfully ", f"{level} failed to enter gameplay")
|
||||||
|
TestHelper.enter_game_mode(enter_game_mode_tuple)
|
||||||
|
general.idle_wait_frames(1)
|
||||||
|
|
||||||
|
# 5. Exit gameplay and report result using a tuple
|
||||||
|
exit_game_mode_tuple = (f"{level} exited gameplay successfully ", f"{level} failed to exit gameplay")
|
||||||
|
TestHelper.exit_game_mode(exit_game_mode_tuple)
|
||||||
|
|
||||||
|
|
||||||
|
# 6. Look for errors or asserts.
|
||||||
|
TestHelper.wait_for_condition(lambda: error_tracer.has_errors or error_tracer.has_asserts, 1.0)
|
||||||
|
for error_info in error_tracer.errors:
|
||||||
|
Report.info(f"Error: {error_info.filename} {error_info.function} | {error_info.message}")
|
||||||
|
for assert_info in error_tracer.asserts:
|
||||||
|
Report.info(f"Assert: {assert_info.filename} {assert_info.function} | {assert_info.message}")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
from editor_python_test_tools.utils import Report
|
||||||
|
Report.start_test(Atom_LevelLoadTest)
|
||||||
@ -0,0 +1,76 @@
|
|||||||
|
"""
|
||||||
|
Copyright (c) Contributors to the Open 3D Engine Project.
|
||||||
|
For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
||||||
|
|
||||||
|
SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
# Test Case Title : Check that level entities with network bindings are properly replicated.
|
||||||
|
# Note: This test should be ran on a fresh editor run; some bugs with spawnables occur only on the first editor play-mode.
|
||||||
|
|
||||||
|
|
||||||
|
# fmt: off
|
||||||
|
class TestSuccessFailTuples():
|
||||||
|
enter_game_mode = ("Entered game mode", "Failed to enter game mode")
|
||||||
|
exit_game_mode = ("Exited game mode", "Couldn't exit game mode")
|
||||||
|
find_network_player = ("Found network player", "Couldn't find network player")
|
||||||
|
# fmt: on
|
||||||
|
|
||||||
|
|
||||||
|
def Multiplayer_SimpleNetworkLevelEntity():
|
||||||
|
r"""
|
||||||
|
Summary:
|
||||||
|
Test to make sure that network entities in a level function and are replicated to clients as expected
|
||||||
|
|
||||||
|
Level Description:
|
||||||
|
- Static
|
||||||
|
1. NetLevelEntity. This is a networked entity which has a script attached which prints logs to ensure it's replicated.
|
||||||
|
|
||||||
|
|
||||||
|
Expected Outcome:
|
||||||
|
We should see logs stating that the net-sync'd level entity exists on both server and client.
|
||||||
|
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
import azlmbr.legacy.general as general
|
||||||
|
from editor_python_test_tools.utils import Report
|
||||||
|
from editor_python_test_tools.utils import Tracer
|
||||||
|
|
||||||
|
from editor_python_test_tools.utils import TestHelper as helper
|
||||||
|
from ly_remote_console.remote_console_commands import RemoteConsole as RemoteConsole
|
||||||
|
|
||||||
|
level_name = "SimpleNetworkLevelEntity"
|
||||||
|
player_prefab_name = "Player"
|
||||||
|
player_prefab_path = f"levels/multiplayer/{level_name}/{player_prefab_name}.network.spawnable"
|
||||||
|
|
||||||
|
helper.init_idle()
|
||||||
|
|
||||||
|
# 1) Open Level
|
||||||
|
helper.open_level("Multiplayer", level_name)
|
||||||
|
|
||||||
|
with Tracer() as section_tracer:
|
||||||
|
# 2) Enter game mode
|
||||||
|
helper.multiplayer_enter_game_mode(TestSuccessFailTuples.enter_game_mode, player_prefab_path.lower())
|
||||||
|
|
||||||
|
# 3) Make sure the network player was spawned
|
||||||
|
player_id = general.find_game_entity(player_prefab_name)
|
||||||
|
Report.critical_result(TestSuccessFailTuples.find_network_player, player_id.IsValid())
|
||||||
|
|
||||||
|
# 4) Check the editor logs for network spawnable errors
|
||||||
|
ATTEMPTING_INVALID_NETSPAWN_WAIT_TIME_SECONDS = 0.0 # The editor will try to net-spawn its networked level entity before it's even a client. Make sure this didn't happen.
|
||||||
|
helper.fail_if_log_line_found('NetworkEntityManager', "RequestNetSpawnableInstantiation: Requested spawnable Root.network.spawnable doesn't exist in the NetworkSpawnableLibrary. Please make sure it is a network spawnable", section_tracer.errors, ATTEMPTING_INVALID_NETSPAWN_WAIT_TIME_SECONDS)
|
||||||
|
|
||||||
|
# 5) Ensure the script graph attached to the level entity is running on the server
|
||||||
|
SCRIPTGRAPH_ENABLED_WAIT_TIME_SECONDS = 0.25
|
||||||
|
helper.succeed_if_log_line_found('EditorServer', "Script: SimpleNetworkLevelEntity: On Graph Start", section_tracer.prints, SCRIPTGRAPH_ENABLED_WAIT_TIME_SECONDS)
|
||||||
|
|
||||||
|
|
||||||
|
# Exit game mode
|
||||||
|
helper.exit_game_mode(TestSuccessFailTuples.exit_game_mode)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
from editor_python_test_tools.utils import Report
|
||||||
|
Report.start_test(Multiplayer_SimpleNetworkLevelEntity)
|
||||||
@ -0,0 +1,34 @@
|
|||||||
|
"""
|
||||||
|
Copyright (c) Contributors to the Open 3D Engine Project.
|
||||||
|
For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
||||||
|
|
||||||
|
SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||||
|
"""
|
||||||
|
|
||||||
|
def InstantiatePrefab_FromCreatedPrefabWithSingleEntity():
|
||||||
|
|
||||||
|
from pathlib import Path
|
||||||
|
CAR_PREFAB_FILE_NAME = Path(__file__).stem + 'car_prefab'
|
||||||
|
|
||||||
|
from editor_python_test_tools.editor_entity_utils import EditorEntity
|
||||||
|
from editor_python_test_tools.utils import Report
|
||||||
|
from editor_python_test_tools.prefab_utils import Prefab
|
||||||
|
|
||||||
|
import Prefab.tests.PrefabTestUtils as prefab_test_utils
|
||||||
|
|
||||||
|
prefab_test_utils.open_base_tests_level()
|
||||||
|
|
||||||
|
# Creates a new entity at the root level
|
||||||
|
car_entity = EditorEntity.create_editor_entity()
|
||||||
|
car_prefab_entities = [car_entity]
|
||||||
|
|
||||||
|
# Creates a prefab from the new entity
|
||||||
|
car_prefab, car_prefab_instance = Prefab.create_prefab(car_prefab_entities, CAR_PREFAB_FILE_NAME)
|
||||||
|
|
||||||
|
# Instantiate another instance and verify
|
||||||
|
car_prefab_instance_2 = car_prefab.instantiate()
|
||||||
|
assert car_prefab_instance_2.is_valid(), "Failed to instantiate prefab"
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
from editor_python_test_tools.utils import Report
|
||||||
|
Report.start_test(InstantiatePrefab_FromCreatedPrefabWithSingleEntity)
|
||||||
@ -0,0 +1,69 @@
|
|||||||
|
"""
|
||||||
|
Copyright (c) Contributors to the Open 3D Engine Project.
|
||||||
|
For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
||||||
|
SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
class Tests:
|
||||||
|
prefab_created = (
|
||||||
|
"Prefab created successfully",
|
||||||
|
"Failed to create prefab"
|
||||||
|
)
|
||||||
|
prefab_instantiated = (
|
||||||
|
"Prefab instantiated successfully",
|
||||||
|
"Failed to instantiate prefab"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def Prefab_CreateInstantiate():
|
||||||
|
"""
|
||||||
|
Summary:
|
||||||
|
A prefab containing the LandscapeCanvas component can be created/instantiated.
|
||||||
|
Expected Result:
|
||||||
|
Prefab is created/processed/instantiated successfully and free of errors/warnings.
|
||||||
|
Test Steps:
|
||||||
|
1) Open a simple level
|
||||||
|
2) Create a new entity with a Landscape Canvas component
|
||||||
|
3) Create a prefab of the new entity
|
||||||
|
4) Instantiate a new copy of the prefab
|
||||||
|
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
|
||||||
|
"""
|
||||||
|
|
||||||
|
import azlmbr.math as math
|
||||||
|
|
||||||
|
import editor_python_test_tools.hydra_editor_utils as hydra
|
||||||
|
from editor_python_test_tools.utils import Report
|
||||||
|
from editor_python_test_tools.utils import TestHelper as helper
|
||||||
|
from editor_python_test_tools.prefab_utils import Prefab
|
||||||
|
|
||||||
|
# Open an existing simple level
|
||||||
|
hydra.open_base_level()
|
||||||
|
|
||||||
|
# Create entity with Landscape Canvas component
|
||||||
|
position = math.Vector3(512.0, 512.0, 32.0)
|
||||||
|
landscape_canvas = hydra.Entity("landscape_canvas_entity")
|
||||||
|
landscape_canvas.create_entity(position, ["Landscape Canvas"])
|
||||||
|
|
||||||
|
# Create in-memory prefab from the created entity
|
||||||
|
lc_prefab_filename = "LC_PrefabTest"
|
||||||
|
lc_prefab, lc_prefab_instance = Prefab.create_prefab([landscape_canvas], lc_prefab_filename)
|
||||||
|
|
||||||
|
# Verify if prefab is created
|
||||||
|
helper.wait_for_condition(lambda: lc_prefab.is_prefab_loaded(lc_prefab_filename), 5.0)
|
||||||
|
Report.result(Tests.prefab_created, lc_prefab.is_prefab_loaded(lc_prefab_filename))
|
||||||
|
|
||||||
|
# Instantiate prefab
|
||||||
|
lc_prefab_instance2 = lc_prefab.instantiate()
|
||||||
|
helper.wait_for_condition(lambda: lc_prefab_instance2.has_editor_prefab_component(), 5.0)
|
||||||
|
Report.result(Tests.prefab_instantiated, lc_prefab_instance2.has_editor_prefab_component())
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
|
||||||
|
from editor_python_test_tools.utils import Report
|
||||||
|
Report.start_test(Prefab_CreateInstantiate)
|
||||||
@ -1,84 +0,0 @@
|
|||||||
"""
|
|
||||||
Copyright (c) Contributors to the Open 3D Engine Project.
|
|
||||||
For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
|
||||||
|
|
||||||
SPDX-License-Identifier: Apache-2.0 OR MIT
|
|
||||||
"""
|
|
||||||
|
|
||||||
|
|
||||||
class Tests:
|
|
||||||
slice_created = (
|
|
||||||
"Slice created successfully",
|
|
||||||
"Failed to create slice"
|
|
||||||
)
|
|
||||||
slice_instantiated = (
|
|
||||||
"Slice instantiated successfully",
|
|
||||||
"Failed to instantiate slice"
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def Slice_CreateInstantiate():
|
|
||||||
"""
|
|
||||||
Summary:
|
|
||||||
A slice containing the LandscapeCanvas component can be created/instantiated.
|
|
||||||
|
|
||||||
Expected Result:
|
|
||||||
Slice is created/processed/instantiated successfully and free of errors/warnings.
|
|
||||||
|
|
||||||
Test Steps:
|
|
||||||
1) Open a simple level
|
|
||||||
2) Create a new entity with a Landscape Canvas component
|
|
||||||
3) Create a slice of the new entity
|
|
||||||
4) Instantiate a new copy of the slice
|
|
||||||
|
|
||||||
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
|
|
||||||
"""
|
|
||||||
|
|
||||||
import os
|
|
||||||
|
|
||||||
import azlmbr.math as math
|
|
||||||
import azlmbr.bus as bus
|
|
||||||
import azlmbr.asset as asset
|
|
||||||
import azlmbr.slice as slice
|
|
||||||
|
|
||||||
import editor_python_test_tools.hydra_editor_utils as hydra
|
|
||||||
from editor_python_test_tools.utils import Report
|
|
||||||
from editor_python_test_tools.utils import TestHelper as helper
|
|
||||||
|
|
||||||
def path_is_valid_asset(asset_path):
|
|
||||||
asset_id = asset.AssetCatalogRequestBus(bus.Broadcast, "GetAssetIdByPath", asset_path, math.Uuid(), False)
|
|
||||||
return asset_id.invoke("IsValid")
|
|
||||||
|
|
||||||
# Open an existing simple level
|
|
||||||
helper.init_idle()
|
|
||||||
helper.open_level("Physics", "Base")
|
|
||||||
|
|
||||||
# Create entity with Landscape Canvas component
|
|
||||||
position = math.Vector3(512.0, 512.0, 32.0)
|
|
||||||
landscape_canvas = hydra.Entity("landscape_canvas_entity")
|
|
||||||
landscape_canvas.create_entity(position, ["Landscape Canvas"])
|
|
||||||
|
|
||||||
# Create slice from the created entity
|
|
||||||
slice_path = os.path.join("slices", "TestSlice.slice")
|
|
||||||
slice.SliceRequestBus(bus.Broadcast, "CreateNewSlice", landscape_canvas.id, slice_path)
|
|
||||||
|
|
||||||
# Verify if slice is created
|
|
||||||
helper.wait_for_condition(lambda: path_is_valid_asset(slice_path), 5.0)
|
|
||||||
Report.result(Tests.slice_created, path_is_valid_asset(slice_path))
|
|
||||||
|
|
||||||
# Instantiate slice
|
|
||||||
transform = math.Transform_CreateIdentity()
|
|
||||||
asset_id = asset.AssetCatalogRequestBus(bus.Broadcast, "GetAssetIdByPath", slice_path, math.Uuid(), False)
|
|
||||||
test_slice = slice.SliceRequestBus(bus.Broadcast, "InstantiateSliceFromAssetId", asset_id, transform)
|
|
||||||
helper.wait_for_condition(lambda: test_slice.IsValid(), 5.0)
|
|
||||||
Report.result(Tests.slice_instantiated, test_slice.IsValid())
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
|
|
||||||
from editor_python_test_tools.utils import Report
|
|
||||||
Report.start_test(Slice_CreateInstantiate)
|
|
||||||
@ -1,29 +1,88 @@
|
|||||||
"""
|
"""
|
||||||
Copyright (c) Contributors to the Open 3D Engine Project.
|
Copyright (c) Contributors to the Open 3D Engine Project.
|
||||||
For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
||||||
|
|
||||||
SPDX-License-Identifier: Apache-2.0 OR MIT
|
SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import os
|
|
||||||
import pytest
|
import pytest
|
||||||
import sys
|
|
||||||
|
|
||||||
import ly_test_tools.environment.file_system as file_system
|
|
||||||
|
|
||||||
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/../../automatedtesting_shared')
|
from ly_test_tools.o3de.editor_test import EditorSingleTest, EditorSharedTest, EditorParallelTest, EditorTestSuite
|
||||||
from base import TestAutomationBase
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.SUITE_main
|
|
||||||
@pytest.mark.parametrize("launcher_platform", ['windows_editor'])
|
@pytest.mark.parametrize("launcher_platform", ['windows_editor'])
|
||||||
@pytest.mark.parametrize("project", ["AutomatedTesting"])
|
@pytest.mark.parametrize("project", ["AutomatedTesting"])
|
||||||
class TestAutomation(TestAutomationBase):
|
class TestAutomation(EditorTestSuite):
|
||||||
|
|
||||||
def test_LandscapeCanvas_SlotConnections_UpdateComponentReferences(self, request, workspace, editor, launcher_platform):
|
class test_LandscapeCanvas_AreaNodes_DependentComponentsAdded(EditorSharedTest):
|
||||||
from .EditorScripts import SlotConnections_UpdateComponentReferences as test_module
|
from .EditorScripts import AreaNodes_DependentComponentsAdded as test_module
|
||||||
self._run_test(request, workspace, editor, test_module, enable_prefab_system=False)
|
|
||||||
|
class test_LandscapeCanvas_AreaNodes_EntityCreatedOnNodeAdd(EditorSharedTest):
|
||||||
|
from .EditorScripts import AreaNodes_EntityCreatedOnNodeAdd as test_module
|
||||||
|
|
||||||
|
class test_LandscapeCanvas_AreaNodes_EntityRemovedOnNodeDelete(EditorSharedTest):
|
||||||
|
from .EditorScripts import AreaNodes_EntityRemovedOnNodeDelete as test_module
|
||||||
|
|
||||||
|
class test_LandscapeCanvas_Component_AddedRemoved(EditorSharedTest):
|
||||||
|
from .EditorScripts import Component_AddedRemoved as test_module
|
||||||
|
|
||||||
|
class test_LandscapeCanvas_ComponentUpdates_UpdateGraph(EditorSharedTest):
|
||||||
|
from .EditorScripts import ComponentUpdates_UpdateGraph as test_module
|
||||||
|
|
||||||
def test_LandscapeCanvas_GradientMixer_NodeConstruction(self, request, workspace, editor, launcher_platform):
|
class test_LandscapeCanvas_Edit_DisabledNodeDuplication(EditorSharedTest):
|
||||||
|
from .EditorScripts import Edit_DisabledNodeDuplication as test_module
|
||||||
|
|
||||||
|
class test_LandscapeCanvas_Edit_UndoNodeDelete_PrefabEntity(EditorSharedTest):
|
||||||
|
from .EditorScripts import Edit_UndoNodeDelete_PrefabEntity as test_module
|
||||||
|
|
||||||
|
class test_LandscapeCanvas_GradientMixer_NodeConstruction(EditorSharedTest):
|
||||||
from .EditorScripts import GradientMixer_NodeConstruction as test_module
|
from .EditorScripts import GradientMixer_NodeConstruction as test_module
|
||||||
self._run_test(request, workspace, editor, test_module, enable_prefab_system=False)
|
|
||||||
|
class test_LandscapeCanvas_GradientModifierNodes_EntityCreatedOnNodeAdd(EditorSharedTest):
|
||||||
|
from .EditorScripts import GradientModifierNodes_EntityCreatedOnNodeAdd as test_module
|
||||||
|
|
||||||
|
class test_LandscapeCanvas_GradientModifierNodes_EntityRemovedOnNodeDelete(EditorSharedTest):
|
||||||
|
from .EditorScripts import GradientModifierNodes_EntityRemovedOnNodeDelete as test_module
|
||||||
|
|
||||||
|
class test_LandscapeCanvas_GradientNodes_DependentComponentsAdded(EditorSharedTest):
|
||||||
|
from .EditorScripts import GradientNodes_DependentComponentsAdded as test_module
|
||||||
|
|
||||||
|
class test_LandscapeCanvas_GradientNodes_EntityCreatedOnNodeAdd(EditorSharedTest):
|
||||||
|
from .EditorScripts import GradientNodes_EntityCreatedOnNodeAdd as test_module
|
||||||
|
|
||||||
|
class test_LandscapeCanvas_GradientNodes_EntityRemovedOnNodeDelete(EditorSharedTest):
|
||||||
|
from .EditorScripts import GradientNodes_EntityRemovedOnNodeDelete as test_module
|
||||||
|
|
||||||
|
@pytest.mark.xfail(reason="https://github.com/o3de/o3de/issues/2201")
|
||||||
|
class test_LandscapeCanvas_GraphClosed_OnEntityDelete(EditorSharedTest):
|
||||||
|
from .EditorScripts import GraphClosed_OnEntityDelete as test_module
|
||||||
|
|
||||||
|
class test_LandscapeCanvas_GraphClosed_OnLevelChange(EditorSharedTest):
|
||||||
|
from .EditorScripts import GraphClosed_OnLevelChange as test_module
|
||||||
|
|
||||||
|
class test_LandscapeCanvas_GraphClosed_TabbedGraphClosesIndependently(EditorSharedTest):
|
||||||
|
from .EditorScripts import GraphClosed_TabbedGraph as test_module
|
||||||
|
|
||||||
|
@pytest.mark.skip(reason="https://github.com/o3de/o3de/issues/7141" "https://github.com/o3de/o3de/issues/4872")
|
||||||
|
class test_LandscapeCanvas_GraphUpdates_UpdateComponents(EditorSharedTest):
|
||||||
|
from .EditorScripts import GraphUpdates_UpdateComponents as test_module
|
||||||
|
|
||||||
|
class test_LandscapeCanvas_LayerBlender_NodeConstruction(EditorSharedTest):
|
||||||
|
from .EditorScripts import LayerBlender_NodeConstruction as test_module
|
||||||
|
|
||||||
|
class test_LandscapeCanvas_LayerExtenderNodes_ComponentEntitySync(EditorSharedTest):
|
||||||
|
from .EditorScripts import LayerExtenderNodes_ComponentEntitySync as test_module
|
||||||
|
|
||||||
|
class test_LandscapeCanvas_NewGraph_CreatedSuccessfully(EditorSharedTest):
|
||||||
|
from .EditorScripts import NewGraph_CreatedSuccessfully as test_module
|
||||||
|
|
||||||
|
class test_LandscapeCanvas_Prefab_CreateInstantiate(EditorSharedTest):
|
||||||
|
from .EditorScripts import Prefab_CreateInstantiate as test_module
|
||||||
|
|
||||||
|
class test_LandscapeCanvas_ShapeNodes_EntityCreatedOnNodeAdd(EditorSharedTest):
|
||||||
|
from .EditorScripts import ShapeNodes_EntityCreatedOnNodeAdd as test_module
|
||||||
|
|
||||||
|
class test_LandscapeCanvas_ShapeNodes_EntityRemovedOnNodeDelete(EditorSharedTest):
|
||||||
|
from .EditorScripts import ShapeNodes_EntityRemovedOnNodeDelete as test_module
|
||||||
|
|
||||||
|
class test_LandscapeCanvas_SlotConnections_UpdateComponentReferences(EditorSharedTest):
|
||||||
|
from .EditorScripts import SlotConnections_UpdateComponentReferences as test_module
|
||||||
|
|||||||
@ -1,104 +0,0 @@
|
|||||||
"""
|
|
||||||
Copyright (c) Contributors to the Open 3D Engine Project.
|
|
||||||
For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
|
||||||
|
|
||||||
SPDX-License-Identifier: Apache-2.0 OR MIT
|
|
||||||
"""
|
|
||||||
|
|
||||||
import os
|
|
||||||
import pytest
|
|
||||||
|
|
||||||
import ly_test_tools.environment.file_system as file_system
|
|
||||||
import ly_test_tools._internal.pytest_plugin as internal_plugin
|
|
||||||
from ly_test_tools.o3de.editor_test import EditorSingleTest, EditorSharedTest, EditorParallelTest, EditorTestSuite
|
|
||||||
|
|
||||||
@pytest.mark.SUITE_periodic
|
|
||||||
@pytest.mark.parametrize("launcher_platform", ['windows_editor'])
|
|
||||||
@pytest.mark.parametrize("project", ["AutomatedTesting"])
|
|
||||||
class TestAutomationWithPrefabSystemEnabled(EditorTestSuite):
|
|
||||||
|
|
||||||
class test_LandscapeCanvas_AreaNodes_DependentComponentsAdded(EditorSharedTest):
|
|
||||||
from .EditorScripts import AreaNodes_DependentComponentsAdded as test_module
|
|
||||||
|
|
||||||
@pytest.mark.SUITE_periodic
|
|
||||||
@pytest.mark.parametrize("launcher_platform", ['windows_editor'])
|
|
||||||
@pytest.mark.parametrize("project", ["AutomatedTesting"])
|
|
||||||
class TestAutomation(EditorTestSuite):
|
|
||||||
|
|
||||||
enable_prefab_system = False
|
|
||||||
|
|
||||||
class test_LandscapeCanvas_SlotConnections_UpdateComponentReferences(EditorSharedTest):
|
|
||||||
from .EditorScripts import SlotConnections_UpdateComponentReferences as test_module
|
|
||||||
|
|
||||||
class test_LandscapeCanvas_GradientMixer_NodeConstruction(EditorSharedTest):
|
|
||||||
from .EditorScripts import GradientMixer_NodeConstruction as test_module
|
|
||||||
|
|
||||||
class test_LandscapeCanvas_AreaNodes_EntityCreatedOnNodeAdd(EditorSharedTest):
|
|
||||||
from .EditorScripts import AreaNodes_EntityCreatedOnNodeAdd as test_module
|
|
||||||
|
|
||||||
class test_LandscapeCanvas_AreaNodes_EntityRemovedOnNodeDelete(EditorSharedTest):
|
|
||||||
from .EditorScripts import AreaNodes_EntityRemovedOnNodeDelete as test_module
|
|
||||||
|
|
||||||
class test_LandscapeCanvas_LayerExtenderNodes_ComponentEntitySync(EditorSharedTest):
|
|
||||||
from .EditorScripts import LayerExtenderNodes_ComponentEntitySync as test_module
|
|
||||||
|
|
||||||
class test_LandscapeCanvas_Edit_DisabledNodeDuplication(EditorSharedTest):
|
|
||||||
from .EditorScripts import Edit_DisabledNodeDuplication as test_module
|
|
||||||
|
|
||||||
class test_LandscapeCanvas_Edit_UndoNodeDelete_SliceEntity(EditorSharedTest):
|
|
||||||
from .EditorScripts import Edit_UndoNodeDelete_SliceEntity as test_module
|
|
||||||
|
|
||||||
class test_LandscapeCanvas_NewGraph_CreatedSuccessfully(EditorSharedTest):
|
|
||||||
from .EditorScripts import NewGraph_CreatedSuccessfully as test_module
|
|
||||||
|
|
||||||
class test_LandscapeCanvas_Component_AddedRemoved(EditorSharedTest):
|
|
||||||
from .EditorScripts import Component_AddedRemoved as test_module
|
|
||||||
|
|
||||||
class test_LandscapeCanvas_GraphClosed_OnLevelChange(EditorSharedTest):
|
|
||||||
from .EditorScripts import GraphClosed_OnLevelChange as test_module
|
|
||||||
|
|
||||||
@pytest.mark.xfail(reason="https://github.com/o3de/o3de/issues/2201")
|
|
||||||
class test_LandscapeCanvas_GraphClosed_OnEntityDelete(EditorSharedTest):
|
|
||||||
from .EditorScripts import GraphClosed_OnEntityDelete as test_module
|
|
||||||
|
|
||||||
class test_LandscapeCanvas_GraphClosed_TabbedGraphClosesIndependently(EditorSharedTest):
|
|
||||||
from .EditorScripts import GraphClosed_TabbedGraph as test_module
|
|
||||||
|
|
||||||
class test_LandscapeCanvas_Slice_CreateInstantiate(EditorSingleTest):
|
|
||||||
from .EditorScripts import Slice_CreateInstantiate as test_module
|
|
||||||
# Custom teardown to remove slice asset created during test
|
|
||||||
def teardown(self, request, workspace, editor, editor_test_results, launcher_platform):
|
|
||||||
file_system.delete([os.path.join(workspace.paths.engine_root(), "AutomatedTesting", "slices",
|
|
||||||
"TestSlice.slice")], True, True)
|
|
||||||
|
|
||||||
class test_LandscapeCanvas_GradientModifierNodes_EntityCreatedOnNodeAdd(EditorSharedTest):
|
|
||||||
from .EditorScripts import GradientModifierNodes_EntityCreatedOnNodeAdd as test_module
|
|
||||||
|
|
||||||
class test_LandscapeCanvas_GradientModifierNodes_EntityRemovedOnNodeDelete(EditorSharedTest):
|
|
||||||
from .EditorScripts import GradientModifierNodes_EntityRemovedOnNodeDelete as test_module
|
|
||||||
|
|
||||||
class test_LandscapeCanvas_GradientNodes_DependentComponentsAdded(EditorSharedTest):
|
|
||||||
from .EditorScripts import GradientNodes_DependentComponentsAdded as test_module
|
|
||||||
|
|
||||||
class test_LandscapeCanvas_GradientNodes_EntityCreatedOnNodeAdd(EditorSharedTest):
|
|
||||||
from .EditorScripts import GradientNodes_EntityCreatedOnNodeAdd as test_module
|
|
||||||
|
|
||||||
class test_LandscapeCanvas_GradientNodes_EntityRemovedOnNodeDelete(EditorSharedTest):
|
|
||||||
from .EditorScripts import GradientNodes_EntityRemovedOnNodeDelete as test_module
|
|
||||||
|
|
||||||
@pytest.mark.skipif("debug" == os.path.basename(internal_plugin.build_directory),
|
|
||||||
reason="https://github.com/o3de/o3de/issues/4872")
|
|
||||||
class test_LandscapeCanvas_GraphUpdates_UpdateComponents(EditorSharedTest):
|
|
||||||
from .EditorScripts import GraphUpdates_UpdateComponents as test_module
|
|
||||||
|
|
||||||
class test_LandscapeCanvas_ComponentUpdates_UpdateGraph(EditorSharedTest):
|
|
||||||
from .EditorScripts import ComponentUpdates_UpdateGraph as test_module
|
|
||||||
|
|
||||||
class test_LandscapeCanvas_LayerBlender_NodeConstruction(EditorSharedTest):
|
|
||||||
from .EditorScripts import LayerBlender_NodeConstruction as test_module
|
|
||||||
|
|
||||||
class test_LandscapeCanvas_ShapeNodes_EntityCreatedOnNodeAdd(EditorSharedTest):
|
|
||||||
from .EditorScripts import ShapeNodes_EntityCreatedOnNodeAdd as test_module
|
|
||||||
|
|
||||||
class test_LandscapeCanvas_ShapeNodes_EntityRemovedOnNodeDelete(EditorSharedTest):
|
|
||||||
from .EditorScripts import ShapeNodes_EntityRemovedOnNodeDelete as test_module
|
|
||||||
@ -1,121 +0,0 @@
|
|||||||
"""
|
|
||||||
Copyright (c) Contributors to the Open 3D Engine Project.
|
|
||||||
For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
|
||||||
|
|
||||||
SPDX-License-Identifier: Apache-2.0 OR MIT
|
|
||||||
"""
|
|
||||||
|
|
||||||
import os
|
|
||||||
import pytest
|
|
||||||
import sys
|
|
||||||
|
|
||||||
import ly_test_tools.environment.file_system as file_system
|
|
||||||
|
|
||||||
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/../../automatedtesting_shared')
|
|
||||||
from base import TestAutomationBase
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
|
||||||
def remove_test_slice(request, workspace, project):
|
|
||||||
file_system.delete([os.path.join(workspace.paths.engine_root(), project, "slices", "TestSlice.slice")], True, True)
|
|
||||||
|
|
||||||
def teardown():
|
|
||||||
file_system.delete([os.path.join(workspace.paths.engine_root(), project, "slices", "TestSlice.slice")], True,
|
|
||||||
True)
|
|
||||||
|
|
||||||
request.addfinalizer(teardown)
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.SUITE_periodic
|
|
||||||
@pytest.mark.parametrize("launcher_platform", ['windows_editor'])
|
|
||||||
@pytest.mark.parametrize("project", ["AutomatedTesting"])
|
|
||||||
class TestAutomation(TestAutomationBase):
|
|
||||||
|
|
||||||
def test_LandscapeCanvas_AreaNodes_DependentComponentsAdded(self, request, workspace, editor, launcher_platform):
|
|
||||||
from .EditorScripts import AreaNodes_DependentComponentsAdded as test_module
|
|
||||||
self._run_test(request, workspace, editor, test_module, enable_prefab_system=False)
|
|
||||||
|
|
||||||
def test_LandscapeCanvas_AreaNodes_EntityCreatedOnNodeAdd(self, request, workspace, editor, launcher_platform):
|
|
||||||
from .EditorScripts import AreaNodes_EntityCreatedOnNodeAdd as test_module
|
|
||||||
self._run_test(request, workspace, editor, test_module, enable_prefab_system=False)
|
|
||||||
|
|
||||||
def test_LandscapeCanvas_AreaNodes_EntityRemovedOnNodeDelete(self, request, workspace, editor, launcher_platform):
|
|
||||||
from .EditorScripts import AreaNodes_EntityRemovedOnNodeDelete as test_module
|
|
||||||
self._run_test(request, workspace, editor, test_module, enable_prefab_system=False)
|
|
||||||
|
|
||||||
def test_LandscapeCanvas_LayerExtenderNodes_ComponentEntitySync(self, request, workspace, editor, launcher_platform):
|
|
||||||
from .EditorScripts import LayerExtenderNodes_ComponentEntitySync as test_module
|
|
||||||
self._run_test(request, workspace, editor, test_module, enable_prefab_system=False)
|
|
||||||
|
|
||||||
def test_LandscapeCanvas_Edit_DisabledNodeDuplication(self, request, workspace, editor, launcher_platform):
|
|
||||||
from .EditorScripts import Edit_DisabledNodeDuplication as test_module
|
|
||||||
self._run_test(request, workspace, editor, test_module, enable_prefab_system=False)
|
|
||||||
|
|
||||||
def test_LandscapeCanvas_Edit_UndoNodeDelete_SliceEntity(self, request, workspace, editor, launcher_platform):
|
|
||||||
from .EditorScripts import Edit_UndoNodeDelete_SliceEntity as test_module
|
|
||||||
self._run_test(request, workspace, editor, test_module, enable_prefab_system=False)
|
|
||||||
|
|
||||||
def test_LandscapeCanvas_NewGraph_CreatedSuccessfully(self, request, workspace, editor, launcher_platform):
|
|
||||||
from .EditorScripts import NewGraph_CreatedSuccessfully as test_module
|
|
||||||
self._run_test(request, workspace, editor, test_module, enable_prefab_system=False)
|
|
||||||
|
|
||||||
def test_LandscapeCanvas_Component_AddedRemoved(self, request, workspace, editor, launcher_platform):
|
|
||||||
from .EditorScripts import Component_AddedRemoved as test_module
|
|
||||||
self._run_test(request, workspace, editor, test_module, enable_prefab_system=False)
|
|
||||||
|
|
||||||
def test_LandscapeCanvas_GraphClosed_OnLevelChange(self, request, workspace, editor, launcher_platform):
|
|
||||||
from .EditorScripts import GraphClosed_OnLevelChange as test_module
|
|
||||||
self._run_test(request, workspace, editor, test_module, enable_prefab_system=False)
|
|
||||||
|
|
||||||
@pytest.mark.xfail(reason="https://github.com/o3de/o3de/issues/2201")
|
|
||||||
def test_LandscapeCanvas_GraphClosed_OnEntityDelete(self, request, workspace, editor, launcher_platform):
|
|
||||||
from .EditorScripts import GraphClosed_OnEntityDelete as test_module
|
|
||||||
self._run_test(request, workspace, editor, test_module, enable_prefab_system=False)
|
|
||||||
|
|
||||||
def test_LandscapeCanvas_GraphClosed_TabbedGraphClosesIndependently(self, request, workspace, editor, launcher_platform):
|
|
||||||
from .EditorScripts import GraphClosed_TabbedGraph as test_module
|
|
||||||
self._run_test(request, workspace, editor, test_module, enable_prefab_system=False)
|
|
||||||
|
|
||||||
def test_LandscapeCanvas_Slice_CreateInstantiate(self, request, workspace, editor, remove_test_slice, launcher_platform):
|
|
||||||
from .EditorScripts import Slice_CreateInstantiate as test_module
|
|
||||||
self._run_test(request, workspace, editor, test_module, enable_prefab_system=False)
|
|
||||||
|
|
||||||
def test_LandscapeCanvas_GradientModifierNodes_EntityCreatedOnNodeAdd(self, request, workspace, editor, launcher_platform):
|
|
||||||
from .EditorScripts import GradientModifierNodes_EntityCreatedOnNodeAdd as test_module
|
|
||||||
self._run_test(request, workspace, editor, test_module, enable_prefab_system=False)
|
|
||||||
|
|
||||||
def test_LandscapeCanvas_GradientModifierNodes_EntityRemovedOnNodeDelete(self, request, workspace, editor, launcher_platform):
|
|
||||||
from .EditorScripts import GradientModifierNodes_EntityRemovedOnNodeDelete as test_module
|
|
||||||
self._run_test(request, workspace, editor, test_module, enable_prefab_system=False)
|
|
||||||
|
|
||||||
def test_LandscapeCanvas_GradientNodes_DependentComponentsAdded(self, request, workspace, editor, launcher_platform):
|
|
||||||
from .EditorScripts import GradientNodes_DependentComponentsAdded as test_module
|
|
||||||
self._run_test(request, workspace, editor, test_module, enable_prefab_system=False)
|
|
||||||
|
|
||||||
def test_LandscapeCanvas_GradientNodes_EntityCreatedOnNodeAdd(self, request, workspace, editor, launcher_platform):
|
|
||||||
from .EditorScripts import GradientNodes_EntityCreatedOnNodeAdd as test_module
|
|
||||||
self._run_test(request, workspace, editor, test_module, enable_prefab_system=False)
|
|
||||||
|
|
||||||
def test_LandscapeCanvas_GradientNodes_EntityRemovedOnNodeDelete(self, request, workspace, editor, launcher_platform):
|
|
||||||
from .EditorScripts import GradientNodes_EntityRemovedOnNodeDelete as test_module
|
|
||||||
self._run_test(request, workspace, editor, test_module, enable_prefab_system=False)
|
|
||||||
|
|
||||||
def test_LandscapeCanvas_GraphUpdates_UpdateComponents(self, request, workspace, editor, launcher_platform):
|
|
||||||
from .EditorScripts import GraphUpdates_UpdateComponents as test_module
|
|
||||||
self._run_test(request, workspace, editor, test_module, enable_prefab_system=False)
|
|
||||||
|
|
||||||
def test_LandscapeCanvas_ComponentUpdates_UpdateGraph(self, request, workspace, editor, launcher_platform):
|
|
||||||
from .EditorScripts import ComponentUpdates_UpdateGraph as test_module
|
|
||||||
self._run_test(request, workspace, editor, test_module, enable_prefab_system=False)
|
|
||||||
|
|
||||||
def test_LandscapeCanvas_LayerBlender_NodeConstruction(self, request, workspace, editor, launcher_platform):
|
|
||||||
from .EditorScripts import LayerBlender_NodeConstruction as test_module
|
|
||||||
self._run_test(request, workspace, editor, test_module, enable_prefab_system=False)
|
|
||||||
|
|
||||||
def test_LandscapeCanvas_ShapeNodes_EntityCreatedOnNodeAdd(self, request, workspace, editor, launcher_platform):
|
|
||||||
from .EditorScripts import ShapeNodes_EntityCreatedOnNodeAdd as test_module
|
|
||||||
self._run_test(request, workspace, editor, test_module, enable_prefab_system=False)
|
|
||||||
|
|
||||||
def test_LandscapeCanvas_ShapeNodes_EntityRemovedOnNodeDelete(self, request, workspace, editor, launcher_platform):
|
|
||||||
from .EditorScripts import ShapeNodes_EntityRemovedOnNodeDelete as test_module
|
|
||||||
self._run_test(request, workspace, editor, test_module, enable_prefab_system=False)
|
|
||||||
@ -0,0 +1,53 @@
|
|||||||
|
{
|
||||||
|
"ContainerEntity": {
|
||||||
|
"Id": "Entity_[1146574390643]",
|
||||||
|
"Name": "Level",
|
||||||
|
"Components": {
|
||||||
|
"Component_[10641544592923449938]": {
|
||||||
|
"$type": "EditorInspectorComponent",
|
||||||
|
"Id": 10641544592923449938
|
||||||
|
},
|
||||||
|
"Component_[12039882709170782873]": {
|
||||||
|
"$type": "EditorOnlyEntityComponent",
|
||||||
|
"Id": 12039882709170782873
|
||||||
|
},
|
||||||
|
"Component_[12265484671603697631]": {
|
||||||
|
"$type": "EditorPendingCompositionComponent",
|
||||||
|
"Id": 12265484671603697631
|
||||||
|
},
|
||||||
|
"Component_[14126657869720434043]": {
|
||||||
|
"$type": "EditorEntitySortComponent",
|
||||||
|
"Id": 14126657869720434043
|
||||||
|
},
|
||||||
|
"Component_[15230859088967841193]": {
|
||||||
|
"$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
|
||||||
|
"Id": 15230859088967841193,
|
||||||
|
"Parent Entity": ""
|
||||||
|
},
|
||||||
|
"Component_[16239496886950819870]": {
|
||||||
|
"$type": "EditorDisabledCompositionComponent",
|
||||||
|
"Id": 16239496886950819870
|
||||||
|
},
|
||||||
|
"Component_[5688118765544765547]": {
|
||||||
|
"$type": "EditorEntityIconComponent",
|
||||||
|
"Id": 5688118765544765547
|
||||||
|
},
|
||||||
|
"Component_[6545738857812235305]": {
|
||||||
|
"$type": "SelectionComponent",
|
||||||
|
"Id": 6545738857812235305
|
||||||
|
},
|
||||||
|
"Component_[7247035804068349658]": {
|
||||||
|
"$type": "EditorPrefabComponent",
|
||||||
|
"Id": 7247035804068349658
|
||||||
|
},
|
||||||
|
"Component_[9307224322037797205]": {
|
||||||
|
"$type": "EditorLockComponent",
|
||||||
|
"Id": 9307224322037797205
|
||||||
|
},
|
||||||
|
"Component_[9562516168917670048]": {
|
||||||
|
"$type": "EditorVisibilityComponent",
|
||||||
|
"Id": 9562516168917670048
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,12 @@
|
|||||||
|
0,0,0,0,0,0
|
||||||
|
0,0,0,0,0,0
|
||||||
|
0,0,0,0,0,0
|
||||||
|
0,0,0,0,0,0
|
||||||
|
0,0,0,0,0,0
|
||||||
|
0,0,0,0,0,0
|
||||||
|
0,0,0,0,0,0
|
||||||
|
0,0,0,0,0,0
|
||||||
|
0,0,0,0,0,0
|
||||||
|
0,0,0,0,0,0
|
||||||
|
0,0,0,0,0,0
|
||||||
|
0,0,0,0,0,0
|
||||||
@ -0,0 +1,151 @@
|
|||||||
|
{
|
||||||
|
"ContainerEntity": {
|
||||||
|
"Id": "ContainerEntity",
|
||||||
|
"Name": "Player",
|
||||||
|
"Components": {
|
||||||
|
"Component_[10626669441604518614]": {
|
||||||
|
"$type": "EditorPrefabComponent",
|
||||||
|
"Id": 10626669441604518614
|
||||||
|
},
|
||||||
|
"Component_[15284109105474306026]": {
|
||||||
|
"$type": "EditorVisibilityComponent",
|
||||||
|
"Id": 15284109105474306026
|
||||||
|
},
|
||||||
|
"Component_[1884250773831675865]": {
|
||||||
|
"$type": "SelectionComponent",
|
||||||
|
"Id": 1884250773831675865
|
||||||
|
},
|
||||||
|
"Component_[3027124663594865592]": {
|
||||||
|
"$type": "EditorInspectorComponent",
|
||||||
|
"Id": 3027124663594865592
|
||||||
|
},
|
||||||
|
"Component_[3314300526416851038]": {
|
||||||
|
"$type": "EditorEntitySortComponent",
|
||||||
|
"Id": 3314300526416851038,
|
||||||
|
"Child Entity Order": [
|
||||||
|
"Entity_[1340484004600]"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"Component_[5583377204116393478]": {
|
||||||
|
"$type": "EditorEntityIconComponent",
|
||||||
|
"Id": 5583377204116393478
|
||||||
|
},
|
||||||
|
"Component_[5897955848881060165]": {
|
||||||
|
"$type": "EditorLockComponent",
|
||||||
|
"Id": 5897955848881060165
|
||||||
|
},
|
||||||
|
"Component_[6405389103180201977]": {
|
||||||
|
"$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
|
||||||
|
"Id": 6405389103180201977,
|
||||||
|
"Parent Entity": ""
|
||||||
|
},
|
||||||
|
"Component_[7695912346724202125]": {
|
||||||
|
"$type": "EditorDisabledCompositionComponent",
|
||||||
|
"Id": 7695912346724202125
|
||||||
|
},
|
||||||
|
"Component_[775363990560391238]": {
|
||||||
|
"$type": "EditorOnlyEntityComponent",
|
||||||
|
"Id": 775363990560391238
|
||||||
|
},
|
||||||
|
"Component_[904355854135646057]": {
|
||||||
|
"$type": "EditorPendingCompositionComponent",
|
||||||
|
"Id": 904355854135646057
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Entities": {
|
||||||
|
"Entity_[1340484004600]": {
|
||||||
|
"Id": "Entity_[1340484004600]",
|
||||||
|
"Name": "Player",
|
||||||
|
"Components": {
|
||||||
|
"Component_[12294726333564087591]": {
|
||||||
|
"$type": "SelectionComponent",
|
||||||
|
"Id": 12294726333564087591
|
||||||
|
},
|
||||||
|
"Component_[13587084088242540786]": {
|
||||||
|
"$type": "EditorInspectorComponent",
|
||||||
|
"Id": 13587084088242540786,
|
||||||
|
"ComponentOrderEntryArray": [
|
||||||
|
{
|
||||||
|
"ComponentId": 6819443882832501114
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ComponentId": 4337571454344109612,
|
||||||
|
"SortIndex": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ComponentId": 16457408099527309065,
|
||||||
|
"SortIndex": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ComponentId": 5577505593558922067,
|
||||||
|
"SortIndex": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"Component_[14335168881008289852]": {
|
||||||
|
"$type": "EditorEntitySortComponent",
|
||||||
|
"Id": 14335168881008289852
|
||||||
|
},
|
||||||
|
"Component_[16308902899170829847]": {
|
||||||
|
"$type": "EditorVisibilityComponent",
|
||||||
|
"Id": 16308902899170829847
|
||||||
|
},
|
||||||
|
"Component_[16457408099527309065]": {
|
||||||
|
"$type": "GenericComponentWrapper",
|
||||||
|
"Id": 16457408099527309065,
|
||||||
|
"m_template": {
|
||||||
|
"$type": "Multiplayer::NetworkTransformComponent"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Component_[16541569566865026527]": {
|
||||||
|
"$type": "EditorOnlyEntityComponent",
|
||||||
|
"Id": 16541569566865026527
|
||||||
|
},
|
||||||
|
"Component_[2002761223483048905]": {
|
||||||
|
"$type": "EditorPendingCompositionComponent",
|
||||||
|
"Id": 2002761223483048905
|
||||||
|
},
|
||||||
|
"Component_[4337571454344109612]": {
|
||||||
|
"$type": "GenericComponentWrapper",
|
||||||
|
"Id": 4337571454344109612,
|
||||||
|
"m_template": {
|
||||||
|
"$type": "NetBindComponent"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Component_[477591477979440744]": {
|
||||||
|
"$type": "EditorLockComponent",
|
||||||
|
"Id": 477591477979440744
|
||||||
|
},
|
||||||
|
"Component_[5577505593558922067]": {
|
||||||
|
"$type": "AZ::Render::EditorMeshComponent",
|
||||||
|
"Id": 5577505593558922067,
|
||||||
|
"Controller": {
|
||||||
|
"Configuration": {
|
||||||
|
"ModelAsset": {
|
||||||
|
"assetId": {
|
||||||
|
"guid": "{6DE0E9A8-A1C7-5D0F-9407-4E627C1F223C}",
|
||||||
|
"subId": 284780167
|
||||||
|
},
|
||||||
|
"assetHint": "models/sphere.azmodel"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Component_[5828214869455694702]": {
|
||||||
|
"$type": "EditorDisabledCompositionComponent",
|
||||||
|
"Id": 5828214869455694702
|
||||||
|
},
|
||||||
|
"Component_[6819443882832501114]": {
|
||||||
|
"$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
|
||||||
|
"Id": 6819443882832501114,
|
||||||
|
"Parent Entity": "ContainerEntity"
|
||||||
|
},
|
||||||
|
"Component_[8838623765985560328]": {
|
||||||
|
"$type": "EditorEntityIconComponent",
|
||||||
|
"Id": 8838623765985560328
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,580 @@
|
|||||||
|
{
|
||||||
|
"ContainerEntity": {
|
||||||
|
"Id": "Entity_[1146574390643]",
|
||||||
|
"Name": "Level",
|
||||||
|
"Components": {
|
||||||
|
"Component_[10641544592923449938]": {
|
||||||
|
"$type": "EditorInspectorComponent",
|
||||||
|
"Id": 10641544592923449938
|
||||||
|
},
|
||||||
|
"Component_[12039882709170782873]": {
|
||||||
|
"$type": "EditorOnlyEntityComponent",
|
||||||
|
"Id": 12039882709170782873
|
||||||
|
},
|
||||||
|
"Component_[12265484671603697631]": {
|
||||||
|
"$type": "EditorPendingCompositionComponent",
|
||||||
|
"Id": 12265484671603697631
|
||||||
|
},
|
||||||
|
"Component_[14126657869720434043]": {
|
||||||
|
"$type": "EditorEntitySortComponent",
|
||||||
|
"Id": 14126657869720434043,
|
||||||
|
"Child Entity Order": [
|
||||||
|
"Entity_[1176639161715]",
|
||||||
|
"Entity_[806656324666]"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"Component_[15230859088967841193]": {
|
||||||
|
"$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
|
||||||
|
"Id": 15230859088967841193,
|
||||||
|
"Parent Entity": ""
|
||||||
|
},
|
||||||
|
"Component_[16239496886950819870]": {
|
||||||
|
"$type": "EditorDisabledCompositionComponent",
|
||||||
|
"Id": 16239496886950819870
|
||||||
|
},
|
||||||
|
"Component_[5688118765544765547]": {
|
||||||
|
"$type": "EditorEntityIconComponent",
|
||||||
|
"Id": 5688118765544765547
|
||||||
|
},
|
||||||
|
"Component_[6545738857812235305]": {
|
||||||
|
"$type": "SelectionComponent",
|
||||||
|
"Id": 6545738857812235305
|
||||||
|
},
|
||||||
|
"Component_[7247035804068349658]": {
|
||||||
|
"$type": "EditorPrefabComponent",
|
||||||
|
"Id": 7247035804068349658
|
||||||
|
},
|
||||||
|
"Component_[9307224322037797205]": {
|
||||||
|
"$type": "EditorLockComponent",
|
||||||
|
"Id": 9307224322037797205
|
||||||
|
},
|
||||||
|
"Component_[9562516168917670048]": {
|
||||||
|
"$type": "EditorVisibilityComponent",
|
||||||
|
"Id": 9562516168917670048
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Entities": {
|
||||||
|
"Entity_[1155164325235]": {
|
||||||
|
"Id": "Entity_[1155164325235]",
|
||||||
|
"Name": "Sun",
|
||||||
|
"Components": {
|
||||||
|
"Component_[10440557478882592717]": {
|
||||||
|
"$type": "SelectionComponent",
|
||||||
|
"Id": 10440557478882592717
|
||||||
|
},
|
||||||
|
"Component_[13620450453324765907]": {
|
||||||
|
"$type": "EditorLockComponent",
|
||||||
|
"Id": 13620450453324765907
|
||||||
|
},
|
||||||
|
"Component_[2134313378593666258]": {
|
||||||
|
"$type": "EditorInspectorComponent",
|
||||||
|
"Id": 2134313378593666258
|
||||||
|
},
|
||||||
|
"Component_[234010807770404186]": {
|
||||||
|
"$type": "EditorVisibilityComponent",
|
||||||
|
"Id": 234010807770404186
|
||||||
|
},
|
||||||
|
"Component_[2970359110423865725]": {
|
||||||
|
"$type": "EditorEntityIconComponent",
|
||||||
|
"Id": 2970359110423865725
|
||||||
|
},
|
||||||
|
"Component_[3722854130373041803]": {
|
||||||
|
"$type": "EditorOnlyEntityComponent",
|
||||||
|
"Id": 3722854130373041803
|
||||||
|
},
|
||||||
|
"Component_[5992533738676323195]": {
|
||||||
|
"$type": "EditorDisabledCompositionComponent",
|
||||||
|
"Id": 5992533738676323195
|
||||||
|
},
|
||||||
|
"Component_[7378860763541895402]": {
|
||||||
|
"$type": "AZ::Render::EditorDirectionalLightComponent",
|
||||||
|
"Id": 7378860763541895402,
|
||||||
|
"Controller": {
|
||||||
|
"Configuration": {
|
||||||
|
"Intensity": 1.0,
|
||||||
|
"CameraEntityId": "",
|
||||||
|
"ShadowFilterMethod": 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Component_[7892834440890947578]": {
|
||||||
|
"$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
|
||||||
|
"Id": 7892834440890947578,
|
||||||
|
"Parent Entity": "Entity_[1176639161715]",
|
||||||
|
"Transform Data": {
|
||||||
|
"Translate": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
13.487043380737305
|
||||||
|
],
|
||||||
|
"Rotate": [
|
||||||
|
-76.13099670410156,
|
||||||
|
-0.847000002861023,
|
||||||
|
-15.8100004196167
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Component_[8599729549570828259]": {
|
||||||
|
"$type": "EditorEntitySortComponent",
|
||||||
|
"Id": 8599729549570828259
|
||||||
|
},
|
||||||
|
"Component_[952797371922080273]": {
|
||||||
|
"$type": "EditorPendingCompositionComponent",
|
||||||
|
"Id": 952797371922080273
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Entity_[1159459292531]": {
|
||||||
|
"Id": "Entity_[1159459292531]",
|
||||||
|
"Name": "Ground",
|
||||||
|
"Components": {
|
||||||
|
"Component_[11701138785793981042]": {
|
||||||
|
"$type": "SelectionComponent",
|
||||||
|
"Id": 11701138785793981042
|
||||||
|
},
|
||||||
|
"Component_[12260880513256986252]": {
|
||||||
|
"$type": "EditorEntityIconComponent",
|
||||||
|
"Id": 12260880513256986252
|
||||||
|
},
|
||||||
|
"Component_[13711420870643673468]": {
|
||||||
|
"$type": "EditorDisabledCompositionComponent",
|
||||||
|
"Id": 13711420870643673468
|
||||||
|
},
|
||||||
|
"Component_[138002849734991713]": {
|
||||||
|
"$type": "EditorOnlyEntityComponent",
|
||||||
|
"Id": 138002849734991713
|
||||||
|
},
|
||||||
|
"Component_[16578565737331764849]": {
|
||||||
|
"$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
|
||||||
|
"Id": 16578565737331764849,
|
||||||
|
"Parent Entity": "Entity_[1176639161715]"
|
||||||
|
},
|
||||||
|
"Component_[16919232076966545697]": {
|
||||||
|
"$type": "EditorInspectorComponent",
|
||||||
|
"Id": 16919232076966545697
|
||||||
|
},
|
||||||
|
"Component_[5182430712893438093]": {
|
||||||
|
"$type": "EditorMaterialComponent",
|
||||||
|
"Id": 5182430712893438093
|
||||||
|
},
|
||||||
|
"Component_[5675108321710651991]": {
|
||||||
|
"$type": "AZ::Render::EditorMeshComponent",
|
||||||
|
"Id": 5675108321710651991,
|
||||||
|
"Controller": {
|
||||||
|
"Configuration": {
|
||||||
|
"ModelAsset": {
|
||||||
|
"assetId": {
|
||||||
|
"guid": "{0CD745C0-6AA8-569A-A68A-73A3270986C4}",
|
||||||
|
"subId": 277889906
|
||||||
|
},
|
||||||
|
"assetHint": "objects/groudplane/groundplane_512x512m.azmodel"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Component_[5681893399601237518]": {
|
||||||
|
"$type": "EditorEntitySortComponent",
|
||||||
|
"Id": 5681893399601237518
|
||||||
|
},
|
||||||
|
"Component_[592692962543397545]": {
|
||||||
|
"$type": "EditorPendingCompositionComponent",
|
||||||
|
"Id": 592692962543397545
|
||||||
|
},
|
||||||
|
"Component_[7090012899106946164]": {
|
||||||
|
"$type": "EditorLockComponent",
|
||||||
|
"Id": 7090012899106946164
|
||||||
|
},
|
||||||
|
"Component_[9410832619875640998]": {
|
||||||
|
"$type": "EditorVisibilityComponent",
|
||||||
|
"Id": 9410832619875640998
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Entity_[1163754259827]": {
|
||||||
|
"Id": "Entity_[1163754259827]",
|
||||||
|
"Name": "Camera",
|
||||||
|
"Components": {
|
||||||
|
"Component_[11895140916889160460]": {
|
||||||
|
"$type": "EditorEntityIconComponent",
|
||||||
|
"Id": 11895140916889160460
|
||||||
|
},
|
||||||
|
"Component_[16880285896855930892]": {
|
||||||
|
"$type": "{CA11DA46-29FF-4083-B5F6-E02C3A8C3A3D} EditorCameraComponent",
|
||||||
|
"Id": 16880285896855930892,
|
||||||
|
"Controller": {
|
||||||
|
"Configuration": {
|
||||||
|
"Field of View": 55.0,
|
||||||
|
"EditorEntityId": 9021008456353177945
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Component_[17187464423780271193]": {
|
||||||
|
"$type": "EditorLockComponent",
|
||||||
|
"Id": 17187464423780271193
|
||||||
|
},
|
||||||
|
"Component_[17495696818315413311]": {
|
||||||
|
"$type": "EditorEntitySortComponent",
|
||||||
|
"Id": 17495696818315413311
|
||||||
|
},
|
||||||
|
"Component_[18086214374043522055]": {
|
||||||
|
"$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
|
||||||
|
"Id": 18086214374043522055,
|
||||||
|
"Parent Entity": "Entity_[1176639161715]",
|
||||||
|
"Transform Data": {
|
||||||
|
"Translate": [
|
||||||
|
-2.3000001907348633,
|
||||||
|
-3.9368600845336914,
|
||||||
|
1.0
|
||||||
|
],
|
||||||
|
"Rotate": [
|
||||||
|
-2.050307512283325,
|
||||||
|
1.9552897214889526,
|
||||||
|
-43.623355865478516
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Component_[18387556550380114975]": {
|
||||||
|
"$type": "SelectionComponent",
|
||||||
|
"Id": 18387556550380114975
|
||||||
|
},
|
||||||
|
"Component_[2654521436129313160]": {
|
||||||
|
"$type": "EditorVisibilityComponent",
|
||||||
|
"Id": 2654521436129313160
|
||||||
|
},
|
||||||
|
"Component_[5265045084611556958]": {
|
||||||
|
"$type": "EditorDisabledCompositionComponent",
|
||||||
|
"Id": 5265045084611556958
|
||||||
|
},
|
||||||
|
"Component_[7169798125182238623]": {
|
||||||
|
"$type": "EditorPendingCompositionComponent",
|
||||||
|
"Id": 7169798125182238623
|
||||||
|
},
|
||||||
|
"Component_[7255796294953281766]": {
|
||||||
|
"$type": "GenericComponentWrapper",
|
||||||
|
"Id": 7255796294953281766,
|
||||||
|
"m_template": {
|
||||||
|
"$type": "FlyCameraInputComponent"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Component_[8866210352157164042]": {
|
||||||
|
"$type": "EditorInspectorComponent",
|
||||||
|
"Id": 8866210352157164042
|
||||||
|
},
|
||||||
|
"Component_[9129253381063760879]": {
|
||||||
|
"$type": "EditorOnlyEntityComponent",
|
||||||
|
"Id": 9129253381063760879
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Entity_[1168049227123]": {
|
||||||
|
"Id": "Entity_[1168049227123]",
|
||||||
|
"Name": "Grid",
|
||||||
|
"Components": {
|
||||||
|
"Component_[11443347433215807130]": {
|
||||||
|
"$type": "EditorEntityIconComponent",
|
||||||
|
"Id": 11443347433215807130
|
||||||
|
},
|
||||||
|
"Component_[11779275529534764488]": {
|
||||||
|
"$type": "SelectionComponent",
|
||||||
|
"Id": 11779275529534764488
|
||||||
|
},
|
||||||
|
"Component_[14249419413039427459]": {
|
||||||
|
"$type": "EditorInspectorComponent",
|
||||||
|
"Id": 14249419413039427459
|
||||||
|
},
|
||||||
|
"Component_[15448581635946161318]": {
|
||||||
|
"$type": "AZ::Render::EditorGridComponent",
|
||||||
|
"Id": 15448581635946161318,
|
||||||
|
"Controller": {
|
||||||
|
"Configuration": {
|
||||||
|
"primarySpacing": 4.0,
|
||||||
|
"primaryColor": [
|
||||||
|
0.501960813999176,
|
||||||
|
0.501960813999176,
|
||||||
|
0.501960813999176
|
||||||
|
],
|
||||||
|
"secondarySpacing": 0.5,
|
||||||
|
"secondaryColor": [
|
||||||
|
0.250980406999588,
|
||||||
|
0.250980406999588,
|
||||||
|
0.250980406999588
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Component_[1843303322527297409]": {
|
||||||
|
"$type": "EditorDisabledCompositionComponent",
|
||||||
|
"Id": 1843303322527297409
|
||||||
|
},
|
||||||
|
"Component_[380249072065273654]": {
|
||||||
|
"$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
|
||||||
|
"Id": 380249072065273654,
|
||||||
|
"Parent Entity": "Entity_[1176639161715]"
|
||||||
|
},
|
||||||
|
"Component_[7476660583684339787]": {
|
||||||
|
"$type": "EditorPendingCompositionComponent",
|
||||||
|
"Id": 7476660583684339787
|
||||||
|
},
|
||||||
|
"Component_[7557626501215118375]": {
|
||||||
|
"$type": "EditorEntitySortComponent",
|
||||||
|
"Id": 7557626501215118375
|
||||||
|
},
|
||||||
|
"Component_[7984048488947365511]": {
|
||||||
|
"$type": "EditorVisibilityComponent",
|
||||||
|
"Id": 7984048488947365511
|
||||||
|
},
|
||||||
|
"Component_[8118181039276487398]": {
|
||||||
|
"$type": "EditorOnlyEntityComponent",
|
||||||
|
"Id": 8118181039276487398
|
||||||
|
},
|
||||||
|
"Component_[9189909764215270515]": {
|
||||||
|
"$type": "EditorLockComponent",
|
||||||
|
"Id": 9189909764215270515
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Entity_[1176639161715]": {
|
||||||
|
"Id": "Entity_[1176639161715]",
|
||||||
|
"Name": "Atom Default Environment",
|
||||||
|
"Components": {
|
||||||
|
"Component_[10757302973393310045]": {
|
||||||
|
"$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
|
||||||
|
"Id": 10757302973393310045,
|
||||||
|
"Parent Entity": "Entity_[1146574390643]"
|
||||||
|
},
|
||||||
|
"Component_[14505817420424255464]": {
|
||||||
|
"$type": "EditorInspectorComponent",
|
||||||
|
"Id": 14505817420424255464,
|
||||||
|
"ComponentOrderEntryArray": [
|
||||||
|
{
|
||||||
|
"ComponentId": 10757302973393310045
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"Component_[14988041764659020032]": {
|
||||||
|
"$type": "EditorLockComponent",
|
||||||
|
"Id": 14988041764659020032
|
||||||
|
},
|
||||||
|
"Component_[15808690248755038124]": {
|
||||||
|
"$type": "SelectionComponent",
|
||||||
|
"Id": 15808690248755038124
|
||||||
|
},
|
||||||
|
"Component_[15900837685796817138]": {
|
||||||
|
"$type": "EditorVisibilityComponent",
|
||||||
|
"Id": 15900837685796817138
|
||||||
|
},
|
||||||
|
"Component_[3298767348226484884]": {
|
||||||
|
"$type": "EditorOnlyEntityComponent",
|
||||||
|
"Id": 3298767348226484884
|
||||||
|
},
|
||||||
|
"Component_[4076975109609220594]": {
|
||||||
|
"$type": "EditorPendingCompositionComponent",
|
||||||
|
"Id": 4076975109609220594
|
||||||
|
},
|
||||||
|
"Component_[5679760548946028854]": {
|
||||||
|
"$type": "EditorDisabledCompositionComponent",
|
||||||
|
"Id": 5679760548946028854
|
||||||
|
},
|
||||||
|
"Component_[5855590796136709437]": {
|
||||||
|
"$type": "EditorEntitySortComponent",
|
||||||
|
"Id": 5855590796136709437,
|
||||||
|
"Child Entity Order": [
|
||||||
|
"Entity_[1155164325235]",
|
||||||
|
"Entity_[1180934129011]",
|
||||||
|
"Entity_[1168049227123]",
|
||||||
|
"Entity_[1163754259827]",
|
||||||
|
"Entity_[1159459292531]"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"Component_[9277695270015777859]": {
|
||||||
|
"$type": "EditorEntityIconComponent",
|
||||||
|
"Id": 9277695270015777859
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Entity_[1180934129011]": {
|
||||||
|
"Id": "Entity_[1180934129011]",
|
||||||
|
"Name": "Global Sky",
|
||||||
|
"Components": {
|
||||||
|
"Component_[11231930600558681245]": {
|
||||||
|
"$type": "AZ::Render::EditorHDRiSkyboxComponent",
|
||||||
|
"Id": 11231930600558681245,
|
||||||
|
"Controller": {
|
||||||
|
"Configuration": {
|
||||||
|
"CubemapAsset": {
|
||||||
|
"assetId": {
|
||||||
|
"guid": "{215E47FD-D181-5832-B1AB-91673ABF6399}",
|
||||||
|
"subId": 1000
|
||||||
|
},
|
||||||
|
"assetHint": "lightingpresets/highcontrast/goegap_4k_skyboxcm.exr.streamingimage"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Component_[11980494120202836095]": {
|
||||||
|
"$type": "SelectionComponent",
|
||||||
|
"Id": 11980494120202836095
|
||||||
|
},
|
||||||
|
"Component_[1428633914413949476]": {
|
||||||
|
"$type": "EditorLockComponent",
|
||||||
|
"Id": 1428633914413949476
|
||||||
|
},
|
||||||
|
"Component_[14936200426671614999]": {
|
||||||
|
"$type": "AZ::Render::EditorImageBasedLightComponent",
|
||||||
|
"Id": 14936200426671614999,
|
||||||
|
"Controller": {
|
||||||
|
"Configuration": {
|
||||||
|
"diffuseImageAsset": {
|
||||||
|
"assetId": {
|
||||||
|
"guid": "{3FD09945-D0F2-55C8-B9AF-B2FD421FE3BE}",
|
||||||
|
"subId": 3000
|
||||||
|
},
|
||||||
|
"assetHint": "lightingpresets/highcontrast/goegap_4k_iblglobalcm_ibldiffuse.exr.streamingimage"
|
||||||
|
},
|
||||||
|
"specularImageAsset": {
|
||||||
|
"assetId": {
|
||||||
|
"guid": "{3FD09945-D0F2-55C8-B9AF-B2FD421FE3BE}",
|
||||||
|
"subId": 2000
|
||||||
|
},
|
||||||
|
"assetHint": "lightingpresets/highcontrast/goegap_4k_iblglobalcm_iblspecular.exr.streamingimage"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Component_[14994774102579326069]": {
|
||||||
|
"$type": "EditorDisabledCompositionComponent",
|
||||||
|
"Id": 14994774102579326069
|
||||||
|
},
|
||||||
|
"Component_[15417479889044493340]": {
|
||||||
|
"$type": "EditorPendingCompositionComponent",
|
||||||
|
"Id": 15417479889044493340
|
||||||
|
},
|
||||||
|
"Component_[15826613364991382688]": {
|
||||||
|
"$type": "EditorEntitySortComponent",
|
||||||
|
"Id": 15826613364991382688
|
||||||
|
},
|
||||||
|
"Component_[1665003113283562343]": {
|
||||||
|
"$type": "EditorOnlyEntityComponent",
|
||||||
|
"Id": 1665003113283562343
|
||||||
|
},
|
||||||
|
"Component_[3704934735944502280]": {
|
||||||
|
"$type": "EditorEntityIconComponent",
|
||||||
|
"Id": 3704934735944502280
|
||||||
|
},
|
||||||
|
"Component_[5698542331457326479]": {
|
||||||
|
"$type": "EditorVisibilityComponent",
|
||||||
|
"Id": 5698542331457326479
|
||||||
|
},
|
||||||
|
"Component_[6644513399057217122]": {
|
||||||
|
"$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
|
||||||
|
"Id": 6644513399057217122,
|
||||||
|
"Parent Entity": "Entity_[1176639161715]"
|
||||||
|
},
|
||||||
|
"Component_[931091830724002070]": {
|
||||||
|
"$type": "EditorInspectorComponent",
|
||||||
|
"Id": 931091830724002070
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Entity_[806656324666]": {
|
||||||
|
"Id": "Entity_[806656324666]",
|
||||||
|
"Name": "NetEntity",
|
||||||
|
"Components": {
|
||||||
|
"Component_[10272449525230713408]": {
|
||||||
|
"$type": "EditorScriptCanvasComponent",
|
||||||
|
"Id": 10272449525230713408,
|
||||||
|
"m_name": "SimpleNetworkLevelEntity.scriptcanvas",
|
||||||
|
"runtimeDataIsValid": true,
|
||||||
|
"runtimeDataOverrides": {
|
||||||
|
"source": {
|
||||||
|
"id": "{C8F17F94-1225-5FFB-A89F-7C5546FF9DD2}",
|
||||||
|
"path": "C:/prj/o3de/AutomatedTesting/Levels/Multiplayer/SimpleNetworkLevelEntity/SimpleNetworkLevelEntity.scriptcanvas"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceHandle": {
|
||||||
|
"id": "{C8F17F94-1225-5FFB-A89F-7C5546FF9DD2}",
|
||||||
|
"path": "C:/prj/o3de/AutomatedTesting/Levels/Multiplayer/SimpleNetworkLevelEntity/SimpleNetworkLevelEntity.scriptcanvas"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Component_[12604265186664827718]": {
|
||||||
|
"$type": "EditorDisabledCompositionComponent",
|
||||||
|
"Id": 12604265186664827718
|
||||||
|
},
|
||||||
|
"Component_[12971088454284742740]": {
|
||||||
|
"$type": "EditorInspectorComponent",
|
||||||
|
"Id": 12971088454284742740
|
||||||
|
},
|
||||||
|
"Component_[13637345797899267673]": {
|
||||||
|
"$type": "EditorPendingCompositionComponent",
|
||||||
|
"Id": 13637345797899267673
|
||||||
|
},
|
||||||
|
"Component_[14691827217729577086]": {
|
||||||
|
"$type": "EditorVisibilityComponent",
|
||||||
|
"Id": 14691827217729577086
|
||||||
|
},
|
||||||
|
"Component_[17587769654029626028]": {
|
||||||
|
"$type": "AZ::Render::EditorMeshComponent",
|
||||||
|
"Id": 17587769654029626028,
|
||||||
|
"Controller": {
|
||||||
|
"Configuration": {
|
||||||
|
"ModelAsset": {
|
||||||
|
"assetId": {
|
||||||
|
"guid": "{6DE0E9A8-A1C7-5D0F-9407-4E627C1F223C}",
|
||||||
|
"subId": 284780167
|
||||||
|
},
|
||||||
|
"assetHint": "models/sphere.azmodel"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Component_[3583806849894952953]": {
|
||||||
|
"$type": "EditorOnlyEntityComponent",
|
||||||
|
"Id": 3583806849894952953
|
||||||
|
},
|
||||||
|
"Component_[3992057042487734240]": {
|
||||||
|
"$type": "EditorLockComponent",
|
||||||
|
"Id": 3992057042487734240
|
||||||
|
},
|
||||||
|
"Component_[4205899043279271481]": {
|
||||||
|
"$type": "GenericComponentWrapper",
|
||||||
|
"Id": 4205899043279271481,
|
||||||
|
"m_template": {
|
||||||
|
"$type": "Multiplayer::NetworkTransformComponent"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Component_[4416976521140638764]": {
|
||||||
|
"$type": "EditorEntityIconComponent",
|
||||||
|
"Id": 4416976521140638764
|
||||||
|
},
|
||||||
|
"Component_[4951162661196722987]": {
|
||||||
|
"$type": "EditorEntitySortComponent",
|
||||||
|
"Id": 4951162661196722987
|
||||||
|
},
|
||||||
|
"Component_[57491843687005111]": {
|
||||||
|
"$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
|
||||||
|
"Id": 57491843687005111,
|
||||||
|
"Parent Entity": "Entity_[1146574390643]",
|
||||||
|
"Transform Data": {
|
||||||
|
"Translate": [
|
||||||
|
-0.010266244411468506,
|
||||||
|
0.09999752044677734,
|
||||||
|
0.4922151565551758
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Component_[7427201282284088219]": {
|
||||||
|
"$type": "SelectionComponent",
|
||||||
|
"Id": 7427201282284088219
|
||||||
|
},
|
||||||
|
"Component_[9767802049284917261]": {
|
||||||
|
"$type": "GenericComponentWrapper",
|
||||||
|
"Id": 9767802049284917261,
|
||||||
|
"m_template": {
|
||||||
|
"$type": "NetBindComponent"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,228 @@
|
|||||||
|
{
|
||||||
|
"Type": "JsonSerialization",
|
||||||
|
"Version": 1,
|
||||||
|
"ClassName": "ScriptCanvasData",
|
||||||
|
"ClassData": {
|
||||||
|
"m_scriptCanvas": {
|
||||||
|
"Id": {
|
||||||
|
"id": 5227099818161821361
|
||||||
|
},
|
||||||
|
"Name": "Script Canvas Graph",
|
||||||
|
"Components": {
|
||||||
|
"Component_[14745706451564425001]": {
|
||||||
|
"$type": "EditorGraphVariableManagerComponent",
|
||||||
|
"Id": 14745706451564425001
|
||||||
|
},
|
||||||
|
"Component_[6188351434280490877]": {
|
||||||
|
"$type": "EditorGraph",
|
||||||
|
"Id": 6188351434280490877,
|
||||||
|
"m_graphData": {
|
||||||
|
"m_nodes": [
|
||||||
|
{
|
||||||
|
"Id": {
|
||||||
|
"id": 1181151842701
|
||||||
|
},
|
||||||
|
"Name": "SC-Node(Print)",
|
||||||
|
"Components": {
|
||||||
|
"Component_[11204048151736284490]": {
|
||||||
|
"$type": "Print",
|
||||||
|
"Id": 11204048151736284490,
|
||||||
|
"Slots": [
|
||||||
|
{
|
||||||
|
"id": {
|
||||||
|
"m_id": "{A417FF98-493E-4DE6-AD3A-E7A1848661E4}"
|
||||||
|
},
|
||||||
|
"contracts": [
|
||||||
|
{
|
||||||
|
"$type": "SlotTypeContract"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"slotName": "In",
|
||||||
|
"toolTip": "Input signal",
|
||||||
|
"Descriptor": {
|
||||||
|
"ConnectionType": 1,
|
||||||
|
"SlotType": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": {
|
||||||
|
"m_id": "{38BC2AB1-7654-407E-9903-4B5D77EDB6F3}"
|
||||||
|
},
|
||||||
|
"contracts": [
|
||||||
|
{
|
||||||
|
"$type": "SlotTypeContract"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"slotName": "Out",
|
||||||
|
"Descriptor": {
|
||||||
|
"ConnectionType": 2,
|
||||||
|
"SlotType": 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"m_format": "SimpleNetworkLevelEntity: On Graph Start\n",
|
||||||
|
"m_unresolvedString": [
|
||||||
|
"SimpleNetworkLevelEntity: On Graph Start\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": {
|
||||||
|
"id": 811784655245
|
||||||
|
},
|
||||||
|
"Name": "SC-Node(Start)",
|
||||||
|
"Components": {
|
||||||
|
"Component_[2986280341871382503]": {
|
||||||
|
"$type": "Start",
|
||||||
|
"Id": 2986280341871382503,
|
||||||
|
"Slots": [
|
||||||
|
{
|
||||||
|
"id": {
|
||||||
|
"m_id": "{61FBEFC6-23BA-4A53-89BF-D0D0E834608C}"
|
||||||
|
},
|
||||||
|
"contracts": [
|
||||||
|
{
|
||||||
|
"$type": "SlotTypeContract"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"slotName": "Out",
|
||||||
|
"toolTip": "Signaled when the entity that owns this graph is fully activated.",
|
||||||
|
"Descriptor": {
|
||||||
|
"ConnectionType": 2,
|
||||||
|
"SlotType": 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"m_connections": [
|
||||||
|
{
|
||||||
|
"Id": {
|
||||||
|
"id": 2521181639053
|
||||||
|
},
|
||||||
|
"Name": "srcEndpoint=(On Graph Start: Out), destEndpoint=(Print: In)",
|
||||||
|
"Components": {
|
||||||
|
"Component_[16295428600276205051]": {
|
||||||
|
"$type": "{64CA5016-E803-4AC4-9A36-BDA2C890C6EB} Connection",
|
||||||
|
"Id": 16295428600276205051,
|
||||||
|
"sourceEndpoint": {
|
||||||
|
"nodeId": {
|
||||||
|
"id": 811784655245
|
||||||
|
},
|
||||||
|
"slotId": {
|
||||||
|
"m_id": "{61FBEFC6-23BA-4A53-89BF-D0D0E834608C}"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"targetEndpoint": {
|
||||||
|
"nodeId": {
|
||||||
|
"id": 1181151842701
|
||||||
|
},
|
||||||
|
"slotId": {
|
||||||
|
"m_id": "{A417FF98-493E-4DE6-AD3A-E7A1848661E4}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"m_assetType": "{00000000-0000-0000-D033-B2489A010000}",
|
||||||
|
"versionData": {
|
||||||
|
"_grammarVersion": 1,
|
||||||
|
"_runtimeVersion": 1,
|
||||||
|
"_fileVersion": 1
|
||||||
|
},
|
||||||
|
"GraphCanvasData": [
|
||||||
|
{
|
||||||
|
"Key": {
|
||||||
|
"id": 811784655245
|
||||||
|
},
|
||||||
|
"Value": {
|
||||||
|
"ComponentData": {
|
||||||
|
"{24CB38BB-1705-4EC5-8F63-B574571B4DCD}": {
|
||||||
|
"$type": "NodeSaveData"
|
||||||
|
},
|
||||||
|
"{328FF15C-C302-458F-A43D-E1794DE0904E}": {
|
||||||
|
"$type": "GeneralNodeTitleComponentSaveData",
|
||||||
|
"PaletteOverride": "TimeNodeTitlePalette"
|
||||||
|
},
|
||||||
|
"{7CC444B1-F9B3-41B5-841B-0C4F2179F111}": {
|
||||||
|
"$type": "GeometrySaveData",
|
||||||
|
"Position": [
|
||||||
|
340.0,
|
||||||
|
180.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"{B0B99C8A-03AF-4CF6-A926-F65C874C3D97}": {
|
||||||
|
"$type": "StylingComponentSaveData"
|
||||||
|
},
|
||||||
|
"{B1F49A35-8408-40DA-B79E-F1E3B64322CE}": {
|
||||||
|
"$type": "PersistentIdComponentSaveData",
|
||||||
|
"PersistentId": "{6045F7F7-02B0-442A-96C7-A0CBCEFF7275}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Key": {
|
||||||
|
"id": 1181151842701
|
||||||
|
},
|
||||||
|
"Value": {
|
||||||
|
"ComponentData": {
|
||||||
|
"{24CB38BB-1705-4EC5-8F63-B574571B4DCD}": {
|
||||||
|
"$type": "NodeSaveData"
|
||||||
|
},
|
||||||
|
"{328FF15C-C302-458F-A43D-E1794DE0904E}": {
|
||||||
|
"$type": "GeneralNodeTitleComponentSaveData",
|
||||||
|
"PaletteOverride": "StringNodeTitlePalette"
|
||||||
|
},
|
||||||
|
"{7CC444B1-F9B3-41B5-841B-0C4F2179F111}": {
|
||||||
|
"$type": "GeometrySaveData",
|
||||||
|
"Position": [
|
||||||
|
580.0,
|
||||||
|
180.0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"{B0B99C8A-03AF-4CF6-A926-F65C874C3D97}": {
|
||||||
|
"$type": "StylingComponentSaveData"
|
||||||
|
},
|
||||||
|
"{B1F49A35-8408-40DA-B79E-F1E3B64322CE}": {
|
||||||
|
"$type": "PersistentIdComponentSaveData",
|
||||||
|
"PersistentId": "{589F773E-D82A-4EDD-AEBD-3ADC07FC67CE}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Key": {
|
||||||
|
"id": 5227099818161821361
|
||||||
|
},
|
||||||
|
"Value": {
|
||||||
|
"ComponentData": {
|
||||||
|
"{5F84B500-8C45-40D1-8EFC-A5306B241444}": {
|
||||||
|
"$type": "SceneComponentSaveData"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"StatisticsHelper": {
|
||||||
|
"InstanceCounter": [
|
||||||
|
{
|
||||||
|
"Key": 4199610336680704683,
|
||||||
|
"Value": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Key": 10684225535275896474,
|
||||||
|
"Value": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,12 @@
|
|||||||
|
0,0,0,0,0,0
|
||||||
|
0,0,0,0,0,0
|
||||||
|
0,0,0,0,0,0
|
||||||
|
0,0,0,0,0,0
|
||||||
|
0,0,0,0,0,0
|
||||||
|
0,0,0,0,0,0
|
||||||
|
0,0,0,0,0,0
|
||||||
|
0,0,0,0,0,0
|
||||||
|
0,0,0,0,0,0
|
||||||
|
0,0,0,0,0,0
|
||||||
|
0,0,0,0,0,0
|
||||||
|
0,0,0,0,0,0
|
||||||
@ -1,73 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) Contributors to the Open 3D Engine Project.
|
|
||||||
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: Apache-2.0 OR MIT
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
#include "AzAssetBrowserWindow.h"
|
|
||||||
#include "AzAssetBrowser/ui_AssetBrowserWindow.h"
|
|
||||||
|
|
||||||
#include <AzToolsFramework/AssetBrowser/UI/AssetTreeView.h>
|
|
||||||
#include <AzToolsFramework/AssetBrowser/UI/SortFilterProxyModel.hxx>
|
|
||||||
#include <AzToolsFramework/AssetBrowser/UI/AssetBrowserModel.h>
|
|
||||||
#include <AzToolsFramework/AssetBrowser/AssetCache/AssetCacheBus.h>
|
|
||||||
#include <AzToolsFramework/AssetBrowser/AssetBrowserRequestBus.h>
|
|
||||||
|
|
||||||
const char* ASSET_BROWSER_PREVIEW_NAME = "Asset Browser (PREVIEW)";
|
|
||||||
|
|
||||||
AzAssetBrowserWindow::AzAssetBrowserWindow(const QString& name, QWidget* parent)
|
|
||||||
: QDialog(parent)
|
|
||||||
, m_ui(new Ui::AssetBrowserWindowClass())
|
|
||||||
, m_assetDatabaseSortFilterProxyModel(new AssetBrowser::UI::SortFilterProxyModel(parent))
|
|
||||||
, m_name(name)
|
|
||||||
, m_assetBrowser(new AssetBrowser::UI::AssetTreeView(name, this))
|
|
||||||
{
|
|
||||||
EBUS_EVENT_RESULT(m_assetBrowserModel, AssetBrowser::AssetCache::AssetCacheRequestsBus, GetAssetBrowserModel);
|
|
||||||
AZ_Assert(m_assetBrowserModel, "Failed to get filebrowser model");
|
|
||||||
m_assetDatabaseSortFilterProxyModel->setSourceModel(m_assetBrowserModel);
|
|
||||||
|
|
||||||
m_ui->setupUi(this);
|
|
||||||
|
|
||||||
connect(m_ui->searchCriteriaWidget,
|
|
||||||
&AzToolsFramework::SearchCriteriaWidget::SearchCriteriaChanged,
|
|
||||||
m_assetDatabaseSortFilterProxyModel.data(),
|
|
||||||
&AssetBrowser::UI::SortFilterProxyModel::OnSearchCriteriaChanged);
|
|
||||||
|
|
||||||
connect(m_assetBrowser, &QTreeView::customContextMenuRequested, this, &AzAssetBrowserWindow::OnContextMenu);
|
|
||||||
}
|
|
||||||
|
|
||||||
AzAssetBrowserWindow::~AzAssetBrowserWindow()
|
|
||||||
{
|
|
||||||
m_assetBrowser->SaveState();
|
|
||||||
}
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
|
||||||
const AZ::Uuid& AzAssetBrowserWindow::GetClassID()
|
|
||||||
{
|
|
||||||
return AZ::AzTypeInfo<AzAssetBrowserWindow>::Uuid();
|
|
||||||
}
|
|
||||||
|
|
||||||
void AzAssetBrowserWindow::OnContextMenu(const QPoint& point)
|
|
||||||
{
|
|
||||||
(void)point;
|
|
||||||
//get the selected entries
|
|
||||||
QModelIndexList sourceIndexes;
|
|
||||||
for (const auto& index : m_assetBrowser->selectedIndexes())
|
|
||||||
{
|
|
||||||
sourceIndexes.push_back(m_assetDatabaseSortFilterProxyModel->mapToSource(index));
|
|
||||||
}
|
|
||||||
AZStd::vector<AssetBrowser::UI::Entry*> entries;
|
|
||||||
m_assetBrowserModel->SourceIndexesToAssetDatabaseEntries(sourceIndexes, entries);
|
|
||||||
|
|
||||||
if (entries.empty() || entries.size() > 1)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
auto entry = entries.front();
|
|
||||||
|
|
||||||
EBUS_EVENT(AssetBrowser::AssetBrowserRequestBus::Bus, OnItemContextMenu, this, entry);
|
|
||||||
}
|
|
||||||
|
|
||||||
#include <AzAssetBrowser/moc_AzAssetBrowserWindow.cpp>
|
|
||||||
|
|
||||||
@ -1,57 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) Contributors to the Open 3D Engine Project.
|
|
||||||
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: Apache-2.0 OR MIT
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#if !defined(Q_MOC_RUN)
|
|
||||||
#include <AzCore/Memory/SystemAllocator.h>
|
|
||||||
#include <AzCore/Math/Uuid.h>
|
|
||||||
|
|
||||||
#include <QDialog>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
namespace Ui
|
|
||||||
{
|
|
||||||
class AssetBrowserWindowClass;
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace AssetBrowser
|
|
||||||
{
|
|
||||||
namespace UI
|
|
||||||
{
|
|
||||||
class AssetTreeView;
|
|
||||||
class SortFilterProxyModel;
|
|
||||||
class AssetBrowserModel;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class AzAssetBrowserWindow
|
|
||||||
: public QDialog
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
public:
|
|
||||||
AZ_CLASS_ALLOCATOR(AzAssetBrowserWindow, AZ::SystemAllocator, 0);
|
|
||||||
AZ_TYPE_INFO(AzAssetBrowserWindow, "{20238D23-2670-44BC-9110-A51374C18B5A}");
|
|
||||||
|
|
||||||
explicit AzAssetBrowserWindow(const QString& name = "default", QWidget* parent = nullptr);
|
|
||||||
virtual ~AzAssetBrowserWindow();
|
|
||||||
|
|
||||||
static const AZ::Uuid& GetClassID();
|
|
||||||
|
|
||||||
protected Q_SLOTS:
|
|
||||||
void OnContextMenu(const QPoint& point);
|
|
||||||
|
|
||||||
private:
|
|
||||||
QScopedPointer<Ui::AssetBrowserWindowClass> m_ui;
|
|
||||||
QScopedPointer<AssetBrowser::UI::AssetBrowserModel> m_assetDatabaseModel;
|
|
||||||
QScopedPointer<AssetBrowser::UI::SortFilterProxyModel> m_assetDatabaseSortFilterProxyModel;
|
|
||||||
QString m_name;
|
|
||||||
AssetBrowser::UI::AssetTreeView* m_assetBrowser;
|
|
||||||
AssetBrowser::UI::AssetBrowserModel* m_assetBrowserModel;
|
|
||||||
};
|
|
||||||
|
|
||||||
extern const char* ASSET_BROWSER_PREVIEW_NAME;
|
|
||||||
@ -1,186 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) Contributors to the Open 3D Engine Project.
|
|
||||||
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: Apache-2.0 OR MIT
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "EditorDefs.h"
|
|
||||||
|
|
||||||
#include "CVarMenu.h"
|
|
||||||
|
|
||||||
CVarMenu::CVarMenu(QWidget* parent)
|
|
||||||
: QMenu(parent)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void CVarMenu::AddCVarToggleItem(CVarToggle cVarToggle)
|
|
||||||
{
|
|
||||||
// Add CVar toggle action
|
|
||||||
QAction* action = addAction(cVarToggle.m_displayName);
|
|
||||||
connect(action, &QAction::triggered, [this, cVarToggle](bool checked)
|
|
||||||
{
|
|
||||||
// Update the CVar's value based on the action's new checked state
|
|
||||||
ICVar* cVar = gEnv->pConsole->GetCVar(cVarToggle.m_cVarName.toUtf8().data());
|
|
||||||
if (cVar)
|
|
||||||
{
|
|
||||||
SetCVar(cVar, checked ? cVarToggle.m_onValue : cVarToggle.m_offValue);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
action->setCheckable(true);
|
|
||||||
|
|
||||||
// Initialize the action's checked state based on the associated CVar's value
|
|
||||||
ICVar* cVar = gEnv->pConsole->GetCVar(cVarToggle.m_cVarName.toUtf8().data());
|
|
||||||
bool checked = (cVar && cVar->GetFVal() == cVarToggle.m_onValue);
|
|
||||||
action->setChecked(checked);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CVarMenu::AddCVarValuesItem(QString cVarName,
|
|
||||||
QString displayName,
|
|
||||||
CVarDisplayNameValuePairs availableCVarValues,
|
|
||||||
float offValue)
|
|
||||||
{
|
|
||||||
// Add a submenu offering multiple values for one CVar
|
|
||||||
QMenu* menu = addMenu(displayName);
|
|
||||||
QActionGroup* group = new QActionGroup(menu);
|
|
||||||
group->setExclusive(true);
|
|
||||||
|
|
||||||
ICVar* cVar = gEnv->pConsole->GetCVar(cVarName.toUtf8().data());
|
|
||||||
float cVarValue = cVar ? cVar->GetFVal() : 0.0f;
|
|
||||||
for (const auto& availableCVarValue : availableCVarValues)
|
|
||||||
{
|
|
||||||
QAction* action = menu->addAction(availableCVarValue.first);
|
|
||||||
action->setCheckable(true);
|
|
||||||
group->addAction(action);
|
|
||||||
|
|
||||||
float availableOnValue = availableCVarValue.second;
|
|
||||||
connect(action, &QAction::triggered, [this, action, cVarName, availableOnValue, offValue](bool checked)
|
|
||||||
{
|
|
||||||
ICVar* cVar = gEnv->pConsole->GetCVar(cVarName.toUtf8().data());
|
|
||||||
if (cVar)
|
|
||||||
{
|
|
||||||
if (!checked)
|
|
||||||
{
|
|
||||||
SetCVar(cVar, offValue);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Toggle the CVar and update the action's checked state to
|
|
||||||
// allow none of the items to be checked in the exclusive group.
|
|
||||||
// Otherwise we could have just used the action's currently checked
|
|
||||||
// state and updated the CVar's value only
|
|
||||||
bool cVarOn = (cVar->GetFVal() == availableOnValue);
|
|
||||||
checked = !cVarOn;
|
|
||||||
SetCVar(cVar, checked ? availableOnValue : offValue);
|
|
||||||
action->setChecked(checked);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Initialize the action's checked state based on the CVar's current value
|
|
||||||
bool checked = (cVarValue == availableOnValue);
|
|
||||||
action->setChecked(checked);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void CVarMenu::AddUniqueCVarsItem(QString displayName,
|
|
||||||
AZStd::vector<CVarToggle> availableCVars)
|
|
||||||
{
|
|
||||||
// Add a submenu of actions offering values for unique CVars
|
|
||||||
QMenu* menu = addMenu(displayName);
|
|
||||||
QActionGroup* group = new QActionGroup(menu);
|
|
||||||
group->setExclusive(true);
|
|
||||||
|
|
||||||
for (const CVarToggle& availableCVar : availableCVars)
|
|
||||||
{
|
|
||||||
QAction* action = menu->addAction(availableCVar.m_displayName);
|
|
||||||
action->setCheckable(true);
|
|
||||||
group->addAction(action);
|
|
||||||
|
|
||||||
connect(action, &QAction::triggered, [this, action, availableCVar, availableCVars](bool checked)
|
|
||||||
{
|
|
||||||
ICVar* cVar = gEnv->pConsole->GetCVar(availableCVar.m_cVarName.toUtf8().data());
|
|
||||||
if (cVar)
|
|
||||||
{
|
|
||||||
if (!checked)
|
|
||||||
{
|
|
||||||
SetCVar(cVar, availableCVar.m_offValue);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Toggle the CVar and update the action's checked state to
|
|
||||||
// allow none of the items to be checked in the exclusive group.
|
|
||||||
// Otherwise we could have just used the action's currently checked
|
|
||||||
// state and updated the CVar's value only
|
|
||||||
bool cVarOn = (cVar->GetFVal() == availableCVar.m_onValue);
|
|
||||||
bool cVarChecked = !cVarOn;
|
|
||||||
SetCVar(cVar, cVarChecked ? availableCVar.m_onValue : availableCVar.m_offValue);
|
|
||||||
action->setChecked(cVarChecked);
|
|
||||||
if (cVarChecked)
|
|
||||||
{
|
|
||||||
// Set the rest of the CVars in the group to their off values
|
|
||||||
SetCVarsToOffValue(availableCVars, availableCVar);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Initialize the action's checked state based on its associated CVar's current value
|
|
||||||
ICVar* cVar = gEnv->pConsole->GetCVar(availableCVar.m_cVarName.toUtf8().data());
|
|
||||||
bool cVarChecked = (cVar && cVar->GetFVal() == availableCVar.m_onValue);
|
|
||||||
action->setChecked(cVarChecked);
|
|
||||||
if (cVarChecked)
|
|
||||||
{
|
|
||||||
// Set the rest of the CVars in the group to their off values
|
|
||||||
SetCVarsToOffValue(availableCVars, availableCVar);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void CVarMenu::AddResetCVarsItem()
|
|
||||||
{
|
|
||||||
QAction* action = addAction(tr("Reset to Default"));
|
|
||||||
connect(action, &QAction::triggered, this, [this]()
|
|
||||||
{
|
|
||||||
for (auto it : m_originalCVarValues)
|
|
||||||
{
|
|
||||||
ICVar* cVar = gEnv->pConsole->GetCVar(it.first.c_str());
|
|
||||||
if (cVar)
|
|
||||||
{
|
|
||||||
cVar->Set(it.second);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
void CVarMenu::SetCVarsToOffValue(const AZStd::vector<CVarToggle>& cVarToggles, const CVarToggle& excludeCVarToggle)
|
|
||||||
{
|
|
||||||
// Set all but the specified CVars to their off values
|
|
||||||
for (const CVarToggle& cVarToggle : cVarToggles)
|
|
||||||
{
|
|
||||||
if (cVarToggle.m_cVarName != excludeCVarToggle.m_cVarName
|
|
||||||
|| cVarToggle.m_onValue != excludeCVarToggle.m_onValue)
|
|
||||||
{
|
|
||||||
ICVar* cVar = gEnv->pConsole->GetCVar(cVarToggle.m_cVarName.toUtf8().data());
|
|
||||||
if (cVar)
|
|
||||||
{
|
|
||||||
SetCVar(cVar, cVarToggle.m_offValue);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void CVarMenu::SetCVar(ICVar* cVar, float newValue)
|
|
||||||
{
|
|
||||||
float oldValue = cVar->GetFVal();
|
|
||||||
cVar->Set(newValue);
|
|
||||||
|
|
||||||
// Store original value for CVar if not already in the list
|
|
||||||
m_originalCVarValues.emplace(AZStd::string(cVar->GetName()), oldValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CVarMenu::AddSeparator()
|
|
||||||
{
|
|
||||||
addSeparator();
|
|
||||||
}
|
|
||||||
@ -1,65 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) Contributors to the Open 3D Engine Project.
|
|
||||||
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: Apache-2.0 OR MIT
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include <QMenu>
|
|
||||||
#include <QString>
|
|
||||||
|
|
||||||
#include <AzCore/std/string/string.h>
|
|
||||||
#include <AzCore/std/containers/unordered_map.h>
|
|
||||||
#include <AzCore/std/containers/vector.h>
|
|
||||||
#include <AzCore/std/utils.h>
|
|
||||||
|
|
||||||
struct ICVar;
|
|
||||||
|
|
||||||
class CVarMenu
|
|
||||||
: public QMenu
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
public:
|
|
||||||
// CVar that can be toggled on and off
|
|
||||||
struct CVarToggle
|
|
||||||
{
|
|
||||||
QString m_cVarName;
|
|
||||||
QString m_displayName;
|
|
||||||
float m_onValue;
|
|
||||||
float m_offValue;
|
|
||||||
};
|
|
||||||
|
|
||||||
// List of a CVar's available values and their descriptions
|
|
||||||
using CVarDisplayNameValuePairs = AZStd::vector<AZStd::pair<QString, float>>;
|
|
||||||
|
|
||||||
CVarMenu(QWidget* parent = nullptr);
|
|
||||||
|
|
||||||
// Add an action that turns a CVar on/off
|
|
||||||
void AddCVarToggleItem(CVarToggle cVarToggle);
|
|
||||||
|
|
||||||
// Add a submenu of actions for a CVar that offers multiple values for exclusive selection
|
|
||||||
void AddCVarValuesItem(QString cVarName,
|
|
||||||
QString displayName,
|
|
||||||
CVarDisplayNameValuePairs availableCVarValues,
|
|
||||||
float offValue);
|
|
||||||
|
|
||||||
// Add a submenu of actions for exclusively turning unique CVars on/off
|
|
||||||
void AddUniqueCVarsItem(QString displayName,
|
|
||||||
AZStd::vector<CVarToggle> availableCVars);
|
|
||||||
|
|
||||||
// Add an action to reset all CVars to their original values before they
|
|
||||||
// were modified by this menu
|
|
||||||
void AddResetCVarsItem();
|
|
||||||
|
|
||||||
void AddSeparator();
|
|
||||||
|
|
||||||
private:
|
|
||||||
void SetCVarsToOffValue(const AZStd::vector<CVarToggle>& cVarToggles, const CVarToggle& excludeCVarToggle);
|
|
||||||
void SetCVar(ICVar* cVar, float newValue);
|
|
||||||
|
|
||||||
// Original CVar values before they were modified by this menu
|
|
||||||
AZStd::unordered_map<AZStd::string, float> m_originalCVarValues;
|
|
||||||
};
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue