public void Start() { if (ReadBytes == null) { ReadBytes = System.IO.File.ReadAllBytes; } L = Lua.newstate(); mainState = L; luaL_openlibs(L); lua_atpanic(L, PanicCallback); Register("print", DoPrint); Register("dofile", DoFile); Register("loadfile", LoadFile); errorFuncRef = get_error_func_ref(L); AddAssembly(Assembly.GetExecutingAssembly()); _global = LuaRef.Globals(L); _global.Set("luna", LuaRef.CreateTable(L)); Register("luna.typeof", GetClassType); Register("luna.findType", FindClassType); #if LUNA_SCRIPT DoString(coroutineSource); DoString(classSource); DoString(listSource); #endif _binder = new SharpModule(this); AddSearcher(LuaLoader); LunaNative.Init(L); SharpObject.Init(L); RegisterWraps(this.GetType()); foreach (var moduleInfo in this._config) { this.RegisterModel(moduleInfo); } PostInit?.Invoke(); var it = _classWrapers.GetEnumerator(); while (it.MoveNext()) { if (!SharpModule.IsRegistered(it.Current.Key)) { RegisterClass(it.Current.Key); } } //_classWrapers.Clear(); }