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.
139 lines
4.4 KiB
Python
139 lines
4.4 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 Component Property Get/Set Python API while the Editor is running
|
|
|
|
import azlmbr.bus as bus
|
|
import azlmbr.editor as editor
|
|
import azlmbr.entity as entity
|
|
import azlmbr.math as math
|
|
|
|
# Open a level (any level should work)
|
|
editor.EditorToolsApplicationRequestBus(bus.Broadcast, 'OpenLevelNoPrompt', 'WaterSample')
|
|
|
|
def GetSetCompareTest(component, path, value):
|
|
oldObj = editor.EditorComponentAPIBus(bus.Broadcast, 'GetComponentProperty', component, path)
|
|
|
|
if(oldObj.IsSuccess()):
|
|
oldValue = oldObj.GetValue()
|
|
|
|
oldValueCompared = editor.EditorComponentAPIBus(bus.Broadcast, 'CompareComponentProperty', component, path, oldValue)
|
|
|
|
editor.EditorComponentAPIBus(bus.Broadcast, 'SetComponentProperty', component, path, value)
|
|
|
|
newObj = editor.EditorComponentAPIBus(bus.Broadcast, 'GetComponentProperty', component, path)
|
|
|
|
if(newObj.IsSuccess()):
|
|
newValue = newObj.GetValue()
|
|
|
|
newValueCompared = editor.EditorComponentAPIBus(bus.Broadcast, 'CompareComponentProperty', component, path, newValue)
|
|
|
|
isOldNewValueSame = editor.EditorComponentAPIBus(bus.Broadcast, 'CompareComponentProperty', component, path, oldValue)
|
|
|
|
if not(newValue == oldValue and oldValueCompared and newValueCompared and not isOldNewValueSame):
|
|
print("GetSetCompareTest " + path + ": SUCCESS")
|
|
else:
|
|
print("GetSetCompareTest " + path + ": FAILURE")
|
|
|
|
def PteTest(pte, path, value):
|
|
oldObj = pte.get_value(path)
|
|
|
|
if(oldObj.IsSuccess()):
|
|
oldValue = oldObj.GetValue()
|
|
oldValueCompared = pte.compare_value(path, oldValue)
|
|
|
|
pte.set_value(path, value)
|
|
|
|
newObj = pte.get_value(path)
|
|
|
|
if(newObj.IsSuccess()):
|
|
newValue = newObj.GetValue()
|
|
|
|
newValueCompared = pte.compare_value(path, newValue)
|
|
|
|
isOldNewValueSame = pte.compare_value(path, oldValue)
|
|
|
|
if not(newValue == oldValue and oldValueCompared and newValueCompared and not isOldNewValueSame):
|
|
print("PteTest " + path + ": SUCCESS")
|
|
else:
|
|
print("PteTest " + path + ": FAILURE")
|
|
|
|
# Create new Entity
|
|
entityId = editor.ToolsApplicationRequestBus(bus.Broadcast, 'CreateNewEntity', entity.EntityId())
|
|
|
|
if (entityId):
|
|
print("New entity with no parent created")
|
|
|
|
# Get Component Type for Environment Probe
|
|
typeIdsList = editor.EditorComponentAPIBus(bus.Broadcast, 'FindComponentTypeIdsByEntityType', ["Environment Probe"], entity.EntityType().Game)
|
|
|
|
componentOutcome = editor.EditorComponentAPIBus(bus.Broadcast, 'AddComponentsOfType', entityId, typeIdsList)
|
|
|
|
if (componentOutcome.IsSuccess()):
|
|
print("Environment Probe component added to entity")
|
|
|
|
components = componentOutcome.GetValue()
|
|
component = components[0]
|
|
|
|
hasComponent = editor.EditorComponentAPIBus(bus.Broadcast, 'HasComponentOfType', entityId, typeIdsList[0])
|
|
|
|
if(hasComponent):
|
|
print("Entity has an Environment Probe component")
|
|
|
|
# Test BuildComponentPropertyList
|
|
paths = editor.EditorComponentAPIBus(bus.Broadcast, 'BuildComponentPropertyList', component)
|
|
|
|
if(len(paths) > 0):
|
|
print("get_paths_list works")
|
|
|
|
# Tests for GetComponentProperty/SetComponentProperty
|
|
|
|
GetSetCompareTest(component, "Settings|General Settings|Visible", False)
|
|
GetSetCompareTest(component, "Settings|Animation|Style", 2.0)
|
|
GetSetCompareTest(component, "Settings|Environment Probe Settings|Box height", 42)
|
|
|
|
color = math.Color()
|
|
color.r = 0.4
|
|
color.g = 0.5
|
|
color.b = 0.6
|
|
|
|
GetSetCompareTest(component, "Settings|General Settings|Color", color)
|
|
|
|
vec3 = math.Vector3()
|
|
vec3.x = 1.0
|
|
vec3.y = 2.0
|
|
vec3.z = 3.0
|
|
|
|
GetSetCompareTest(component, "Settings|Environment Probe Settings|Area dimensions", vec3)
|
|
|
|
# Tests for BuildComponentPropertyTreeEditor
|
|
pteObj = editor.EditorComponentAPIBus(bus.Broadcast, 'BuildComponentPropertyTreeEditor', component)
|
|
|
|
if(pteObj.IsSuccess()):
|
|
print("")
|
|
pte = pteObj.GetValue()
|
|
|
|
PteTest(pte, "Settings|General Settings|Visible", True)
|
|
PteTest(pte, "Settings|Animation|Style", 4)
|
|
PteTest(pte, "Settings|Environment Probe Settings|Box height", 48.0)
|
|
|
|
color = math.Color()
|
|
color.r = 0.9
|
|
color.g = 0.1
|
|
color.b = 0.3
|
|
|
|
PteTest(pte, "Settings|General Settings|Color", color)
|
|
|
|
vec3 = math.Vector3()
|
|
vec3.x = 7.0
|
|
vec3.y = 4.0
|
|
vec3.z = 1.0
|
|
|
|
PteTest(pte, "Settings|Environment Probe Settings|Area dimensions", vec3)
|
|
|
|
editor.EditorToolsApplicationRequestBus(bus.Broadcast, 'ExitNoPrompt')
|