From 4549fad86e4496ee0ab82ebc4bf2d7ab5615e167 Mon Sep 17 00:00:00 2001 From: minefaco <63024226+minefaco@users.noreply.github.com> Date: Sun, 20 Dec 2020 13:23:54 -0500 Subject: [PATCH] Optional chisel or axes. --- functions.lua | 79 ++++++++++++++++++++++++++++----------------------- 1 file changed, 43 insertions(+), 36 deletions(-) diff --git a/functions.lua b/functions.lua index a111441..3b64a95 100644 --- a/functions.lua +++ b/functions.lua @@ -15,53 +15,60 @@ function stripped_tree.register_trunk(mod_name,trunk_names) paramtype2 = "facedir", on_place = minetest.rotate_node, }) + + minetest.register_craft({ + output = mod_name..":"..name, + recipe = {{"","default:tree_bark",""}, + {"default:tree_bark",mod_name..":stripped_" .. name,"default:tree_bark"}, + {"","default:tree_bark",""}} + }) end end --function to override axes -function stripped_tree.register_axes(mod_n,axe_types) - for _, axe_name in ipairs(axe_types) do - minetest.override_item(mod_n..":" .. axe_name, { - on_place = function(itemstack, user, pointed_thing) - if pointed_thing.type ~= "node" then - return - end +if ENABLE_CHISEL ~= true then + function stripped_tree.register_axes(mod_n,axe_types) + for _, axe_name in ipairs(axe_types) do + minetest.override_item(mod_n..":" .. axe_name, { + on_place = function(itemstack, user, pointed_thing) + if pointed_thing.type ~= "node" then + return + end - local pos = pointed_thing.under - local pname = user:get_player_name() + local pos = pointed_thing.under + local pname = user:get_player_name() - if minetest.is_protected(pos, pname) then - minetest.record_protection_violation(pos, pname) - return - end + if minetest.is_protected(pos, pname) then + minetest.record_protection_violation(pos, pname) + return + end - local node = minetest.get_node(pos).name - local mod_name, node_name = unpack(node:split(":")) - local has_stripped = minetest.registered_nodes[mod_name..":".."stripped_"..node_name] + local node = minetest.get_node(pos).name + local mod_name, node_name = unpack(node:split(":")) + local has_stripped = minetest.registered_nodes[mod_name..":".."stripped_"..node_name] - if has_stripped then - local old_node = minetest.get_node(pos) - local stripped =mod_name..":".."stripped_"..node_name - minetest.swap_node(pos,{name=stripped,param2=old_node.param2}) - --itemstack:add_wear(65535 / 299) this is not useful at moment. + if has_stripped then + local old_node = minetest.get_node(pos) + local stripped =mod_name..":".."stripped_"..node_name + minetest.swap_node(pos,{name=stripped,param2=old_node.param2}) + --itemstack:add_wear(65535 / 299) this is not useful at moment. - if not creative_mode then - local inv = user:get_inventory() - --check for room in inv, if not, drop item - if inv:room_for_item("main", "default:tree_bark") then - inv:add_item("main", {name="default:tree_bark"}) - else - minetest.add_item(pos, "default:tree_bark") - end + if not creative_mode then + local inv = user:get_inventory() + --check for room in inv, if not, drop item + if inv:room_for_item("main", "default:tree_bark") then + inv:add_item("main", {name="default:tree_bark"}) + else + minetest.add_item(pos, "default:tree_bark") + end + end + + return itemstack end - return itemstack - end - - end, - }) + end, + }) + end end end ---register alias to support old tool -minetest.register_alias("chisel_tree:chisel", "default:axe_steel")