static int _m_Assert_xlua_st_(RealStatePtr L) { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); int __gen_param_count = LuaAPI.lua_gettop(L); try { if (__gen_param_count == 1 && LuaTypes.LUA_TBOOLEAN == LuaAPI.lua_type(L, 1)) { bool condition = LuaAPI.lua_toboolean(L, 1); UnityEngine.Debug.Assert(condition); return(0); } if (__gen_param_count == 2 && LuaTypes.LUA_TBOOLEAN == LuaAPI.lua_type(L, 1) && translator.Assignable <UnityEngine.Object>(L, 2)) { bool condition = LuaAPI.lua_toboolean(L, 1); UnityEngine.Object context = (UnityEngine.Object)translator.GetObject(L, 2, typeof(UnityEngine.Object)); UnityEngine.Debug.Assert(condition, context); return(0); } if (__gen_param_count == 2 && LuaTypes.LUA_TBOOLEAN == LuaAPI.lua_type(L, 1) && translator.Assignable <object>(L, 2)) { bool condition = LuaAPI.lua_toboolean(L, 1); object message = translator.GetObject(L, 2, typeof(object)); UnityEngine.Debug.Assert(condition, message); return(0); } if (__gen_param_count == 2 && LuaTypes.LUA_TBOOLEAN == LuaAPI.lua_type(L, 1) && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING)) { bool condition = LuaAPI.lua_toboolean(L, 1); string message = LuaAPI.lua_tostring(L, 2); UnityEngine.Debug.Assert(condition, message); return(0); } if (__gen_param_count == 3 && LuaTypes.LUA_TBOOLEAN == LuaAPI.lua_type(L, 1) && translator.Assignable <object>(L, 2) && translator.Assignable <UnityEngine.Object>(L, 3)) { bool condition = LuaAPI.lua_toboolean(L, 1); object message = translator.GetObject(L, 2, typeof(object)); UnityEngine.Object context = (UnityEngine.Object)translator.GetObject(L, 3, typeof(UnityEngine.Object)); UnityEngine.Debug.Assert(condition, message, context); return(0); } if (__gen_param_count == 3 && LuaTypes.LUA_TBOOLEAN == LuaAPI.lua_type(L, 1) && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING) && translator.Assignable <UnityEngine.Object>(L, 3)) { bool condition = LuaAPI.lua_toboolean(L, 1); string message = LuaAPI.lua_tostring(L, 2); UnityEngine.Object context = (UnityEngine.Object)translator.GetObject(L, 3, typeof(UnityEngine.Object)); UnityEngine.Debug.Assert(condition, message, context); return(0); } } catch (System.Exception __gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + __gen_e)); } return(LuaAPI.luaL_error(L, "invalid arguments to UnityEngine.Debug.Assert!")); }
static int _m_UnloadSceneAsync_xlua_st_(RealStatePtr L) { try { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); int gen_param_count = LuaAPI.lua_gettop(L); if (gen_param_count == 1 && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 1)) { int _sceneBuildIndex = LuaAPI.xlua_tointeger(L, 1); var gen_ret = UnityEngine.SceneManagement.SceneManager.UnloadSceneAsync(_sceneBuildIndex); translator.Push(L, gen_ret); return(1); } if (gen_param_count == 1 && (LuaAPI.lua_isnil(L, 1) || LuaAPI.lua_type(L, 1) == LuaTypes.LUA_TSTRING)) { string _sceneName = LuaAPI.lua_tostring(L, 1); var gen_ret = UnityEngine.SceneManagement.SceneManager.UnloadSceneAsync(_sceneName); translator.Push(L, gen_ret); return(1); } if (gen_param_count == 1 && translator.Assignable <UnityEngine.SceneManagement.Scene>(L, 1)) { UnityEngine.SceneManagement.Scene _scene; translator.Get(L, 1, out _scene); var gen_ret = UnityEngine.SceneManagement.SceneManager.UnloadSceneAsync(_scene); translator.Push(L, gen_ret); return(1); } if (gen_param_count == 2 && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 1) && translator.Assignable <UnityEngine.SceneManagement.UnloadSceneOptions>(L, 2)) { int _sceneBuildIndex = LuaAPI.xlua_tointeger(L, 1); UnityEngine.SceneManagement.UnloadSceneOptions _options; translator.Get(L, 2, out _options); var gen_ret = UnityEngine.SceneManagement.SceneManager.UnloadSceneAsync(_sceneBuildIndex, _options); translator.Push(L, gen_ret); return(1); } if (gen_param_count == 2 && (LuaAPI.lua_isnil(L, 1) || LuaAPI.lua_type(L, 1) == LuaTypes.LUA_TSTRING) && translator.Assignable <UnityEngine.SceneManagement.UnloadSceneOptions>(L, 2)) { string _sceneName = LuaAPI.lua_tostring(L, 1); UnityEngine.SceneManagement.UnloadSceneOptions _options; translator.Get(L, 2, out _options); var gen_ret = UnityEngine.SceneManagement.SceneManager.UnloadSceneAsync(_sceneName, _options); translator.Push(L, gen_ret); return(1); } if (gen_param_count == 2 && translator.Assignable <UnityEngine.SceneManagement.Scene>(L, 1) && translator.Assignable <UnityEngine.SceneManagement.UnloadSceneOptions>(L, 2)) { UnityEngine.SceneManagement.Scene _scene; translator.Get(L, 1, out _scene); UnityEngine.SceneManagement.UnloadSceneOptions _options; translator.Get(L, 2, out _options); var gen_ret = UnityEngine.SceneManagement.SceneManager.UnloadSceneAsync(_scene, _options); translator.Push(L, gen_ret); return(1); } } catch (System.Exception gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + gen_e)); } return(LuaAPI.luaL_error(L, "invalid arguments to UnityEngine.SceneManagement.SceneManager.UnloadSceneAsync!")); }
int getTypeId(RealStatePtr L, Type type, out bool is_first, LOGLEVEL log_level = LOGLEVEL.WARN) { int type_id; is_first = false; if (!typeIdMap.TryGetValue(type, out type_id)) // no reference { if (type.IsArray) { if (common_array_meta == -1) { throw new Exception("Fatal Exception! Array Metatable not inited!"); } return(common_array_meta); } if (typeof(MulticastDelegate).IsAssignableFrom(type)) { if (common_delegate_meta == -1) { throw new Exception("Fatal Exception! Delegate Metatable not inited!"); } return(common_delegate_meta); } is_first = true; Type alias_type = null; aliasCfg.TryGetValue(type, out alias_type); LuaAPI.luaL_getmetatable(L, alias_type == null ? type.FullName : alias_type.FullName); if (LuaAPI.lua_isnil(L, -1)) //no meta yet, try to use reflection meta { LuaAPI.lua_pop(L, 1); if (TryDelayWrapLoader(L, alias_type == null ? type : alias_type)) { LuaAPI.luaL_getmetatable(L, alias_type == null ? type.FullName : alias_type.FullName); } else { throw new Exception("Fatal: can not load metatable of type:" + type); } } //循环依赖,自身依赖自己的class,比如有个自身类型的静态readonly对象。 if (typeIdMap.TryGetValue(type, out type_id)) { LuaAPI.lua_pop(L, 1); } else { LuaAPI.lua_pushvalue(L, -1); type_id = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX); LuaAPI.lua_pushnumber(L, type_id); LuaAPI.xlua_rawseti(L, -2, 1); LuaAPI.lua_pop(L, 1); if (type.IsValueType) { typeMap.Add(type_id, type); } typeIdMap.Add(type, type_id); } } return(type_id); }
static int _m_JumpScene(RealStatePtr L) { try { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); QP.Framework.Module gen_to_be_invoked = (QP.Framework.Module)translator.FastGetCSObj(L, 1); int gen_param_count = LuaAPI.lua_gettop(L); if (gen_param_count == 5 && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING) && LuaTypes.LUA_TBOOLEAN == LuaAPI.lua_type(L, 3) && LuaTypes.LUA_TBOOLEAN == LuaAPI.lua_type(L, 4) && (LuaAPI.lua_isnil(L, 5) || LuaAPI.lua_type(L, 5) == LuaTypes.LUA_TSTRING)) { string _sceneName = LuaAPI.lua_tostring(L, 2); bool _isAsync = LuaAPI.lua_toboolean(L, 3); bool _isUnloadOtherAssetBundle = LuaAPI.lua_toboolean(L, 4); string _tableName = LuaAPI.lua_tostring(L, 5); gen_to_be_invoked.JumpScene(_sceneName, _isAsync, _isUnloadOtherAssetBundle, _tableName); return(0); } if (gen_param_count == 5 && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING) && LuaTypes.LUA_TBOOLEAN == LuaAPI.lua_type(L, 3) && LuaTypes.LUA_TBOOLEAN == LuaAPI.lua_type(L, 4) && translator.Assignable <QP.Framework.SceneTable>(L, 5)) { string _sceneName = LuaAPI.lua_tostring(L, 2); bool _isAsync = LuaAPI.lua_toboolean(L, 3); bool _isUnloadOtherAssetBundle = LuaAPI.lua_toboolean(L, 4); QP.Framework.SceneTable _table = (QP.Framework.SceneTable)translator.GetObject(L, 5, typeof(QP.Framework.SceneTable)); gen_to_be_invoked.JumpScene(_sceneName, _isAsync, _isUnloadOtherAssetBundle, _table); return(0); } } catch (System.Exception gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + gen_e)); } return(LuaAPI.luaL_error(L, "invalid arguments to QP.Framework.Module.JumpScene!")); }
static int _m_BroadcastMessage(RealStatePtr L) { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); UnityEngine.GameObject __cl_gen_to_be_invoked = (UnityEngine.GameObject)translator.FastGetCSObj(L, 1); int __gen_param_count = LuaAPI.lua_gettop(L); try { if (__gen_param_count == 2 && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING)) { string methodName = LuaAPI.lua_tostring(L, 2); __cl_gen_to_be_invoked.BroadcastMessage(methodName); return(0); } if (__gen_param_count == 3 && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING) && translator.Assignable <object>(L, 3)) { string methodName = LuaAPI.lua_tostring(L, 2); object parameter = translator.GetObject(L, 3, typeof(object)); __cl_gen_to_be_invoked.BroadcastMessage(methodName, parameter); return(0); } if (__gen_param_count == 3 && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING) && translator.Assignable <UnityEngine.SendMessageOptions>(L, 3)) { string methodName = LuaAPI.lua_tostring(L, 2); UnityEngine.SendMessageOptions options; translator.Get(L, 3, out options); __cl_gen_to_be_invoked.BroadcastMessage(methodName, options); return(0); } if (__gen_param_count == 4 && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING) && translator.Assignable <object>(L, 3) && translator.Assignable <UnityEngine.SendMessageOptions>(L, 4)) { string methodName = LuaAPI.lua_tostring(L, 2); object parameter = translator.GetObject(L, 3, typeof(object)); UnityEngine.SendMessageOptions options; translator.Get(L, 4, out options); __cl_gen_to_be_invoked.BroadcastMessage(methodName, parameter, options); return(0); } } catch (System.Exception __gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + __gen_e)); } return(LuaAPI.luaL_error(L, "invalid arguments to UnityEngine.GameObject.BroadcastMessage!")); }
static int _m_SendMessage(RealStatePtr L) { try { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); UnityEngine.Component gen_to_be_invoked = (UnityEngine.Component)translator.FastGetCSObj(L, 1); int gen_param_count = LuaAPI.lua_gettop(L); if (gen_param_count == 2 && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING)) { string _methodName = LuaAPI.lua_tostring(L, 2); gen_to_be_invoked.SendMessage(_methodName); return(0); } if (gen_param_count == 3 && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING) && translator.Assignable <object>(L, 3)) { string _methodName = LuaAPI.lua_tostring(L, 2); object _value = translator.GetObject(L, 3, typeof(object)); gen_to_be_invoked.SendMessage(_methodName, _value); return(0); } if (gen_param_count == 3 && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING) && translator.Assignable <UnityEngine.SendMessageOptions>(L, 3)) { string _methodName = LuaAPI.lua_tostring(L, 2); UnityEngine.SendMessageOptions _options; translator.Get(L, 3, out _options); gen_to_be_invoked.SendMessage(_methodName, _options); return(0); } if (gen_param_count == 4 && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING) && translator.Assignable <object>(L, 3) && translator.Assignable <UnityEngine.SendMessageOptions>(L, 4)) { string _methodName = LuaAPI.lua_tostring(L, 2); object _value = translator.GetObject(L, 3, typeof(object)); UnityEngine.SendMessageOptions _options; translator.Get(L, 4, out _options); gen_to_be_invoked.SendMessage(_methodName, _value, _options); return(0); } } catch (System.Exception gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + gen_e)); } return(LuaAPI.luaL_error(L, "invalid arguments to UnityEngine.Component.SendMessage!")); }
static int _m_CrossFadeQueued(RealStatePtr L) { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); UnityEngine.Animation __cl_gen_to_be_invoked = (UnityEngine.Animation)translator.FastGetCSObj(L, 1); int __gen_param_count = LuaAPI.lua_gettop(L); try { if (__gen_param_count == 2 && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING)) { string animation = LuaAPI.lua_tostring(L, 2); UnityEngine.AnimationState __cl_gen_ret = __cl_gen_to_be_invoked.CrossFadeQueued(animation); translator.Push(L, __cl_gen_ret); return(1); } if (__gen_param_count == 3 && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING) && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 3)) { string animation = LuaAPI.lua_tostring(L, 2); float fadeLength = (float)LuaAPI.lua_tonumber(L, 3); UnityEngine.AnimationState __cl_gen_ret = __cl_gen_to_be_invoked.CrossFadeQueued(animation, fadeLength); translator.Push(L, __cl_gen_ret); return(1); } if (__gen_param_count == 4 && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING) && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 3) && translator.Assignable <UnityEngine.QueueMode>(L, 4)) { string animation = LuaAPI.lua_tostring(L, 2); float fadeLength = (float)LuaAPI.lua_tonumber(L, 3); UnityEngine.QueueMode queue; translator.Get(L, 4, out queue); UnityEngine.AnimationState __cl_gen_ret = __cl_gen_to_be_invoked.CrossFadeQueued(animation, fadeLength, queue); translator.Push(L, __cl_gen_ret); return(1); } if (__gen_param_count == 5 && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING) && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 3) && translator.Assignable <UnityEngine.QueueMode>(L, 4) && translator.Assignable <UnityEngine.PlayMode>(L, 5)) { string animation = LuaAPI.lua_tostring(L, 2); float fadeLength = (float)LuaAPI.lua_tonumber(L, 3); UnityEngine.QueueMode queue; translator.Get(L, 4, out queue); UnityEngine.PlayMode mode; translator.Get(L, 5, out mode); UnityEngine.AnimationState __cl_gen_ret = __cl_gen_to_be_invoked.CrossFadeQueued(animation, fadeLength, queue, mode); translator.Push(L, __cl_gen_ret); return(1); } } catch (System.Exception __gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + __gen_e)); } return(LuaAPI.luaL_error(L, "invalid arguments to UnityEngine.Animation.CrossFadeQueued!")); }
static int _m_Create_xlua_st_(RealStatePtr L) { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); int __gen_param_count = LuaAPI.lua_gettop(L); try { if (__gen_param_count == 5 && (LuaAPI.lua_isnil(L, 1) || LuaAPI.lua_type(L, 1) == LuaTypes.LUA_TSTRING) && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 2) && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 3) && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 4) && LuaTypes.LUA_TBOOLEAN == LuaAPI.lua_type(L, 5)) { string name = LuaAPI.lua_tostring(L, 1); int lengthSamples = LuaAPI.xlua_tointeger(L, 2); int channels = LuaAPI.xlua_tointeger(L, 3); int frequency = LuaAPI.xlua_tointeger(L, 4); bool stream = LuaAPI.lua_toboolean(L, 5); UnityEngine.AudioClip __cl_gen_ret = UnityEngine.AudioClip.Create(name, lengthSamples, channels, frequency, stream); translator.Push(L, __cl_gen_ret); return(1); } if (__gen_param_count == 6 && (LuaAPI.lua_isnil(L, 1) || LuaAPI.lua_type(L, 1) == LuaTypes.LUA_TSTRING) && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 2) && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 3) && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 4) && LuaTypes.LUA_TBOOLEAN == LuaAPI.lua_type(L, 5) && translator.Assignable <UnityEngine.AudioClip.PCMReaderCallback>(L, 6)) { string name = LuaAPI.lua_tostring(L, 1); int lengthSamples = LuaAPI.xlua_tointeger(L, 2); int channels = LuaAPI.xlua_tointeger(L, 3); int frequency = LuaAPI.xlua_tointeger(L, 4); bool stream = LuaAPI.lua_toboolean(L, 5); UnityEngine.AudioClip.PCMReaderCallback pcmreadercallback = translator.GetDelegate <UnityEngine.AudioClip.PCMReaderCallback>(L, 6); UnityEngine.AudioClip __cl_gen_ret = UnityEngine.AudioClip.Create(name, lengthSamples, channels, frequency, stream, pcmreadercallback); translator.Push(L, __cl_gen_ret); return(1); } if (__gen_param_count == 7 && (LuaAPI.lua_isnil(L, 1) || LuaAPI.lua_type(L, 1) == LuaTypes.LUA_TSTRING) && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 2) && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 3) && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 4) && LuaTypes.LUA_TBOOLEAN == LuaAPI.lua_type(L, 5) && translator.Assignable <UnityEngine.AudioClip.PCMReaderCallback>(L, 6) && translator.Assignable <UnityEngine.AudioClip.PCMSetPositionCallback>(L, 7)) { string name = LuaAPI.lua_tostring(L, 1); int lengthSamples = LuaAPI.xlua_tointeger(L, 2); int channels = LuaAPI.xlua_tointeger(L, 3); int frequency = LuaAPI.xlua_tointeger(L, 4); bool stream = LuaAPI.lua_toboolean(L, 5); UnityEngine.AudioClip.PCMReaderCallback pcmreadercallback = translator.GetDelegate <UnityEngine.AudioClip.PCMReaderCallback>(L, 6); UnityEngine.AudioClip.PCMSetPositionCallback pcmsetpositioncallback = translator.GetDelegate <UnityEngine.AudioClip.PCMSetPositionCallback>(L, 7); UnityEngine.AudioClip __cl_gen_ret = UnityEngine.AudioClip.Create(name, lengthSamples, channels, frequency, stream, pcmreadercallback, pcmsetpositioncallback); translator.Push(L, __cl_gen_ret); return(1); } } catch (System.Exception __gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + __gen_e)); } return(LuaAPI.luaL_error(L, "invalid arguments to UnityEngine.AudioClip.Create!")); }
static int _m_AddCommand(RealStatePtr L) { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); Logic __cl_gen_to_be_invoked = (Logic)translator.FastGetCSObj(L, 1); int __gen_param_count = LuaAPI.lua_gettop(L); try { if (__gen_param_count == 3 && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING) && translator.Assignable <UnityEngine.Events.UnityAction>(L, 3)) { string cmd = LuaAPI.lua_tostring(L, 2); UnityEngine.Events.UnityAction onCmd = translator.GetDelegate <UnityEngine.Events.UnityAction>(L, 3); __cl_gen_to_be_invoked.AddCommand(cmd, onCmd); return(0); } if (__gen_param_count == 3 && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING) && (LuaAPI.lua_isnil(L, 3) || LuaAPI.lua_type(L, 3) == LuaTypes.LUA_TSTRING)) { string label = LuaAPI.lua_tostring(L, 2); string cmd = LuaAPI.lua_tostring(L, 3); __cl_gen_to_be_invoked.AddCommand(label, cmd); return(0); } } catch (System.Exception __gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + __gen_e)); } return(LuaAPI.luaL_error(L, "invalid arguments to Logic.AddCommand!")); }
static int _m_Log(RealStatePtr L) { try { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); UnityEngine.Logger gen_to_be_invoked = (UnityEngine.Logger)translator.FastGetCSObj(L, 1); int gen_param_count = LuaAPI.lua_gettop(L); if (gen_param_count == 2 && translator.Assignable <object>(L, 2)) { object _message = translator.GetObject(L, 2, typeof(object)); gen_to_be_invoked.Log(_message); return(0); } if (gen_param_count == 3 && translator.Assignable <UnityEngine.LogType>(L, 2) && translator.Assignable <object>(L, 3)) { UnityEngine.LogType _logType; translator.Get(L, 2, out _logType); object _message = translator.GetObject(L, 3, typeof(object)); gen_to_be_invoked.Log(_logType, _message); return(0); } if (gen_param_count == 3 && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING) && translator.Assignable <object>(L, 3)) { string _tag = LuaAPI.lua_tostring(L, 2); object _message = translator.GetObject(L, 3, typeof(object)); gen_to_be_invoked.Log(_tag, _message); return(0); } if (gen_param_count == 4 && translator.Assignable <UnityEngine.LogType>(L, 2) && translator.Assignable <object>(L, 3) && translator.Assignable <UnityEngine.Object>(L, 4)) { UnityEngine.LogType _logType; translator.Get(L, 2, out _logType); object _message = translator.GetObject(L, 3, typeof(object)); UnityEngine.Object _context = (UnityEngine.Object)translator.GetObject(L, 4, typeof(UnityEngine.Object)); gen_to_be_invoked.Log(_logType, _message, _context); return(0); } if (gen_param_count == 4 && translator.Assignable <UnityEngine.LogType>(L, 2) && (LuaAPI.lua_isnil(L, 3) || LuaAPI.lua_type(L, 3) == LuaTypes.LUA_TSTRING) && translator.Assignable <object>(L, 4)) { UnityEngine.LogType _logType; translator.Get(L, 2, out _logType); string _tag = LuaAPI.lua_tostring(L, 3); object _message = translator.GetObject(L, 4, typeof(object)); gen_to_be_invoked.Log(_logType, _tag, _message); return(0); } if (gen_param_count == 4 && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING) && translator.Assignable <object>(L, 3) && translator.Assignable <UnityEngine.Object>(L, 4)) { string _tag = LuaAPI.lua_tostring(L, 2); object _message = translator.GetObject(L, 3, typeof(object)); UnityEngine.Object _context = (UnityEngine.Object)translator.GetObject(L, 4, typeof(UnityEngine.Object)); gen_to_be_invoked.Log(_tag, _message, _context); return(0); } if (gen_param_count == 5 && translator.Assignable <UnityEngine.LogType>(L, 2) && (LuaAPI.lua_isnil(L, 3) || LuaAPI.lua_type(L, 3) == LuaTypes.LUA_TSTRING) && translator.Assignable <object>(L, 4) && translator.Assignable <UnityEngine.Object>(L, 5)) { UnityEngine.LogType _logType; translator.Get(L, 2, out _logType); string _tag = LuaAPI.lua_tostring(L, 3); object _message = translator.GetObject(L, 4, typeof(object)); UnityEngine.Object _context = (UnityEngine.Object)translator.GetObject(L, 5, typeof(UnityEngine.Object)); gen_to_be_invoked.Log(_logType, _tag, _message, _context); return(0); } } catch (System.Exception gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + gen_e)); } return(LuaAPI.luaL_error(L, "invalid arguments to UnityEngine.Logger.Log!")); }
static int _m_LogFormat(RealStatePtr L) { try { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); UnityEngine.Logger gen_to_be_invoked = (UnityEngine.Logger)translator.FastGetCSObj(L, 1); int gen_param_count = LuaAPI.lua_gettop(L); if (gen_param_count >= 3 && translator.Assignable <UnityEngine.LogType>(L, 2) && (LuaAPI.lua_isnil(L, 3) || LuaAPI.lua_type(L, 3) == LuaTypes.LUA_TSTRING) && (LuaTypes.LUA_TNONE == LuaAPI.lua_type(L, 4) || translator.Assignable <object>(L, 4))) { UnityEngine.LogType _logType; translator.Get(L, 2, out _logType); string _format = LuaAPI.lua_tostring(L, 3); object[] _args = translator.GetParams <object>(L, 4); gen_to_be_invoked.LogFormat(_logType, _format, _args); return(0); } if (gen_param_count >= 4 && translator.Assignable <UnityEngine.LogType>(L, 2) && translator.Assignable <UnityEngine.Object>(L, 3) && (LuaAPI.lua_isnil(L, 4) || LuaAPI.lua_type(L, 4) == LuaTypes.LUA_TSTRING) && (LuaTypes.LUA_TNONE == LuaAPI.lua_type(L, 5) || translator.Assignable <object>(L, 5))) { UnityEngine.LogType _logType; translator.Get(L, 2, out _logType); UnityEngine.Object _context = (UnityEngine.Object)translator.GetObject(L, 3, typeof(UnityEngine.Object)); string _format = LuaAPI.lua_tostring(L, 4); object[] _args = translator.GetParams <object>(L, 5); gen_to_be_invoked.LogFormat(_logType, _context, _format, _args); return(0); } } catch (System.Exception gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + gen_e)); } return(LuaAPI.luaL_error(L, "invalid arguments to UnityEngine.Logger.LogFormat!")); }
static int _m_AddAssetbundleAssetsCache(RealStatePtr L) { try { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); AssetBundles.AssetBundleManager gen_to_be_invoked = (AssetBundles.AssetBundleManager)translator.FastGetCSObj(L, 1); int gen_param_count = LuaAPI.lua_gettop(L); if (gen_param_count == 3 && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING) && (LuaAPI.lua_isnil(L, 3) || LuaAPI.lua_type(L, 3) == LuaTypes.LUA_TSTRING)) { string _assetbundleName = LuaAPI.lua_tostring(L, 2); string _postfix = LuaAPI.lua_tostring(L, 3); gen_to_be_invoked.AddAssetbundleAssetsCache(_assetbundleName, _postfix); return(0); } if (gen_param_count == 2 && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING)) { string _assetbundleName = LuaAPI.lua_tostring(L, 2); gen_to_be_invoked.AddAssetbundleAssetsCache(_assetbundleName); return(0); } } catch (System.Exception gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + gen_e)); } return(LuaAPI.luaL_error(L, "invalid arguments to AssetBundles.AssetBundleManager.AddAssetbundleAssetsCache!")); }
static int __CreateInstance(RealStatePtr L) { try { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); if (LuaAPI.lua_gettop(L) == 2 && translator.Assignable <Microsoft.IO.RecyclableMemoryStreamManager>(L, 2)) { Microsoft.IO.RecyclableMemoryStreamManager _memoryManager = (Microsoft.IO.RecyclableMemoryStreamManager)translator.GetObject(L, 2, typeof(Microsoft.IO.RecyclableMemoryStreamManager)); Microsoft.IO.RecyclableMemoryStream gen_ret = new Microsoft.IO.RecyclableMemoryStream(_memoryManager); translator.Push(L, gen_ret); return(1); } if (LuaAPI.lua_gettop(L) == 3 && translator.Assignable <Microsoft.IO.RecyclableMemoryStreamManager>(L, 2) && (LuaAPI.lua_isnil(L, 3) || LuaAPI.lua_type(L, 3) == LuaTypes.LUA_TSTRING)) { Microsoft.IO.RecyclableMemoryStreamManager _memoryManager = (Microsoft.IO.RecyclableMemoryStreamManager)translator.GetObject(L, 2, typeof(Microsoft.IO.RecyclableMemoryStreamManager)); string _tag = LuaAPI.lua_tostring(L, 3); Microsoft.IO.RecyclableMemoryStream gen_ret = new Microsoft.IO.RecyclableMemoryStream(_memoryManager, _tag); translator.Push(L, gen_ret); return(1); } if (LuaAPI.lua_gettop(L) == 4 && translator.Assignable <Microsoft.IO.RecyclableMemoryStreamManager>(L, 2) && (LuaAPI.lua_isnil(L, 3) || LuaAPI.lua_type(L, 3) == LuaTypes.LUA_TSTRING) && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 4)) { Microsoft.IO.RecyclableMemoryStreamManager _memoryManager = (Microsoft.IO.RecyclableMemoryStreamManager)translator.GetObject(L, 2, typeof(Microsoft.IO.RecyclableMemoryStreamManager)); string _tag = LuaAPI.lua_tostring(L, 3); int _requestedSize = LuaAPI.xlua_tointeger(L, 4); Microsoft.IO.RecyclableMemoryStream gen_ret = new Microsoft.IO.RecyclableMemoryStream(_memoryManager, _tag, _requestedSize); translator.Push(L, gen_ret); return(1); } } catch (System.Exception gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + gen_e)); } return(LuaAPI.luaL_error(L, "invalid arguments to Microsoft.IO.RecyclableMemoryStream constructor!")); }
static int _m_LogAssertionFormat_xlua_st_(RealStatePtr L) { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); int __gen_param_count = LuaAPI.lua_gettop(L); try { if (__gen_param_count >= 1 && (LuaAPI.lua_isnil(L, 1) || LuaAPI.lua_type(L, 1) == LuaTypes.LUA_TSTRING) && (LuaTypes.LUA_TNONE == LuaAPI.lua_type(L, 2) || translator.Assignable <object>(L, 2))) { string format = LuaAPI.lua_tostring(L, 1); object[] args = translator.GetParams <object>(L, 2); UnityEngine.Debug.LogAssertionFormat(format, args); return(0); } if (__gen_param_count >= 2 && translator.Assignable <UnityEngine.Object>(L, 1) && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING) && (LuaTypes.LUA_TNONE == LuaAPI.lua_type(L, 3) || translator.Assignable <object>(L, 3))) { UnityEngine.Object context = (UnityEngine.Object)translator.GetObject(L, 1, typeof(UnityEngine.Object)); string format = LuaAPI.lua_tostring(L, 2); object[] args = translator.GetParams <object>(L, 3); UnityEngine.Debug.LogAssertionFormat(context, format, args); return(0); } } catch (System.Exception __gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + __gen_e)); } return(LuaAPI.luaL_error(L, "invalid arguments to UnityEngine.Debug.LogAssertionFormat!")); }
static int _m_Write(RealStatePtr L) { try { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); System.IO.BinaryWriter gen_to_be_invoked = (System.IO.BinaryWriter)translator.FastGetCSObj(L, 1); int gen_param_count = LuaAPI.lua_gettop(L); if (gen_param_count == 2 && LuaTypes.LUA_TBOOLEAN == LuaAPI.lua_type(L, 2)) { bool _value = LuaAPI.lua_toboolean(L, 2); gen_to_be_invoked.Write(_value); return(0); } if (gen_param_count == 2 && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 2)) { byte _value = (byte)LuaAPI.xlua_tointeger(L, 2); gen_to_be_invoked.Write(_value); return(0); } if (gen_param_count == 2 && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 2)) { sbyte _value = (sbyte)LuaAPI.xlua_tointeger(L, 2); gen_to_be_invoked.Write(_value); return(0); } if (gen_param_count == 2 && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 2)) { char _ch = (char)LuaAPI.xlua_tointeger(L, 2); gen_to_be_invoked.Write(_ch); return(0); } if (gen_param_count == 2 && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 2)) { double _value = LuaAPI.lua_tonumber(L, 2); gen_to_be_invoked.Write(_value); return(0); } if (gen_param_count == 2 && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 2)) { short _value = (short)LuaAPI.xlua_tointeger(L, 2); gen_to_be_invoked.Write(_value); return(0); } if (gen_param_count == 2 && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 2)) { ushort _value = (ushort)LuaAPI.xlua_tointeger(L, 2); gen_to_be_invoked.Write(_value); return(0); } if (gen_param_count == 2 && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 2)) { int _value = LuaAPI.xlua_tointeger(L, 2); gen_to_be_invoked.Write(_value); return(0); } if (gen_param_count == 2 && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 2)) { uint _value = LuaAPI.xlua_touint(L, 2); gen_to_be_invoked.Write(_value); return(0); } if (gen_param_count == 2 && (LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 2) || LuaAPI.lua_isint64(L, 2))) { long _value = LuaAPI.lua_toint64(L, 2); gen_to_be_invoked.Write(_value); return(0); } if (gen_param_count == 2 && (LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 2) || LuaAPI.lua_isuint64(L, 2))) { ulong _value = LuaAPI.lua_touint64(L, 2); gen_to_be_invoked.Write(_value); return(0); } if (gen_param_count == 2 && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 2)) { float _value = (float)LuaAPI.lua_tonumber(L, 2); gen_to_be_invoked.Write(_value); return(0); } if (gen_param_count == 2 && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING)) { byte[] _buffer = LuaAPI.lua_tobytes(L, 2); gen_to_be_invoked.Write(_buffer); return(0); } if (gen_param_count == 2 && translator.Assignable <char[]>(L, 2)) { char[] _chars = (char[])translator.GetObject(L, 2, typeof(char[])); gen_to_be_invoked.Write(_chars); return(0); } if (gen_param_count == 2 && (LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 2) || translator.IsDecimal(L, 2))) { decimal _value; translator.Get(L, 2, out _value); gen_to_be_invoked.Write(_value); return(0); } if (gen_param_count == 2 && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING)) { string _value = LuaAPI.lua_tostring(L, 2); gen_to_be_invoked.Write(_value); return(0); } if (gen_param_count == 4 && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING) && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 3) && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 4)) { byte[] _buffer = LuaAPI.lua_tobytes(L, 2); int _index = LuaAPI.xlua_tointeger(L, 3); int _count = LuaAPI.xlua_tointeger(L, 4); gen_to_be_invoked.Write(_buffer, _index, _count); return(0); } if (gen_param_count == 4 && translator.Assignable <char[]>(L, 2) && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 3) && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 4)) { char[] _chars = (char[])translator.GetObject(L, 2, typeof(char[])); int _index = LuaAPI.xlua_tointeger(L, 3); int _count = LuaAPI.xlua_tointeger(L, 4); gen_to_be_invoked.Write(_chars, _index, _count); return(0); } } catch (System.Exception gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + gen_e)); } return(LuaAPI.luaL_error(L, "invalid arguments to System.IO.BinaryWriter.Write!")); }
private ObjectCheck genChecker(Type type) { ObjectCheck fixTypeCheck = (RealStatePtr L, int idx) => { if (LuaAPI.lua_type(L, idx) == LuaTypes.LUA_TUSERDATA) { object obj = translator.SafeGetCSObj(L, idx); if (obj != null) { return(type.IsAssignableFrom(obj.GetType())); } else { Type type_of_obj = translator.GetTypeOf(L, idx); if (type_of_obj != null) { return(type.IsAssignableFrom(type_of_obj)); } } } return(false); }; if (!type.IsAbstract() && typeof(Delegate).IsAssignableFrom(type)) { return((RealStatePtr L, int idx) => { return LuaAPI.lua_isnil(L, idx) || LuaAPI.lua_isfunction(L, idx) || fixTypeCheck(L, idx); }); } else if (type.IsEnum()) { return(fixTypeCheck); } else if (type.IsInterface()) { return((RealStatePtr L, int idx) => { return LuaAPI.lua_isnil(L, idx) || LuaAPI.lua_istable(L, idx) || fixTypeCheck(L, idx); }); } else { if ((type.IsClass() && type.GetConstructor(System.Type.EmptyTypes) != null)) //class has default construtor { return((RealStatePtr L, int idx) => { return LuaAPI.lua_isnil(L, idx) || LuaAPI.lua_istable(L, idx) || fixTypeCheck(L, idx); }); } else if (type.IsValueType()) { return((RealStatePtr L, int idx) => { return LuaAPI.lua_istable(L, idx) || fixTypeCheck(L, idx); }); } else if (type.IsArray) { return((RealStatePtr L, int idx) => { return LuaAPI.lua_isnil(L, idx) || LuaAPI.lua_istable(L, idx) || fixTypeCheck(L, idx); }); } else { return((RealStatePtr L, int idx) => { return LuaAPI.lua_isnil(L, idx) || fixTypeCheck(L, idx); }); } } }
static int _m_CreateCallbackDelegate_xlua_st_(RealStatePtr L) { try { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); int gen_param_count = LuaAPI.lua_gettop(L); if (gen_param_count >= 2 && translator.Assignable <System.Type>(L, 1) && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING) && (LuaTypes.LUA_TNONE == LuaAPI.lua_type(L, 3) || translator.Assignable <System.Type>(L, 3))) { System.Type _type = (System.Type)translator.GetObject(L, 1, typeof(System.Type)); string _methodName = LuaAPI.lua_tostring(L, 2); System.Type[] _paramTypes = translator.GetParams <System.Type>(L, 3); System.Delegate gen_ret = XLuaHelper.CreateCallbackDelegate(_type, _methodName, _paramTypes); translator.Push(L, gen_ret); return(1); } if (gen_param_count >= 2 && translator.Assignable <object>(L, 1) && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING) && (LuaTypes.LUA_TNONE == LuaAPI.lua_type(L, 3) || translator.Assignable <System.Type>(L, 3))) { object _target = translator.GetObject(L, 1, typeof(object)); string _methodName = LuaAPI.lua_tostring(L, 2); System.Type[] _paramTypes = translator.GetParams <System.Type>(L, 3); System.Delegate gen_ret = XLuaHelper.CreateCallbackDelegate(_target, _methodName, _paramTypes); translator.Push(L, gen_ret); return(1); } } catch (System.Exception gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + gen_e)); } return(LuaAPI.luaL_error(L, "invalid arguments to XLuaHelper.CreateCallbackDelegate!")); }
private ObjectCast genCaster(Type type) { ObjectCast fixTypeGetter = (RealStatePtr L, int idx, object target) => { if (LuaAPI.lua_type(L, idx) == LuaTypes.LUA_TUSERDATA) { object obj = translator.SafeGetCSObj(L, idx); return((obj != null && type.IsAssignableFrom(obj.GetType())) ? obj : null); } return(null); }; if (typeof(Delegate).IsAssignableFrom(type)) { return((RealStatePtr L, int idx, object target) => { object obj = fixTypeGetter(L, idx, target); if (obj != null) { return obj; } if (!LuaAPI.lua_isfunction(L, idx)) { return null; } return translator.CreateDelegateBridge(L, type, idx); }); } else if (typeof(DelegateBridgeBase).IsAssignableFrom(type)) { return((RealStatePtr L, int idx, object target) => { object obj = fixTypeGetter(L, idx, target); if (obj != null) { return obj; } if (!LuaAPI.lua_isfunction(L, idx)) { return null; } return translator.CreateDelegateBridge(L, null, idx); }); } else if (type.IsInterface()) { return((RealStatePtr L, int idx, object target) => { object obj = fixTypeGetter(L, idx, target); if (obj != null) { return obj; } if (!LuaAPI.lua_istable(L, idx)) { return null; } return translator.CreateInterfaceBridge(L, type, idx); }); } else if (type.IsEnum()) { return((RealStatePtr L, int idx, object target) => { object obj = fixTypeGetter(L, idx, target); if (obj != null) { return obj; } LuaTypes lua_type = LuaAPI.lua_type(L, idx); if (lua_type == LuaTypes.LUA_TSTRING) { return Enum.Parse(type, LuaAPI.lua_tostring(L, idx)); } else if (lua_type == LuaTypes.LUA_TNUMBER) { return Enum.ToObject(type, LuaAPI.xlua_tointeger(L, idx)); } throw new InvalidCastException("invalid value for enum " + type); }); } else if (type.IsArray) { return((RealStatePtr L, int idx, object target) => { object obj = fixTypeGetter(L, idx, target); if (obj != null) { return obj; } if (!LuaAPI.lua_istable(L, idx)) { return null; } uint len = LuaAPI.xlua_objlen(L, idx); int n = LuaAPI.lua_gettop(L); idx = idx > 0 ? idx : LuaAPI.lua_gettop(L) + idx + 1;// abs of index Type et = type.GetElementType(); ObjectCast elementCaster = GetCaster(et); Array ary = target == null?Array.CreateInstance(et, (int)len) : target as Array; if (!LuaAPI.lua_checkstack(L, 1)) { throw new Exception("stack overflow while cast to Array"); } for (int i = 0; i < len; ++i) { LuaAPI.lua_pushnumber(L, i + 1); LuaAPI.lua_rawget(L, idx); if (et.IsPrimitive()) { if (!StaticLuaCallbacks.TryPrimitiveArraySet(type, L, ary, i, n + 1)) { ary.SetValue(elementCaster(L, n + 1, null), i); } } else { if (InternalGlobals.genTryArraySetPtr == null || !InternalGlobals.genTryArraySetPtr(type, L, translator, ary, i, n + 1)) { ary.SetValue(elementCaster(L, n + 1, null), i); } } LuaAPI.lua_pop(L, 1); } return ary; }); } else if (typeof(IList).IsAssignableFrom(type) && type.IsGenericType()) { Type elementType = type.GetGenericArguments()[0]; ObjectCast elementCaster = GetCaster(elementType); return((RealStatePtr L, int idx, object target) => { object obj = fixTypeGetter(L, idx, target); if (obj != null) { return obj; } if (!LuaAPI.lua_istable(L, idx)) { return null; } obj = target == null?Activator.CreateInstance(type) : target; int n = LuaAPI.lua_gettop(L); idx = idx > 0 ? idx : LuaAPI.lua_gettop(L) + idx + 1;// abs of index IList list = obj as IList; uint len = LuaAPI.xlua_objlen(L, idx); if (!LuaAPI.lua_checkstack(L, 1)) { throw new Exception("stack overflow while cast to IList"); } for (int i = 0; i < len; ++i) { LuaAPI.lua_pushnumber(L, i + 1); LuaAPI.lua_rawget(L, idx); if (i < list.Count && target != null) { if (translator.Assignable(L, n + 1, elementType)) { list[i] = elementCaster(L, n + 1, list[i]); } } else { if (translator.Assignable(L, n + 1, elementType)) { list.Add(elementCaster(L, n + 1, null)); } } LuaAPI.lua_pop(L, 1); } return obj; }); } else if (typeof(IDictionary).IsAssignableFrom(type) && type.IsGenericType()) { Type keyType = type.GetGenericArguments()[0]; ObjectCast keyCaster = GetCaster(keyType); Type valueType = type.GetGenericArguments()[1]; ObjectCast valueCaster = GetCaster(valueType); return((RealStatePtr L, int idx, object target) => { object obj = fixTypeGetter(L, idx, target); if (obj != null) { return obj; } if (!LuaAPI.lua_istable(L, idx)) { return null; } IDictionary dic = (target == null ? Activator.CreateInstance(type) : target) as IDictionary; int n = LuaAPI.lua_gettop(L); idx = idx > 0 ? idx : LuaAPI.lua_gettop(L) + idx + 1;// abs of index LuaAPI.lua_pushnil(L); if (!LuaAPI.lua_checkstack(L, 1)) { throw new Exception("stack overflow while cast to IDictionary"); } while (LuaAPI.lua_next(L, idx) != 0) { if (translator.Assignable(L, n + 1, keyType) && translator.Assignable(L, n + 2, valueType)) { object k = keyCaster(L, n + 1, null); dic[k] = valueCaster(L, n + 2, !dic.Contains(k) ? null : dic[k]); } LuaAPI.lua_pop(L, 1); // removes value, keeps key for next iteration } return dic; }); } else if ((type.IsClass() && type.GetConstructor(System.Type.EmptyTypes) != null) || (type.IsValueType() && !type.IsEnum())) //class has default construtor { return((RealStatePtr L, int idx, object target) => { object obj = fixTypeGetter(L, idx, target); if (obj != null) { return obj; } if (!LuaAPI.lua_istable(L, idx)) { return null; } obj = target == null?Activator.CreateInstance(type) : target; int n = LuaAPI.lua_gettop(L); idx = idx > 0 ? idx : LuaAPI.lua_gettop(L) + idx + 1;// abs of index if (!LuaAPI.lua_checkstack(L, 1)) { throw new Exception("stack overflow while cast to " + type); } /*foreach (PropertyInfo prop in type.GetProperties()) * { * var _setMethod = prop.GetSetMethod(); * * if (_setMethod == null || * _setMethod.IsPrivate) * { * continue; * } * * LuaAPI.xlua_pushasciistring(L, prop.Name); * LuaAPI.lua_rawget(L, idx); * if (!LuaAPI.lua_isnil(L, -1)) * { * try * { * prop.SetValue(obj, GetCaster(prop.PropertyType)(L, n + 1, * target == null || prop.PropertyType.IsPrimitive() || prop.PropertyType == typeof(string) ? null : prop.GetValue(obj, null)), null); * } * catch (Exception e) * { * throw new Exception("exception in tran " + prop.Name + ", msg=" + e.Message); * } * } * LuaAPI.lua_pop(L, 1); * }*/ foreach (FieldInfo field in type.GetFields()) { LuaAPI.xlua_pushasciistring(L, field.Name); LuaAPI.lua_rawget(L, idx); if (!LuaAPI.lua_isnil(L, -1)) { try { field.SetValue(obj, GetCaster(field.FieldType)(L, n + 1, target == null || field.FieldType.IsPrimitive() || field.FieldType == typeof(string) ? null : field.GetValue(obj))); } catch (Exception e) { throw new Exception("exception in tran " + field.Name + ", msg=" + e.Message); } } LuaAPI.lua_pop(L, 1); } return obj; }); } else { return(fixTypeGetter); } }
static int _m_LoadPrefabGameObject(RealStatePtr L) { try { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); XLuaFramework.ResourceManager gen_to_be_invoked = (XLuaFramework.ResourceManager)translator.FastGetCSObj(L, 1); int gen_param_count = LuaAPI.lua_gettop(L); if (gen_param_count == 3 && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING) && (LuaAPI.lua_isnil(L, 3) || LuaAPI.lua_type(L, 3) == LuaTypes.LUA_TFUNCTION)) { string _file_path = LuaAPI.lua_tostring(L, 2); XLua.LuaFunction _func = (XLua.LuaFunction)translator.GetObject(L, 3, typeof(XLua.LuaFunction)); gen_to_be_invoked.LoadPrefabGameObject(_file_path, _func); return(0); } if (gen_param_count == 2 && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING)) { string _file_path = LuaAPI.lua_tostring(L, 2); gen_to_be_invoked.LoadPrefabGameObject(_file_path); return(0); } } catch (System.Exception gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + gen_e)); } return(LuaAPI.luaL_error(L, "invalid arguments to XLuaFramework.ResourceManager.LoadPrefabGameObject!")); }
private bool luaTableCheck(RealStatePtr L, int idx) { return(LuaAPI.lua_isnil(L, idx) || LuaAPI.lua_istable(L, idx) || (LuaAPI.lua_type(L, idx) == LuaTypes.LUA_TUSERDATA && translator.SafeGetCSObj(L, idx) is LuaTable)); }
static int _m_AddClip(RealStatePtr L) { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); UnityEngine.Animation __cl_gen_to_be_invoked = (UnityEngine.Animation)translator.FastGetCSObj(L, 1); int __gen_param_count = LuaAPI.lua_gettop(L); try { if (__gen_param_count == 3 && translator.Assignable <UnityEngine.AnimationClip>(L, 2) && (LuaAPI.lua_isnil(L, 3) || LuaAPI.lua_type(L, 3) == LuaTypes.LUA_TSTRING)) { UnityEngine.AnimationClip clip = (UnityEngine.AnimationClip)translator.GetObject(L, 2, typeof(UnityEngine.AnimationClip)); string newName = LuaAPI.lua_tostring(L, 3); __cl_gen_to_be_invoked.AddClip(clip, newName); return(0); } if (__gen_param_count == 5 && translator.Assignable <UnityEngine.AnimationClip>(L, 2) && (LuaAPI.lua_isnil(L, 3) || LuaAPI.lua_type(L, 3) == LuaTypes.LUA_TSTRING) && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 4) && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 5)) { UnityEngine.AnimationClip clip = (UnityEngine.AnimationClip)translator.GetObject(L, 2, typeof(UnityEngine.AnimationClip)); string newName = LuaAPI.lua_tostring(L, 3); int firstFrame = LuaAPI.xlua_tointeger(L, 4); int lastFrame = LuaAPI.xlua_tointeger(L, 5); __cl_gen_to_be_invoked.AddClip(clip, newName, firstFrame, lastFrame); return(0); } if (__gen_param_count == 6 && translator.Assignable <UnityEngine.AnimationClip>(L, 2) && (LuaAPI.lua_isnil(L, 3) || LuaAPI.lua_type(L, 3) == LuaTypes.LUA_TSTRING) && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 4) && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 5) && LuaTypes.LUA_TBOOLEAN == LuaAPI.lua_type(L, 6)) { UnityEngine.AnimationClip clip = (UnityEngine.AnimationClip)translator.GetObject(L, 2, typeof(UnityEngine.AnimationClip)); string newName = LuaAPI.lua_tostring(L, 3); int firstFrame = LuaAPI.xlua_tointeger(L, 4); int lastFrame = LuaAPI.xlua_tointeger(L, 5); bool addLoopFrame = LuaAPI.lua_toboolean(L, 6); __cl_gen_to_be_invoked.AddClip(clip, newName, firstFrame, lastFrame, addLoopFrame); return(0); } } catch (System.Exception __gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + __gen_e)); } return(LuaAPI.luaL_error(L, "invalid arguments to UnityEngine.Animation.AddClip!")); }
private bool strCheck(RealStatePtr L, int idx) { return(LuaAPI.lua_type(L, idx) == LuaTypes.LUA_TSTRING || LuaAPI.lua_isnil(L, idx)); }
static int _m_LoadSceneAsync_xlua_st_(RealStatePtr L) { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); int __gen_param_count = LuaAPI.lua_gettop(L); try { if (__gen_param_count == 1 && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 1)) { int sceneBuildIndex = LuaAPI.xlua_tointeger(L, 1); UnityEngine.AsyncOperation __cl_gen_ret = UnityEngine.SceneManagement.SceneManager.LoadSceneAsync(sceneBuildIndex); translator.Push(L, __cl_gen_ret); return(1); } if (__gen_param_count == 1 && (LuaAPI.lua_isnil(L, 1) || LuaAPI.lua_type(L, 1) == LuaTypes.LUA_TSTRING)) { string sceneName = LuaAPI.lua_tostring(L, 1); UnityEngine.AsyncOperation __cl_gen_ret = UnityEngine.SceneManagement.SceneManager.LoadSceneAsync(sceneName); translator.Push(L, __cl_gen_ret); return(1); } if (__gen_param_count == 2 && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 1) && translator.Assignable <UnityEngine.SceneManagement.LoadSceneMode>(L, 2)) { int sceneBuildIndex = LuaAPI.xlua_tointeger(L, 1); UnityEngine.SceneManagement.LoadSceneMode mode; translator.Get(L, 2, out mode); UnityEngine.AsyncOperation __cl_gen_ret = UnityEngine.SceneManagement.SceneManager.LoadSceneAsync(sceneBuildIndex, mode); translator.Push(L, __cl_gen_ret); return(1); } if (__gen_param_count == 2 && (LuaAPI.lua_isnil(L, 1) || LuaAPI.lua_type(L, 1) == LuaTypes.LUA_TSTRING) && translator.Assignable <UnityEngine.SceneManagement.LoadSceneMode>(L, 2)) { string sceneName = LuaAPI.lua_tostring(L, 1); UnityEngine.SceneManagement.LoadSceneMode mode; translator.Get(L, 2, out mode); UnityEngine.AsyncOperation __cl_gen_ret = UnityEngine.SceneManagement.SceneManager.LoadSceneAsync(sceneName, mode); translator.Push(L, __cl_gen_ret); return(1); } } catch (System.Exception __gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + __gen_e)); } return(LuaAPI.luaL_error(L, "invalid arguments to UnityEngine.SceneManagement.SceneManager.LoadSceneAsync!")); }
private bool bytesCheck(RealStatePtr L, int idx) { return(LuaAPI.lua_type(L, idx) == LuaTypes.LUA_TSTRING || LuaAPI.lua_isnil(L, idx) || (LuaAPI.lua_type(L, idx) == LuaTypes.LUA_TUSERDATA && translator.SafeGetCSObj(L, idx) is byte[])); }
static int __CreateInstance(RealStatePtr L) { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); try { if (LuaAPI.lua_gettop(L) == 3 && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING) && (LuaAPI.lua_isnil(L, 3) || LuaAPI.lua_type(L, 3) == LuaTypes.LUA_TSTRING)) { string strName = LuaAPI.lua_tostring(L, 2); string strPath = LuaAPI.lua_tostring(L, 3); xc.DBDataAllSkill __cl_gen_ret = new xc.DBDataAllSkill(strName, strPath); translator.Push(L, __cl_gen_ret); return(1); } } catch (System.Exception __gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + __gen_e)); } return(LuaAPI.luaL_error(L, "invalid arguments to xc.DBDataAllSkill constructor!")); }
static int _m_DoString_xlua_st_(RealStatePtr L) { try { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); int gen_param_count = LuaAPI.lua_gettop(L); if (gen_param_count == 3 && (LuaAPI.lua_isnil(L, 1) || LuaAPI.lua_type(L, 1) == LuaTypes.LUA_TSTRING) && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING) && (LuaAPI.lua_isnil(L, 3) || LuaAPI.lua_type(L, 3) == LuaTypes.LUA_TTABLE)) { string _chunk = LuaAPI.lua_tostring(L, 1); string _chunkName = LuaAPI.lua_tostring(L, 2); XLua.LuaTable _env = (XLua.LuaTable)translator.GetObject(L, 3, typeof(XLua.LuaTable)); object[] gen_ret = LuaSystem.DoString(_chunk, _chunkName, _env); translator.Push(L, gen_ret); return(1); } if (gen_param_count == 2 && (LuaAPI.lua_isnil(L, 1) || LuaAPI.lua_type(L, 1) == LuaTypes.LUA_TSTRING) && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING)) { string _chunk = LuaAPI.lua_tostring(L, 1); string _chunkName = LuaAPI.lua_tostring(L, 2); object[] gen_ret = LuaSystem.DoString(_chunk, _chunkName); translator.Push(L, gen_ret); return(1); } if (gen_param_count == 1 && (LuaAPI.lua_isnil(L, 1) || LuaAPI.lua_type(L, 1) == LuaTypes.LUA_TSTRING)) { string _chunk = LuaAPI.lua_tostring(L, 1); object[] gen_ret = LuaSystem.DoString(_chunk); translator.Push(L, gen_ret); return(1); } } catch (System.Exception gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + gen_e)); } return(LuaAPI.luaL_error(L, "invalid arguments to LuaSystem.DoString!")); }
public Delegate CreateDelegateBridge(RealStatePtr L, Type delegateType, int idx) { LuaAPI.lua_pushvalue(L, idx); LuaAPI.lua_rawget(L, LuaIndexes.LUA_REGISTRYINDEX); if (!LuaAPI.lua_isnil(L, -1)) { int referenced = LuaAPI.xlua_tointeger(L, -1); LuaAPI.lua_pop(L, 1); if (delegate_bridges[referenced].IsAlive) { DelegateBridgeBase exist_bridge = delegate_bridges[referenced].Target as DelegateBridgeBase; Delegate exist_delegate; if (exist_bridge.TryGetDelegate(delegateType, out exist_delegate)) { return(exist_delegate); } else { exist_delegate = exist_bridge.GetDelegateByType(delegateType); exist_bridge.AddDelegate(delegateType, exist_delegate); return(exist_delegate); } } } else { LuaAPI.lua_pop(L, 1); } LuaAPI.lua_pushvalue(L, idx); int reference = LuaAPI.luaL_ref(L); LuaAPI.lua_pushvalue(L, idx); LuaAPI.lua_pushnumber(L, reference); LuaAPI.lua_rawset(L, LuaIndexes.LUA_REGISTRYINDEX); DelegateBridgeBase bridge; try { #if UNITY_EDITOR || XLUA_GENERAL if (!DelegateBridge.Gen_Flag) { bridge = Activator.CreateInstance(delegate_birdge_type, new object[] { reference, luaEnv }) as DelegateBridgeBase; } else #endif { bridge = new DelegateBridge(reference, luaEnv); } } catch (Exception e) { LuaAPI.lua_pushvalue(L, idx); LuaAPI.lua_pushnil(L); LuaAPI.lua_rawset(L, LuaIndexes.LUA_REGISTRYINDEX); LuaAPI.lua_pushnil(L); LuaAPI.xlua_rawseti(L, LuaIndexes.LUA_REGISTRYINDEX, reference); throw e; } try { var ret = bridge.GetDelegateByType(delegateType); bridge.AddDelegate(delegateType, ret); delegate_bridges[reference] = new WeakReference(bridge); return(ret); } catch (Exception e) { bridge.Dispose(); throw e; } }
static int __CreateInstance(RealStatePtr L) { try { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); if (LuaAPI.lua_gettop(L) == 3 && translator.Assignable <System.Type>(L, 2) && (LuaAPI.lua_isnil(L, 3) || LuaAPI.lua_type(L, 3) == LuaTypes.LUA_TSTRING)) { System.Type _type = (System.Type)translator.GetObject(L, 2, typeof(System.Type)); string _methodName = LuaAPI.lua_tostring(L, 3); DCETRuntime.MonoStaticMethod gen_ret = new DCETRuntime.MonoStaticMethod(_type, _methodName); translator.Push(L, gen_ret); return(1); } } catch (System.Exception gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + gen_e)); } return(LuaAPI.luaL_error(L, "invalid arguments to DCETRuntime.MonoStaticMethod constructor!")); }
static int _m_GetString_xlua_st_(RealStatePtr L) { try { int gen_param_count = LuaAPI.lua_gettop(L); if (gen_param_count == 1 && (LuaAPI.lua_isnil(L, 1) || LuaAPI.lua_type(L, 1) == LuaTypes.LUA_TSTRING)) { string _key = LuaAPI.lua_tostring(L, 1); var gen_ret = UnityEngine.PlayerPrefs.GetString(_key); LuaAPI.lua_pushstring(L, gen_ret); return(1); } if (gen_param_count == 2 && (LuaAPI.lua_isnil(L, 1) || LuaAPI.lua_type(L, 1) == LuaTypes.LUA_TSTRING) && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING)) { string _key = LuaAPI.lua_tostring(L, 1); string _defaultValue = LuaAPI.lua_tostring(L, 2); var gen_ret = UnityEngine.PlayerPrefs.GetString(_key, _defaultValue); LuaAPI.lua_pushstring(L, gen_ret); return(1); } } catch (System.Exception gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + gen_e)); } return(LuaAPI.luaL_error(L, "invalid arguments to UnityEngine.PlayerPrefs.GetString!")); }
static int __CreateInstance(RealStatePtr L) { try { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); if (LuaAPI.lua_gettop(L) == 3 && translator.Assignable <System.Collections.Generic.List <FairyGUI.Utils.XML> >(L, 2) && (LuaAPI.lua_isnil(L, 3) || LuaAPI.lua_type(L, 3) == LuaTypes.LUA_TSTRING)) { System.Collections.Generic.List <FairyGUI.Utils.XML> _source = (System.Collections.Generic.List <FairyGUI.Utils.XML>)translator.GetObject(L, 2, typeof(System.Collections.Generic.List <FairyGUI.Utils.XML>)); string _selector = LuaAPI.lua_tostring(L, 3); FairyGUI.Utils.XMLList.Enumerator gen_ret = new FairyGUI.Utils.XMLList.Enumerator(_source, _selector); translator.Push(L, gen_ret); return(1); } if (LuaAPI.lua_gettop(L) == 1) { translator.Push(L, default(FairyGUI.Utils.XMLList.Enumerator)); return(1); } } catch (System.Exception gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + gen_e)); } return(LuaAPI.luaL_error(L, "invalid arguments to FairyGUI.Utils.XMLList.Enumerator constructor!")); }