diff options
| -rw-r--r-- | default_settings.txt | 7 | ||||
| -rw-r--r-- | init.lua | 59 | ||||
| -rw-r--r-- | node_defs.lua | 73 | ||||
| -rw-r--r-- | saplings.lua | 42 | 
4 files changed, 160 insertions, 21 deletions
| diff --git a/default_settings.txt b/default_settings.txt index e13b0aa..665222e 100644 --- a/default_settings.txt +++ b/default_settings.txt @@ -15,6 +15,13 @@ moretrees.enable_jungle_tree		= true  moretrees.enable_fir			= true  moretrees.enable_beech			= false +-- set this to true to make moretrees spawn saplings at mapgen time instead +-- of fully-grown trees, which will grow into full trees very quickly.  This will +-- greatly reduce mapgen lag, at the expense of having to wait several seconds for +-- the trees to grow via an ABM. + +moretrees.spawn_saplings		= true +  -- Set this to true to allow usage of the stairsplus mod in moreblocks  moretrees.enable_stairsplus		= true @@ -57,61 +57,92 @@ moretrees.cutting_tools = {  }  dofile(modpath.."/tree_models.lua") -dofile(modpath.."/biome_defs.lua")  dofile(modpath.."/node_defs.lua") +dofile(modpath.."/biome_defs.lua")  dofile(modpath.."/saplings.lua")  dofile(modpath.."/crafts.lua")  dofile(modpath.."/leafdecay.lua")  -- tree spawning setup +if moretrees.spawn_saplings then +	moretrees.spawn_beech_object = "moretrees:beech_sapling_ongen" +	moretrees.spawn_apple_tree_object = "moretrees:apple_tree_sapling_ongen" +	moretrees.spawn_oak_object = "moretrees:oak_sapling_ongen" +	moretrees.spawn_sequoia_object = "moretrees:sequoia_sapling_ongen" +	moretrees.spawn_palm_object = "moretrees:palm_sapling_ongen" +	moretrees.spawn_pine_object = "moretrees:pine_sapling_ongen" +	moretrees.spawn_rubber_tree_object = "moretrees:rubber_tree_sapling_ongen" +	moretrees.spawn_willow_object = "moretrees:willow_sapling_ongen" +	moretrees.spawn_birch_object = "moretrees:birch_sapling_ongen" +	moretrees.spawn_spruce_object = "moretrees:spruce_sapling_ongen" +	moretrees.spawn_jungletree_object = "moretrees:jungletree_sapling_ongen" +	moretrees.spawn_fir_object = "moretrees:fir_sapling_ongen" +	moretrees.spawn_fir_snow_object = "snow:sapling_pine" +else +	moretrees.spawn_beech_object = moretrees.beech_model +	moretrees.spawn_apple_tree_object = moretrees.apple_tree_model +	moretrees.spawn_oak_object = moretrees.oak_model +	moretrees.spawn_sequoia_object = moretrees.sequoia_model +	moretrees.spawn_palm_object = moretrees.palm_model +	moretrees.spawn_pine_object = moretrees.pine_model +	moretrees.spawn_rubber_tree_object = moretrees.rubber_tree_model +	moretrees.spawn_willow_object = moretrees.willow_model +	moretrees.spawn_birch_object = "moretrees:grow_birch" +	moretrees.spawn_spruce_object = "moretrees:grow_spruce" +	moretrees.spawn_jungletree_object = "moretrees:grow_jungletree" +	moretrees.spawn_fir_object = "moretrees:grow_fir" +	moretrees.spawn_fir_snow_object = "moretrees:grow_fir_snow" +end + +  if moretrees.enable_beech then -	plantslib:register_generate_plant(moretrees.beech_biome, moretrees.beech_model) +	plantslib:register_generate_plant(moretrees.beech_biome, moretrees.spawn_beech_object)  end  if moretrees.enable_apple_tree then -	plantslib:register_generate_plant(moretrees.apple_tree_biome, moretrees.apple_tree_model) +	plantslib:register_generate_plant(moretrees.apple_tree_biome, moretrees.spawn_apple_tree_object)  end  if moretrees.enable_oak then -	plantslib:register_generate_plant(moretrees.oak_biome, moretrees.oak_model) +	plantslib:register_generate_plant(moretrees.oak_biome, moretrees.spawn_oak_object)  end  if moretrees.enable_sequoia then -	plantslib:register_generate_plant(moretrees.sequoia_biome, moretrees.sequoia_model) +	plantslib:register_generate_plant(moretrees.sequoia_biome, moretrees.spawn_sequoia_object)  end  if moretrees.enable_palm then -	plantslib:register_generate_plant(moretrees.palm_biome, moretrees.palm_model) +	plantslib:register_generate_plant(moretrees.palm_biome, moretrees.spawn_palm_object)  end  if moretrees.enable_pine then -	plantslib:register_generate_plant(moretrees.pine_biome, moretrees.pine_model) +	plantslib:register_generate_plant(moretrees.pine_biome, moretrees.spawn_pine_object)  end  if moretrees.enable_rubber_tree then -	plantslib:register_generate_plant(moretrees.rubber_tree_biome, moretrees.rubber_tree_model) +	plantslib:register_generate_plant(moretrees.rubber_tree_biome, moretrees.spawn_rubber_tree_object)  end  if moretrees.enable_willow then -	plantslib:register_generate_plant(moretrees.willow_biome, moretrees.willow_model) +	plantslib:register_generate_plant(moretrees.willow_biome, moretrees.spawn_willow_object)  end  if moretrees.enable_birch then -	plantslib:register_generate_plant(moretrees.birch_biome, "moretrees:grow_birch") +	plantslib:register_generate_plant(moretrees.birch_biome, moretrees.spawn_birch_object)  end  if moretrees.enable_spruce then -	plantslib:register_generate_plant(moretrees.spruce_biome, "moretrees:grow_spruce") +	plantslib:register_generate_plant(moretrees.spruce_biome, moretrees.spawn_spruce_object)  end  if moretrees.enable_jungle_tree then -	plantslib:register_generate_plant(moretrees.jungletree_biome, "moretrees:grow_jungletree") +	plantslib:register_generate_plant(moretrees.jungletree_biome, moretrees.spawn_jungletree_object)  end  if moretrees.enable_fir then -	plantslib:register_generate_plant(moretrees.fir_biome, "moretrees:grow_fir") -	plantslib:register_generate_plant(moretrees.fir_biome_snow, "moretrees:grow_fir_snow") +	plantslib:register_generate_plant(moretrees.fir_biome, moretrees.spawn_fir_object) +	plantslib:register_generate_plant(moretrees.fir_biome_snow, moretrees.spawn_fir_snow_object)  end  -- Code to spawn a birch tree diff --git a/node_defs.lua b/node_defs.lua index b02a6a2..a71b5c3 100644 --- a/node_defs.lua +++ b/node_defs.lua @@ -27,7 +27,7 @@ for i in ipairs(moretrees.treelist) do  	local selbox = moretrees.treelist[i][5]  	local vscale = moretrees.treelist[i][6] -	if treename ~= "jungletree" then -- the default game provides jungle tree nodes. +	if treename ~= "jungletree" then -- the default game provides jungle tree trunk/planks nodes.  		minetest.register_node("moretrees:"..treename.."_trunk", {  			description = treedesc.." Trunk", @@ -65,6 +65,22 @@ for i in ipairs(moretrees.treelist) do  			sounds = default.node_sound_defaults(),  		}) +		minetest.register_node("moretrees:"..treename.."_sapling_ongen", { +			description = treedesc.." Sapling", +			drawtype = "plantlike", +			tiles = {"moretrees_"..treename.."_sapling.png"}, +			inventory_image = "moretrees_"..treename.."_sapling.png", +			paramtype = "light", +			walkable = false, +			selection_box = { +				type = "fixed", +				fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3} +			}, +			groups = {snappy=2,dig_immediate=3,flammable=2,attached_node=1,not_in_creative_inventory=1}, +			sounds = default.node_sound_defaults(), +			drop = "moretrees:"..treename.."_sapling" +		}) +  		-- player will get a sapling with 1/100 chance  		-- player will get leaves only if he/she gets no saplings,  		-- this is because max_items is 1 @@ -226,9 +242,49 @@ for i in ipairs(moretrees.treelist) do  	})  	table.insert(moretrees.avoidnodes, "moretrees:"..treename.."_trunk") + +	if moretrees.spawn_saplings then +			table.insert(moretrees.avoidnodes, "moretrees:"..treename.."_sapling") +			table.insert(moretrees.avoidnodes, "moretrees:"..treename.."_sapling_ongen") +	end  end --- Extra leaves for jungle trees: +-- Extra nodes for jungle trees: + +minetest.register_node("moretrees:jungletree_sapling", { +        description = "Jungle Sapling", +        drawtype = "plantlike", +        visual_scale = 1.0, +        tiles = {"default_junglesapling.png"}, +        inventory_image = "default_junglesapling.png", +        wield_image = "default_junglesapling.png", +        paramtype = "light", +        walkable = false, +        selection_box = { +                type = "fixed", +                fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3} +        }, +        groups = {snappy=2,dig_immediate=3,flammable=2,attached_node=1}, +        sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("moretrees:jungletree_sapling_ongen", { +        description = "Jungle Sapling", +        drawtype = "plantlike", +        visual_scale = 1.0, +        tiles = {"default_junglesapling.png"}, +        inventory_image = "default_junglesapling.png", +        wield_image = "default_junglesapling.png", +        paramtype = "light", +        walkable = false, +        selection_box = { +                type = "fixed", +                fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3} +        }, +        groups = {snappy=2,dig_immediate=3,flammable=2,attached_node=1,not_in_creative_inventory=1}, +        sounds = default.node_sound_leaves_defaults(), +	drop = "moretrees:jungletree_sapling" +})  local jungleleaves = {"green","yellow","red"}  local jungleleavesnames = {"Green", "Yellow", "Red"} @@ -295,6 +351,13 @@ table.insert(moretrees.avoidnodes, "moretrees:jungletree_trunk")  table.insert(moretrees.avoidnodes, "moretrees:fir_trunk")  table.insert(moretrees.avoidnodes, "default:tree") +if moretrees.spawn_saplings then +		table.insert(moretrees.avoidnodes, "snow:sapling_pine") +		table.insert(moretrees.avoidnodes, "default:junglesapling") +		table.insert(moretrees.avoidnodes, "moretrees:jungle_tree_sapling") +		table.insert(moretrees.avoidnodes, "moretrees:jungle_tree_sapling_ongen") +end +  -- "empty" (tapped) rubber tree nodes  minetest.register_node("moretrees:rubber_tree_trunk_empty", { @@ -332,11 +395,7 @@ minetest.register_alias("farming_plus:rubber_leaves", "moretrees:rubber_tree_lea  minetest.register_alias("farming_plus:rubber_sapling", "moretrees:rubber_tree_sapling")  minetest.register_alias("technic:rubber_tree_sapling", "moretrees:rubber_tree_sapling") -minetest.register_alias("moretrees:jungletree_trunk", "default:jungletree") -minetest.register_alias("moretrees:jungletree_planks", "default:junglewood") -minetest.register_alias("moretrees:jungletree_sapling", "default:junglesapling") -minetest.register_alias("jungletree:sapling", "default:junglesapling") - +minetest.register_alias("default:junglesapling","moretrees:jungletree_sapling")  minetest.register_alias("moretrees:jungletree_trunk_sideways", "moreblocks:horizontal_jungle_tree")  minetest.register_alias("jungletree:leaves_green", "moretrees:jungletree_leaves_green") diff --git a/saplings.lua b/saplings.lua index 5d0af28..64c6a59 100644 --- a/saplings.lua +++ b/saplings.lua @@ -15,6 +15,15 @@ for i in ipairs(moretrees.treelist) do  			grow_nodes = moretrees[tree_biome].surface,  			grow_function = moretrees[tree_model],  		}) + +		plantslib:grow_plants({ +			grow_delay = 2, +			grow_chance = 30, +			grow_plant = "moretrees:"..treename.."_sapling_ongen", +			grow_nodes = moretrees[tree_biome].surface, +			grow_function = moretrees[tree_model], +		}) +  	end  end @@ -29,6 +38,14 @@ plantslib:grow_plants({  plantslib:grow_plants({  	grow_delay = moretrees.sapling_interval,  	grow_chance = moretrees.sapling_chance, +	grow_plant = "moretrees:birch_sapling_ongen", +	grow_nodes = moretrees.birch_biome.surface, +	grow_function = "moretrees:grow_birch" +}) + +plantslib:grow_plants({ +	grow_delay = moretrees.sapling_interval, +	grow_chance = moretrees.sapling_chance,  	grow_plant = "moretrees:spruce_sapling",  	grow_nodes = moretrees.spruce_biome.surface,  	grow_function = "moretrees:grow_spruce" @@ -37,6 +54,14 @@ plantslib:grow_plants({  plantslib:grow_plants({  	grow_delay = moretrees.sapling_interval,  	grow_chance = moretrees.sapling_chance, +	grow_plant = "moretrees:spruce_sapling_ongen", +	grow_nodes = moretrees.spruce_biome.surface, +	grow_function = "moretrees:grow_spruce" +}) + +plantslib:grow_plants({ +	grow_delay = moretrees.sapling_interval, +	grow_chance = moretrees.sapling_chance,  	grow_plant = "moretrees:fir_sapling",  	grow_nodes = moretrees.fir_biome.surface,  	grow_function = "moretrees:grow_fir" @@ -45,7 +70,24 @@ plantslib:grow_plants({  plantslib:grow_plants({  	grow_delay = moretrees.sapling_interval,  	grow_chance = moretrees.sapling_chance, +	grow_plant = "moretrees:fir_sapling_ongen", +	grow_nodes = moretrees.fir_biome.surface, +	grow_function = "moretrees:grow_fir" +}) + +plantslib:grow_plants({ +	grow_delay = moretrees.sapling_interval, +	grow_chance = moretrees.sapling_chance,  	grow_plant = "moretrees:jungletree_sapling",  	grow_nodes = moretrees.jungletree_biome.surface,  	grow_function = "moretrees:grow_jungletree"  }) + +plantslib:grow_plants({ +	grow_delay = moretrees.sapling_interval, +	grow_chance = moretrees.sapling_chance, +	grow_plant = "moretrees:jungletree_sapling_ongen", +	grow_nodes = moretrees.jungletree_biome.surface, +	grow_function = "moretrees:grow_jungletree" +}) + | 
