Added saprotrophic fungi

pull/3/head
NPXcoot 2016-12-29 00:17:42 +01:00
parent bed8ccdf62
commit d6f8f9f554
45 changed files with 468 additions and 40 deletions

498
init.lua
View File

@ -17,7 +17,22 @@ minetest.register_node("nsspf:boletus_edulis", {
},
})
minetest.register_node("nsspf:canthrellus_cibarius", {
minetest.register_node("nsspf:boletus_edulis_fungusdirt", {
description = "Boletus edulis Dirt",
tiles = {"default_dirt.png"},
drop = {
max_items = 1,
items = {
{
items = {'node "nsspf:boletus_edulis_spores" 1'},
rarity = 20
},
}
},
groups = {crumbly = 3},
})
minetest.register_node("nsspf:cantharellus_cibarius", {
description = "Cantharellus cibarius",
drawtype = "mesh",
mesh = "cantharellus_cibarius.b3d",
@ -36,6 +51,21 @@ minetest.register_node("nsspf:canthrellus_cibarius", {
},
})
minetest.register_node("nsspf:cantharellus_cibarius_fungusdirt", {
description = "Cantharellus cibarius Dirt",
tiles = {"default_dirt.png"},
drop = {
max_items = 1,
items = {
{
items = {'node "nsspf:cantharellus_cibarius_spores" 1'},
rarity = 15
},
}
},
groups = {crumbly = 3},
})
minetest.register_node("nsspf:suillus_grevillei", {
description = "Suillus grevillei",
drawtype = "mesh",
@ -55,6 +85,21 @@ minetest.register_node("nsspf:suillus_grevillei", {
},
})
minetest.register_node("nsspf:suillus_grevillei_fungusdirt", {
description = "Suillus grevillei Dirt",
tiles = {"default_dirt.png"},
drop = {
max_items = 1,
items = {
{
items = {'node "nsspf:suillus_grevillei_spores" 1'},
rarity = 8
},
}
},
groups = {crumbly = 3},
})
minetest.register_node("nsspf:morchella_conica", {
description = "Morchella conica",
drawtype = "mesh",
@ -74,6 +119,21 @@ minetest.register_node("nsspf:morchella_conica", {
},
})
minetest.register_node("nsspf:morchella_conica_fungusdirt", {
description = "Morchella conica Dirt",
tiles = {"default_dirt.png"},
drop = {
max_items = 1,
items = {
{
items = {'node "nsspf:morchella_conica_spores" 1'},
rarity = 14
},
}
},
groups = {crumbly = 3},
})
minetest.register_node("nsspf:russula_xerampelina", {
description = "Russula xerampelina",
drawtype = "mesh",
@ -93,6 +153,21 @@ minetest.register_node("nsspf:russula_xerampelina", {
},
})
minetest.register_node("nsspf:russula_xerampelina_fungusdirt", {
description = "Russula xerampelina Dirt",
tiles = {"default_dirt.png"},
drop = {
max_items = 1,
items = {
{
items = {'node "nsspf:russula_xerampelina_spores" 1'},
rarity = 12
},
}
},
groups = {crumbly = 3},
})
minetest.register_node("nsspf:boletus_pinophilus", {
description = "Boletus pinophilus",
drawtype = "mesh",
@ -112,6 +187,21 @@ minetest.register_node("nsspf:boletus_pinophilus", {
},
})
minetest.register_node("nsspf:boletus_pinophilus_fungusdirt", {
description = "Boletus pinophilus Dirt",
tiles = {"default_dirt.png"},
drop = {
max_items = 1,
items = {
{
items = {'node "nsspf:boletus_pinophilus_spores" 1'},
rarity = 20
},
}
},
groups = {crumbly = 3},
})
minetest.register_node("nsspf:boletus_satanas", {
description = "Boletus satanas",
drawtype = "mesh",
@ -131,6 +221,21 @@ minetest.register_node("nsspf:boletus_satanas", {
},
})
minetest.register_node("nsspf:boletus_satanas_fungusdirt", {
description = "Boletus satanas Dirt",
tiles = {"default_dirt.png"},
drop = {
max_items = 1,
items = {
{
items = {'node "nsspf:boletus_satanas_spores" 1'},
rarity = 20
},
}
},
groups = {crumbly = 3},
})
minetest.register_node("nsspf:amanita_phalloides", {
description = "Amanita phalloides",
drawtype = "mesh",
@ -150,6 +255,21 @@ minetest.register_node("nsspf:amanita_phalloides", {
},
})
minetest.register_node("nsspf:amanita_muscaria_fungusdirt", {
description = "Amanita muscaria Dirt",
tiles = {"default_dirt.png"},
drop = {
max_items = 1,
items = {
{
items = {'node "nsspf:amanita_muscaria_spores" 1'},
rarity = 16
},
}
},
groups = {crumbly = 3},
})
minetest.register_node("nsspf:amanita_muscaria", {
description = "Amanita muscaria",
drawtype = "mesh",
@ -169,23 +289,19 @@ minetest.register_node("nsspf:amanita_muscaria", {
},
})
minetest.register_node("nsspf:macrolepiota_procera", {
description = "macrolepiota_procera",
drawtype = "mesh",
mesh = "macrolepiota_procera.b3d",
paramtype = 'light',
paramtype2 = 'facedir',
tiles = {"macrolepiota_procera.png"},
groups = {snappy=3},
-- drop = 'default:dirt',
selection_box = {
type = 'fixed',
fixed = {-0.05, -0.49, -0.05, 0.05, 0.2, 0.05}, -- Right, Bottom, Back, Left, Top, Front
},
collision_box = {
type = 'fixed',
fixed = {-0.05, -0.49, -0.05, 0.05, 0.2, 0.05}, -- Right, Bottom, Back, Left, Top, Front
},
minetest.register_node("nsspf:amanita_phalloides_fungusdirt", {
description = "Amanita phalloides Dirt",
tiles = {"default_dirt.png"},
drop = {
max_items = 1,
items = {
{
items = {'node "nsspf:amanita_phalloides_spores" 1'},
rarity = 18
},
}
},
groups = {crumbly = 3},
})
function nsspf_register_mycorrhizalmycelium (name, descr, tree)
@ -196,11 +312,16 @@ function nsspf_register_mycorrhizalmycelium (name, descr, tree)
groups = {crumbly = 2},
})
minetest.register_craftitem("nsspf:"..name.."_spores", {
description = descr.." Spores",
image = "spores.png",
})
minetest.register_abm({
nodenames = {"default:dirt"},
neighbors = {tree},
interval = 30.0,
chance = 20,
interval = 300.0,
chance = 60,
action = function(pos, node)
local flag = 0
for dx = -2,2 do
@ -226,15 +347,15 @@ function nsspf_register_mycorrhizalmycelium (name, descr, tree)
interval = 1,
chance = 1,
action = function(pos, node)
minetest.set_node(pos, {name="default:dirt"})
minetest.set_node(pos, {name="nsspf:"..name.."_fungusdirt"})
end
})
minetest.register_abm({
nodenames = {"default:dirt"},
neighbors = {"nsspf:"..name.."_mycelium"},
interval = 30.0,
chance = 20,
interval = 120.0,
chance = 40,
action = function(pos, node)
minetest.set_node({x = pos.x, y = pos.y, z = pos.z}, {name = "nsspf:"..name.."_mycelium"})
end
@ -243,8 +364,8 @@ function nsspf_register_mycorrhizalmycelium (name, descr, tree)
minetest.register_abm({
nodenames = {"nsspf:"..name.."_mycelium"},
neighbors = {"default:dirt_with_grass"},
interval = 30.0,
chance = 20,
interval = 120.0,
chance = 40,
action = function(pos, node)
local pos1 = {x=pos.x, y=pos.y+2, z=pos.z}
local pos2 = {x=pos.x, y=pos.y+1, z=pos.z}
@ -267,8 +388,6 @@ nsspf_register_mycorrhizalmycelium ('suillus_grevillei','Suillus grevillei Mycel
nsspf_register_mycorrhizalmycelium ('russula_xerampelina','Russula xerampelina Mycelium', "default:pine_tree")
nsspf_register_mycorrhizalmycelium ('cantharellus_cibarius','Cantherellus cibarius Mycelium', "default:pine_tree")
nsspf_register_mycorrhizalmycelium ('morchella_conica','Morchella conica Mycelium', "default:aspen_tree")
--nsspf_register_mycelium ('macrolepiota_procera_mycelium','')
--nsspf_register_mycelium ('','')
--tuber
@ -283,8 +402,8 @@ function nsspf_register_tuber (name, descr, tree)
minetest.register_abm({
nodenames = {"default:dirt"},
neighbors = {tree},
interval = 20.0,
chance = 10,
interval = 300.0,
chance = 120,
action = function(pos, node)
local flag = 0
for dx = -2,2 do
@ -314,7 +433,7 @@ function nsspf_register_tuber (name, descr, tree)
})
minetest.register_node("nsspf:"..name.."_fruit", {
description = descr.." Fruit",
description = descr.." Truffle",
tiles = {"default_dirt.png"},
drop = "nsspf:"..name,
groups = {crumbly = 3},
@ -323,8 +442,8 @@ function nsspf_register_tuber (name, descr, tree)
minetest.register_abm({
nodenames = {"default:dirt"},
neighbors = {"nsspf:"..name.."_tuber_mycelium"},
interval = 20.0,
chance = 10,
interval = 120.0,
chance = 100,
action = function(pos, node)
minetest.set_node({x = pos.x, y = pos.y, z = pos.z}, {name = "nsspf:"..name.."_tuber_mycelium"})
end
@ -343,8 +462,8 @@ function nsspf_register_tuber (name, descr, tree)
minetest.register_abm({
nodenames = {"default:dirt"},
neighbors = {"nsspf:"..name.."_tuber_mycelium"},
interval = 30.0,
chance = 20,
interval = 300.0,
chance = 120,
action = function(pos, node)
minetest.set_node({x = pos.x, y = pos.y, z = pos.z}, {name = "nsspf:"..name.."_fruit"})
end
@ -419,6 +538,7 @@ minetest.register_node("nsspf:terfezia_arenaria_fungusdirt", {
})
--Saprotrophic fungi that live on trees
minetest.register_node("nsspf:fistulina_hepatica", {
description = "Fistulina hepatica",
drawtype = "mesh",
@ -457,6 +577,44 @@ minetest.register_node("nsspf:armillaria_mellea", {
},
})
minetest.register_node("nsspf:mycena_chlorophos", {
description = "Mycena chlorophos",
drawtype = "mesh",
mesh = "mycena_chlorophos.b3d",
paramtype = 'light',
paramtype2 = 'facedir',
tiles = {"mycena_chlorophos.png"},
groups = {snappy=3},
-- drop = 'default:dirt',
selection_box = {
type = 'fixed',
fixed = {-0.2, -0.4, 0.2, 0.2, 0.4, 0.5}, -- Right, Bottom, Back, Left, Top, Front
},
collision_box = {
type = 'fixed',
fixed = {-0.2, -0.4, 0.2, 0.2, 0.4, 0.5}, -- Right, Bottom, Back, Left, Top, Front
},
})
minetest.register_node("nsspf:mycena_chlorophos_light", {
description = "Nocturn Mycena chlorophos",
drawtype = "mesh",
mesh = "mycena_chlorophos.b3d",
paramtype = 'light',
paramtype2 = 'facedir',
tiles = {"mycena_chlorophos_light.png"},
groups = {snappy=3},
-- drop = 'default:dirt',
selection_box = {
type = 'fixed',
fixed = {-0.2, -0.4, 0.2, 0.2, 0.4, 0.5}, -- Right, Bottom, Back, Left, Top, Front
},
collision_box = {
type = 'fixed',
fixed = {-0.2, -0.4, 0.2, 0.2, 0.4, 0.5}, -- Right, Bottom, Back, Left, Top, Front
},
})
minetest.register_node("nsspf:panellus_pusillus", {
description = "Panellus pusillus",
drawtype = "mesh",
@ -503,8 +661,8 @@ function nssbf_register_saprotrophicontrees (name, descr, tree)
minetest.register_abm({
nodenames = {tree},
neighbors = {"air"},
interval = 10.0,
chance = 20,
interval = 400.0,
chance = 60,
action = function(pos, node)
local pos1 = {x=pos.x, y=pos.y, z=pos.z-1}
local n = minetest.env:get_node(pos1).name
@ -518,13 +676,33 @@ end
nssbf_register_saprotrophicontrees ('armillaria_mellea', 'Armillaria mellea', 'default:tree')
nssbf_register_saprotrophicontrees ('panellus_pusillus', 'Panellus pusillus', 'default:tree')
nssbf_register_saprotrophicontrees ('fistulina_hepatica', 'Fistulina hepatica', 'default:tree')
nssbf_register_saprotrophicontrees ('fistulina_hepatica', 'Fistulina hepatica', 'default:jungle_tree')
nssbf_register_saprotrophicontrees ('mycena_chlorophos', 'Mycena clorophos', 'default:jungle_tree')
local OPEN_TIME_START = 0.2 -- Day time at which moon flowers open up
local OPEN_TIME_END = 0.8 -- Day time at which moon flowers close up
local OPEN_CHECK = 10 -- Interval at which to check if lighting changed
set_fl = function (pos)
set_fluo = function (pos)
if (minetest.env:get_node_light(pos, 0.5) == 15)
and ((minetest.env:get_timeofday() < OPEN_TIME_START) or (minetest.env:get_timeofday() > OPEN_TIME_END)) then
minetest.env:add_node(pos, { name = "nsspf:mycena_chlorophos" })
else
minetest.env:add_node(pos, { name = "nsspf:mycena_chlorophos_light" })
end
end
minetest.register_abm({
nodenames = { "nsspf:mycena_chlorophos", "nsspf:mycena_chlorophos_light" },
interval = OPEN_CHECK,
chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider)
set_fluo(pos)
end
})
set_fluor = function (pos)
if (minetest.env:get_node_light(pos, 0.5) == 15)
and ((minetest.env:get_timeofday() < OPEN_TIME_START) or (minetest.env:get_timeofday() > OPEN_TIME_END)) then
minetest.env:add_node(pos, { name = "nsspf:panellus_pusillus" })
@ -539,6 +717,248 @@ minetest.register_abm({
chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider)
set_fl(pos)
set_fluor(pos)
end
})
--Saprotrophic fungi that grow on the ground
minetest.register_node("nsspf:macrolepiota_procera", {
description = "Macrolepiota procera",
drawtype = "mesh",
mesh = "macrolepiota_procera.b3d",
paramtype = 'light',
paramtype2 = 'facedir',
tiles = {"macrolepiota_procera.png"},
groups = {snappy=3},
-- drop = 'default:dirt',
selection_box = {
type = 'fixed',
fixed = {-0.05, -0.49, -0.05, 0.05, 0.2, 0.05}, -- Right, Bottom, Back, Left, Top, Front
},
collision_box = {
type = 'fixed',
fixed = {-0.05, -0.49, -0.05, 0.05, 0.2, 0.05}, -- Right, Bottom, Back, Left, Top, Front
},
})
minetest.register_node("nsspf:macrolepiota_procera_fungusdirt", {
description = "Macrolepiota procera Dirt",
tiles = {"default_dirt.png"},
drop = {
max_items = 1,
items = {
{
items = {'node "nsspf:macrolepiota_procera_spores" 1'},
rarity = 21
},
}
},
groups = {crumbly = 3},
})
minetest.register_node("nsspf:psilocybe_cubensis", {
description = "Psilocybe cubensis",
drawtype = "mesh",
mesh = "psilocybe_cubensis.b3d",
paramtype = 'light',
paramtype2 = 'facedir',
tiles = {"psilocybe_cubensis.png"},
groups = {snappy=3},
-- drop = 'default:dirt',
selection_box = {
type = 'fixed',
fixed = {-0.1, -0.49, -0.1, 0.1, -0.1, 0.1}, -- Right, Bottom, Back, Left, Top, Front
},
collision_box = {
type = 'fixed',
fixed = {-0.1, -0.49, -0.1, 0.1, -0.1, 0.1}, -- Right, Bottom, Back, Left, Top, Front
},
})
minetest.register_node("nsspf:psilocybe_cubensis_fungusdirt", {
description = "Psilocybe cubensis Dirt",
tiles = {"default_dirt.png"},
drop = {
max_items = 1,
items = {
{
items = {'node "nsspf:psilocybe_cubensis_spores" 1'},
rarity = 9
},
}
},
groups = {crumbly = 3},
})
minetest.register_node("nsspf:lycoperdon_pyriforme", {
description = "Lycoperdon pyriforme",
drawtype = "mesh",
mesh = "lycoperdon_pyriforme.b3d",
paramtype = 'light',
paramtype2 = 'facedir',
tiles = {"lycoperdon_pyriforme.png"},
groups = {snappy=3},
-- drop = 'default:dirt',
selection_box = {
type = 'fixed',
fixed = {-0.3, -0.49, -0.3, 0.3, -0.3, 0.3}, -- Right, Bottom, Back, Left, Top, Front
},
collision_box = {
type = 'fixed',
fixed = {-0.3, -0.49, -0.3, 0.3, -0.3, 0.3}, -- Right, Bottom, Back, Left, Top, Front
},
})
minetest.register_node("nsspf:lycoperdon_pyriforme_fungusdirt", {
description = "Lycoperdon pyriforme Dirt",
tiles = {"default_dirt.png"},
drop = {
max_items = 1,
items = {
{
items = {'node "nsspf:lycoperdon_pyriforme_spores" 1'},
rarity = 5
},
}
},
groups = {crumbly = 3},
})
minetest.register_node("nsspf:gyromitra_esculenta", {
description = "Gyromitra esculenta",
drawtype = "mesh",
mesh = "gyromitra_esculenta.b3d",
paramtype = 'light',
paramtype2 = 'facedir',
tiles = {"gyromitra_esculenta.png"},
groups = {snappy=3},
-- drop = 'default:dirt',
selection_box = {
type = 'fixed',
fixed = {-0.05, -0.49, -0.05, 0.05, -0.2, 0.05}, -- Right, Bottom, Back, Left, Top, Front
},
collision_box = {
type = 'fixed',
fixed = {-0.05, -0.49, -0.05, 0.05, -0.2, 0.05}, -- Right, Bottom, Back, Left, Top, Front
},
})
minetest.register_node("nsspf:gyromitra_esculenta_fungusdirt", {
description = "Gyromitra esculenta Dirt",
tiles = {"default_dirt.png"},
drop = {
max_items = 1,
items = {
{
items = {'node "nsspf:gyromitra_esculenta_spores" 1'},
rarity = 18
},
}
},
groups = {crumbly = 3},
})
minetest.register_node("nsspf:coprinus_atramentarius", {
description = "Coprinus atramentarius",
drawtype = "mesh",
mesh = "coprinus_atramentarius.b3d",
paramtype = 'light',
paramtype2 = 'facedir',
tiles = {"coprinus_atramentarius.png"},
groups = {snappy=3},
-- drop = 'default:dirt',
selection_box = {
type = 'fixed',
fixed = {-0.05, -0.49, -0.05, 0.05, 0, 0.05}, -- Right, Bottom, Back, Left, Top, Front
},
collision_box = {
type = 'fixed',
fixed = {-0.05, -0.49, -0.05, 0.05, 0, 0.05}, -- Right, Bottom, Back, Left, Top, Front
},
})
minetest.register_node("nsspf:coprinus_atramentarius_fungusdirt", {
description = "Coprinus atramentarius Dirt",
tiles = {"default_dirt.png"},
drop = {
max_items = 1,
items = {
{
items = {'node "nsspf:coprinus_atramentarius_spores" 1'},
rarity = 20
},
}
},
groups = {crumbly = 3},
})
function nsspf_register_saprotrophicground (name, descr)
minetest.register_node("nsspf:"..name.."_mycelium", {
description = descr,
tiles = {"saprotrophic_mycelium.png"},
groups = {crumbly = 2},
})
minetest.register_craftitem("nsspf:"..name.."_spores", {
description = descr.." Spores",
image = "spores.png",
})
minetest.register_abm({
nodenames = {"nsspf:"..name.."_mycelium"},
neighbors = {"default:dirt_with_grass"},
interval = 120.0,
chance = 20,
action = function(pos, node)
local pos1 = {x=pos.x, y=pos.y+2, z=pos.z}
local pos2 = {x=pos.x, y=pos.y+1, z=pos.z}
local n = minetest.get_node(pos1).name
local nn = minetest.get_node(pos2).name
if n== "air" and nn== "default:dirt_with_grass" then
minetest.set_node(pos1, {name = "nsspf:"..name})
end
end
})
minetest.register_abm({
nodenames = {"default:dirt"},
neighbors = {"nsspf:"..name.."_mycelium"},
interval = 120.0,
chance = 40,
action = function(pos, node)
minetest.set_node({x = pos.x, y = pos.y, z = pos.z}, {name = "nsspf:"..name.."_mycelium"})
end
})
minetest.register_abm({
nodenames = {"default:dirt"},
neighbors = {"default:dirt"},
interval = 300.0,
chance = 10000,
action = function(pos, node)
--controllo altitudine
minetest.set_node({x = pos.x, y = pos.y, z = pos.z}, {name = "nsspf:"..name.."_mycelium"})
end
})
minetest.register_abm({
nodenames = {"nsspf:"..name.."_mycelium"},
neighbors = {"air"},
interval = 1,
chance = 1,
action = function(pos, node)
minetest.set_node(pos, {name="nsspf:"..name.."_fungusdirt"})
end
})
end
nsspf_register_saprotrophicground ('macrolepiota_procera','Macrolepiota procera')
nsspf_register_saprotrophicground ('coprinus_atramentarius','Coprinus atramentarius')
nsspf_register_saprotrophicground ('lycoperdon_pyriforme','Lycoperdon piriforme')
nsspf_register_saprotrophicground ('psilocybe_cubensis','Psilocybe cubensis')
nsspf_register_saprotrophicground ('gyromitra_esculenta','Gyromitra esculenta')

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 827 B

View File

@ -28,4 +28,12 @@ Terfezia arenaria
Plants:
Crops/plains:
Crops/plains:
Jungle fungi:
Ganoderma lucidum
Marasmius haematocephalus
Lentinus strigosus
Clitocybula azurea
Snowbank fungi (removing normal fungi from pineforest with snow)