@@ -131,6 +131,13 @@ void LuaState::open_libraries(BitField<Library> libraries) {
131131 lua_state.require (module_names::local_paths, &luaopen_godot_local_paths, false );
132132 }
133133 }
134+
135+ lua_state.registry ().set (" _GDEXTENSION_OPEN_LIBS" , lua_state.registry ().get_or (" _GDEXTENSION_OPEN_LIBS" , 0 ) | libraries);
136+ }
137+
138+ bool LuaState::are_libraries_opened (BitField<Library> libraries) const {
139+ int64_t currently_opened_libs = lua_state.registry ().get_or (" _GDEXTENSION_OPEN_LIBS" , 0L );
140+ return (currently_opened_libs & libraries) == libraries;
134141}
135142
136143Ref<LuaTable> LuaState::create_table (const Dictionary& initial_values) {
@@ -247,15 +254,13 @@ void LuaState::_bind_methods() {
247254 BIND_BITFIELD_FLAG (LUA_JIT);
248255 BIND_BITFIELD_FLAG (LUA_UTF8);
249256 BIND_BITFIELD_FLAG (LUA_ALL_LIBS);
250-
251257 BIND_BITFIELD_FLAG (GODOT_VARIANT);
252258 BIND_BITFIELD_FLAG (GODOT_UTILITY_FUNCTIONS);
253259 BIND_BITFIELD_FLAG (GODOT_SINGLETONS);
254260 BIND_BITFIELD_FLAG (GODOT_CLASSES);
255261 BIND_BITFIELD_FLAG (GODOT_ENUMS);
256262 BIND_BITFIELD_FLAG (GODOT_LOCAL_PATHS);
257263 BIND_BITFIELD_FLAG (GODOT_ALL_LIBS);
258-
259264 BIND_BITFIELD_FLAG (ALL_LIBS);
260265
261266 // LoadMode enum
@@ -265,6 +270,7 @@ void LuaState::_bind_methods() {
265270
266271 // Methods
267272 ClassDB::bind_method (D_METHOD (" open_libraries" , " libraries" ), &LuaState::open_libraries, DEFVAL (BitField<Library>(ALL_LIBS)));
273+ ClassDB::bind_method (D_METHOD (" are_libraries_opened" , " libraries" ), &LuaState::are_libraries_opened);
268274 ClassDB::bind_method (D_METHOD (" create_table" , " initial_values" ), &LuaState::create_table, DEFVAL (Dictionary ()));
269275 ClassDB::bind_method (D_METHOD (" load_buffer" , " chunk" , " chunkname" , " mode" , " env" ), &LuaState::load_buffer, DEFVAL (" " ), DEFVAL (LOAD_MODE_ANY), DEFVAL (nullptr ));
270276 ClassDB::bind_method (D_METHOD (" load_string" , " chunk" , " chunkname" , " env" ), &LuaState::load_string, DEFVAL (" " ), DEFVAL (nullptr ));
0 commit comments