Update flowers and mushrooms
parent
0c636a627b
commit
d7d4cdb1ca
|
@ -42,7 +42,7 @@ end
|
|||
flowers.datas = {
|
||||
{
|
||||
"rose",
|
||||
"Rose",
|
||||
"Red Rose",
|
||||
{-2/16, -8/16, -2/16, 2/16, 5/16, 2/16},
|
||||
{color_red = 1}
|
||||
},
|
||||
|
@ -196,9 +196,9 @@ minetest.register_abm({
|
|||
})
|
||||
|
||||
|
||||
--
|
||||
-- Waterlily
|
||||
--
|
||||
--[[
|
||||
Waterlily
|
||||
--]]
|
||||
|
||||
minetest.register_node("flowers:waterlily", {
|
||||
description = "Waterlily",
|
||||
|
@ -218,11 +218,11 @@ minetest.register_node("flowers:waterlily", {
|
|||
node_placement_prediction = "",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.5, -31 / 64, -0.5, 0.5, -15 / 32, 0.5}
|
||||
fixed = {-8/16, -31/64, -8/16, 8/16, -15/32, 8/16}
|
||||
},
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-7 / 16, -0.5, -7 / 16, 7 / 16, -15 / 32, 7 / 16}
|
||||
fixed = {-7/16, -8/16, -7/16, 7/16, -15/32, 7/16}
|
||||
},
|
||||
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
|
|
|
@ -2,6 +2,14 @@
|
|||
Mushrooms
|
||||
--]]
|
||||
|
||||
|
||||
-- Namespace for functions
|
||||
|
||||
mushrooms = {}
|
||||
|
||||
|
||||
-- Mushroom registration
|
||||
|
||||
minetest.register_node("mushrooms:mushroom_red", {
|
||||
description = "Red Mushroom",
|
||||
tiles = {"mushrooms_mushroom_red.png"},
|
||||
|
@ -17,7 +25,7 @@ minetest.register_node("mushrooms:mushroom_red", {
|
|||
on_use = minetest.item_eat(-5),
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, -1 / 16, 4 / 16},
|
||||
fixed = {-4/16, -8/16, -4/16, 4/16, -1/16, 4/16},
|
||||
}
|
||||
})
|
||||
|
||||
|
@ -36,45 +44,41 @@ minetest.register_node("mushrooms:mushroom_brown", {
|
|||
on_use = minetest.item_eat(1),
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, -2 / 16, 3 / 16},
|
||||
fixed = {-3/16, -8/16, -3/16, 3/16, -2/16, 3/16},
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
-- Mushroom spread and death
|
||||
|
||||
function mushrooms.mushroom_spread(pos, node)
|
||||
if minetest.get_node_light(pos, nil) == 15 then
|
||||
minetest.remove_node(pos)
|
||||
return
|
||||
end
|
||||
local positions = minetest.find_nodes_in_area_under_air(
|
||||
{x = pos.x - 1, y = pos.y - 2, z = pos.z - 1},
|
||||
{x = pos.x + 1, y = pos.y + 1, z = pos.z + 1},
|
||||
{"group:soil", "group:tree"})
|
||||
if #positions == 0 then
|
||||
return
|
||||
end
|
||||
local pos2 = positions[math.random(#positions)]
|
||||
pos2.y = pos2.y + 1
|
||||
if minetest.get_node_light(pos, 0.5) <= 3 and
|
||||
minetest.get_node_light(pos2, 0.5) <= 3 then
|
||||
minetest.set_node(pos2, {name = node.name})
|
||||
end
|
||||
end
|
||||
|
||||
minetest.register_abm({
|
||||
label = "Mushroom spread",
|
||||
nodenames = {"mushrooms:mushroom_brown", "mushrooms:mushroom_red"},
|
||||
interval = 11,
|
||||
chance = 50,
|
||||
action = function(pos, node)
|
||||
if minetest.get_node_light(pos, nil) == 15 then
|
||||
minetest.remove_node(pos)
|
||||
return
|
||||
end
|
||||
local random = {
|
||||
x = pos.x + math.random(-2, 2),
|
||||
y = pos.y + math.random(-1, 1),
|
||||
z = pos.z + math.random(-2, 2)
|
||||
}
|
||||
local random_node = minetest.get_node_or_nil(random)
|
||||
if not random_node or random_node.name ~= "air" then
|
||||
return
|
||||
end
|
||||
local node_under = minetest.get_node_or_nil({x = random.x,
|
||||
y = random.y - 1, z = random.z})
|
||||
if not node_under then
|
||||
return
|
||||
end
|
||||
|
||||
if (minetest.get_item_group(node_under.name, "soil") ~= 0 or
|
||||
minetest.get_item_group(node_under.name, "tree") ~= 0) and
|
||||
minetest.get_node_light(pos, 0.5) <= 3 and
|
||||
minetest.get_node_light(random, 0.5) <= 3 then
|
||||
minetest.set_node(random, {name = node.name})
|
||||
end
|
||||
end
|
||||
chance = 150,
|
||||
action = function(...)
|
||||
mushrooms.mushroom_spread(...)
|
||||
end,
|
||||
})
|
||||
|
||||
-- Aliases for schematic nodes
|
||||
|
|
Loading…
Reference in New Issue