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

Function LuaToVar

engine/gameobject/src/gameobject/gameobject_props_lua.cpp:71–129  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

69 }
70
71 PropertyResult LuaToVar(lua_State* L, int index, PropertyVar& out_var)
72 {
73 void* userdata = 0;
74 out_var.m_Type = GetPropertyType(L, index, &userdata);
75 switch(out_var.m_Type)
76 {
77 case PROPERTY_TYPE_NUMBER:
78 out_var.m_Number = lua_tonumber(L, index);
79 return PROPERTY_RESULT_OK;
80 case PROPERTY_TYPE_HASH:
81 out_var.m_Hash = dmScript::CheckHash(L, index);
82 return PROPERTY_RESULT_OK;
83 case PROPERTY_TYPE_URL:
84 {
85 dmMessage::URL* url = (dmMessage::URL*) out_var.m_URL;
86 *url = *dmScript::CheckURL(L, index);
87 }
88 return PROPERTY_RESULT_OK;
89 case PROPERTY_TYPE_VECTOR3:
90 {
91 Vector3* v = (Vector3*)userdata;
92 out_var.m_V4[0] = v->getX();
93 out_var.m_V4[1] = v->getY();
94 out_var.m_V4[2] = v->getZ();
95 }
96 return PROPERTY_RESULT_OK;
97 case PROPERTY_TYPE_VECTOR4:
98 {
99 Vector4* v = (Vector4*)userdata;
100 out_var.m_V4[0] = v->getX();
101 out_var.m_V4[1] = v->getY();
102 out_var.m_V4[2] = v->getZ();
103 out_var.m_V4[3] = v->getW();
104 }
105 return PROPERTY_RESULT_OK;
106 case PROPERTY_TYPE_QUAT:
107 {
108 Quat* q = (Quat*)userdata;
109 out_var.m_V4[0] = q->getX();
110 out_var.m_V4[1] = q->getY();
111 out_var.m_V4[2] = q->getZ();
112 out_var.m_V4[3] = q->getW();
113 }
114 return PROPERTY_RESULT_OK;
115 case PROPERTY_TYPE_BOOLEAN:
116 out_var.m_Bool = (bool) lua_toboolean(L, index);
117 return PROPERTY_RESULT_OK;
118 case PROPERTY_TYPE_MATRIX4:
119 {
120 Matrix4* m = (Matrix4*) userdata;
121 Vector4& c0 = (*m)[0];
122 float& v0 = c0[0];
123 memcpy(out_var.m_M4, &v0, sizeof(out_var.m_M4));
124 }
125 return PROPERTY_RESULT_OK;
126 default:
127 return PROPERTY_RESULT_UNSUPPORTED_TYPE;
128 }

Callers 5

Script_SetFunction · 0.85
Script_AnimateFunction · 0.85
RetrieveVarFromScriptFunction · 0.85
CompScriptSetPropertyFunction · 0.85
LuaSetFunction · 0.85

Calls 9

GetPropertyTypeFunction · 0.85
lua_tonumberFunction · 0.85
CheckHashFunction · 0.85
lua_tobooleanFunction · 0.85
CheckURLFunction · 0.50
getXMethod · 0.45
getYMethod · 0.45
getZMethod · 0.45
getWMethod · 0.45

Tested by

no test coverage detected