diff options
Diffstat (limited to 'plantlife_modpack/ferns')
65 files changed, 1134 insertions, 0 deletions
diff --git a/plantlife_modpack/ferns/crafting.lua b/plantlife_modpack/ferns/crafting.lua new file mode 100644 index 0000000..8d8b3ed --- /dev/null +++ b/plantlife_modpack/ferns/crafting.lua @@ -0,0 +1,104 @@ +-----------------------------------------------------------------------------------------------
 +-- Ferns - Crafting 0.0.5
 +-----------------------------------------------------------------------------------------------
 +-- (by Mossmanikin)
 +-- License (everything): 	WTFPL			
 +-----------------------------------------------------------------------------------------------
 +minetest.register_craft({
 +	type = "shapeless",
 +	output = "ferns:fiddlehead 3",
 +	recipe = {"ferns:fern_01"},
 +	replacements = {
 +		{"ferns:fern_01", "ferns:ferntuber"}
 +	},
 +})
 +
 +minetest.register_craft({
 +	type = "shapeless",
 +	output = "ferns:fiddlehead 3",
 +	recipe = {"ferns:tree_fern_leaves"},
 +	replacements = {
 +		{"ferns:tree_fern_leaves", "ferns:sapling_tree_fern"}
 +	},
 +})
 +-----------------------------------------------------------------------------------------------
 +-- FIDDLEHEAD
 +-----------------------------------------------------------------------------------------------
 +minetest.register_alias("archaeplantae:fiddlehead",      "ferns:fiddlehead")
 +
 +minetest.register_craftitem("ferns:fiddlehead", {
 +	description = "Fiddlehead",
 +	inventory_image = "ferns_fiddlehead.png",
 +	on_use = minetest.item_eat(-1), -- slightly poisonous when raw
 +})
 +minetest.register_craft({
 +	type = "cooking",
 +	output = "ferns:fiddlehead_roasted",
 +	recipe = "ferns:fiddlehead",
 +	cooktime = 1,
 +})
 +minetest.register_craftitem("ferns:fiddlehead_roasted", {
 +	description = "Roasted Fiddlehead",
 +	inventory_image = "ferns_fiddlehead_roasted.png",
 +	on_use = minetest.item_eat(1), -- edible when cooked
 +})
 +-----------------------------------------------------------------------------------------------
 +-- FERN TUBER
 +-----------------------------------------------------------------------------------------------
 +minetest.register_alias("archaeplantae:ferntuber",      "ferns:ferntuber")
 +
 +minetest.register_craftitem("ferns:ferntuber", {
 +	description = "Fern Tuber",
 +	inventory_image = "ferns_ferntuber.png",
 +})
 +minetest.register_craft({
 +	type = "cooking",
 +	output = "ferns:ferntuber_roasted",
 +	recipe = "ferns:ferntuber",
 +	cooktime = 3,
 +})
 +
 +minetest.register_alias("archaeplantae:ferntuber_roasted",      "ferns:ferntuber_roasted")
 +
 +minetest.register_craftitem("ferns:ferntuber_roasted", {
 +	description = "Roasted Fern Tuber",
 +	inventory_image = "ferns_ferntuber_roasted.png",
 +	on_use = minetest.item_eat(3),
 +})
 +-----------------------------------------------------------------------------------------------
 +-- HORSETAIL  (EQUISETUM) --> GREEN DYE https://en.wikipedia.org/wiki/Equisetum
 +-----------------------------------------------------------------------------------------------
 +minetest.register_craft({
 +	type = "shapeless",
 +	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"},
 +})]]
 +
 diff --git a/plantlife_modpack/ferns/depends.txt b/plantlife_modpack/ferns/depends.txt new file mode 100644 index 0000000..9d994c0 --- /dev/null +++ b/plantlife_modpack/ferns/depends.txt @@ -0,0 +1,2 @@ +default
 +biome_lib
\ No newline at end of file diff --git a/plantlife_modpack/ferns/fern.lua b/plantlife_modpack/ferns/fern.lua new file mode 100644 index 0000000..51cac8f --- /dev/null +++ b/plantlife_modpack/ferns/fern.lua @@ -0,0 +1,196 @@ +-----------------------------------------------------------------------------------------------
 +-- Ferns - Fern 0.1.0
 +-----------------------------------------------------------------------------------------------
 +-- by Mossmanikin
 +-- License (everything): 	WTFPL
 +-- Contains code from: 		biome_lib
 +-- Looked at code from:		default, flowers, painting, trees
 +-- Dependencies: 			biome_lib
 +-- Supports:				dryplants, stoneage, sumpf		
 +-----------------------------------------------------------------------------------------------
 +-- some inspiration from here
 +-- https://en.wikipedia.org/wiki/Athyrium_yokoscense
 +-- http://www.mygarden.net.au/gardening/athyrium-yokoscense/3900/1
 +-----------------------------------------------------------------------------------------------
 +
 +assert(abstract_ferns.config.enable_lady_fern == true)
 +
 +-- Maintain backward compatibilty
 +minetest.register_alias("archaeplantae:fern",		"ferns:fern_03")
 +minetest.register_alias("archaeplantae:fern_mid",	"ferns:fern_02")
 +minetest.register_alias("archaeplantae:fern_small",	"ferns:fern_01")
 +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, 2, 2.2 }
 +	local descs		= { "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 ("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
 +-----------------------------------------------------------------------------------------------
 +
 +create_nodes()
 +
 +-----------------------------------------------------------------------------------------------
 +-- Spawning
 +-----------------------------------------------------------------------------------------------
 +
 +if abstract_ferns.config.lady_ferns_near_tree == true then
 +	biome_lib:register_generate_plant({ -- 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 },
 +	},
 +	nodenames
 +	)
 +end
 +
 +if abstract_ferns.config.lady_ferns_near_rock == true then
 +	biome_lib:register_generate_plant({ -- 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 },
 +	},
 +	nodenames
 +	)
 +end
 +
 +if abstract_ferns.config.lady_ferns_near_ores == true then -- this one causes a huge fps drop
 +	biome_lib:register_generate_plant({ -- near ores (potential mining sites)
 +		surface = {
 +			"default:dirt_with_grass",
 +			"default:mossycobble",
 +			"default:stone_with_coal",
 +			"default:stone_with_iron",
 +			"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",
 +			"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 },
 +	},
 +	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_generate_plant({
 +		surface = {
 +			"default:dirt_with_grass",
 +			"default:mossycobble",
 +			"default:stone_with_coal",
 +			"default:stone_with_iron",
 +			"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 },
 +	},
 +	nodenames
 +	)
 +end
 diff --git a/plantlife_modpack/ferns/gianttreefern.lua b/plantlife_modpack/ferns/gianttreefern.lua new file mode 100644 index 0000000..bc6516b --- /dev/null +++ b/plantlife_modpack/ferns/gianttreefern.lua @@ -0,0 +1,336 @@ +----------------------------------------------------------------------------------------------- +-- Ferns - Giant Tree Fern 0.1.1 +----------------------------------------------------------------------------------------------- +-- by Mossmanikin +-- License (everything): 	WTFPL +-- Contains code from: 		biome_lib +-- Looked at code from:		4seasons, default +-- Supports:				vines			 +----------------------------------------------------------------------------------------------- + +assert(abstract_ferns.config.enable_giant_treefern == true) + +-- lot of code, lot to load + +abstract_ferns.grow_giant_tree_fern = function(pos) +	local pos_01 = {x = pos.x, y = pos.y + 1, z = pos.z} +	if minetest.get_node(pos_01).name ~= "air" +			and minetest.get_node(pos_01).name ~= "ferns:sapling_giant_tree_fern" +			and minetest.get_node(pos_01).name ~= "default:junglegrass" then +		return +	end + +	local size = math.random(12,16)	-- min of range must be >= 4 +	 +	local leafchecks = { +		{ +			direction  = 3, +			positions = { +				{x = pos.x + 1, y = pos.y + size - 1, z = pos.z    }, +				{x = pos.x + 2, y = pos.y + size    , z = pos.z    }, +				{x = pos.x + 3, y = pos.y + size - 1, z = pos.z    }, +				{x = pos.x + 4, y = pos.y + size - 2, z = pos.z    } +			} +		}, +		{ +			direction  = 1, +			positions = { +				{x = pos.x - 1, y = pos.y + size - 1, z = pos.z    }, +				{x = pos.x - 2, y = pos.y + size,     z = pos.z    }, +				{x = pos.x - 3, y = pos.y + size - 1, z = pos.z    }, +				{x = pos.x - 4, y = pos.y + size - 2, z = pos.z    } +			} +		}, +		{ +			direction  = 2, +			positions = { +				{x = pos.x    , y = pos.y + size - 1, z = pos.z + 1}, +				{x = pos.x    , y = pos.y + size    , z = pos.z + 2}, +				{x = pos.x    , y = pos.y + size - 1, z = pos.z + 3}, +				{x = pos.x    , y = pos.y + size - 2, z = pos.z + 4} +			} +		}, +		{ +			direction  = 0, +			positions = { +				{x = pos.x    , y = pos.y + size - 1, z = pos.z - 1}, +				{x = pos.x    , y = pos.y + size    , z = pos.z - 2}, +				{x = pos.x    , y = pos.y + size - 1, z = pos.z - 3}, +				{x = pos.x    , y = pos.y + size - 2, z = pos.z - 4} +			} +		} +	} + +	for i = 1, size-3 do +		minetest.set_node({x = pos.x, y = pos.y + i, z = pos.z}, {name="ferns:fern_trunk_big"}) +	end +	minetest.set_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"}) + +	-- 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 + +	-- assert(#leafchecks == 4) +	for i = 1, 4 do +		local positions = leafchecks[i].positions +		local rot = leafchecks[i].direction +		local endpos = 4	-- If the loop below adds all intermediate leaves then the "terminating" leaf will be at positions[4] +		-- assert(#positions == 4) +		-- add leaves so long as the destination nodes are air +		for j = 1, 3 do +			if minetest.get_node(positions[j]).name == "air" then +				minetest.set_node(positions[j], {name="ferns:tree_fern_leave_big"}) +			else +				endpos = j +				break +			end +		end +		-- add the terminating leaf if required and possible +		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}) +		end +	end +end + +----------------------------------------------------------------------------------------------- +-- GIANT TREE FERN LEAVES +----------------------------------------------------------------------------------------------- +minetest.register_node("ferns:tree_fern_leaves_giant", { +	description = "Tree Fern Crown (Dicksonia)", +	drawtype = "plantlike", +	visual_scale = math.sqrt(8), +	wield_scale = {x=0.175, y=0.175, z=0.175}, +	paramtype = "light", +	tiles = {"ferns_fern_tree_giant.png"}, +	inventory_image = "ferns_fern_tree.png", +	walkable = false, +	groups = { +		snappy=3, +		flammable=2, +		attached_node=1, +		not_in_creative_inventory=1 +	}, +	drop = { +		max_items = 2, +		items = { +			{ +				-- occasionally, drop a second sapling instead of leaves +				-- (extra saplings can also be obtained by replanting and +				--  reharvesting leaves) +				items = {"ferns:sapling_giant_tree_fern"}, +				rarity = 10, +			}, +			{ +				items = {"ferns:sapling_giant_tree_fern"}, +			}, +			{ +				items = {"ferns:tree_fern_leaves_giant"}, +			} +		} +	}, +	sounds = default.node_sound_leaves_defaults(), +	selection_box = { +		type = "fixed", +		fixed = {-7/16, -1/2, -7/16, 7/16, 0, 7/16}, +	}, +}) +----------------------------------------------------------------------------------------------- +-- GIANT TREE FERN LEAVE PART +----------------------------------------------------------------------------------------------- +minetest.register_node("ferns:tree_fern_leave_big", { +	description = "Giant Tree Fern Leaves", +	drawtype = "raillike", +	paramtype = "light", +	tiles = { +		"ferns_tree_fern_leave_big.png", +	}, +	walkable = false, +	groups = { +		snappy=3, +		flammable=2, +		attached_node=1, +		not_in_creative_inventory=1 +	}, +	drop = "", +	sounds = default.node_sound_leaves_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- GIANT TREE FERN LEAVE END +----------------------------------------------------------------------------------------------- +minetest.register_node("ferns:tree_fern_leave_big_end", { +	description = "Giant Tree Fern Leave End", +	drawtype = "nodebox", +	paramtype = "light", +	paramtype2 = "facedir", +	tiles = { "ferns_tree_fern_leave_big_end.png" }, +	walkable = false, +	node_box = { +		type = "fixed", +--			    {left, bottom, front, right, top,   back } +		fixed = {-1/2, -1/2,   1/2, 1/2,   33/64, 1/2}, +	}, +	selection_box = { +		type = "fixed", +		fixed = {-1/2, -1/2,   1/2, 1/2,   33/64, 1/2}, +	}, +	groups = { +		snappy=3, +		flammable=2, +		attached_node=1, +		not_in_creative_inventory=1 +	}, +	drop = "", +	sounds = default.node_sound_leaves_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- GIANT TREE FERN TRUNK TOP +----------------------------------------------------------------------------------------------- +minetest.register_node("ferns:fern_trunk_big_top", { +	description = "Giant Fern Trunk", +	drawtype = "nodebox", +	paramtype = "light", +	tiles = { +		"ferns_fern_trunk_big_top.png^ferns_tree_fern_leave_big_cross.png", +		"ferns_fern_trunk_big_top.png^ferns_tree_fern_leave_big_cross.png", +		"ferns_fern_trunk_big.png" +	}, +	node_box = { +		type = "fixed", +--			{left, bottom, front, right, top,   back } +		fixed = { +			{-1/2,  33/64, -1/2, 1/2, 33/64, 1/2}, +			{-1/4, -1/2, -1/4, 1/4, 1/2, 1/4}, +		} +	}, +	selection_box = { +		type = "fixed", +		fixed = {-1/4, -1/2, -1/4, 1/4, 1/2, 1/4}, +	}, +	groups = { +		tree=1, +		choppy=2, +		oddly_breakable_by_hand=2, +		flammable=3, +		wood=1, +		not_in_creative_inventory=1, +		leafdecay=3 -- to support vines +	}, +	drop = "ferns:fern_trunk_big", +	sounds = default.node_sound_wood_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- GIANT TREE FERN TRUNK +----------------------------------------------------------------------------------------------- +minetest.register_node("ferns:fern_trunk_big", { +	description = "Giant Fern Trunk", +	drawtype = "nodebox", +	paramtype = "light", +	tiles = { +		"ferns_fern_trunk_big_top.png", +		"ferns_fern_trunk_big_top.png", +		"ferns_fern_trunk_big.png" +	}, +	node_box = { +		type = "fixed", +		fixed = {-1/4, -1/2, -1/4, 1/4, 1/2, 1/4}, +	}, +	selection_box = { +		type = "fixed", +		fixed = {-1/4, -1/2, -1/4, 1/4, 1/2, 1/4}, +	}, +	groups = {tree=1,choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1}, +	sounds = default.node_sound_wood_defaults(), +	after_destruct = function(pos,oldnode) +        local node = minetest.get_node({x=pos.x,y=pos.y+1,z=pos.z}) +        if node.name == "ferns:fern_trunk_big" or node.name == "ferns:fern_trunk_big_top" then  +            minetest.dig_node({x=pos.x,y=pos.y+1,z=pos.z})  +            minetest.add_item(pos,"ferns:fern_trunk_big") +        end +    end, +}) + +----------------------------------------------------------------------------------------------- +-- GIANT TREE FERN SAPLING +----------------------------------------------------------------------------------------------- +minetest.register_node("ferns:sapling_giant_tree_fern", { +	description = "Giant Tree Fern Sapling", +	drawtype = "plantlike", +	paramtype = "light", +	tiles = {"ferns_sapling_tree_fern_giant.png"}, +	inventory_image = "ferns_sapling_tree_fern_giant.png", +	walkable = false, +	groups = {snappy=3,flammable=2,flora=1,attached_node=1}, +	sounds = default.node_sound_leaves_defaults(), +	selection_box = { +		type = "fixed", +		fixed = {-7/16, -1/2, -7/16, 7/16, 0, 7/16}, +	}, +}) + +-- abm +minetest.register_abm({ +	nodenames = "ferns:sapling_giant_tree_fern", +	interval = 1000, +	chance = 4, +	action = function(pos, node, _, _) +		abstract_ferns.grow_giant_tree_fern({x = pos.x, y = pos.y-1, z = pos.z}) +    end +}) + +----------------------------------------------------------------------------------------------- +-- GENERATE GIANT TREE FERN +----------------------------------------------------------------------------------------------- + +-- in jungles +if abstract_ferns.config.enable_giant_treeferns_in_jungle == true then +	biome_lib:register_generate_plant({ +		surface = { +			"default:dirt_with_grass", +			"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, +	}, +	abstract_ferns.grow_giant_tree_fern +	) +end + +-- for oases & tropical beaches +if abstract_ferns.config.enable_giant_treeferns_in_oases == true then +	biome_lib:register_generate_plant({ +		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"}, +		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 +	) +end diff --git a/plantlife_modpack/ferns/horsetail.lua b/plantlife_modpack/ferns/horsetail.lua new file mode 100644 index 0000000..b87f1f9 --- /dev/null +++ b/plantlife_modpack/ferns/horsetail.lua @@ -0,0 +1,156 @@ +----------------------------------------------------------------------------------------------- +-- Archae Plantae - Horsetail 0.0.5 +----------------------------------------------------------------------------------------------- +-- by Mossmanikin +-- License (everything): 	WTFPL +-- Contains code from: 		biome_lib +-- Looked at code from:		default, flowers, trees +-- Dependencies: 			biome_lib +-- Supports:				dryplants, stoneage, sumpf			 +----------------------------------------------------------------------------------------------- + +assert(abstract_ferns.config.enable_horsetails == true) + +----------------------------------------------------------------------------------------------- +-- HORSETAIL  (EQUISETUM) +----------------------------------------------------------------------------------------------- + +local node_names = {} + +local function create_nodes() +	local selection_boxes = { +		{ -0.15, -1/2, -0.15, 0.15, -1/16, 0.15 }, +		{ -0.15, -1/2, -0.15, 0.15, 1/16, 0.15 }, +		{ -0.15, -1/2, -0.15, 0.15, 4/16, 0.15 }, +		{ -0.15, -1/2, -0.15, 0.15, 7/16, 0.15 }, +	} + +	for i = 1, 4 do +		local node_name = "ferns:horsetail_" .. string.format("%02d", i) +		local node_img = "ferns_horsetail_" .. string.format("%02d", i) .. ".png" +		local node_desc +		local node_on_use = nil +		local node_drop = "ferns:horsetail_04" + +		if i == 1 then +			node_desc = "Young Horsetail (Equisetum)" +			node_on_use = minetest.item_eat(1) -- young ones edible https://en.wikipedia.org/wiki/Equisetum +			node_drop = node_name +		elseif i == 4 then +			node_desc = "Horsetail (Equisetum)" +		else +			node_desc = "Horsetail (Equisetum) ".. string.format("%02d", i) +		end + +		node_names[i] = node_name + +		minetest.register_node(node_name, { +			description = node_desc, +			drawtype = "plantlike", +			paramtype = "light", +			tiles = { node_img }, +			inventory_image = node_img, +			walkable = false, +			buildable_to = true, +			groups = {snappy=3,flammable=2,attached_node=1,horsetail=1}, +			sounds = default.node_sound_leaves_defaults(), +			selection_box = { +				type = "fixed", +				fixed = selection_boxes[i], +			}, +			on_use = node_on_use, +			drop = node_drop, +		}) +	end +end + +----------------------------------------------------------------------------------------------- +-- Init +----------------------------------------------------------------------------------------------- + +create_nodes() + +----------------------------------------------------------------------------------------------- +-- Spawning +----------------------------------------------------------------------------------------------- +if abstract_ferns.config.enable_horsetails_spawning == true then +	biome_lib:spawn_on_surfaces({ +		spawn_delay = 1200, +		spawn_plants = node_names, +		spawn_chance = 400, +		spawn_surfaces = { +			"default:dirt_with_grass", +			"default:desert_sand", +			"default:sand", +			"dryplants:grass_short", +			"stoneage:grass_with_silex", +			"default:mossycobble", +			"default:gravel" +		}, +		seed_diff = 329, +		min_elevation = 1, -- above sea level +		near_nodes = {"default:water_source","default:gravel"}, +		near_nodes_size = 2, +		near_nodes_vertical = 1, +		near_nodes_count = 1, +		--random_facedir = { 0, 179 }, +	}) +end + +----------------------------------------------------------------------------------------------- +-- Generating +----------------------------------------------------------------------------------------------- + +if abstract_ferns.config.enable_horsetails_on_grass == true then +	biome_lib:register_generate_plant({ +		surface = { +			"default:dirt_with_grass", +			"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 }, +	}, +	node_names +	) +end + +if abstract_ferns.config.enable_horsetails_on_stones == true then +	biome_lib:register_generate_plant({ +		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 }, +	}, +	node_names +	) +end diff --git a/plantlife_modpack/ferns/init.lua b/plantlife_modpack/ferns/init.lua new file mode 100644 index 0000000..b629d5d --- /dev/null +++ b/plantlife_modpack/ferns/init.lua @@ -0,0 +1,69 @@ +----------------------------------------------------------------------------------------------- +local title		= "Ferns" -- former "Archae Plantae" +local version 	= "0.2.0" +local mname		= "ferns" -- former "archaeplantae" +----------------------------------------------------------------------------------------------- +-- (by Mossmanikin) +-- License (everything): 	WTFPL			 +----------------------------------------------------------------------------------------------- + +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").."/crafting.lua") + + +----------------------------------------------------------------------------- +-- TESTS +----------------------------------------------------------------------------- +local run_tests = true	-- set to false to skip + +if run_tests then + +	-- These are, essentially, unit tests to make sure that all required item +	-- strings are registered. The init sequence is not time critical so leaving +	-- them here won't affect performance. + +	-- Check node names +	if abstract_ferns.config.enable_horsetails then +		print("[Mod] " ..title.. " Checking horsetail item strings") +		assert(minetest.registered_items["ferns:horsetail_01"] ~= nil) +		assert(minetest.registered_items["ferns:horsetail_02"] ~= nil) +		assert(minetest.registered_items["ferns:horsetail_03"] ~= nil) +		assert(minetest.registered_items["ferns:horsetail_04"] ~= nil) +	end +	if abstract_ferns.config.enable_lady_fern then +		print("[Mod] ".. title .." Checking lady fern item strings") +		assert(minetest.registered_items["ferns:fern_01"] ~= nil) +		assert(minetest.registered_items["ferns:fern_02"] ~= nil) +		assert(minetest.registered_items["ferns:fern_03"] ~= nil) +	end +	if abstract_ferns.config.enable_treefern then +		print("[Mod] ".. title .." Checking tree fern item strings") +		assert(minetest.registered_items["ferns:tree_fern_leaves"] ~= nil) +		assert(minetest.registered_items["ferns:tree_fern_leaves_02"] ~= nil) +		assert(minetest.registered_items["ferns:fern_trunk"] ~= nil) +		assert(minetest.registered_items["ferns:sapling_tree_fern"] ~= nil) +	end +end + +----------------------------------------------------------------------------------------------- +print("[Mod] "..title.." ["..version.."] ["..mname.."] Loaded...") +----------------------------------------------------------------------------------------------- diff --git a/plantlife_modpack/ferns/settings.lua b/plantlife_modpack/ferns/settings.lua new file mode 100644 index 0000000..8254fcf --- /dev/null +++ b/plantlife_modpack/ferns/settings.lua @@ -0,0 +1,43 @@ +-- 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 diff --git a/plantlife_modpack/ferns/textures/ferns_5.png b/plantlife_modpack/ferns/textures/ferns_5.png Binary files differnew file mode 100644 index 0000000..7e40665 --- /dev/null +++ b/plantlife_modpack/ferns/textures/ferns_5.png diff --git a/plantlife_modpack/ferns/textures/ferns_6.png b/plantlife_modpack/ferns/textures/ferns_6.png Binary files differnew file mode 100644 index 0000000..107bbf6 --- /dev/null +++ b/plantlife_modpack/ferns/textures/ferns_6.png diff --git a/plantlife_modpack/ferns/textures/ferns_7.png b/plantlife_modpack/ferns/textures/ferns_7.png Binary files differnew file mode 100644 index 0000000..b1ac1f5 --- /dev/null +++ b/plantlife_modpack/ferns/textures/ferns_7.png diff --git a/plantlife_modpack/ferns/textures/ferns_8.png b/plantlife_modpack/ferns/textures/ferns_8.png Binary files differnew file mode 100644 index 0000000..db5510b --- /dev/null +++ b/plantlife_modpack/ferns/textures/ferns_8.png diff --git a/plantlife_modpack/ferns/textures/ferns_fern.png b/plantlife_modpack/ferns/textures/ferns_fern.png Binary files differnew file mode 100644 index 0000000..7884e5a --- /dev/null +++ b/plantlife_modpack/ferns/textures/ferns_fern.png diff --git a/plantlife_modpack/ferns/textures/ferns_fern_big.png b/plantlife_modpack/ferns/textures/ferns_fern_big.png Binary files differnew file mode 100644 index 0000000..42deb95 --- /dev/null +++ b/plantlife_modpack/ferns/textures/ferns_fern_big.png diff --git a/plantlife_modpack/ferns/textures/ferns_fern_mid.png b/plantlife_modpack/ferns/textures/ferns_fern_mid.png Binary files differnew file mode 100644 index 0000000..3213308 --- /dev/null +++ b/plantlife_modpack/ferns/textures/ferns_fern_mid.png diff --git a/plantlife_modpack/ferns/textures/ferns_fern_tree.png b/plantlife_modpack/ferns/textures/ferns_fern_tree.png Binary files differnew file mode 100644 index 0000000..8daeafd --- /dev/null +++ b/plantlife_modpack/ferns/textures/ferns_fern_tree.png diff --git a/plantlife_modpack/ferns/textures/ferns_fern_tree_giant.png b/plantlife_modpack/ferns/textures/ferns_fern_tree_giant.png Binary files differnew file mode 100644 index 0000000..2e3adb7 --- /dev/null +++ b/plantlife_modpack/ferns/textures/ferns_fern_tree_giant.png diff --git a/plantlife_modpack/ferns/textures/ferns_fern_tree_inv.png b/plantlife_modpack/ferns/textures/ferns_fern_tree_inv.png Binary files differnew file mode 100644 index 0000000..5417669 --- /dev/null +++ b/plantlife_modpack/ferns/textures/ferns_fern_tree_inv.png diff --git a/plantlife_modpack/ferns/textures/ferns_fern_tree_tl.png b/plantlife_modpack/ferns/textures/ferns_fern_tree_tl.png Binary files differnew file mode 100644 index 0000000..16b6e3a --- /dev/null +++ b/plantlife_modpack/ferns/textures/ferns_fern_tree_tl.png diff --git a/plantlife_modpack/ferns/textures/ferns_fern_tree_tr.png b/plantlife_modpack/ferns/textures/ferns_fern_tree_tr.png Binary files differnew file mode 100644 index 0000000..768430f --- /dev/null +++ b/plantlife_modpack/ferns/textures/ferns_fern_tree_tr.png diff --git a/plantlife_modpack/ferns/textures/ferns_fern_trunk.png b/plantlife_modpack/ferns/textures/ferns_fern_trunk.png Binary files differnew file mode 100644 index 0000000..a8e1bf6 --- /dev/null +++ b/plantlife_modpack/ferns/textures/ferns_fern_trunk.png diff --git a/plantlife_modpack/ferns/textures/ferns_fern_trunk_big.png b/plantlife_modpack/ferns/textures/ferns_fern_trunk_big.png Binary files differnew file mode 100644 index 0000000..24ede0a --- /dev/null +++ b/plantlife_modpack/ferns/textures/ferns_fern_trunk_big.png diff --git a/plantlife_modpack/ferns/textures/ferns_fern_trunk_big_top.png b/plantlife_modpack/ferns/textures/ferns_fern_trunk_big_top.png Binary files differnew file mode 100644 index 0000000..3e3c829 --- /dev/null +++ b/plantlife_modpack/ferns/textures/ferns_fern_trunk_big_top.png diff --git a/plantlife_modpack/ferns/textures/ferns_fern_trunk_top.png b/plantlife_modpack/ferns/textures/ferns_fern_trunk_top.png Binary files differnew file mode 100644 index 0000000..8b259cc --- /dev/null +++ b/plantlife_modpack/ferns/textures/ferns_fern_trunk_top.png diff --git a/plantlife_modpack/ferns/textures/ferns_ferntuber.png b/plantlife_modpack/ferns/textures/ferns_ferntuber.png Binary files differnew file mode 100644 index 0000000..2d6785d --- /dev/null +++ b/plantlife_modpack/ferns/textures/ferns_ferntuber.png diff --git a/plantlife_modpack/ferns/textures/ferns_ferntuber_roasted.png b/plantlife_modpack/ferns/textures/ferns_ferntuber_roasted.png Binary files differnew file mode 100644 index 0000000..f62a88d --- /dev/null +++ b/plantlife_modpack/ferns/textures/ferns_ferntuber_roasted.png diff --git a/plantlife_modpack/ferns/textures/ferns_fiddlehead.png b/plantlife_modpack/ferns/textures/ferns_fiddlehead.png Binary files differnew file mode 100644 index 0000000..0925c78 --- /dev/null +++ b/plantlife_modpack/ferns/textures/ferns_fiddlehead.png diff --git a/plantlife_modpack/ferns/textures/ferns_fiddlehead_roasted.png b/plantlife_modpack/ferns/textures/ferns_fiddlehead_roasted.png Binary files differnew file mode 100644 index 0000000..9f4943c --- /dev/null +++ b/plantlife_modpack/ferns/textures/ferns_fiddlehead_roasted.png diff --git a/plantlife_modpack/ferns/textures/ferns_horsetail_01.png b/plantlife_modpack/ferns/textures/ferns_horsetail_01.png Binary files differnew file mode 100644 index 0000000..60d3ca6 --- /dev/null +++ b/plantlife_modpack/ferns/textures/ferns_horsetail_01.png diff --git a/plantlife_modpack/ferns/textures/ferns_horsetail_02.png b/plantlife_modpack/ferns/textures/ferns_horsetail_02.png Binary files differnew file mode 100644 index 0000000..3c7edf7 --- /dev/null +++ b/plantlife_modpack/ferns/textures/ferns_horsetail_02.png diff --git a/plantlife_modpack/ferns/textures/ferns_horsetail_03.png b/plantlife_modpack/ferns/textures/ferns_horsetail_03.png Binary files differnew file mode 100644 index 0000000..5d28a46 --- /dev/null +++ b/plantlife_modpack/ferns/textures/ferns_horsetail_03.png diff --git a/plantlife_modpack/ferns/textures/ferns_horsetail_04.png b/plantlife_modpack/ferns/textures/ferns_horsetail_04.png Binary files differnew file mode 100644 index 0000000..a8254ed --- /dev/null +++ b/plantlife_modpack/ferns/textures/ferns_horsetail_04.png diff --git a/plantlife_modpack/ferns/textures/ferns_sapling_tree_fern.png b/plantlife_modpack/ferns/textures/ferns_sapling_tree_fern.png Binary files differnew file mode 100644 index 0000000..b459d48 --- /dev/null +++ b/plantlife_modpack/ferns/textures/ferns_sapling_tree_fern.png diff --git a/plantlife_modpack/ferns/textures/ferns_sapling_tree_fern_giant.png b/plantlife_modpack/ferns/textures/ferns_sapling_tree_fern_giant.png Binary files differnew file mode 100644 index 0000000..e556016 --- /dev/null +++ b/plantlife_modpack/ferns/textures/ferns_sapling_tree_fern_giant.png diff --git a/plantlife_modpack/ferns/textures/ferns_tree_fern_leave_big.png b/plantlife_modpack/ferns/textures/ferns_tree_fern_leave_big.png Binary files differnew file mode 100644 index 0000000..09cc001 --- /dev/null +++ b/plantlife_modpack/ferns/textures/ferns_tree_fern_leave_big.png diff --git a/plantlife_modpack/ferns/textures/ferns_tree_fern_leave_big_cross.png b/plantlife_modpack/ferns/textures/ferns_tree_fern_leave_big_cross.png Binary files differnew file mode 100644 index 0000000..48f7e2c --- /dev/null +++ b/plantlife_modpack/ferns/textures/ferns_tree_fern_leave_big_cross.png diff --git a/plantlife_modpack/ferns/textures/ferns_tree_fern_leave_big_end.png b/plantlife_modpack/ferns/textures/ferns_tree_fern_leave_big_end.png Binary files differnew file mode 100644 index 0000000..d0064fe --- /dev/null +++ b/plantlife_modpack/ferns/textures/ferns_tree_fern_leave_big_end.png diff --git a/plantlife_modpack/ferns/textures/not_in_use/archaeplantae_horsetails.png b/plantlife_modpack/ferns/textures/not_in_use/archaeplantae_horsetails.png Binary files differnew file mode 100644 index 0000000..6ba89c1 --- /dev/null +++ b/plantlife_modpack/ferns/textures/not_in_use/archaeplantae_horsetails.png diff --git a/plantlife_modpack/ferns/textures/not_in_use/big picture 3.png b/plantlife_modpack/ferns/textures/not_in_use/big picture 3.png Binary files differnew file mode 100644 index 0000000..de344e6 --- /dev/null +++ b/plantlife_modpack/ferns/textures/not_in_use/big picture 3.png diff --git a/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_big_left.png b/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_big_left.png Binary files differnew file mode 100644 index 0000000..0fdf515 --- /dev/null +++ b/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_big_left.png diff --git a/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_big_right.png b/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_big_right.png Binary files differnew file mode 100644 index 0000000..d30def0 --- /dev/null +++ b/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_big_right.png diff --git a/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_mid_left.png b/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_mid_left.png Binary files differnew file mode 100644 index 0000000..d146df3 --- /dev/null +++ b/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_mid_left.png diff --git a/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_mid_right.png b/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_mid_right.png Binary files differnew file mode 100644 index 0000000..e10460a --- /dev/null +++ b/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_mid_right.png diff --git a/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_tree_bl.png b/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_tree_bl.png Binary files differnew file mode 100644 index 0000000..e2fdb67 --- /dev/null +++ b/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_tree_bl.png diff --git a/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_tree_br.png b/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_tree_br.png Binary files differnew file mode 100644 index 0000000..eb547e8 --- /dev/null +++ b/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_tree_br.png diff --git a/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_trunk_big_crown.png b/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_trunk_big_crown.png Binary files differnew file mode 100644 index 0000000..7a12671 --- /dev/null +++ b/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_trunk_big_crown.png diff --git a/plantlife_modpack/ferns/textures/old/archaeplantae_fern_old4.png b/plantlife_modpack/ferns/textures/old/archaeplantae_fern_old4.png Binary files differnew file mode 100644 index 0000000..a3d403c --- /dev/null +++ b/plantlife_modpack/ferns/textures/old/archaeplantae_fern_old4.png diff --git a/plantlife_modpack/ferns/textures/old/comb.png b/plantlife_modpack/ferns/textures/old/comb.png Binary files differnew file mode 100644 index 0000000..ea1e19f --- /dev/null +++ b/plantlife_modpack/ferns/textures/old/comb.png diff --git a/plantlife_modpack/ferns/textures/old/ferns_5_old.png b/plantlife_modpack/ferns/textures/old/ferns_5_old.png Binary files differnew file mode 100644 index 0000000..5676278 --- /dev/null +++ b/plantlife_modpack/ferns/textures/old/ferns_5_old.png diff --git a/plantlife_modpack/ferns/textures/old/ferns_6_old.png b/plantlife_modpack/ferns/textures/old/ferns_6_old.png Binary files differnew file mode 100644 index 0000000..36d6040 --- /dev/null +++ b/plantlife_modpack/ferns/textures/old/ferns_6_old.png diff --git a/plantlife_modpack/ferns/textures/old/ferns_7_old.png b/plantlife_modpack/ferns/textures/old/ferns_7_old.png Binary files differnew file mode 100644 index 0000000..8aabe61 --- /dev/null +++ b/plantlife_modpack/ferns/textures/old/ferns_7_old.png diff --git a/plantlife_modpack/ferns/textures/old/ferns_fern_big_old.png b/plantlife_modpack/ferns/textures/old/ferns_fern_big_old.png Binary files differnew file mode 100644 index 0000000..d17ed11 --- /dev/null +++ b/plantlife_modpack/ferns/textures/old/ferns_fern_big_old.png diff --git a/plantlife_modpack/ferns/textures/old/ferns_fern_mid_old.png b/plantlife_modpack/ferns/textures/old/ferns_fern_mid_old.png Binary files differnew file mode 100644 index 0000000..08513c2 --- /dev/null +++ b/plantlife_modpack/ferns/textures/old/ferns_fern_mid_old.png diff --git a/plantlife_modpack/ferns/textures/old/ferns_fern_tree_old.png b/plantlife_modpack/ferns/textures/old/ferns_fern_tree_old.png Binary files differnew file mode 100644 index 0000000..4599672 --- /dev/null +++ b/plantlife_modpack/ferns/textures/old/ferns_fern_tree_old.png diff --git a/plantlife_modpack/ferns/textures/old/ferns_fern_trunk_big_old2.png b/plantlife_modpack/ferns/textures/old/ferns_fern_trunk_big_old2.png Binary files differnew file mode 100644 index 0000000..a048ee0 --- /dev/null +++ b/plantlife_modpack/ferns/textures/old/ferns_fern_trunk_big_old2.png diff --git a/plantlife_modpack/ferns/textures/old/ferns_fern_trunk_big_top_old.png b/plantlife_modpack/ferns/textures/old/ferns_fern_trunk_big_top_old.png Binary files differnew file mode 100644 index 0000000..d83151f --- /dev/null +++ b/plantlife_modpack/ferns/textures/old/ferns_fern_trunk_big_top_old.png diff --git a/plantlife_modpack/ferns/textures/old/ferns_fern_trunk_big_top_old2.png b/plantlife_modpack/ferns/textures/old/ferns_fern_trunk_big_top_old2.png Binary files differnew file mode 100644 index 0000000..244ddfe --- /dev/null +++ b/plantlife_modpack/ferns/textures/old/ferns_fern_trunk_big_top_old2.png diff --git a/plantlife_modpack/ferns/textures/old/ferns_fern_trunk_top_old.png b/plantlife_modpack/ferns/textures/old/ferns_fern_trunk_top_old.png Binary files differnew file mode 100644 index 0000000..872fdab --- /dev/null +++ b/plantlife_modpack/ferns/textures/old/ferns_fern_trunk_top_old.png diff --git a/plantlife_modpack/ferns/textures/old/ferns_horsetail_01_old2.png b/plantlife_modpack/ferns/textures/old/ferns_horsetail_01_old2.png Binary files differnew file mode 100644 index 0000000..7d55718 --- /dev/null +++ b/plantlife_modpack/ferns/textures/old/ferns_horsetail_01_old2.png diff --git a/plantlife_modpack/ferns/textures/old/ferns_horsetail_02_old2.png b/plantlife_modpack/ferns/textures/old/ferns_horsetail_02_old2.png Binary files differnew file mode 100644 index 0000000..d0b5563 --- /dev/null +++ b/plantlife_modpack/ferns/textures/old/ferns_horsetail_02_old2.png diff --git a/plantlife_modpack/ferns/textures/old/ferns_horsetail_03_old2.png b/plantlife_modpack/ferns/textures/old/ferns_horsetail_03_old2.png Binary files differnew file mode 100644 index 0000000..42cf76e --- /dev/null +++ b/plantlife_modpack/ferns/textures/old/ferns_horsetail_03_old2.png diff --git a/plantlife_modpack/ferns/textures/old/ferns_horsetail_04_old2.png b/plantlife_modpack/ferns/textures/old/ferns_horsetail_04_old2.png Binary files differnew file mode 100644 index 0000000..600ebe7 --- /dev/null +++ b/plantlife_modpack/ferns/textures/old/ferns_horsetail_04_old2.png diff --git a/plantlife_modpack/ferns/textures/old/ferns_tree_fern_leave_big_cross_old.png b/plantlife_modpack/ferns/textures/old/ferns_tree_fern_leave_big_cross_old.png Binary files differnew file mode 100644 index 0000000..00ec9d8 --- /dev/null +++ b/plantlife_modpack/ferns/textures/old/ferns_tree_fern_leave_big_cross_old.png diff --git a/plantlife_modpack/ferns/textures/old/ferns_tree_fern_leave_big_end_old.png b/plantlife_modpack/ferns/textures/old/ferns_tree_fern_leave_big_end_old.png Binary files differnew file mode 100644 index 0000000..ce1a87d --- /dev/null +++ b/plantlife_modpack/ferns/textures/old/ferns_tree_fern_leave_big_end_old.png diff --git a/plantlife_modpack/ferns/textures/old/ferns_tree_fern_leave_big_old.png b/plantlife_modpack/ferns/textures/old/ferns_tree_fern_leave_big_old.png Binary files differnew file mode 100644 index 0000000..b568383 --- /dev/null +++ b/plantlife_modpack/ferns/textures/old/ferns_tree_fern_leave_big_old.png diff --git a/plantlife_modpack/ferns/treefern.lua b/plantlife_modpack/ferns/treefern.lua new file mode 100644 index 0000000..4ba502b --- /dev/null +++ b/plantlife_modpack/ferns/treefern.lua @@ -0,0 +1,228 @@ +----------------------------------------------------------------------------------------------- +-- Ferns - Tree Fern 0.1.1 +----------------------------------------------------------------------------------------------- +-- by Mossmanikin +-- License (everything): 	WTFPL +-- Contains code from: 		biome_lib +-- Looked at code from:		default	, trees			 +----------------------------------------------------------------------------------------------- + +assert(abstract_ferns.config.enable_treefern == true) + +abstract_ferns.grow_tree_fern = function(pos) + +	local pos_01 = {x = pos.x, y = pos.y + 1, z = pos.z} +	if minetest.get_node(pos_01).name ~= "air" +			and minetest.get_node(pos_01).name ~= "ferns:sapling_tree_fern" +			and minetest.get_node(pos_01).name ~= "default:junglegrass" then +		return +	end +		 +	local size = math.random(1, 4) + math.random(1, 4) +	if (size > 5) then +		size = 10 - size +	end +	size = size + 1 +	local crown = ({ "ferns:tree_fern_leaves", "ferns:tree_fern_leaves_02" })[math.random(1, 2)] +	 +	local i = 1 +	while (i < size-1) do +		if minetest.get_node({x = pos.x, y = pos.y + i + 1, z = pos.z}).name ~= "air" then +			break +		end +		minetest.set_node({x = pos.x, y = pos.y + i, z = pos.z}, { name = "ferns:fern_trunk" }) +		i = i + 1 +	end + +	minetest.set_node({x = pos.x, y = pos.y + i, z = pos.z}, { name = crown }) +end + +----------------------------------------------------------------------------------------------- +-- TREE FERN LEAVES +----------------------------------------------------------------------------------------------- + +-- TODO: Both of these nodes look the same? + +minetest.register_node("ferns:tree_fern_leaves", { +	description = "Tree Fern Crown (Dicksonia)", +	drawtype = "plantlike", +	visual_scale = 2, +	paramtype = "light", +	paramtype2 = "facedir", +	--tiles = {"[combine:32x32:0,0=top_left.png:0,16=bottom_left.png:16,0=top_right.png:16,16=bottom_right.png"}, +	tiles = {"ferns_fern_tree.png"}, +	inventory_image = "ferns_fern_tree_inv.png", +	walkable = false, +	groups = {snappy=3,flammable=2,attached_node=1}, +	drop = { +		max_items = 2, +		items = { +			{ +				-- occasionally, drop a second sapling instead of leaves +				-- (extra saplings can also be obtained by replanting and +				--  reharvesting leaves) +				items = {"ferns:sapling_tree_fern"}, +				rarity = 10, +			}, +			{ +				items = {"ferns:sapling_tree_fern"}, +			}, +			{ +				items = {"ferns:tree_fern_leaves"}, +			} +		} +	}, +	sounds = default.node_sound_leaves_defaults(), +	selection_box = { +		type = "fixed", +		fixed = {-7/16, -1/2, -7/16, 7/16, 0, 7/16}, +	}, +}) +minetest.register_node("ferns:tree_fern_leaves_02", { +	drawtype = "plantlike", +	visual_scale = 2, +	paramtype = "light", +	tiles = {"ferns_fern_big.png"}, +	walkable = false, +	groups = {snappy=3,flammable=2,attached_node=1,not_in_creative_inventory=1}, +	drop = { +		max_items = 2, +		items = { +			{ +				-- occasionally, drop a second sapling instead of leaves +				-- (extra saplings can also be obtained by replanting and +				--  reharvesting leaves) +				items = {"ferns:sapling_tree_fern"}, +				rarity = 10, +			}, +			{ +				items = {"ferns:sapling_tree_fern"}, +			}, +			{ +				items = {"ferns:tree_fern_leaves"}, +			} +		} +	}, +	sounds = default.node_sound_leaves_defaults(), +	selection_box = { +		type = "fixed", +		fixed = {-7/16, -1/2, -7/16, 7/16, 0, 7/16}, +	}, +}) +----------------------------------------------------------------------------------------------- +-- FERN TRUNK +----------------------------------------------------------------------------------------------- +minetest.register_node("ferns:fern_trunk", { +	description = "Fern Trunk (Dicksonia)", +	drawtype = "nodebox", +	paramtype = "light", +	tiles = { +		"ferns_fern_trunk_top.png", +		"ferns_fern_trunk_top.png", +		"ferns_fern_trunk.png" +	}, +	node_box = { +		type = "fixed", +		fixed = {-1/8, -1/2, -1/8, 1/8, 1/2, 1/8}, +	}, +	selection_box = { +		type = "fixed", +		fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7}, +	}, +	groups = {tree=1,choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1}, +	sounds = default.node_sound_wood_defaults(), +	after_destruct = function(pos,oldnode) +        local node = minetest.get_node({x=pos.x,y=pos.y+1,z=pos.z}) +        if node.name == "ferns:fern_trunk" then  +            minetest.dig_node({x=pos.x,y=pos.y+1,z=pos.z})  +            minetest.add_item(pos,"ferns:fern_trunk") +        end +    end, +}) + +----------------------------------------------------------------------------------------------- +-- TREE FERN SAPLING +----------------------------------------------------------------------------------------------- +minetest.register_node("ferns:sapling_tree_fern", { +	description = "Tree Fern Sapling (Dicksonia)", +	drawtype = "plantlike", +	paramtype = "light", +	paramtype2 = "facedir", +	tiles = {"ferns_sapling_tree_fern.png"}, +	inventory_image = "ferns_sapling_tree_fern.png", +	walkable = false, +	groups = {snappy=3,flammable=2,flora=1,attached_node=1}, +	sounds = default.node_sound_leaves_defaults(), +	selection_box = { +		type = "fixed", +		fixed = {-7/16, -1/2, -7/16, 7/16, 0, 7/16}, +	}, +}) +-- abm +minetest.register_abm({ +	nodenames = "ferns:sapling_tree_fern", +	interval = 1000, +	chance = 4, +	action = function(pos, node, _, _) +		abstract_ferns.grow_tree_fern({x = pos.x, y = pos.y-1, z = pos.z}) +    end +}) + +----------------------------------------------------------------------------------------------- +-- GENERATE TREE FERN +----------------------------------------------------------------------------------------------- + +-- in jungles +if abstract_ferns.config.enable_treeferns_in_jungle == true then +	biome_lib:register_generate_plant({ +		surface = { +			"default:dirt_with_grass", +			"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, +	}, +	abstract_ferns.grow_tree_fern +	) +end + +-- for oases & tropical beaches +if abstract_ferns.config.enable_treeferns_in_oases == true then +	biome_lib:register_generate_plant({ +		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"}, +		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  | 
