44 lines
1.9 KiB
Lua

minetest.register_node("fl_plantlife:cactus", {
description = "cactus",
paramtype = "light",
drawtype = "nodebox",
use_texture_alpha = "clip",
node_box = {
type = "fixed",
fixed = {-7/16, -0.5, -7/16, 7/16, 0.5, 7/16}
},
tiles = {
"[combine:16x16:0,-16=farlands_cactus.png",
"[combine:16x16:0,-16=farlands_cactus.png",
"[combine:16x16:0,0=farlands_cactus.png",
},
on_construct = function(pos)
minetest.get_node_timer(pos):start(math.random(600, 1200))
end,
on_timer = function(pos, elapsed)
--minetest.chat_send_all("triggered")
local above = minetest.get_node_or_nil({x=pos.x, y=pos.y-1, z=pos.z})
if not above then return end
if not minetest.registered_nodes[above.name] or minetest.registered_nodes[above.name].drawtype == "airlike" then
return
end
local under = minetest.get_node_or_nil({x=pos.x, y=pos.y-1, z=pos.z})
--minetest.chat_send_all(under.name)
if not under then return end
if under.name == "fl_stone:sand" then
minetest.set_node({x=pos.x, y=pos.y+1, z=pos.z}, {name = "fl_plantlife:cactus"})
minetest.get_node_timer(pos):start(math.random(600, 1200))
return
elseif under.name == "fl_plantlife:cactus" then
--minetest.chat_send_all("triggered")
local base = minetest.get_node_or_nil({x=pos.x, y=pos.y-2, z=pos.z})
if not base then return end
if base.name ~= "fl_stone:sand" then return end
minetest.set_node({x=pos.x, y=pos.y+1, z=pos.z}, {name = "fl_plantlife:cactus"})
minetest.get_node_timer(pos):start(math.random(600, 1200))
end
minetest.get_node_timer(pos):start(math.random(600, 1200))
end,
_dungeon_loot = {chance = 0.7, count = {1, 3}, types = {"desert"}},
groups = {oddly_breakable_by_hand = 3}
})