static internal int checkDelegate(IntPtr l, int p, out UnityEngine.EventSystems.ExecuteEvents.EventFunction <UnityEngine.EventSystems.IPointerExitHandler> ua) { int op = extractFunction(l, p); if (LuaDLL.lua_isnil(l, -1)) { ua = null; return(op); } int r = LuaDLL.luaS_checkcallback(l, -1); if (r < 0) { LuaDLL.luaL_error(l, "expect function"); } if (getCacheDelegate <UnityEngine.EventSystems.ExecuteEvents.EventFunction <UnityEngine.EventSystems.IPointerExitHandler> >(r, out ua)) { return(op); } LuaDLL.lua_pop(l, 1); ua = (UnityEngine.EventSystems.IPointerExitHandler a1, UnityEngine.EventSystems.BaseEventData a2) => { int error = pushTry(l); LuaDLL.lua_getref(l, r); pushValue(l, a1); pushValue(l, a2); if (LuaDLL.lua_pcall(l, 2, -1, error) != 0) { LuaDLL.lua_pop(l, 1); } LuaDLL.lua_pop(l, 1); }; cacheDelegate(r, ua); return(op); }
static public int noConstructor(IntPtr l) { LuaDLL.luaL_error(l, "Can't new this object"); return(0); }
static public object checkVar(IntPtr l, int p) { LuaTypes type = LuaDLL.lua_type(l, p); switch (type) { case LuaTypes.LUA_TNUMBER: { return(LuaDLL.lua_tonumber(l, p)); } case LuaTypes.LUA_TSTRING: { return(LuaDLL.lua_tostring(l, p)); } case LuaTypes.LUA_TBOOLEAN: { return(LuaDLL.lua_toboolean(l, p)); } case LuaTypes.LUA_TFUNCTION: { LuaDLL.lua_pushvalue(l, p); int r = LuaDLL.luaL_ref(l, LuaIndexes.LUA_REGISTRYINDEX); LuaFunction v = new LuaFunction(l, r); return(v); } case LuaTypes.LUA_TTABLE: { if (isLuaValueType(l, p)) { if (luaTypeCheck(l, p, "Vector2")) { Vector2 v; checkType(l, p, out v); return(v); } else if (luaTypeCheck(l, p, "Vector3")) { Vector3 v; checkType(l, p, out v); return(v); } else if (luaTypeCheck(l, p, "Vector4")) { Vector4 v; checkType(l, p, out v); return(v); } else if (luaTypeCheck(l, p, "Quaternion")) { Quaternion v; checkType(l, p, out v); return(v); } else if (luaTypeCheck(l, p, "Color")) { Color c; checkType(l, p, out c); return(c); } LuaDLL.luaL_error(l, "unknown lua value type"); return(null); } else if (isLuaClass(l, p)) { return(checkObj(l, p)); } else { LuaDLL.lua_pushvalue(l, p); int r = LuaDLL.luaL_ref(l, LuaIndexes.LUA_REGISTRYINDEX); LuaTable v = new LuaTable(l, r); return(v); } } case LuaTypes.LUA_TUSERDATA: return(LuaObject.checkObj(l, p)); default: return(null); } }