From b04035e5869d058cecf1873b28077997d5953d31 Mon Sep 17 00:00:00 2001 From: Tai Kedzierski Date: Sun, 13 Jan 2019 02:29:06 +0000 Subject: [PATCH] routine to clear cobwebs. should be on a scickle --- materials/materials.lua | 22 ++++++++++++++++++++++ tools/spears.lua | 10 ++-------- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/materials/materials.lua b/materials/materials.lua index 06d0bc9..ef0be86 100644 --- a/materials/materials.lua +++ b/materials/materials.lua @@ -78,6 +78,28 @@ minetest.register_node("nssm:web", { liquid_alternative_source = "nssm:web", liquid_viscosity = 20, groups = {flammable=2, snappy=1, liquid=1}, + on_dig = function(pos, node, digger) + local winame = digger:get_wielded_item():get_name() + local wi = minetest.registered_tools[winame] + + if wi and wi.groups and wi.groups.webdigger then + local range = (4-wi.groups.webdigger)/2 + local webnodes = minetest.find_nodes_in_area( + {x=pos.x-range, y=pos.y-range, z=pos.z-range}, + {x=pos.x+range, y=pos.y+range, z=pos.z+range}, + {"nssm:web"} + ) + + for _,nodepos in ipairs(webnodes) do + if not minetest.is_protected(nodepos, digger:get_player_name()) then + minetest.remove_node(nodepos) + minetest.add_item(nodepos, "farming:cotton") + end + end + else + minetest.node_dig(pos, node, digger) + end + end }) minetest.register_node("nssm:thick_web", { diff --git a/tools/spears.lua b/tools/spears.lua index 4a18c3d..5cf6a50 100644 --- a/tools/spears.lua +++ b/tools/spears.lua @@ -42,7 +42,7 @@ local function spears_shot(itemstack, player) if spear == "nssm:spear_of_peace_entity" then speed = base_spear_velocity * statmodifier * 2 - gravity = base_gravity + gravity = base_gravity * statmodifier * 2 else speed = base_spear_velocity * statmodifier gravity = base_gravity * statmodifier @@ -169,6 +169,7 @@ function spears_register_spear(kind, desc, eq, toughness, material, scale) wield_image = "spear_" .. kind .. ".png", inventory_image = "spear_" .. kind .. ".png^[transform4", wield_scale= {x=2*scale, y=1*scale, z=1*scale}, + groups = {webdigger = 1}, on_drop = function(itemstack, user, pointed_thing) spears_shot(itemstack, user) if not creative_mode then @@ -176,13 +177,6 @@ function spears_register_spear(kind, desc, eq, toughness, material, scale) end return itemstack end, - on_place = function(itemstack, user, pointed_thing) - minetest.add_item(pointed_thing.above, itemstack) - if not creative_mode then - itemstack:take_item() - end - return itemstack - end, tool_capabilities = { full_punch_interval = 1.3, max_drop_level=1,