Files

52 lines
1.3 KiB
Lua

local modpath = minetest.get_modpath(minetest.get_current_modname())
local capabilities = dofile(modpath .. "/lib/mod_capabilities.lua")
local utility = dofile(modpath .. "/lib/utility.lua")
dofile(modpath .. "/lib/definitions.lua")
handholds = {}
function handholds.register_pick(name, level)
local def = minetest.registered_tools[name]
if def == nil then
minetest.log("warning",
"[Handholds Redo] Climbing pick `" .. name .. "` is not a registered tool")
return
end
if level == nil then level = 1 end
local groups = def.groups
groups.climbing_pick = level
local placement_handler = def.on_place
minetest.override_item(name, {
on_place = function(...)
utility.place_holds(...)
if placement_handler ~= nil then
return placement_handler(...)
end
end,
groups = groups
})
end
function handholds.mark_climbable(name, level)
local def = minetest.registered_nodes[name]
if def == nil then
minetest.log("warning",
"[Handholds Redo] Climbable node `" .. name .. "` is not a registered node")
return
end
if level == nil then level = 1 end
local groups = def.groups
groups.handholds = level
minetest.override_item(name, {
groups = groups
})
end
for tool, level in pairs(capabilities.tools) do
handholds.register_pick(tool, level)
end
for node, level in pairs(capabilities.nodes) do
handholds.mark_climbable(node, level)
end