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

Function LuaPushVar

engine/gameobject/src/gameobject/gameobject_props_lua.cpp:131–169  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

129 }
130
131 void LuaPushVar(lua_State* L, const PropertyVar& var)
132 {
133 switch (var.m_Type)
134 {
135 case PROPERTY_TYPE_NUMBER:
136 lua_pushnumber(L, var.m_Number);
137 break;
138 case PROPERTY_TYPE_HASH:
139 dmScript::PushHash(L, var.m_Hash);
140 break;
141 case PROPERTY_TYPE_URL:
142 {
143 dmMessage::URL* url = (dmMessage::URL*) var.m_URL;
144 dmScript::PushURL(L, *url);
145 }
146 break;
147 case PROPERTY_TYPE_VECTOR3:
148 dmScript::PushVector3(L, dmVMath::Vector3(var.m_V4[0], var.m_V4[1], var.m_V4[2]));
149 break;
150 case PROPERTY_TYPE_VECTOR4:
151 dmScript::PushVector4(L, dmVMath::Vector4(var.m_V4[0], var.m_V4[1], var.m_V4[2], var.m_V4[3]));
152 break;
153 case PROPERTY_TYPE_QUAT:
154 dmScript::PushQuat(L, dmVMath::Quat(var.m_V4[0], var.m_V4[1], var.m_V4[2], var.m_V4[3]));
155 break;
156 case PROPERTY_TYPE_BOOLEAN:
157 lua_pushboolean(L, var.m_Bool);
158 break;
159 case PROPERTY_TYPE_MATRIX4:
160 dmScript::PushMatrix4(L, dmVMath::Matrix4(
161 dmVMath::Vector4(var.m_M4[0], var.m_M4[1], var.m_M4[2], var.m_M4[3]),
162 dmVMath::Vector4(var.m_M4[4], var.m_M4[5], var.m_M4[6], var.m_M4[7]),
163 dmVMath::Vector4(var.m_M4[8], var.m_M4[9], var.m_M4[10], var.m_M4[11]),
164 dmVMath::Vector4(var.m_M4[12], var.m_M4[13], var.m_M4[14], var.m_M4[15])));
165 break;
166 default:
167 break;
168 }
169 }
170
171 HPropertyContainer PropertyContainerCreateFromLua(lua_State* L, int index)
172 {

Callers 2

CompScriptSetPropertyFunction · 0.85
CheckGetPropertyResultFunction · 0.85

Calls 12

lua_pushnumberFunction · 0.85
PushHashFunction · 0.85
PushURLFunction · 0.85
PushVector3Function · 0.85
PushVector4Function · 0.85
PushQuatFunction · 0.85
lua_pushbooleanFunction · 0.85
PushMatrix4Function · 0.85
Vector3Class · 0.50
Vector4Class · 0.50
QuatClass · 0.50
Matrix4Class · 0.50

Tested by

no test coverage detected