// Sequence static int lua_Sequence_create(lua_State* L) { return cclua::obj_call(L, [=](void* ctx) { Sequence* ret = Sequence::create(); object_to_luaval(L, "ccex.SequenceEx", ret); return cclua::NResults(1); }); }
// Spawn static int lua_Spawn_create(lua_State* L) { return cclua::obj_call(L, [=](void* ctx) { Spawn* ret = Spawn::create(); object_to_luaval(L, "ccex.SpawnEx", ret); return cclua::NResults(1); }); }
int lua_cocos2dx_physics3d_Physics3DObject_setCollisionCallback(lua_State* L) { int argc = 0; cocos2d::Physics3DObject* cobj = nullptr; #if COCOS2D_DEBUG >= 1 tolua_Error tolua_err; #endif #if COCOS2D_DEBUG >= 1 if (!tolua_isusertype(L,1,"cc.Physics3DObject",0,&tolua_err)) goto tolua_lerror; #endif cobj = (cocos2d::Physics3DObject*)tolua_tousertype(L,1,0); #if COCOS2D_DEBUG >= 1 if (!cobj) { tolua_error(L,"invalid 'cobj' in function 'lua_cocos2dx_physics3d_Physics3DObject_setCollisionCallback'", nullptr); return 0; } #endif argc = lua_gettop(L)-1; if (argc == 1) { #if COCOS2D_DEBUG >= 1 if (!toluafix_isfunction(L,2,"LUA_FUNCTION",0,&tolua_err)) { goto tolua_lerror; } #endif LUA_FUNCTION handler = toluafix_ref_function(L,2,0); cobj->setCollisionCallback([=](const cocos2d::Physics3DCollisionInfo& ci){ lua_newtable(L); lua_pushstring(L, "objA"); if (nullptr == ci.objA) { lua_pushnil(L); } else { object_to_luaval(L, "cc.Physics3DObject", ci.objA); } lua_rawset(L, -3); lua_pushstring(L, "objB"); if (nullptr == ci.objB) { lua_pushnil(L); } else { object_to_luaval(L, "cc.Physics3DObject", ci.objB); } lua_rawset(L, -3); lua_pushstring(L, "collisionPointList"); if (ci.collisionPointList.empty()) { lua_pushnil(L); } else { int vecIndex = 1; lua_newtable(L); for (auto value : ci.collisionPointList) { lua_pushnumber(L, vecIndex); CollisionPoint_to_luaval(L, value); lua_rawset(L, -3); ++vecIndex; } } lua_rawset(L, -3); LuaEngine::getInstance()->getLuaStack()->executeFunctionByHandler(handler, 1); }); ScriptHandlerMgr::getInstance()->addCustomHandler((void*)cobj, handler); return 0; } luaL_error(L, "%s has wrong number of arguments: %d, was expecting %d \n", "cc.Physics3DObject:setCollisionCallback",argc, 1); return 0; #if COCOS2D_DEBUG >= 1 tolua_lerror: tolua_error(L,"#ferror in function 'lua_cocos2dx_physics3d_Physics3DObject_setCollisionCallback'.",&tolua_err); #endif return 0; }