]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/script/lua_api/l_base.h
[CSM] Add flavour limits controlled by server (#5930)
[dragonfireclient.git] / src / script / lua_api / l_base.h
index 71ebd215c1c15cebba0169c20e48b8b576baa23f..af89afd931e179bf6c5fa614cc1c227f6297acc0 100644 (file)
@@ -21,12 +21,18 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #define L_BASE_H_
 
 #include "common/c_types.h"
+#include "common/c_internal.h"
+#include "gamedef.h"
 
 extern "C" {
 #include <lua.h>
 #include <lauxlib.h>
 }
 
+#ifndef SERVER
+#include "client.h"
+#endif
+
 class ScriptApiBase;
 class Server;
 class Environment;
@@ -34,11 +40,19 @@ class GUIEngine;
 
 class ModApiBase {
 
-protected:
+public:
        static ScriptApiBase*   getScriptApiBase(lua_State *L);
        static Server*          getServer(lua_State *L);
+       #ifndef SERVER
+       static Client*          getClient(lua_State *L);
+       #endif // !SERVER
+
+       static IGameDef*        getGameDef(lua_State *L);
+
        static Environment*     getEnv(lua_State *L);
        static GUIEngine*       getGuiEngine(lua_State *L);
+       // When we are not loading the mod, this function returns "."
+       static std::string      getCurrentModPath(lua_State *L);
 
        // Get an arbitrary subclass of ScriptApiBase
        // by using dynamic_cast<> on getScriptApiBase()
@@ -47,16 +61,15 @@ class ModApiBase {
                ScriptApiBase *scriptIface = getScriptApiBase(L);
                T *scriptIfaceDowncast = dynamic_cast<T*>(scriptIface);
                if (!scriptIfaceDowncast) {
-                       throw LuaError(L, "Requested unavailable ScriptApi - core engine bug!");
+                       throw LuaError("Requested unavailable ScriptApi - core engine bug!");
                }
                return scriptIfaceDowncast;
        }
 
        static bool registerFunction(lua_State *L,
                        const char* name,
-                       lua_CFunction fct,
-                       int top
-                       );
+                       lua_CFunction func,
+                       int top);
 };
 
 #endif /* L_BASE_H_ */