This mod has been mostly obsoleted by 0.4.13's mushrooms
so simplify and revise it to act as a "3d-ify" mod for them. Unidenfied spores aliased to the regular default equivalents poison and essence aliased back to their originating mushrooms identifier aliased to mese crystal (most expensive component of it) everything else aliased to their default counterparts spores are not dropped from digging dirt with grass anymore
							
								
								
									
										2
									
								
								3dmushrooms/depends.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,2 @@
 | 
			
		||||
default
 | 
			
		||||
flowers
 | 
			
		||||
							
								
								
									
										68
									
								
								3dmushrooms/init.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,68 @@
 | 
			
		||||
 | 
			
		||||
-- 3D Mushroom mod by VanessaE
 | 
			
		||||
--
 | 
			
		||||
-- License:  WTFPL for everything.
 | 
			
		||||
 | 
			
		||||
mushroom = {}
 | 
			
		||||
 | 
			
		||||
minetest.override_item("flowers:mushroom_fertile_brown", {
 | 
			
		||||
	drawtype = "mesh",
 | 
			
		||||
	mesh = "3dmushrooms.obj",
 | 
			
		||||
	tiles = {"3dmushrooms_brown.png"},
 | 
			
		||||
	selection_box = {
 | 
			
		||||
		type = "fixed",
 | 
			
		||||
		fixed = {-0.3, -0.5, -0.3, 0.3, 0, 0.3}
 | 
			
		||||
	},
 | 
			
		||||
	inventory_image = "3dmushrooms_brown_inv.png"
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.override_item("flowers:mushroom_brown", {
 | 
			
		||||
	drawtype = "mesh",
 | 
			
		||||
	mesh = "3dmushrooms.obj",
 | 
			
		||||
	tiles = {"3dmushrooms_brown.png"},
 | 
			
		||||
	selection_box = {
 | 
			
		||||
		type = "fixed",
 | 
			
		||||
		fixed = {-0.3, -0.5, -0.3, 0.3, 0, 0.3}
 | 
			
		||||
	},
 | 
			
		||||
	inventory_image = "3dmushrooms_brown_inv.png"
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.override_item("flowers:mushroom_fertile_red", {
 | 
			
		||||
	drawtype = "mesh",
 | 
			
		||||
	mesh = "3dmushrooms.obj",
 | 
			
		||||
	tiles = {"3dmushrooms_red.png"},
 | 
			
		||||
	selection_box = {
 | 
			
		||||
		type = "fixed",
 | 
			
		||||
		fixed = {-0.3, -0.5, -0.3, 0.3, 0, 0.3}
 | 
			
		||||
	},
 | 
			
		||||
	inventory_image = "3dmushrooms_red_inv.png"
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.override_item("flowers:mushroom_red", {
 | 
			
		||||
	drawtype = "mesh",
 | 
			
		||||
	mesh = "3dmushrooms.obj",
 | 
			
		||||
	tiles = {"3dmushrooms_red.png"},
 | 
			
		||||
	selection_box = {
 | 
			
		||||
		type = "fixed",
 | 
			
		||||
		fixed = {-0.3, -0.5, -0.3, 0.3, 0, 0.3}
 | 
			
		||||
	},
 | 
			
		||||
	inventory_image = "3dmushrooms_red_inv.png"
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- aliases to the default mushrooms
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("mushroom:brown", "flowers:mushroom_brown")
 | 
			
		||||
minetest.register_alias("mushroom:brown_natural", "flowers:mushroom_fertile_brown")
 | 
			
		||||
minetest.register_alias("mushroom:spore_brown", "flowers:mushroom_spores_brown")
 | 
			
		||||
minetest.register_alias("mushroom:spore2", "flowers:mushroom_spores_brown")
 | 
			
		||||
minetest.register_alias("mushroom:brown_essence", "flowers:mushroom_brown")
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("mushroom:red", "flowers:mushroom_red")
 | 
			
		||||
minetest.register_alias("mushroom:red_natural", "flowers:mushroom_fertile_red")
 | 
			
		||||
minetest.register_alias("mushroom:spore_red", "flowers:mushroom_spores_red")
 | 
			
		||||
minetest.register_alias("mushroom:spore1", "flowers:mushroom_spores_red")
 | 
			
		||||
minetest.register_alias("mushroom:poison", "flowers:mushroom_red")
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("mushroom:identifier", "default:mese_crystal_fragment")
 | 
			
		||||
 | 
			
		||||
print("[3D Mushrooms] loaded.")
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.0 KiB  | 
| 
		 Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB  | 
| 
		 Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB  | 
| 
		 Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 5.2 KiB  | 
@@ -1,41 +0,0 @@
 | 
			
		||||
 | 
			
		||||
-- Redefine grass and dirt nodes
 | 
			
		||||
 | 
			
		||||
minetest.override_item("default:dirt", {
 | 
			
		||||
	drop = {
 | 
			
		||||
		max_items = 2,
 | 
			
		||||
		items = {
 | 
			
		||||
			{
 | 
			
		||||
				items = {"mushroom:spore1"},
 | 
			
		||||
				rarity = 40,
 | 
			
		||||
			},
 | 
			
		||||
			{
 | 
			
		||||
				items = {"mushroom:spore2"},
 | 
			
		||||
				rarity = 40,
 | 
			
		||||
			},
 | 
			
		||||
			{
 | 
			
		||||
				items = {"default:dirt"},
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.override_item("default:dirt_with_grass", {
 | 
			
		||||
	drop = {
 | 
			
		||||
		max_items = 2,
 | 
			
		||||
		items = {
 | 
			
		||||
			{
 | 
			
		||||
				items = {"mushroom:spore1"},
 | 
			
		||||
				rarity = 40,
 | 
			
		||||
			},
 | 
			
		||||
			{
 | 
			
		||||
				items = {"mushroom:spore2"},
 | 
			
		||||
				rarity = 40,
 | 
			
		||||
			},
 | 
			
		||||
			{
 | 
			
		||||
				items = {"default:dirt"},
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
@@ -1,91 +0,0 @@
 | 
			
		||||
-- craft items
 | 
			
		||||
 | 
			
		||||
minetest.register_craftitem("mushroom:spore1",{
 | 
			
		||||
	description = "Unidentified Mushroom Spore",
 | 
			
		||||
	inventory_image = "mushroom_spore.png",
 | 
			
		||||
	wield_image = "mushroom_spore.png",
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craftitem("mushroom:spore2",{
 | 
			
		||||
	description = "Unidentified Mushroom Spore",
 | 
			
		||||
	inventory_image = "mushroom_spore.png",
 | 
			
		||||
	wield_image = "mushroom_spore.png",
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craftitem("mushroom:identifier",{
 | 
			
		||||
	description = "Mushroom Spore Identifier/Spore Extractor",
 | 
			
		||||
	inventory_image = "mushroom_identifier.png",
 | 
			
		||||
	wield_image = "mushroom_identifier.png",
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craftitem("mushroom:brown_essence",{
 | 
			
		||||
	description = "Healthy Brown Mushroom Essence",
 | 
			
		||||
	inventory_image = "mushroom_essence.png",
 | 
			
		||||
	wield_image = "mushroom_essence.png",
 | 
			
		||||
	on_use = minetest.item_eat(10),
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craftitem("mushroom:poison",{
 | 
			
		||||
	description = "Red Mushroom Poison",
 | 
			
		||||
	inventory_image = "mushroom_poison.png",
 | 
			
		||||
	wield_image = "mushroom_poison.png",
 | 
			
		||||
	on_use = minetest.item_eat(-10),
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- recipes
 | 
			
		||||
 | 
			
		||||
minetest.register_craft( {
 | 
			
		||||
		output = "mushroom:identifier",
 | 
			
		||||
		recipe = { 
 | 
			
		||||
			{ "", "default:torch", "" },
 | 
			
		||||
			{ "default:steel_ingot", "default:mese_crystal_fragment", "default:steel_ingot" },
 | 
			
		||||
		}
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft( {
 | 
			
		||||
         type = "shapeless",
 | 
			
		||||
         output = "mushroom:brown_essence",
 | 
			
		||||
         recipe = { "mushroom:brown" , "vessels:glass_bottle" },
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft( {
 | 
			
		||||
         type = "shapeless",
 | 
			
		||||
         output = "mushroom:poison",
 | 
			
		||||
         recipe = { "mushroom:red" , "vessels:glass_bottle" },
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft( {
 | 
			
		||||
         type = "shapeless",
 | 
			
		||||
         output = "mushroom:spore_brown",
 | 
			
		||||
         recipe = { "mushroom:identifier" , "mushroom:spore1" },
 | 
			
		||||
         replacements = {
 | 
			
		||||
             { 'mushroom:identifier', 'mushroom:identifier' }
 | 
			
		||||
         }
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft( {
 | 
			
		||||
         type = "shapeless",
 | 
			
		||||
         output = "mushroom:spore_red",
 | 
			
		||||
         recipe = { "mushroom:identifier" , "mushroom:spore2" },
 | 
			
		||||
         replacements = {
 | 
			
		||||
             { 'mushroom:identifier', 'mushroom:identifier' }
 | 
			
		||||
         }
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft( {
 | 
			
		||||
         type = "shapeless",
 | 
			
		||||
         output = "mushroom:spore_red 2",
 | 
			
		||||
         recipe = { "mushroom:identifier" , "mushroom:red" },
 | 
			
		||||
         replacements = {
 | 
			
		||||
             { 'mushroom:identifier', 'mushroom:identifier' }
 | 
			
		||||
         }
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft( {
 | 
			
		||||
         type = "shapeless",
 | 
			
		||||
         output = "mushroom:spore_brown 2",
 | 
			
		||||
         recipe = { "mushroom:identifier" , "mushroom:brown" },
 | 
			
		||||
         replacements = {
 | 
			
		||||
             { 'mushroom:identifier', 'mushroom:identifier' }
 | 
			
		||||
         }
 | 
			
		||||
})
 | 
			
		||||
@@ -1,3 +0,0 @@
 | 
			
		||||
default
 | 
			
		||||
vessels?
 | 
			
		||||
woodsoils?
 | 
			
		||||
@@ -1,261 +0,0 @@
 | 
			
		||||
 | 
			
		||||
-- Mushroom mod by DanDuncombe and VanessaE
 | 
			
		||||
--
 | 
			
		||||
-- License:  CC-By-SA for texures derived from Minetest defaults,
 | 
			
		||||
--           WTFPL for all code and everything else.
 | 
			
		||||
 | 
			
		||||
mushroom = {}
 | 
			
		||||
 | 
			
		||||
minetest.register_node("mushroom:brown",{
 | 
			
		||||
	description = "Brown Mushroom",
 | 
			
		||||
	drawtype = "mesh",
 | 
			
		||||
	mesh = "plantlife_mushroom.obj",
 | 
			
		||||
	tiles = {"mushroom_brown_3d.png"},
 | 
			
		||||
	sunlight_propagates = true,
 | 
			
		||||
	inventory_image = "mushroom_brown_inv.png",
 | 
			
		||||
	groups = {oddly_breakable_by_hand=3,attached_node=1},
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
	walkable = false,
 | 
			
		||||
	on_use = minetest.item_eat(5),
 | 
			
		||||
	selection_box = {
 | 
			
		||||
		type = "fixed",
 | 
			
		||||
		fixed = {-0.3, -0.5, -0.3, 0.3, 0, 0.3}
 | 
			
		||||
	},
 | 
			
		||||
	drop = "mushroom:brown",
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_node("mushroom:red",{
 | 
			
		||||
	description = "Red Mushroom",
 | 
			
		||||
	drawtype = "mesh",
 | 
			
		||||
	mesh = "plantlife_mushroom.obj",
 | 
			
		||||
	tiles = {"mushroom_red_3d.png"},
 | 
			
		||||
	sunlight_propagates = true,
 | 
			
		||||
	inventory_image = "mushroom_red_inv.png",
 | 
			
		||||
	groups = {oddly_breakable_by_hand=3,attached_node=1},
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
	walkable = false,
 | 
			
		||||
	on_use = minetest.item_eat(-5),
 | 
			
		||||
	selection_box = {
 | 
			
		||||
		type = "fixed",
 | 
			
		||||
		fixed = {-0.3, -0.5, -0.3, 0.3, 0, 0.3}
 | 
			
		||||
	},
 | 
			
		||||
	drop = "mushroom:red",
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_node("mushroom:spore_brown",{
 | 
			
		||||
	description = "Brown Mushroom Spore",
 | 
			
		||||
	drawtype = "raillike",
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
	tiles = {"mushroom_spore_brown.png"},
 | 
			
		||||
	sunlight_propagates = true,
 | 
			
		||||
	walkable = false,
 | 
			
		||||
	groups = {oddly_breakable_by_hand=3,attached_node=1},
 | 
			
		||||
	inventory_image = "mushroom_spore_brown.png",
 | 
			
		||||
	wield_image = "mushroom_spore_brown.png",
 | 
			
		||||
	selection_box = {
 | 
			
		||||
		type = "fixed",
 | 
			
		||||
		fixed = {-0.5, -0.5, -0.5, 0.5, -0.4, 0.5}
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_node("mushroom:spore_red",{
 | 
			
		||||
	description = "Red Mushroom Spore",
 | 
			
		||||
	drawtype = "raillike",
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
	tiles = {"mushroom_spore_red.png"},
 | 
			
		||||
	sunlight_propagates = true,
 | 
			
		||||
	walkable = false,
 | 
			
		||||
	groups = {oddly_breakable_by_hand=3,attached_node=1},
 | 
			
		||||
	inventory_image = "mushroom_spore_red.png",
 | 
			
		||||
	wield_image = "mushroom_spore_red.png",
 | 
			
		||||
	selection_box = {
 | 
			
		||||
		type = "fixed",
 | 
			
		||||
		fixed = {-0.5, -0.5, -0.5, 0.5, -0.4, 0.5}
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
--Natural Mushrooms
 | 
			
		||||
 | 
			
		||||
minetest.register_node("mushroom:brown_natural",{
 | 
			
		||||
	description = "Brown Mushroom (Naturally Spawned)",
 | 
			
		||||
	drawtype = "mesh",
 | 
			
		||||
	mesh = "plantlife_mushroom.obj",
 | 
			
		||||
	tiles = {"mushroom_brown_3d.png"},
 | 
			
		||||
	sunlight_propagates = true,
 | 
			
		||||
	inventory_image = "mushroom_brown_inv.png",
 | 
			
		||||
	groups = {oddly_breakable_by_hand=3, not_in_creative_inventory=1},
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
	walkable = false,
 | 
			
		||||
	selection_box = {
 | 
			
		||||
		type = "fixed",
 | 
			
		||||
		fixed = {-0.3, -0.5, -0.3, 0.3, 0, 0.3}
 | 
			
		||||
	},
 | 
			
		||||
	drop = "mushroom:brown",
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_node("mushroom:red_natural",{
 | 
			
		||||
	description = "Red Mushroom (Naturally Spawned)",
 | 
			
		||||
	drawtype = "mesh",
 | 
			
		||||
	mesh = "plantlife_mushroom.obj",
 | 
			
		||||
	tiles = {"mushroom_red_3d.png"},
 | 
			
		||||
	sunlight_propagates = true,
 | 
			
		||||
	inventory_image = "mushroom_red_inv.png",
 | 
			
		||||
	groups = {oddly_breakable_by_hand=3, not_in_creative_inventory=1},
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
	walkable = false,
 | 
			
		||||
	selection_box = {
 | 
			
		||||
		type = "fixed",
 | 
			
		||||
		fixed = {-0.3, -0.5, -0.3, 0.3, 0, 0.3}
 | 
			
		||||
	},
 | 
			
		||||
	drop = "mushroom:red",
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- Spore Growing ABMs
 | 
			
		||||
 | 
			
		||||
minetest.register_abm({
 | 
			
		||||
	nodenames = {"mushroom:spore_brown"},
 | 
			
		||||
	neighbors = {"air"},
 | 
			
		||||
	interval = 120,
 | 
			
		||||
	chance = 4,
 | 
			
		||||
	action = function(pos, node)
 | 
			
		||||
		local soil = minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z})
 | 
			
		||||
		if (soil.name == "farming:soil_wet" or string.find(soil.name, "homedecor:flower_pot_"))
 | 
			
		||||
			and minetest.get_node_light(pos, nil) < 8 then
 | 
			
		||||
	 			minetest.set_node({x=pos.x,y=pos.y,z=pos.z}, {name="mushroom:brown"})
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_abm({
 | 
			
		||||
	nodenames = {"mushroom:spore_red"},
 | 
			
		||||
	neighbors = {"air"},
 | 
			
		||||
	interval = 120,
 | 
			
		||||
	chance = 4,
 | 
			
		||||
	action = function(pos, node)
 | 
			
		||||
		local soil = minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z})
 | 
			
		||||
		if (soil.name == "farming:soil_wet" or string.find(soil.name, "homedecor:flower_pot_"))
 | 
			
		||||
			and minetest.get_node_light(pos, nil) < 8 then
 | 
			
		||||
	 			minetest.set_node({x=pos.x,y=pos.y,z=pos.z}, {name="mushroom:red"})
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- list of trees that mushrooms can grow next to
 | 
			
		||||
 | 
			
		||||
local trees_list = {
 | 
			
		||||
	"default:tree",
 | 
			
		||||
	"default:jungletree",
 | 
			
		||||
	"moretrees:apple_tree_trunk",
 | 
			
		||||
	"moretrees:beech_trunk",
 | 
			
		||||
	"moretrees:birch_trunk",
 | 
			
		||||
	"moretrees:fir_trunk",
 | 
			
		||||
	"moretrees:oak_trunk",
 | 
			
		||||
	"moretrees:pine_trunk",
 | 
			
		||||
	"moretrees:rubber_tree_trunk",
 | 
			
		||||
	"moretrees:rubber_tree_trunk_empty",
 | 
			
		||||
	"moretrees:sequoia_trunk",
 | 
			
		||||
	"moretrees:spruce_trunk",
 | 
			
		||||
	"moretrees:willow_trunk",
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
-- Natural Spawning ABM
 | 
			
		||||
 | 
			
		||||
minetest.register_abm({
 | 
			
		||||
	nodenames = {
 | 
			
		||||
		"default:dirt_with_grass",
 | 
			
		||||
		"default:dirt",
 | 
			
		||||
		"woodsoils:dirt_with_leaves_1",
 | 
			
		||||
		"woodsoils:dirt_with_leaves_2",
 | 
			
		||||
		"woodsoils:grass_with_leaves_1",
 | 
			
		||||
		"woodsoils:grass_with_leaves_2",
 | 
			
		||||
		"farming:soil_wet"
 | 
			
		||||
	},
 | 
			
		||||
	neighbors = {"air"},
 | 
			
		||||
	interval = 300,
 | 
			
		||||
	chance = 100,
 | 
			
		||||
	action = function(pos, node)
 | 
			
		||||
		local top_pos = {x=pos.x, y=pos.y+1, z=pos.z}
 | 
			
		||||
		if minetest.get_node(top_pos).name == "air" and minetest.get_node_light(top_pos, nil) < 8 
 | 
			
		||||
			and minetest.find_node_near(pos, 1, trees_list)
 | 
			
		||||
			and minetest.find_node_near(pos, 3, "default:water_source") then
 | 
			
		||||
			if math.random(0, 1) == 0 then
 | 
			
		||||
				minetest.set_node(top_pos, {name="mushroom:brown_natural"})
 | 
			
		||||
			else
 | 
			
		||||
				minetest.set_node(top_pos, {name="mushroom:red_natural"})
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_abm({
 | 
			
		||||
	nodenames = {"default:stone"},
 | 
			
		||||
	neighbors = {"air"},
 | 
			
		||||
	interval = 300,
 | 
			
		||||
	chance = 100,
 | 
			
		||||
	action = function(pos, node)
 | 
			
		||||
		local top_pos = {x=pos.x, y=pos.y+1, z=pos.z}
 | 
			
		||||
		if minetest.get_node(top_pos).name == "air" and minetest.get_node_light(top_pos, nil) < 8 
 | 
			
		||||
			and minetest.find_node_near(pos, 1, {"default:water_source"}) then
 | 
			
		||||
			if math.random(0,1) == 0 then
 | 
			
		||||
				minetest.set_node(top_pos, {name="mushroom:brown_natural"})
 | 
			
		||||
			else
 | 
			
		||||
				minetest.set_node(top_pos, {name="mushroom:red_natural"})
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- Spreading ABM
 | 
			
		||||
 | 
			
		||||
minetest.register_abm({
 | 
			
		||||
	nodenames = {
 | 
			
		||||
		"mushroom:brown_natural",
 | 
			
		||||
		"mushroom:red_natural"
 | 
			
		||||
	},
 | 
			
		||||
	neighbors = {"air"},
 | 
			
		||||
	interval = 120,
 | 
			
		||||
	chance = 100,
 | 
			
		||||
	action = function(pos, node)
 | 
			
		||||
		local soil_pos = {x=pos.x, y=pos.y-1, z=pos.z}
 | 
			
		||||
		local soil = minetest.get_node(soil_pos)
 | 
			
		||||
		local woodsoil_str = "woodsoils:.+_with_leaves_?"
 | 
			
		||||
		if minetest.get_node_light(pos, nil) < 8 
 | 
			
		||||
		  and minetest.find_node_near(pos, 1, trees_list) then
 | 
			
		||||
			local spread_x = math.random(-1, 1)
 | 
			
		||||
			local spread_z = math.random(-1, 1)
 | 
			
		||||
			local newpos = {x=pos.x+spread_x, y=pos.y, z=pos.z+spread_z}
 | 
			
		||||
			local newsoil = minetest.get_node({x=newpos.x, y=newpos.y-1, z=newpos.z})
 | 
			
		||||
			if minetest.get_node(newpos).name == "air"
 | 
			
		||||
			  and (newsoil.name == "default:dirt_with_grass"
 | 
			
		||||
			    or newsoil.name == "default:dirt"
 | 
			
		||||
			    or string.match(newsoil.name, woodsoil_str)) 
 | 
			
		||||
			  and minetest.find_node_near(newpos, 3, "default:water_source") then
 | 
			
		||||
				minetest.set_node(newpos, {name=node.name})
 | 
			
		||||
			end		
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- Dying ABM
 | 
			
		||||
 | 
			
		||||
minetest.register_abm({
 | 
			
		||||
	nodenames = {
 | 
			
		||||
		"mushroom:brown",
 | 
			
		||||
		"mushroom:red",
 | 
			
		||||
	},
 | 
			
		||||
	neighbors = {"air"},
 | 
			
		||||
	interval = 120,
 | 
			
		||||
	chance = 50,
 | 
			
		||||
	action = function(pos, node)
 | 
			
		||||
		local soil = minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z})
 | 
			
		||||
		if soil.name ~= "farming:soil_wet"
 | 
			
		||||
		  and not string.find(soil.name, "homedecor:flower_pot_") then
 | 
			
		||||
				minetest.remove_node(pos)
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
dofile(minetest.get_modpath("mushroom").."/crafting.lua")
 | 
			
		||||
dofile(minetest.get_modpath("mushroom").."/compat.lua")
 | 
			
		||||
 | 
			
		||||
print("[Mushrooms] loaded.")
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 188 B  | 
| 
		 Before Width: | Height: | Size: 123 B  | 
| 
		 Before Width: | Height: | Size: 183 B  | 
| 
		 Before Width: | Height: | Size: 92 B  | 
| 
		 Before Width: | Height: | Size: 94 B  | 
| 
		 Before Width: | Height: | Size: 92 B  |