fix dig_speed monoid
This commit is contained in:
parent
7a4ba34be0
commit
26b8efcde9
28
init.lua
28
init.lua
@ -36,11 +36,29 @@ toolcap_monoids.dig_speed = item_monoids.make_monoid("dig_speed", {
|
||||
end
|
||||
return dig_speeds
|
||||
end,
|
||||
apply = function(dig_speeds, toolstack)
|
||||
local tool_capabilities = table.copy(toolstack:get_tool_capabilities())
|
||||
for group in pairs(tool_capabilities.groupcaps) do
|
||||
if not dig_speeds[group] then
|
||||
tool_capabilities.groupcaps[group] = nil
|
||||
end
|
||||
end
|
||||
for group, times in pairs(dig_speeds) do
|
||||
if not tool_capabilities.groupcaps[group] then
|
||||
tool_capabilities.groupcaps[group] = {}
|
||||
end
|
||||
tool_capabilities.groupcaps[group].times = times
|
||||
end
|
||||
item_monoids.chat_send_all("[DEBUG] @1", dump(dig_speeds))
|
||||
item_monoids.chat_send_all("[DEBUG] @1", dump(tool_capabilities))
|
||||
local meta = toolstack:get_meta()
|
||||
meta:set_tool_capabilities(tool_capabilities)
|
||||
end,
|
||||
fold = function(values, default_dig_speeds)
|
||||
local dig_speeds = table.copy(default_dig_speeds)
|
||||
for _, multiplier in pairs(values) do
|
||||
if multiplier == "disable" then
|
||||
dig_speeds = {}
|
||||
return {}
|
||||
elseif type(multiplier) == "number" then
|
||||
for _, times in pairs(dig_speeds) do
|
||||
for i = 1, #times do
|
||||
@ -64,14 +82,6 @@ toolcap_monoids.dig_speed = item_monoids.make_monoid("dig_speed", {
|
||||
end
|
||||
return dig_speeds
|
||||
end,
|
||||
apply = function(dig_speeds, toolstack)
|
||||
local tool_capabilities = toolstack:get_tool_capabilities()
|
||||
for group, times in pairs(dig_speeds) do
|
||||
tool_capabilities.groupcaps[group] = times
|
||||
end
|
||||
local meta = toolstack:get_meta()
|
||||
meta:set_tool_capabilities(tool_capabilities)
|
||||
end,
|
||||
})
|
||||
|
||||
toolcap_monoids.durability = item_monoids.make_monoid("durability", {
|
||||
|
Loading…
Reference in New Issue
Block a user