} // hide default constructor // create a new T object and // push onto the Lua stack a userdata containing a pointer to T object private static int new_T(Lua.lua_State L) { Lua.lua_remove(L, 1); // use classname:new(), instead of classname.new() LWF.Movie obj = LunaTraits_LWF_Movie._bind_ctor(L); // call constructor for T objects push(L, obj, true); return(1); // userdata containing pointer to T object }
// garbage collection metamethod private static int gc_T(Lua.lua_State L) { Luna.userdataType ud = (Luna.userdataType)Lua.lua_touserdata(L, 1); LWF.Movie obj = null; if (!objects[L].TryGetValue(ud.ObjectId, out obj)) { return(0); } if (ud.Gc) { LunaTraits_LWF_Movie._bind_dtor(obj); // call constructor for T objects } Destroy(L, obj); return(0); }