mirror of
				https://github.com/mt-mods/plantlife_modpack.git
				synced 2025-11-04 07:25:30 +01:00 
			
		
		
		
	use swap_node() where possible, for speed
This commit is contained in:
		@@ -183,14 +183,14 @@ abstract_bushes.grow_bush_node = function(pos,dir, leaf_type)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	if minetest.get_node(right_here).name == "air"  -- instead of check_air = true,
 | 
						if minetest.get_node(right_here).name == "air"  -- instead of check_air = true,
 | 
				
			||||||
	or minetest.get_node(right_here).name == "default:junglegrass" then
 | 
						or minetest.get_node(right_here).name == "default:junglegrass" then
 | 
				
			||||||
		minetest.set_node(right_here, {name="bushes:bushbranches"..bush_branch_type , param2=dir})
 | 
							minetest.swap_node(right_here, {name="bushes:bushbranches"..bush_branch_type , param2=dir})
 | 
				
			||||||
						--minetest.chat_send_all("leaf_type: (" .. leaf_type .. ")")
 | 
											--minetest.chat_send_all("leaf_type: (" .. leaf_type .. ")")
 | 
				
			||||||
		minetest.set_node(above_right_here, {name="bushes:BushLeaves"..leaf_type})
 | 
							minetest.swap_node(above_right_here, {name="bushes:BushLeaves"..leaf_type})
 | 
				
			||||||
		local chance_of_high_leaves = math.random(1,10)
 | 
							local chance_of_high_leaves = math.random(1,10)
 | 
				
			||||||
		if chance_of_high_leaves> 5 then
 | 
							if chance_of_high_leaves> 5 then
 | 
				
			||||||
			local two_above_right_here = {x=pos.x, y=pos.y+3, z=pos.z}
 | 
								local two_above_right_here = {x=pos.x, y=pos.y+3, z=pos.z}
 | 
				
			||||||
							--minetest.chat_send_all("leaf_type: (" .. leaf_type .. ")")
 | 
												--minetest.chat_send_all("leaf_type: (" .. leaf_type .. ")")
 | 
				
			||||||
			minetest.set_node(two_above_right_here, {name="bushes:BushLeaves"..leaf_type})
 | 
								minetest.swap_node(two_above_right_here, {name="bushes:BushLeaves"..leaf_type})
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
@@ -229,12 +229,12 @@ abstract_bushes.grow_youngtree_node2 = function(pos, height)
 | 
				
			|||||||
		if height == 4 then
 | 
							if height == 4 then
 | 
				
			||||||
				local two_above_right_here_south = {x=pos.x, y=pos.y+3, z=pos.z-1}
 | 
									local two_above_right_here_south = {x=pos.x, y=pos.y+3, z=pos.z-1}
 | 
				
			||||||
				local three_above_right_here_south = {x=pos.x, y=pos.y+4, z=pos.z-1}
 | 
									local three_above_right_here_south = {x=pos.x, y=pos.y+4, z=pos.z-1}
 | 
				
			||||||
				minetest.set_node(right_here, {name="bushes:youngtree2_bottom"})
 | 
									minetest.swap_node(right_here, {name="bushes:youngtree2_bottom"})
 | 
				
			||||||
				minetest.set_node(above_right_here, {name="bushes:youngtree2_bottom"})
 | 
									minetest.swap_node(above_right_here, {name="bushes:youngtree2_bottom"})
 | 
				
			||||||
				minetest.set_node(two_above_right_here, {name="bushes:bushbranches2"  , param2=2})
 | 
									minetest.swap_node(two_above_right_here, {name="bushes:bushbranches2"  , param2=2})
 | 
				
			||||||
				minetest.set_node(two_above_right_here_south, {name="bushes:bushbranches2"  , param2=0})
 | 
									minetest.swap_node(two_above_right_here_south, {name="bushes:bushbranches2"  , param2=0})
 | 
				
			||||||
				minetest.set_node(three_above_right_here, {name="bushes:BushLeaves1" })
 | 
									minetest.swap_node(three_above_right_here, {name="bushes:BushLeaves1" })
 | 
				
			||||||
				minetest.set_node(three_above_right_here_south, {name="bushes:BushLeaves1" })
 | 
									minetest.swap_node(three_above_right_here_south, {name="bushes:BushLeaves1" })
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -47,7 +47,7 @@ plantlife_bushes.after_dig_node = function(pos, oldnode, oldmetadata, digger)
 | 
				
			|||||||
	elseif groupcaps.snappy then
 | 
						elseif groupcaps.snappy then
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		-- plant a new bush without fruits
 | 
							-- plant a new bush without fruits
 | 
				
			||||||
		minetest.set_node(pos, {type = "node", name = "bushes:fruitless_bush"})
 | 
							minetest.swap_node(pos, {type = "node", name = "bushes:fruitless_bush"})
 | 
				
			||||||
		local meta = minetest.get_meta(pos)
 | 
							local meta = minetest.get_meta(pos)
 | 
				
			||||||
		meta:set_string('bush_type', bush_name)
 | 
							meta:set_string('bush_type', bush_name)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -114,7 +114,7 @@ plantlife_bushes.after_place_node = function(pos, placer, itemstack)
 | 
				
			|||||||
		return
 | 
							return
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	minetest.set_node(pos, {name = "bushes:fruitless_bush"})
 | 
						minetest.swap_node(pos, {name = "bushes:fruitless_bush"})
 | 
				
			||||||
	local meta = minetest.get_meta(pos)
 | 
						local meta = minetest.get_meta(pos)
 | 
				
			||||||
	meta:set_string("bush_type", name_parts[1])
 | 
						meta:set_string("bush_type", name_parts[1])
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
@@ -137,7 +137,7 @@ minetest.register_abm({
 | 
				
			|||||||
			local is_soil = minetest.get_item_group(dirt.name, "soil") or minetest.get_item_group(dirt.name, "potting_soil")
 | 
								local is_soil = minetest.get_item_group(dirt.name, "soil") or minetest.get_item_group(dirt.name, "potting_soil")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if is_soil and (dirt.name == "farming:soil_wet" or math.random(1,3) == 1) then
 | 
								if is_soil and (dirt.name == "farming:soil_wet" or math.random(1,3) == 1) then
 | 
				
			||||||
				minetest.set_node( pos, {name = "bushes:" .. bush_name .. "_bush"})
 | 
									minetest.swap_node( pos, {name = "bushes:" .. bush_name .. "_bush"})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -38,9 +38,9 @@ minetest.register_on_generated(function(minp, maxp, seed)
 | 
				
			|||||||
						nn = minetest.get_node({x=x,y=ground_y,z=z}).name
 | 
											nn = minetest.get_node({x=x,y=ground_y,z=z}).name
 | 
				
			||||||
						-- If desert sand, add dry shrub
 | 
											-- If desert sand, add dry shrub
 | 
				
			||||||
						if nn == "default:dirt_with_grass" then
 | 
											if nn == "default:dirt_with_grass" then
 | 
				
			||||||
							minetest.set_node(p,{name="cavestuff:pebble_"..pr:next(1,2), param2=math.random(0,3)})
 | 
												minetest.swap_node(p,{name="cavestuff:pebble_"..pr:next(1,2), param2=math.random(0,3)})
 | 
				
			||||||
						elseif nn == "default:desert_sand" then
 | 
											elseif nn == "default:desert_sand" then
 | 
				
			||||||
							minetest.set_node(p,{name="cavestuff:desert_pebble_"..pr:next(1,2), param2=math.random(0,3)})
 | 
												minetest.swap_node(p,{name="cavestuff:desert_pebble_"..pr:next(1,2), param2=math.random(0,3)})
 | 
				
			||||||
					    end
 | 
										    end
 | 
				
			||||||
					end
 | 
										end
 | 
				
			||||||
				end
 | 
									end
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -97,7 +97,7 @@ minetest.register_node("cavestuff:stalactite_1",{
 | 
				
			|||||||
		if minetest.get_node(pt.under).name=="default:stone"
 | 
							if minetest.get_node(pt.under).name=="default:stone"
 | 
				
			||||||
		and minetest.get_node({x=pt.under.x, y=pt.under.y-1, z=pt.under.z}).name=="air"
 | 
							and minetest.get_node({x=pt.under.x, y=pt.under.y-1, z=pt.under.z}).name=="air"
 | 
				
			||||||
		and minetest.get_node({x=pt.under.x, y=pt.under.y-2, z=pt.under.z}).name=="air" then
 | 
							and minetest.get_node({x=pt.under.x, y=pt.under.y-2, z=pt.under.z}).name=="air" then
 | 
				
			||||||
			minetest.set_node({x=pt.under.x, y=pt.under.y-1, z=pt.under.z}, {name="cavestuff:stalactite_"..math.random(1,3)})
 | 
								minetest.swap_node({x=pt.under.x, y=pt.under.y-1, z=pt.under.z}, {name="cavestuff:stalactite_"..math.random(1,3)})
 | 
				
			||||||
			if not minetest.setting_getbool("creative_mode") then
 | 
								if not minetest.setting_getbool("creative_mode") then
 | 
				
			||||||
				itemstack:take_item()
 | 
									itemstack:take_item()
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -86,7 +86,7 @@ local function sickle_on_use(itemstack, user, pointed_thing, uses)
 | 
				
			|||||||
		-- check if flora but no flower
 | 
							-- check if flora but no flower
 | 
				
			||||||
		if minetest.get_item_group(under.name, "flora") == 1 and minetest.get_item_group(under.name, "flower") == 0 then
 | 
							if minetest.get_item_group(under.name, "flora") == 1 and minetest.get_item_group(under.name, "flower") == 0 then
 | 
				
			||||||
			-- turn the node into cut grass, wear out item and play sound
 | 
								-- turn the node into cut grass, wear out item and play sound
 | 
				
			||||||
			minetest.set_node(pt.under, {name="dryplants:grass"})
 | 
								minetest.swap_node(pt.under, {name="dryplants:grass"})
 | 
				
			||||||
		else -- otherwise dig the node
 | 
							else -- otherwise dig the node
 | 
				
			||||||
			if not minetest.node_dig(pt.under, under, user) then
 | 
								if not minetest.node_dig(pt.under, under, user) then
 | 
				
			||||||
				return
 | 
									return
 | 
				
			||||||
@@ -102,8 +102,8 @@ local function sickle_on_use(itemstack, user, pointed_thing, uses)
 | 
				
			|||||||
		if minetest.is_protected(above_pos, user:get_player_name()) or above.name ~= "air" then
 | 
							if minetest.is_protected(above_pos, user:get_player_name()) or above.name ~= "air" then
 | 
				
			||||||
			return
 | 
								return
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
		minetest.set_node(pt.under, {name="dryplants:grass_short"})
 | 
							minetest.swap_node(pt.under, {name="dryplants:grass_short"})
 | 
				
			||||||
		minetest.set_node(above_pos, {name="dryplants:grass"})
 | 
							minetest.swap_node(above_pos, {name="dryplants:grass"})
 | 
				
			||||||
		minetest.sound_play("default_dig_crumbly", {
 | 
							minetest.sound_play("default_dig_crumbly", {
 | 
				
			||||||
			pos = pt.under,
 | 
								pos = pt.under,
 | 
				
			||||||
			gain = 0.5,
 | 
								gain = 0.5,
 | 
				
			||||||
@@ -148,7 +148,7 @@ minetest.register_abm({
 | 
				
			|||||||
	interval = HAY_DRYING_TIME, --1200, -- 20 minutes: a minetest-day/night-cycle
 | 
						interval = HAY_DRYING_TIME, --1200, -- 20 minutes: a minetest-day/night-cycle
 | 
				
			||||||
	chance = 1,
 | 
						chance = 1,
 | 
				
			||||||
	action = function(pos)
 | 
						action = function(pos)
 | 
				
			||||||
		minetest.set_node(pos, {name="dryplants:hay"})
 | 
							minetest.swap_node(pos, {name="dryplants:hay"})
 | 
				
			||||||
	end,
 | 
						end,
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -196,7 +196,7 @@ minetest.register_abm({
 | 
				
			|||||||
		-- Only become dirt with grass if no cut grass or hay lies on top
 | 
							-- Only become dirt with grass if no cut grass or hay lies on top
 | 
				
			||||||
		local above = minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z})
 | 
							local above = minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z})
 | 
				
			||||||
		if above.name ~= "dryplants:grass" and above.name ~= "dryplants:hay" then
 | 
							if above.name ~= "dryplants:grass" and above.name ~= "dryplants:hay" then
 | 
				
			||||||
			minetest.set_node(pos, {name="default:dirt_with_grass"})
 | 
								minetest.swap_node(pos, {name="default:dirt_with_grass"})
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
	end,
 | 
						end,
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,9 +18,9 @@ abstract_dryplants.grow_juncus = function(pos)
 | 
				
			|||||||
	if minetest.get_node(right_here).name == "air"  -- instead of check_air = true,
 | 
						if minetest.get_node(right_here).name == "air"  -- instead of check_air = true,
 | 
				
			||||||
	or minetest.get_node(right_here).name == "default:junglegrass" then
 | 
						or minetest.get_node(right_here).name == "default:junglegrass" then
 | 
				
			||||||
		if juncus_type == 2 then
 | 
							if juncus_type == 2 then
 | 
				
			||||||
			minetest.set_node(right_here, {name="dryplants:juncus_02"})
 | 
								minetest.swap_node(right_here, {name="dryplants:juncus_02"})
 | 
				
			||||||
		else
 | 
							else
 | 
				
			||||||
			minetest.set_node(right_here, {name="dryplants:juncus"})
 | 
								minetest.swap_node(right_here, {name="dryplants:juncus"})
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
@@ -57,9 +57,9 @@ minetest.register_node("dryplants:juncus", {
 | 
				
			|||||||
		local juncus_type = math.random(2,3)
 | 
							local juncus_type = math.random(2,3)
 | 
				
			||||||
		local right_here = {x=pos.x, y=pos.y+1, z=pos.z}
 | 
							local right_here = {x=pos.x, y=pos.y+1, z=pos.z}
 | 
				
			||||||
		if juncus_type == 2 then
 | 
							if juncus_type == 2 then
 | 
				
			||||||
			minetest.set_node(right_here, {name="dryplants:juncus_02"})
 | 
								minetest.swap_node(right_here, {name="dryplants:juncus_02"})
 | 
				
			||||||
		else
 | 
							else
 | 
				
			||||||
			minetest.set_node(right_here, {name="dryplants:juncus"})
 | 
								minetest.swap_node(right_here, {name="dryplants:juncus"})
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
		if not minetest.setting_getbool("creative_mode") then
 | 
							if not minetest.setting_getbool("creative_mode") then
 | 
				
			||||||
			itemstack:take_item()
 | 
								itemstack:take_item()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -10,7 +10,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
abstract_dryplants.grow_grass_variation = function(pos)
 | 
					abstract_dryplants.grow_grass_variation = function(pos)
 | 
				
			||||||
	local right_here = {x=pos.x, y=pos.y, z=pos.z}
 | 
						local right_here = {x=pos.x, y=pos.y, z=pos.z}
 | 
				
			||||||
	minetest.set_node(right_here, {name="dryplants:grass_short"})
 | 
						minetest.swap_node(right_here, {name="dryplants:grass_short"})
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
biome_lib:register_generate_plant({
 | 
					biome_lib:register_generate_plant({
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,7 +13,7 @@ abstract_dryplants.grow_grass = function(pos)
 | 
				
			|||||||
	local grass_size = math.random(1,5)
 | 
						local grass_size = math.random(1,5)
 | 
				
			||||||
	if minetest.get_node(right_here).name == "air"  -- instead of check_air = true,
 | 
						if minetest.get_node(right_here).name == "air"  -- instead of check_air = true,
 | 
				
			||||||
	or minetest.get_node(right_here).name == "default:junglegrass" then
 | 
						or minetest.get_node(right_here).name == "default:junglegrass" then
 | 
				
			||||||
		minetest.set_node(right_here, {name="default:grass_"..grass_size})
 | 
							minetest.swap_node(right_here, {name="default:grass_"..grass_size})
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -107,7 +107,7 @@ if AUTO_ROOF_CORNER == true then
 | 
				
			|||||||
				and ((node_north.name == roof and node_north.param2 == 3)
 | 
									and ((node_north.name == roof and node_north.param2 == 3)
 | 
				
			||||||
				or (node_north.name == corner and node_north.param2 == 3))
 | 
									or (node_north.name == corner and node_north.param2 == 3))
 | 
				
			||||||
				then
 | 
									then
 | 
				
			||||||
					minetest.set_node(pos, {name=corner, param2=0})
 | 
										minetest.swap_node(pos, {name=corner, param2=0})
 | 
				
			||||||
				end
 | 
									end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				if ((node_north.name == roof and node_north.param2 == 1)
 | 
									if ((node_north.name == roof and node_north.param2 == 1)
 | 
				
			||||||
@@ -115,7 +115,7 @@ if AUTO_ROOF_CORNER == true then
 | 
				
			|||||||
				and ((node_east.name == roof and node_east.param2 == 0)
 | 
									and ((node_east.name == roof and node_east.param2 == 0)
 | 
				
			||||||
				or (node_east.name == corner and node_east.param2 == 0))
 | 
									or (node_east.name == corner and node_east.param2 == 0))
 | 
				
			||||||
				then
 | 
									then
 | 
				
			||||||
					minetest.set_node(pos, {name=corner, param2=1})
 | 
										minetest.swap_node(pos, {name=corner, param2=1})
 | 
				
			||||||
				end
 | 
									end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				if ((node_east.name == roof and node_east.param2 == 2)
 | 
									if ((node_east.name == roof and node_east.param2 == 2)
 | 
				
			||||||
@@ -123,7 +123,7 @@ if AUTO_ROOF_CORNER == true then
 | 
				
			|||||||
				and ((node_south.name == roof and node_south.param2 == 1)
 | 
									and ((node_south.name == roof and node_south.param2 == 1)
 | 
				
			||||||
				or (node_south.name == corner and node_south.param2 == 1))
 | 
									or (node_south.name == corner and node_south.param2 == 1))
 | 
				
			||||||
				then
 | 
									then
 | 
				
			||||||
					minetest.set_node(pos, {name=corner, param2=2})
 | 
										minetest.swap_node(pos, {name=corner, param2=2})
 | 
				
			||||||
				end
 | 
									end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				if ((node_south.name == roof and node_south.param2 == 3)
 | 
									if ((node_south.name == roof and node_south.param2 == 3)
 | 
				
			||||||
@@ -131,7 +131,7 @@ if AUTO_ROOF_CORNER == true then
 | 
				
			|||||||
				and ((node_west.name == roof and node_west.param2 == 2)
 | 
									and ((node_west.name == roof and node_west.param2 == 2)
 | 
				
			||||||
				or (node_west.name == corner and node_west.param2 == 2))
 | 
									or (node_west.name == corner and node_west.param2 == 2))
 | 
				
			||||||
				then
 | 
									then
 | 
				
			||||||
					minetest.set_node(pos, {name=corner, param2=3})
 | 
										minetest.swap_node(pos, {name=corner, param2=3})
 | 
				
			||||||
				end
 | 
									end
 | 
				
			||||||
		-- corner 2
 | 
							-- corner 2
 | 
				
			||||||
				if ((node_west.name == roof and node_west.param2 == 2)
 | 
									if ((node_west.name == roof and node_west.param2 == 2)
 | 
				
			||||||
@@ -139,7 +139,7 @@ if AUTO_ROOF_CORNER == true then
 | 
				
			|||||||
				and ((node_north.name == roof and node_north.param2 == 1)
 | 
									and ((node_north.name == roof and node_north.param2 == 1)
 | 
				
			||||||
				or (node_north.name == corner_2 and node_north.param2 == 3))
 | 
									or (node_north.name == corner_2 and node_north.param2 == 3))
 | 
				
			||||||
				then
 | 
									then
 | 
				
			||||||
					minetest.set_node(pos, {name=corner_2, param2=0})
 | 
										minetest.swap_node(pos, {name=corner_2, param2=0})
 | 
				
			||||||
				end
 | 
									end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				if ((node_north.name == roof and node_north.param2 == 3)
 | 
									if ((node_north.name == roof and node_north.param2 == 3)
 | 
				
			||||||
@@ -147,7 +147,7 @@ if AUTO_ROOF_CORNER == true then
 | 
				
			|||||||
				and ((node_east.name == roof and node_east.param2 == 2)
 | 
									and ((node_east.name == roof and node_east.param2 == 2)
 | 
				
			||||||
				or (node_east.name == corner_2 and node_east.param2 == 0))
 | 
									or (node_east.name == corner_2 and node_east.param2 == 0))
 | 
				
			||||||
				then
 | 
									then
 | 
				
			||||||
					minetest.set_node(pos, {name=corner_2, param2=1})
 | 
										minetest.swap_node(pos, {name=corner_2, param2=1})
 | 
				
			||||||
				end
 | 
									end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				if ((node_east.name == roof and node_east.param2 == 0)
 | 
									if ((node_east.name == roof and node_east.param2 == 0)
 | 
				
			||||||
@@ -155,7 +155,7 @@ if AUTO_ROOF_CORNER == true then
 | 
				
			|||||||
				and ((node_south.name == roof and node_south.param2 == 3)
 | 
									and ((node_south.name == roof and node_south.param2 == 3)
 | 
				
			||||||
				or (node_south.name == corner_2 and node_south.param2 == 1))
 | 
									or (node_south.name == corner_2 and node_south.param2 == 1))
 | 
				
			||||||
				then
 | 
									then
 | 
				
			||||||
					minetest.set_node(pos, {name=corner_2, param2=2})
 | 
										minetest.swap_node(pos, {name=corner_2, param2=2})
 | 
				
			||||||
				end
 | 
									end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				if ((node_south.name == roof and node_south.param2 == 1)
 | 
									if ((node_south.name == roof and node_south.param2 == 1)
 | 
				
			||||||
@@ -163,7 +163,7 @@ if AUTO_ROOF_CORNER == true then
 | 
				
			|||||||
				and ((node_west.name == roof and node_west.param2 == 0)
 | 
									and ((node_west.name == roof and node_west.param2 == 0)
 | 
				
			||||||
				or (node_west.name == corner_2 and node_west.param2 == 2))
 | 
									or (node_west.name == corner_2 and node_west.param2 == 2))
 | 
				
			||||||
				then
 | 
									then
 | 
				
			||||||
					minetest.set_node(pos, {name=corner_2, param2=3})
 | 
										minetest.swap_node(pos, {name=corner_2, param2=3})
 | 
				
			||||||
				end
 | 
									end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			end,
 | 
								end,
 | 
				
			||||||
@@ -255,7 +255,7 @@ if REED_WILL_DRY == true then
 | 
				
			|||||||
			chance = 1,
 | 
								chance = 1,
 | 
				
			||||||
			action = function(pos)
 | 
								action = function(pos)
 | 
				
			||||||
				local direction = minetest.get_node(pos).param2
 | 
									local direction = minetest.get_node(pos).param2
 | 
				
			||||||
				minetest.set_node(pos, {name=DRy, param2=direction})
 | 
									minetest.swap_node(pos, {name=DRy, param2=direction})
 | 
				
			||||||
			end,
 | 
								end,
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -34,18 +34,18 @@ abstract_dryplants.grow_reedmace = function(pos)
 | 
				
			|||||||
	if minetest.get_node(pos_01).name == "air"  -- bug fix
 | 
						if minetest.get_node(pos_01).name == "air"  -- bug fix
 | 
				
			||||||
	or minetest.get_node(pos_01).name == "dryplants:reedmace_sapling" then
 | 
						or minetest.get_node(pos_01).name == "dryplants:reedmace_sapling" then
 | 
				
			||||||
		if minetest.get_node(pos_02).name ~= "air" then
 | 
							if minetest.get_node(pos_02).name ~= "air" then
 | 
				
			||||||
			minetest.set_node(pos_01, {name="dryplants:reedmace_top"})
 | 
								minetest.swap_node(pos_01, {name="dryplants:reedmace_top"})
 | 
				
			||||||
		elseif minetest.get_node(pos_03).name ~= "air" then
 | 
							elseif minetest.get_node(pos_03).name ~= "air" then
 | 
				
			||||||
			minetest.set_node(pos_01, {name="dryplants:reedmace_height_2"})
 | 
								minetest.swap_node(pos_01, {name="dryplants:reedmace_height_2"})
 | 
				
			||||||
		elseif size == 1 then
 | 
							elseif size == 1 then
 | 
				
			||||||
			minetest.set_node(pos_01, {name="dryplants:reedmace_top"})
 | 
								minetest.swap_node(pos_01, {name="dryplants:reedmace_top"})
 | 
				
			||||||
		elseif size == 2 then
 | 
							elseif size == 2 then
 | 
				
			||||||
			minetest.set_node(pos_01, {name="dryplants:reedmace_height_2"})
 | 
								minetest.swap_node(pos_01, {name="dryplants:reedmace_height_2"})
 | 
				
			||||||
		elseif size == 3 then
 | 
							elseif size == 3 then
 | 
				
			||||||
			if spikes == 1 then
 | 
								if spikes == 1 then
 | 
				
			||||||
				minetest.set_node(pos_01, {name="dryplants:reedmace_height_3_spikes"})
 | 
									minetest.swap_node(pos_01, {name="dryplants:reedmace_height_3_spikes"})
 | 
				
			||||||
			else
 | 
								else
 | 
				
			||||||
				minetest.set_node(pos_01, {name="dryplants:reedmace_height_3"})
 | 
									minetest.swap_node(pos_01, {name="dryplants:reedmace_height_3"})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
@@ -61,18 +61,18 @@ abstract_dryplants.grow_reedmace_water = function(pos)
 | 
				
			|||||||
	minetest.add_entity(pos_01, "dryplants:reedmace_water_entity")
 | 
						minetest.add_entity(pos_01, "dryplants:reedmace_water_entity")
 | 
				
			||||||
	if minetest.get_node(pos_02).name == "air" then -- bug fix
 | 
						if minetest.get_node(pos_02).name == "air" then -- bug fix
 | 
				
			||||||
		if minetest.get_node(pos_03).name ~= "air" then
 | 
							if minetest.get_node(pos_03).name ~= "air" then
 | 
				
			||||||
			minetest.set_node(pos_02, {name="dryplants:reedmace_top"})
 | 
								minetest.swap_node(pos_02, {name="dryplants:reedmace_top"})
 | 
				
			||||||
		elseif minetest.get_node(pos_04).name ~= "air" then
 | 
							elseif minetest.get_node(pos_04).name ~= "air" then
 | 
				
			||||||
			minetest.set_node(pos_02, {name="dryplants:reedmace_height_2"})
 | 
								minetest.swap_node(pos_02, {name="dryplants:reedmace_height_2"})
 | 
				
			||||||
		elseif size == 1 then
 | 
							elseif size == 1 then
 | 
				
			||||||
			minetest.set_node(pos_02, {name="dryplants:reedmace_top"})
 | 
								minetest.swap_node(pos_02, {name="dryplants:reedmace_top"})
 | 
				
			||||||
		elseif size == 2 then
 | 
							elseif size == 2 then
 | 
				
			||||||
			minetest.set_node(pos_02, {name="dryplants:reedmace_height_2"})
 | 
								minetest.swap_node(pos_02, {name="dryplants:reedmace_height_2"})
 | 
				
			||||||
		elseif size == 3 then
 | 
							elseif size == 3 then
 | 
				
			||||||
			if spikes == 1 then
 | 
								if spikes == 1 then
 | 
				
			||||||
				minetest.set_node(pos_02, {name="dryplants:reedmace_height_3_spikes"})
 | 
									minetest.swap_node(pos_02, {name="dryplants:reedmace_height_3_spikes"})
 | 
				
			||||||
			else
 | 
								else
 | 
				
			||||||
				minetest.set_node(pos_02, {name="dryplants:reedmace_height_3"})
 | 
									minetest.swap_node(pos_02, {name="dryplants:reedmace_height_3"})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
@@ -286,7 +286,7 @@ minetest.register_abm({
 | 
				
			|||||||
			if minetest.get_node({x = pos.x, y = pos.y + 1, z = pos.z}).name == "air" then
 | 
								if minetest.get_node({x = pos.x, y = pos.y + 1, z = pos.z}).name == "air" then
 | 
				
			||||||
				abstract_dryplants.grow_reedmace_water({x = pos.x, y = pos.y - 1, z = pos.z})
 | 
									abstract_dryplants.grow_reedmace_water({x = pos.x, y = pos.y - 1, z = pos.z})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
			minetest.set_node({x=pos.x, y=pos.y, z=pos.z}, {name="default:water_source"})
 | 
								minetest.swap_node({x=pos.x, y=pos.y, z=pos.z}, {name="default:water_source"})
 | 
				
			||||||
		else
 | 
							else
 | 
				
			||||||
			abstract_dryplants.grow_reedmace({x = pos.x, y = pos.y - 1, z = pos.z})
 | 
								abstract_dryplants.grow_reedmace({x = pos.x, y = pos.y - 1, z = pos.z})
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -69,11 +69,11 @@ abstract_ferns.grow_giant_tree_fern = function(pos)
 | 
				
			|||||||
			brk = true
 | 
								brk = true
 | 
				
			||||||
			break
 | 
								break
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
		minetest.set_node({x = pos.x, y = pos.y + i, z = pos.z}, {name="ferns:fern_trunk_big"})
 | 
							minetest.swap_node({x = pos.x, y = pos.y + i, z = pos.z}, {name="ferns:fern_trunk_big"})
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
	if not brk then
 | 
						if not brk then
 | 
				
			||||||
		minetest.set_node({x = pos.x, y = pos.y + size-2, z = pos.z}, {name="ferns:fern_trunk_big_top"})
 | 
							minetest.swap_node({x = pos.x, y = pos.y + size-2, z = pos.z}, {name="ferns:fern_trunk_big_top"})
 | 
				
			||||||
		minetest.set_node({x = pos.x, y = pos.y + size-1, z = pos.z}, {name="ferns:tree_fern_leaves_giant"})
 | 
							minetest.swap_node({x = pos.x, y = pos.y + size-1, z = pos.z}, {name="ferns:tree_fern_leaves_giant"})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		-- all the checking for air below is to prevent some ugly bugs (incomplete trunks of neighbouring trees), it's a bit slower, but worth the result
 | 
							-- all the checking for air below is to prevent some ugly bugs (incomplete trunks of neighbouring trees), it's a bit slower, but worth the result
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -86,7 +86,7 @@ abstract_ferns.grow_giant_tree_fern = function(pos)
 | 
				
			|||||||
			-- add leaves so long as the destination nodes are air
 | 
								-- add leaves so long as the destination nodes are air
 | 
				
			||||||
			for j = 1, 3 do
 | 
								for j = 1, 3 do
 | 
				
			||||||
				if minetest.get_node(positions[j]).name == "air" then
 | 
									if minetest.get_node(positions[j]).name == "air" then
 | 
				
			||||||
					minetest.set_node(positions[j], {name="ferns:tree_fern_leave_big"})
 | 
										minetest.swap_node(positions[j], {name="ferns:tree_fern_leave_big"})
 | 
				
			||||||
				else
 | 
									else
 | 
				
			||||||
					endpos = j
 | 
										endpos = j
 | 
				
			||||||
					break
 | 
										break
 | 
				
			||||||
@@ -94,7 +94,7 @@ abstract_ferns.grow_giant_tree_fern = function(pos)
 | 
				
			|||||||
			end
 | 
								end
 | 
				
			||||||
			-- add the terminating leaf if required and possible
 | 
								-- add the terminating leaf if required and possible
 | 
				
			||||||
			if endpos == 4 and minetest.get_node(positions[endpos]).name == "air" then
 | 
								if endpos == 4 and minetest.get_node(positions[endpos]).name == "air" then
 | 
				
			||||||
				minetest.set_node(positions[endpos], {name="ferns:tree_fern_leave_big_end", param2=rot})
 | 
									minetest.swap_node(positions[endpos], {name="ferns:tree_fern_leave_big_end", param2=rot})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -35,11 +35,11 @@ abstract_ferns.grow_tree_fern = function(pos)
 | 
				
			|||||||
			brk = true
 | 
								brk = true
 | 
				
			||||||
			break
 | 
								break
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
		minetest.set_node({x = pos.x, y = pos.y + i, z = pos.z}, { name = "ferns:fern_trunk" })
 | 
							minetest.swap_node({x = pos.x, y = pos.y + i, z = pos.z}, { name = "ferns:fern_trunk" })
 | 
				
			||||||
		i = i + 1
 | 
							i = i + 1
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
	if not brk then
 | 
						if not brk then
 | 
				
			||||||
		minetest.set_node({x = pos.x, y = pos.y + i - 1, z = pos.z}, { name = crown })
 | 
							minetest.swap_node({x = pos.x, y = pos.y + i - 1, z = pos.z}, { name = crown })
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -115,10 +115,10 @@ for i in ipairs(lilies_list) do
 | 
				
			|||||||
					elseif waterlily == 8 then
 | 
										elseif waterlily == 8 then
 | 
				
			||||||
						nodename = "flowers:waterlily_s4"
 | 
											nodename = "flowers:waterlily_s4"
 | 
				
			||||||
					end
 | 
										end
 | 
				
			||||||
					minetest.set_node(place_pos, {name = nodename, param2 = math.random(0,3) })
 | 
										minetest.swap_node(place_pos, {name = nodename, param2 = math.random(0,3) })
 | 
				
			||||||
				else
 | 
									else
 | 
				
			||||||
					local fdir = minetest.dir_to_facedir(placer:get_look_dir())
 | 
										local fdir = minetest.dir_to_facedir(placer:get_look_dir())
 | 
				
			||||||
					minetest.set_node(place_pos, {name = "flowers:waterlily", param2 = fdir})
 | 
										minetest.swap_node(place_pos, {name = "flowers:waterlily", param2 = fdir})
 | 
				
			||||||
				end
 | 
									end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				if not biome_lib.expect_infinite_stacks then
 | 
									if not biome_lib.expect_infinite_stacks then
 | 
				
			||||||
@@ -207,10 +207,10 @@ for i in ipairs(algae_list) do
 | 
				
			|||||||
					elseif seaweed == 4 then
 | 
										elseif seaweed == 4 then
 | 
				
			||||||
						nodename = "flowers:seaweed_4"
 | 
											nodename = "flowers:seaweed_4"
 | 
				
			||||||
					end
 | 
										end
 | 
				
			||||||
					minetest.set_node(place_pos, {name = nodename, param2 = math.random(0,3) })
 | 
										minetest.swap_node(place_pos, {name = nodename, param2 = math.random(0,3) })
 | 
				
			||||||
				else
 | 
									else
 | 
				
			||||||
					local fdir = minetest.dir_to_facedir(placer:get_look_dir())
 | 
										local fdir = minetest.dir_to_facedir(placer:get_look_dir())
 | 
				
			||||||
					minetest.set_node(place_pos, {name = "flowers:seaweed", param2 = fdir})
 | 
										minetest.swap_node(place_pos, {name = "flowers:seaweed", param2 = fdir})
 | 
				
			||||||
				end
 | 
									end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				if not biome_lib.expect_infinite_stacks then
 | 
									if not biome_lib.expect_infinite_stacks then
 | 
				
			||||||
@@ -294,7 +294,7 @@ flowers_plus.grow_waterlily = function(pos)
 | 
				
			|||||||
		end
 | 
							end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if chance == num then
 | 
							if chance == num then
 | 
				
			||||||
			minetest.set_node(right_here, {name="flowers:waterlily"..ext, param2=math.random(0,3)})
 | 
								minetest.swap_node(right_here, {name="flowers:waterlily"..ext, param2=math.random(0,3)})
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
@@ -318,7 +318,7 @@ biome_lib:register_generate_plant({
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
flowers_plus.grow_seaweed = function(pos)
 | 
					flowers_plus.grow_seaweed = function(pos)
 | 
				
			||||||
	local right_here = {x=pos.x, y=pos.y+1, z=pos.z}
 | 
						local right_here = {x=pos.x, y=pos.y+1, z=pos.z}
 | 
				
			||||||
	minetest.set_node(right_here, {name="along_shore:seaweed_"..math.random(1,4), param2=math.random(1,3)})
 | 
						minetest.swap_node(right_here, {name="along_shore:seaweed_"..math.random(1,4), param2=math.random(1,3)})
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
biome_lib:register_generate_plant({
 | 
					biome_lib:register_generate_plant({
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -58,7 +58,7 @@ abstract_molehills.place_molehill = function(pos)
 | 
				
			|||||||
	and minetest.get_node({x=pos.x+1, y=pos.y, z=pos.z-1}).name ~= "air"
 | 
						and minetest.get_node({x=pos.x+1, y=pos.y, z=pos.z-1}).name ~= "air"
 | 
				
			||||||
	and minetest.get_node({x=pos.x-1, y=pos.y, z=pos.z+1}).name ~= "air"
 | 
						and minetest.get_node({x=pos.x-1, y=pos.y, z=pos.z+1}).name ~= "air"
 | 
				
			||||||
	and minetest.get_node({x=pos.x-1, y=pos.y, z=pos.z-1}).name ~= "air" then
 | 
						and minetest.get_node({x=pos.x-1, y=pos.y, z=pos.z-1}).name ~= "air" then
 | 
				
			||||||
		minetest.set_node(right_here, {name="molehills:molehill"})
 | 
							minetest.swap_node(right_here, {name="molehills:molehill"})
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,7 +9,7 @@ local function spawn_apple_under(pos)
 | 
				
			|||||||
		z = pos.z,
 | 
							z = pos.z,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
    if minetest.get_node(below).name == "air" then
 | 
					    if minetest.get_node(below).name == "air" then
 | 
				
			||||||
		minetest.set_node(below, { name = "default:apple" })
 | 
							minetest.swap_node(below, { name = "default:apple" })
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -67,7 +67,7 @@ function nature:grow_node(pos, nodename)
 | 
				
			|||||||
                >= nature.minimum_growth_light
 | 
					                >= nature.minimum_growth_light
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if is_not_young(pos) and light_enough then
 | 
					        if is_not_young(pos) and light_enough then
 | 
				
			||||||
            minetest.set_node(pos, { name = nodename })
 | 
					            minetest.swap_node(pos, { name = nodename })
 | 
				
			||||||
            set_young_node(pos)
 | 
					            set_young_node(pos)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            minetest.log("info", nodename .. " has grown at " .. pos.x .. ","
 | 
					            minetest.log("info", nodename .. " has grown at " .. pos.x .. ","
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -37,7 +37,7 @@ abstract_trunks.place_twig = function(pos)
 | 
				
			|||||||
	local node_n_w		= minetest.get_node(north_west)
 | 
						local node_n_w		= minetest.get_node(north_west)
 | 
				
			||||||
--	small twigs
 | 
					--	small twigs
 | 
				
			||||||
	if twig_size <= 16 then
 | 
						if twig_size <= 16 then
 | 
				
			||||||
		minetest.set_node(right_here, {name="trunks:twig_"..math.random(1,4), param2=math.random(0,3)})
 | 
							minetest.swap_node(right_here, {name="trunks:twig_"..math.random(1,4), param2=math.random(0,3)})
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
--	big twigs
 | 
					--	big twigs
 | 
				
			||||||
	if Big_Twigs == true then
 | 
						if Big_Twigs == true then
 | 
				
			||||||
@@ -47,13 +47,13 @@ abstract_trunks.place_twig = function(pos)
 | 
				
			|||||||
			or minetest.registered_nodes[minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z}).name].buildable_to) then
 | 
								or minetest.registered_nodes[minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z}).name].buildable_to) then
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if minetest.registered_nodes[node_here.name].buildable_to then
 | 
								if minetest.registered_nodes[node_here.name].buildable_to then
 | 
				
			||||||
				minetest.set_node(right_here, {name="trunks:twig_5"})
 | 
									minetest.swap_node(right_here, {name="trunks:twig_5"})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
			if minetest.registered_nodes[node_n_e.name].buildable_to then
 | 
								if minetest.registered_nodes[node_n_e.name].buildable_to then
 | 
				
			||||||
				minetest.set_node(north_east, {name="trunks:twig_7"})
 | 
									minetest.swap_node(north_east, {name="trunks:twig_7"})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
			if minetest.registered_nodes[node_east.name].buildable_to then
 | 
								if minetest.registered_nodes[node_east.name].buildable_to then
 | 
				
			||||||
				minetest.set_node(east,		  {name="trunks:twig_8"})
 | 
									minetest.swap_node(east,		  {name="trunks:twig_8"})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
	elseif twig_size == 18 then
 | 
						elseif twig_size == 18 then
 | 
				
			||||||
@@ -61,13 +61,13 @@ abstract_trunks.place_twig = function(pos)
 | 
				
			|||||||
			or minetest.registered_nodes[minetest.get_node({x=pos.x,y=pos.y,z=pos.z-1}).name].buildable_to) then
 | 
								or minetest.registered_nodes[minetest.get_node({x=pos.x,y=pos.y,z=pos.z-1}).name].buildable_to) then
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if minetest.registered_nodes[node_here.name].buildable_to then
 | 
								if minetest.registered_nodes[node_here.name].buildable_to then
 | 
				
			||||||
				minetest.set_node(right_here, {name="trunks:twig_5", param2=1})
 | 
									minetest.swap_node(right_here, {name="trunks:twig_5", param2=1})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
			if minetest.registered_nodes[node_s_e.name].buildable_to then
 | 
								if minetest.registered_nodes[node_s_e.name].buildable_to then
 | 
				
			||||||
				minetest.set_node(south_east, {name="trunks:twig_7", param2=1})
 | 
									minetest.swap_node(south_east, {name="trunks:twig_7", param2=1})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
			if minetest.registered_nodes[node_south.name].buildable_to then
 | 
								if minetest.registered_nodes[node_south.name].buildable_to then
 | 
				
			||||||
				minetest.set_node(south,	  {name="trunks:twig_8", param2=1})
 | 
									minetest.swap_node(south,	  {name="trunks:twig_8", param2=1})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
	elseif twig_size == 19 then
 | 
						elseif twig_size == 19 then
 | 
				
			||||||
@@ -75,13 +75,13 @@ abstract_trunks.place_twig = function(pos)
 | 
				
			|||||||
			or minetest.registered_nodes[minetest.get_node({x=pos.x-1,y=pos.y,z=pos.z}).name].buildable_to) then
 | 
								or minetest.registered_nodes[minetest.get_node({x=pos.x-1,y=pos.y,z=pos.z}).name].buildable_to) then
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if minetest.registered_nodes[node_here.name].buildable_to then
 | 
								if minetest.registered_nodes[node_here.name].buildable_to then
 | 
				
			||||||
				minetest.set_node(right_here, {name="trunks:twig_5", param2=2})
 | 
									minetest.swap_node(right_here, {name="trunks:twig_5", param2=2})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
			if minetest.registered_nodes[node_s_w.name].buildable_to then
 | 
								if minetest.registered_nodes[node_s_w.name].buildable_to then
 | 
				
			||||||
				minetest.set_node(south_west, {name="trunks:twig_7", param2=2})
 | 
									minetest.swap_node(south_west, {name="trunks:twig_7", param2=2})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
			if minetest.registered_nodes[node_west.name].buildable_to then
 | 
								if minetest.registered_nodes[node_west.name].buildable_to then
 | 
				
			||||||
				minetest.set_node(west,		  {name="trunks:twig_8", param2=2})
 | 
									minetest.swap_node(west,		  {name="trunks:twig_8", param2=2})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
	elseif twig_size == 20 then
 | 
						elseif twig_size == 20 then
 | 
				
			||||||
@@ -89,13 +89,13 @@ abstract_trunks.place_twig = function(pos)
 | 
				
			|||||||
			or minetest.registered_nodes[minetest.get_node({x=pos.x,y=pos.y,z=pos.z+1}).name].buildable_to) then
 | 
								or minetest.registered_nodes[minetest.get_node({x=pos.x,y=pos.y,z=pos.z+1}).name].buildable_to) then
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if minetest.registered_nodes[node_here.name].buildable_to then
 | 
								if minetest.registered_nodes[node_here.name].buildable_to then
 | 
				
			||||||
				minetest.set_node(right_here, {name="trunks:twig_5", param2=3})
 | 
									minetest.swap_node(right_here, {name="trunks:twig_5", param2=3})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
			if minetest.registered_nodes[node_n_w.name].buildable_to then
 | 
								if minetest.registered_nodes[node_n_w.name].buildable_to then
 | 
				
			||||||
				minetest.set_node(north_west, {name="trunks:twig_7", param2=3})
 | 
									minetest.swap_node(north_west, {name="trunks:twig_7", param2=3})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
			if minetest.registered_nodes[node_north.name].buildable_to then
 | 
								if minetest.registered_nodes[node_north.name].buildable_to then
 | 
				
			||||||
				minetest.set_node(north,	  {name="trunks:twig_8", param2=3})
 | 
									minetest.swap_node(north,	  {name="trunks:twig_8", param2=3})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
--	big twig 2
 | 
					--	big twig 2
 | 
				
			||||||
@@ -104,13 +104,13 @@ abstract_trunks.place_twig = function(pos)
 | 
				
			|||||||
			or minetest.registered_nodes[minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z+1}).name].buildable_to) then
 | 
								or minetest.registered_nodes[minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z+1}).name].buildable_to) then
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if minetest.registered_nodes[node_here.name].buildable_to then
 | 
								if minetest.registered_nodes[node_here.name].buildable_to then
 | 
				
			||||||
				minetest.set_node(right_here, {name="trunks:twig_9"})
 | 
									minetest.swap_node(right_here, {name="trunks:twig_9"})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
			if minetest.registered_nodes[node_north.name].buildable_to then
 | 
								if minetest.registered_nodes[node_north.name].buildable_to then
 | 
				
			||||||
				minetest.set_node(north,	  {name="trunks:twig_10"})
 | 
									minetest.swap_node(north,	  {name="trunks:twig_10"})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
			if minetest.registered_nodes[node_n_e.name].buildable_to then
 | 
								if minetest.registered_nodes[node_n_e.name].buildable_to then
 | 
				
			||||||
				minetest.set_node(north_east, {name="trunks:twig_11"})
 | 
									minetest.swap_node(north_east, {name="trunks:twig_11"})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
	elseif twig_size == 22 then
 | 
						elseif twig_size == 22 then
 | 
				
			||||||
@@ -118,13 +118,13 @@ abstract_trunks.place_twig = function(pos)
 | 
				
			|||||||
			or minetest.registered_nodes[minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z-1}).name].buildable_to) then
 | 
								or minetest.registered_nodes[minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z-1}).name].buildable_to) then
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if minetest.registered_nodes[node_here.name].buildable_to then
 | 
								if minetest.registered_nodes[node_here.name].buildable_to then
 | 
				
			||||||
				minetest.set_node(right_here, {name="trunks:twig_9", param2=1})
 | 
									minetest.swap_node(right_here, {name="trunks:twig_9", param2=1})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
			if minetest.registered_nodes[node_east.name].buildable_to then
 | 
								if minetest.registered_nodes[node_east.name].buildable_to then
 | 
				
			||||||
				minetest.set_node(east,		  {name="trunks:twig_10", param2=1})
 | 
									minetest.swap_node(east,		  {name="trunks:twig_10", param2=1})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
			if minetest.registered_nodes[node_s_e.name].buildable_to then
 | 
								if minetest.registered_nodes[node_s_e.name].buildable_to then
 | 
				
			||||||
				minetest.set_node(south_east, {name="trunks:twig_11", param2=1})
 | 
									minetest.swap_node(south_east, {name="trunks:twig_11", param2=1})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
	elseif twig_size == 23 then
 | 
						elseif twig_size == 23 then
 | 
				
			||||||
@@ -132,13 +132,13 @@ abstract_trunks.place_twig = function(pos)
 | 
				
			|||||||
			or minetest.registered_nodes[minetest.get_node({x=pos.x-1,y=pos.y,z=pos.z-1}).name].buildable_to) then
 | 
								or minetest.registered_nodes[minetest.get_node({x=pos.x-1,y=pos.y,z=pos.z-1}).name].buildable_to) then
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if minetest.registered_nodes[node_here.name].buildable_to then
 | 
								if minetest.registered_nodes[node_here.name].buildable_to then
 | 
				
			||||||
				minetest.set_node(right_here, {name="trunks:twig_9", param2=2})
 | 
									minetest.swap_node(right_here, {name="trunks:twig_9", param2=2})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
			if minetest.registered_nodes[node_south.name].buildable_to then
 | 
								if minetest.registered_nodes[node_south.name].buildable_to then
 | 
				
			||||||
				minetest.set_node(south,	  {name="trunks:twig_10", param2=2})
 | 
									minetest.swap_node(south,	  {name="trunks:twig_10", param2=2})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
			if minetest.registered_nodes[node_s_w.name].buildable_to then
 | 
								if minetest.registered_nodes[node_s_w.name].buildable_to then
 | 
				
			||||||
				minetest.set_node(south_west, {name="trunks:twig_11", param2=2})
 | 
									minetest.swap_node(south_west, {name="trunks:twig_11", param2=2})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
	elseif twig_size == 24 then
 | 
						elseif twig_size == 24 then
 | 
				
			||||||
@@ -146,17 +146,17 @@ abstract_trunks.place_twig = function(pos)
 | 
				
			|||||||
			or minetest.registered_nodes[minetest.get_node({x=pos.x-1,y=pos.y,z=pos.z+1}).name].buildable_to) then
 | 
								or minetest.registered_nodes[minetest.get_node({x=pos.x-1,y=pos.y,z=pos.z+1}).name].buildable_to) then
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if minetest.registered_nodes[node_here.name].buildable_to then
 | 
								if minetest.registered_nodes[node_here.name].buildable_to then
 | 
				
			||||||
				minetest.set_node(right_here, {name="trunks:twig_9", param2=3})
 | 
									minetest.swap_node(right_here, {name="trunks:twig_9", param2=3})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
			if minetest.registered_nodes[node_west.name].buildable_to then
 | 
								if minetest.registered_nodes[node_west.name].buildable_to then
 | 
				
			||||||
				minetest.set_node(west,		  {name="trunks:twig_10", param2=3})
 | 
									minetest.swap_node(west,		  {name="trunks:twig_10", param2=3})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
			if minetest.registered_nodes[node_n_w.name].buildable_to then
 | 
								if minetest.registered_nodes[node_n_w.name].buildable_to then
 | 
				
			||||||
				minetest.set_node(north_west, {name="trunks:twig_11", param2=3})
 | 
									minetest.swap_node(north_west, {name="trunks:twig_11", param2=3})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
	elseif twig_size <= 25 then
 | 
						elseif twig_size <= 25 then
 | 
				
			||||||
		minetest.set_node(right_here, {name="trunks:twig_"..math.random(12,13), param2=math.random(0,3)})
 | 
							minetest.swap_node(right_here, {name="trunks:twig_"..math.random(12,13), param2=math.random(0,3)})
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
@@ -269,70 +269,70 @@ abstract_trunks.place_trunk = function(pos)
 | 
				
			|||||||
				local trunk_type = math.random(1,3)
 | 
									local trunk_type = math.random(1,3)
 | 
				
			||||||
				if trunk_type == 1 then
 | 
									if trunk_type == 1 then
 | 
				
			||||||
					if minetest.get_modpath(MoD) ~= nil then
 | 
										if minetest.get_modpath(MoD) ~= nil then
 | 
				
			||||||
						minetest.set_node(right_here, {name=MoD..":"..TRuNK})
 | 
											minetest.swap_node(right_here, {name=MoD..":"..TRuNK})
 | 
				
			||||||
					else
 | 
										else
 | 
				
			||||||
						minetest.set_node(right_here, {name="default:tree"})
 | 
											minetest.swap_node(right_here, {name="default:tree"})
 | 
				
			||||||
					end
 | 
										end
 | 
				
			||||||
				elseif trunk_type == 2 and Horizontal_Trunks == true then
 | 
									elseif trunk_type == 2 and Horizontal_Trunks == true then
 | 
				
			||||||
					if minetest.get_modpath(MoD) ~= nil then
 | 
										if minetest.get_modpath(MoD) ~= nil then
 | 
				
			||||||
						if minetest.registered_nodes[node_north.name].buildable_to then
 | 
											if minetest.registered_nodes[node_north.name].buildable_to then
 | 
				
			||||||
							minetest.set_node(north, {name=MoD..":"..TRuNK, param2=4})
 | 
												minetest.swap_node(north, {name=MoD..":"..TRuNK, param2=4})
 | 
				
			||||||
						end
 | 
											end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
						if length >= 4 and minetest.registered_nodes[node_north2.name].buildable_to then
 | 
											if length >= 4 and minetest.registered_nodes[node_north2.name].buildable_to then
 | 
				
			||||||
							minetest.set_node(north2, {name=MoD..":"..TRuNK, param2=4})
 | 
												minetest.swap_node(north2, {name=MoD..":"..TRuNK, param2=4})
 | 
				
			||||||
						end
 | 
											end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
						minetest.set_node(right_here, {name=MoD..":"..TRuNK, param2=4})
 | 
											minetest.swap_node(right_here, {name=MoD..":"..TRuNK, param2=4})
 | 
				
			||||||
						if minetest.registered_nodes[node_south.name].buildable_to then
 | 
											if minetest.registered_nodes[node_south.name].buildable_to then
 | 
				
			||||||
							minetest.set_node(south, {name=MoD..":"..TRuNK, param2=4})
 | 
												minetest.swap_node(south, {name=MoD..":"..TRuNK, param2=4})
 | 
				
			||||||
						end
 | 
											end
 | 
				
			||||||
						if length == 5 and minetest.registered_nodes[node_south2.name].buildable_to then
 | 
											if length == 5 and minetest.registered_nodes[node_south2.name].buildable_to then
 | 
				
			||||||
							minetest.set_node(south2, {name=MoD..":"..TRuNK, param2=4})
 | 
												minetest.swap_node(south2, {name=MoD..":"..TRuNK, param2=4})
 | 
				
			||||||
						end
 | 
											end
 | 
				
			||||||
					else
 | 
										else
 | 
				
			||||||
						if minetest.registered_nodes[node_north.name].buildable_to then
 | 
											if minetest.registered_nodes[node_north.name].buildable_to then
 | 
				
			||||||
							minetest.set_node(north, {name="default:tree", param2=4})
 | 
												minetest.swap_node(north, {name="default:tree", param2=4})
 | 
				
			||||||
						end
 | 
											end
 | 
				
			||||||
						if length >= 4 and minetest.registered_nodes[node_north2.name].buildable_to then
 | 
											if length >= 4 and minetest.registered_nodes[node_north2.name].buildable_to then
 | 
				
			||||||
							minetest.set_node(north2, {name="default:tree", param2=4})
 | 
												minetest.swap_node(north2, {name="default:tree", param2=4})
 | 
				
			||||||
						end
 | 
											end
 | 
				
			||||||
						minetest.set_node(right_here, {name="default:tree", param2=4})
 | 
											minetest.swap_node(right_here, {name="default:tree", param2=4})
 | 
				
			||||||
						if minetest.registered_nodes[node_south.name].buildable_to then
 | 
											if minetest.registered_nodes[node_south.name].buildable_to then
 | 
				
			||||||
							minetest.set_node(south, {name="default:tree", param2=4})
 | 
												minetest.swap_node(south, {name="default:tree", param2=4})
 | 
				
			||||||
						end
 | 
											end
 | 
				
			||||||
						if length == 5 and minetest.registered_nodes[node_south2.name].buildable_to then
 | 
											if length == 5 and minetest.registered_nodes[node_south2.name].buildable_to then
 | 
				
			||||||
							minetest.set_node(south2, {name="default:tree", param2=4})
 | 
												minetest.swap_node(south2, {name="default:tree", param2=4})
 | 
				
			||||||
						end
 | 
											end
 | 
				
			||||||
					end
 | 
										end
 | 
				
			||||||
				elseif trunk_type == 3 and Horizontal_Trunks == true then
 | 
									elseif trunk_type == 3 and Horizontal_Trunks == true then
 | 
				
			||||||
					if minetest.get_modpath(MoD) ~= nil then
 | 
										if minetest.get_modpath(MoD) ~= nil then
 | 
				
			||||||
						if minetest.registered_nodes[node_west.name].buildable_to then
 | 
											if minetest.registered_nodes[node_west.name].buildable_to then
 | 
				
			||||||
							minetest.set_node(west, {name=MoD..":"..TRuNK, param2=12})
 | 
												minetest.swap_node(west, {name=MoD..":"..TRuNK, param2=12})
 | 
				
			||||||
						end
 | 
											end
 | 
				
			||||||
						if length >= 4 and minetest.registered_nodes[node_west2.name].buildable_to then
 | 
											if length >= 4 and minetest.registered_nodes[node_west2.name].buildable_to then
 | 
				
			||||||
							minetest.set_node(west2, {name=MoD..":"..TRuNK, param2=12})
 | 
												minetest.swap_node(west2, {name=MoD..":"..TRuNK, param2=12})
 | 
				
			||||||
						end
 | 
											end
 | 
				
			||||||
						minetest.set_node(right_here, {name=MoD..":"..TRuNK, param2=12})
 | 
											minetest.swap_node(right_here, {name=MoD..":"..TRuNK, param2=12})
 | 
				
			||||||
						if minetest.registered_nodes[node_east.name].buildable_to then
 | 
											if minetest.registered_nodes[node_east.name].buildable_to then
 | 
				
			||||||
							minetest.set_node(east, {name=MoD..":"..TRuNK, param2=12})
 | 
												minetest.swap_node(east, {name=MoD..":"..TRuNK, param2=12})
 | 
				
			||||||
						end
 | 
											end
 | 
				
			||||||
						if length == 5 and minetest.registered_nodes[node_east2.name].buildable_to then
 | 
											if length == 5 and minetest.registered_nodes[node_east2.name].buildable_to then
 | 
				
			||||||
							minetest.set_node(east2, {name=MoD..":"..TRuNK, param2=12})
 | 
												minetest.swap_node(east2, {name=MoD..":"..TRuNK, param2=12})
 | 
				
			||||||
						end
 | 
											end
 | 
				
			||||||
					else
 | 
										else
 | 
				
			||||||
						if minetest.registered_nodes[node_west.name].buildable_to then
 | 
											if minetest.registered_nodes[node_west.name].buildable_to then
 | 
				
			||||||
							minetest.set_node(west, {name="default:tree", param2=12})
 | 
												minetest.swap_node(west, {name="default:tree", param2=12})
 | 
				
			||||||
						end
 | 
											end
 | 
				
			||||||
						if length >= 4 and minetest.registered_nodes[node_west2.name].buildable_to then
 | 
											if length >= 4 and minetest.registered_nodes[node_west2.name].buildable_to then
 | 
				
			||||||
							minetest.set_node(west2, {name="default:tree", param2=12})
 | 
												minetest.swap_node(west2, {name="default:tree", param2=12})
 | 
				
			||||||
						end
 | 
											end
 | 
				
			||||||
						minetest.set_node(right_here, {name="default:tree", param2=12})
 | 
											minetest.swap_node(right_here, {name="default:tree", param2=12})
 | 
				
			||||||
						if minetest.registered_nodes[node_east.name].buildable_to then
 | 
											if minetest.registered_nodes[node_east.name].buildable_to then
 | 
				
			||||||
							minetest.set_node(east, {name="default:tree", param2=12})
 | 
												minetest.swap_node(east, {name="default:tree", param2=12})
 | 
				
			||||||
						end
 | 
											end
 | 
				
			||||||
						if length == 5 and minetest.registered_nodes[node_east2.name].buildable_to then
 | 
											if length == 5 and minetest.registered_nodes[node_east2.name].buildable_to then
 | 
				
			||||||
							minetest.set_node(east2, {name="default:tree", param2=12})
 | 
												minetest.swap_node(east2, {name="default:tree", param2=12})
 | 
				
			||||||
						end
 | 
											end
 | 
				
			||||||
					end
 | 
										end
 | 
				
			||||||
				end
 | 
									end
 | 
				
			||||||
@@ -367,9 +367,9 @@ abstract_trunks.grow_moss_on_ground = function(pos)
 | 
				
			|||||||
	local moss_type = math.random(1,21)
 | 
						local moss_type = math.random(1,21)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if moss_type == 1 then
 | 
						if moss_type == 1 then
 | 
				
			||||||
		minetest.set_node(on_ground, {name="trunks:moss_fungus", param2=math.random(0,3)})
 | 
							minetest.swap_node(on_ground, {name="trunks:moss_fungus", param2=math.random(0,3)})
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
		minetest.set_node(on_ground, {name="trunks:moss", param2=math.random(0,3)})
 | 
							minetest.swap_node(on_ground, {name="trunks:moss", param2=math.random(0,3)})
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
@@ -418,41 +418,41 @@ abstract_trunks.grow_moss_on_trunk = function(pos)
 | 
				
			|||||||
		local moss_type = math.random(1,41)
 | 
							local moss_type = math.random(1,41)
 | 
				
			||||||
		if minetest.registered_nodes[node_here.name].buildable_to then -- instead of check_air = true,
 | 
							if minetest.registered_nodes[node_here.name].buildable_to then -- instead of check_air = true,
 | 
				
			||||||
			if moss_type == 1 then
 | 
								if moss_type == 1 then
 | 
				
			||||||
				minetest.set_node(on_ground, {name="trunks:moss_fungus", param2=math.random(0,3) --[[1]]})
 | 
									minetest.swap_node(on_ground, {name="trunks:moss_fungus", param2=math.random(0,3) --[[1]]})
 | 
				
			||||||
			elseif moss_type < 22 then
 | 
								elseif moss_type < 22 then
 | 
				
			||||||
				minetest.set_node(on_ground, {name="trunks:moss", param2=math.random(0,3) --[[1]]})
 | 
									minetest.swap_node(on_ground, {name="trunks:moss", param2=math.random(0,3) --[[1]]})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
		local moss_type = math.random(1,31) -- cliche of more moss at north
 | 
							local moss_type = math.random(1,31) -- cliche of more moss at north
 | 
				
			||||||
		if minetest.registered_nodes[node_north.name].buildable_to then -- instead of check_air = true,
 | 
							if minetest.registered_nodes[node_north.name].buildable_to then -- instead of check_air = true,
 | 
				
			||||||
			if moss_type == 1 then
 | 
								if moss_type == 1 then
 | 
				
			||||||
				minetest.set_node(at_side_n, {name="trunks:moss_fungus", param2=math.random(4,7)}) -- 5,4,6,7
 | 
									minetest.swap_node(at_side_n, {name="trunks:moss_fungus", param2=math.random(4,7)}) -- 5,4,6,7
 | 
				
			||||||
			elseif moss_type < 22 then
 | 
								elseif moss_type < 22 then
 | 
				
			||||||
				minetest.set_node(at_side_n, {name="trunks:moss", param2=math.random(4,7)})
 | 
									minetest.swap_node(at_side_n, {name="trunks:moss", param2=math.random(4,7)})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
		local moss_type = math.random(1,41)
 | 
							local moss_type = math.random(1,41)
 | 
				
			||||||
		if minetest.registered_nodes[node_east.name].buildable_to then -- instead of check_air = true,
 | 
							if minetest.registered_nodes[node_east.name].buildable_to then -- instead of check_air = true,
 | 
				
			||||||
			if moss_type == 1 then
 | 
								if moss_type == 1 then
 | 
				
			||||||
				minetest.set_node(at_side_e, {name="trunks:moss_fungus", param2=math.random(12,15)})
 | 
									minetest.swap_node(at_side_e, {name="trunks:moss_fungus", param2=math.random(12,15)})
 | 
				
			||||||
			elseif moss_type < 22 then
 | 
								elseif moss_type < 22 then
 | 
				
			||||||
				minetest.set_node(at_side_e, {name="trunks:moss", param2=math.random(12,15)})
 | 
									minetest.swap_node(at_side_e, {name="trunks:moss", param2=math.random(12,15)})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
		local moss_type = math.random(1,41)
 | 
							local moss_type = math.random(1,41)
 | 
				
			||||||
		if minetest.registered_nodes[node_south.name].buildable_to then -- instead of check_air = true,
 | 
							if minetest.registered_nodes[node_south.name].buildable_to then -- instead of check_air = true,
 | 
				
			||||||
			if moss_type == 1 then
 | 
								if moss_type == 1 then
 | 
				
			||||||
				minetest.set_node(at_side_s, {name="trunks:moss_fungus", param2=math.random(8,11)})
 | 
									minetest.swap_node(at_side_s, {name="trunks:moss_fungus", param2=math.random(8,11)})
 | 
				
			||||||
			elseif moss_type < 22 then
 | 
								elseif moss_type < 22 then
 | 
				
			||||||
				minetest.set_node(at_side_s, {name="trunks:moss", param2=math.random(8,11)})
 | 
									minetest.swap_node(at_side_s, {name="trunks:moss", param2=math.random(8,11)})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
		local moss_type = math.random(1,41)
 | 
							local moss_type = math.random(1,41)
 | 
				
			||||||
		if minetest.registered_nodes[node_west.name].buildable_to then -- instead of check_air = true,
 | 
							if minetest.registered_nodes[node_west.name].buildable_to then -- instead of check_air = true,
 | 
				
			||||||
			if moss_type == 1 then
 | 
								if moss_type == 1 then
 | 
				
			||||||
				minetest.set_node(at_side_w, {name="trunks:moss_fungus", param2=math.random(16,19)})
 | 
									minetest.swap_node(at_side_w, {name="trunks:moss_fungus", param2=math.random(16,19)})
 | 
				
			||||||
			elseif moss_type < 22 then
 | 
								elseif moss_type < 22 then
 | 
				
			||||||
				minetest.set_node(at_side_w, {name="trunks:moss", param2=math.random(16,19)})
 | 
									minetest.swap_node(at_side_w, {name="trunks:moss", param2=math.random(16,19)})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
	--end
 | 
						--end
 | 
				
			||||||
@@ -520,16 +520,16 @@ abstract_trunks.grow_roots = function(pos)
 | 
				
			|||||||
		and string.find(node_below.name, "dirt")
 | 
							and string.find(node_below.name, "dirt")
 | 
				
			||||||
		and node_here.param2 == 0 then
 | 
							and node_here.param2 == 0 then
 | 
				
			||||||
			if minetest.registered_nodes[node_north.name].buildable_to then
 | 
								if minetest.registered_nodes[node_north.name].buildable_to then
 | 
				
			||||||
				minetest.set_node(north, {name="trunks:"..TRuNK.."root", param2=2})
 | 
									minetest.swap_node(north, {name="trunks:"..TRuNK.."root", param2=2})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
			if minetest.registered_nodes[node_east.name].buildable_to then
 | 
								if minetest.registered_nodes[node_east.name].buildable_to then
 | 
				
			||||||
				minetest.set_node(east, {name="trunks:"..TRuNK.."root", param2=3})
 | 
									minetest.swap_node(east, {name="trunks:"..TRuNK.."root", param2=3})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
			if minetest.registered_nodes[node_south.name].buildable_to then
 | 
								if minetest.registered_nodes[node_south.name].buildable_to then
 | 
				
			||||||
				minetest.set_node(south, {name="trunks:"..TRuNK.."root", param2=0})
 | 
									minetest.swap_node(south, {name="trunks:"..TRuNK.."root", param2=0})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
			if minetest.registered_nodes[node_west.name].buildable_to then
 | 
								if minetest.registered_nodes[node_west.name].buildable_to then
 | 
				
			||||||
				minetest.set_node(west, {name="trunks:"..TRuNK.."root", param2=1})
 | 
									minetest.swap_node(west, {name="trunks:"..TRuNK.."root", param2=1})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -44,7 +44,7 @@ for i in pairs(NoDe) do
 | 
				
			|||||||
			local pt = pointed_thing
 | 
								local pt = pointed_thing
 | 
				
			||||||
			local direction = minetest.dir_to_facedir(placer:get_look_dir())
 | 
								local direction = minetest.dir_to_facedir(placer:get_look_dir())
 | 
				
			||||||
			if minetest.get_node(pt.above).name=="air" then
 | 
								if minetest.get_node(pt.above).name=="air" then
 | 
				
			||||||
				minetest.set_node(pt.above, {name="trunks:twig_"..math.random(1,4), param2=direction})
 | 
									minetest.swap_node(pt.above, {name="trunks:twig_"..math.random(1,4), param2=direction})
 | 
				
			||||||
				if not minetest.setting_getbool("creative_mode") then
 | 
									if not minetest.setting_getbool("creative_mode") then
 | 
				
			||||||
					itemstack:take_item()
 | 
										itemstack:take_item()
 | 
				
			||||||
				end
 | 
									end
 | 
				
			||||||
@@ -227,7 +227,7 @@ if Auto_Roof_Corner == true then
 | 
				
			|||||||
			and ((node_north.name == roof and node_north.param2 == 3)
 | 
								and ((node_north.name == roof and node_north.param2 == 3)
 | 
				
			||||||
			or (node_north.name == corner and node_north.param2 == 3))
 | 
								or (node_north.name == corner and node_north.param2 == 3))
 | 
				
			||||||
			then
 | 
								then
 | 
				
			||||||
				minetest.set_node(pos, {name=corner, param2=0})
 | 
									minetest.swap_node(pos, {name=corner, param2=0})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if ((node_north.name == roof and node_north.param2 == 1)
 | 
								if ((node_north.name == roof and node_north.param2 == 1)
 | 
				
			||||||
@@ -235,7 +235,7 @@ if Auto_Roof_Corner == true then
 | 
				
			|||||||
			and ((node_east.name == roof and node_east.param2 == 0)
 | 
								and ((node_east.name == roof and node_east.param2 == 0)
 | 
				
			||||||
			or (node_east.name == corner and node_east.param2 == 0))
 | 
								or (node_east.name == corner and node_east.param2 == 0))
 | 
				
			||||||
			then
 | 
								then
 | 
				
			||||||
				minetest.set_node(pos, {name=corner, param2=1})
 | 
									minetest.swap_node(pos, {name=corner, param2=1})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if ((node_east.name == roof and node_east.param2 == 2)
 | 
								if ((node_east.name == roof and node_east.param2 == 2)
 | 
				
			||||||
@@ -243,7 +243,7 @@ if Auto_Roof_Corner == true then
 | 
				
			|||||||
			and ((node_south.name == roof and node_south.param2 == 1)
 | 
								and ((node_south.name == roof and node_south.param2 == 1)
 | 
				
			||||||
			or (node_south.name == corner and node_south.param2 == 1))
 | 
								or (node_south.name == corner and node_south.param2 == 1))
 | 
				
			||||||
			then
 | 
								then
 | 
				
			||||||
				minetest.set_node(pos, {name=corner, param2=2})
 | 
									minetest.swap_node(pos, {name=corner, param2=2})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if ((node_south.name == roof and node_south.param2 == 3)
 | 
								if ((node_south.name == roof and node_south.param2 == 3)
 | 
				
			||||||
@@ -251,7 +251,7 @@ if Auto_Roof_Corner == true then
 | 
				
			|||||||
			and ((node_west.name == roof and node_west.param2 == 2)
 | 
								and ((node_west.name == roof and node_west.param2 == 2)
 | 
				
			||||||
			or (node_west.name == corner and node_west.param2 == 2))
 | 
								or (node_west.name == corner and node_west.param2 == 2))
 | 
				
			||||||
			then
 | 
								then
 | 
				
			||||||
				minetest.set_node(pos, {name=corner, param2=3})
 | 
									minetest.swap_node(pos, {name=corner, param2=3})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
		-- corner 2
 | 
							-- corner 2
 | 
				
			||||||
			if ((node_west.name == roof and node_west.param2 == 2)
 | 
								if ((node_west.name == roof and node_west.param2 == 2)
 | 
				
			||||||
@@ -259,7 +259,7 @@ if Auto_Roof_Corner == true then
 | 
				
			|||||||
			and ((node_north.name == roof and node_north.param2 == 1)
 | 
								and ((node_north.name == roof and node_north.param2 == 1)
 | 
				
			||||||
			or (node_north.name == corner_2 and node_north.param2 == 3))
 | 
								or (node_north.name == corner_2 and node_north.param2 == 3))
 | 
				
			||||||
			then
 | 
								then
 | 
				
			||||||
				minetest.set_node(pos, {name=corner_2, param2=0})
 | 
									minetest.swap_node(pos, {name=corner_2, param2=0})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if ((node_north.name == roof and node_north.param2 == 3)
 | 
								if ((node_north.name == roof and node_north.param2 == 3)
 | 
				
			||||||
@@ -267,7 +267,7 @@ if Auto_Roof_Corner == true then
 | 
				
			|||||||
			and ((node_east.name == roof and node_east.param2 == 2)
 | 
								and ((node_east.name == roof and node_east.param2 == 2)
 | 
				
			||||||
			or (node_east.name == corner_2 and node_east.param2 == 0))
 | 
								or (node_east.name == corner_2 and node_east.param2 == 0))
 | 
				
			||||||
			then
 | 
								then
 | 
				
			||||||
				minetest.set_node(pos, {name=corner_2, param2=1})
 | 
									minetest.swap_node(pos, {name=corner_2, param2=1})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if ((node_east.name == roof and node_east.param2 == 0)
 | 
								if ((node_east.name == roof and node_east.param2 == 0)
 | 
				
			||||||
@@ -275,7 +275,7 @@ if Auto_Roof_Corner == true then
 | 
				
			|||||||
			and ((node_south.name == roof and node_south.param2 == 3)
 | 
								and ((node_south.name == roof and node_south.param2 == 3)
 | 
				
			||||||
			or (node_south.name == corner_2 and node_south.param2 == 1))
 | 
								or (node_south.name == corner_2 and node_south.param2 == 1))
 | 
				
			||||||
			then
 | 
								then
 | 
				
			||||||
				minetest.set_node(pos, {name=corner_2, param2=2})
 | 
									minetest.swap_node(pos, {name=corner_2, param2=2})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if ((node_south.name == roof and node_south.param2 == 1)
 | 
								if ((node_south.name == roof and node_south.param2 == 1)
 | 
				
			||||||
@@ -283,7 +283,7 @@ if Auto_Roof_Corner == true then
 | 
				
			|||||||
			and ((node_west.name == roof and node_west.param2 == 0)
 | 
								and ((node_west.name == roof and node_west.param2 == 0)
 | 
				
			||||||
			or (node_west.name == corner_2 and node_west.param2 == 2))
 | 
								or (node_west.name == corner_2 and node_west.param2 == 2))
 | 
				
			||||||
			then
 | 
								then
 | 
				
			||||||
				minetest.set_node(pos, {name=corner_2, param2=3})
 | 
									minetest.swap_node(pos, {name=corner_2, param2=3})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		end,
 | 
							end,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -51,8 +51,8 @@ vines.register_vine = function( name, defs, biome )
 | 
				
			|||||||
      local bottom_node = minetest.get_node( bottom )
 | 
					      local bottom_node = minetest.get_node( bottom )
 | 
				
			||||||
      if bottom_node.name == "air" then
 | 
					      if bottom_node.name == "air" then
 | 
				
			||||||
        if not ( math.random( defs.average_length ) == 1 ) then
 | 
					        if not ( math.random( defs.average_length ) == 1 ) then
 | 
				
			||||||
          minetest.set_node( pos, { name = vine_name_middle, param2 = node.param2 } )
 | 
					          minetest.swap_node( pos, { name = vine_name_middle, param2 = node.param2 } )
 | 
				
			||||||
          minetest.set_node( bottom, { name = node.name, param2 = node.param2 } )
 | 
					          minetest.swap_node( bottom, { name = node.name, param2 = node.param2 } )
 | 
				
			||||||
          local timer = minetest.get_node_timer( bottom_node )
 | 
					          local timer = minetest.get_node_timer( bottom_node )
 | 
				
			||||||
          timer:start( math.random(5, 10) )
 | 
					          timer:start( math.random(5, 10) )
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
@@ -83,7 +83,7 @@ vines.register_vine = function( name, defs, biome )
 | 
				
			|||||||
      local bottom = {x=pos.x, y=pos.y-1, z=pos.z}
 | 
					      local bottom = {x=pos.x, y=pos.y-1, z=pos.z}
 | 
				
			||||||
      local bottom_node = minetest.get_node( bottom )
 | 
					      local bottom_node = minetest.get_node( bottom )
 | 
				
			||||||
      if minetest.get_item_group( bottom_node.name, "vines") > 0 then
 | 
					      if minetest.get_item_group( bottom_node.name, "vines") > 0 then
 | 
				
			||||||
        minetest.after( 0, minetest.remove_node, bottom )
 | 
					        minetest.after( 0, minetest.swap_node, bottom, biome_lib.air )
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
    end,
 | 
					    end,
 | 
				
			||||||
    after_dig_node = function( pos, node, oldmetadata, user )
 | 
					    after_dig_node = function( pos, node, oldmetadata, user )
 | 
				
			||||||
@@ -112,7 +112,7 @@ vines.register_vine = function( name, defs, biome )
 | 
				
			|||||||
      local pos_max = { x = pos.x +1, y = pos.y + 1, z = pos.z + 1 }
 | 
					      local pos_max = { x = pos.x +1, y = pos.y + 1, z = pos.z + 1 }
 | 
				
			||||||
      local positions = minetest.find_nodes_in_area( pos_min, pos_max, "group:vines" )
 | 
					      local positions = minetest.find_nodes_in_area( pos_min, pos_max, "group:vines" )
 | 
				
			||||||
      for index, position in pairs(positions) do
 | 
					      for index, position in pairs(positions) do
 | 
				
			||||||
        minetest.remove_node( position )
 | 
					        minetest.swap_node(position, biome_lib.air)
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  })
 | 
					  })
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -25,7 +25,7 @@ minetest.register_node("vines:rope_block", {
 | 
				
			|||||||
    local p = {x=pos.x, y=pos.y-1, z=pos.z}
 | 
					    local p = {x=pos.x, y=pos.y-1, z=pos.z}
 | 
				
			||||||
    local n = minetest.get_node(p)
 | 
					    local n = minetest.get_node(p)
 | 
				
			||||||
    while ( n.name == 'vines:rope' or n.name == 'vines:rope_end' ) do
 | 
					    while ( n.name == 'vines:rope' or n.name == 'vines:rope_end' ) do
 | 
				
			||||||
      minetest.remove_node(p)
 | 
					      minetest.swap_node(p, biome_lib.air)
 | 
				
			||||||
      p = {x=p.x, y=p.y-1, z=p.z}
 | 
					      p = {x=p.x, y=p.y-1, z=p.z}
 | 
				
			||||||
      n = minetest.get_node(p)
 | 
					      n = minetest.get_node(p)
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
@@ -76,7 +76,7 @@ minetest.register_node("vines:rope_end", {
 | 
				
			|||||||
    local p = {x=pos.x, y=pos.y-1, z=pos.z}
 | 
					    local p = {x=pos.x, y=pos.y-1, z=pos.z}
 | 
				
			||||||
    local n = minetest.get_node(p)
 | 
					    local n = minetest.get_node(p)
 | 
				
			||||||
    if  n.name == "air" then
 | 
					    if  n.name == "air" then
 | 
				
			||||||
      minetest.set_node(pos, {name="vines:rope"})
 | 
					      minetest.swap_node(pos, {name="vines:rope"})
 | 
				
			||||||
      minetest.add_node(p, {name="vines:rope_end"})
 | 
					      minetest.add_node(p, {name="vines:rope_end"})
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
      local timer = minetest.get_node_timer( pos )
 | 
					      local timer = minetest.get_node_timer( pos )
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -50,24 +50,24 @@ abstract_woodsoils.place_soil = function(pos)
 | 
				
			|||||||
			local node_3b = minetest.get_node(radius_3b)
 | 
								local node_3b = minetest.get_node(radius_3b)
 | 
				
			||||||
			-- Dirt with Leaves 1
 | 
								-- Dirt with Leaves 1
 | 
				
			||||||
			if minetest.get_item_group(minetest.get_node(radius_1a).name, "soil") > 0 then
 | 
								if minetest.get_item_group(minetest.get_node(radius_1a).name, "soil") > 0 then
 | 
				
			||||||
				minetest.set_node(radius_1a, {name="woodsoils:dirt_with_leaves_1"})
 | 
									minetest.swap_node(radius_1a, {name="woodsoils:dirt_with_leaves_1"})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
			if minetest.get_item_group(minetest.get_node(radius_1b).name, "soil") > 0 then
 | 
								if minetest.get_item_group(minetest.get_node(radius_1b).name, "soil") > 0 then
 | 
				
			||||||
				minetest.set_node(radius_1b, {name="woodsoils:dirt_with_leaves_1"})
 | 
									minetest.swap_node(radius_1b, {name="woodsoils:dirt_with_leaves_1"})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
			-- Grass with Leaves 2
 | 
								-- Grass with Leaves 2
 | 
				
			||||||
			if string.find(node_2a.name, "dirt_with_grass") then
 | 
								if string.find(node_2a.name, "dirt_with_grass") then
 | 
				
			||||||
				minetest.set_node(radius_2a, {name="woodsoils:grass_with_leaves_2"})
 | 
									minetest.swap_node(radius_2a, {name="woodsoils:grass_with_leaves_2"})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
			if string.find(node_2b.name, "dirt_with_grass") then
 | 
								if string.find(node_2b.name, "dirt_with_grass") then
 | 
				
			||||||
				minetest.set_node(radius_2b, {name="woodsoils:grass_with_leaves_2"})
 | 
									minetest.swap_node(radius_2b, {name="woodsoils:grass_with_leaves_2"})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
			-- Grass with Leaves 1
 | 
								-- Grass with Leaves 1
 | 
				
			||||||
			if string.find(node_3a.name, "dirt_with_grass") then
 | 
								if string.find(node_3a.name, "dirt_with_grass") then
 | 
				
			||||||
				minetest.set_node(radius_3a, {name="woodsoils:grass_with_leaves_1"})
 | 
									minetest.swap_node(radius_3a, {name="woodsoils:grass_with_leaves_1"})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
			if string.find(node_3b.name, "dirt_with_grass") then
 | 
								if string.find(node_3b.name, "dirt_with_grass") then
 | 
				
			||||||
				minetest.set_node(radius_3b, {name="woodsoils:grass_with_leaves_1"})
 | 
									minetest.swap_node(radius_3b, {name="woodsoils:grass_with_leaves_1"})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
@@ -143,7 +143,7 @@ minetest.register_abm({
 | 
				
			|||||||
			end
 | 
								end
 | 
				
			||||||
			if height < 4 then
 | 
								if height < 4 then
 | 
				
			||||||
				if minetest.get_node(pos).name == "air" then
 | 
									if minetest.get_node(pos).name == "air" then
 | 
				
			||||||
					minetest.set_node(pos, {name="default:papyrus"})
 | 
										minetest.swap_node(pos, {name="default:papyrus"})
 | 
				
			||||||
				end
 | 
									end
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -117,17 +117,17 @@ abstract_youngtrees.grow_youngtree_node = function(pos, height)
 | 
				
			|||||||
	if minetest.get_node(right_here).name == "air"  -- instead of check_air = true,
 | 
						if minetest.get_node(right_here).name == "air"  -- instead of check_air = true,
 | 
				
			||||||
	or minetest.get_node(right_here).name == "default:junglegrass" then
 | 
						or minetest.get_node(right_here).name == "default:junglegrass" then
 | 
				
			||||||
		if height == 1 then
 | 
							if height == 1 then
 | 
				
			||||||
				minetest.set_node(right_here, {name="youngtrees:youngtree_top"})
 | 
									minetest.swap_node(right_here, {name="youngtrees:youngtree_top"})
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
		if height == 2 then
 | 
							if height == 2 then
 | 
				
			||||||
				minetest.set_node(right_here, {name="youngtrees:youngtree_bottom"})
 | 
									minetest.swap_node(right_here, {name="youngtrees:youngtree_bottom"})
 | 
				
			||||||
				minetest.set_node(above_right_here, {name="youngtrees:youngtree_top"})
 | 
									minetest.swap_node(above_right_here, {name="youngtrees:youngtree_top"})
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
		if height == 3 then
 | 
							if height == 3 then
 | 
				
			||||||
				local two_above_right_here = {x=pos.x, y=pos.y+3, z=pos.z}
 | 
									local two_above_right_here = {x=pos.x, y=pos.y+3, z=pos.z}
 | 
				
			||||||
				minetest.set_node(right_here, {name="youngtrees:youngtree_bottom"})
 | 
									minetest.swap_node(right_here, {name="youngtrees:youngtree_bottom"})
 | 
				
			||||||
				minetest.set_node(above_right_here, {name="youngtrees:youngtree_middle"})
 | 
									minetest.swap_node(above_right_here, {name="youngtrees:youngtree_middle"})
 | 
				
			||||||
				minetest.set_node(two_above_right_here, {name="youngtrees:youngtree_top"})
 | 
									minetest.swap_node(two_above_right_here, {name="youngtrees:youngtree_top"})
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user