summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/client_lua_api.md2
-rw-r--r--src/client.h2
-rw-r--r--src/script/lua_api/l_client.cpp8
-rw-r--r--src/script/lua_api/l_client.h2
4 files changed, 14 insertions, 0 deletions
diff --git a/doc/client_lua_api.md b/doc/client_lua_api.md
index b2aeb3f25..86fcd02a7 100644
--- a/doc/client_lua_api.md
+++ b/doc/client_lua_api.md
@@ -703,6 +703,8 @@ Call these functions only at load time!
* `minetest.get_protocol_version()`
* Returns the protocol version of the server.
* Might not be accurate at start up as the client might not be connected to the server yet, in that case it will return 0.
+* `minetest.take_screenshot()`
+ * Take a screenshot.
### Misc.
* `minetest.parse_json(string[, nullvalue])`: returns something
diff --git a/src/client.h b/src/client.h
index 68953d402..699550eac 100644
--- a/src/client.h
+++ b/src/client.h
@@ -509,6 +509,8 @@ public:
void showGameFog(const bool show = true);
void showGameDebug(const bool show = true);
+ IrrlichtDevice *getDevice() const { return m_device; }
+
private:
// Virtual methods from con::PeerHandler
diff --git a/src/script/lua_api/l_client.cpp b/src/script/lua_api/l_client.cpp
index 09ea5506b..c982a2f11 100644
--- a/src/script/lua_api/l_client.cpp
+++ b/src/script/lua_api/l_client.cpp
@@ -241,6 +241,13 @@ int ModApiClient::l_get_protocol_version(lua_State *L)
return 1;
}
+int ModApiClient::l_take_screenshot(lua_State *L)
+{
+ Client *client = getClient(L);
+ client->makeScreenshot(client->getDevice());
+ return 0;
+}
+
void ModApiClient::Initialize(lua_State *L, int top)
{
API_FCT(get_current_modname);
@@ -259,4 +266,5 @@ void ModApiClient::Initialize(lua_State *L, int top)
API_FCT(sound_play);
API_FCT(sound_stop);
API_FCT(get_protocol_version);
+ API_FCT(take_screenshot);
}
diff --git a/src/script/lua_api/l_client.h b/src/script/lua_api/l_client.h
index 478b8ed6c..6afcd996b 100644
--- a/src/script/lua_api/l_client.h
+++ b/src/script/lua_api/l_client.h
@@ -72,6 +72,8 @@ private:
// get_protocol_version()
static int l_get_protocol_version(lua_State *L);
+ static int l_take_screenshot(lua_State *L);
+
public:
static void Initialize(lua_State *L, int top);
};