diff options
author | Wuzzy <wuzzy2@mail.ru> | 2021-10-31 22:33:33 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-31 22:33:33 +0000 |
commit | 6910c8d920acedb3f1df1ac03a5cdf14f5fb6081 (patch) | |
tree | ae01925fc35e2301a87ec53897f96b1f56c955fb /src/script/lua_api/l_util.cpp | |
parent | 38ba813c55489595cd78ab2f952be2e954083cfa (diff) | |
download | minetest-6910c8d920acedb3f1df1ac03a5cdf14f5fb6081.tar.gz minetest-6910c8d920acedb3f1df1ac03a5cdf14f5fb6081.tar.bz2 minetest-6910c8d920acedb3f1df1ac03a5cdf14f5fb6081.zip |
Fix number of tool uses being off by 1..32767 (#11110)
Diffstat (limited to 'src/script/lua_api/l_util.cpp')
-rw-r--r-- | src/script/lua_api/l_util.cpp | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/script/lua_api/l_util.cpp b/src/script/lua_api/l_util.cpp index 2405cd90d..53319ccfd 100644 --- a/src/script/lua_api/l_util.cpp +++ b/src/script/lua_api/l_util.cpp @@ -160,28 +160,33 @@ int ModApiUtil::l_write_json(lua_State *L) return 1; } -// get_dig_params(groups, tool_capabilities) +// get_dig_params(groups, tool_capabilities[, wear]) int ModApiUtil::l_get_dig_params(lua_State *L) { NO_MAP_LOCK_REQUIRED; ItemGroupList groups; read_groups(L, 1, groups); ToolCapabilities tp = read_tool_capabilities(L, 2); - push_dig_params(L, getDigParams(groups, &tp)); + if (lua_isnoneornil(L, 3)) { + push_dig_params(L, getDigParams(groups, &tp)); + } else { + u16 wear = readParam<int>(L, 3); + push_dig_params(L, getDigParams(groups, &tp, wear)); + } return 1; } -// get_hit_params(groups, tool_capabilities[, time_from_last_punch]) +// get_hit_params(groups, tool_capabilities[, time_from_last_punch, [, wear]]) int ModApiUtil::l_get_hit_params(lua_State *L) { NO_MAP_LOCK_REQUIRED; std::unordered_map<std::string, int> groups; read_groups(L, 1, groups); ToolCapabilities tp = read_tool_capabilities(L, 2); - if(lua_isnoneornil(L, 3)) - push_hit_params(L, getHitParams(groups, &tp)); - else - push_hit_params(L, getHitParams(groups, &tp, readParam<float>(L, 3))); + float time_from_last_punch = readParam<float>(L, 3, 1000000); + int wear = readParam<int>(L, 4, 0); + push_hit_params(L, getHitParams(groups, &tp, + time_from_last_punch, wear)); return 1; } |