From 5ae4c1b27b6293d346ef253939bbe2c6cf80af3b Mon Sep 17 00:00:00 2001 From: MihailRis Date: Thu, 17 Sep 2026 21:58:38 +0300 Subject: [PATCH] add gui.screenshot --- src/logic/scripting/lua/libs/libgui.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/logic/scripting/lua/libs/libgui.cpp b/src/logic/scripting/lua/libs/libgui.cpp index 81e5fc4f7..28033132f 100644 --- a/src/logic/scripting/lua/libs/libgui.cpp +++ b/src/logic/scripting/lua/libs/libgui.cpp @@ -25,6 +25,7 @@ #include "items/Inventories.hpp" #include "util/stringutil.hpp" #include "world/Level.hpp" +#include "window/Window.hpp" #include "../usertypes/lua_type_canvas.hpp" using namespace gui; @@ -1218,7 +1219,16 @@ static int l_get_active_frame(lua::State* L) { return lua::pushstring(L, frame->getId()); } +static int l_screenshot(lua::State* L) { + if (engine->isHeadless()) { + return 0; + } + auto image = engine->getWindow().takeScreenshot(); + return lua::newuserdata(L, nullptr, std::move(image)); +} + const luaL_Reg guilib[] = { + {"screenshot", lua::wrap}, {"get_viewport", lua::wrap}, {"getattr", lua::wrap}, {"setattr", lua::wrap},