#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;
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()
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_ */