mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Fix number of tool uses being off by 1..32767 (#11110)
This commit is contained in:
parent
38ba813c55
commit
6910c8d920
18 changed files with 229 additions and 71 deletions
|
@ -174,7 +174,7 @@ int ObjectRef::l_punch(lua_State *L)
|
|||
v3f dir = readParam<v3f>(L, 5, sao->getBasePosition() - puncher->getBasePosition());
|
||||
dir.normalize();
|
||||
|
||||
u16 wear = sao->punch(dir, &toolcap, puncher, time_from_last_punch);
|
||||
u32 wear = sao->punch(dir, &toolcap, puncher, time_from_last_punch);
|
||||
lua_pushnumber(L, wear);
|
||||
|
||||
return 1;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -50,10 +50,10 @@ private:
|
|||
// write_json(data[, styled])
|
||||
static int l_write_json(lua_State *L);
|
||||
|
||||
// get_dig_params(groups, tool_capabilities[, time_from_last_punch])
|
||||
// get_dig_params(groups, tool_capabilities[, wear])
|
||||
static int l_get_dig_params(lua_State *L);
|
||||
|
||||
// get_hit_params(groups, tool_capabilities[, time_from_last_punch])
|
||||
// get_hit_params(groups, tool_capabilities[, time_from_last_punch[, wear]])
|
||||
static int l_get_hit_params(lua_State *L);
|
||||
|
||||
// check_password_entry(name, entry, password)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue