diff --git a/README.md b/README.md index 7d864e3..8f25258 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,8 @@ To download you can play this game with the following minetest engines: * 3d_armor and shields [mods/3d_armor](mods/3d_armor) https://codeberg.org/minenux/minetest-mod-3d_armor * player stuffs: * minenux bags as `backpacks` [mods/backpacks](mods/backpacks) +* NPXcoot + * nsspf as `nsspf` [mods/nsspf](mods/nsspf) from https://git.minetest.io/minenux/minetest-mo> * Shara RedCat ezhh * fireflies as `fireflies` [mods/fireflies](mods/fireflies) https://github.com/Ezhh/fireflies/blob/master/license.txt diff --git a/mods/nsspf/License.txt b/mods/nsspf/License.txt new file mode 100644 index 0000000..32900b7 --- /dev/null +++ b/mods/nsspf/License.txt @@ -0,0 +1,2 @@ +License for the code: LGPLv2.1 or later +License for all the models, textures and sound: CC BY-SA 4.0 diff --git a/mods/nsspf/README.md b/mods/nsspf/README.md new file mode 100644 index 0000000..5069965 --- /dev/null +++ b/mods/nsspf/README.md @@ -0,0 +1,177 @@ +Not So Simple Plants and Fungi +============================== + +NSSPF mod that adds wild plants (fungies) + +Information +------------ + +A mod that adds wild plants and fungi in order to give another +source of food without farming, but with possible dangerous if you +dont take care of thems. For now there are only 29 fungi and no plants. + +You just have to walk around in the different biomes and gather the fungi. + +All the fungi are taken from the real world and thay have their scientific names. Many of them are good to eat, but others can be lethal. + +![](screenshot.png) + +## Technical info +----------------- + +There are 5 types of fungi: + +* Ectomycorrhizal fungi: grows in association with the roots of trees, the mycelium grows in the ground and sometimes a mushroom will grow. +* There are also truffles, hard to find (truffles are produced underground) +* Saprobiontic fungi: divided in 4 categories distiguished by where they grow + * Jungle fungi grow on trees trunks in the jungle. + * Grass fungi grow as mycelium underground in grassland and sometimes produce a mushroom on the surface. + * Snowbank fungi act as grass fungi but under the snow. + * Tree fungi as jungle fungi grow on trees trunks of trees and pine trees. + +For more information **check specific node list in the [nodes](#nodes) section** +below. + +It is possible to farm the fungi with the spores. Exposed to air mycelium will +die and the dirt left may contain spores, dropped when digged. + +For saprobiontic is necessary to click with the spores the ground (`dirt_with_grass` or `dirt_with_snow`) +to grow a new mycelium under the node. Ectomycorrhizal fungi spores need to +placed on the bottom of the right trunk of a tree, each fungus need a +specific tree. + +Many mushrooms are hard to digest so it is better to cook them before eating, +in order to appreciate their nutritional value fully. Cooking could also +inactivate the toxin in poisonous fungi (only in some of them obviously!). +In other cases cooking may damage the beneficial propreties of the mushrooms +reducing their nutritional value. + +#### Dependencies + +* default +* nssm (optional) +* tnt (optional) + +#### ABMs + +Fungi are generated by ABM, so their growth will require some time. + +This mod originally was made using many ABMs so may cause lag in low end devices. + +#### Nodes + + +| node | Description | fuel | cooked | +| ------------------------------------ | ------------------------------ | ---- | ------------------ | +| nsspf:amadou | Amadou | yes | | +| nsspf:lasting_amadou | Lasting Amadou | yes | | +| nsspf:long_lasting_amadou | Long Lasting Amadou | yes | | +| nsspf:boletus_edulis | Boletus edulis | yes | yes | +| nsspf:cooked_boletus_edulis | Cooked Boletus edulis | | yes | +| nsspf:boletus_edulis_fungusdirt | Boletus edulis Dirt | | | +| nsspf:cantharellus_cibarius | Cantharellus cibarius | yes | yes | +| nsspf:cooked_cantharellus_cibarius | Cooked Cantharellus cibarius | | | +| nsspf:cantharellus_cibarius_fungusdirt | Cantharellus cibarius Dirt | | | +| nsspf:suillus_grevillei | Suillus grevillei | yes | yes | +| nsspf:cooked_suillus_grevillei | Cooked Suillus grevillei | | | +| nsspf:suillus_grevillei_fungusdirt | Suillus grevillei Dirt | | | +| nsspf:morchella_conica | Morchella conica | yes | yes | +| nsspf:cooked_morchella_conica | Cooked Morchella conica | | | +| nsspf:morchella_conica_fungusdirt | Morchella conica Dirt | | | +| nsspf:russula_xerampelina | Russula xerampelina | yes | yes | +| nsspf:cooked_russula_xerampelina | Cooked Russula xerampelina | | | +| nsspf:russula_xerampelina_fungusdirt | Russula xerampelina Dirt | | | +| nsspf:boletus_pinophilus | Boletus pinophilus | yes | yes | +| nsspf:cooked_boletus_pinophilus | Cooked Boletus pinophilus | | | +| nsspf:boletus_pinophilus_fungusdirt | Boletus pinophilus Dirt | | | +| nsspf:boletus_satanas | Boletus satanas | yes | yes | +| nsspf:cooked_boletus_satanas | Cooked Boletus satanas | | | +| nsspf:boletus_satanas_fungusdirt | Boletus satanas Dirt | | | +| nsspf:amanita_phalloides | Amanita phalloides | | yes | +| nsspf:cooked_amanita_phalloides | Cooked Amanita phalloides | | | +| nsspf:amanita_muscaria_fungusdirt | Amanita muscaria Dirt | | | +| nsspf:amanita_muscaria | Amanita muscaria | yes | yes | +| nsspf:cooked_amanita_muscaria | Cooked Amanita muscaria | | | +| nsspf:amanita_phalloides_fungusdirt | Amanita phalloides Dirt | | | +| nsspf:tuber_melanosporum_fungusdirt | Tuber melanosporum Dirt | | | +| nsspf:tuber_magnatum_pico_fungusdirt | Tuber magnatum pico Dirt | | | +| nsspf:tuber_borchii_fungusdirt | Tuber borchii Dirt | | | +| nsspf:terfezia_arenaria_fungusdirt | Terfezia arenaria Dirt | | | +| nsspf:fistulina_hepatica | Fistulina hepatica | yes | yes | +| nsspf:cooked_fistulina_hepatica | Cooked Fistulina hepatica | | | +| nsspf:armillaria_mellea | Armillaria mellea | yes | yes | +| nsspf:cooked_armillaria_mellea | Cooked Armillaria mellea | | | +| nsspf:fomes_fomentarius | Fomes fomentarius | | | +| nsspf:mycena_chlorophos | Mycena chlorophos | yes | yes | +| nsspf:cooked_mycena_chlorophos | Cooked Mycena chlorophos | | | +| nsspf:mycena_chlorophos_light | Nocturn Mycena chlorophos | | | +| nsspf:panellus_pusillus | Panellus pusillus | yes | yes | +| nsspf:cooked_panellus_pusillus | Cooked Panellus pusillus | | | +| nsspf:panellus_pusillus_light | Nocturn Panellus pusillus | | | +| nsspf:macrolepiota_procera | Macrolepiota procera | | yes | +| nsspf:cooked_macrolepiota_procera | Cooked Macrolepiota procera | | | +| nsspf:macrolepiota_procera_fungusdirt | Macrolepiota procera Dirt | yes | | +| nsspf:psilocybe_cubensis | Psilocybe cubensis | yes | | +| nsspf:cooked_psilocybe_cubensis | Cooked Psilocybe cubensis | | | +| nsspf:psilocybe_cubensis_fungusdirt | Psilocybe cubensis Dirt | | | +| nsspf:lycoperdon_pyriforme | Lycoperdon pyriforme | yes | yes | +| nsspf:cooked_lycoperdon_pyriforme | Cooked Lycoperdon pyriforme | | | +| nsspf:lycoperdon_pyriforme_fungusdirt | Lycoperdon pyriforme Dirt | | | +| nsspf:gyromitra_esculenta | Gyromitra esculenta | yes | yes | +| nsspf:cooked_gyromitra_esculenta | Cooked Gyromitra esculenta | | | +| nsspf:gyromitra_esculenta_fungusdirt | Gyromitra esculenta Dirt | | | +| nsspf:coprinus_atramentarius | Coprinus atramentarius | | yes | +| nsspf:cooked_coprinus_atramentarius | Cooked Coprinus atramentarius | | | +| nsspf:coprinus_atramentarius_fungusdirt | Coprinus atramentarius Dirt | | | +| nsspf:lentinus_strigosus | Lentinus strigosus | yes | yes | +| nsspf:cooked_lentinus_strigosus | Cooked Lentinus strigosus | | | +| nsspf:ganoderma_lucidum | Ganoderma lucidum | yes | yes | +| nsspf:cooked_ganoderma_lucidum | Cooked Ganoderma lucidum | | | +| nsspf:marasmius_haematocephalus | Marasmius haematocephalus | yes | yes | +| nsspf:cooked_marasmius_haematocephalus | Cooked Marasmius haematocephalus | | | +| nsspf:clitocybula_azurea | Clitocybula_azurea | yes | yes | +| nsspf:cooked_clitocybula_azurea | Cooked Clitocybula_azurea | | | +| nsspf:clitocybe_glacialis | Clitocybe glacialis | yes | yes | +| nsspf:cooked_clitocybe_glacialis | Cooked Clitocybe glacialis | | | +| nsspf:clitocybe_glacialis_fungusdirt | Clitocybe glacialis Dirt | | | +| nsspf:hygrophorus_goetzii | Hygrophorus goetzii | yes | yes | +| nsspf:cooked_hygrophorus_goetzii | Cooked Hygrophorus goetzii | | | +| nsspf:hygrophorus_goetzii_fungusdirt | Hygrophorus goetzii Dirt | | | +| nsspf:plectania_nannfeldtii | Plectania nannfeldtii | yes | yes | +| nsspf:cooked_plectania_nannfeldtii | Cooked Plectania nannfeldtii | | | +| nsspf:plectania_nannfeldtii_fungusdirt | Plectania nannfeldtii Dirt | | | + +#### Crafts + +nsspf:amadou + +``` + {'nsspf:fomes_fomentarius'} +``` + +nsspf:long_lasting_amadou', + +``` + {'nssm:black_powder', 'nsspf:amadou' +``` + +nsspf:lasting_amadou', + +``` + {'tnt:gunpowder', 'nsspf:amadou'}, +``` +#### Original information + +https://forum.minetest.net/viewtopic.php?t=16345 + +## License: + +(c) 2014-2016 NPXcoot + +* LGPLv3 for the code +* CC BY-SA 4.0 for the models and textures + +(c) 2023 mckaygerhard + +* CC BY-SA NC 4.0 for additions, code fixed and improvements + diff --git a/mods/nsspf/depends.txt b/mods/nsspf/depends.txt new file mode 100644 index 0000000..7967081 --- /dev/null +++ b/mods/nsspf/depends.txt @@ -0,0 +1,3 @@ +default +nssm? +tnt? diff --git a/mods/nsspf/description.txt b/mods/nsspf/description.txt new file mode 100644 index 0000000..222f92f --- /dev/null +++ b/mods/nsspf/description.txt @@ -0,0 +1 @@ +NSSPF mod that adds wild plants (fungies) \ No newline at end of file diff --git a/mods/nsspf/init.lua b/mods/nsspf/init.lua new file mode 100644 index 0000000..2aaae47 --- /dev/null +++ b/mods/nsspf/init.lua @@ -0,0 +1,15 @@ +nsspf = {} +local mod = nsspf + +mod.version = '20230616' +mod.mod_name = minetest.get_current_modname() +mod.path = minetest.get_modpath(mod.mod_name) +mod.world = minetest.get_worldpath() +mod.nssm = minetest.get_modpath("nssm") +mod.tnt = minetest.get_modpath("tnt") +mod.dat = {} + +dofile(mod.path.."/mushrooms.lua") +dofile(mod.path.."/spawn.lua") + +print("[MOD] loaded nsspf ver "..mod.version) diff --git a/mods/nsspf/mod.conf b/mods/nsspf/mod.conf new file mode 100644 index 0000000..aa19822 --- /dev/null +++ b/mods/nsspf/mod.conf @@ -0,0 +1,4 @@ +name = nsspf +depends = default +optional_depends = nssm, tnt +description = NSSPF mod that adds wild plants (fungies) diff --git a/mods/nsspf/models/amanita.b3d b/mods/nsspf/models/amanita.b3d new file mode 100644 index 0000000..5e0d1ea Binary files /dev/null and b/mods/nsspf/models/amanita.b3d differ diff --git a/mods/nsspf/models/armillaria_mellea.b3d b/mods/nsspf/models/armillaria_mellea.b3d new file mode 100644 index 0000000..1408452 Binary files /dev/null and b/mods/nsspf/models/armillaria_mellea.b3d differ diff --git a/mods/nsspf/models/boletus.b3d b/mods/nsspf/models/boletus.b3d new file mode 100644 index 0000000..fa6ef5f Binary files /dev/null and b/mods/nsspf/models/boletus.b3d differ diff --git a/mods/nsspf/models/cantharellus_cibarius.b3d b/mods/nsspf/models/cantharellus_cibarius.b3d new file mode 100644 index 0000000..9fc0eb5 Binary files /dev/null and b/mods/nsspf/models/cantharellus_cibarius.b3d differ diff --git a/mods/nsspf/models/clitocybe_glacialis.b3d b/mods/nsspf/models/clitocybe_glacialis.b3d new file mode 100644 index 0000000..d4c64af Binary files /dev/null and b/mods/nsspf/models/clitocybe_glacialis.b3d differ diff --git a/mods/nsspf/models/clitocybula_azurea.b3d b/mods/nsspf/models/clitocybula_azurea.b3d new file mode 100644 index 0000000..3ed8728 Binary files /dev/null and b/mods/nsspf/models/clitocybula_azurea.b3d differ diff --git a/mods/nsspf/models/coprinus_atramentarius.b3d b/mods/nsspf/models/coprinus_atramentarius.b3d new file mode 100644 index 0000000..11d46a4 Binary files /dev/null and b/mods/nsspf/models/coprinus_atramentarius.b3d differ diff --git a/mods/nsspf/models/fistulina_hepatica.b3d b/mods/nsspf/models/fistulina_hepatica.b3d new file mode 100644 index 0000000..390cc60 Binary files /dev/null and b/mods/nsspf/models/fistulina_hepatica.b3d differ diff --git a/mods/nsspf/models/fomes_fomentarius.b3d b/mods/nsspf/models/fomes_fomentarius.b3d new file mode 100644 index 0000000..8fb1ab0 Binary files /dev/null and b/mods/nsspf/models/fomes_fomentarius.b3d differ diff --git a/mods/nsspf/models/gyromitra_esculenta.b3d b/mods/nsspf/models/gyromitra_esculenta.b3d new file mode 100644 index 0000000..9079db8 Binary files /dev/null and b/mods/nsspf/models/gyromitra_esculenta.b3d differ diff --git a/mods/nsspf/models/hygrophorus_goetzii.b3d b/mods/nsspf/models/hygrophorus_goetzii.b3d new file mode 100644 index 0000000..26b5708 Binary files /dev/null and b/mods/nsspf/models/hygrophorus_goetzii.b3d differ diff --git a/mods/nsspf/models/lentinus_strigosus.b3d b/mods/nsspf/models/lentinus_strigosus.b3d new file mode 100644 index 0000000..0981b62 Binary files /dev/null and b/mods/nsspf/models/lentinus_strigosus.b3d differ diff --git a/mods/nsspf/models/lycoperdon_pyriforme.b3d b/mods/nsspf/models/lycoperdon_pyriforme.b3d new file mode 100644 index 0000000..1b8a584 Binary files /dev/null and b/mods/nsspf/models/lycoperdon_pyriforme.b3d differ diff --git a/mods/nsspf/models/macrolepiota_procera.b3d b/mods/nsspf/models/macrolepiota_procera.b3d new file mode 100644 index 0000000..101e617 Binary files /dev/null and b/mods/nsspf/models/macrolepiota_procera.b3d differ diff --git a/mods/nsspf/models/marasmius_haematocephalus.b3d b/mods/nsspf/models/marasmius_haematocephalus.b3d new file mode 100644 index 0000000..9106bfa Binary files /dev/null and b/mods/nsspf/models/marasmius_haematocephalus.b3d differ diff --git a/mods/nsspf/models/morchella_conica.b3d b/mods/nsspf/models/morchella_conica.b3d new file mode 100644 index 0000000..25bebd0 Binary files /dev/null and b/mods/nsspf/models/morchella_conica.b3d differ diff --git a/mods/nsspf/models/mycena_chlorophos.b3d b/mods/nsspf/models/mycena_chlorophos.b3d new file mode 100644 index 0000000..d69c13b Binary files /dev/null and b/mods/nsspf/models/mycena_chlorophos.b3d differ diff --git a/mods/nsspf/models/panellus_pusillus.b3d b/mods/nsspf/models/panellus_pusillus.b3d new file mode 100644 index 0000000..2b6a7b2 Binary files /dev/null and b/mods/nsspf/models/panellus_pusillus.b3d differ diff --git a/mods/nsspf/models/plectania_nannfeldtii.b3d b/mods/nsspf/models/plectania_nannfeldtii.b3d new file mode 100644 index 0000000..7614636 Binary files /dev/null and b/mods/nsspf/models/plectania_nannfeldtii.b3d differ diff --git a/mods/nsspf/models/psilocybe_cubensis.b3d b/mods/nsspf/models/psilocybe_cubensis.b3d new file mode 100644 index 0000000..cde552c Binary files /dev/null and b/mods/nsspf/models/psilocybe_cubensis.b3d differ diff --git a/mods/nsspf/models/russula.b3d b/mods/nsspf/models/russula.b3d new file mode 100644 index 0000000..14e7148 Binary files /dev/null and b/mods/nsspf/models/russula.b3d differ diff --git a/mods/nsspf/models/suillus_grevillei.b3d b/mods/nsspf/models/suillus_grevillei.b3d new file mode 100644 index 0000000..fc8220a Binary files /dev/null and b/mods/nsspf/models/suillus_grevillei.b3d differ diff --git a/mods/nsspf/mushrooms.lua b/mods/nsspf/mushrooms.lua new file mode 100644 index 0000000..e1b6f33 --- /dev/null +++ b/mods/nsspf/mushrooms.lua @@ -0,0 +1,1733 @@ +minetest.register_node("nsspf:boletus_edulis", { + description = "Boletus edulis", + drawtype = "mesh", + mesh = "boletus.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + tiles = {"boletus_edulis.png"}, + groups = {snappy=3}, + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="air"}) + end, + on_place = function(itemstack, placer, pointed_thing) + return + end, + on_use = minetest.item_eat(2), + selection_box = { + type = 'fixed', + fixed = {-0.28, -0.49, -0.28, 0.28, 0.06, 0.28}, -- Right, Bottom, Back, Left, Top, Front + }, + collision_box = { + type = 'fixed', + fixed = {-0.28, -0.49, -0.28, 0.28, 0.06, 0.28}, -- Right, Bottom, Back, Left, Top, Front + }, +}) + +minetest.register_node("nsspf:cooked_boletus_edulis", { + description = "Cooked Boletus edulis", + drawtype = "mesh", + mesh = "boletus.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + tiles = {"cooked_boletus_edulis.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(16), + selection_box = { + type = 'fixed', + fixed = {-0.28, -0.49, -0.28, 0.28, 0.06, 0.28}, -- Right, Bottom, Back, Left, Top, Front + }, + on_place = function(itemstack, placer, pointed_thing) + return + end, + collision_box = { + type = 'fixed', + fixed = {-0.28, -0.49, -0.28, 0.28, 0.06, 0.28}, -- Right, Bottom, Back, Left, Top, Front + }, +}) + +minetest.register_node("nsspf:boletus_edulis_fungusdirt", { + description = "Boletus edulis Dirt", + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="default:dirt"}) + end, + tiles = {"default_dirt.png"}, + drop = { + max_items = 1, + items = { + { + items = {'node "nsspf:boletus_edulis_spores" 1'}, + rarity = 16 + }, + } + }, + groups = {crumbly = 3, not_in_creative_inventory =1}, +}) + +minetest.register_node("nsspf:cantharellus_cibarius", { + description = "Cantharellus cibarius", + drawtype = "mesh", + mesh = "cantharellus_cibarius.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="air"}) + end, + on_place = function(itemstack, placer, pointed_thing) + return + end, + tiles = {"cantharellus_cibarius.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(1), + selection_box = { + type = 'fixed', + fixed = {-0.28, -0.49, -0.28, 0.28, -0.26, 0.28}, -- Right, Bottom, Back, Left, Top, Front + }, + collision_box = { + type = 'fixed', + fixed = {-0.28, -0.49, -0.28, 0.28, -0.26, 0.28}, -- Right, Bottom, Back, Left, Top, Front + }, +}) + +minetest.register_node("nsspf:cooked_cantharellus_cibarius", { + description = "Cooked Cantharellus cibarius", + drawtype = "mesh", + mesh = "cantharellus_cibarius.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + tiles = {"cooked_cantharellus_cibarius.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(8), + on_place = function(itemstack, placer, pointed_thing) + return + end, + selection_box = { + type = 'fixed', + fixed = {-0.28, -0.49, -0.28, 0.28, -0.26, 0.28}, -- Right, Bottom, Back, Left, Top, Front + }, + collision_box = { + type = 'fixed', + fixed = {-0.28, -0.49, -0.28, 0.28, -0.26, 0.28}, -- Right, Bottom, Back, Left, Top, Front + }, +}) + +minetest.register_node("nsspf:cantharellus_cibarius_fungusdirt", { + description = "Cantharellus cibarius Dirt", + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="default:dirt"}) + end, + tiles = {"default_dirt.png"}, + drop = { + max_items = 1, + items = { + { + items = {'node "nsspf:cantharellus_cibarius_spores" 1'}, + rarity = 12 + }, + } + }, + groups = {crumbly = 3, not_in_creative_inventory =1}, +}) + +minetest.register_node("nsspf:suillus_grevillei", { + description = "Suillus grevillei", + drawtype = "mesh", + mesh = "suillus_grevillei.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="air"}) + end, + tiles = {"suillus_grevillei.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(1), + on_place = function(itemstack, placer, pointed_thing) + return + end, + selection_box = { + type = 'fixed', + fixed = {-0.28, -0.49, -0.28, 0.28, 0.06, 0.28}, -- Right, Bottom, Back, Left, Top, Front + }, + collision_box = { + type = 'fixed', + fixed = {-0.28, -0.49, -0.28, 0.28, 0.06, 0.28}, -- Right, Bottom, Back, Left, Top, Front + }, +}) + +minetest.register_node("nsspf:cooked_suillus_grevillei", { + description = "Cooked Suillus grevillei", + drawtype = "mesh", + mesh = "suillus_grevillei.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + tiles = {"cooked_suillus_grevillei.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(10), + on_place = function(itemstack, placer, pointed_thing) + return + end, + selection_box = { + type = 'fixed', + fixed = {-0.28, -0.49, -0.28, 0.28, 0.06, 0.28}, -- Right, Bottom, Back, Left, Top, Front + }, + collision_box = { + type = 'fixed', + fixed = {-0.28, -0.49, -0.28, 0.28, 0.06, 0.28}, -- Right, Bottom, Back, Left, Top, Front + }, +}) + +minetest.register_node("nsspf:suillus_grevillei_fungusdirt", { + description = "Suillus grevillei Dirt", + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="default:dirt"}) + end, + tiles = {"default_dirt.png"}, + drop = { + max_items = 1, + items = { + { + items = {'node "nsspf:suillus_grevillei_spores" 1'}, + rarity = 8 + }, + } + }, + groups = {crumbly = 3, not_in_creative_inventory =1}, +}) + +minetest.register_node("nsspf:morchella_conica", { + description = "Morchella conica", + drawtype = "mesh", + mesh = "morchella_conica.b3d", + paramtype = 'light', + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="air"}) + end, + paramtype2 = 'facedir', + tiles = {"morchella_conica.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(2), + on_place = function(itemstack, placer, pointed_thing) + return + end, + selection_box = { + type = 'fixed', + fixed = {-0.15, -0.49, -0.15, 0.15, 0.06, 0.15}, -- Right, Bottom, Back, Left, Top, Front + }, + collision_box = { + type = 'fixed', + fixed = {-0.15, -0.49, -0.15, 0.15, 0.06, 0.15}, -- Right, Bottom, Back, Left, Top, Front + }, +}) + +minetest.register_node("nsspf:cooked_morchella_conica", { + description = "Cooked Morchella conica", + drawtype = "mesh", + mesh = "morchella_conica.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + tiles = {"cooked_morchella_conica.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(8), + on_place = function(itemstack, placer, pointed_thing) + return + end, + selection_box = { + type = 'fixed', + fixed = {-0.15, -0.49, -0.15, 0.15, 0.06, 0.15}, -- Right, Bottom, Back, Left, Top, Front + }, + collision_box = { + type = 'fixed', + fixed = {-0.15, -0.49, -0.15, 0.15, 0.06, 0.15}, -- Right, Bottom, Back, Left, Top, Front + }, +}) + +minetest.register_node("nsspf:morchella_conica_fungusdirt", { + description = "Morchella conica Dirt", + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="default:dirt"}) + end, + tiles = {"default_dirt.png"}, + drop = { + max_items = 1, + items = { + { + items = {'node "nsspf:morchella_conica_spores" 1'}, + rarity = 12 + }, + } + }, + groups = {crumbly = 3, not_in_creative_inventory =1}, +}) + +minetest.register_node("nsspf:russula_xerampelina", { + description = "Russula xerampelina", + drawtype = "mesh", + mesh = "russula.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="air"}) + end, + tiles = {"russula_xerampelina.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(-8), + on_place = function(itemstack, placer, pointed_thing) + return + end, + selection_box = { + type = 'fixed', + fixed = {-0.28, -0.49, -0.28, 0.28, 0.06, 0.28}, -- Right, Bottom, Back, Left, Top, Front + }, + collision_box = { + type = 'fixed', + fixed = {-0.28, -0.49, -0.28, 0.28, 0.06, 0.28}, -- Right, Bottom, Back, Left, Top, Front + }, +}) + +minetest.register_node("nsspf:cooked_russula_xerampelina", { + description = "Cooked Russula xerampelina", + drawtype = "mesh", + mesh = "russula.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + tiles = {"cooked_russula_xerampelina.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(6), + on_place = function(itemstack, placer, pointed_thing) + return + end, + selection_box = { + type = 'fixed', + fixed = {-0.28, -0.49, -0.28, 0.28, 0.06, 0.28}, -- Right, Bottom, Back, Left, Top, Front + }, + collision_box = { + type = 'fixed', + fixed = {-0.28, -0.49, -0.28, 0.28, 0.06, 0.28}, -- Right, Bottom, Back, Left, Top, Front + }, +}) + +minetest.register_node("nsspf:russula_xerampelina_fungusdirt", { + description = "Russula xerampelina Dirt", + tiles = {"default_dirt.png"}, + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="default:dirt"}) + end, + drop = { + max_items = 1, + items = { + { + items = {'node "nsspf:russula_xerampelina_spores" 1'}, + rarity = 12 + }, + } + }, + groups = {crumbly = 3, not_in_creative_inventory =1}, +}) + +minetest.register_node("nsspf:boletus_pinophilus", { + description = "Boletus pinophilus", + drawtype = "mesh", + mesh = "boletus.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="air"}) + end, + tiles = {"boletus_pinophilus.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(2), + on_place = function(itemstack, placer, pointed_thing) + return + end, + selection_box = { + type = 'fixed', + fixed = {-0.28, -0.49, -0.28, 0.28, 0.06, 0.28}, -- Right, Bottom, Back, Left, Top, Front + }, + collision_box = { + type = 'fixed', + fixed = {-0.28, -0.49, -0.28, 0.28, 0.06, 0.28}, -- Right, Bottom, Back, Left, Top, Front + }, +}) + +minetest.register_node("nsspf:cooked_boletus_pinophilus", { + description = "Cooked Boletus pinophilus", + drawtype = "mesh", + mesh = "boletus.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="air"}) + end, + tiles = {"cooked_boletus_pinophilus.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(16), + on_place = function(itemstack, placer, pointed_thing) + return + end, + selection_box = { + type = 'fixed', + fixed = {-0.28, -0.49, -0.28, 0.28, 0.06, 0.28}, -- Right, Bottom, Back, Left, Top, Front + }, + collision_box = { + type = 'fixed', + fixed = {-0.28, -0.49, -0.28, 0.28, 0.06, 0.28}, -- Right, Bottom, Back, Left, Top, Front + }, +}) + +minetest.register_node("nsspf:boletus_pinophilus_fungusdirt", { + description = "Boletus pinophilus Dirt", + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="default:dirt"}) + end, + tiles = {"default_dirt.png"}, + drop = { + max_items = 1, + items = { + { + items = {'node "nsspf:boletus_pinophilus_spores" 1'}, + rarity = 16 + }, + } + }, + groups = {crumbly = 3, not_in_creative_inventory =1}, +}) + +minetest.register_node("nsspf:boletus_satanas", { + description = "Boletus satanas", + drawtype = "mesh", + mesh = "boletus.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + tiles = {"boletus_satanas.png"}, + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="air"}) + end, + groups = {snappy=3}, + on_use = minetest.item_eat(-20), + on_place = function(itemstack, placer, pointed_thing) + return + end, + selection_box = { + type = 'fixed', + fixed = {-0.28, -0.49, -0.28, 0.28, 0.06, 0.28}, -- Right, Bottom, Back, Left, Top, Front + }, + collision_box = { + type = 'fixed', + fixed = {-0.28, -0.49, -0.28, 0.28, 0.06, 0.28}, -- Right, Bottom, Back, Left, Top, Front + }, +}) + +minetest.register_node("nsspf:cooked_boletus_satanas", { + description = "Cooked Boletus satanas", + drawtype = "mesh", + mesh = "boletus.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + tiles = {"cooked_boletus_satanas.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(-16), + on_place = function(itemstack, placer, pointed_thing) + return + end, + selection_box = { + type = 'fixed', + fixed = {-0.28, -0.49, -0.28, 0.28, 0.06, 0.28}, -- Right, Bottom, Back, Left, Top, Front + }, + collision_box = { + type = 'fixed', + fixed = {-0.28, -0.49, -0.28, 0.28, 0.06, 0.28}, -- Right, Bottom, Back, Left, Top, Front + }, +}) + +minetest.register_node("nsspf:boletus_satanas_fungusdirt", { + description = "Boletus satanas Dirt", + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="default:dirt"}) + end, + tiles = {"default_dirt.png"}, + drop = { + max_items = 1, + items = { + { + items = {'node "nsspf:boletus_satanas_spores" 1'}, + rarity = 18 + }, + } + }, + groups = {crumbly = 3, not_in_creative_inventory =1}, +}) + +minetest.register_node("nsspf:amanita_phalloides", { + description = "Amanita phalloides", + drawtype = "mesh", + mesh = "amanita.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="air"}) + end, + tiles = {"amanita_phalloides.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(-20), + on_place = function(itemstack, placer, pointed_thing) + return + end, + 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:cooked_amanita_phalloides", { + description = "Cooked Amanita phalloides", + drawtype = "mesh", + mesh = "amanita.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + tiles = {"cooked_amanita_phalloides.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(-20), + on_place = function(itemstack, placer, pointed_thing) + return + end, + 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_muscaria_fungusdirt", { + description = "Amanita muscaria Dirt", + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="default:dirt"}) + end, + tiles = {"default_dirt.png"}, + drop = { + max_items = 1, + items = { + { + items = {'node "nsspf:amanita_muscaria_spores" 1'}, + rarity = 16 + }, + } + }, + groups = {crumbly = 3, not_in_creative_inventory =1}, +}) + +minetest.register_node("nsspf:amanita_muscaria", { + description = "Amanita muscaria", + drawtype = "mesh", + mesh = "amanita.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + tiles = {"amanita_muscaria.png"}, + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="air"}) + end, + groups = {snappy=3}, + on_use = minetest.item_eat(-20), + on_place = function(itemstack, placer, pointed_thing) + return + end, + 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:cooked_amanita_muscaria", { + description = "Cooked Amanita muscaria", + drawtype = "mesh", + mesh = "amanita.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + tiles = {"cooked_amanita_muscaria.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(-18), + on_place = function(itemstack, placer, pointed_thing) + return + end, + 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", + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="default:dirt"}) + end, + tiles = {"default_dirt.png"}, + drop = { + max_items = 1, + items = { + { + items = {'node "nsspf:amanita_phalloides_spores" 1'}, + rarity = 18 + }, + } + }, + groups = {crumbly = 3, not_in_creative_inventory =1}, +}) + +minetest.register_node("nsspf:tuber_melanosporum_fungusdirt", { + description = "Tuber melanosporum Dirt", + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="default:dirt"}) + end, + tiles = {"default_dirt.png"}, + drop = { + max_items = 1, + items = { + { + items = {'node "nsspf:tuber_melanosporum_spores" 1'}, + rarity = 16 + }, + } + }, + groups = {crumbly = 3, not_in_creative_inventory =1}, +}) + +minetest.register_node("nsspf:tuber_magnatum_pico_fungusdirt", { + description = "Tuber magnatum pico Dirt", + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="default:dirt"}) + end, + tiles = {"default_dirt.png"}, + drop = { + max_items = 1, + items = { + { + items = {'node "nsspf:tuber_magnatum_pico_spores" 1'}, + rarity = 30 + }, + } + }, + groups = {crumbly = 3, not_in_creative_inventory =1}, +}) + +minetest.register_node("nsspf:tuber_borchii_fungusdirt", { + description = "Tuber borchii Dirt", + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="default:dirt"}) + end, + tiles = {"default_dirt.png"}, + drop = { + max_items = 1, + items = { + { + items = {'node "nsspf:tuber_borchii_spores" 1'}, + rarity = 12 + }, + } + }, + groups = {crumbly = 3, not_in_creative_inventory =1}, +}) + +minetest.register_node("nsspf:terfezia_arenaria_fungusdirt", { + description = "Terfezia arenaria Dirt", + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="default:dirt"}) + end, + tiles = {"default_dirt.png"}, + drop = { + max_items = 1, + items = { + { + items = {'node "nsspf:terfezia_arenaria_spores" 1'}, + rarity = 8 + }, + } + }, + groups = {crumbly = 3, not_in_creative_inventory =1}, +}) + +--Saprotrophic fungi that live on trees + +minetest.register_node("nsspf:fistulina_hepatica", { + description = "Fistulina hepatica", + drawtype = "mesh", + mesh = "fistulina_hepatica.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="air"}) + end, + tiles = {"fistulina_hepatica.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(4), + on_place = function(itemstack, placer, pointed_thing) + return + end, + selection_box = { + type = 'fixed', + fixed = {-0.5, -0.1, -0.5, 0.5, 0.1, 0.5}, -- Right, Bottom, Back, Left, Top, Front + }, + collision_box = { + type = 'fixed', + fixed = {-0.5, -0.1, -0.5, 0.5, 0.1, 0.5}, -- Right, Bottom, Back, Left, Top, Front + }, +}) + +minetest.register_node("nsspf:cooked_fistulina_hepatica", { + description = "Cooked Fistulina hepatica", + drawtype = "mesh", + mesh = "fistulina_hepatica.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + tiles = {"cooked_fistulina_hepatica.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(14), + on_place = function(itemstack, placer, pointed_thing) + return + end, + selection_box = { + type = 'fixed', + fixed = {-0.5, -0.1, -0.5, 0.5, 0.1, 0.5}, -- Right, Bottom, Back, Left, Top, Front + }, + collision_box = { + type = 'fixed', + fixed = {-0.5, -0.1, -0.5, 0.5, 0.1, 0.5}, -- Right, Bottom, Back, Left, Top, Front + }, +}) + +minetest.register_node("nsspf:armillaria_mellea", { + description = "Armillaria mellea", + drawtype = "mesh", + mesh = "armillaria_mellea.b3d", + paramtype = 'light', + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="air"}) + end, + paramtype2 = 'facedir', + tiles = {"armillaria_mellea.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(2), + on_place = function(itemstack, placer, pointed_thing) + return + end, + selection_box = { + type = 'fixed', + fixed = {-0.2, 0, 0.2, 0.2, 0.4, 0.5}, -- Right, Bottom, Back, Left, Top, Front + }, + collision_box = { + type = 'fixed', + fixed = {-0.2, 0, 0.2, 0.2, 0.4, 0.5}, -- Right, Bottom, Back, Left, Top, Front + }, +}) + +minetest.register_node("nsspf:fomes_fomentarius", { + description = "Fomes fomentarius", + drawtype = "mesh", + mesh = "fomes_fomentarius.b3d", + paramtype = 'light', + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="air"}) + end, + paramtype2 = 'facedir', + tiles = {"fomes_fomentarius.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(-1), + on_place = function(itemstack, placer, pointed_thing) + return + end, + selection_box = { + type = 'fixed', + fixed = {-0.2, 0, 0.2, 0.2, 0.4, 0.5}, -- Right, Bottom, Back, Left, Top, Front + }, + collision_box = { + type = 'fixed', + fixed = {-0.2, 0, 0.2, 0.2, 0.4, 0.5}, -- Right, Bottom, Back, Left, Top, Front + }, +}) + +minetest.register_node("nsspf:cooked_armillaria_mellea", { + description = "Cooked Armillaria mellea", + drawtype = "mesh", + mesh = "armillaria_mellea.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + tiles = {"cooked_armillaria_mellea.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(12), + on_place = function(itemstack, placer, pointed_thing) + return + end, + selection_box = { + type = 'fixed', + fixed = {-0.2, 0, 0.2, 0.2, 0.4, 0.5}, -- Right, Bottom, Back, Left, Top, Front + }, + collision_box = { + type = 'fixed', + fixed = {-0.2, 0, 0.2, 0.2, 0.4, 0.5}, -- Right, Bottom, Back, Left, Top, Front + }, +}) + +minetest.register_node("nsspf:mycena_chlorophos", { + description = "Mycena chlorophos", + drawtype = "mesh", + mesh = "mycena_chlorophos.b3d", + paramtype = 'light', + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="air"}) + end, + paramtype2 = 'facedir', + tiles = {"mycena_chlorophos.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(-2), + 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:cooked_mycena_chlorophos", { + description = "Cooked Mycena chlorophos", + drawtype = "mesh", + mesh = "mycena_chlorophos.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + tiles = {"cooked_mycena_chlorophos.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(-4), + on_place = function(itemstack, placer, pointed_thing) + return + end, + 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', + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="air"}) + end, + tiles = {"mycena_chlorophos_light.png"}, + groups = {snappy=3, not_in_creative_inventory=1}, + light_source = 8, + drop ="nsspf:mycena_chlorophos", + on_use = minetest.item_eat(-2), + on_place = function(itemstack, placer, pointed_thing) + return + end, + 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", + mesh = "panellus_pusillus.b3d", + paramtype = 'light', + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="air"}) + end, + paramtype2 = 'facedir', + tiles = {"panellus_pusillus.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(-2), + 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:cooked_panellus_pusillus", { + description = "Cooked Panellus pusillus", + drawtype = "mesh", + mesh = "panellus_pusillus.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + tiles = {"cooked_panellus_pusillus.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(-4), + on_place = function(itemstack, placer, pointed_thing) + return + end, + 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_light", { + description = "Nocturn Panellus pusillus", + drawtype = "mesh", + mesh = "panellus_pusillus.b3d", + paramtype = 'light', + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="air"}) + end, + paramtype2 = 'facedir', + tiles = {"panellus_pusillus_light.png"}, + groups = {snappy=3, not_in_creative_inventory=1}, + light_source = 8, + drop = "nsspf:panellus_pusillus", + on_use = minetest.item_eat(-2), + on_place = function(itemstack, placer, pointed_thing) + return + end, + 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 + }, +}) + +--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"}, + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="air"}) + end, + groups = {snappy=3}, + on_use = minetest.item_eat(3), + on_place = function(itemstack, placer, pointed_thing) + return + end, + 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:cooked_macrolepiota_procera", { + description = "Cooked Macrolepiota procera", + drawtype = "mesh", + mesh = "macrolepiota_procera.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + tiles = {"cooked_macrolepiota_procera.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(16), + on_place = function(itemstack, placer, pointed_thing) + return + end, + 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", + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="default:dirt"}) + end, + tiles = {"default_dirt.png"}, + drop = { + max_items = 1, + items = { + { + items = {'node "nsspf:macrolepiota_procera_spores" 1'}, + rarity = 12 + }, + } + }, + groups = {crumbly = 3, not_in_creative_inventory =1}, +}) + +minetest.register_node("nsspf:psilocybe_cubensis", { + description = "Psilocybe cubensis", + drawtype = "mesh", + mesh = "psilocybe_cubensis.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + tiles = {"psilocybe_cubensis.png"}, + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="air"}) + end, + groups = {snappy=3}, + on_use = minetest.item_eat(-7), + on_place = function(itemstack, placer, pointed_thing) + return + end, + 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:cooked_psilocybe_cubensis", { + description = "Cooked Psilocybe cubensis", + drawtype = "mesh", + mesh = "psilocybe_cubensis.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + tiles = {"cooked_psilocybe_cubensis.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(2), + on_place = function(itemstack, placer, pointed_thing) + return + end, + 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", + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="default:dirt"}) + end, + tiles = {"default_dirt.png"}, + drop = { + max_items = 1, + items = { + { + items = {'node "nsspf:psilocybe_cubensis_spores" 1'}, + rarity = 16 + }, + } + }, + groups = {crumbly = 3, not_in_creative_inventory =1}, +}) + +minetest.register_node("nsspf:lycoperdon_pyriforme", { + description = "Lycoperdon pyriforme", + drawtype = "mesh", + mesh = "lycoperdon_pyriforme.b3d", + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="air"}) + end, + paramtype = 'light', + paramtype2 = 'facedir', + tiles = {"lycoperdon_pyriforme.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(8), + on_place = function(itemstack, placer, pointed_thing) + return + end, + 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:cooked_lycoperdon_pyriforme", { + description = "Cooked Lycoperdon pyriforme", + drawtype = "mesh", + mesh = "lycoperdon_pyriforme.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + tiles = {"cooked_lycoperdon_pyriforme.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(12), + on_place = function(itemstack, placer, pointed_thing) + return + end, + 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", + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="default:dirt"}) + end, + tiles = {"default_dirt.png"}, + drop = { + max_items = 1, + items = { + { + items = {'node "nsspf:lycoperdon_pyriforme_spores" 1'}, + rarity = 4 + }, + } + }, + groups = {crumbly = 3, not_in_creative_inventory =1}, +}) + +minetest.register_node("nsspf:gyromitra_esculenta", { + description = "Gyromitra esculenta", + drawtype = "mesh", + mesh = "gyromitra_esculenta.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="air"}) + end, + tiles = {"gyromitra_esculenta.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(-20), + on_place = function(itemstack, placer, pointed_thing) + return + end, + 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:cooked_gyromitra_esculenta", { + description = "Cooked Gyromitra esculenta", + drawtype = "mesh", + mesh = "gyromitra_esculenta.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + tiles = {"cooked_gyromitra_esculenta.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(-16), + on_place = function(itemstack, placer, pointed_thing) + return + end, + 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", + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="default:dirt"}) + end, + tiles = {"default_dirt.png"}, + drop = { + max_items = 1, + items = { + { + items = {'node "nsspf:gyromitra_esculenta_spores" 1'}, + rarity = 18 + }, + } + }, + groups = {crumbly = 3, not_in_creative_inventory =1}, +}) + +minetest.register_node("nsspf:coprinus_atramentarius", { + description = "Coprinus atramentarius", + drawtype = "mesh", + mesh = "coprinus_atramentarius.b3d", + paramtype = 'light', + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="air"}) + end, + paramtype2 = 'facedir', + tiles = {"coprinus_atramentarius.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(-13), + on_place = function(itemstack, placer, pointed_thing) + return + end, + 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:cooked_coprinus_atramentarius", { + description = "Cooked Coprinus atramentarius", + drawtype = "mesh", + mesh = "coprinus_atramentarius.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + tiles = {"cooked_coprinus_atramentarius.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(6), + on_place = function(itemstack, placer, pointed_thing) + return + end, + 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", + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="default:dirt"}) + end, + tiles = {"default_dirt.png"}, + drop = { + max_items = 1, + items = { + { + items = {'node "nsspf:coprinus_atramentarius_spores" 1'}, + rarity = 20 + }, + } + }, + groups = {crumbly = 3, not_in_creative_inventory =1}, +}) + +--jungle fungi + +minetest.register_node("nsspf:lentinus_strigosus", { + description = "Lentinus strigosus", + drawtype = "mesh", + mesh = "lentinus_strigosus.b3d", + paramtype = 'light', + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="air"}) + end, + paramtype2 = 'facedir', + tiles = {"lentinus_strigosus.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(1), + on_place = function(itemstack, placer, pointed_thing) + return + end, + 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:cooked_lentinus_strigosus", { + description = "Cooked Lentinus strigosus", + drawtype = "mesh", + mesh = "lentinus_strigosus.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + tiles = {"cooked_lentinus_strigosus.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(16), + on_place = function(itemstack, placer, pointed_thing) + return + end, + 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:ganoderma_lucidum", { + description = "Ganoderma lucidum", + drawtype = "mesh", + mesh = "fistulina_hepatica.b3d", + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="air"}) + end, + paramtype = 'light', + paramtype2 = 'facedir', + tiles = {"ganoderma_lucidum.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(14), + on_place = function(itemstack, placer, pointed_thing) + return + end, + selection_box = { + type = 'fixed', + fixed = {-0.5, -0.1, -0.5, 0.5, 0.1, 0.5}, -- Right, Bottom, Back, Left, Top, Front + }, + collision_box = { + type = 'fixed', + fixed = {-0.5, -0.1, -0.5, 0.5, 0.1, 0.5}, -- Right, Bottom, Back, Left, Top, Front + }, +}) + +minetest.register_node("nsspf:cooked_ganoderma_lucidum", { + description = "Cooked Ganoderma lucidum", + drawtype = "mesh", + mesh = "fistulina_hepatica.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + tiles = {"cooked_ganoderma_lucidum.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(4), + on_place = function(itemstack, placer, pointed_thing) + return + end, + selection_box = { + type = 'fixed', + fixed = {-0.5, -0.1, -0.5, 0.5, 0.1, 0.5}, -- Right, Bottom, Back, Left, Top, Front + }, + collision_box = { + type = 'fixed', + fixed = {-0.5, -0.1, -0.5, 0.5, 0.1, 0.5}, -- Right, Bottom, Back, Left, Top, Front + }, +}) + +minetest.register_node("nsspf:marasmius_haematocephalus", { + description = "Marasmius haematocephalus", + drawtype = "mesh", + mesh = "marasmius_haematocephalus.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="air"}) + end, + tiles = {"marasmius_haematocephalus.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(-1), + on_place = function(itemstack, placer, pointed_thing) + return + end, + 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:cooked_marasmius_haematocephalus", { + description = "Cooked Marasmius haematocephalus", + drawtype = "mesh", + mesh = "marasmius_haematocephalus.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + tiles = {"cooked_marasmius_haematocephalus.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(-19), + on_place = function(itemstack, placer, pointed_thing) + return + end, + 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:clitocybula_azurea", { + description = "Clitocybula_azurea", + drawtype = "mesh", + mesh = "clitocybula_azurea.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="air"}) + end, + tiles = {"clitocybula_azurea.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(-6), + on_place = function(itemstack, placer, pointed_thing) + return + end, + 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:cooked_clitocybula_azurea", { + description = "Cooked Clitocybula_azurea", + drawtype = "mesh", + mesh = "clitocybula_azurea.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + tiles = {"cooked_clitocybula_azurea.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(10), + on_place = function(itemstack, placer, pointed_thing) + return + end, + 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 + }, +}) + +--snowbank fungus + +minetest.register_node("nsspf:clitocybe_glacialis", { + description = "Clitocybe glacialis", + drawtype = "mesh", + mesh = "clitocybe_glacialis.b3d", + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="air"}) + end, + paramtype = 'light', + paramtype2 = 'facedir', + tiles = {"clitocybe_glacialis.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(1), + on_place = function(itemstack, placer, pointed_thing) + return + end, + 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:cooked_clitocybe_glacialis", { + description = "Cooked Clitocybe glacialis", + drawtype = "mesh", + mesh = "clitocybe_glacialis.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + tiles = {"cooked_clitocybe_glacialis.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(10), + on_place = function(itemstack, placer, pointed_thing) + return + end, + 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:clitocybe_glacialis_fungusdirt", { + description = "Clitocybe glacialis Dirt", + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="default:dirt"}) + end, + tiles = {"default_dirt.png"}, + drop = { + max_items = 1, + items = { + { + items = {'node "nsspf:clitocybe_glacialis_spores" 1'}, + rarity = 16 + }, + } + }, + groups = {crumbly = 3, not_in_creative_inventory =1}, +}) + +minetest.register_node("nsspf:hygrophorus_goetzii", { + description = "Hygrophorus goetzii", + drawtype = "mesh", + mesh = "hygrophorus_goetzii.b3d", + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="air"}) + end, + paramtype = 'light', + paramtype2 = 'facedir', + tiles = {"hygrophorus_goetzii.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(-4), + on_place = function(itemstack, placer, pointed_thing) + return + end, + 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:cooked_hygrophorus_goetzii", { + description = "Cooked Hygrophorus goetzii", + drawtype = "mesh", + mesh = "hygrophorus_goetzii.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + tiles = {"cooked_hygrophorus_goetzii.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(8), + on_place = function(itemstack, placer, pointed_thing) + return + end, + 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:hygrophorus_goetzii_fungusdirt", { + description = "Hygrophorus goetzii Dirt", + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="default:dirt"}) + end, + tiles = {"default_dirt.png"}, + drop = { + max_items = 1, + items = { + { + items = {'node "nsspf:hygrophorus_goetzii_spores" 1'}, + rarity = 14 + }, + } + }, + groups = {crumbly = 3, not_in_creative_inventory =1}, +}) + +minetest.register_node("nsspf:plectania_nannfeldtii", { + description = "Plectania nannfeldtii", + drawtype = "mesh", + mesh = "plectania_nannfeldtii.b3d", + paramtype = 'light', + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="air"}) + end, + paramtype2 = 'facedir', + tiles = {"plectania_nannfeldtii.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(-20), + on_place = function(itemstack, placer, pointed_thing) + return + end, + 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:cooked_plectania_nannfeldtii", { + description = "Cooked Plectania nannfeldtii", + drawtype = "mesh", + mesh = "plectania_nannfeldtii.b3d", + paramtype = 'light', + paramtype2 = 'facedir', + tiles = {"cooked_plectania_nannfeldtii.png"}, + groups = {snappy=3}, + on_use = minetest.item_eat(-20), + on_place = function(itemstack, placer, pointed_thing) + return + end, + 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:plectania_nannfeldtii_fungusdirt", { + description = "Plectania nannfeldtii Dirt", + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name="default:dirt"}) + end, + tiles = {"default_dirt.png"}, + drop = { + max_items = 1, + items = { + { + items = {'node "nsspf:plectania_nannfeldtii_spores" 1'}, + rarity = 20 + }, + } + }, + groups = {crumbly = 3, not_in_creative_inventory =1}, +}) + +function nsspf_register_recipes (name) + +minetest.register_craft({ + type = "cooking", + output = "nsspf:cooked_"..name, + recipe = "nsspf:"..name, + cooktime = 10, +}) + +end + +nsspf_register_recipes ('boletus_edulis') +nsspf_register_recipes ('boletus_pinophilus') +nsspf_register_recipes ('boletus_satanas') +nsspf_register_recipes ('suillus_grevillei') +nsspf_register_recipes ('morchella_conica') +nsspf_register_recipes ('amanita_phalloides') +nsspf_register_recipes ('amanita_muscaria') +nsspf_register_recipes ('cantharellus_cibarius') +nsspf_register_recipes ('russula_xerampelina') +nsspf_register_recipes ('fistulina_hepatica') +nsspf_register_recipes ('armillaria_mellea') +nsspf_register_recipes ('mycena_chlorophos') +nsspf_register_recipes ('panellus_pusillus') +nsspf_register_recipes ('macrolepiota_procera') +nsspf_register_recipes ('psilocybe_cubensis') +nsspf_register_recipes ('lycoperdon_pyriforme') +nsspf_register_recipes ('coprinus_atramentarius') +nsspf_register_recipes ('gyromitra_esculenta') +nsspf_register_recipes ('clitocybe_glacialis') +nsspf_register_recipes ('plectania_nannfeldtii') +nsspf_register_recipes ('hygrophorus_goetzii') +nsspf_register_recipes ('lentinus_strigosus') +nsspf_register_recipes ('ganoderma_lucidum') +nsspf_register_recipes ('marasmius_haematocephalus') +nsspf_register_recipes ('clitocybula_azurea') + + + minetest.register_craft({ + output = 'nsspf:amadou', + type = "shapeless", + recipe = {'nsspf:fomes_fomentarius'}, + }) + +minetest.register_craftitem("nsspf:amadou", { + description = "Amadou", + image = "amadou.png", +}) + +minetest.register_craft({ + type = "fuel", + recipe = "nsspf:amadou", + burntime = 120, +}) + +if nsspf.nssm then + + minetest.register_craftitem("nsspf:long_lasting_amadou", { + description = 'Long Lasting Amadou', + image = "long_lasting_amadou.png", + }) + + minetest.register_craft({ + output = 'nsspf:long_lasting_amadou', + type = "shapeless", + recipe = {'nssm:black_powder', 'nsspf:amadou'}, + }) + + minetest.register_craft({ + type = "fuel", + recipe = "nsspf:long_lasting_amadou", + burntime = 400, + }) + +end + +if nsspf.tnt then + + minetest.register_craftitem("nsspf:lasting_amadou", { + description = 'Lasting Amadou', + image = "lasting_amadou.png", + }) + + minetest.register_craft({ + output = 'nsspf:lasting_amadou', + type = "shapeless", + recipe = {'tnt:gunpowder', 'nsspf:amadou'}, + }) + + minetest.register_craft({ + type = "fuel", + recipe = "nsspf:lasting_amadou", + burntime = 300, + }) + +end \ No newline at end of file diff --git a/mods/nsspf/screenshot.png b/mods/nsspf/screenshot.png new file mode 100644 index 0000000..209c772 Binary files /dev/null and b/mods/nsspf/screenshot.png differ diff --git a/mods/nsspf/spawn.lua b/mods/nsspf/spawn.lua new file mode 100644 index 0000000..4696c8b --- /dev/null +++ b/mods/nsspf/spawn.lua @@ -0,0 +1,638 @@ +function place_spore(itemstack, placer, pointed_thing, name, topoint, soilblock) + + local pt = pointed_thing + + -- check if pointing at a node + if not pt or pt.type ~= "node" then + return + end + + local under = minetest.get_node(pt.under) + local uu = {x=pt.under.x, y=pt.under.y-1, z=pt.under.z} + + -- return if any of the nodes is not registered + if not minetest.registered_nodes[under.name] then + return + end + + -- if not protected then add node and remove 1 item from the itemstack + if not minetest.is_protected(pt.under, placer:get_player_name()) then + if (under.name == topoint) and (minetest.get_node(uu).name == soilblock) then + minetest.set_node(uu, {name = name}) + minetest.sound_play("default_place_node", {pos = uu, gain = 1.0}) + if not minetest.setting_getbool("creative_mode") then + itemstack:take_item() + end + return itemstack + end + end +end + +function nsspf_register_mycorrhizalmycelium (name, descr, tree, int, ch, spread) + + minetest.register_node("nsspf:"..name.."_mycelium", { + description = descr, + tiles = {"mycorrhizalmycelium.png"}, + groups = {crumbly = 2, not_in_creative_inventory =1}, + }) + + minetest.register_craftitem("nsspf:"..name.."_spores", { + description = descr.." Spores", + image = "spores.png", + on_place = function(itemstack, placer, pointed_thing) + return place_spore(itemstack, placer, pointed_thing, "nsspf:"..name.."_mycelium",tree, "default:dirt") + end, + }) + + minetest.register_abm({ + nodenames = {"default:dirt"}, + neighbors = {tree}, + interval = 30*int, + chance = 200*ch, + action = function(pos, node) + local flag = 0 + for dx = -2,2 do + for dy = -2,1 do + for dz = -2,2 do + local pos1 = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz} + local n = minetest.get_node(pos1).name + if n and string.match(n,"mycelium") then -- if the name contains "mycelium" then exit + flag = 1 + return + end + end + end + end + --if no other mycelium have been found: + 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","default:water_source"}, + interval = 1, + chance = 1, + action = function(pos, node) + minetest.set_node(pos, {name="nsspf:"..name.."_fungusdirt"}) + minetest.get_node_timer(pos):start(300) + end + }) + + minetest.register_abm({ + nodenames = {"nsspf:"..name.."_mycelium"}, + neighbors = {"default:dirt_with_snow"}, + interval = 1, + chance = 1, + action = function(pos, node) + minetest.set_node(pos, {name="default:dirt"}) + end + }) + + minetest.register_abm({ + nodenames = {"default:dirt"}, + neighbors = {"nsspf:"..name.."_mycelium"}, + interval = 12*int, + chance = 10*ch, + 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 = {"nsspf:"..name.."_mycelium"}, + neighbors = {"default:dirt_with_grass"}, + interval = 5*int, + chance = 1*ch, + 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" or n=="group:flora") and nn== "default:dirt_with_grass" then + minetest.set_node(pos1, {name = "nsspf:"..name}) + minetest.get_node_timer(pos1):start(300) + end + end + }) + + minetest.register_abm({ + nodenames = {"nsspf:"..name.."_mycelium"}, + neighbors = {"nsspf:"..name.."_mycelium"}, + interval = 10, + chance = 1, + action = function(pos, node) + local flag = 0 + for dx = -4,4 do + for dy = -4,1 do + for dz = -4,4 do + local pos1 = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz} + local n = minetest.get_node(pos1).name + if n and string.match(n,"mycelium") then -- if the name contains "mycelium" then exit + flag = flag+1 + end + end + end + end + if flag > spread then + for dx = -4,4 do + for dy = -4,1 do + for dz = -4,4 do + local pos2 = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz} + local k = minetest.get_node(pos2).name + if k and string.match(k,"mycelium") then + minetest.set_node({x = pos2.x, y = pos2.y, z = pos2.z}, {name = "nsspf:"..name.."_fungusdirt"}) + minetest.get_node_timer(pos2):start(300) + end + end + end + end + end + end + }) + +end + + +nsspf_register_mycorrhizalmycelium ('amanita_muscaria','Amanita muscaria Mycelium', "default:pine_tree", 10, 10, 8) +nsspf_register_mycorrhizalmycelium ('amanita_phalloides','Amanita phalloides Mycelium', "default:pine_tree", 16, 12, 8) +nsspf_register_mycorrhizalmycelium ('boletus_edulis','Boletus edulis Mycelium', "default:tree", 10, 10, 8) +nsspf_register_mycorrhizalmycelium ('boletus_satanas','Boletus satanas Mycelium', "default:tree", 12, 12, 8) +nsspf_register_mycorrhizalmycelium ('boletus_pinophilus','Boletus pinophilus Mycelium', "default:pine_tree", 12, 12, 8) +nsspf_register_mycorrhizalmycelium ('suillus_grevillei','Suillus grevillei Mycelium','default:pine_tree', 8, 8, 12) +nsspf_register_mycorrhizalmycelium ('russula_xerampelina','Russula xerampelina Mycelium', "default:pine_tree", 9, 9, 12) +nsspf_register_mycorrhizalmycelium ('cantharellus_cibarius','Cantherellus cibarius Mycelium', "default:pine_tree", 8, 8, 14) +nsspf_register_mycorrhizalmycelium ('morchella_conica','Morchella conica Mycelium', "default:aspen_tree", 10, 10, 8) + + +--tuber +function nsspf_register_tuber (name, descr, tree, int, ch, gnam, spread) + + minetest.register_node("nsspf:"..name.."_tuber_mycelium", { + description = descr, + tiles = {"tuber_mycelium.png"}, + groups = {crumbly = 2, not_in_creative_inventory =1}, + }) + + minetest.register_abm({ + nodenames = {"default:dirt"}, + neighbors = {tree}, + interval = 30*int, + chance = 300*ch, + action = function(pos, node) + local flag = 0 + for dx = -2,2 do + for dy = -2,1 do + for dz = -2,2 do + local pos1 = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz} + local n = minetest.get_node(pos1).name + if n and string.match(n,"mycelium") then -- if the name contains "mycelium" then exit + flag = 1 + return + end + end + end + end + minetest.set_node({x = pos.x, y = pos.y, z = pos.z}, {name = "nsspf:"..name.."_tuber_mycelium"}) + end + }) + + minetest.register_abm({ + nodenames = {"nsspf:"..name.."_tuber_mycelium"}, + neighbors = {"air","default:water_source"}, + interval = 1, + chance = 1, + action = + function(pos, node) + minetest.set_node(pos, {name="nsspf:"..name.."_fungusdirt"}) + minetest.get_node_timer(pos):start(300) + end + }) + + minetest.register_node("nsspf:"..name.."_fruit", { + description = descr.." Truffle", + tiles = {"default_dirt.png"}, + drop = "nsspf:"..name, + groups = {crumbly = 3, not_in_creative_inventory =1}, + }) + + minetest.register_abm({ + nodenames = {"default:dirt"}, + neighbors = {"nsspf:"..name.."_tuber_mycelium"}, + interval = 12*int, + chance = 6*ch, + action = function(pos, node) + minetest.set_node({x = pos.x, y = pos.y, z = pos.z}, {name = "nsspf:"..name.."_tuber_mycelium"}) + end + }) + + minetest.register_craftitem("nsspf:"..name, { + description = descr, + on_use = minetest.item_eat(gnam), + image = name..".png", + }) + + minetest.register_craftitem("nsspf:"..name.."_spores", { + description = descr.." Spores", + image = "spores.png", + on_place = function(itemstack, placer, pointed_thing) + return place_spore(itemstack, placer, pointed_thing, "nsspf:"..name.."_tuber_mycelium",tree, "default:dirt") + end, + }) + + minetest.register_abm({ + nodenames = {"default:dirt"}, + neighbors = {"nsspf:"..name.."_tuber_mycelium"}, + interval = 12*int, + chance = 8*ch, + action = function(pos, node) + minetest.set_node({x = pos.x, y = pos.y, z = pos.z}, {name = "nsspf:"..name.."_fruit"}) + end + }) + + minetest.register_abm({ + nodenames = {"nsspf:"..name.."_tuber_mycelium"}, + neighbors = {"nsspf:"..name.."_tuber_mycelium"}, + interval = 10, + chance = 1, + action = function(pos, node) + local flag = 0 + for dx = -4,4 do + for dy = -4,1 do + for dz = -4,4 do + local pos1 = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz} + local n = minetest.get_node(pos1).name + if n and string.match(n,"mycelium") then -- if the name contains "mycelium" then exit + flag = flag+1 + end + end + end + end + if flag > spread then + for dx = -4,4 do + for dy = -4,1 do + for dz = -4,4 do + local pos2 = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz} + local k = minetest.get_node(pos2).name + if k and string.match(k,"mycelium") then + minetest.set_node({x = pos2.x, y = pos2.y, z = pos2.z}, {name = "nsspf:"..name.."_fungusdirt"}) + minetest.get_node_timer(pos2):start(300) + end + end + end + end + end + end + }) + + +end + +nsspf_register_tuber ("tuber_magnatum_pico","Tuber magnatum pico","default:tree", 14, 14, 20, 20) +nsspf_register_tuber ("tuber_melanosporum","Tuber melanosporum","default:tree", 12, 12, 16, 20) +nsspf_register_tuber ("tuber_borchii","Tuber borchii","default:aspen_tree", 10, 10, 12, 20) +nsspf_register_tuber ("terfezia_arenaria","Terfezia arenaria","default:acacia_tree", 11, 11, 12, 20) + +function nssbf_register_saprotrophicontrees (name, descr, tree, int, ch) + +minetest.register_abm({ + nodenames = {tree}, + neighbors = {"air"}, + interval = 20*int, + chance = 40*ch, + action = function(pos, node) + local pos1 = {x=pos.x, y=pos.y, z=pos.z-1} + local n = minetest.get_node(pos1).name + if n == 'air' then + minetest.set_node({x = pos.x, y = pos.y, z = pos.z-1}, {name = "nsspf:"..name}) + minetest.get_node_timer(pos):start(300) + end + end +}) + + +end + +nssbf_register_saprotrophicontrees ('armillaria_mellea', 'Armillaria mellea', 'default:tree', 16, 24) +nssbf_register_saprotrophicontrees ('panellus_pusillus', 'Panellus pusillus', 'default:tree', 23, 37) +nssbf_register_saprotrophicontrees ('fomes_fomentarius', 'Fomes fomentarius', 'default:aspen_tree', 13, 18) +nssbf_register_saprotrophicontrees ('fistulina_hepatica', 'Fistulina hepatica', 'default:pine_tree', 16, 24) +nssbf_register_saprotrophicontrees ('mycena_chlorophos', 'Mycena clorophos', 'default:dirt', 30, 43) +nssbf_register_saprotrophicontrees ('clitocybula_azurea', 'Clitocybula azurea', 'default:jungletree', 12, 28) +nssbf_register_saprotrophicontrees ('ganoderma_lucidum', 'Ganoderma lucidum', 'default:jungletree', 14, 28) + + +local OPEN_TIME_START = 0.2 +local OPEN_TIME_END = 0.8 +local OPEN_CHECK = 10 + +set_fluo = function (pos) + if (minetest.get_node_light(pos, nil) < 10) and ((minetest.get_timeofday() < 19500) or (minetest.get_timeofday() > 5000)) then + minetest.add_node(pos, { name = "nsspf:mycena_chlorophos_light" }) + else + minetest.add_node(pos, { name = "nsspf:mycena_chlorophos" }) + 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.get_node_light(pos, nil) < 10) and ((minetest.get_timeofday() < 19500) or (minetest.get_timeofday() > 5000)) then + minetest.env:add_node(pos, { name = "nsspf:panellus_pusillus_light" }) + else + minetest.env:add_node(pos, { name = "nsspf:panellus_pusillus" }) + end +end + +minetest.register_abm({ + nodenames = { "nsspf:panellus_pusillus", "nsspf:panellus_pusillus_light" }, + interval = OPEN_CHECK, + chance = 1, + + action = function(pos, node, active_object_count, active_object_count_wider) + set_fluor(pos) + end +}) + + +--Saprotrophic fungi that grow on the ground + +function nsspf_register_saprotrophicground (name, descr, int, ch, spread) + + minetest.register_node("nsspf:"..name.."_mycelium", { + description = descr, + tiles = {"saprotrophic_mycelium.png"}, + groups = {crumbly = 2, not_in_creative_inventory =1}, + }) + + minetest.register_craftitem("nsspf:"..name.."_spores", { + description = descr.." Spores", + image = "spores.png", + on_place = function(itemstack, placer, pointed_thing) + return place_spore(itemstack, placer, pointed_thing, "nsspf:"..name.."_mycelium","default:dirt_with_grass", "default:dirt") + end, + }) + + minetest.register_abm({ + nodenames = {"nsspf:"..name.."_mycelium"}, + neighbors = {"default:dirt_with_grass"}, + interval = 3*int, + chance = 1*ch, + 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" or n=="group:flora") and nn== "default:dirt_with_grass" then + minetest.set_node(pos1, {name = "nsspf:"..name}) + minetest.get_node_timer(pos1):start(300) + end + end + }) + + minetest.register_abm({ + nodenames = {"default:dirt"}, + neighbors = {"nsspf:"..name.."_mycelium"}, + interval = 6*int, + chance = 7+ch, + 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_with_grass"}, + neighbors = {"air"}, + interval = 18*int, + chance = 4500*ch, + action = function(pos, node) + local pos3 = {x=pos.x, y=pos.y-1, z=pos.z} + local n = minetest.get_node(pos3).name + if n== "default:dirt" then + minetest.set_node(pos3, {name = "nsspf:"..name.."_mycelium"}) + end + end + }) + + minetest.register_abm({ + nodenames = {"nsspf:"..name.."_mycelium"}, + neighbors = {"air","default:water_source"}, + interval = 1, + chance = 1, + action = function(pos, node) + minetest.set_node(pos, {name="nsspf:"..name.."_fungusdirt"}) + minetest.get_node_timer(pos):start(300) + end + }) + + minetest.register_abm({ + nodenames = {"nsspf:"..name.."_mycelium"}, + neighbors = {"nsspf:"..name.."_mycelium"}, + interval = 10, + chance = 1, + action = function(pos, node) + local flag = 0 + for dx = -4,4 do + for dy = -4,1 do + for dz = -4,4 do + local pos1 = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz} + local n = minetest.get_node(pos1).name + if n and string.match(n,"mycelium") then -- if the name contains "mycelium" then exit + flag = flag+1 + end + end + end + end + if flag > spread then + for dx = -4,4 do + for dy = -4,1 do + for dz = -4,4 do + local pos2 = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz} + local k = minetest.get_node(pos2).name + if k and string.match(k,"mycelium") then + minetest.set_node({x = pos2.x, y = pos2.y, z = pos2.z}, {name = "nsspf:"..name.."_fungusdirt"}) + minetest.get_node_timer(pos2):start(300) + end + end + end + end + end + end + }) +end + +nsspf_register_saprotrophicground ('macrolepiota_procera','Macrolepiota procera', 10, 12, 10) +nsspf_register_saprotrophicground ('coprinus_atramentarius','Coprinus atramentarius', 16, 16, 6) +nsspf_register_saprotrophicground ('lycoperdon_pyriforme','Lycoperdon piriforme',10, 10, 8) +nsspf_register_saprotrophicground ('psilocybe_cubensis','Psilocybe cubensis', 20, 16, 12) +nsspf_register_saprotrophicground ('gyromitra_esculenta','Gyromitra esculenta', 12, 14, 8) + +--jungle fungi + +minetest.register_abm({ + nodenames = {"default:jungletree"}, + neighbors = {"air"}, + interval = 180.0, + chance = 600, + action = function(pos, node) + local pos1 = {x=pos.x, y=pos.y+1, z=pos.z} + local n = minetest.env:get_node(pos1).name + if n == 'air' then + minetest.set_node({x = pos.x, y = pos.y+1, z = pos.z}, {name = "nsspf:marasmius_haematocephalus"}) + minetest.get_node_timer(pos):start(300) + end + end +}) + + +minetest.register_abm({ + nodenames = {"default:jungletree"}, + neighbors = {"air"}, + interval = 180.0, + chance = 450, + action = function(pos, node) + local pos1 = {x=pos.x, y=pos.y+1, z=pos.z} + local n = minetest.env:get_node(pos1).name + if n == 'air' then + minetest.set_node({x = pos.x, y = pos.y+1, z = pos.z}, {name = "nsspf:lentinus_strigosus"}) + minetest.get_node_timer(pos):start(300) + end + end +}) + +--snowbank fungi + +function nsspf_register_snowbankfungi (name, descr, int, ch, spread) + + 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"}) + minetest.get_node_timer(pos):start(300) + end + }) + + minetest.register_node("nsspf:"..name.."_mycelium", { + description = descr, + tiles = {"snowbank_mycelium.png"}, + groups = {crumbly = 2, not_in_creative_inventory =1}, + }) + + minetest.register_craftitem("nsspf:"..name.."_spores", { + description = descr.." Spores", + image = "spores.png", + on_place = function(itemstack, placer, pointed_thing) + return place_spore(itemstack, placer, pointed_thing, "nsspf:"..name.."_mycelium","default:dirt_with_snow", "default:dirt") + end, + }) + + minetest.register_abm({ + nodenames = {"nsspf:"..name.."_mycelium"}, + neighbors = {"default:dirt_with_snow"}, + interval = 2*int, + chance = 3*ch, + 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" or n== "default:snow") and nn== "default:dirt_with_snow" then + minetest.set_node(pos1, {name = "nsspf:"..name}) + minetest.get_node_timer(pos1):start(300) + end + end + }) + + minetest.register_abm({ + nodenames = {"default:dirt_with_snow"}, + neighbors = {"air", "default:snow"}, + interval = 18*int, + chance = 5500*ch, + action = function(pos, node) + local pos3 = {x=pos.x, y=pos.y-1, z=pos.z} + local n = minetest.get_node(pos3).name + if n== "default:dirt" then + minetest.set_node(pos3, {name = "nsspf:"..name.."_mycelium"}) + end + end + }) + + minetest.register_abm({ + nodenames = {"default:dirt"}, + neighbors = {"nsspf:"..name.."_mycelium"}, + interval = 12*int, + chance = 10*ch, + 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 = {"nsspf:"..name.."_mycelium"}, + neighbors = {"nsspf:"..name.."_mycelium"}, + interval = 10, + chance = 1, + action = function(pos, node) + local flag = 0 + for dx = -4,4 do + for dy = -4,1 do + for dz = -4,4 do + local pos1 = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz} + local n = minetest.get_node(pos1).name + if n and string.match(n,"mycelium") then -- if the name contains "mycelium" then exit + flag = flag+1 + end + end + end + end + if flag > spread then + for dx = -4,4 do + for dy = -4,1 do + for dz = -4,4 do + local pos2 = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz} + local k = minetest.get_node(pos2).name + if k and string.match(k,"mycelium") then + minetest.set_node({x = pos2.x, y = pos2.y, z = pos2.z}, {name = "nsspf:"..name.."_fungusdirt"}) + minetest.get_node_timer(pos2):start(300) + end + end + end + end + end + end + }) + +end + +nsspf_register_snowbankfungi ('plectania_nannfeldtii','Plectania nannfeldtii', 18, 10, 8) +nsspf_register_snowbankfungi ('hygrophorus_goetzii','Hygrophorus goetzii', 16, 10, 6) +nsspf_register_snowbankfungi ('clitocybe_glacialis','Clitocybe glacialis', 15, 10, 6) + + minetest.register_abm({ + nodenames = {"flowers:mushroom_red"}, + interval = 1, + chance = 1, + action = function(pos, node) + minetest.set_node({x = pos.x, y = pos.y, z = pos.z}, {name = "air"}) + end + }) + + minetest.register_abm({ + nodenames = {"flowers:mushroom_brown"}, + interval = 1, + chance = 1, + action = function(pos, node) + minetest.set_node({x = pos.x, y = pos.y, z = pos.z}, {name = "air"}) + end + }) diff --git a/mods/nsspf/textures/amadou.png b/mods/nsspf/textures/amadou.png new file mode 100644 index 0000000..29a28c8 Binary files /dev/null and b/mods/nsspf/textures/amadou.png differ diff --git a/mods/nsspf/textures/amanita_muscaria.png b/mods/nsspf/textures/amanita_muscaria.png new file mode 100644 index 0000000..954dbc8 Binary files /dev/null and b/mods/nsspf/textures/amanita_muscaria.png differ diff --git a/mods/nsspf/textures/amanita_phalloides.png b/mods/nsspf/textures/amanita_phalloides.png new file mode 100644 index 0000000..64290b2 Binary files /dev/null and b/mods/nsspf/textures/amanita_phalloides.png differ diff --git a/mods/nsspf/textures/armillaria_mellea.png b/mods/nsspf/textures/armillaria_mellea.png new file mode 100644 index 0000000..49320a3 Binary files /dev/null and b/mods/nsspf/textures/armillaria_mellea.png differ diff --git a/mods/nsspf/textures/boletus_edulis.png b/mods/nsspf/textures/boletus_edulis.png new file mode 100644 index 0000000..df5539e Binary files /dev/null and b/mods/nsspf/textures/boletus_edulis.png differ diff --git a/mods/nsspf/textures/boletus_pinophilus.png b/mods/nsspf/textures/boletus_pinophilus.png new file mode 100644 index 0000000..1aa72fe Binary files /dev/null and b/mods/nsspf/textures/boletus_pinophilus.png differ diff --git a/mods/nsspf/textures/boletus_satanas.png b/mods/nsspf/textures/boletus_satanas.png new file mode 100644 index 0000000..78673c9 Binary files /dev/null and b/mods/nsspf/textures/boletus_satanas.png differ diff --git a/mods/nsspf/textures/cantharellus_cibarius.png b/mods/nsspf/textures/cantharellus_cibarius.png new file mode 100644 index 0000000..109ac9f Binary files /dev/null and b/mods/nsspf/textures/cantharellus_cibarius.png differ diff --git a/mods/nsspf/textures/clitocybe_glacialis.png b/mods/nsspf/textures/clitocybe_glacialis.png new file mode 100644 index 0000000..45ed3a6 Binary files /dev/null and b/mods/nsspf/textures/clitocybe_glacialis.png differ diff --git a/mods/nsspf/textures/clitocybula_azurea.png b/mods/nsspf/textures/clitocybula_azurea.png new file mode 100644 index 0000000..9ca8b6f Binary files /dev/null and b/mods/nsspf/textures/clitocybula_azurea.png differ diff --git a/mods/nsspf/textures/cooked_amanita_muscaria.png b/mods/nsspf/textures/cooked_amanita_muscaria.png new file mode 100644 index 0000000..8fc2011 Binary files /dev/null and b/mods/nsspf/textures/cooked_amanita_muscaria.png differ diff --git a/mods/nsspf/textures/cooked_amanita_phalloides.png b/mods/nsspf/textures/cooked_amanita_phalloides.png new file mode 100644 index 0000000..21bde88 Binary files /dev/null and b/mods/nsspf/textures/cooked_amanita_phalloides.png differ diff --git a/mods/nsspf/textures/cooked_armillaria_mellea.png b/mods/nsspf/textures/cooked_armillaria_mellea.png new file mode 100644 index 0000000..46ff97b Binary files /dev/null and b/mods/nsspf/textures/cooked_armillaria_mellea.png differ diff --git a/mods/nsspf/textures/cooked_boletus_edulis.png b/mods/nsspf/textures/cooked_boletus_edulis.png new file mode 100644 index 0000000..2045954 Binary files /dev/null and b/mods/nsspf/textures/cooked_boletus_edulis.png differ diff --git a/mods/nsspf/textures/cooked_boletus_pinophilus.png b/mods/nsspf/textures/cooked_boletus_pinophilus.png new file mode 100644 index 0000000..fdfe987 Binary files /dev/null and b/mods/nsspf/textures/cooked_boletus_pinophilus.png differ diff --git a/mods/nsspf/textures/cooked_boletus_satanas.png b/mods/nsspf/textures/cooked_boletus_satanas.png new file mode 100644 index 0000000..f36412b Binary files /dev/null and b/mods/nsspf/textures/cooked_boletus_satanas.png differ diff --git a/mods/nsspf/textures/cooked_cantharellus_cibarius.png b/mods/nsspf/textures/cooked_cantharellus_cibarius.png new file mode 100644 index 0000000..e6ce902 Binary files /dev/null and b/mods/nsspf/textures/cooked_cantharellus_cibarius.png differ diff --git a/mods/nsspf/textures/cooked_clitocybe_glacialis.png b/mods/nsspf/textures/cooked_clitocybe_glacialis.png new file mode 100644 index 0000000..0dd035a Binary files /dev/null and b/mods/nsspf/textures/cooked_clitocybe_glacialis.png differ diff --git a/mods/nsspf/textures/cooked_clitocybula_azurea.png b/mods/nsspf/textures/cooked_clitocybula_azurea.png new file mode 100644 index 0000000..942c284 Binary files /dev/null and b/mods/nsspf/textures/cooked_clitocybula_azurea.png differ diff --git a/mods/nsspf/textures/cooked_coprinus_atramentarius.png b/mods/nsspf/textures/cooked_coprinus_atramentarius.png new file mode 100644 index 0000000..f185b01 Binary files /dev/null and b/mods/nsspf/textures/cooked_coprinus_atramentarius.png differ diff --git a/mods/nsspf/textures/cooked_fistulina_hepatica.png b/mods/nsspf/textures/cooked_fistulina_hepatica.png new file mode 100644 index 0000000..c6e480d Binary files /dev/null and b/mods/nsspf/textures/cooked_fistulina_hepatica.png differ diff --git a/mods/nsspf/textures/cooked_ganoderma_lucidum.png b/mods/nsspf/textures/cooked_ganoderma_lucidum.png new file mode 100644 index 0000000..0c5446f Binary files /dev/null and b/mods/nsspf/textures/cooked_ganoderma_lucidum.png differ diff --git a/mods/nsspf/textures/cooked_gyromitra_esculenta.png b/mods/nsspf/textures/cooked_gyromitra_esculenta.png new file mode 100644 index 0000000..ac53059 Binary files /dev/null and b/mods/nsspf/textures/cooked_gyromitra_esculenta.png differ diff --git a/mods/nsspf/textures/cooked_hygrophorus_goetzii.png b/mods/nsspf/textures/cooked_hygrophorus_goetzii.png new file mode 100644 index 0000000..7b26096 Binary files /dev/null and b/mods/nsspf/textures/cooked_hygrophorus_goetzii.png differ diff --git a/mods/nsspf/textures/cooked_lentinus_strigosus.png b/mods/nsspf/textures/cooked_lentinus_strigosus.png new file mode 100644 index 0000000..0910dbf Binary files /dev/null and b/mods/nsspf/textures/cooked_lentinus_strigosus.png differ diff --git a/mods/nsspf/textures/cooked_lycoperdon_pyriforme.png b/mods/nsspf/textures/cooked_lycoperdon_pyriforme.png new file mode 100644 index 0000000..6f8bcbc Binary files /dev/null and b/mods/nsspf/textures/cooked_lycoperdon_pyriforme.png differ diff --git a/mods/nsspf/textures/cooked_macrolepiota_procera.png b/mods/nsspf/textures/cooked_macrolepiota_procera.png new file mode 100644 index 0000000..be4b849 Binary files /dev/null and b/mods/nsspf/textures/cooked_macrolepiota_procera.png differ diff --git a/mods/nsspf/textures/cooked_marasmius_haematocephalus.png b/mods/nsspf/textures/cooked_marasmius_haematocephalus.png new file mode 100644 index 0000000..a79b21f Binary files /dev/null and b/mods/nsspf/textures/cooked_marasmius_haematocephalus.png differ diff --git a/mods/nsspf/textures/cooked_morchella_conica.png b/mods/nsspf/textures/cooked_morchella_conica.png new file mode 100644 index 0000000..0a39f6b Binary files /dev/null and b/mods/nsspf/textures/cooked_morchella_conica.png differ diff --git a/mods/nsspf/textures/cooked_mycena_chlorophos.png b/mods/nsspf/textures/cooked_mycena_chlorophos.png new file mode 100644 index 0000000..ba033e5 Binary files /dev/null and b/mods/nsspf/textures/cooked_mycena_chlorophos.png differ diff --git a/mods/nsspf/textures/cooked_panellus_pusillus.png b/mods/nsspf/textures/cooked_panellus_pusillus.png new file mode 100644 index 0000000..06f64da Binary files /dev/null and b/mods/nsspf/textures/cooked_panellus_pusillus.png differ diff --git a/mods/nsspf/textures/cooked_plectania_nannfeldtii.png b/mods/nsspf/textures/cooked_plectania_nannfeldtii.png new file mode 100644 index 0000000..32cb6e9 Binary files /dev/null and b/mods/nsspf/textures/cooked_plectania_nannfeldtii.png differ diff --git a/mods/nsspf/textures/cooked_psilocybe_cubensis.png b/mods/nsspf/textures/cooked_psilocybe_cubensis.png new file mode 100644 index 0000000..dceb0dc Binary files /dev/null and b/mods/nsspf/textures/cooked_psilocybe_cubensis.png differ diff --git a/mods/nsspf/textures/cooked_russula_xerampelina.png b/mods/nsspf/textures/cooked_russula_xerampelina.png new file mode 100644 index 0000000..afbc380 Binary files /dev/null and b/mods/nsspf/textures/cooked_russula_xerampelina.png differ diff --git a/mods/nsspf/textures/cooked_suillus_grevillei.png b/mods/nsspf/textures/cooked_suillus_grevillei.png new file mode 100644 index 0000000..7311c2e Binary files /dev/null and b/mods/nsspf/textures/cooked_suillus_grevillei.png differ diff --git a/mods/nsspf/textures/coprinus_atramentarius.png b/mods/nsspf/textures/coprinus_atramentarius.png new file mode 100644 index 0000000..14fc7f4 Binary files /dev/null and b/mods/nsspf/textures/coprinus_atramentarius.png differ diff --git a/mods/nsspf/textures/fistulina_hepatica.png b/mods/nsspf/textures/fistulina_hepatica.png new file mode 100644 index 0000000..76f7831 Binary files /dev/null and b/mods/nsspf/textures/fistulina_hepatica.png differ diff --git a/mods/nsspf/textures/fomes_fomentarius.png b/mods/nsspf/textures/fomes_fomentarius.png new file mode 100644 index 0000000..2417f1c Binary files /dev/null and b/mods/nsspf/textures/fomes_fomentarius.png differ diff --git a/mods/nsspf/textures/fungusdirt.png b/mods/nsspf/textures/fungusdirt.png new file mode 100644 index 0000000..30aa098 Binary files /dev/null and b/mods/nsspf/textures/fungusdirt.png differ diff --git a/mods/nsspf/textures/ganoderma_lucidum.png b/mods/nsspf/textures/ganoderma_lucidum.png new file mode 100644 index 0000000..d2adeba Binary files /dev/null and b/mods/nsspf/textures/ganoderma_lucidum.png differ diff --git a/mods/nsspf/textures/gyromitra_esculenta.png b/mods/nsspf/textures/gyromitra_esculenta.png new file mode 100644 index 0000000..313061b Binary files /dev/null and b/mods/nsspf/textures/gyromitra_esculenta.png differ diff --git a/mods/nsspf/textures/hygrophorus_goetzii.png b/mods/nsspf/textures/hygrophorus_goetzii.png new file mode 100644 index 0000000..e0b486b Binary files /dev/null and b/mods/nsspf/textures/hygrophorus_goetzii.png differ diff --git a/mods/nsspf/textures/lasting_amadou.png b/mods/nsspf/textures/lasting_amadou.png new file mode 100644 index 0000000..6f97d44 Binary files /dev/null and b/mods/nsspf/textures/lasting_amadou.png differ diff --git a/mods/nsspf/textures/lentinus_strigosus.png b/mods/nsspf/textures/lentinus_strigosus.png new file mode 100644 index 0000000..dfb6448 Binary files /dev/null and b/mods/nsspf/textures/lentinus_strigosus.png differ diff --git a/mods/nsspf/textures/long_lasting_amadou.png b/mods/nsspf/textures/long_lasting_amadou.png new file mode 100644 index 0000000..7d63a5b Binary files /dev/null and b/mods/nsspf/textures/long_lasting_amadou.png differ diff --git a/mods/nsspf/textures/lycoperdon_pyriforme.png b/mods/nsspf/textures/lycoperdon_pyriforme.png new file mode 100644 index 0000000..6a0b9fc Binary files /dev/null and b/mods/nsspf/textures/lycoperdon_pyriforme.png differ diff --git a/mods/nsspf/textures/macrolepiota_procera.png b/mods/nsspf/textures/macrolepiota_procera.png new file mode 100644 index 0000000..669775c Binary files /dev/null and b/mods/nsspf/textures/macrolepiota_procera.png differ diff --git a/mods/nsspf/textures/marasmius_haematocephalus.png b/mods/nsspf/textures/marasmius_haematocephalus.png new file mode 100644 index 0000000..cecda33 Binary files /dev/null and b/mods/nsspf/textures/marasmius_haematocephalus.png differ diff --git a/mods/nsspf/textures/morchella_conica.png b/mods/nsspf/textures/morchella_conica.png new file mode 100644 index 0000000..4061b59 Binary files /dev/null and b/mods/nsspf/textures/morchella_conica.png differ diff --git a/mods/nsspf/textures/mycena_chlorophos.png b/mods/nsspf/textures/mycena_chlorophos.png new file mode 100644 index 0000000..b1d0b0d Binary files /dev/null and b/mods/nsspf/textures/mycena_chlorophos.png differ diff --git a/mods/nsspf/textures/mycena_chlorophos_light.png b/mods/nsspf/textures/mycena_chlorophos_light.png new file mode 100644 index 0000000..40502ec Binary files /dev/null and b/mods/nsspf/textures/mycena_chlorophos_light.png differ diff --git a/mods/nsspf/textures/mycorrhizalmycelium.png b/mods/nsspf/textures/mycorrhizalmycelium.png new file mode 100644 index 0000000..2d51920 Binary files /dev/null and b/mods/nsspf/textures/mycorrhizalmycelium.png differ diff --git a/mods/nsspf/textures/panellus_pusillus.png b/mods/nsspf/textures/panellus_pusillus.png new file mode 100644 index 0000000..80aeef9 Binary files /dev/null and b/mods/nsspf/textures/panellus_pusillus.png differ diff --git a/mods/nsspf/textures/panellus_pusillus_light.png b/mods/nsspf/textures/panellus_pusillus_light.png new file mode 100644 index 0000000..495b0ae Binary files /dev/null and b/mods/nsspf/textures/panellus_pusillus_light.png differ diff --git a/mods/nsspf/textures/plectania_nannfeldtii.png b/mods/nsspf/textures/plectania_nannfeldtii.png new file mode 100644 index 0000000..0c6d347 Binary files /dev/null and b/mods/nsspf/textures/plectania_nannfeldtii.png differ diff --git a/mods/nsspf/textures/psilocybe_cubensis.png b/mods/nsspf/textures/psilocybe_cubensis.png new file mode 100644 index 0000000..6ad3200 Binary files /dev/null and b/mods/nsspf/textures/psilocybe_cubensis.png differ diff --git a/mods/nsspf/textures/russula_xerampelina.png b/mods/nsspf/textures/russula_xerampelina.png new file mode 100644 index 0000000..35da8c5 Binary files /dev/null and b/mods/nsspf/textures/russula_xerampelina.png differ diff --git a/mods/nsspf/textures/saprotrophic_mycelium.png b/mods/nsspf/textures/saprotrophic_mycelium.png new file mode 100644 index 0000000..8376c4e Binary files /dev/null and b/mods/nsspf/textures/saprotrophic_mycelium.png differ diff --git a/mods/nsspf/textures/snowbank_mycelium.png b/mods/nsspf/textures/snowbank_mycelium.png new file mode 100644 index 0000000..d11a126 Binary files /dev/null and b/mods/nsspf/textures/snowbank_mycelium.png differ diff --git a/mods/nsspf/textures/spores.png b/mods/nsspf/textures/spores.png new file mode 100644 index 0000000..b51dce6 Binary files /dev/null and b/mods/nsspf/textures/spores.png differ diff --git a/mods/nsspf/textures/suillus_grevillei.png b/mods/nsspf/textures/suillus_grevillei.png new file mode 100644 index 0000000..9afaafd Binary files /dev/null and b/mods/nsspf/textures/suillus_grevillei.png differ diff --git a/mods/nsspf/textures/terfezia_arenaria.png b/mods/nsspf/textures/terfezia_arenaria.png new file mode 100644 index 0000000..e8ef3f9 Binary files /dev/null and b/mods/nsspf/textures/terfezia_arenaria.png differ diff --git a/mods/nsspf/textures/tuber_borchii.png b/mods/nsspf/textures/tuber_borchii.png new file mode 100644 index 0000000..78c8c71 Binary files /dev/null and b/mods/nsspf/textures/tuber_borchii.png differ diff --git a/mods/nsspf/textures/tuber_magnatum_pico.png b/mods/nsspf/textures/tuber_magnatum_pico.png new file mode 100644 index 0000000..faa3ad0 Binary files /dev/null and b/mods/nsspf/textures/tuber_magnatum_pico.png differ diff --git a/mods/nsspf/textures/tuber_melanosporum.png b/mods/nsspf/textures/tuber_melanosporum.png new file mode 100644 index 0000000..d8458d1 Binary files /dev/null and b/mods/nsspf/textures/tuber_melanosporum.png differ diff --git a/mods/nsspf/textures/tuber_mycelium.png b/mods/nsspf/textures/tuber_mycelium.png new file mode 100644 index 0000000..ffac87c Binary files /dev/null and b/mods/nsspf/textures/tuber_mycelium.png differ