mirror of
				https://github.com/mt-mods/plantlife_modpack.git
				synced 2025-10-31 05:45:24 +01:00 
			
		
		
		
	Compare commits
	
		
			5 Commits
		
	
	
		
			master
			...
			ferns_rm_b
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 80cedce7c6 | ||
|  | 21816e5a43 | ||
|  | 3c390beb0f | ||
|  | e0dca20186 | ||
|  | 25fbc53114 | 
| @@ -79,31 +79,3 @@ minetest.register_craft({ | ||||
| 	output = "dye:green", | ||||
| 	recipe = {"group:horsetail"}, | ||||
| }) | ||||
| ----------------------------------------------------------------------------------------------- | ||||
| -- GLUE WOODEN TOOLS with RESIN & POLISH them with HORSETAIL (planned) | ||||
| ----------------------------------------------------------------------------------------------- | ||||
| --[[minetest.register_craft({ | ||||
| 	type = "shapeless", | ||||
| 	output = "default:pick_wood", | ||||
| 	recipe = {"default:pick_wood","group:horsetail","farming:string","default:stick"}, | ||||
| }) | ||||
| minetest.register_craft({ | ||||
| 	type = "shapeless", | ||||
| 	output = "default:shovel_wood", | ||||
| 	recipe = {"default:shovel_wood","group:horsetail","farming:string","default:stick"}, | ||||
| }) | ||||
| minetest.register_craft({ | ||||
| 	type = "shapeless", | ||||
| 	output = "default:axe_wood", | ||||
| 	recipe = {"default:axe_wood","group:horsetail","farming:string","default:stick"}, | ||||
| }) | ||||
| minetest.register_craft({ | ||||
| 	type = "shapeless", | ||||
| 	output = "default:sword_wood", | ||||
| 	recipe = {"default:sword_wood","group:horsetail","farming:string","default:stick"}, | ||||
| }) | ||||
| minetest.register_craft({ | ||||
| 	type = "shapeless", | ||||
| 	output = "farming:hoe_wood", | ||||
| 	recipe = {"farming:hoe_wood","group:horsetail","farming:string","default:stick"}, | ||||
| })]] | ||||
|   | ||||
							
								
								
									
										248
									
								
								ferns/fern.lua
									
									
									
									
									
								
							
							
						
						
									
										248
									
								
								ferns/fern.lua
									
									
									
									
									
								
							| @@ -4,7 +4,6 @@ | ||||
| -- by Mossmanikin | ||||
| -- Contains code from:		biome_lib | ||||
| -- Looked at code from:		default, flowers, painting, trees | ||||
| -- Dependencies:			biome_lib | ||||
| -- Supports:				dryplants, stoneage, sumpf | ||||
| ----------------------------------------------------------------------------------------------- | ||||
| -- some inspiration from here | ||||
| @@ -12,19 +11,10 @@ | ||||
| -- http://www.mygarden.net.au/gardening/athyrium-yokoscense/3900/1 | ||||
| ----------------------------------------------------------------------------------------------- | ||||
|  | ||||
| assert(abstract_ferns.config.enable_lady_fern == true) | ||||
| minetest.register_alias("ferns:fern_03", "default:fern_3") | ||||
| minetest.register_alias("ferns:fern_02", "default:fern_2") | ||||
| minetest.register_alias("ferns:fern_01", "default:fern_1") | ||||
|  | ||||
| -- support for i18n | ||||
| local S = minetest.get_translator("ferns") | ||||
|  | ||||
| -- Maintain backward compatibilty | ||||
| -- minetest-0.5: Begin | ||||
| local default_ferns = minetest.registered_items["default:fern_1"] or false | ||||
| if default_ferns then | ||||
| 	minetest.register_alias("ferns:fern_03", "default:fern_3") | ||||
| 	minetest.register_alias("ferns:fern_02", "default:fern_2") | ||||
| 	minetest.register_alias("ferns:fern_01", "default:fern_1") | ||||
| end | ||||
| -- minetest-0.5: End | ||||
| minetest.register_alias("archaeplantae:fern",		"ferns:fern_03") | ||||
| minetest.register_alias("archaeplantae:fern_mid",	"ferns:fern_02") | ||||
| @@ -33,183 +23,87 @@ minetest.register_alias("ferns:fern_04",		"ferns:fern_02") -- for placing | ||||
|  | ||||
| local nodenames = {} | ||||
|  | ||||
| local function create_nodes() | ||||
| 	local images	= { "ferns_fern.png", "ferns_fern_mid.png", "ferns_fern_big.png" } | ||||
| 	local vscales	= { 1, math.sqrt(8), math.sqrt(11) } | ||||
| 	local descs		= { S("Lady-fern (Athyrium)"), nil, nil } | ||||
|  | ||||
| 	for i = 1, 3 do | ||||
| 		local node_on_place = nil | ||||
| 		if i == 1 then | ||||
| 			node_on_place = function(itemstack, placer, pointed_thing) | ||||
| 				-- place a random fern | ||||
| 				local stack = ItemStack("ferns:fern_0"..math.random(1,4)) | ||||
| 				local ret = minetest.item_place(stack, placer, pointed_thing) | ||||
| 				return ItemStack("ferns:fern_01 "..itemstack:get_count()-(1-ret:get_count()))	-- TODO FIXME? | ||||
| 			end | ||||
| 		end | ||||
| 		nodenames[i] = "ferns:fern_"..string.format("%02d", i) | ||||
| 		minetest.register_node(nodenames[i], { | ||||
| 			description = descs[i] or (S("Lady-fern (Athyrium)").." " .. string.format("%02d", i)), | ||||
| 			inventory_image = "ferns_fern.png", | ||||
| 			drawtype = "plantlike", | ||||
| 			visual_scale = vscales[i], | ||||
| 			paramtype = "light", | ||||
| 			tiles = { images[i] }, | ||||
| 			walkable = false, | ||||
| 			buildable_to = true, | ||||
| 			groups = {snappy=3,flammable=2,attached_node=1,not_in_creative_inventory=1}, | ||||
| 			sounds = default.node_sound_leaves_defaults(), | ||||
| 			selection_box = { | ||||
| 				type = "fixed", | ||||
| 				fixed = {-7/16, -1/2, -7/16, 7/16, 0, 7/16}, | ||||
| 			}, | ||||
| 			drop = "ferns:fern_01", | ||||
| 			on_place = node_on_place | ||||
| 		}) | ||||
| 	end | ||||
| end | ||||
|  | ||||
| ----------------------------------------------------------------------------------------------- | ||||
| -- Init | ||||
| ----------------------------------------------------------------------------------------------- | ||||
|  | ||||
| if default_ferns then | ||||
| 	for i = 1, 3 do | ||||
| 		nodenames[i] = "ferns:fern_"..string.format("%02d", i) | ||||
| 	end | ||||
| else | ||||
| 	create_nodes() | ||||
| for i = 1, 3 do | ||||
| 	nodenames[i] = "ferns:fern_"..string.format("%02d", i) | ||||
| end | ||||
|  | ||||
| ----------------------------------------------------------------------------------------------- | ||||
| -- Spawning | ||||
| ----------------------------------------------------------------------------------------------- | ||||
|  | ||||
| if abstract_ferns.config.lady_ferns_near_tree == true then | ||||
| 	biome_lib.register_on_generate({ -- near trees (woodlands) | ||||
| 		surface = { | ||||
| 			"default:dirt_with_grass", | ||||
| 			"default:mossycobble", | ||||
| 			"default:desert_sand", | ||||
| 			"default:sand", | ||||
| 			"default:jungletree", | ||||
| 			"stoneage:grass_with_silex", | ||||
| 			"sumpf:sumpf" | ||||
| 		}, | ||||
| 		max_count = 30, | ||||
| 		rarity = 62,--63, | ||||
| 		min_elevation = 1, -- above sea level | ||||
| 		near_nodes = {"group:tree"}, | ||||
| 		near_nodes_size = 3,--4, | ||||
| 		near_nodes_vertical = 2,--3, | ||||
| 		near_nodes_count = 1, | ||||
| 		plantlife_limit = -0.9, | ||||
| 		humidity_max = -1.0, | ||||
| 		humidity_min = 0.4, | ||||
| 		temp_max = -0.5, -- 55 °C (too hot?) | ||||
| 		temp_min = 0.75, -- -12 °C | ||||
| 		random_facedir = { 0, 179 }, | ||||
| minetest.register_decoration({ -- near trees (woodlands) | ||||
| 	decoration = nodenames, | ||||
| 	deco_type = "simple", | ||||
| 	flags = "all_floors", | ||||
| 	place_on = { | ||||
| 		"default:dirt_with_grass", | ||||
| 		"default:mossycobble", | ||||
| 		"default:desert_sand", | ||||
| 		"default:sand", | ||||
| 		"default:jungletree", | ||||
| 		"stoneage:grass_with_silex", | ||||
| 		"sumpf:sumpf" | ||||
| 	}, | ||||
| 	nodenames | ||||
| 	) | ||||
| end | ||||
| 	y_min = 1, -- above sea level | ||||
| 	param2 = 0, | ||||
| 	param2_max = 179, | ||||
| 	spawn_by = "group:tree", | ||||
| 	num_spawn_by = 1, | ||||
| 	fill_ratio = 0.1, | ||||
| }) | ||||
|  | ||||
| if abstract_ferns.config.lady_ferns_near_rock == true then | ||||
| 	biome_lib.register_on_generate({ -- near stone (mountains) | ||||
| 		surface = { | ||||
| 			"default:dirt_with_grass", | ||||
| 			"default:mossycobble", | ||||
| 			"group:falling_node", | ||||
| 			--"default:jungletree", | ||||
| 			"stoneage:grass_with_silex", | ||||
| 			"sumpf:sumpf" | ||||
| 		}, | ||||
| 		max_count = 35, | ||||
| 		rarity = 40, | ||||
| 		min_elevation = 1, -- above sea level | ||||
| 		near_nodes = {"group:stone"}, | ||||
| 		near_nodes_size = 1, | ||||
| 		near_nodes_count = 16, | ||||
| 		plantlife_limit = -0.9, | ||||
| 		humidity_max = -1.0, | ||||
| 		humidity_min = 0.4, | ||||
| 		temp_max = -0.5, -- 55 °C (too hot?) | ||||
| 		temp_min = 0.75, -- -12 °C | ||||
| 		random_facedir = { 0, 179 }, | ||||
| minetest.register_decoration({ -- near stone (mountains) | ||||
| 	decoration = nodenames, | ||||
| 	deco_type = "simple", | ||||
| 	flags = "all_floors", | ||||
| 	place_on = { | ||||
| 		"default:dirt_with_grass", | ||||
| 		"default:mossycobble", | ||||
| 		"group:falling_node", | ||||
| 		--"default:jungletree", | ||||
| 		"stoneage:grass_with_silex", | ||||
| 		"sumpf:sumpf" | ||||
| 	}, | ||||
| 	nodenames | ||||
| 	) | ||||
| end | ||||
| 	y_min = 1, -- above sea level | ||||
| 	param2 = 0, | ||||
| 	param2_max = 179, | ||||
| 	spawn_by = "group:stone", | ||||
| 	num_spawn_by = 1, | ||||
| 	fill_ratio = 0.3, | ||||
| }) | ||||
|  | ||||
| if abstract_ferns.config.lady_ferns_near_ores == true then -- this one causes a huge fps drop | ||||
| 	biome_lib.register_on_generate({ -- near ores (potential mining sites) | ||||
| 		surface = { | ||||
| 			"default:dirt_with_grass", | ||||
| 			"default:mossycobble", | ||||
| 			"default:stone_with_coal", | ||||
| 			"default:stone_with_iron", | ||||
| 			"default:stone_with_tin", -- minetest >= 0.4.16 | ||||
| 			"moreores:mineral_tin", | ||||
| 			"moreores:mineral_silver", | ||||
| 			"sumpf:sumpf" | ||||
| 		}, | ||||
| 		max_count = 1200,--1600, -- maybe too much? :D | ||||
| 		rarity = 25,--15, | ||||
| 		min_elevation = 1, -- above sea level | ||||
| 		near_nodes = { | ||||
| 			"default:stone_with_iron", | ||||
| 			--"default:stone_with_copper", | ||||
| 			--"default:stone_with_mese", | ||||
| 			--"default:stone_with_gold", | ||||
| 			--"default:stone_with_diamond", | ||||
| 			"default:stone_with_tin", -- minetest >= 0.4.16 | ||||
| 			"moreores:mineral_tin", | ||||
| 			"moreores:mineral_silver" | ||||
| 			--"moreores:mineral_mithril" | ||||
| 		}, | ||||
| 		near_nodes_size = 2, | ||||
| 		near_nodes_vertical = 4,--5,--6, | ||||
| 		near_nodes_count = 2,--3, | ||||
| 		plantlife_limit = -0.9, | ||||
| 		humidity_max = -1.0, | ||||
| 		humidity_min = 0.4, | ||||
| 		temp_max = -0.5, -- 55 °C (too hot?) | ||||
| 		temp_min = 0.75, -- -12 °C | ||||
| 		random_facedir = { 0, 179 }, | ||||
| minetest.register_decoration({ -- near stone (mountains) | ||||
| 	decoration = nodenames, | ||||
| 	deco_type = "simple", | ||||
| 	flags = "all_floors", | ||||
| 	place_on = { | ||||
| 		"default:dirt_with_grass", | ||||
| 		"default:mossycobble", | ||||
| 		"default:stone_with_coal", | ||||
| 		"default:stone_with_iron", | ||||
| 		"default:stone_with_tin", | ||||
| 		"moreores:mineral_tin", | ||||
| 		"moreores:mineral_silver", | ||||
| 		"sumpf:sumpf" | ||||
| 	}, | ||||
| 	nodenames | ||||
| 	) | ||||
| end | ||||
|  | ||||
| if abstract_ferns.config.lady_ferns_in_groups == true then -- this one is meant as a replacement of Ferns_near_Ores | ||||
| 	biome_lib.register_on_generate({ | ||||
| 		surface = { | ||||
| 			"default:dirt_with_grass", | ||||
| 			"default:mossycobble", | ||||
| 			"default:stone_with_coal", | ||||
| 			"default:stone_with_iron", | ||||
| 			"default:stone_with_tin", -- minetest >= 0.4.16 | ||||
| 			"moreores:mineral_tin", | ||||
| 			"moreores:mineral_silver", | ||||
| 			"sumpf:sumpf" | ||||
| 		}, | ||||
| 		max_count = 70, | ||||
| 		rarity = 25,--15, | ||||
| 		min_elevation = 1, -- above sea level | ||||
| 		near_nodes = { | ||||
| 			"default:stone" | ||||
| 		}, | ||||
| 		near_nodes_size = 2, | ||||
| 		near_nodes_vertical = 2,--6, | ||||
| 		near_nodes_count = 3, | ||||
| 		plantlife_limit = -0.9, | ||||
| 		humidity_max = -1.0, | ||||
| 		humidity_min = 0.4, | ||||
| 		temp_max = -0.5, -- 55 °C (too hot?) | ||||
| 		temp_min = 0.75, -- -12 °C | ||||
| 		random_facedir = { 0, 179 }, | ||||
| 	y_min = 1, -- above sea level | ||||
| 	param2 = 0, | ||||
| 	param2_max = 179, | ||||
| 	spawn_by = { | ||||
| 		"default:stone_with_iron", | ||||
| 		--"default:stone_with_copper", | ||||
| 		--"default:stone_with_mese", | ||||
| 		--"default:stone_with_gold", | ||||
| 		--"default:stone_with_diamond", | ||||
| 		"default:stone_with_tin", | ||||
| 		"moreores:mineral_tin", | ||||
| 		"moreores:mineral_silver" | ||||
| 		--"moreores:mineral_mithril" | ||||
| 	}, | ||||
| 	nodenames | ||||
| 	) | ||||
| end | ||||
| 	num_spawn_by = 1, | ||||
| 	fill_ratio = 0.8, | ||||
| }) | ||||
| @@ -7,8 +7,6 @@ | ||||
| -- Supports:				vines | ||||
| ----------------------------------------------------------------------------------------------- | ||||
|  | ||||
| assert(abstract_ferns.config.enable_giant_treefern == true) | ||||
|  | ||||
| -- support for i18n | ||||
| local S = minetest.get_translator("ferns") | ||||
| -- lot of code, lot to load | ||||
| @@ -331,54 +329,50 @@ minetest.register_abm({ | ||||
| ----------------------------------------------------------------------------------------------- | ||||
|  | ||||
| -- in jungles | ||||
| if abstract_ferns.config.enable_giant_treeferns_in_jungle == true then | ||||
| 	biome_lib.register_on_generate({ | ||||
| 		surface = { | ||||
| 			"default:dirt_with_grass", | ||||
| 			"default:dirt_with_rainforest_litter", -- minetest >= 0.4.16 | ||||
| 			"default:sand", | ||||
| 			"default:desert_sand"--, | ||||
| 			--"dryplants:grass_short" | ||||
| 		}, | ||||
| 		max_count = 12,--27, | ||||
| 		avoid_nodes = {"group:tree"}, | ||||
| 		avoid_radius = 3,--4, | ||||
| 		rarity = 85, | ||||
| 		seed_diff = 329, | ||||
| 		min_elevation = 1, | ||||
| 		near_nodes = {"default:jungletree"}, | ||||
| 		near_nodes_size = 6, | ||||
| 		near_nodes_vertical = 2,--4, | ||||
| 		near_nodes_count = 1, | ||||
| 		plantlife_limit = -0.9, | ||||
| biome_lib.register_on_generate({ | ||||
| 	surface = { | ||||
| 		"default:dirt_with_grass", | ||||
| 		"default:dirt_with_rainforest_litter", -- minetest >= 0.4.16 | ||||
| 		"default:sand", | ||||
| 		"default:desert_sand"--, | ||||
| 		--"dryplants:grass_short" | ||||
| 	}, | ||||
| 	abstract_ferns.grow_giant_tree_fern | ||||
| 	) | ||||
| end | ||||
| 	max_count = 12,--27, | ||||
| 	avoid_nodes = {"group:tree"}, | ||||
| 	avoid_radius = 3,--4, | ||||
| 	rarity = 85, | ||||
| 	seed_diff = 329, | ||||
| 	min_elevation = 1, | ||||
| 	near_nodes = {"default:jungletree"}, | ||||
| 	near_nodes_size = 6, | ||||
| 	near_nodes_vertical = 2,--4, | ||||
| 	near_nodes_count = 1, | ||||
| 	plantlife_limit = -0.9, | ||||
| }, | ||||
| abstract_ferns.grow_giant_tree_fern | ||||
| ) | ||||
|  | ||||
| -- for oases & tropical beaches | ||||
| if abstract_ferns.config.enable_giant_treeferns_in_oases == true then | ||||
| 	biome_lib.register_on_generate({ | ||||
| 		surface = { | ||||
| 			"default:sand"--, | ||||
| 			--"default:desert_sand" | ||||
| 		}, | ||||
| 		max_count = 10,--27, | ||||
| 		rarity = 90, | ||||
| 		seed_diff = 329, | ||||
| 		neighbors = {"default:desert_sand"}, | ||||
| 		ncount = 1, | ||||
| 		min_elevation = 1, | ||||
| 		near_nodes = {"default:water_source", "default:river_water_source"}, | ||||
| 		near_nodes_size = 2, | ||||
| 		near_nodes_vertical = 1, | ||||
| 		near_nodes_count = 1, | ||||
| 		plantlife_limit = -0.9, | ||||
| 		humidity_max = -1.0, | ||||
| 		humidity_min = 1.0, | ||||
| 		temp_max = -1.0, | ||||
| 		temp_min = 1.0, | ||||
| biome_lib.register_on_generate({ | ||||
| 	surface = { | ||||
| 		"default:sand"--, | ||||
| 		--"default:desert_sand" | ||||
| 	}, | ||||
| 	abstract_ferns.grow_giant_tree_fern | ||||
| 	) | ||||
| end | ||||
| 	max_count = 10,--27, | ||||
| 	rarity = 90, | ||||
| 	seed_diff = 329, | ||||
| 	neighbors = {"default:desert_sand"}, | ||||
| 	ncount = 1, | ||||
| 	min_elevation = 1, | ||||
| 	near_nodes = {"default:water_source", "default:river_water_source"}, | ||||
| 	near_nodes_size = 2, | ||||
| 	near_nodes_vertical = 1, | ||||
| 	near_nodes_count = 1, | ||||
| 	plantlife_limit = -0.9, | ||||
| 	humidity_max = -1.0, | ||||
| 	humidity_min = 1.0, | ||||
| 	temp_max = -1.0, | ||||
| 	temp_min = 1.0, | ||||
| }, | ||||
| abstract_ferns.grow_giant_tree_fern | ||||
| ) | ||||
|   | ||||
| @@ -8,8 +8,6 @@ | ||||
| -- Supports:				dryplants, stoneage, sumpf | ||||
| ----------------------------------------------------------------------------------------------- | ||||
|  | ||||
| assert(abstract_ferns.config.enable_horsetails == true) | ||||
|  | ||||
| -- support for i18n | ||||
| local S = minetest.get_translator("ferns") | ||||
| ----------------------------------------------------------------------------------------------- | ||||
| @@ -71,101 +69,45 @@ end | ||||
|  | ||||
| create_nodes() | ||||
|  | ||||
| ----------------------------------------------------------------------------------------------- | ||||
| -- Spawning | ||||
| ----------------------------------------------------------------------------------------------- | ||||
| if abstract_ferns.config.enable_horsetails_spawning == true then | ||||
| 	minetest.register_abm({ | ||||
| 		nodenames = { | ||||
| 			"default:dirt_with_grass", | ||||
| 			"default:dirt_with_coniferous_litter", | ||||
| 			"default:desert_sand", | ||||
| 			"default:sand", | ||||
| 			"dryplants:grass_short", | ||||
| 			"stoneage:grass_with_silex", | ||||
| 			"default:mossycobble", | ||||
| 			"default:gravel" | ||||
| 		}, | ||||
| 		interval = 1200, | ||||
| 		chance = 400, | ||||
| 		label = "[ferns] spawn horsetails", | ||||
| 		min_y = 1, | ||||
| 		max_y = 48, | ||||
| 		action = function(pos, node) | ||||
| 			local p_top = {x = pos.x, y = pos.y + 1, z = pos.z} | ||||
| 			local n_top = minetest.get_node_or_nil(p_top) | ||||
| 			if not n_top or n_top.name ~= "air" then return end | ||||
|  | ||||
| 			local NEAR_DST = 2 | ||||
| 			if #minetest.find_nodes_in_area( | ||||
| 					{x=pos.x-NEAR_DST, y=pos.y-1, z=pos.z-NEAR_DST}, | ||||
| 					{x=pos.x+NEAR_DST, y=pos.y+1, z=pos.z+NEAR_DST}, | ||||
| 					{"default:water_source","default:river_water_source","default:gravel"} | ||||
| 				) < 1 then return | ||||
| 			end | ||||
|  | ||||
| 			local plant_to_spawn = node_names[math.random(1, #node_names)] | ||||
|  | ||||
| 			minetest.swap_node(p_top, {name = plant_to_spawn, param2 = 0}) | ||||
| 		end | ||||
| 	}) | ||||
| end | ||||
|  | ||||
| ----------------------------------------------------------------------------------------------- | ||||
| -- Generating | ||||
| ----------------------------------------------------------------------------------------------- | ||||
|  | ||||
| if abstract_ferns.config.enable_horsetails_on_grass == true then | ||||
| 	biome_lib.register_on_generate({ | ||||
| 		surface = { | ||||
| 			"default:dirt_with_grass", | ||||
| 			"default:dirt_with_coniferous_litter", -- minetest >= 0.5 | ||||
| 			"sumpf:sumpf" | ||||
| 		}, | ||||
| 		max_count = 35, | ||||
| 		rarity = 40, | ||||
| 		min_elevation = 1, -- above sea level | ||||
| 		near_nodes = { | ||||
| 			"group:water", -- likes water (of course) | ||||
| 			"default:gravel", -- near those on gravel | ||||
| 			"default:sand", -- some like sand | ||||
| 			"default:clay", -- some like clay | ||||
| 			"stoneage:grass_with_silex", | ||||
| 			"default:mossycobble", | ||||
| 			"default:cobble", | ||||
| 			"sumpf:sumpf" | ||||
| 		}, | ||||
| 		near_nodes_size = 3, | ||||
| 		near_nodes_vertical = 2,--3, | ||||
| 		near_nodes_count = 1, | ||||
| 		plantlife_limit = -0.9, | ||||
| 		humidity_min = 0.4, | ||||
| 		temp_max = -0.5, -- 55 °C | ||||
| 		temp_min = 0.53, -- 0 °C, dies back in winter | ||||
| 		--random_facedir = { 0, 179 }, | ||||
| minetest.register_decoration({ -- near trees (woodlands) | ||||
| 	decoration = node_names, | ||||
| 	deco_type = "simple", | ||||
| 	flags = "all_floors", | ||||
| 	place_on = { | ||||
| 		"default:dirt_with_grass", | ||||
| 		"default:dirt_with_coniferous_litter", | ||||
| 		"sumpf:sumpf" | ||||
| 	}, | ||||
| 	node_names | ||||
| 	) | ||||
| end | ||||
| 	y_min = 1, -- above sea level | ||||
| 	spawn_by = { | ||||
| 		"group:water", -- likes water (of course) | ||||
| 		"default:gravel", -- near those on gravel | ||||
| 		"default:sand", -- some like sand | ||||
| 		"default:clay", -- some like clay | ||||
| 		"stoneage:grass_with_silex", | ||||
| 		"default:mossycobble", | ||||
| 		"default:cobble", | ||||
| 		"sumpf:sumpf" | ||||
| 	}, | ||||
| 	num_spawn_by = 1, | ||||
| 	fill_ratio = 0.1, | ||||
| }) | ||||
|  | ||||
| if abstract_ferns.config.enable_horsetails_on_stones == true then | ||||
| 	biome_lib.register_on_generate({ | ||||
| 		surface = { | ||||
| 			"default:gravel", -- roots go deep | ||||
| 			"default:mossycobble", | ||||
| 			"stoneage:dirt_with_silex", | ||||
| 			"stoneage:grass_with_silex", | ||||
| 			"stoneage:sand_with_silex", -- roots go deep | ||||
| 		}, | ||||
| 		max_count = 35, | ||||
| 		rarity = 20, | ||||
| 		min_elevation = 1, -- above sea level | ||||
| 		plantlife_limit = -0.9, | ||||
| 		humidity_min = 0.4, | ||||
| 		temp_max = -0.5, -- 55 °C | ||||
| 		temp_min = 0.53, -- 0 °C, dies back in winter | ||||
| 		--random_facedir = { 0, 179 }, | ||||
| minetest.register_decoration({ -- near trees (woodlands) | ||||
| 	decoration = node_names, | ||||
| 	deco_type = "simple", | ||||
| 	flags = "all_floors", | ||||
| 	place_on = { | ||||
| 		"default:gravel", -- roots go deep | ||||
| 		"default:mossycobble", | ||||
| 		"stoneage:dirt_with_silex", | ||||
| 		"stoneage:grass_with_silex", | ||||
| 		"stoneage:sand_with_silex", -- roots go deep | ||||
| 	}, | ||||
| 	node_names | ||||
| 	) | ||||
| end | ||||
| 	y_min = 1, -- above sea level | ||||
| 	fill_ratio = 0.1, | ||||
| }) | ||||
| @@ -1,21 +1,7 @@ | ||||
| abstract_ferns = {} | ||||
|  | ||||
| dofile(minetest.get_modpath("ferns").."/settings.lua") | ||||
|  | ||||
| if abstract_ferns.config.enable_lady_fern == true then | ||||
| 	dofile(minetest.get_modpath("ferns").."/fern.lua") | ||||
| end | ||||
|  | ||||
| if abstract_ferns.config.enable_horsetails == true then | ||||
| 	dofile(minetest.get_modpath("ferns").."/horsetail.lua") | ||||
| end | ||||
|  | ||||
| if abstract_ferns.config.enable_treefern == true then | ||||
| 	dofile(minetest.get_modpath("ferns").."/treefern.lua") | ||||
| end | ||||
|  | ||||
| if abstract_ferns.config.enable_giant_treefern == true then | ||||
| 	dofile(minetest.get_modpath("ferns").."/gianttreefern.lua") | ||||
| end | ||||
|  | ||||
| dofile(minetest.get_modpath("ferns").."/fern.lua") | ||||
| dofile(minetest.get_modpath("ferns").."/horsetail.lua") | ||||
| dofile(minetest.get_modpath("ferns").."/treefern.lua") | ||||
| dofile(minetest.get_modpath("ferns").."/gianttreefern.lua") | ||||
| dofile(minetest.get_modpath("ferns").."/crafting.lua") | ||||
|   | ||||
| @@ -1,2 +1,2 @@ | ||||
| name = ferns | ||||
| depends = default, biome_lib | ||||
| depends = default | ||||
|   | ||||
| @@ -1,43 +0,0 @@ | ||||
| -- In case you don't wanna have errors: | ||||
|  | ||||
| -- Only change what's behind a "=" (or "--"). | ||||
| -- Don't use caps (behind a "="). | ||||
|  | ||||
| -- If there's a "false" (behind a "=") you can change it to "true" (and the other way around). | ||||
| -- Spelling is important. | ||||
| -- If "true" or "false" is necessary as setting, everything(!) which is not spelled "true" will be read as if it were "false" (even "1", "True"...) | ||||
|  | ||||
| -- If you wanna comment something (for example to remember the default value), you can do this by putting "--" in front of the comment. | ||||
| -- You can put "--" at the end of a line with "=" in it, or at the beginning of an empty/new line (minetest will ignore what's behind it then). | ||||
| -- But don't put "--" in front of a line with "=" in it (or else minetest will ignore the setting and you might get an error). | ||||
|  | ||||
| -- If something is still unclear, don't hesitate to post your question @ https://forum.minetest.net/viewtopic.php?id=6921 | ||||
|  | ||||
| abstract_ferns.config = {} | ||||
|  | ||||
| -- Which plants should generate/spawn? | ||||
| abstract_ferns.config.enable_lady_fern			= true | ||||
| abstract_ferns.config.enable_horsetails			= true | ||||
| abstract_ferns.config.enable_treefern			= true | ||||
| abstract_ferns.config.enable_giant_treefern		= true | ||||
|  | ||||
| -- Where should they generate/spawn? (if they generate/spawn) | ||||
| -- | ||||
| --  Lady-Fern | ||||
| abstract_ferns.config.lady_ferns_near_tree = true | ||||
| abstract_ferns.config.lady_ferns_near_rock = true | ||||
| abstract_ferns.config.lady_ferns_near_ores = true				-- if there's a bunch of ferns there's ores nearby, this one causes a huge fps drop | ||||
| abstract_ferns.config.lady_ferns_in_groups = false				-- this one is meant as a replacement of Ferns_near_Ores: ferns tend to generate in groups, less fps drop, no hint for nearby ores | ||||
| -- | ||||
| --	Horsetails | ||||
| abstract_ferns.config.enable_horsetails_spawning	= false		-- horsetails will grow in already explored areas, over time, near water or gravel | ||||
| abstract_ferns.config.enable_horsetails_on_grass	= true		-- on dirt with grass and swamp (sumpf mod) | ||||
| abstract_ferns.config.enable_horsetails_on_stones	= true		-- on gravel, mossy cobble and silex (stoneage mod) | ||||
| -- | ||||
| -- Tree_Fern | ||||
| abstract_ferns.config.enable_treeferns_in_jungle	= true | ||||
| abstract_ferns.config.enable_treeferns_in_oases		= true		-- for oases and tropical beaches | ||||
| -- | ||||
| -- Giant_Tree_Fern | ||||
| abstract_ferns.config.enable_giant_treeferns_in_jungle	= true | ||||
| abstract_ferns.config.enable_giant_treeferns_in_oases	= true	-- for oases and tropical beaches | ||||
| @@ -9,8 +9,6 @@ | ||||
| -- support for i18n | ||||
| local S = minetest.get_translator("ferns") | ||||
|  | ||||
| assert(abstract_ferns.config.enable_treefern == true) | ||||
|  | ||||
| function abstract_ferns.can_grow_tree_fern(pos) | ||||
| 	local node_name = minetest.get_node(pos).name | ||||
| 	if node_name ~= "air" and node_name ~= "ferns:sapling_tree_fern" and node_name ~= "default:junglegrass" then | ||||
| @@ -205,57 +203,53 @@ minetest.register_abm({ | ||||
| ----------------------------------------------------------------------------------------------- | ||||
|  | ||||
| -- in jungles | ||||
| if abstract_ferns.config.enable_treeferns_in_jungle == true then | ||||
| 	biome_lib.register_on_generate({ | ||||
| 		surface = { | ||||
| 			"default:dirt_with_grass", | ||||
| 			"default:dirt_with_rainforest_litter", -- minetest >= 0.4.16 | ||||
| 			"default:sand", | ||||
| 			"default:desert_sand", | ||||
| 		}, | ||||
| 		max_count = 35,--27, | ||||
| 		avoid_nodes = {"default:tree"}, | ||||
| 		avoid_radius = 4, | ||||
| 		rarity = 50, | ||||
| 		seed_diff = 329, | ||||
| 		min_elevation = -10, | ||||
| 		near_nodes = {"default:jungletree"}, | ||||
| 		near_nodes_size = 6, | ||||
| 		near_nodes_vertical = 2,--4, | ||||
| 		near_nodes_count = 1, | ||||
| 		plantlife_limit = -0.9, | ||||
| 		humidity_max = -1.0, | ||||
| 		humidity_min = 0.4, | ||||
| 		temp_max = -0.5, | ||||
| 		temp_min = 0.13, | ||||
| biome_lib.register_on_generate({ | ||||
| 	surface = { | ||||
| 		"default:dirt_with_grass", | ||||
| 		"default:dirt_with_rainforest_litter", -- minetest >= 0.4.16 | ||||
| 		"default:sand", | ||||
| 		"default:desert_sand", | ||||
| 	}, | ||||
| 	abstract_ferns.grow_tree_fern | ||||
| 	) | ||||
| end | ||||
| 	max_count = 35,--27, | ||||
| 	avoid_nodes = {"default:tree"}, | ||||
| 	avoid_radius = 4, | ||||
| 	rarity = 50, | ||||
| 	seed_diff = 329, | ||||
| 	min_elevation = -10, | ||||
| 	near_nodes = {"default:jungletree"}, | ||||
| 	near_nodes_size = 6, | ||||
| 	near_nodes_vertical = 2,--4, | ||||
| 	near_nodes_count = 1, | ||||
| 	plantlife_limit = -0.9, | ||||
| 	humidity_max = -1.0, | ||||
| 	humidity_min = 0.4, | ||||
| 	temp_max = -0.5, | ||||
| 	temp_min = 0.13, | ||||
| }, | ||||
| abstract_ferns.grow_tree_fern | ||||
| ) | ||||
|  | ||||
| -- for oases & tropical beaches | ||||
| if abstract_ferns.config.enable_treeferns_in_oases == true then | ||||
| 	biome_lib.register_on_generate({ | ||||
| 		surface = { | ||||
| 			"default:sand"--, | ||||
| 			--"default:desert_sand" | ||||
| 		}, | ||||
| 		max_count = 35, | ||||
| 		rarity = 50, | ||||
| 		seed_diff = 329, | ||||
| 		neighbors = {"default:desert_sand"}, | ||||
| 		ncount = 1, | ||||
| 		min_elevation = 1, | ||||
| 		near_nodes = {"default:water_source","default:river_water_source"}, | ||||
| 		near_nodes_size = 2, | ||||
| 		near_nodes_vertical = 1, | ||||
| 		near_nodes_count = 1, | ||||
| 		plantlife_limit = -0.9, | ||||
| 		humidity_max = -1.0, | ||||
| 		humidity_min = 1.0, | ||||
| 		temp_max = -1.0, | ||||
| 		temp_min = 1.0, | ||||
| biome_lib.register_on_generate({ | ||||
| 	surface = { | ||||
| 		"default:sand"--, | ||||
| 		--"default:desert_sand" | ||||
| 	}, | ||||
| 	abstract_ferns.grow_tree_fern | ||||
| 	max_count = 35, | ||||
| 	rarity = 50, | ||||
| 	seed_diff = 329, | ||||
| 	neighbors = {"default:desert_sand"}, | ||||
| 	ncount = 1, | ||||
| 	min_elevation = 1, | ||||
| 	near_nodes = {"default:water_source","default:river_water_source"}, | ||||
| 	near_nodes_size = 2, | ||||
| 	near_nodes_vertical = 1, | ||||
| 	near_nodes_count = 1, | ||||
| 	plantlife_limit = -0.9, | ||||
| 	humidity_max = -1.0, | ||||
| 	humidity_min = 1.0, | ||||
| 	temp_max = -1.0, | ||||
| 	temp_min = 1.0, | ||||
| }, | ||||
| abstract_ferns.grow_tree_fern | ||||
| ) | ||||
| end | ||||
|   | ||||
		Reference in New Issue
	
	Block a user