MCPcopy Create free account
hub / github.com/defold/defold / SetProperty

Function SetProperty

engine/gameobject/src/gameobject/gameobject.cpp:3819–4051  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3817 }
3818
3819 PropertyResult SetProperty(HInstance instance, dmhash_t component_id, dmhash_t property_id, PropertyOptions options, const PropertyVar& value)
3820 {
3821 if (instance == 0)
3822 return PROPERTY_RESULT_INVALID_INSTANCE;
3823 if (component_id == 0)
3824 {
3825 Collection* collection = instance->m_Collection;
3826 float* position = instance->m_Transform.GetPositionPtr();
3827 float* rotation = instance->m_Transform.GetRotationPtr();
3828 float* scale = instance->m_Transform.GetScalePtr();
3829 if (property_id == PROP_POSITION)
3830 {
3831 if (value.m_Type != PROPERTY_TYPE_VECTOR3)
3832 return PROPERTY_RESULT_TYPE_MISMATCH;
3833 position[0] = value.m_V4[0];
3834 position[1] = value.m_V4[1];
3835 position[2] = value.m_V4[2];
3836 collection->m_DirtyTransforms = 1;
3837 return PROPERTY_RESULT_OK;
3838 }
3839 else if (property_id == PROP_POSITION_X)
3840 {
3841 if (value.m_Type != PROPERTY_TYPE_NUMBER)
3842 return PROPERTY_RESULT_TYPE_MISMATCH;
3843 position[0] = (float)value.m_Number;
3844 collection->m_DirtyTransforms = 1;
3845 return PROPERTY_RESULT_OK;
3846 }
3847 else if (property_id == PROP_POSITION_Y)
3848 {
3849 if (value.m_Type != PROPERTY_TYPE_NUMBER)
3850 return PROPERTY_RESULT_TYPE_MISMATCH;
3851 position[1] = (float)value.m_Number;
3852 collection->m_DirtyTransforms = 1;
3853 return PROPERTY_RESULT_OK;
3854 }
3855 else if (property_id == PROP_POSITION_Z)
3856 {
3857 if (value.m_Type != PROPERTY_TYPE_NUMBER)
3858 return PROPERTY_RESULT_TYPE_MISMATCH;
3859 position[2] = (float)value.m_Number;
3860 collection->m_DirtyTransforms = 1;
3861 return PROPERTY_RESULT_OK;
3862 }
3863 else if (property_id == PROP_SCALE)
3864 {
3865 if (value.m_Type == PROPERTY_TYPE_NUMBER)
3866 {
3867 scale[0] = (float)value.m_Number;
3868 scale[1] = scale[0];
3869 scale[2] = scale[0];
3870 collection->m_DirtyTransforms = 1;
3871 return PROPERTY_RESULT_OK;
3872 }
3873 else if (value.m_Type == PROPERTY_TYPE_VECTOR3)
3874 {
3875 scale[0] = value.m_V4[0];
3876 scale[1] = value.m_V4[1];

Callers 11

Script_SetFunction · 0.70
SetPropertyFromHashFunction · 0.70
SetPropertyFromFloatFunction · 0.70
SetPropertyFromVector3Function · 0.70
SetPropertyFromVector4Function · 0.70
SetPropertyFromQuatFunction · 0.70
SetPropertyFromBoolFunction · 0.70
SetPropertyFromURLFunction · 0.70
SetPropertyFromMatrix4Function · 0.70
CompAnimUpdateFunction · 0.70
LuaSetFunction · 0.50

Calls 9

GetComponentIndexFunction · 0.85
GetPositionPtrMethod · 0.80
GetRotationPtrMethod · 0.80
GetScalePtrMethod · 0.80
setZMethod · 0.80
UpdateEulerToRotationFunction · 0.70
Vector3Class · 0.50
setXMethod · 0.45
setYMethod · 0.45

Tested by

no test coverage detected