forked from mtcontrib/bonemeal
added global on_use function
This commit is contained in:
parent
cfd0561460
commit
3b185e0099
@ -16,3 +16,4 @@ https://forum.minetest.net/viewtopic.php?f=9&t=16446
|
|||||||
Changelog:
|
Changelog:
|
||||||
|
|
||||||
- 0.1 - Initial release
|
- 0.1 - Initial release
|
||||||
|
- 0.2 - Added global on_use function for bonemeal growth
|
||||||
|
9
api.txt
9
api.txt
@ -53,6 +53,15 @@ bonemeal:add_deco({"default:dirt_with_dry_grass", {"default:dry_grass_1", "air"}
|
|||||||
{"flowers:rose", "flowers:viola"} })
|
{"flowers:rose", "flowers:viola"} })
|
||||||
|
|
||||||
|
|
||||||
|
Global ON_USE Function
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
bonemeal:on_use(pos)
|
||||||
|
|
||||||
|
This function can be called from other mods to grow plants using alternative
|
||||||
|
bonemeal items and have the same effect.
|
||||||
|
|
||||||
|
|
||||||
Final Words
|
Final Words
|
||||||
===========
|
===========
|
||||||
|
|
||||||
|
54
init.lua
54
init.lua
@ -257,6 +257,35 @@ local function check_soil(pos, nodename)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
-- global on_use function for bonemeal
|
||||||
|
function bonemeal:on_use(pos)
|
||||||
|
|
||||||
|
-- get node pointed at
|
||||||
|
local node = minetest.get_node(pos)
|
||||||
|
|
||||||
|
-- return if nothing there
|
||||||
|
if node.name == "ignore" then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
-- check for tree growth if pointing at sapling
|
||||||
|
if minetest.get_item_group(node.name, "sapling") > 0 then
|
||||||
|
check_sapling(pos, node.name)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
-- check for crop growth
|
||||||
|
check_crops(pos, node.name)
|
||||||
|
|
||||||
|
-- grow grass and flowers
|
||||||
|
if minetest.get_item_group(node.name, "soil") > 0
|
||||||
|
or minetest.get_item_group(node.name, "sand") > 0 then
|
||||||
|
check_soil(pos, node.name)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
----- items
|
----- items
|
||||||
|
|
||||||
-- bonemeal item
|
-- bonemeal item
|
||||||
@ -281,29 +310,8 @@ minetest.register_craftitem("bonemeal:bonemeal", {
|
|||||||
itemstack:take_item()
|
itemstack:take_item()
|
||||||
end
|
end
|
||||||
|
|
||||||
-- get position and node
|
-- get position and call global on_use function
|
||||||
local pos = pointed_thing.under
|
bonemeal:on_use(pointed_thing.under)
|
||||||
local node = minetest.get_node(pos)
|
|
||||||
|
|
||||||
-- return if nothing there
|
|
||||||
if node.name == "ignore" then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
-- check for tree growth if pointing at sapling
|
|
||||||
if minetest.get_item_group(node.name, "sapling") > 0 then
|
|
||||||
check_sapling(pos, node.name)
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
-- check for crop growth
|
|
||||||
check_crops(pos, node.name)
|
|
||||||
|
|
||||||
-- grow grass and flowers
|
|
||||||
if minetest.get_item_group(node.name, "soil") > 0
|
|
||||||
or minetest.get_item_group(node.name, "sand") > 0 then
|
|
||||||
check_soil(pos, node.name)
|
|
||||||
end
|
|
||||||
|
|
||||||
return itemstack
|
return itemstack
|
||||||
end,
|
end,
|
||||||
|
Loading…
Reference in New Issue
Block a user