mirror of
				https://github.com/mt-mods/plantlife_modpack.git
				synced 2025-10-30 21:35:37 +01:00 
			
		
		
		
	removed a couple of *~ files.
This commit is contained in:
		
							
								
								
									
										452
									
								
								plants/init.lua~
									
									
									
									
									
								
							
							
						
						
									
										452
									
								
								plants/init.lua~
									
									
									
									
									
								
							| @@ -1,452 +0,0 @@ | |||||||
| -- Plantlife mod by Vanessa Ezekowitz |  | ||||||
| -- 2012-11-29 |  | ||||||
| -- |  | ||||||
| -- This mod combines all of the functionality from poison ivy, |  | ||||||
| -- flowers, and jungle grass.  If you have any of these, you no |  | ||||||
| -- longer need them. |  | ||||||
| -- |  | ||||||
| -- License: |  | ||||||
| --	CC-BY-SA for most textures, except flowers |  | ||||||
| --	WTFPL for the flowers textures |  | ||||||
| --	WTFPL for all code and everything else |  | ||||||
|  |  | ||||||
|  |  | ||||||
| -- Edit these first few variables to turn the various parts on/off |  | ||||||
| -- or to tweak the overall settings. |  | ||||||
|  |  | ||||||
| local enable_flowers = true |  | ||||||
| local enable_junglegrass = true |  | ||||||
| local enable_poisonivy = true |  | ||||||
|  |  | ||||||
| local plantlife_debug = false |  | ||||||
|  |  | ||||||
| local plantlife_seed_diff = 123 |  | ||||||
| local perlin_octaves = 3 |  | ||||||
| local perlin_persistence = 0.2 |  | ||||||
| local perlin_scale = 25 |  | ||||||
|  |  | ||||||
| local plantlife_limit = 0.5 -- compared against perlin noise.  lower = more abundant |  | ||||||
|  |  | ||||||
| local spawn_delay = 2000 -- 2000 |  | ||||||
| local spawn_chance = 100 -- 100 |  | ||||||
| local grow_delay = 1000 -- 1000 |  | ||||||
| local grow_chance = 10 -- 10 |  | ||||||
|  |  | ||||||
| -- Stuff from here on down shouldn't need to be edited. |  | ||||||
|  |  | ||||||
| local loadstr = "[Plantlife] Loaded (enabled" |  | ||||||
|  |  | ||||||
| local flowers_seed_diff = plantlife_seed_diff |  | ||||||
| local junglegrass_seed_diff = plantlife_seed_diff + 10 |  | ||||||
| local poisonivy_seed_diff = plantlife_seed_diff + 10 |  | ||||||
|  |  | ||||||
| local flowers_list = { |  | ||||||
| 	{ "Rose",		"rose", 		spawn_delay,	10,	spawn_chance	, 10}, |  | ||||||
| 	{ "Tulip",		"tulip",		spawn_delay,	10,	spawn_chance	, 10}, |  | ||||||
| 	{ "Yellow Dandelion",	"dandelion_yellow",	spawn_delay,	10,	spawn_chance*2	, 10}, |  | ||||||
| 	{ "White Dandelion",	"dandelion_white",	spawn_delay,	10,	spawn_chance*2	, 10}, |  | ||||||
| 	{ "Blue Geranium",	"geranium",		spawn_delay,	10,	spawn_chance	, 10}, |  | ||||||
| 	{ "Viola",		"viola",		spawn_delay,	10,	spawn_chance	, 10}, |  | ||||||
| 	{ "Cotton Plant",	"cotton",		spawn_delay,	10,	spawn_chance*2	, 10}, |  | ||||||
| } |  | ||||||
|  |  | ||||||
| local grasses_list = { |  | ||||||
|         {"junglegrass:shortest","junglegrass:short" }, |  | ||||||
|         {"junglegrass:short"   ,"junglegrass:medium" }, |  | ||||||
|         {"junglegrass:medium"  ,"default:junglegrass" }, |  | ||||||
|         {"default:junglegrass" , nil} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| local verticals_list = { |  | ||||||
| 	"default:dirt", |  | ||||||
| 	"default:dirt_with_grass", |  | ||||||
| 	"default:stone", |  | ||||||
| 	"default:cobble", |  | ||||||
| 	"default:mossycobble", |  | ||||||
| 	"default:brick", |  | ||||||
| 	"default:tree", |  | ||||||
| 	"default:jungletree", |  | ||||||
| 	"default:coal", |  | ||||||
| 	"default:iron" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| -- Local functions |  | ||||||
|  |  | ||||||
| math.randomseed(os.time()) |  | ||||||
|  |  | ||||||
| local dbg = function(s) |  | ||||||
| 	if plantlife_debug then |  | ||||||
| 		print("[Plantlife] " .. s) |  | ||||||
| 	end |  | ||||||
| end |  | ||||||
|  |  | ||||||
| local is_node_loaded = function(node_pos) |  | ||||||
| 	n = minetest.env:get_node_or_nil(node_pos) |  | ||||||
| 	if (n == nil) or (n.name == "ignore") then |  | ||||||
| 		return false |  | ||||||
| 	end |  | ||||||
| 	return true |  | ||||||
| end |  | ||||||
|  |  | ||||||
| -- The spawning ABM |  | ||||||
|  |  | ||||||
| spawn_on_surfaces = function(sdelay, splant, sradius, schance, ssurface, savoid, seed_diff, lightmin, lightmax, nneighbors, ocount, facedir) |  | ||||||
| 	if seed_diff == nil then seed_diff = 0 end |  | ||||||
| 	if lightmin == nil then lightmin = 0 end |  | ||||||
| 	if lightmax == nil then lightmax = LIGHT_MAX end |  | ||||||
| 	if nneighbors == nil then nneighbors = ssurface end |  | ||||||
| 	if ocount == nil then ocount = 0 end |  | ||||||
| 	dbg(sdelay.." "..splant.." "..sradius.." "..schance.." "..ssurface.." "..dump(savoid).." "..lightmin.." "..lightmax.." "..dump(nneighbors).." "..ocount) |  | ||||||
| 	minetest.register_abm({ |  | ||||||
| 		nodenames = { ssurface }, |  | ||||||
| 		interval = sdelay, |  | ||||||
| 		chance = schance, |  | ||||||
| 		neighbors = nneighbors, |  | ||||||
| 		action = function(pos, node, active_object_count, active_object_count_wider) |  | ||||||
| 			local p_top = { x = pos.x, y = pos.y + 1, z = pos.z }	 |  | ||||||
| 			local n_top = minetest.env:get_node(p_top) |  | ||||||
| 			local perlin = minetest.env:get_perlin(seed_diff, perlin_octaves, perlin_persistence, perlin_scale ) |  | ||||||
| 			local noise = perlin:get2d({x=p_top.x, y=p_top.z}) |  | ||||||
| 			if ( noise > plantlife_limit ) and (n_top.name == "air") and is_node_loaded(p_top) then |  | ||||||
| 				local n_light = minetest.env:get_node_light(p_top, nil) |  | ||||||
| 				if (minetest.env:find_node_near(p_top, sradius, savoid) == nil ) |  | ||||||
| 				   and (n_light >= lightmin) |  | ||||||
| 				   and (n_light <= lightmax) |  | ||||||
| 				and table.getn(minetest.env:find_nodes_in_area({x=pos.x-1, y=pos.y, z=pos.z-1}, {x=pos.x+1, y=pos.y, z=pos.z+1}, nneighbors)) > ocount  |  | ||||||
| 				then |  | ||||||
| 					local walldir = plant_valid_wall(p_top) |  | ||||||
| 					if splant == "poisonivy:seedling" and walldir ~= nil then |  | ||||||
| 						dbg("Spawn: poisonivy:climbing at "..dump(p_top).." on "..ssurface) |  | ||||||
| 						minetest.env:add_node(p_top, { name = "poisonivy:climbing", param2 = walldir }) |  | ||||||
| 					else |  | ||||||
| 						dbg("Spawn: "..splant.." at "..dump(p_top).." on "..ssurface) |  | ||||||
| 						minetest.env:add_node(p_top, { name = splant, param2 = facedir }) |  | ||||||
| 					end |  | ||||||
| 				end |  | ||||||
| 			end |  | ||||||
| 		end |  | ||||||
| 	}) |  | ||||||
| end |  | ||||||
|  |  | ||||||
| -- The growing ABM |  | ||||||
|  |  | ||||||
| grow_plants = function(gdelay, gchance, gplant, gresult, dry_early_node, grow_nodes, facedir) |  | ||||||
| 	minetest.register_abm({ |  | ||||||
| 		nodenames = { gplant }, |  | ||||||
| 		interval = gdelay, |  | ||||||
| 		chance = gchance, |  | ||||||
| 		action = function(pos, node, active_object_count, active_object_count_wider) |  | ||||||
| 			local p_top = {x=pos.x, y=pos.y+1, z=pos.z} |  | ||||||
| 			local p_bot = {x=pos.x, y=pos.y-1, z=pos.z} |  | ||||||
| 			local n_top = minetest.env:get_node(p_top) |  | ||||||
| 			local n_bot = minetest.env:get_node(p_bot) |  | ||||||
|  |  | ||||||
| 			if string.find(dump(grow_nodes), n_bot.name) ~= nil and n_top.name == "air" then |  | ||||||
|  |  | ||||||
| 				-- corner case for wall-climbing poison ivy |  | ||||||
| 				if gplant == "poisonivy:climbing" then |  | ||||||
| 					local walldir=plant_valid_wall(p_top) |  | ||||||
| 					if walldir ~= nil then |  | ||||||
| 						dbg("Grow: "..gplant.." upwards to ("..dump(p_top)..")") |  | ||||||
| 						minetest.env:add_node(p_top, { name = gplant, param2 = walldir }) |  | ||||||
| 					end |  | ||||||
|  |  | ||||||
| 				-- corner case for changing short junglegrass to dry shrub in desert |  | ||||||
| 				elseif n_bot.name == dry_early_node and gplant == "junglegrass:short" then |  | ||||||
| 					dbg("Die: "..gplant.." becomes default:dry_shrub at ("..dump(pos)..")") |  | ||||||
| 					minetest.env:add_node(pos, { name = "default:dry_shrub" }) |  | ||||||
|  |  | ||||||
| 				elseif gresult == nil then |  | ||||||
| 					dbg("Die: "..gplant.." at ("..dump(pos)..")") |  | ||||||
| 					minetest.env:remove_node(pos) |  | ||||||
|  |  | ||||||
| 				elseif gresult ~= nil then |  | ||||||
| 					dbg("Grow: "..gplant.." becomes "..gresult.." at ("..dump(pos)..")") |  | ||||||
| 					if facedir == nil then |  | ||||||
| 						minetest.env:add_node(pos, { name = gresult }) |  | ||||||
| 					else |  | ||||||
| 						minetest.env:add_node(pos, { name = gresult, param2 = facedir }) |  | ||||||
| 					end |  | ||||||
| 				end |  | ||||||
| 			end |  | ||||||
| 		end |  | ||||||
| 	}) |  | ||||||
| end |  | ||||||
|  |  | ||||||
| -- function to decide if a node has a wall that's in verticals_list{} |  | ||||||
| -- returns wall direction of valid node, or nil if invalid. |  | ||||||
|  |  | ||||||
| plant_valid_wall = function(wallpos) |  | ||||||
| 	local walldir = nil |  | ||||||
| 	local verts = dump(verticals_list) |  | ||||||
|  |  | ||||||
| 	local testpos = { x = wallpos.x-1, y = wallpos.y, z = wallpos.z   } |  | ||||||
| 	if string.find(verts, minetest.env:get_node(testpos).name) ~= nil then walldir=3 end |  | ||||||
|  |  | ||||||
| 	local testpos = { x = wallpos.x+1, y = wallpos.y, z = wallpos.z   } |  | ||||||
| 	if string.find(verts, minetest.env:get_node(testpos).name) ~= nil then walldir=2 end |  | ||||||
|  |  | ||||||
| 	local testpos = { x = wallpos.x  , y = wallpos.y, z = wallpos.z-1 } |  | ||||||
| 	if string.find(verts, minetest.env:get_node(testpos).name) ~= nil then walldir=5 end |  | ||||||
|  |  | ||||||
| 	local testpos = { x = wallpos.x  , y = wallpos.y, z = wallpos.z+1 } |  | ||||||
| 	if string.find(verts, minetest.env:get_node(testpos).name) ~= nil then walldir=4 end |  | ||||||
|  |  | ||||||
| 	return walldir |  | ||||||
| end |  | ||||||
|  |  | ||||||
| -- ########################################################################### |  | ||||||
| -- Flowers section |  | ||||||
|  |  | ||||||
| if enable_flowers then |  | ||||||
| 	loadstr = loadstr.." flowers" |  | ||||||
| 	for i in ipairs(flowers_list) do |  | ||||||
| 		local flowerdesc = flowers_list[i][1] |  | ||||||
| 		local flower     = flowers_list[i][2] |  | ||||||
| 		local delay      = flowers_list[i][3] |  | ||||||
| 		local radius     = flowers_list[i][4] |  | ||||||
| 		local chance     = flowers_list[i][5] |  | ||||||
|  |  | ||||||
| 		minetest.register_node(":flowers:flower_"..flower, { |  | ||||||
| 			description = flowerdesc, |  | ||||||
| 			drawtype = "plantlike", |  | ||||||
| 			tiles = { "flower_"..flower..".png" }, |  | ||||||
| 			inventory_image = "flower_"..flower..".png", |  | ||||||
| 			wield_image = "flower_"..flower..".png", |  | ||||||
| 			sunlight_propagates = true, |  | ||||||
| 			paramtype = "light", |  | ||||||
| 			walkable = false, |  | ||||||
| 			groups = { snappy = 3,flammable=2, flower=1 }, |  | ||||||
| 			sounds = default.node_sound_leaves_defaults(), |  | ||||||
| 			selection_box = { |  | ||||||
| 				type = "fixed", |  | ||||||
| 				fixed = { -0.15, -0.5, -0.15, 0.15, 0.2, 0.15 }, |  | ||||||
| 			},	 |  | ||||||
| 		}) |  | ||||||
|  |  | ||||||
| 		minetest.register_node(":flowers:flower_"..flower.."_pot", { |  | ||||||
| 			description = flowerdesc.." in a pot", |  | ||||||
| 			drawtype = "plantlike", |  | ||||||
| 			tiles = { "flower_"..flower.."_pot.png" }, |  | ||||||
| 			inventory_image = "flower_"..flower.."_pot.png", |  | ||||||
| 			wield_image = "flower_"..flower.."_pot.png", |  | ||||||
| 			sunlight_propagates = true, |  | ||||||
| 			paramtype = "light", |  | ||||||
| 			walkable = false, |  | ||||||
| 			groups = { snappy = 3,flammable=2 }, |  | ||||||
| 			sounds = default.node_sound_leaves_defaults(), |  | ||||||
| 			selection_box = { |  | ||||||
| 				type = "fixed", |  | ||||||
| 				fixed = { -0.25, -0.5, -0.25, 0.25, 0.5, 0.25 }, |  | ||||||
| 			},	 |  | ||||||
| 		}) |  | ||||||
|  |  | ||||||
| 		minetest.register_craft( { |  | ||||||
| 			type = "shapeless", |  | ||||||
| 			output = "flowers:flower_"..flower.."_pot", |  | ||||||
| 			recipe = { |  | ||||||
| 				"flowers:flower_pot", |  | ||||||
| 				"flowers:flower_"..flower |  | ||||||
| 			} |  | ||||||
| 		}) |  | ||||||
|  |  | ||||||
| 		spawn_on_surfaces(delay, "flowers:flower_"..flower, radius, chance, "default:dirt_with_grass", {"group:flower", "group:poisonivy"}, flowers_seed_diff) |  | ||||||
| 	end |  | ||||||
|  |  | ||||||
| 	minetest.register_node(":flowers:flower_waterlily", { |  | ||||||
| 		description = "Waterlily", |  | ||||||
| 		drawtype = "raillike", |  | ||||||
| 		tiles = { "flower_waterlily.png" }, |  | ||||||
| 		inventory_image = "flower_waterlily.png", |  | ||||||
| 		wield_image  = "flower_waterlily.png", |  | ||||||
| 		sunlight_propagates = true, |  | ||||||
| 		paramtype = "light", |  | ||||||
| 		paramtype2 = "wallmounted", |  | ||||||
| 		walkable = false, |  | ||||||
| 		groups = { snappy = 3,flammable=2,flower=1 }, |  | ||||||
| 		sounds = default.node_sound_leaves_defaults(), |  | ||||||
| 		selection_box = { |  | ||||||
| 			type = "fixed", |  | ||||||
| 			fixed = { -0.4, -0.5, -0.4, 0.4, -0.45, 0.4 }, |  | ||||||
| 		},	 |  | ||||||
| 	}) |  | ||||||
|  |  | ||||||
| 	minetest.register_node(":flowers:flower_seaweed", { |  | ||||||
| 		description = "Seaweed", |  | ||||||
| 		drawtype = "signlike", |  | ||||||
| 		tiles = { "flower_seaweed.png" }, |  | ||||||
| 		inventory_image = "flower_seaweed.png", |  | ||||||
| 		wield_image  = "flower_seaweed.png", |  | ||||||
| 		sunlight_propagates = true, |  | ||||||
| 		paramtype = "light", |  | ||||||
| 		paramtype2 = "wallmounted", |  | ||||||
| 		walkable = false, |  | ||||||
| 		groups = { snappy = 3,flammable=2,flower=1 }, |  | ||||||
| 		sounds = default.node_sound_leaves_defaults(), |  | ||||||
| 		selection_box = { |  | ||||||
| 			type = "fixed", |  | ||||||
| 			fixed = { -0.5, -0.5, -0.5, 0.5, -0.4, 0.5 }, |  | ||||||
| 		},	 |  | ||||||
| 	}) |  | ||||||
|  |  | ||||||
| 	spawn_on_surfaces(spawn_delay/2, "flowers:flower_waterlily", 10  , spawn_chance*3, "default:water_source"   , {"group:flower"}, flowers_seed_diff, 10, nil, {"default:dirt_with_grass"}, nil, nil,10) |  | ||||||
|  |  | ||||||
| 	spawn_on_surfaces(spawn_delay*2, "flowers:flower_seaweed"  ,  0.1, spawn_chance*2, "default:water_source"   , {"group:flower"}, flowers_seed_diff,  4,  10, {"default:dirt_with_grass"},   0,   1) |  | ||||||
| 	spawn_on_surfaces(spawn_delay*2, "flowers:flower_seaweed"  ,  0.1, spawn_chance*2, "default:dirt_with_grass", {"group:flower"}, flowers_seed_diff,  4,  10, {"default:water_source"}   ,   1,   1) |  | ||||||
| 	spawn_on_surfaces(spawn_delay*2, "flowers:flower_seaweed"  ,  0.1, spawn_chance*2, "default:stone"          , {"group:flower"}, flowers_seed_diff,  4,  10, {"default:water_source"}   ,   6,   1) |  | ||||||
|  |  | ||||||
|  |  | ||||||
| 	minetest.register_craftitem(":flowers:flower_pot", { |  | ||||||
| 		description = "Flower Pot", |  | ||||||
| 		inventory_image = "flower_pot.png", |  | ||||||
| 	}) |  | ||||||
|  |  | ||||||
| 	minetest.register_craft( { |  | ||||||
| 		output = "flowers:flower_pot", |  | ||||||
| 		recipe = { |  | ||||||
| 		        { "default:clay_brick", "", "default:clay_brick" }, |  | ||||||
| 		        { "", "default:clay_brick", "" } |  | ||||||
| 		}, |  | ||||||
| 	}) |  | ||||||
|  |  | ||||||
| 	minetest.register_craftitem(":flowers:cotton", { |  | ||||||
| 	    description = "Cotton", |  | ||||||
| 	    image = "cotton.png", |  | ||||||
| 	}) |  | ||||||
|  |  | ||||||
| 	minetest.register_craft({ |  | ||||||
| 	    output = "flowers:cotton 3", |  | ||||||
| 	    recipe ={ |  | ||||||
| 		{"flowers:flower_cotton"}, |  | ||||||
| 	    } |  | ||||||
| 	})	 |  | ||||||
|  |  | ||||||
| end |  | ||||||
|  |  | ||||||
| -- ########################################################################### |  | ||||||
| -- Jungle Grass section |  | ||||||
|  |  | ||||||
| if enable_junglegrass then |  | ||||||
| 	loadstr = loadstr.." junglegrass" |  | ||||||
|  |  | ||||||
| 	minetest.register_node(':junglegrass:medium', { |  | ||||||
| 		description = "Jungle Grass (medium height)", |  | ||||||
| 		drawtype = 'plantlike', |  | ||||||
| 		tile_images = { 'junglegrass_medium.png' }, |  | ||||||
| 		inventory_image = 'junglegrass_medium.png', |  | ||||||
| 		wield_image = 'junglegrass_medium.png', |  | ||||||
| 		sunlight_propagates = true, |  | ||||||
| 		paramtype = 'light', |  | ||||||
| 		walkable = false, |  | ||||||
| 		groups = { snappy = 3, flammable=2, junglegrass=1 }, |  | ||||||
| 		sounds = default.node_sound_leaves_defaults(), |  | ||||||
| 		drop = 'default:junglegrass', |  | ||||||
|  |  | ||||||
| 		selection_box = { |  | ||||||
| 			type = "fixed", |  | ||||||
| 			fixed = {-0.4, -0.5, -0.4, 0.4, 0.5, 0.4}, |  | ||||||
| 		}, |  | ||||||
| 	}) |  | ||||||
|  |  | ||||||
| 	minetest.register_node(':junglegrass:short', { |  | ||||||
| 		description = "Jungle Grass (short)", |  | ||||||
| 		drawtype = 'plantlike', |  | ||||||
| 		tile_images = { 'junglegrass_short.png' }, |  | ||||||
| 		inventory_image = 'junglegrass_short.png', |  | ||||||
| 		wield_image = 'junglegrass_short.png', |  | ||||||
| 		sunlight_propagates = true, |  | ||||||
| 		paramtype = 'light', |  | ||||||
| 		walkable = false, |  | ||||||
| 		groups = { snappy = 3, flammable=2, junglegrass=1 }, |  | ||||||
| 		sounds = default.node_sound_leaves_defaults(), |  | ||||||
| 		drop = 'default:junglegrass', |  | ||||||
| 		selection_box = { |  | ||||||
| 			type = "fixed", |  | ||||||
| 			fixed = {-0.4, -0.5, -0.4, 0.4, 0.3, 0.4}, |  | ||||||
| 		}, |  | ||||||
| 	}) |  | ||||||
|  |  | ||||||
| 	minetest.register_node(':junglegrass:shortest', { |  | ||||||
| 		description = "Jungle Grass (very short)", |  | ||||||
| 		drawtype = 'plantlike', |  | ||||||
| 		tile_images = { 'junglegrass_shortest.png' }, |  | ||||||
| 		inventory_image = 'junglegrass_shortest.png', |  | ||||||
| 		wield_image = 'junglegrass_shortest.png', |  | ||||||
| 		sunlight_propagates = true, |  | ||||||
| 		paramtype = 'light', |  | ||||||
| 		walkable = false, |  | ||||||
| 		groups = { snappy = 3, flammable=2, junglegrass=1 }, |  | ||||||
| 		sounds = default.node_sound_leaves_defaults(), |  | ||||||
| 		drop = 'default:junglegrass', |  | ||||||
| 		selection_box = { |  | ||||||
| 			type = "fixed", |  | ||||||
| 			fixed = {-0.3, -0.5, -0.3, 0.3, 0, 0.3}, |  | ||||||
| 		}, |  | ||||||
| 	}) |  | ||||||
|  |  | ||||||
| 	spawn_on_surfaces(spawn_delay*2, "junglegrass:shortest", 4, spawn_chance, "default:dirt_with_grass", {"group:junglegrass", "default:junglegrass", "default:dry_shrub"}, junglegrass_seed_diff, 5) |  | ||||||
| 	spawn_on_surfaces(spawn_delay*2, "junglegrass:shortest", 4, spawn_chance*2, "default:sand"           , {"group:junglegrass", "default:junglegrass", "default:dry_shrub"}, junglegrass_seed_diff, 5) |  | ||||||
| 	spawn_on_surfaces(spawn_delay*2, "junglegrass:shortest", 4, spawn_chance*3, "default:desert_sand"    , {"group:junglegrass", "default:junglegrass", "default:dry_shrub"}, junglegrass_seed_diff, 5) |  | ||||||
| 	spawn_on_surfaces(spawn_delay*2, "junglegrass:shortest", 4, spawn_chance*3, "default:desert_sand"    , {"group:junglegrass", "default:junglegrass", "default:dry_shrub"}, junglegrass_seed_diff, 5) |  | ||||||
|  |  | ||||||
| 	for i in ipairs(grasses_list) do |  | ||||||
| 		grow_plants(grow_delay, grow_chance/2, grasses_list[i][1], grasses_list[i][2], "default:desert_sand", {"default:dirt_with_grass", "default:sand", "default:desert_sand"}) |  | ||||||
| 	end		 |  | ||||||
| end |  | ||||||
|  |  | ||||||
| -- ########################################################################### |  | ||||||
| -- Poison Ivy section |  | ||||||
|  |  | ||||||
| if enable_poisonivy then |  | ||||||
| 	loadstr = loadstr.." poisonivy" |  | ||||||
|  |  | ||||||
| 	minetest.register_node(':poisonivy:seedling', { |  | ||||||
| 		description = "Poison ivy (seedling)", |  | ||||||
| 		drawtype = 'plantlike', |  | ||||||
| 		tile_images = { 'poisonivy_seedling.png' }, |  | ||||||
| 		inventory_image = 'poisonivy_seedling.png', |  | ||||||
| 		wield_image = 'poisonivy_seedling.png', |  | ||||||
| 		sunlight_propagates = true, |  | ||||||
| 		paramtype = 'light', |  | ||||||
| 		walkable = false, |  | ||||||
| 		groups = { snappy = 3, poisonivy=1 }, |  | ||||||
| 		sounds = default.node_sound_leaves_defaults(), |  | ||||||
| 	}) |  | ||||||
|  |  | ||||||
| 	minetest.register_node(':poisonivy:sproutling', { |  | ||||||
| 		description = "Poison ivy (sproutling)", |  | ||||||
| 		drawtype = 'plantlike', |  | ||||||
| 		tile_images = { 'poisonivy_sproutling.png' }, |  | ||||||
| 		inventory_image = 'poisonivy_sproutling.png', |  | ||||||
| 		wield_image = 'poisonivy_sproutling.png', |  | ||||||
| 		sunlight_propagates = true, |  | ||||||
| 		paramtype = 'light', |  | ||||||
| 		walkable = false, |  | ||||||
| 		groups = { snappy = 3, poisonivy=1 }, |  | ||||||
| 		sounds = default.node_sound_leaves_defaults(), |  | ||||||
| 	}) |  | ||||||
|  |  | ||||||
| 	minetest.register_node(':poisonivy:climbing', { |  | ||||||
| 		description = "Poison ivy (climbing plant)", |  | ||||||
| 		drawtype = 'signlike', |  | ||||||
| 		tile_images = { 'poisonivy_climbing.png' }, |  | ||||||
| 		inventory_image = 'poisonivy_climbing.png', |  | ||||||
| 		wield_image = 'poisonivy_climbing.png', |  | ||||||
| 		sunlight_propagates = true, |  | ||||||
| 		paramtype = 'light', |  | ||||||
| 		paramtype2 = 'wallmounted', |  | ||||||
| 		walkable = false, |  | ||||||
| 		groups = { snappy = 3, poisonivy=1 }, |  | ||||||
| 		sounds = default.node_sound_leaves_defaults(), |  | ||||||
| 		selection_box = { |  | ||||||
| 			type = "wallmounted", |  | ||||||
| 			--wall_side = = <default> |  | ||||||
| 		}, |  | ||||||
| 	}) |  | ||||||
|  |  | ||||||
| 	spawn_on_surfaces(spawn_delay, "poisonivy:seedling", 10 , spawn_chance/10, "default:dirt_with_grass", {"group:poisonivy","group:flower"}, poisonivy_seed_diff, 7) |  | ||||||
| 	grow_plants(spawn_delay, grow_chance,   "poisonivy:seedling", "poisonivy:sproutling", nil, {"default:dirt_with_grass"}) |  | ||||||
| 	grow_plants(spawn_delay, grow_chance*2, "poisonivy:climbing", nil,                    nil, nil) |  | ||||||
| end |  | ||||||
|  |  | ||||||
| print(loadstr..")") |  | ||||||
		Reference in New Issue
	
	Block a user