44 lines
1.9 KiB
Lua
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}
|
|
}) |