Add Spreader buff for shovels

master
Alexand(er|ra) Yst 2020-12-18 12:59:53 -08:00
parent 02240ed601
commit 8d828ba3bc
5 changed files with 42 additions and 77 deletions

BIN
menu/overlay.2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 954 KiB

View File

@ -67,43 +67,6 @@ minetest.register_craft_predict(repair_tool)
minetest.register_on_craft(repair_tool)
-- Mushroom swords guarantee sapling drops and mushroom shovels
-- guarantee flint drops.
--
-- TO DO: This functionality is going to be removed from mushroom
-- swords and shovels and added as a potential buff for rune swords and
-- shovels.
for node, toolset in next, {
["default:acacia_bush_leaves" ] = {"mushroom_tools:sword"},
["default:acacia_leaves" ] = {"mushroom_tools:sword"},
["default:aspen_leaves" ] = {"mushroom_tools:sword"},
["default:blueberry_bush_leaves"] = {"mushroom_tools:sword"},
["default:bush_leaves" ] = {"mushroom_tools:sword"},
["default:gravel" ] = {"mushroom_tools:shovel"},
["default:junglegrass" ] = {"mushroom_tools:sword"},
["default:jungleleaves" ] = {"mushroom_tools:sword"},
["default:leaves" ] = {"mushroom_tools:sword"},
["default:pine_bush_needles" ] = {"mushroom_tools:sword"},
["default:pine_needles" ] = {"mushroom_tools:sword"},
} do
local old_drop = minetest.registered_nodes[node].drop.items
local new_drop_table = {
max_items = 1,
items = {
{
items = old_drop[1].items,
tools = toolset,
},
},
}
for index, drop in next, old_drop do
new_drop_table.items[index+1] = drop
end
minetest.override_item(node, {
drop = new_drop_table,
})
end
minetest.register_craftitem("mushroom_tools:lump_brown", {
description = "Brown Mushroom Lump",
inventory_image = "mushroom_tools.lump_brown.png",
@ -158,15 +121,6 @@ minetest.register_tool("mushroom_tools:pick", {
groups = {pickaxe = 1},
})
-- TO DO: This functionality is going to be removed from mushroom
-- shovels and added as a potential buff to rune shovels.
local spread_function
for _, ABM in next, minetest.registered_abms do
if ABM.mod_origin == "default" and ABM.label == "Grass spread" then
spread_function = ABM.action
end
end
minetest.register_tool("mushroom_tools:shovel", {
description = "Mushroom Shovel",
inventory_image = "mushroom_tools.shovel.png",
@ -181,15 +135,6 @@ minetest.register_tool("mushroom_tools:shovel", {
},
sound = {breaks = "default_tool_breaks"},
groups = {shovel = 1},
on_place = function(itemstack, user, pointed_thing)
local target = minetest.get_node(pointed_thing.under)
if target.name == "default:dirt" then
spread_function(pointed_thing.under, target)
elseif minetest.registered_nodes[target.name]
and minetest.registered_nodes[target.name].on_rightclick then
return minetest.registered_nodes[target.name].on_rightclick(pointed_thing.under, target, user, itemstack, pointed_thing)
end
end,
})
minetest.register_tool("mushroom_tools:axe", {

View File

@ -28,7 +28,7 @@ return {
pick = "debug",
hoe = "debug",
screwdriver = "debug",
shovel = "pruner",
shovel = "spreader",
sword = "pruner",
},
coal_lump = {
@ -37,7 +37,7 @@ return {
pick = "debug",
hoe = "debug",
screwdriver = "debug",
shovel = "pruner",
shovel = "spreader",
sword = "pruner",
},
iron_lump = {
@ -46,7 +46,7 @@ return {
pick = "debug",
hoe = "debug",
screwdriver = "debug",
shovel = "pruner",
shovel = "spreader",
sword = "pruner",
},
sapling = {
@ -64,7 +64,7 @@ return {
pick = "debug",
hoe = "debug",
screwdriver = "debug",
shovel = "pruner",
shovel = "spreader",
sword = "pruner",
},
copper_lump = {
@ -73,7 +73,7 @@ return {
pick = "debug",
hoe = "debug",
screwdriver = "debug",
shovel = "pruner",
shovel = "spreader",
sword = "pruner",
},
diamond = {
@ -82,7 +82,7 @@ return {
pick = "debug",
hoe = "debug",
screwdriver = "debug",
shovel = "pruner",
shovel = "spreader",
sword = "pruner",
},
gold_lump = {
@ -91,7 +91,7 @@ return {
pick = "debug",
hoe = "debug",
screwdriver = "debug",
shovel = "pruner",
shovel = "spreader",
sword = "pruner",
},
junglesapling = {
@ -109,7 +109,7 @@ return {
pick = "debug",
hoe = "debug",
screwdriver = "debug",
shovel = "pruner",
shovel = "spreader",
sword = "pruner",
},
seed_wheat = {
@ -118,7 +118,7 @@ return {
pick = "debug",
hoe = "debug",
screwdriver = "debug",
shovel = "pruner",
shovel = "spreader",
sword = "pruner",
},
string = {
@ -127,7 +127,7 @@ return {
pick = "debug",
hoe = "debug",
screwdriver = "debug",
shovel = "pruner",
shovel = "spreader",
sword = "pruner",
},
wheat = {
@ -136,7 +136,7 @@ return {
pick = "debug",
hoe = "debug",
screwdriver = "debug",
shovel = "pruner",
shovel = "spreader",
sword = "pruner",
},
cotton = {
@ -145,7 +145,7 @@ return {
pick = "debug",
hoe = "debug",
screwdriver = "debug",
shovel = "pruner",
shovel = "spreader",
sword = "pruner",
},
pine_sapling = {
@ -172,7 +172,7 @@ return {
pick = "debug",
hoe = "debug",
screwdriver = "debug",
shovel = "pruner",
shovel = "spreader",
sword = "pruner",
},
mushroom_red = {
@ -181,7 +181,7 @@ return {
pick = "debug",
hoe = "debug",
screwdriver = "debug",
shovel = "pruner",
shovel = "spreader",
sword = "pruner",
},
mushroom_spores_brown = {
@ -190,7 +190,7 @@ return {
pick = "debug",
hoe = "debug",
screwdriver = "debug",
shovel = "pruner",
shovel = "spreader",
sword = "pruner",
},
mushroom_spores_red = {
@ -199,7 +199,7 @@ return {
pick = "debug",
hoe = "debug",
screwdriver = "debug",
shovel = "pruner",
shovel = "spreader",
sword = "pruner",
},
aspen_sapling = {
@ -226,7 +226,7 @@ return {
pick = "debug",
hoe = "debug",
screwdriver = "debug",
shovel = "pruner",
shovel = "spreader",
sword = "pruner",
},
acacia_bush_sapling = {
@ -253,7 +253,7 @@ return {
pick = "debug",
hoe = "debug",
screwdriver = "debug",
shovel = "pruner",
shovel = "spreader",
sword = "pruner",
},
blueberries = {
@ -262,7 +262,7 @@ return {
pick = "debug",
hoe = "debug",
screwdriver = "debug",
shovel = "pruner",
shovel = "spreader",
sword = "pruner",
},
blueberry_bush_sapling = {
@ -280,7 +280,7 @@ return {
pick = "debug",
hoe = "debug",
screwdriver = "debug",
shovel = "pruner",
shovel = "spreader",
sword = "pruner",
},
pine_bush_sapling = {
@ -298,7 +298,7 @@ return {
pick = "debug",
hoe = "debug",
screwdriver = "debug",
shovel = "pruner",
shovel = "spreader",
sword = "pruner",
},
}

View File

@ -50,6 +50,7 @@ local buff_name = {
debug = S("Debug Buff"),
thirst = S("Thirst"),
pruner = S("Pruner"),
spreader = S("Spreader"),
}
local rune_element_modname = {

View File

@ -128,6 +128,14 @@ minetest.register_tool("runes:pick", {
groups = {pickaxe = 1, disable_repair = 1},
})
-- Used by the Spreader buff.
local spread_function
for _, ABM in next, minetest.registered_abms do
if ABM.mod_origin == "default" and ABM.label == "Grass spread" then
spread_function = ABM.action
end
end
minetest.register_tool("runes:shovel", {
description = S("Runic Shovel"),
inventory_image = "runes.tool_aura_stone_shovel.png",
@ -144,6 +152,17 @@ minetest.register_tool("runes:shovel", {
},
sound = {breaks = "default_tool_breaks"},
groups = {shovel = 1, disable_repair = 1},
on_place = function(itemstack, user, pointed_thing)
local target = minetest.get_node(pointed_thing.under)
if target.name == "default:dirt" and itemstack:get_meta():get_string("spreader") then
spread_function(pointed_thing.under, target)
itemstack:add_wear(1)
return itemstack
elseif minetest.registered_nodes[target.name]
and minetest.registered_nodes[target.name].on_rightclick then
return minetest.registered_nodes[target.name].on_rightclick(pointed_thing.under, target, user, itemstack, pointed_thing)
end
end,
})
minetest.register_tool("runes:axe", {
@ -163,7 +182,7 @@ minetest.register_tool("runes:axe", {
groups = {axe = 1, disable_repair = 1},
})
-- Used by the Debug Buff.
-- Used by the Pruner buff.
local prunable_trunk = {
["default:tree"] = {
leaves = {"default:apple", "default:apple_mark", "default:leaves"},