#pragma once #include #include #include "../lua_util.hpp" /// Definitions can be found in local .cpp files /// having same names as declarations /// l_ prefix means that function is lua_CFunction: /// int l_function_name(lua_State* L); /// use following syntax: /// int l_function_name(lua::State* L); // Libraries extern const luaL_Reg audiolib[]; extern const luaL_Reg base64lib[]; extern const luaL_Reg bjsonlib[]; extern const luaL_Reg blocklib[]; extern const luaL_Reg blockwrapslib[]; // gfx.blockwraps extern const luaL_Reg cameralib[]; extern const luaL_Reg consolelib[]; extern const luaL_Reg corelib[]; extern const luaL_Reg entitylib[]; extern const luaL_Reg filelib[]; extern const luaL_Reg generationlib[]; extern const luaL_Reg guilib[]; extern const luaL_Reg hudlib[]; extern const luaL_Reg inputlib[]; extern const luaL_Reg inventorylib[]; extern const luaL_Reg itemlib[]; extern const luaL_Reg jsonlib[]; extern const luaL_Reg mat4lib[]; extern const luaL_Reg packlib[]; extern const luaL_Reg particleslib[]; // gfx.particles extern const luaL_Reg playerlib[]; extern const luaL_Reg quatlib[]; extern const luaL_Reg text3dlib[]; // gfx.text3d extern const luaL_Reg timelib[]; extern const luaL_Reg tomllib[]; extern const luaL_Reg utf8lib[]; extern const luaL_Reg vec2lib[]; // vecn.cpp extern const luaL_Reg vec3lib[]; // vecn.cpp extern const luaL_Reg vec4lib[]; // vecn.cpp extern const luaL_Reg worldlib[]; // Components extern const luaL_Reg skeletonlib[]; extern const luaL_Reg rigidbodylib[]; extern const luaL_Reg transformlib[]; // Lua Overrides extern int l_print(lua::State* L); namespace lua { inline uint check_argc(lua::State* L, int a) { int argc = lua::gettop(L); if (argc == a) { return static_cast(argc); } else { throw std::runtime_error( "invalid number of arguments (" + std::to_string(a) + " expected)" ); } } [[nodiscard]] inline uint check_argc(lua::State* L, int a, int b) { int argc = lua::gettop(L); if (argc == a || argc == b) { return static_cast(argc); } else { throw std::runtime_error( "invalid number of arguments (" + std::to_string(a) + " or " + std::to_string(b) + " expected)" ); } } } void initialize_libs_extends(lua::State* L);