Allow to insta-grow sapling with rightclick

master
Wuzzy 2017-08-09 18:06:33 +02:00
parent 6d93dc1b2c
commit 4cab1edee0
1 changed files with 16 additions and 7 deletions

View File

@ -30,11 +30,19 @@ ltool.default_edit_fields = {
local sapling_base_name = "L-system tree sapling" local sapling_base_name = "L-system tree sapling"
local sapling_format_string = "L-system tree sapling (%s)" local sapling_format_string = "L-system tree sapling (%s)"
local place_tree = function(pos)
-- Place tree
local meta = minetest.get_meta(pos)
local treedef = minetest.deserialize(meta:get_string("treedef"))
minetest.remove_node(pos)
minetest.spawn_tree(pos, treedef)
end
--[[ This registers the sapling for planting the trees ]] --[[ This registers the sapling for planting the trees ]]
minetest.register_node("ltool:sapling", { minetest.register_node("ltool:sapling", {
description = sapling_base_name, description = sapling_base_name,
_doc_items_longdesc = "This artificial sapling does not come from nature and contains the genome of a genetically engineered L-system tree. Every sapling of this kind is unique. Who knows what might grow from it when you plant it?", _doc_items_longdesc = "This artificial sapling does not come from nature and contains the genome of a genetically engineered L-system tree. Every sapling of this kind is unique. Who knows what might grow from it when you plant it?",
_doc_items_usagehelp = "Place the sapling on any floor and wait 5 seconds for the tree to appear. If you hold down the sneak key while placing it, you will keep a copy of the sapling in your inventory. To create your own saplings, you need to have the “lplant” privilege and pick a tree from the L-System Tree Utility (accessed with the server command “treeform”).", _doc_items_usagehelp = "Place the sapling on any floor and wait 5 seconds for the tree to appear. If you have the “lplant” privilege, you can grow it instantly by rightclicking it. If you hold down the sneak key while placing it, you will keep a copy of the sapling in your inventory. To create your own saplings, you need to have the “lplant” privilege and pick a tree from the L-System Tree Utility (accessed with the server command “treeform”).",
drawtype = "plantlike", drawtype = "plantlike",
tiles = { "ltool_sapling.png" }, tiles = { "ltool_sapling.png" },
inventory_image = "ltool_sapling.png", inventory_image = "ltool_sapling.png",
@ -72,13 +80,14 @@ minetest.register_node("ltool:sapling", {
return nil return nil
end end
end, end,
on_timer = function(pos, elapsed) -- Insta-grow when sapling got rightclicked
-- Place tree on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
local meta = minetest.get_meta(pos) if minetest.get_player_privs(clicker:get_player_name()).lplant then
local treedef = minetest.deserialize(meta:get_string("treedef")) place_tree(pos)
minetest.remove_node(pos) end
minetest.spawn_tree(pos, treedef)
end, end,
-- Grow after timer elapsed
on_timer = place_tree,
can_dig = function(pos, player) can_dig = function(pos, player)
return minetest.get_player_privs(player:get_player_name()).lplant return minetest.get_player_privs(player:get_player_name()).lplant
end, end,