From ac20676b3a0873f7e16b148c36100a06b8e2984b Mon Sep 17 00:00:00 2001 From: ChancellorIkseew <156004311+ChancellorIkseew@users.noreply.github.com> Date: Tue, 6 May 2025 03:30:50 +1000 Subject: [PATCH] add weather.list command (#526) --- res/scripts/stdcmd.lua | 13 +++++++++++++ src/logic/scripting/lua/libs/libfile.cpp | 7 ++++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/res/scripts/stdcmd.lua b/res/scripts/stdcmd.lua index c06f059a..0308910f 100644 --- a/res/scripts/stdcmd.lua +++ b/res/scripts/stdcmd.lua @@ -291,6 +291,19 @@ console.add_command( end ) +console.add_command( + "weather.list", + "Show available weather presets list", + function(args, kwargs) + local filenames = file.list_all_res("presets/weather/") + local presets = " " + for index, filename in pairs(filenames) do + presets = presets .. "\n" .. file.stem(filename) + end + return "available presets:" .. presets + end +) + console.cheats = { "blocks.fill", "tp", diff --git a/src/logic/scripting/lua/libs/libfile.cpp b/src/logic/scripting/lua/libs/libfile.cpp index fa2b2954..717ff52b 100644 --- a/src/logic/scripting/lua/libs/libfile.cpp +++ b/src/logic/scripting/lua/libs/libfile.cpp @@ -1,4 +1,3 @@ -#include #include #include @@ -156,7 +155,8 @@ static int l_write_bytes(lua::State* L) { return lua::pushboolean(L, res); } -static int l_list_all_res(lua::State* L, const std::string& path) { +static int l_list_all_res(lua::State* L) { + std::string path = lua::require_string(L, 1); auto files = engine->getResPaths().listdirRaw(path); lua::createtable(L, files.size(), 0); for (size_t i = 0; i < files.size(); i++) { @@ -169,7 +169,7 @@ static int l_list_all_res(lua::State* L, const std::string& path) { static int l_list(lua::State* L) { std::string dirname = lua::require_string(L, 1); if (dirname.find(':') == std::string::npos) { - return l_list_all_res(L, dirname); + return l_list_all_res(L); } io::path path = dirname; if (!io::is_directory(path)) { @@ -265,6 +265,7 @@ const luaL_Reg filelib[] = { {"isfile", lua::wrap}, {"length", lua::wrap}, {"list", lua::wrap}, + {"list_all_res", lua::wrap}, {"mkdir", lua::wrap}, {"mkdirs", lua::wrap}, {"read_bytes", lua::wrap},