You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
o3de/AutomatedTesting/Gem/PythonTests/EditorPythonBindings/ObjectManagerCommands_test_...

116 lines
3.8 KiB
Python

"""
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
"""
# Tests a portion of the Python API from ObjectManager.cpp while the Editor is running
import azlmbr.bus as bus
import azlmbr.editor as editor
import azlmbr.math
import azlmbr.legacy.general as general
def fetch_vector3_parts(vec3):
x = vec3.get_property('x')
y = vec3.get_property('y')
z = vec3.get_property('z')
return (x, y, z)
general.idle_enable(True)
# It needs a new test level in prefab format to make it testable again.
editor.EditorToolsApplicationRequestBus(bus.Broadcast, 'OpenLevelNoPrompt', 'Base')
if (editor.EditorToolsApplicationRequestBus(bus.Broadcast, 'GetCurrentLevelName') == 'Base'):
objs_list = general.get_all_objects()
if(len(objs_list) > 0):
print("get_all_objects works")
general.clear_selection()
general.select_object(objs_list[0])
selected_objs_list = general.get_names_of_selected_objects()
if(len(selected_objs_list) == 1):
print("get_names_of_selected_objects works")
select = [objs_list[1], objs_list[2]]
general.select_objects(select)
selected_objs_list = general.get_names_of_selected_objects()
if(len(selected_objs_list) == 3):
print("select_objects works")
sel_position = general.get_selection_center()
sel_aabb = general.get_selection_aabb()
centerX = sel_position.get_property("x")
cornerX = sel_aabb.get_property("min").get_property("x")
if not(centerX == cornerX):
print("sel_position and sel_aabb both work")
unselect = [objs_list[0], objs_list[2]]
general.unselect_objects(unselect)
if(general.get_num_selected() == 1):
print("get_num_selected and unselect_objects both work")
general.clear_selection()
if(general.get_num_selected() == 0):
print("clear_selection works")
position = general.get_position(objs_list[1])
px1, py1, pz1 = fetch_vector3_parts(position)
general.set_position(objs_list[1], px1 + 10, py1 - 4, pz1 + 3)
new_position = general.get_position(objs_list[1])
px2, py2, pz2 = fetch_vector3_parts(new_position)
if(px2 > px1) and (py2 < py1) and (pz2 > pz1):
print("position setter/getter works")
rotation = general.get_rotation(objs_list[1])
rx1, ry1, rz1 = fetch_vector3_parts(rotation)
general.set_rotation(objs_list[1], rx1 + 10, ry1 - 4, rz1 + 3)
new_rotation = general.get_rotation(objs_list[1])
rx2, ry2, rz2 = fetch_vector3_parts(new_rotation)
if(rx2 > rx1) and (ry2 < ry1) and (rz2 > rz1):
print("rotation setter/getter works")
scale = general.get_scale(objs_list[1])
sx1, sy1, sz1 = fetch_vector3_parts(scale)
general.set_scale(objs_list[1], sx1 + 10, sy1 + 4, sz1 + 3)
new_scale = general.get_scale(objs_list[1])
sx2, sy2, sz2 = fetch_vector3_parts(new_scale)
if(sx2 > sx1) and (sy2 > sy1) and (sz2 > sz1):
print("scale setter/getter works")
general.select_object(objs_list[2])
general.delete_selected()
new_objs_list = general.get_all_objects()
if(len(new_objs_list) < len(objs_list)):
print("delete_selected works")
general.delete_object(objs_list[0])
new_objs_list = general.get_all_objects()
if(len(new_objs_list) < len(objs_list)):
print("delete_object works")
general.rename_object(objs_list[1], "some_test_name")
new_objs_list = general.get_all_objects()
for elem in new_objs_list:
if(elem == "some_test_name"):
print("rename_object works")
editor.EditorToolsApplicationRequestBus(bus.Broadcast, 'ExitNoPrompt')