Merge pull request #257 from wtfdnvxk/patch-1

extend lua by register extensions
This commit is contained in:
HALX99 2020-11-11 01:25:21 -08:00 committed by GitHub
commit 0a410dbf7f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 22 additions and 8 deletions

View File

@ -1,5 +1,6 @@
/**************************************************************************** /****************************************************************************
Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd. Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.
Copyright (c) 2020 c4games.com.
http://www.cocos2d-x.org http://www.cocos2d-x.org
@ -21,6 +22,7 @@
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE. THE SOFTWARE.
****************************************************************************/ ****************************************************************************/
#include "lua.hpp"
#include "scripting/lua-bindings/manual/lua_module_register.h" #include "scripting/lua-bindings/manual/lua_module_register.h"
@ -33,20 +35,29 @@
#include "scripting/lua-bindings/manual/audioengine/lua_cocos2dx_audioengine_manual.h" #include "scripting/lua-bindings/manual/audioengine/lua_cocos2dx_audioengine_manual.h"
#include "scripting/lua-bindings/manual/physics3d/lua_cocos2dx_physics3d_manual.h" #include "scripting/lua-bindings/manual/physics3d/lua_cocos2dx_physics3d_manual.h"
#include "scripting/lua-bindings/manual/navmesh/lua_cocos2dx_navmesh_manual.h" #include "scripting/lua-bindings/manual/navmesh/lua_cocos2dx_navmesh_manual.h"
#include "scripting/lua-bindings/lua-cjson/lua_cjson.h" #include "scripting/lua-bindings/lua-cjson/lua_cjson.h"
#if defined(CC_ENABLE_YASIO_LUA)
#include "yasio/bindings/yasio_cclua.h" #include "yasio/bindings/yasio_cclua.h"
#endif
static void lua_register_extensions(lua_State* L) {
static luaL_Reg lua_exts[] = {
{"yasio", luaopen_yasio_cclua},
{"cjson", luaopen_cjson},
{NULL, NULL}
};
lua_getglobal(L, "package");
lua_getfield(L, -1, "preload");
auto lib = lua_exts;
for (; lib->func; ++lib) {
lua_pushcfunction(L, lib->func);
lua_setfield(L, -2, lib->name);
}
lua_pop(L, 2);
}
int lua_module_register(lua_State* L) int lua_module_register(lua_State* L)
{ {
luaopen_cjson(L);
#if defined(CC_ENABLE_YASIO_LUA)
luaopen_yasio_cclua(L);
#endif
// Don't change the module register order unless you know what your are doing // Don't change the module register order unless you know what your are doing
register_network_module(L); register_network_module(L);
register_cocostudio_module(L); register_cocostudio_module(L);
@ -62,6 +73,9 @@ int lua_module_register(lua_State* L)
#if CC_USE_NAVMESH #if CC_USE_NAVMESH
register_navmesh_module(L); register_navmesh_module(L);
#endif #endif
// register extensions: yaiso, lua-cjson
lua_register_extensions(L);
return 1; return 1;
} }