forked from mtcontrib/moretrees
		
	Compare commits
	
		
			37 Commits
		
	
	
		
			7383549476
			...
			master
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					403b16f5d9 | ||
| 
						 | 
					7c690ed901 | ||
| 
						 | 
					ac3e30ae86 | ||
| 
						 | 
					c15250a03a | ||
| 
						 | 
					458536dbe6 | ||
| 
						 | 
					2c891e6c25 | ||
| 
						 | 
					517c9dc516 | ||
| 
						 | 
					3e424b2797 | ||
| 
						 | 
					1b6914bc26 | ||
| 
						 | 
					f49b1c42c9 | ||
| 
						 | 
					670f7f4e61 | ||
| 
						 | 
					9a6c64d163 | ||
| 
						 | 
					5d7c46c4cf | ||
| 
						 | 
					17f2037218 | ||
| 
						 | 
					b1fe8df038 | ||
| 
						 | 
					b56e22fefd | ||
| 
						 | 
					288870bc8d | ||
| 
						 | 
					393840ba49 | ||
| 
						 | 
					21bdcc360b | ||
| 
						 | 
					7879bd8192 | ||
| 
						 | 
					5bc6bdc3d9 | ||
| 
						 | 
					e476b81cf5 | ||
| 
						 | 
					8103aaae79 | ||
| 
						 | 
					c4d1dde83c | ||
| 
						 | 
					87a997ba4a | ||
| 
						 | 
					cbe846dfde | ||
| 
						 | 
					62cab1b1d9 | ||
| 
						 | 
					20770027a6 | ||
| 
						 | 
					06aaee3187 | ||
| 
						 | 
					8c0a83dacb | ||
| 
						 | 
					24bb114a11 | ||
| 
						 | 
					c559ea3aef | ||
| 
						 | 
					3212fae8cf | ||
| 
						 | 
					ea92403fa3 | ||
| 
						 | 
					dd36f8b63e | ||
| 
						 | 
					dc93bb5f16 | ||
| 
						 | 
					e72c539cdc | 
							
								
								
									
										18
									
								
								.github/workflows/luacheck.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								.github/workflows/luacheck.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					name: luacheck
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					on: [push, pull_request]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jobs:
 | 
				
			||||||
 | 
					  build:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					    - uses: actions/checkout@v1
 | 
				
			||||||
 | 
					    - name: apt
 | 
				
			||||||
 | 
					      run: sudo apt-get install -y luarocks
 | 
				
			||||||
 | 
					    - name: luacheck install
 | 
				
			||||||
 | 
					      run: luarocks install --local luacheck
 | 
				
			||||||
 | 
					    - name: luacheck run
 | 
				
			||||||
 | 
					      run: $HOME/.luarocks/bin/luacheck ./
 | 
				
			||||||
							
								
								
									
										33
									
								
								.luacheckrc
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								.luacheckrc
									
									
									
									
									
								
							@@ -1,17 +1,28 @@
 | 
				
			|||||||
unused_args = false
 | 
					unused_args = false
 | 
				
			||||||
allow_defined_top = true
 | 
					allow_defined_top = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
read_globals = {
 | 
					exclude_files = {".luacheckrc"}
 | 
				
			||||||
	"DIR_DELIM",
 | 
					
 | 
				
			||||||
	"minetest", "core",
 | 
					
 | 
				
			||||||
	"dump",
 | 
					globals = {
 | 
				
			||||||
	"vector", "nodeupdate",
 | 
						"minetest",
 | 
				
			||||||
	"VoxelManip", "VoxelArea",
 | 
						"vector",
 | 
				
			||||||
	"PseudoRandom", "ItemStack",
 | 
						"VoxelManip",
 | 
				
			||||||
	"intllib",
 | 
						"VoxelArea",
 | 
				
			||||||
 | 
						"PseudoRandom",
 | 
				
			||||||
 | 
						"ItemStack",
 | 
				
			||||||
	"default",
 | 
						"default",
 | 
				
			||||||
	table = { fields = { "copy", "getn" } },
 | 
						"dump",
 | 
				
			||||||
	"biome_lib",
 | 
						"moretrees",
 | 
				
			||||||
	"stairs", "stairsplus",
 | 
						"ethereal",
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					read_globals = {
 | 
				
			||||||
 | 
						string = {fields = {"split"}},
 | 
				
			||||||
 | 
					    table = {fields = {"copy", "getn"}},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"stairsplus",
 | 
				
			||||||
 | 
						"stairs",
 | 
				
			||||||
 | 
						"doors",
 | 
				
			||||||
 | 
						"xcompat",
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,4 +8,5 @@ jungle trees mod, and big contributions by RealBadAngel.
 | 
				
			|||||||
Brought together into one mod and made L-systems compatible by Vanessa
 | 
					Brought together into one mod and made L-systems compatible by Vanessa
 | 
				
			||||||
Ezekowitz.
 | 
					Ezekowitz.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Dependencies: <a href="https://forum.minetest.net/viewtopic.php?f=11&t=12999">biome_lib</a> and default
 | 
					Dependencies: `xcompat`  
 | 
				
			||||||
 | 
					see mod.conf for more
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										289
									
								
								biome_defs.lua
									
									
									
									
									
								
							
							
						
						
									
										289
									
								
								biome_defs.lua
									
									
									
									
									
								
							@@ -1,304 +1,173 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					-- TODO
 | 
				
			||||||
 | 
					-- Use biomes in the decoration definition depending on their heat_point humidity_point
 | 
				
			||||||
 | 
					-- instead of spawning it with a rather low fill_ratio everywhere
 | 
				
			||||||
 | 
					local ratio_abundant =  0.001
 | 
				
			||||||
 | 
					local ratio_common =    0.0005
 | 
				
			||||||
 | 
					local ratio_normal =    0.0003
 | 
				
			||||||
 | 
					local ratio_uncommon =  0.0002
 | 
				
			||||||
 | 
					local ratio_rare =      0.0001
 | 
				
			||||||
 | 
					local ratio_very_rare = 0.00003
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					local coniferous_place_on = {
 | 
				
			||||||
 | 
						xcompat.materials.dirt_with_grass,
 | 
				
			||||||
 | 
						"default:dirt_with_coniferous_litter"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
moretrees.beech_biome = {
 | 
					moretrees.beech_biome = {
 | 
				
			||||||
	surface = "default:dirt_with_grass",
 | 
						place_on = xcompat.materials.dirt_with_grass,
 | 
				
			||||||
	avoid_nodes = moretrees.avoidnodes,
 | 
						fill_ratio = ratio_normal,
 | 
				
			||||||
	avoid_radius = 8,
 | 
					 | 
				
			||||||
	seed_diff = 2,
 | 
					 | 
				
			||||||
	rarity = 50,
 | 
					 | 
				
			||||||
	max_count = 20,
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
moretrees.palm_biome = {
 | 
					moretrees.palm_biome = {
 | 
				
			||||||
	surface = "default:sand",
 | 
						place_on = xcompat.materials.sand,
 | 
				
			||||||
	avoid_nodes = moretrees.avoidnodes,
 | 
					 | 
				
			||||||
	avoid_radius = 5,
 | 
					 | 
				
			||||||
	seed_diff = 330,
 | 
					 | 
				
			||||||
	min_elevation = -1,
 | 
						min_elevation = -1,
 | 
				
			||||||
	max_elevation = 1,
 | 
						max_elevation = 1,
 | 
				
			||||||
	near_nodes = {"default:water_source"},
 | 
						fill_ratio = ratio_abundant,
 | 
				
			||||||
	near_nodes_size = 15,
 | 
					 | 
				
			||||||
	near_nodes_count = 10,
 | 
					 | 
				
			||||||
	temp_min = 0.25,
 | 
					 | 
				
			||||||
	temp_max = -0.15,
 | 
					 | 
				
			||||||
	rarity = 50,
 | 
					 | 
				
			||||||
	max_count = 10,
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
moretrees.date_palm_biome = {
 | 
					moretrees.date_palm_biome = {
 | 
				
			||||||
	surface = "default:desert_sand",
 | 
						place_on = xcompat.materials.desert_sand,
 | 
				
			||||||
	avoid_nodes = moretrees.avoidnodes,
 | 
					 | 
				
			||||||
	avoid_radius = 10,
 | 
					 | 
				
			||||||
	seed_diff = 339,
 | 
					 | 
				
			||||||
	min_elevation = -1,
 | 
						min_elevation = -1,
 | 
				
			||||||
	max_elevation = 10,
 | 
						max_elevation = 8,
 | 
				
			||||||
	near_nodes = {"default:water_source"},
 | 
						fill_ratio = ratio_common,
 | 
				
			||||||
	near_nodes_size = 20,
 | 
					 | 
				
			||||||
	near_nodes_count = 100,
 | 
					 | 
				
			||||||
	near_nodes_vertical = 20,
 | 
					 | 
				
			||||||
	temp_min = -0.20,
 | 
					 | 
				
			||||||
	humidity_max = 0.20,
 | 
					 | 
				
			||||||
	rarity = 10,
 | 
					 | 
				
			||||||
	max_count = 30,
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
moretrees.date_palm_biome_2 = {
 | 
					moretrees.date_palm_biome_2 = {
 | 
				
			||||||
	surface = "default:desert_sand",
 | 
						place_on = xcompat.materials.desert_sand,
 | 
				
			||||||
	avoid_nodes = moretrees.avoidnodes,
 | 
						min_elevation = 9,
 | 
				
			||||||
	avoid_radius = 10,
 | 
					 | 
				
			||||||
	seed_diff = 340,
 | 
					 | 
				
			||||||
	min_elevation = 11,
 | 
					 | 
				
			||||||
	max_elevation = 30,
 | 
						max_elevation = 30,
 | 
				
			||||||
	near_nodes = {"default:water_source"},
 | 
						spawn_by = {xcompat.materials.water_source},
 | 
				
			||||||
	near_nodes_size = 1,
 | 
						num_spawn_by = 1,
 | 
				
			||||||
	near_nodes_count = 1,
 | 
						fill_ratio = ratio_abundant,
 | 
				
			||||||
	near_nodes_vertical = 30,
 | 
					 | 
				
			||||||
	temp_min = -0.20,
 | 
					 | 
				
			||||||
	humidity_max = 0.20,
 | 
					 | 
				
			||||||
	rarity = 10,
 | 
					 | 
				
			||||||
	max_count = 30,
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
moretrees.apple_tree_biome = {
 | 
					moretrees.apple_tree_biome = {
 | 
				
			||||||
	surface = "default:dirt_with_grass",
 | 
						place_on = xcompat.materials.dirt_with_grass,
 | 
				
			||||||
	avoid_nodes = moretrees.avoidnodes,
 | 
					 | 
				
			||||||
	avoid_radius = 10,
 | 
					 | 
				
			||||||
	seed_diff = 331,
 | 
					 | 
				
			||||||
	min_elevation = 1,
 | 
						min_elevation = 1,
 | 
				
			||||||
	max_elevation = 10,
 | 
						max_elevation = 10,
 | 
				
			||||||
	temp_min = 0.1,
 | 
						biomes = {"deciduous_forest"},
 | 
				
			||||||
	temp_max = -0.15,
 | 
						fill_ratio = ratio_rare,
 | 
				
			||||||
	rarity = 75,
 | 
					 | 
				
			||||||
	max_count = 5,
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
moretrees.oak_biome = {
 | 
					moretrees.oak_biome = {
 | 
				
			||||||
	surface = "default:dirt_with_grass",
 | 
						place_on = xcompat.materials.dirt_with_grass,
 | 
				
			||||||
	avoid_nodes = moretrees.avoidnodes,
 | 
					 | 
				
			||||||
	avoid_radius = 15,
 | 
					 | 
				
			||||||
	seed_diff = 332,
 | 
					 | 
				
			||||||
	min_elevation = 0,
 | 
						min_elevation = 0,
 | 
				
			||||||
	max_elevation = 10,
 | 
						max_elevation = 10,
 | 
				
			||||||
	temp_min = 0.4,
 | 
						fill_ratio = ratio_normal,
 | 
				
			||||||
	temp_max = 0.2,
 | 
					 | 
				
			||||||
	rarity = 50,
 | 
					 | 
				
			||||||
	max_count = 5,
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
moretrees.sequoia_biome = {
 | 
					moretrees.sequoia_biome = {
 | 
				
			||||||
	surface = "default:dirt_with_grass",
 | 
						place_on = xcompat.materials.dirt_with_grass,
 | 
				
			||||||
	avoid_nodes = moretrees.avoidnodes,
 | 
					 | 
				
			||||||
	avoid_radius = 10,
 | 
					 | 
				
			||||||
	seed_diff = 333,
 | 
					 | 
				
			||||||
	min_elevation = 0,
 | 
						min_elevation = 0,
 | 
				
			||||||
	max_elevation = 10,
 | 
						max_elevation = 10,
 | 
				
			||||||
	temp_min = 1,
 | 
						fill_ratio = ratio_rare,
 | 
				
			||||||
	temp_max = -0.4,
 | 
					 | 
				
			||||||
	rarity = 90,
 | 
					 | 
				
			||||||
	max_count = 5,
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
moretrees.birch_biome = {
 | 
					moretrees.birch_biome = {
 | 
				
			||||||
	surface = "default:dirt_with_grass",
 | 
						place_on = xcompat.materials.dirt_with_grass,
 | 
				
			||||||
	avoid_nodes = moretrees.avoidnodes,
 | 
					 | 
				
			||||||
	avoid_radius = 5,
 | 
					 | 
				
			||||||
	seed_diff = 334,
 | 
					 | 
				
			||||||
	min_elevation = 10,
 | 
						min_elevation = 10,
 | 
				
			||||||
	max_elevation = 15,
 | 
						max_elevation = 15,
 | 
				
			||||||
	temp_min = 0.9,
 | 
						fill_ratio = ratio_common,
 | 
				
			||||||
	temp_max = 0.3,
 | 
					 | 
				
			||||||
	rarity = 50,
 | 
					 | 
				
			||||||
	max_count = 10,
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
moretrees.willow_biome = {
 | 
					moretrees.willow_biome = {
 | 
				
			||||||
	surface = "default:dirt_with_grass",
 | 
						place_on = xcompat.materials.dirt_with_grass,
 | 
				
			||||||
	avoid_nodes = moretrees.avoidnodes,
 | 
					 | 
				
			||||||
	avoid_radius = 10,
 | 
					 | 
				
			||||||
	seed_diff = 337,
 | 
					 | 
				
			||||||
	min_elevation = -5,
 | 
						min_elevation = -5,
 | 
				
			||||||
	max_elevation = 5,
 | 
						max_elevation = 5,
 | 
				
			||||||
	near_nodes = {"default:water_source"},
 | 
						fill_ratio = ratio_uncommon,
 | 
				
			||||||
	near_nodes_size = 15,
 | 
					 | 
				
			||||||
	near_nodes_count = 5,
 | 
					 | 
				
			||||||
	rarity = 75,
 | 
					 | 
				
			||||||
	max_count = 5,
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
moretrees.rubber_tree_biome = {
 | 
					moretrees.rubber_tree_biome = {
 | 
				
			||||||
	surface = {
 | 
						place_on = xcompat.materials.dirt_with_grass,
 | 
				
			||||||
		"default:dirt_with_grass",
 | 
					 | 
				
			||||||
		"default:sand",
 | 
					 | 
				
			||||||
	},
 | 
					 | 
				
			||||||
	avoid_nodes = moretrees.avoidnodes,
 | 
					 | 
				
			||||||
	avoid_radius = 10,
 | 
					 | 
				
			||||||
	seed_diff = 338,
 | 
					 | 
				
			||||||
	min_elevation = -5,
 | 
						min_elevation = -5,
 | 
				
			||||||
	max_elevation = 5,
 | 
						max_elevation = 8,
 | 
				
			||||||
	near_nodes = {"default:water_source"},
 | 
						fill_ratio = ratio_normal,
 | 
				
			||||||
	near_nodes_size = 15,
 | 
					 | 
				
			||||||
	near_nodes_count = 10,
 | 
					 | 
				
			||||||
	temp_min = -0.15,
 | 
					 | 
				
			||||||
	rarity = 75,
 | 
					 | 
				
			||||||
	max_count = 10,
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
moretrees.jungletree_biome = {
 | 
					moretrees.jungletree_biome = {
 | 
				
			||||||
	surface = {
 | 
						place_on = {
 | 
				
			||||||
		"default:dirt",
 | 
							xcompat.materials.dirt,
 | 
				
			||||||
		"default:dirt_with_grass",
 | 
							xcompat.materials.dirt_with_grass,
 | 
				
			||||||
		"woodsoils:dirt_with_leaves_1",
 | 
							"woodsoils:dirt_with_leaves_1",
 | 
				
			||||||
		"woodsoils:grass_with_leaves_1",
 | 
							"woodsoils:grass_with_leaves_1",
 | 
				
			||||||
		"woodsoils:grass_with_leaves_2"
 | 
							"woodsoils:grass_with_leaves_2",
 | 
				
			||||||
 | 
							"default:dirt_with_rainforest_litter",
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	avoid_nodes = {"moretrees:jungletree_trunk"},
 | 
					 | 
				
			||||||
	max_count = 12,
 | 
					 | 
				
			||||||
	avoid_radius = 3,
 | 
					 | 
				
			||||||
	rarity = 85,
 | 
					 | 
				
			||||||
	seed_diff = 329,
 | 
					 | 
				
			||||||
	min_elevation = 1,
 | 
						min_elevation = 1,
 | 
				
			||||||
	near_nodes = {"default:jungletree"},
 | 
						spawn_by = minetest.get_modpath("default") and {"default:jungletree"} or nil,
 | 
				
			||||||
	near_nodes_size = 6,
 | 
						num_spawn_by = minetest.get_modpath("default") and 1 or nil,
 | 
				
			||||||
	near_nodes_vertical = 2,
 | 
						biomes = {"rainforest", "rainforest_swamp"},
 | 
				
			||||||
	near_nodes_count = 1,
 | 
					 | 
				
			||||||
	plantlife_limit = -0.9,
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
moretrees.spruce_biome = {
 | 
					moretrees.spruce_biome = {
 | 
				
			||||||
	surface = "default:dirt_with_grass",
 | 
						place_on = coniferous_place_on,
 | 
				
			||||||
	avoid_nodes = moretrees.avoidnodes,
 | 
					 | 
				
			||||||
	avoid_radius = 10,
 | 
					 | 
				
			||||||
	seed_diff = 335,
 | 
					 | 
				
			||||||
	min_elevation = 20,
 | 
						min_elevation = 20,
 | 
				
			||||||
	temp_min = 0.9,
 | 
						fill_ratio = ratio_uncommon,
 | 
				
			||||||
	temp_max = 0.7,
 | 
					 | 
				
			||||||
	rarity = 50,
 | 
					 | 
				
			||||||
	max_count = 5,
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
moretrees.cedar_biome = {
 | 
					moretrees.cedar_biome = {
 | 
				
			||||||
	surface = "default:dirt_with_grass",
 | 
						place_on = coniferous_place_on,
 | 
				
			||||||
	avoid_nodes = moretrees.avoidnodes,
 | 
						min_elevation = 0,  --Added to solve an issue where cedar trees would sometimes spawn deep underground
 | 
				
			||||||
	avoid_radius = 10,
 | 
						fill_ratio = ratio_rare,
 | 
				
			||||||
	seed_diff = 336,
 | 
					 | 
				
			||||||
	near_nodes = {"default:water_source"},
 | 
					 | 
				
			||||||
	near_nodes_size = 15,
 | 
					 | 
				
			||||||
	near_nodes_count = 5,
 | 
					 | 
				
			||||||
	rarity = 50,
 | 
					 | 
				
			||||||
	max_count = 10,
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- Poplar requires a lot of water.
 | 
					-- Poplar requires a lot of water.
 | 
				
			||||||
moretrees.poplar_biome = {
 | 
					moretrees.poplar_biome = {
 | 
				
			||||||
	surface = "default:dirt_with_grass",
 | 
						place_on = xcompat.materials.dirt_with_grass,
 | 
				
			||||||
	avoid_nodes = moretrees.avoidnodes,
 | 
					 | 
				
			||||||
	avoid_radius = 6,
 | 
					 | 
				
			||||||
	seed_diff = 341,
 | 
					 | 
				
			||||||
	min_elevation = 0,
 | 
						min_elevation = 0,
 | 
				
			||||||
	max_elevation = 50,
 | 
						max_elevation = 50,
 | 
				
			||||||
	near_nodes = {"default:water_source"},
 | 
						spawn_by = {xcompat.materials.water_source},
 | 
				
			||||||
	near_nodes_size = 15,
 | 
						num_spawn_by = 3,
 | 
				
			||||||
	near_nodes_vertical = 5,
 | 
						fill_ratio = ratio_abundant,
 | 
				
			||||||
	near_nodes_count = 1,
 | 
					 | 
				
			||||||
	humidity_min = -0.7,
 | 
					 | 
				
			||||||
	humidity_max = -1,
 | 
					 | 
				
			||||||
	rarity = 50,
 | 
					 | 
				
			||||||
	max_count = 15,
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- The humidity requirement it quite restrictive (apparently).
 | 
					 | 
				
			||||||
-- Spawn an occasional poplar elsewhere.
 | 
					-- Spawn an occasional poplar elsewhere.
 | 
				
			||||||
moretrees.poplar_biome_2 = {
 | 
					moretrees.poplar_biome_2 = {
 | 
				
			||||||
	surface = "default:dirt_with_grass",
 | 
						place_on = xcompat.materials.dirt_with_grass,
 | 
				
			||||||
	avoid_nodes = moretrees.avoidnodes,
 | 
					 | 
				
			||||||
	avoid_radius = 6,
 | 
					 | 
				
			||||||
	seed_diff = 341,
 | 
					 | 
				
			||||||
	min_elevation = 0,
 | 
						min_elevation = 0,
 | 
				
			||||||
	max_elevation = 50,
 | 
						max_elevation = 50,
 | 
				
			||||||
	near_nodes = {"default:water_source"},
 | 
						fill_ratio = ratio_very_rare,
 | 
				
			||||||
	near_nodes_size = 15,
 | 
					 | 
				
			||||||
	near_nodes_vertical = 4,
 | 
					 | 
				
			||||||
	near_nodes_count = 10,
 | 
					 | 
				
			||||||
	humidity_min = 0.1,
 | 
					 | 
				
			||||||
	humidity_max = -0.6,
 | 
					 | 
				
			||||||
	rarity = 50,
 | 
					 | 
				
			||||||
	max_count = 1,
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- Subterranean lakes provide enough water for poplars to grow
 | 
					-- Subterranean lakes provide enough water for poplars to grow
 | 
				
			||||||
moretrees.poplar_biome_3 = {
 | 
					moretrees.poplar_biome_3 = {
 | 
				
			||||||
	surface = "default:dirt_with_grass",
 | 
						place_on = xcompat.materials.dirt_with_grass,
 | 
				
			||||||
	avoid_nodes = moretrees.avoidnodes,
 | 
						min_elevation = -50,
 | 
				
			||||||
	avoid_radius = 6,
 | 
						max_elevation = 0,
 | 
				
			||||||
	seed_diff = 342,
 | 
						spawn_by = {xcompat.materials.water_source},
 | 
				
			||||||
	min_elevation = 0,
 | 
						num_spawn_by = 3,
 | 
				
			||||||
	max_elevation = 50,
 | 
						fill_ratio = ratio_abundant,
 | 
				
			||||||
	near_nodes = {"default:water_source"},
 | 
					 | 
				
			||||||
	near_nodes_size = 1,
 | 
					 | 
				
			||||||
	near_nodes_vertical = 25,
 | 
					 | 
				
			||||||
	near_nodes_count = 1,
 | 
					 | 
				
			||||||
	humidity_min = -0.5,
 | 
					 | 
				
			||||||
	humidity_max = -1,
 | 
					 | 
				
			||||||
	rarity = 0,
 | 
					 | 
				
			||||||
	max_count = 30,
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
moretrees.poplar_small_biome = {
 | 
					moretrees.poplar_small_biome = {
 | 
				
			||||||
	surface = "default:dirt_with_grass",
 | 
						place_on = xcompat.materials.dirt_with_grass,
 | 
				
			||||||
	avoid_nodes = moretrees.avoidnodes,
 | 
					 | 
				
			||||||
	avoid_radius = 4,
 | 
					 | 
				
			||||||
	seed_diff = 343,
 | 
					 | 
				
			||||||
	min_elevation = 0,
 | 
						min_elevation = 0,
 | 
				
			||||||
	max_elevation = 50,
 | 
						max_elevation = 50,
 | 
				
			||||||
	near_nodes = {"default:water_source"},
 | 
						spawn_by = {xcompat.materials.water_source},
 | 
				
			||||||
	near_nodes_size = 10,
 | 
						num_spawn_by = 1,
 | 
				
			||||||
	near_nodes_vertical = 5,
 | 
						fill_ratio = ratio_normal,
 | 
				
			||||||
	near_nodes_count = 1,
 | 
					 | 
				
			||||||
	humidity_min = -0.7,
 | 
					 | 
				
			||||||
	humidity_max = -1,
 | 
					 | 
				
			||||||
	rarity = 50,
 | 
					 | 
				
			||||||
	max_count = 10,
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
moretrees.poplar_small_biome_2 = {
 | 
					moretrees.poplar_small_biome_2 = {
 | 
				
			||||||
	surface = "default:dirt_with_grass",
 | 
						place_on = xcompat.materials.dirt_with_grass,
 | 
				
			||||||
	avoid_nodes = moretrees.avoidnodes,
 | 
					 | 
				
			||||||
	avoid_radius = 4,
 | 
					 | 
				
			||||||
	seed_diff = 343,
 | 
					 | 
				
			||||||
	min_elevation = 0,
 | 
						min_elevation = 0,
 | 
				
			||||||
	max_elevation = 50,
 | 
						max_elevation = 50,
 | 
				
			||||||
	near_nodes = {"default:water_source"},
 | 
						spawn_by = {xcompat.materials.water_source},
 | 
				
			||||||
	near_nodes_size = 10,
 | 
						num_spawn_by = 5,
 | 
				
			||||||
	near_nodes_vertical = 4,
 | 
						fill_ratio = ratio_abundant,
 | 
				
			||||||
	near_nodes_count = 5,
 | 
					 | 
				
			||||||
	humidity_min = 0.1,
 | 
					 | 
				
			||||||
	humidity_max = -0.6,
 | 
					 | 
				
			||||||
	rarity = 50,
 | 
					 | 
				
			||||||
	max_count = 3,
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
moretrees.fir_biome = {
 | 
					moretrees.fir_biome = {
 | 
				
			||||||
	surface = "default:dirt_with_grass",
 | 
						place_on = coniferous_place_on,
 | 
				
			||||||
	avoid_nodes = moretrees.avoidnodes,
 | 
					 | 
				
			||||||
	avoid_radius = 10,
 | 
					 | 
				
			||||||
	seed_diff = 359,
 | 
					 | 
				
			||||||
	min_elevation = 25,
 | 
						min_elevation = 25,
 | 
				
			||||||
	temp_min = 0.9,
 | 
						fill_ratio = ratio_normal,
 | 
				
			||||||
	temp_max = 0.3,
 | 
					 | 
				
			||||||
	rarity = 50,
 | 
					 | 
				
			||||||
	max_count = 10,
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
moretrees.fir_biome_snow = {
 | 
					moretrees.fir_biome_snow = {
 | 
				
			||||||
	surface = {"snow:dirt_with_snow", "snow:snow"},
 | 
						place_on = {"snow:dirt_with_snow", "snow:snow"},
 | 
				
			||||||
	below_nodes = {"default:dirt", "default:dirt_with_grass", "snow:dirt_with_snow"},
 | 
						below_nodes = {xcompat.materials.dirt, xcompat.materials.dirt_with_grass, "snow:dirt_with_snow"},
 | 
				
			||||||
	avoid_nodes = moretrees.avoidnodes,
 | 
						fill_ratio = ratio_normal,
 | 
				
			||||||
	avoid_radius = 10,
 | 
					 | 
				
			||||||
	seed_diff = 359,
 | 
					 | 
				
			||||||
	rarity = 50,
 | 
					 | 
				
			||||||
	max_count = 10,
 | 
					 | 
				
			||||||
	check_air = false,
 | 
					 | 
				
			||||||
	delete_above = true,
 | 
					 | 
				
			||||||
	spawn_replace_node = true
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										104
									
								
								cocos_palm.lua
									
									
									
									
									
								
							
							
						
						
									
										104
									
								
								cocos_palm.lua
									
									
									
									
									
								
							@@ -1,6 +1,6 @@
 | 
				
			|||||||
local S = moretrees.intllib
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
-- © 2016, Rogier <rogier777@gmail.com>
 | 
					-- © 2016, Rogier <rogier777@gmail.com>
 | 
				
			||||||
 | 
					-- Translation support
 | 
				
			||||||
 | 
					local S = minetest.get_translator("moretrees")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- Some constants
 | 
					-- Some constants
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -23,12 +23,16 @@ end
 | 
				
			|||||||
ftrunk.drop = "moretrees:palm_trunk"
 | 
					ftrunk.drop = "moretrees:palm_trunk"
 | 
				
			||||||
gftrunk.drop = "moretrees:palm_trunk"
 | 
					gftrunk.drop = "moretrees:palm_trunk"
 | 
				
			||||||
ftrunk.after_destruct = function(pos, oldnode)
 | 
					ftrunk.after_destruct = function(pos, oldnode)
 | 
				
			||||||
	local coconuts = minetest.find_nodes_in_area({x=pos.x-1, y=pos.y, z=pos.z-1}, {x=pos.x+1, y=pos.y, z=pos.z+1}, {"group:moretrees_coconut"})
 | 
						local coconuts = minetest.find_nodes_in_area(
 | 
				
			||||||
 | 
							{x=pos.x-1, y=pos.y, z=pos.z-1},
 | 
				
			||||||
 | 
							{x=pos.x+1, y=pos.y, z=pos.z+1},
 | 
				
			||||||
 | 
							{"group:moretrees_coconut"}
 | 
				
			||||||
 | 
						)
 | 
				
			||||||
	for _,coconutpos in pairs(coconuts) do
 | 
						for _,coconutpos in pairs(coconuts) do
 | 
				
			||||||
		-- minetest.dig_node(coconutpos) does not cause nearby coconuts to be dropped :-( ...
 | 
							-- minetest.dig_node(coconutpos) does not cause nearby coconuts to be dropped :-( ...
 | 
				
			||||||
		--minetest.dig_node(coconutpos)
 | 
							--minetest.dig_node(coconutpos)
 | 
				
			||||||
		local items = minetest.get_node_drops(minetest.get_node(coconutpos).name)
 | 
							local items = minetest.get_node_drops(minetest.get_node(coconutpos).name)
 | 
				
			||||||
		minetest.swap_node(coconutpos, biome_lib.air)
 | 
							minetest.swap_node(coconutpos, {name = "air"})
 | 
				
			||||||
		for _, itemname in pairs(items) do
 | 
							for _, itemname in pairs(items) do
 | 
				
			||||||
			minetest.add_item(coconutpos, itemname)
 | 
								minetest.add_item(coconutpos, itemname)
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
@@ -46,7 +50,11 @@ local coconut_regrow_abm_spec = {
 | 
				
			|||||||
	interval = moretrees.coconut_flower_interval,
 | 
						interval = moretrees.coconut_flower_interval,
 | 
				
			||||||
	chance = moretrees.coconut_flower_chance,
 | 
						chance = moretrees.coconut_flower_chance,
 | 
				
			||||||
	action = function(pos, node, active_object_count, active_object_count_wider)
 | 
						action = function(pos, node, active_object_count, active_object_count_wider)
 | 
				
			||||||
		local coconuts = minetest.find_nodes_in_area({x=pos.x-1, y=pos.y, z=pos.z-1}, {x=pos.x+1, y=pos.y, z=pos.z+1}, "group:moretrees_coconut")
 | 
							local coconuts = minetest.find_nodes_in_area(
 | 
				
			||||||
 | 
								{x=pos.x-1, y=pos.y, z=pos.z-1},
 | 
				
			||||||
 | 
								{x=pos.x+1, y=pos.y, z=pos.z+1},
 | 
				
			||||||
 | 
								"group:moretrees_coconut"
 | 
				
			||||||
 | 
							)
 | 
				
			||||||
		-- Expected growth interval increases exponentially with number of coconuts already hanging.
 | 
							-- Expected growth interval increases exponentially with number of coconuts already hanging.
 | 
				
			||||||
		-- Also: if more coconuts are hanging, the chance of picking an empty spot decreases as well...
 | 
							-- Also: if more coconuts are hanging, the chance of picking an empty spot decreases as well...
 | 
				
			||||||
		if math.random(2^#coconuts) <= 2 then
 | 
							if math.random(2^#coconuts) <= 2 then
 | 
				
			||||||
@@ -72,19 +80,25 @@ end
 | 
				
			|||||||
--  ABM converts the trunk to a regular fruit trunk, and spawns some coconuts)
 | 
					--  ABM converts the trunk to a regular fruit trunk, and spawns some coconuts)
 | 
				
			||||||
minetest.register_abm({
 | 
					minetest.register_abm({
 | 
				
			||||||
	nodenames = { "moretrees:palm_fruit_trunk_gen" },
 | 
						nodenames = { "moretrees:palm_fruit_trunk_gen" },
 | 
				
			||||||
	interval = 1,
 | 
						interval = 6,
 | 
				
			||||||
	chance = 1,
 | 
						chance = 1,
 | 
				
			||||||
 | 
						min_y = -16,
 | 
				
			||||||
 | 
						max_y = 48,
 | 
				
			||||||
 | 
						label = "converts palm trunk to a regular fruit trunk, and spawns some coconuts",
 | 
				
			||||||
	action = function(pos, node, active_object_count, active_object_count_wider)
 | 
						action = function(pos, node, active_object_count, active_object_count_wider)
 | 
				
			||||||
		minetest.swap_node(pos, {name="moretrees:palm_fruit_trunk"})
 | 
							minetest.swap_node(pos, {name="moretrees:palm_fruit_trunk"})
 | 
				
			||||||
		local poslist = minetest.find_nodes_in_area({x=pos.x-1, y=pos.y, z=pos.z-1}, {x=pos.x+1, y=pos.y, z=pos.z+1}, "air")
 | 
							local poslist = minetest.find_nodes_in_area(
 | 
				
			||||||
 | 
								{x=pos.x-1, y=pos.y, z=pos.z-1},
 | 
				
			||||||
 | 
								{x=pos.x+1, y=pos.y, z=pos.z+1},
 | 
				
			||||||
 | 
								"air"
 | 
				
			||||||
 | 
							)
 | 
				
			||||||
		local genlist = {}
 | 
							local genlist = {}
 | 
				
			||||||
		for k,v in pairs(poslist) do
 | 
							for k,v in pairs(poslist) do
 | 
				
			||||||
			genlist[k] = {x = math.random(100), pos = v}
 | 
								genlist[k] = {x = math.random(100), pos = v}
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
		table.sort(genlist, function(a, b) return a.x < b.x; end)
 | 
							table.sort(genlist, function(a, b) return a.x < b.x; end)
 | 
				
			||||||
		local gen
 | 
					 | 
				
			||||||
		local count = 0
 | 
							local count = 0
 | 
				
			||||||
		for _,gen in pairs(genlist) do
 | 
							for _, gen in pairs(genlist) do
 | 
				
			||||||
			minetest.swap_node(gen.pos, {name = "moretrees:coconut_3"})
 | 
								minetest.swap_node(gen.pos, {name = "moretrees:coconut_3"})
 | 
				
			||||||
			count = count + 1
 | 
								count = count + 1
 | 
				
			||||||
			if count == 4 then
 | 
								if count == 4 then
 | 
				
			||||||
@@ -109,13 +123,14 @@ local coconut_growfn = function(pos, elapsed)
 | 
				
			|||||||
		-- Drop coconuts (i.e. remove them), so that new coconuts can grow.
 | 
							-- Drop coconuts (i.e. remove them), so that new coconuts can grow.
 | 
				
			||||||
		-- Coconuts will drop as items with a small chance
 | 
							-- Coconuts will drop as items with a small chance
 | 
				
			||||||
		if math.random(coconut_drop_ichance) == 1 then
 | 
							if math.random(coconut_drop_ichance) == 1 then
 | 
				
			||||||
			if moretrees.coconut_item_drop_ichance > 0 and math.random(moretrees.coconut_item_drop_ichance) == 1 then
 | 
								if moretrees.coconut_item_drop_ichance > 0
 | 
				
			||||||
 | 
									and math.random(moretrees.coconut_item_drop_ichance) == 1 then
 | 
				
			||||||
				local items = minetest.get_node_drops(minetest.get_node(pos).name)
 | 
									local items = minetest.get_node_drops(minetest.get_node(pos).name)
 | 
				
			||||||
				for _, itemname in pairs(items) do
 | 
									for _, itemname in pairs(items) do
 | 
				
			||||||
					minetest.add_item(pos, itemname)
 | 
										minetest.add_item(pos, itemname)
 | 
				
			||||||
				end
 | 
									end
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
			minetest.swap_node(pos, biome_lib.air)
 | 
								minetest.swap_node(pos, {name = "air"})
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
		-- Grow coconuts to the next stage
 | 
							-- Grow coconuts to the next stage
 | 
				
			||||||
@@ -162,10 +177,11 @@ for _,suffix in ipairs({"_0", "_1", "_2", "_3", ""}) do
 | 
				
			|||||||
		paramtype = "light",
 | 
							paramtype = "light",
 | 
				
			||||||
		sunlight_propagates = true,
 | 
							sunlight_propagates = true,
 | 
				
			||||||
		walkable = false,
 | 
							walkable = false,
 | 
				
			||||||
 | 
							is_ground_content = false,
 | 
				
			||||||
		groups = { fleshy=3, dig_immediate=3, flammable=2, moretrees_coconut=coco_group },
 | 
							groups = { fleshy=3, dig_immediate=3, flammable=2, moretrees_coconut=coco_group },
 | 
				
			||||||
		inventory_image = tile.."^[transformR180",
 | 
							inventory_image = tile.."^[transformR180",
 | 
				
			||||||
		wield_image = tile.."^[transformR180",
 | 
							wield_image = tile.."^[transformR180",
 | 
				
			||||||
		sounds = default.node_sound_defaults(),
 | 
							sounds = xcompat.sounds.node_sound_default(),
 | 
				
			||||||
		drop = drop,
 | 
							drop = drop,
 | 
				
			||||||
		selection_box = {
 | 
							selection_box = {
 | 
				
			||||||
			type = "fixed",
 | 
								type = "fixed",
 | 
				
			||||||
@@ -190,55 +206,95 @@ if moretrees.coconuts_convert_existing_palms then
 | 
				
			|||||||
			local leaves
 | 
								local leaves
 | 
				
			||||||
			local coconuts
 | 
								local coconuts
 | 
				
			||||||
			-- One regular trunk must be adjacent to  the coconut
 | 
								-- One regular trunk must be adjacent to  the coconut
 | 
				
			||||||
			trunks = minetest.find_nodes_in_area({x=pos.x-1, y=pos.y, z=pos.z-1}, {x=pos.x+1, y=pos.y, z=pos.z+1}, "moretrees:palm_trunk")
 | 
								trunks = minetest.find_nodes_in_area(
 | 
				
			||||||
 | 
									{x=pos.x-1, y=pos.y, z=pos.z-1},
 | 
				
			||||||
 | 
									{x=pos.x+1, y=pos.y, z=pos.z+1},
 | 
				
			||||||
 | 
									"moretrees:palm_trunk"
 | 
				
			||||||
 | 
								)
 | 
				
			||||||
			if #trunks ~= 1 then
 | 
								if #trunks ~= 1 then
 | 
				
			||||||
				return
 | 
									return
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
			local tpos = trunks[1]
 | 
								local tpos = trunks[1]
 | 
				
			||||||
			-- 1 or 2 other trunks must be one level below to the trunk being converted.
 | 
								-- 1 or 2 other trunks must be one level below to the trunk being converted.
 | 
				
			||||||
			trunks = minetest.find_nodes_in_area({x=tpos.x-1, y=tpos.y-1, z=tpos.z-1}, {x=tpos.x+1, y=tpos.y-1, z=tpos.z+1}, "moretrees:palm_trunk")
 | 
								trunks = minetest.find_nodes_in_area(
 | 
				
			||||||
 | 
									{x=tpos.x-1, y=tpos.y-1, z=tpos.z-1},
 | 
				
			||||||
 | 
									{x=tpos.x+1, y=tpos.y-1, z=tpos.z+1},
 | 
				
			||||||
 | 
									"moretrees:palm_trunk"
 | 
				
			||||||
 | 
								)
 | 
				
			||||||
			if #trunks < 1 or #trunks > 2 then
 | 
								if #trunks < 1 or #trunks > 2 then
 | 
				
			||||||
				return
 | 
									return
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
			-- 1 or 2 other trunks must be two levels below to the trunk being converted.
 | 
								-- 1 or 2 other trunks must be two levels below to the trunk being converted.
 | 
				
			||||||
			trunks = minetest.find_nodes_in_area({x=tpos.x-1, y=tpos.y-2, z=tpos.z-1}, {x=tpos.x+1, y=tpos.y-2, z=tpos.z+1}, "moretrees:palm_trunk")
 | 
								trunks = minetest.find_nodes_in_area(
 | 
				
			||||||
 | 
									{x=tpos.x-1, y=tpos.y-2, z=tpos.z-1},
 | 
				
			||||||
 | 
									{x=tpos.x+1, y=tpos.y-2, z=tpos.z+1},
 | 
				
			||||||
 | 
									"moretrees:palm_trunk"
 | 
				
			||||||
 | 
								)
 | 
				
			||||||
			if #trunks < 1 or #trunks > 2 then
 | 
								if #trunks < 1 or #trunks > 2 then
 | 
				
			||||||
				return
 | 
									return
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
			-- 1 or 2 trunks must at the level of the trunk being converted.
 | 
								-- 1 or 2 trunks must at the level of the trunk being converted.
 | 
				
			||||||
			cvtrunks = minetest.find_nodes_in_area({x=tpos.x-1, y=tpos.y, z=tpos.z-1}, {x=tpos.x+1, y=tpos.y, z=tpos.z+1}, "moretrees:palm_trunk")
 | 
								cvtrunks = minetest.find_nodes_in_area(
 | 
				
			||||||
 | 
									{x=tpos.x-1, y=tpos.y, z=tpos.z-1},
 | 
				
			||||||
 | 
									{x=tpos.x+1, y=tpos.y, z=tpos.z+1},
 | 
				
			||||||
 | 
									"moretrees:palm_trunk"
 | 
				
			||||||
 | 
								)
 | 
				
			||||||
			if #cvtrunks < 1 or #cvtrunks > 2 then
 | 
								if #cvtrunks < 1 or #cvtrunks > 2 then
 | 
				
			||||||
				return
 | 
									return
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
			-- No trunks may be one level above the trunk being converted.
 | 
								-- No trunks may be one level above the trunk being converted.
 | 
				
			||||||
			trunks = minetest.find_nodes_in_area({x=tpos.x-1, y=tpos.y+1, z=tpos.z-1}, {x=tpos.x+1, y=tpos.y+1, z=tpos.z+1}, "moretrees:palm_trunk")
 | 
								trunks = minetest.find_nodes_in_area(
 | 
				
			||||||
 | 
									{x=tpos.x-1, y=tpos.y+1, z=tpos.z-1},
 | 
				
			||||||
 | 
									{x=tpos.x+1, y=tpos.y+1, z=tpos.z+1},
 | 
				
			||||||
 | 
									"moretrees:palm_trunk"
 | 
				
			||||||
 | 
								)
 | 
				
			||||||
			if #trunks ~= 0 then
 | 
								if #trunks ~= 0 then
 | 
				
			||||||
				return
 | 
									return
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
			-- Leaves must be one level above the trunk being converted.
 | 
								-- Leaves must be one level above the trunk being converted.
 | 
				
			||||||
			leaves = minetest.find_nodes_in_area({x=tpos.x-1, y=tpos.y+1, z=tpos.z-1}, {x=tpos.x+1, y=tpos.y+1, z=tpos.z+1}, "moretrees:palm_leaves")
 | 
								leaves = minetest.find_nodes_in_area(
 | 
				
			||||||
 | 
									{x=tpos.x-1, y=tpos.y+1, z=tpos.z-1},
 | 
				
			||||||
 | 
									{x=tpos.x+1, y=tpos.y+1, z=tpos.z+1},
 | 
				
			||||||
 | 
									"moretrees:palm_leaves"
 | 
				
			||||||
 | 
								)
 | 
				
			||||||
			if #leaves == 0 then
 | 
								if #leaves == 0 then
 | 
				
			||||||
				return
 | 
									return
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
			-- Leaves must be two levels above the trunk being converted.
 | 
								-- Leaves must be two levels above the trunk being converted.
 | 
				
			||||||
			leaves = minetest.find_nodes_in_area({x=tpos.x-1, y=tpos.y+2, z=tpos.z-1}, {x=tpos.x+1, y=tpos.y+2, z=tpos.z+1}, "moretrees:palm_leaves")
 | 
								leaves = minetest.find_nodes_in_area(
 | 
				
			||||||
 | 
									{x=tpos.x-1, y=tpos.y+2, z=tpos.z-1},
 | 
				
			||||||
 | 
									{x=tpos.x+1, y=tpos.y+2, z=tpos.z+1},
 | 
				
			||||||
 | 
									"moretrees:palm_leaves"
 | 
				
			||||||
 | 
								)
 | 
				
			||||||
			if #leaves == 0 then
 | 
								if #leaves == 0 then
 | 
				
			||||||
				return
 | 
									return
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
			-- No cocos fruit trunk may already be adjacent to the coconut
 | 
								-- No cocos fruit trunk may already be adjacent to the coconut
 | 
				
			||||||
			trunks = minetest.find_nodes_in_area({x=pos.x-1, y=pos.y, z=pos.z-1}, {x=pos.x+1, y=pos.y, z=pos.z+1}, "moretrees:palm_fruit_trunk")
 | 
								trunks = minetest.find_nodes_in_area(
 | 
				
			||||||
 | 
									{x=pos.x-1, y=pos.y, z=pos.z-1},
 | 
				
			||||||
 | 
									{x=pos.x+1, y=pos.y, z=pos.z+1},
 | 
				
			||||||
 | 
									"moretrees:palm_fruit_trunk"
 | 
				
			||||||
 | 
								)
 | 
				
			||||||
			if #trunks ~= 0 then
 | 
								if #trunks ~= 0 then
 | 
				
			||||||
				return
 | 
									return
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
			-- No cocos fruit trunk may be adjacent to or below the trunk being converted.
 | 
								-- No cocos fruit trunk may be adjacent to or below the trunk being converted.
 | 
				
			||||||
			trunks = minetest.find_nodes_in_area({x=tpos.x-1, y=tpos.y-2, z=tpos.z-1}, {x=tpos.x+1, y=tpos.y, z=tpos.z+1}, "moretrees:palm_fruit_trunk")
 | 
								trunks = minetest.find_nodes_in_area(
 | 
				
			||||||
 | 
									{x=tpos.x-1, y=tpos.y-2, z=tpos.z-1},
 | 
				
			||||||
 | 
									{x=tpos.x+1, y=tpos.y, z=tpos.z+1},
 | 
				
			||||||
 | 
									"moretrees:palm_fruit_trunk"
 | 
				
			||||||
 | 
								)
 | 
				
			||||||
			if #trunks ~= 0 then
 | 
								if #trunks ~= 0 then
 | 
				
			||||||
				return
 | 
									return
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
			-- Convert trunk and all coconuts nearby. Maybe convert 2 trunks, just in case...
 | 
								-- Convert trunk and all coconuts nearby. Maybe convert 2 trunks, just in case...
 | 
				
			||||||
			for _, tpos in pairs(cvtrunks) do
 | 
								for _, tpos_1 in pairs(cvtrunks) do
 | 
				
			||||||
				minetest.swap_node(tpos, {name = "moretrees:palm_fruit_trunk"})
 | 
									minetest.swap_node(tpos_1, {name = "moretrees:palm_fruit_trunk"})
 | 
				
			||||||
				coconuts = minetest.find_nodes_in_area({x=tpos.x-1, y=tpos.y, z=tpos.z-1}, {x=tpos.x+1, y=tpos.y, z=tpos.z+1}, "moretrees:coconut")
 | 
									coconuts = minetest.find_nodes_in_area(
 | 
				
			||||||
 | 
										{x=tpos_1.x-1, y=tpos_1.y, z=tpos_1.z-1},
 | 
				
			||||||
 | 
										{x=tpos_1.x+1, y=tpos_1.y, z=tpos_1.z+1},
 | 
				
			||||||
 | 
										"moretrees:coconut"
 | 
				
			||||||
 | 
									)
 | 
				
			||||||
				for _, coconutpos in pairs(coconuts) do
 | 
									for _, coconutpos in pairs(coconuts) do
 | 
				
			||||||
					minetest.swap_node(coconutpos, {name = "moretrees:coconut_3"})
 | 
										minetest.swap_node(coconutpos, {name = "moretrees:coconut_3"})
 | 
				
			||||||
				end
 | 
									end
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										46
									
								
								crafts.lua
									
									
									
									
									
								
							
							
						
						
									
										46
									
								
								crafts.lua
									
									
									
									
									
								
							@@ -1,15 +1,17 @@
 | 
				
			|||||||
local S = moretrees.intllib
 | 
					local S = minetest.get_translator("moretrees")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
for i in ipairs(moretrees.treelist) do
 | 
					for i in ipairs(moretrees.treelist) do
 | 
				
			||||||
	local treename = moretrees.treelist[i][1]
 | 
						local treename = moretrees.treelist[i][1]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	minetest.register_craft({
 | 
						if moretrees.enable_planks then
 | 
				
			||||||
		type = "shapeless",
 | 
							minetest.register_craft({
 | 
				
			||||||
		output = "moretrees:"..treename.."_planks 4",
 | 
								type = "shapeless",
 | 
				
			||||||
		recipe = {
 | 
								output = "moretrees:"..treename.."_planks 4",
 | 
				
			||||||
			"moretrees:"..treename.."_trunk"
 | 
								recipe = {
 | 
				
			||||||
		}
 | 
									"moretrees:"..treename.."_trunk"
 | 
				
			||||||
	})
 | 
								}
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	minetest.register_craft({
 | 
						minetest.register_craft({
 | 
				
			||||||
		type = "fuel",
 | 
							type = "fuel",
 | 
				
			||||||
@@ -38,7 +40,8 @@ minetest.register_craftitem("moretrees:coconut_milk", {
 | 
				
			|||||||
	description = S("Coconut Milk"),
 | 
						description = S("Coconut Milk"),
 | 
				
			||||||
	inventory_image = "moretrees_coconut_milk_inv.png",
 | 
						inventory_image = "moretrees_coconut_milk_inv.png",
 | 
				
			||||||
	wield_image = "moretrees_coconut_milk.png",
 | 
						wield_image = "moretrees_coconut_milk.png",
 | 
				
			||||||
	on_use = minetest.item_eat(2),
 | 
						on_use = minetest.item_eat(2, "vessels:drinking_glass"),
 | 
				
			||||||
 | 
						groups = {vessel = 1},
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
minetest.register_craftitem("moretrees:raw_coconut", {
 | 
					minetest.register_craftitem("moretrees:raw_coconut", {
 | 
				
			||||||
@@ -120,6 +123,7 @@ for i in ipairs(moretrees.cutting_tools) do
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- give tool back with wear preserved
 | 
					-- give tool back with wear preserved
 | 
				
			||||||
minetest.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv)
 | 
					minetest.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv)
 | 
				
			||||||
	if (itemstack:get_name() == "moretrees:coconut_milk") then
 | 
						if (itemstack:get_name() == "moretrees:coconut_milk") then
 | 
				
			||||||
@@ -127,6 +131,10 @@ minetest.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv
 | 
				
			|||||||
			-- find tool used to do the craft
 | 
								-- find tool used to do the craft
 | 
				
			||||||
			local ocg_name = j:get_name()
 | 
								local ocg_name = j:get_name()
 | 
				
			||||||
			if ((ocg_name ~= "") and (ocg_name ~= "moretrees:coconut") and (ocg_name ~= "vessels:drinking_glass")) then
 | 
								if ((ocg_name ~= "") and (ocg_name ~= "moretrees:coconut") and (ocg_name ~= "vessels:drinking_glass")) then
 | 
				
			||||||
 | 
									-- abort if using cutting board
 | 
				
			||||||
 | 
									if minetest.get_item_group(ocg_name, "food_cutting_board") == 1 then
 | 
				
			||||||
 | 
										return
 | 
				
			||||||
 | 
									end
 | 
				
			||||||
				-- create a new tool and set wear
 | 
									-- create a new tool and set wear
 | 
				
			||||||
				local t = ItemStack(ocg_name)
 | 
									local t = ItemStack(ocg_name)
 | 
				
			||||||
				local w = j:get_wear()
 | 
									local w = j:get_wear()
 | 
				
			||||||
@@ -148,9 +156,27 @@ minetest.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv
 | 
				
			|||||||
				craft_inv:add_item("craft", t)
 | 
									craft_inv:add_item("craft", t)
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
  	end
 | 
						end
 | 
				
			||||||
end)
 | 
					end)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- coconut milk using food_cutting_board from farming redo
 | 
				
			||||||
 | 
					if minetest.registered_items["farming:cutting_board"] then
 | 
				
			||||||
 | 
						minetest.register_craft({
 | 
				
			||||||
 | 
							type = "shapeless",
 | 
				
			||||||
 | 
							output = "moretrees:coconut_milk",
 | 
				
			||||||
 | 
							recipe = {
 | 
				
			||||||
 | 
								"moretrees:coconut",
 | 
				
			||||||
 | 
								"vessels:drinking_glass",
 | 
				
			||||||
 | 
								"group:food_cutting_board",
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							replacements = {
 | 
				
			||||||
 | 
								{ "moretrees:coconut", "moretrees:raw_coconut" },
 | 
				
			||||||
 | 
								{ "group:food_cutting_board", "farming:cutting_board" },
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
minetest.register_craft({
 | 
					minetest.register_craft({
 | 
				
			||||||
	type = "shapeless",
 | 
						type = "shapeless",
 | 
				
			||||||
	output = "moretrees:date_nut_snack",
 | 
						output = "moretrees:date_nut_snack",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,7 +11,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
-- © 2016, Rogier <rogier777@gmail.com>
 | 
					-- © 2016, Rogier <rogier777@gmail.com>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
local S = moretrees.intllib
 | 
					local S = minetest.get_translator("moretrees")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- Some constants
 | 
					-- Some constants
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -44,11 +44,15 @@ for k,v in pairs(trunk.tiles) do
 | 
				
			|||||||
end
 | 
					end
 | 
				
			||||||
ftrunk.drop = "moretrees:date_palm_trunk"
 | 
					ftrunk.drop = "moretrees:date_palm_trunk"
 | 
				
			||||||
ftrunk.after_destruct = function(pos, oldnode)
 | 
					ftrunk.after_destruct = function(pos, oldnode)
 | 
				
			||||||
	local dates = minetest.find_nodes_in_area({x=pos.x-2, y=pos.y, z=pos.z-2}, {x=pos.x+2, y=pos.y, z=pos.z+2}, {"group:moretrees_dates"})
 | 
						local dates = minetest.find_nodes_in_area(
 | 
				
			||||||
 | 
							{x=pos.x-2, y=pos.y, z=pos.z-2},
 | 
				
			||||||
 | 
							{x=pos.x+2, y=pos.y, z=pos.z+2},
 | 
				
			||||||
 | 
							{"group:moretrees_dates"}
 | 
				
			||||||
 | 
						)
 | 
				
			||||||
	for _,datespos in pairs(dates) do
 | 
						for _,datespos in pairs(dates) do
 | 
				
			||||||
		-- minetest.dig_node(datespos) does not cause nearby dates to be dropped :-( ...
 | 
							-- minetest.dig_node(datespos) does not cause nearby dates to be dropped :-( ...
 | 
				
			||||||
		local items = minetest.get_node_drops(minetest.get_node(datespos).name)
 | 
							local items = minetest.get_node_drops(minetest.get_node(datespos).name)
 | 
				
			||||||
		minetest.swap_node(datespos, biome_lib.air)
 | 
							minetest.swap_node(datespos, {name = "air"})
 | 
				
			||||||
		for _, itemname in pairs(items) do
 | 
							for _, itemname in pairs(items) do
 | 
				
			||||||
			minetest.add_item(datespos, itemname)
 | 
								minetest.add_item(datespos, itemname)
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
@@ -79,7 +83,10 @@ local date_regrow_abm_spec = {
 | 
				
			|||||||
	interval = moretrees.dates_flower_interval,
 | 
						interval = moretrees.dates_flower_interval,
 | 
				
			||||||
	chance = moretrees.dates_flower_chance,
 | 
						chance = moretrees.dates_flower_chance,
 | 
				
			||||||
	action = function(pos, node, active_object_count, active_object_count_wider)
 | 
						action = function(pos, node, active_object_count, active_object_count_wider)
 | 
				
			||||||
		local dates = minetest.find_nodes_in_area({x=pos.x-2, y=pos.y, z=pos.z-2}, {x=pos.x+2, y=pos.y, z=pos.z+2}, "group:moretrees_dates")
 | 
							local dates = minetest.find_nodes_in_area(
 | 
				
			||||||
 | 
								{x=pos.x-2, y=pos.y, z=pos.z-2}, {x=pos.x+2, y=pos.y, z=pos.z+2},
 | 
				
			||||||
 | 
								"group:moretrees_dates"
 | 
				
			||||||
 | 
							)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		-- New blossom interval increases exponentially with number of dates already hanging
 | 
							-- New blossom interval increases exponentially with number of dates already hanging
 | 
				
			||||||
		-- In addition: if more dates are hanging, the chance of picking an empty spot decreases as well...
 | 
							-- In addition: if more dates are hanging, the chance of picking an empty spot decreases as well...
 | 
				
			||||||
@@ -120,8 +127,11 @@ minetest.register_abm({
 | 
				
			|||||||
			type = "m"
 | 
								type = "m"
 | 
				
			||||||
			minetest.swap_node(pos, {name="moretrees:date_palm_mfruit_trunk"})
 | 
								minetest.swap_node(pos, {name="moretrees:date_palm_mfruit_trunk"})
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
		local dates1 = minetest.find_nodes_in_area({x=pos.x-1, y=pos.y, z=pos.z-1}, {x=pos.x+1, y=pos.y, z=pos.z+1}, "air")
 | 
							local dates1 = minetest.find_nodes_in_area(
 | 
				
			||||||
		local genpos
 | 
								{x=pos.x-1, y=pos.y, z=pos.z-1},
 | 
				
			||||||
 | 
								{x=pos.x+1, y=pos.y, z=pos.z+1},
 | 
				
			||||||
 | 
								"air"
 | 
				
			||||||
 | 
							)
 | 
				
			||||||
		for _,genpos in pairs(dates1) do
 | 
							for _,genpos in pairs(dates1) do
 | 
				
			||||||
			if math.random(100) <= 20 then
 | 
								if math.random(100) <= 20 then
 | 
				
			||||||
				if type == "m" then
 | 
									if type == "m" then
 | 
				
			||||||
@@ -131,7 +141,11 @@ minetest.register_abm({
 | 
				
			|||||||
				end
 | 
									end
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
		local dates2 = minetest.find_nodes_in_area({x=pos.x-2, y=pos.y, z=pos.z-2}, {x=pos.x+2, y=pos.y, z=pos.z+2}, "air")
 | 
							local dates2 = minetest.find_nodes_in_area(
 | 
				
			||||||
 | 
								{x=pos.x-2, y=pos.y, z=pos.z-2},
 | 
				
			||||||
 | 
								{x=pos.x+2, y=pos.y, z=pos.z+2},
 | 
				
			||||||
 | 
								"air"
 | 
				
			||||||
 | 
							)
 | 
				
			||||||
		for _,genpos in pairs(dates2) do
 | 
							for _,genpos in pairs(dates2) do
 | 
				
			||||||
			if math.random(100) <= 5 then
 | 
								if math.random(100) <= 5 then
 | 
				
			||||||
				if type == "m" then
 | 
									if type == "m" then
 | 
				
			||||||
@@ -195,7 +209,7 @@ local function find_fruit_trunks_near(ftpos, sect)
 | 
				
			|||||||
	local r = moretrees.dates_pollination_distance + 2 * math.sqrt(2)
 | 
						local r = moretrees.dates_pollination_distance + 2 * math.sqrt(2)
 | 
				
			||||||
	local sect_hr = math.floor(r / 3 + 0.9999)
 | 
						local sect_hr = math.floor(r / 3 + 0.9999)
 | 
				
			||||||
	local sect_vr = math.floor(r / 2 + 0.9999)
 | 
						local sect_vr = math.floor(r / 2 + 0.9999)
 | 
				
			||||||
	local t0us = core.get_us_time()
 | 
						local t0us = minetest.get_us_time()
 | 
				
			||||||
	local t0s = os.time()
 | 
						local t0s = os.time()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	-- Compute elapsed time since last search.
 | 
						-- Compute elapsed time since last search.
 | 
				
			||||||
@@ -217,7 +231,8 @@ local function find_fruit_trunks_near(ftpos, sect)
 | 
				
			|||||||
	-- Skip the search if it is consuming too much CPU time
 | 
						-- Skip the search if it is consuming too much CPU time
 | 
				
			||||||
	if sect_search_stats.count > 0 and moretrees.dates_blossom_search_iload > 0
 | 
						if sect_search_stats.count > 0 and moretrees.dates_blossom_search_iload > 0
 | 
				
			||||||
			and sect_search_stats.sum / sect_search_stats.count > moretrees.dates_blossom_search_time_treshold
 | 
								and sect_search_stats.sum / sect_search_stats.count > moretrees.dates_blossom_search_time_treshold
 | 
				
			||||||
			and t0us - sect_search_stats.last_us < moretrees.dates_blossom_search_iload * (sect_search_stats.sum / sect_search_stats.count) then
 | 
								and t0us - sect_search_stats.last_us < moretrees.dates_blossom_search_iload
 | 
				
			||||||
 | 
								* (sect_search_stats.sum / sect_search_stats.count) then
 | 
				
			||||||
		sect_search_stats.skip = sect_search_stats.skip + 1
 | 
							sect_search_stats.skip = sect_search_stats.skip + 1
 | 
				
			||||||
		return nil
 | 
							return nil
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
@@ -266,7 +281,7 @@ local function find_fruit_trunks_near(ftpos, sect)
 | 
				
			|||||||
	end
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	-- Update search statistics
 | 
						-- Update search statistics
 | 
				
			||||||
	local t1us = core.get_us_time()
 | 
						local t1us = minetest.get_us_time()
 | 
				
			||||||
	if t1us < t0us then
 | 
						if t1us < t0us then
 | 
				
			||||||
		-- Wraparound. Assume the search lasted less than 2^32 microseconds (~71 min)
 | 
							-- Wraparound. Assume the search lasted less than 2^32 microseconds (~71 min)
 | 
				
			||||||
		-- (so no need to apply another correction)
 | 
							-- (so no need to apply another correction)
 | 
				
			||||||
@@ -306,7 +321,7 @@ minetest.register_chatcommand("dates_stats", {
 | 
				
			|||||||
	params = "|chat|log|reset",
 | 
						params = "|chat|log|reset",
 | 
				
			||||||
	privs = { server = true },
 | 
						privs = { server = true },
 | 
				
			||||||
	func = function(name, param)
 | 
						func = function(name, param)
 | 
				
			||||||
		param = string.lower(string.trim(param))
 | 
							param = string.lower(param:gsub("%s+", ""))
 | 
				
			||||||
		if param == "" or param == "chat" then
 | 
							if param == "" or param == "chat" then
 | 
				
			||||||
			return dates_print_search_stats(false)
 | 
								return dates_print_search_stats(false)
 | 
				
			||||||
		elseif param == "log" then
 | 
							elseif param == "log" then
 | 
				
			||||||
@@ -470,7 +485,10 @@ local function find_male_blossom_with_ftrunk(fbpos,ftpos)
 | 
				
			|||||||
		end
 | 
							end
 | 
				
			||||||
		-- Else do a new search
 | 
							-- Else do a new search
 | 
				
			||||||
		if not mpalms.sect[sect_old] then
 | 
							if not mpalms.sect[sect_old] then
 | 
				
			||||||
			mpalms.sect[sect_old], fpalms_list, all_mpalms_list = find_fruit_trunks_near(ftpos, {x = (sect_old + 4) % 3 - 1, z = (sect_old + 4) / 3 - 1})
 | 
								mpalms.sect[sect_old], fpalms_list, all_mpalms_list = find_fruit_trunks_near(
 | 
				
			||||||
 | 
									ftpos,
 | 
				
			||||||
 | 
									{x = (sect_old + 4) % 3 - 1, z = (sect_old + 4) / 3 - 1}
 | 
				
			||||||
 | 
								)
 | 
				
			||||||
			cache_changed = true
 | 
								cache_changed = true
 | 
				
			||||||
			if sect_old == 0 then
 | 
								if sect_old == 0 then
 | 
				
			||||||
				-- Save the results if it is sector 0
 | 
									-- Save the results if it is sector 0
 | 
				
			||||||
@@ -526,7 +544,6 @@ end
 | 
				
			|||||||
local dates_growfn = function(pos, elapsed)
 | 
					local dates_growfn = function(pos, elapsed)
 | 
				
			||||||
	local node = minetest.get_node(pos)
 | 
						local node = minetest.get_node(pos)
 | 
				
			||||||
	local delay = moretrees.dates_grow_interval
 | 
						local delay = moretrees.dates_grow_interval
 | 
				
			||||||
	local r = moretrees.dates_pollination_distance
 | 
					 | 
				
			||||||
	local action
 | 
						local action
 | 
				
			||||||
	if not node then
 | 
						if not node then
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
@@ -537,7 +554,7 @@ local dates_growfn = function(pos, elapsed)
 | 
				
			|||||||
		elseif string.find(node.name, "moretrees:dates_m") then
 | 
							elseif string.find(node.name, "moretrees:dates_m") then
 | 
				
			||||||
			minetest.swap_node(pos, {name="moretrees:dates_n"})
 | 
								minetest.swap_node(pos, {name="moretrees:dates_n"})
 | 
				
			||||||
		else
 | 
							else
 | 
				
			||||||
			minetest.swap_node(pos, biome_lib.air)
 | 
								minetest.swap_node(pos, {name = "air"})
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
	elseif node.name == "moretrees:dates_f0" and math.random(100) <= 100 * dates_regrow_prob then
 | 
						elseif node.name == "moretrees:dates_f0" and math.random(100) <= 100 * dates_regrow_prob then
 | 
				
			||||||
@@ -577,7 +594,7 @@ local dates_growfn = function(pos, elapsed)
 | 
				
			|||||||
	elseif string.match(node.name, "n$") then
 | 
						elseif string.match(node.name, "n$") then
 | 
				
			||||||
		-- Remove stems.
 | 
							-- Remove stems.
 | 
				
			||||||
		if math.random(stems_drop_ichance) == 1 then
 | 
							if math.random(stems_drop_ichance) == 1 then
 | 
				
			||||||
			minetest.swap_node(pos, biome_lib.air)
 | 
								minetest.swap_node(pos, {name = "air"})
 | 
				
			||||||
			return "stemdrop"
 | 
								return "stemdrop"
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
		action = "nostemdrop"
 | 
							action = "nostemdrop"
 | 
				
			||||||
@@ -594,15 +611,16 @@ local dates_growfn = function(pos, elapsed)
 | 
				
			|||||||
	return action
 | 
						return action
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--[[
 | 
				
			||||||
-- Alternate growth function for dates.
 | 
					-- Alternate growth function for dates.
 | 
				
			||||||
-- It calls the primary growth function, but also measures CPU time consumed.
 | 
					-- It calls the primary growth function, but also measures CPU time consumed.
 | 
				
			||||||
-- Use this function to analyze date growing performance.
 | 
					-- Use this function to analyze date growing performance.
 | 
				
			||||||
local stat = {}
 | 
					local stat = {}
 | 
				
			||||||
stat.count = 0
 | 
					stat.count = 0
 | 
				
			||||||
local dates_growfn_profiling = function(pos, elapsed)
 | 
					local dates_growfn_profiling = function(pos, elapsed)
 | 
				
			||||||
	local t0 = core.get_us_time()
 | 
						local t0 = minetest.get_us_time()
 | 
				
			||||||
	local action = dates_growfn(pos, elapsed)
 | 
						local action = dates_growfn(pos, elapsed)
 | 
				
			||||||
	local t1 = core.get_us_time()
 | 
						local t1 = minetest.get_us_time()
 | 
				
			||||||
	if t1 < t0 then
 | 
						if t1 < t0 then
 | 
				
			||||||
		t1 = t1 + 2^32
 | 
							t1 = t1 + 2^32
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
@@ -656,6 +674,7 @@ local dates_growfn_profiling = function(pos, elapsed)
 | 
				
			|||||||
			"TOTAL", count, sum/count))
 | 
								"TOTAL", count, sum/count))
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					--]]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- Register dates
 | 
					-- Register dates
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -704,10 +723,11 @@ for _,suffix in ipairs({"f0", "f1", "f2", "f3", "f4", "m0", "fn", "n"}) do
 | 
				
			|||||||
		paramtype = "light",
 | 
							paramtype = "light",
 | 
				
			||||||
		sunlight_propagates = true,
 | 
							sunlight_propagates = true,
 | 
				
			||||||
		walkable = false,
 | 
							walkable = false,
 | 
				
			||||||
 | 
							is_ground_content = false,
 | 
				
			||||||
		groups = { fleshy=3, dig_immediate=3, flammable=2, moretrees_dates=1 },
 | 
							groups = { fleshy=3, dig_immediate=3, flammable=2, moretrees_dates=1 },
 | 
				
			||||||
		inventory_image = "moretrees_dates_"..suffix..".png^[transformR0",
 | 
							inventory_image = "moretrees_dates_"..suffix..".png^[transformR0",
 | 
				
			||||||
		wield_image = "moretrees_dates_"..suffix..".png^[transformR90",
 | 
							wield_image = "moretrees_dates_"..suffix..".png^[transformR90",
 | 
				
			||||||
		sounds = default.node_sound_defaults(),
 | 
							sounds = xcompat.sounds.node_sound_default(),
 | 
				
			||||||
		drop = dropfn,
 | 
							drop = dropfn,
 | 
				
			||||||
		selection_box = {
 | 
							selection_box = {
 | 
				
			||||||
			type = "fixed",
 | 
								type = "fixed",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,135 +0,0 @@
 | 
				
			|||||||
-- Global configuration variables
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
-- Enable the various kinds of trees.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
moretrees.enable_apple_tree		= true
 | 
					 | 
				
			||||||
moretrees.enable_oak			= true
 | 
					 | 
				
			||||||
moretrees.enable_sequoia		= true
 | 
					 | 
				
			||||||
moretrees.enable_palm			= true
 | 
					 | 
				
			||||||
moretrees.enable_date_palm		= true
 | 
					 | 
				
			||||||
moretrees.enable_cedar			= true
 | 
					 | 
				
			||||||
moretrees.enable_rubber_tree	= true
 | 
					 | 
				
			||||||
moretrees.enable_willow			= true
 | 
					 | 
				
			||||||
moretrees.enable_birch			= true
 | 
					 | 
				
			||||||
moretrees.enable_spruce			= true
 | 
					 | 
				
			||||||
moretrees.enable_jungle_tree	= true
 | 
					 | 
				
			||||||
moretrees.enable_fir			= true
 | 
					 | 
				
			||||||
moretrees.enable_poplar			= 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 after a very short
 | 
					 | 
				
			||||||
-- delay.  This reduces mapgen lag in some situations, and fixes situations
 | 
					 | 
				
			||||||
-- where the mapgen conflicts with the tree generator.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
moretrees.spawn_saplings		= true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
-- Set this to true to allow defining stairs/slabs/etc.  If Moreblocks is
 | 
					 | 
				
			||||||
-- installed, this will use that mod's Stairs Plus component.  Otherwise, it
 | 
					 | 
				
			||||||
-- will use the default stairs mod in minetest_game, if present
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
moretrees.enable_stairs			= true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
-- If this variable is set to true, register fences for moretrees wood
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
moretrees.enable_fences         = false
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
-- Set this to true if you want the plantlike drawtype for leaves, which
 | 
					 | 
				
			||||||
-- improves some peoples' framerates without resorting to making leaf nodes opaque.
 | 
					 | 
				
			||||||
-- Affects default leaves and default jungle leaves also.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
moretrees.plantlike_leaves		= false
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
-- Enable this if you want moretrees to redefine default apples so that they
 | 
					 | 
				
			||||||
-- fall when leaves decay/are dug.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
moretrees.enable_redefine_apple		= true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
-- Set this to true to enable leaf decay of all trees except the default ones.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
moretrees.enable_leafdecay		= true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
-- various related settings to configure leaf decay.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
moretrees.leafdecay_delay		= 2
 | 
					 | 
				
			||||||
moretrees.leafdecay_chance		= 5
 | 
					 | 
				
			||||||
moretrees.leafdecay_radius		= 5
 | 
					 | 
				
			||||||
moretrees.palm_leafdecay_radius		= 10
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
-- Change these settings if you want default trees to be gradually cut down
 | 
					 | 
				
			||||||
-- above the elevation where firs normally generate.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
moretrees.firs_remove_default_trees	= false
 | 
					 | 
				
			||||||
moretrees.firs_remove_interval		= 2
 | 
					 | 
				
			||||||
moretrees.firs_remove_chance		= 150
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
-- Cocos palm settings
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
moretrees.coconuts_regrow		= true
 | 
					 | 
				
			||||||
moretrees.coconuts_convert_existing_palms = true	-- Converting existing palm trees will make coconuts regrow on them as well
 | 
					 | 
				
			||||||
							-- Else, they will only regrow on newly-spawned palms
 | 
					 | 
				
			||||||
							-- However, conversion is not an exact science, and although an attempt is
 | 
					 | 
				
			||||||
							-- made to detect whether a trunk belongs to an actual palm, some coconut trunks
 | 
					 | 
				
			||||||
							-- and some coconuts may be incorrectly converted.
 | 
					 | 
				
			||||||
moretrees.coconut_flower_interval	= 59
 | 
					 | 
				
			||||||
moretrees.coconut_flower_chance		= 67
 | 
					 | 
				
			||||||
moretrees.coconut_grow_interval		= 2 * moretrees.coconut_flower_interval * moretrees.coconut_flower_chance
 | 
					 | 
				
			||||||
							-- Actual interval will randomly vary between 67% and 133% of this value
 | 
					 | 
				
			||||||
							-- 2 * 59 * 67 ~ 2 hours. So flowers become coconuts in about 6 hours
 | 
					 | 
				
			||||||
moretrees.coconut_item_drop_ichance	= 10 		-- inverse probability of ripe coconuts dropping as items (instead of disappearing)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
-- Date palm settings
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
-- Suggested configuration alternatives:
 | 
					 | 
				
			||||||
-- - Dates grow only when pollinated:
 | 
					 | 
				
			||||||
--   - Set dates_regrow_pollinated to true
 | 
					 | 
				
			||||||
--   - Set dates_regrow_unpollinated_percent to 0
 | 
					 | 
				
			||||||
-- - Dates grow without pollination. Pollination disabled:
 | 
					 | 
				
			||||||
--   - Set dates_regrow_pollinated to false
 | 
					 | 
				
			||||||
--   - Set dates_regrow_unpollinated_percent to some larger positive value, e.g. 95
 | 
					 | 
				
			||||||
-- - Dates grow, but more and faster if male flowers are nearby
 | 
					 | 
				
			||||||
--   - Set dates_regrow_pollinated to true
 | 
					 | 
				
			||||||
--   - Set dates_regrow_unpollinated_percent to some small positive value, e.g. 33
 | 
					 | 
				
			||||||
--   - Optional but recommended: Reduce the pollination distance, e.g. to 30
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
-- Note that it should not be necessary to disable pollination for performance
 | 
					 | 
				
			||||||
-- reasons. A lot of effort has gone into ensuring that date growing will not cause lag.
 | 
					 | 
				
			||||||
--
 | 
					 | 
				
			||||||
-- If lag is suspected, use the chat command '/dates_stats' to obtain the male dates
 | 
					 | 
				
			||||||
-- search time, as well as the counts of total number of searches requested and the
 | 
					 | 
				
			||||||
-- number of searches actually performed.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
moretrees.dates_regrow_pollinated	= true		-- Enable pollination. If enabled, male trees are required for dates to grow.
 | 
					 | 
				
			||||||
							-- If disabled, dates_regrow_unpollinated_percent must be non-zero for dates to regrow.
 | 
					 | 
				
			||||||
moretrees.dates_regrow_unpollinated_percent	= 0	-- Percentage of female dates becoming dates without being pollinated.
 | 
					 | 
				
			||||||
							-- If 0, dates_regrow_pollinated must be enabled for dates to grow.
 | 
					 | 
				
			||||||
moretrees.dates_female_percent		= 57		-- Ratio of female to male trees - tune this to improve # of generated trees that actually bear fruit
 | 
					 | 
				
			||||||
							-- ~57% gives near optimal results for groups of 3 random trees, while it is only slightly suboptimal
 | 
					 | 
				
			||||||
							-- for groups of 2 and 4 random trees (~2% less fruit than optimal).
 | 
					 | 
				
			||||||
							-- Optimal values per group size: 2: 50%, 3: 57.78%, 4: 63%, 5: 66.9%, 6: 69.9%, [...], 12: 79.8%
 | 
					 | 
				
			||||||
							-- So 57% is optimal for small groups of trees. As larger groups have more female palms anyway, a
 | 
					 | 
				
			||||||
							-- less than optimal proportion of female to male trees is not a problem.
 | 
					 | 
				
			||||||
moretrees.dates_pollination_distance	= 120
 | 
					 | 
				
			||||||
moretrees.dates_blossom_search_time_treshold = 1000	-- If average male blossom search time (in microseconds) exceeds this, start limiting the search load.
 | 
					 | 
				
			||||||
moretrees.dates_blossom_search_iload = 10		-- Inverse fraction of CPU time that male blossom searching search may consume.
 | 
					 | 
				
			||||||
							-- As searching a large area (radius: dates_pollination_distance/3 per attempt) can cause lag,
 | 
					 | 
				
			||||||
							-- this limits the search frequency server-wide so that the impact on server lag is minimised
 | 
					 | 
				
			||||||
							-- For personal servers, this can be set lower, or even to 1 or 0 (0 disables load limiting).
 | 
					 | 
				
			||||||
							-- Obtain the current average search time using /dates_stats
 | 
					 | 
				
			||||||
moretrees.dates_flower_interval		= 59
 | 
					 | 
				
			||||||
moretrees.dates_flower_chance		= 181
 | 
					 | 
				
			||||||
moretrees.dates_grow_interval		= 2 * moretrees.dates_flower_interval * moretrees.dates_flower_chance
 | 
					 | 
				
			||||||
							-- As date palms have a high yield, don't grow dates too fast
 | 
					 | 
				
			||||||
							-- The actual interval will vary randomly between 67% and 133% of this value.
 | 
					 | 
				
			||||||
							-- 2 * 59 * 181 ~ 6 hours. So by default flowers become dates in about one (human) day.
 | 
					 | 
				
			||||||
moretrees.dates_item_drop_ichance	= 10 		-- inverse probability of ripe dates dropping as items (instead of disappearing)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
-- Sapling settings
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
moretrees.sapling_interval		= 100
 | 
					 | 
				
			||||||
moretrees.sapling_chance		= 5
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
-- If this variable is set to true, drop leaves out as entities during leaf
 | 
					 | 
				
			||||||
-- decay, rather than just disappearing them.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
moretrees.decay_leaves_as_items = false
 | 
					 | 
				
			||||||
@@ -1,9 +0,0 @@
 | 
				
			|||||||
default
 | 
					 | 
				
			||||||
biome_lib
 | 
					 | 
				
			||||||
vessels
 | 
					 | 
				
			||||||
doors?
 | 
					 | 
				
			||||||
stairs?
 | 
					 | 
				
			||||||
moreblocks?
 | 
					 | 
				
			||||||
intllib?
 | 
					 | 
				
			||||||
farming?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@@ -1 +0,0 @@
 | 
				
			|||||||
This mod adds a whole bunch of new types of trees to the game
 | 
					 | 
				
			||||||
							
								
								
									
										299
									
								
								init.lua
									
									
									
									
									
								
							
							
						
						
									
										299
									
								
								init.lua
									
									
									
									
									
								
							@@ -15,37 +15,41 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
moretrees = {}
 | 
					moretrees = {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
minetest.override_item("default:sapling", {
 | 
					local S = minetest.get_translator("moretrees")
 | 
				
			||||||
	description = "Sapling"
 | 
					 | 
				
			||||||
})
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
minetest.override_item("default:tree", {
 | 
					if minetest.get_modpath("default") then
 | 
				
			||||||
	description = "Tree"
 | 
						minetest.override_item("default:sapling", {
 | 
				
			||||||
})
 | 
							description = S("Sapling")
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
minetest.override_item("default:wood", {
 | 
						minetest.override_item("default:tree", {
 | 
				
			||||||
	description = "Wooden Planks"
 | 
							description = S("Tree")
 | 
				
			||||||
})
 | 
						})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
minetest.override_item("default:leaves", {
 | 
						minetest.override_item("default:wood", {
 | 
				
			||||||
	description = "Leaves"
 | 
							description = S("Wooden Planks")
 | 
				
			||||||
})
 | 
						})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
minetest.override_item("default:fence_wood", {
 | 
						minetest.override_item("default:leaves", {
 | 
				
			||||||
	description = "Wooden Fence"
 | 
							description = S("Leaves")
 | 
				
			||||||
})
 | 
						})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
minetest.override_item("default:fence_rail_wood", {
 | 
						minetest.override_item("default:fence_wood", {
 | 
				
			||||||
	description = "Wooden Fence Rail"
 | 
							description = S("Wooden Fence")
 | 
				
			||||||
})
 | 
						})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						minetest.override_item("default:fence_rail_wood", {
 | 
				
			||||||
 | 
							description = S("Wooden Fence Rail")
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if minetest.get_modpath("doors") then
 | 
					if minetest.get_modpath("doors") then
 | 
				
			||||||
	minetest.override_item("doors:gate_wood_closed", {
 | 
						minetest.override_item("doors:gate_wood_closed", {
 | 
				
			||||||
		description = "Wooden Fence Gate"
 | 
							description = S("Wooden Fence Gate")
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	minetest.override_item("doors:gate_wood_open", {
 | 
						minetest.override_item("doors:gate_wood_open", {
 | 
				
			||||||
		description = "Wooden Fence Gate"
 | 
							description = S("Wooden Fence Gate")
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -55,21 +59,27 @@ end
 | 
				
			|||||||
local worldpath=minetest.get_worldpath()
 | 
					local worldpath=minetest.get_worldpath()
 | 
				
			||||||
local modpath=minetest.get_modpath("moretrees")
 | 
					local modpath=minetest.get_modpath("moretrees")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
dofile(modpath.."/default_settings.txt")
 | 
					dofile(modpath.."/settings.lua")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if io.open(worldpath.."/moretrees_settings.txt","r") then
 | 
					if io.open(worldpath.."/moretrees_settings.txt","r") then
 | 
				
			||||||
	io.close()
 | 
						io.close()
 | 
				
			||||||
	dofile(worldpath.."/moretrees_settings.txt")
 | 
						dofile(worldpath.."/moretrees_settings.txt")
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- Boilerplate to support localized strings if intllib mod is installed.
 | 
					-- Validate that if ethereal exists, that it's version is greater than 20220424.
 | 
				
			||||||
local S
 | 
					-- Lower versions of ethereal clear registered biomes and decorations during
 | 
				
			||||||
if minetest.get_modpath("intllib") then
 | 
					-- initialization which results in lost content from this mod (and others)
 | 
				
			||||||
	S = intllib.Getter()
 | 
					-- depending on where they are in the mod load order.
 | 
				
			||||||
else
 | 
					minetest.register_on_mods_loaded(function()
 | 
				
			||||||
	S = function(s) return s end
 | 
						if minetest.global_exists("ethereal") then
 | 
				
			||||||
end
 | 
							local ethereal_ver = tonumber(ethereal.version)
 | 
				
			||||||
moretrees.intllib = S
 | 
							if (ethereal_ver and ethereal_ver < 20220424) then
 | 
				
			||||||
 | 
								error("[moretrees] The version of ethereal detected can result " ..
 | 
				
			||||||
 | 
									  "in parts of this mod and others disappearing due to mod " ..
 | 
				
			||||||
 | 
									  "load order. Please update ethereal.");
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
					end)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- infinite stacks checking
 | 
					-- infinite stacks checking
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -83,10 +93,10 @@ end
 | 
				
			|||||||
-- tables, load other files
 | 
					-- tables, load other files
 | 
				
			||||||
 | 
					
 | 
				
			||||||
moretrees.cutting_tools = {
 | 
					moretrees.cutting_tools = {
 | 
				
			||||||
	"default:axe_bronze",
 | 
					 | 
				
			||||||
	"default:axe_diamond",
 | 
					 | 
				
			||||||
	"default:axe_mese",
 | 
						"default:axe_mese",
 | 
				
			||||||
	"default:axe_steel",
 | 
						xcompat.materials.axe_steel,
 | 
				
			||||||
 | 
						xcompat.materials.axe_diamond,
 | 
				
			||||||
 | 
						xcompat.materials.axe_bronze,
 | 
				
			||||||
	"glooptest:axe_alatro",
 | 
						"glooptest:axe_alatro",
 | 
				
			||||||
	"glooptest:axe_arol",
 | 
						"glooptest:axe_arol",
 | 
				
			||||||
	"moreores:axe_mithril",
 | 
						"moreores:axe_mithril",
 | 
				
			||||||
@@ -103,111 +113,103 @@ dofile(modpath.."/saplings.lua")
 | 
				
			|||||||
dofile(modpath.."/crafts.lua")
 | 
					dofile(modpath.."/crafts.lua")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- tree spawning setup
 | 
					-- tree spawning setup
 | 
				
			||||||
 | 
					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_date_palm_object = moretrees.date_palm_model
 | 
				
			||||||
 | 
					moretrees.spawn_cedar_object = moretrees.cedar_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"
 | 
				
			||||||
 | 
					moretrees.spawn_poplar_object = moretrees.poplar_model
 | 
				
			||||||
 | 
					moretrees.spawn_poplar_small_object = moretrees.poplar_small_model
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if moretrees.spawn_saplings then
 | 
					local deco_ids = {}
 | 
				
			||||||
	moretrees.spawn_beech_object = "moretrees:beech_sapling_ongen"
 | 
					
 | 
				
			||||||
	moretrees.spawn_apple_tree_object = "moretrees:apple_tree_sapling_ongen"
 | 
					function translate_biome_defs(def, treename, index)
 | 
				
			||||||
	moretrees.spawn_oak_object = "moretrees:oak_sapling_ongen"
 | 
						if not index then index = 1 end
 | 
				
			||||||
	moretrees.spawn_sequoia_object = "moretrees:sequoia_sapling_ongen"
 | 
						local deco_def = {
 | 
				
			||||||
	moretrees.spawn_palm_object = "moretrees:palm_sapling_ongen"
 | 
							name = treename .. "_" .. index,
 | 
				
			||||||
	moretrees.spawn_date_palm_object = "moretrees:date_palm_sapling_ongen"
 | 
							deco_type = "simple",
 | 
				
			||||||
	moretrees.spawn_cedar_object = "moretrees:cedar_sapling_ongen"
 | 
							place_on = def.place_on,
 | 
				
			||||||
	moretrees.spawn_rubber_tree_object = "moretrees:rubber_tree_sapling_ongen"
 | 
							sidelen = 16,
 | 
				
			||||||
	moretrees.spawn_willow_object = "moretrees:willow_sapling_ongen"
 | 
							fill_ratio = def.fill_ratio or 0.001,
 | 
				
			||||||
	moretrees.spawn_birch_object = "moretrees:birch_sapling_ongen"
 | 
							--biomes eventually?
 | 
				
			||||||
	moretrees.spawn_spruce_object = "moretrees:spruce_sapling_ongen"
 | 
							y_min = def.min_elevation,
 | 
				
			||||||
	moretrees.spawn_jungletree_object = "moretrees:jungletree_sapling_ongen"
 | 
							y_max = def.max_elevation,
 | 
				
			||||||
	moretrees.spawn_fir_object = "moretrees:fir_sapling_ongen"
 | 
							spawn_by = def.spawn_by,
 | 
				
			||||||
	moretrees.spawn_fir_snow_object = "snow:sapling_pine"
 | 
							num_spawn_by = def.num_spawn_by,
 | 
				
			||||||
	moretrees.spawn_poplar_object = "moretrees:poplar_sapling_ongen"
 | 
							decoration = "moretrees:"..treename.."_sapling_ongen"
 | 
				
			||||||
	moretrees.spawn_poplar_small_object = "moretrees:poplar_small_sapling_ongen"
 | 
						}
 | 
				
			||||||
else
 | 
					
 | 
				
			||||||
	moretrees.spawn_beech_object = moretrees.beech_model
 | 
						deco_ids[#deco_ids+1] = treename .. ("_" .. index or "_1")
 | 
				
			||||||
	moretrees.spawn_apple_tree_object = moretrees.apple_tree_model
 | 
					
 | 
				
			||||||
	moretrees.spawn_oak_object = moretrees.oak_model
 | 
						return deco_def
 | 
				
			||||||
	moretrees.spawn_sequoia_object = moretrees.sequoia_model
 | 
					 | 
				
			||||||
	moretrees.spawn_palm_object = moretrees.palm_model
 | 
					 | 
				
			||||||
	moretrees.spawn_date_palm_object = moretrees.date_palm_model
 | 
					 | 
				
			||||||
	moretrees.spawn_cedar_object = moretrees.cedar_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"
 | 
					 | 
				
			||||||
	moretrees.spawn_poplar_object = moretrees.poplar_model
 | 
					 | 
				
			||||||
	moretrees.spawn_poplar_small_object = moretrees.poplar_small_model
 | 
					 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if moretrees.enable_beech then
 | 
					minetest.register_decoration(translate_biome_defs(moretrees.beech_biome, "beech"))
 | 
				
			||||||
	biome_lib:register_generate_plant(moretrees.beech_biome, moretrees.spawn_beech_object)
 | 
					minetest.register_decoration(translate_biome_defs(moretrees.apple_tree_biome, "apple_tree"))
 | 
				
			||||||
 | 
					minetest.register_decoration(translate_biome_defs(moretrees.oak_biome, "oak"))
 | 
				
			||||||
 | 
					minetest.register_decoration(translate_biome_defs(moretrees.sequoia_biome, "sequoia"))
 | 
				
			||||||
 | 
					minetest.register_decoration(translate_biome_defs(moretrees.palm_biome, "palm"))
 | 
				
			||||||
 | 
					minetest.register_decoration(translate_biome_defs(moretrees.date_palm_biome, "date_palm", 1))
 | 
				
			||||||
 | 
					minetest.register_decoration(translate_biome_defs(moretrees.date_palm_biome_2, "date_palm", 2))
 | 
				
			||||||
 | 
					minetest.register_decoration(translate_biome_defs(moretrees.cedar_biome, "cedar"))
 | 
				
			||||||
 | 
					minetest.register_decoration(translate_biome_defs(moretrees.rubber_tree_biome, "rubber_tree"))
 | 
				
			||||||
 | 
					minetest.register_decoration(translate_biome_defs(moretrees.willow_biome, "willow"))
 | 
				
			||||||
 | 
					minetest.register_decoration(translate_biome_defs(moretrees.birch_biome, "birch"))
 | 
				
			||||||
 | 
					minetest.register_decoration(translate_biome_defs(moretrees.spruce_biome, "spruce"))
 | 
				
			||||||
 | 
					if minetest.get_modpath("default") then
 | 
				
			||||||
 | 
						minetest.register_decoration(translate_biome_defs(moretrees.jungletree_biome, "jungletree"))
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					minetest.register_decoration(translate_biome_defs(moretrees.fir_biome, "fir", 1))
 | 
				
			||||||
if moretrees.enable_apple_tree then
 | 
					if minetest.get_modpath("snow") then
 | 
				
			||||||
	biome_lib:register_generate_plant(moretrees.apple_tree_biome, moretrees.spawn_apple_tree_object)
 | 
						minetest.register_decoration(translate_biome_defs(moretrees.fir_biome_snow, "fir", 2))
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					minetest.register_decoration(translate_biome_defs(moretrees.poplar_biome, "poplar", 1))
 | 
				
			||||||
 | 
					minetest.register_decoration(translate_biome_defs(moretrees.poplar_biome_2, "poplar", 2))
 | 
				
			||||||
 | 
					minetest.register_decoration(translate_biome_defs(moretrees.poplar_biome_3, "poplar", 3))
 | 
				
			||||||
 | 
					minetest.register_decoration(translate_biome_defs(moretrees.poplar_small_biome, "poplar_small", 4))
 | 
				
			||||||
 | 
					minetest.register_decoration(translate_biome_defs(moretrees.poplar_small_biome_2, "poplar_small", 5))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if moretrees.enable_oak then
 | 
					--[[
 | 
				
			||||||
	biome_lib:register_generate_plant(moretrees.oak_biome, moretrees.spawn_oak_object)
 | 
						this is purposefully wrapped in a on mods loaded callback to that it gets the proper ids
 | 
				
			||||||
end
 | 
						if other mods clear the registered decorations
 | 
				
			||||||
 | 
					]]
 | 
				
			||||||
if moretrees.enable_sequoia then
 | 
					minetest.register_on_mods_loaded(function()
 | 
				
			||||||
	biome_lib:register_generate_plant(moretrees.sequoia_biome, moretrees.spawn_sequoia_object)
 | 
						for k, v in pairs(deco_ids) do
 | 
				
			||||||
end
 | 
							deco_ids[k] = minetest.get_decoration_id(v)
 | 
				
			||||||
 | 
					 | 
				
			||||||
if moretrees.enable_palm then
 | 
					 | 
				
			||||||
	biome_lib:register_generate_plant(moretrees.palm_biome, moretrees.spawn_palm_object)
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if moretrees.enable_date_palm then
 | 
					 | 
				
			||||||
	biome_lib:register_generate_plant(moretrees.date_palm_biome, moretrees.spawn_date_palm_object)
 | 
					 | 
				
			||||||
	biome_lib:register_generate_plant(moretrees.date_palm_biome_2, moretrees.spawn_date_palm_object)
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if moretrees.enable_cedar then
 | 
					 | 
				
			||||||
	biome_lib:register_generate_plant(moretrees.cedar_biome, moretrees.spawn_cedar_object)
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if moretrees.enable_rubber_tree then
 | 
					 | 
				
			||||||
	biome_lib:register_generate_plant(moretrees.rubber_tree_biome, moretrees.spawn_rubber_tree_object)
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if moretrees.enable_willow then
 | 
					 | 
				
			||||||
	biome_lib:register_generate_plant(moretrees.willow_biome, moretrees.spawn_willow_object)
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if moretrees.enable_birch then
 | 
					 | 
				
			||||||
	biome_lib:register_generate_plant(moretrees.birch_biome, moretrees.spawn_birch_object)
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if moretrees.enable_spruce then
 | 
					 | 
				
			||||||
	biome_lib:register_generate_plant(moretrees.spruce_biome, moretrees.spawn_spruce_object)
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if moretrees.enable_jungle_tree then
 | 
					 | 
				
			||||||
	biome_lib:register_generate_plant(moretrees.jungletree_biome, moretrees.spawn_jungletree_object)
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if moretrees.enable_fir then
 | 
					 | 
				
			||||||
	biome_lib:register_generate_plant(moretrees.fir_biome, moretrees.spawn_fir_object)
 | 
					 | 
				
			||||||
	if minetest.get_modpath("snow") then
 | 
					 | 
				
			||||||
		biome_lib:register_generate_plant(moretrees.fir_biome_snow, moretrees.spawn_fir_snow_object)
 | 
					 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
end
 | 
						minetest.set_gen_notify("decoration", deco_ids)
 | 
				
			||||||
 | 
					end)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if moretrees.enable_poplar then
 | 
					minetest.register_on_generated(function(minp, maxp, blockseed)
 | 
				
			||||||
	biome_lib:register_generate_plant(moretrees.poplar_biome, moretrees.spawn_poplar_object)
 | 
					    local g = minetest.get_mapgen_object("gennotify")
 | 
				
			||||||
	biome_lib:register_generate_plant(moretrees.poplar_biome_2, moretrees.spawn_poplar_object)
 | 
					    local locations = {}
 | 
				
			||||||
	biome_lib:register_generate_plant(moretrees.poplar_biome_3, moretrees.spawn_poplar_object)
 | 
						for _, id in pairs(deco_ids) do
 | 
				
			||||||
	biome_lib:register_generate_plant(moretrees.poplar_small_biome, moretrees.spawn_poplar_small_object)
 | 
							local deco_locations = g["decoration#" .. id] or {}
 | 
				
			||||||
	biome_lib:register_generate_plant(moretrees.poplar_small_biome_2, moretrees.spawn_poplar_small_object)
 | 
							for _, pos in pairs(deco_locations) do
 | 
				
			||||||
end
 | 
								locations[#locations+1] = pos
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if #locations == 0 then return end
 | 
				
			||||||
 | 
					    for _, pos in ipairs(locations) do
 | 
				
			||||||
 | 
					        local timer = minetest.get_node_timer({x=pos.x, y=pos.y+1, z=pos.z})
 | 
				
			||||||
 | 
					        timer:start(math.random(2,10))
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					end)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- Code to spawn a birch tree
 | 
					-- Code to spawn a birch tree
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function moretrees.grow_birch(pos)
 | 
					function moretrees.grow_birch(pos)
 | 
				
			||||||
	minetest.swap_node(pos, biome_lib.air)
 | 
						minetest.swap_node(pos, {name = "air"})
 | 
				
			||||||
	if math.random(1,2) == 1 then
 | 
						if math.random(1,2) == 1 then
 | 
				
			||||||
		minetest.spawn_tree(pos, moretrees.birch_model1)
 | 
							minetest.spawn_tree(pos, moretrees.birch_model1)
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
@@ -218,7 +220,7 @@ end
 | 
				
			|||||||
-- Code to spawn a spruce tree
 | 
					-- Code to spawn a spruce tree
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function moretrees.grow_spruce(pos)
 | 
					function moretrees.grow_spruce(pos)
 | 
				
			||||||
	minetest.swap_node(pos, biome_lib.air)
 | 
						minetest.swap_node(pos, {name = "air"})
 | 
				
			||||||
	if math.random(1,2) == 1 then
 | 
						if math.random(1,2) == 1 then
 | 
				
			||||||
		minetest.spawn_tree(pos, moretrees.spruce_model1)
 | 
							minetest.spawn_tree(pos, moretrees.spruce_model1)
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
@@ -233,6 +235,7 @@ moretrees.jt_rules_a1 = "FFF[&&-FBf[&&&Ff]^^^Ff][&&+FBFf[&&&FFf]^^^Ff][&&---FBFf
 | 
				
			|||||||
moretrees.jt_rules_b1 = "[-Ff&f][+Ff&f]B"
 | 
					moretrees.jt_rules_b1 = "[-Ff&f][+Ff&f]B"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
moretrees.jt_axiom2 = "FFFFFA"
 | 
					moretrees.jt_axiom2 = "FFFFFA"
 | 
				
			||||||
 | 
					-- luacheck: no max line length
 | 
				
			||||||
moretrees.jt_rules_a2 = "FFFFF[&&-FFFBF[&&&FFff]^^^FFf][&&+FFFBFF[&&&FFff]^^^FFf][&&---FFFBFF[&&&FFff]^^^FFf][&&+++FFFBFF[&&&FFff]^^^FFf]FF/A"
 | 
					moretrees.jt_rules_a2 = "FFFFF[&&-FFFBF[&&&FFff]^^^FFf][&&+FFFBFF[&&&FFff]^^^FFf][&&---FFFBFF[&&&FFff]^^^FFf][&&+++FFFBFF[&&&FFff]^^^FFf]FF/A"
 | 
				
			||||||
moretrees.jt_rules_b2 = "[-FFf&ff][+FFf&ff]B"
 | 
					moretrees.jt_rules_b2 = "[-FFf&ff][+FFf&ff]B"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -272,10 +275,13 @@ function moretrees.grow_jungletree(pos)
 | 
				
			|||||||
		moretrees.jungletree_model.rules_b = moretrees.jt_rules_b2
 | 
							moretrees.jungletree_model.rules_b = moretrees.jt_rules_b2
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	minetest.swap_node(pos, biome_lib.air)
 | 
						minetest.swap_node(pos, {name = "air"})
 | 
				
			||||||
	local leaves = minetest.find_nodes_in_area({x = pos.x-1, y = pos.y, z = pos.z-1}, {x = pos.x+1, y = pos.y+10, z = pos.z+1}, "default:leaves")
 | 
						local leaves = minetest.find_nodes_in_area(
 | 
				
			||||||
 | 
							{x = pos.x-1, y = pos.y, z = pos.z-1}, {x = pos.x+1, y = pos.y+10, z = pos.z+1},
 | 
				
			||||||
 | 
							xcompat.materials.apple_leaves
 | 
				
			||||||
 | 
						)
 | 
				
			||||||
	for leaf in ipairs(leaves) do
 | 
						for leaf in ipairs(leaves) do
 | 
				
			||||||
			minetest.swap_node(leaves[leaf], biome_lib.air)
 | 
								minetest.swap_node(leaves[leaf], {name = "air"})
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
	minetest.spawn_tree(pos, moretrees.jungletree_model)
 | 
						minetest.spawn_tree(pos, moretrees.jungletree_model)
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
@@ -299,10 +305,14 @@ function moretrees.grow_fir(pos)
 | 
				
			|||||||
	moretrees.fir_model.iterations = 7
 | 
						moretrees.fir_model.iterations = 7
 | 
				
			||||||
	moretrees.fir_model.random_level = 5
 | 
						moretrees.fir_model.random_level = 5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	minetest.swap_node(pos, biome_lib.air)
 | 
						minetest.swap_node(pos, {name = "air"})
 | 
				
			||||||
	local leaves = minetest.find_nodes_in_area({x = pos.x, y = pos.y, z = pos.z}, {x = pos.x, y = pos.y+5, z = pos.z}, "default:leaves")
 | 
						local leaves = minetest.find_nodes_in_area(
 | 
				
			||||||
 | 
							{x = pos.x, y = pos.y, z = pos.z},
 | 
				
			||||||
 | 
							{x = pos.x, y = pos.y+5, z = pos.z},
 | 
				
			||||||
 | 
							xcompat.materials.apple_leaves
 | 
				
			||||||
 | 
						)
 | 
				
			||||||
	for leaf in ipairs(leaves) do
 | 
						for leaf in ipairs(leaves) do
 | 
				
			||||||
		minetest.swap_node(leaves[leaf], biome_lib.air)
 | 
							minetest.swap_node(leaves[leaf], {name = "air"})
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
	minetest.spawn_tree(pos,moretrees.fir_model)
 | 
						minetest.spawn_tree(pos,moretrees.fir_model)
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
@@ -326,12 +336,29 @@ function moretrees.grow_fir_snow(pos)
 | 
				
			|||||||
	moretrees.fir_model.iterations = 2
 | 
						moretrees.fir_model.iterations = 2
 | 
				
			||||||
	moretrees.fir_model.random_level = 2
 | 
						moretrees.fir_model.random_level = 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	minetest.swap_node(pos, biome_lib.air)
 | 
						minetest.swap_node(pos, {name = "air"})
 | 
				
			||||||
	local leaves = minetest.find_nodes_in_area({x = pos.x, y = pos.y, z = pos.z}, {x = pos.x, y = pos.y+5, z = pos.z}, "default:leaves")
 | 
						local leaves = minetest.find_nodes_in_area(
 | 
				
			||||||
 | 
							{x = pos.x, y = pos.y, z = pos.z},
 | 
				
			||||||
 | 
							{x = pos.x, y = pos.y+5, z = pos.z},
 | 
				
			||||||
 | 
							xcompat.materials.apple_leaves
 | 
				
			||||||
 | 
						)
 | 
				
			||||||
	for leaf in ipairs(leaves) do
 | 
						for leaf in ipairs(leaves) do
 | 
				
			||||||
			minetest.swap_node(leaves[leaf], biome_lib.air)
 | 
								minetest.swap_node(leaves[leaf], {name = "air"})
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
	minetest.spawn_tree(pos,moretrees.fir_model)
 | 
						minetest.spawn_tree(pos,moretrees.fir_model)
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
print(S("[Moretrees] Loaded (2013-02-11)"))
 | 
					if moretrees.grow_legacy_saplings then
 | 
				
			||||||
 | 
						minetest.register_lbm({
 | 
				
			||||||
 | 
							name = "moretrees:grow_ongen_saplings",
 | 
				
			||||||
 | 
							label = "Grow legacy ongen saplings",
 | 
				
			||||||
 | 
							nodenames = {"group:moretrees_ongen"},
 | 
				
			||||||
 | 
							run_at_every_load = true,
 | 
				
			||||||
 | 
							action = function(pos)
 | 
				
			||||||
 | 
								minetest.log("info", "[moretrees] Starting growth timer for legacy ongen sapling at "..minetest.pos_to_string(pos, 0))
 | 
				
			||||||
 | 
								minetest.get_node_timer(pos):start(math.random(2, 10))
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					minetest.log("info", "[moretrees] Loading done")
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,73 +0,0 @@
 | 
				
			|||||||
# Translation by Xanthin
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### crafts.lua ###
 | 
					 | 
				
			||||||
Coconut Milk = Kokosnussmilch
 | 
					 | 
				
			||||||
Raw Coconut = Kokosnussfleisch
 | 
					 | 
				
			||||||
Acorn Muffin batter = Eichelmuffinteig
 | 
					 | 
				
			||||||
Acorn Muffin = Eichelmuffin
 | 
					 | 
				
			||||||
Roasted Spruce Cone Nuts = Geroestete Fichtenzapfen
 | 
					 | 
				
			||||||
Roasted Pine Cone Nuts = Geroestete Kiefernzapfen
 | 
					 | 
				
			||||||
Roasted Fir Cone Nuts = Geroestete Tannenzapfen
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### node_defs.lua ###
 | 
					 | 
				
			||||||
Beech Tree Trunk = Buchenstamm
 | 
					 | 
				
			||||||
Apple Tree Trunk = Apfelbaumstamm
 | 
					 | 
				
			||||||
Oak Tree Trunk = Eichenstamm
 | 
					 | 
				
			||||||
Giant Sequoia Trunk = Riesenmammutbaumstamm
 | 
					 | 
				
			||||||
Birch Tree Trunk = Birkenstamm
 | 
					 | 
				
			||||||
Palm Tree Trunk = Palmenstamm
 | 
					 | 
				
			||||||
Spruce Tree Trunk = Fichtenstamm
 | 
					 | 
				
			||||||
Pine Tree Trunk = Kiefernstamm
 | 
					 | 
				
			||||||
Willow Tree Trunk = Weidenstamm
 | 
					 | 
				
			||||||
Rubber Tree Trunk = Gummibaumstamm
 | 
					 | 
				
			||||||
Jungle Tree Trunk = Tropenbaumstamm
 | 
					 | 
				
			||||||
Douglas Fir Trunk = Douglasienstamm
 | 
					 | 
				
			||||||
Beech Tree Planks = Buchebretter
 | 
					 | 
				
			||||||
Apple Tree Planks = Apfelbaumbretter
 | 
					 | 
				
			||||||
Oak Tree Planks = Eichenbretter
 | 
					 | 
				
			||||||
Giant Sequoia Planks = Riesenmammutbaumbretter
 | 
					 | 
				
			||||||
Birch Tree Planks = Birkebretter
 | 
					 | 
				
			||||||
Palm Tree Planks = Palmenbretter
 | 
					 | 
				
			||||||
Spruce Tree Planks = Fichtenbretter
 | 
					 | 
				
			||||||
Pine Tree Planks = Kiefernbretter
 | 
					 | 
				
			||||||
Willow Tree Planks = Weidenbretter
 | 
					 | 
				
			||||||
Rubber Tree Planks = Gummibaumbretter
 | 
					 | 
				
			||||||
Jungle Tree Planks = Tropenholzbretter
 | 
					 | 
				
			||||||
Douglas Fir Planks = Douglasienbretter
 | 
					 | 
				
			||||||
Beech Tree Sapling = Buchesetzling
 | 
					 | 
				
			||||||
Apple Tree Sapling = Apfelbaumsetzling
 | 
					 | 
				
			||||||
Oak Tree Sapling = Eichensetzling
 | 
					 | 
				
			||||||
Giant Sequoia Sapling = Riesenmammutbaumsetzling
 | 
					 | 
				
			||||||
Birch Tree Sapling = Birkensetzling
 | 
					 | 
				
			||||||
Palm Tree Sapling = Palmensetzling
 | 
					 | 
				
			||||||
Spruce Tree Sapling = Fichtensetzling
 | 
					 | 
				
			||||||
Pine Tree Sapling = Kiefernsetzling
 | 
					 | 
				
			||||||
Willow Tree Sapling = Weidensetzling
 | 
					 | 
				
			||||||
Rubber Tree Sapling = Gummibaumsetzling
 | 
					 | 
				
			||||||
Jungle Tree Sapling = Tropenbaumsetzling
 | 
					 | 
				
			||||||
Douglas Fir Sapling = Douglasiensetzling
 | 
					 | 
				
			||||||
Beech Tree Leaves = Buchenlaub
 | 
					 | 
				
			||||||
Apple Tree Leaves = Apfelbaumlaub
 | 
					 | 
				
			||||||
Oak Tree Leaves = Eichenlaub
 | 
					 | 
				
			||||||
Giant Sequoia Leaves = Riesenmammutbaumlaub
 | 
					 | 
				
			||||||
Birch Tree Leaves = Birkenlaub
 | 
					 | 
				
			||||||
Palm Tree Leaves = Palmenlaub
 | 
					 | 
				
			||||||
Spruce Tree Leaves = Fichtennadeln
 | 
					 | 
				
			||||||
Pine Tree Leaves = Kiefernnadeln
 | 
					 | 
				
			||||||
Willow Tree Leaves = Weidenlaub
 | 
					 | 
				
			||||||
Rubber Tree Leaves = Gummibaumlaub
 | 
					 | 
				
			||||||
Jungle Tree Leaves = Tropenbaumlaub
 | 
					 | 
				
			||||||
Douglas Fir Leaves = Douglasiennadeln
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Acorn = Eichel
 | 
					 | 
				
			||||||
Coconut = Kokosnuss
 | 
					 | 
				
			||||||
Spruce Cone = Fichtenzapfen
 | 
					 | 
				
			||||||
Pine Cone = Kiefernzapfen
 | 
					 | 
				
			||||||
Fir Cone = Tannenzapfen
 | 
					 | 
				
			||||||
Jungle Sapling = Tropenbaumsetzling
 | 
					 | 
				
			||||||
Jungle Tree Leaves (Yellow) = Tropenbaumlaub (gelb)
 | 
					 | 
				
			||||||
Jungle Tree Leaves (Red) = Tropenbaumlaub (rot)
 | 
					 | 
				
			||||||
Douglas Fir Leaves (Bright) = Douglasiennadeln (breit)
 | 
					 | 
				
			||||||
Rubber Tree Trunk (Empty) = Gummibaumstamm (leer)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[Moretrees] Loaded (2013-02-11) = [Moretrees] geladen (2013-02-11)
 | 
					 | 
				
			||||||
							
								
								
									
										100
									
								
								locale/es.txt
									
									
									
									
									
								
							
							
						
						
									
										100
									
								
								locale/es.txt
									
									
									
									
									
								
							@@ -1,100 +0,0 @@
 | 
				
			|||||||
# Traducido por Carlos Barraza
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### crafts.lua ###
 | 
					 | 
				
			||||||
Coconut Milk = Leche de Coco
 | 
					 | 
				
			||||||
Raw Coconut = Coco crudo
 | 
					 | 
				
			||||||
Acorn Muffin batter =  Masa de Mollete de Bellota
 | 
					 | 
				
			||||||
Acorn Muffin = Mollete de Bellota
 | 
					 | 
				
			||||||
Roasted Spruce Cone Nuts = Cono de Picea Tostado
 | 
					 | 
				
			||||||
Roasted Pine Cone Nuts = Cono de Pino Tostado
 | 
					 | 
				
			||||||
Roasted Fir Cone Nuts = Cono de Abeto Tostado
 | 
					 | 
				
			||||||
Roasted Cedar Cone Nuts = Coco de Alamo Tostado
 | 
					 | 
				
			||||||
Date = Datilera
 | 
					 | 
				
			||||||
Date & nut snack = Datilera y Nueces
 | 
					 | 
				
			||||||
Date-nut cake batter = Pasta de torta de Datilera
 | 
					 | 
				
			||||||
Date-nut cake = Pastel de Datilera
 | 
					 | 
				
			||||||
Date-nut energy bar = Barra energetica de Datilera
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### date_palm.lua ###
 | 
					 | 
				
			||||||
Dates = Datilera
 | 
					 | 
				
			||||||
Date Stem = Tallo de Datilera
 | 
					 | 
				
			||||||
Date Flowers = Flores de Datilera
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### node_defs.lua ###
 | 
					 | 
				
			||||||
Beech Tree Trunk = Tronco de Arbol de Haya
 | 
					 | 
				
			||||||
Apple Tree Trunk = Tronco de Arbol de Manzana
 | 
					 | 
				
			||||||
Oak Tree Trunk = Tronco de Arbol de Roble
 | 
					 | 
				
			||||||
Giant Sequoia Trunk = Tronco de Sequoia Gigante
 | 
					 | 
				
			||||||
Birch Tree Trunk = Tronco de Arbol de Abedul
 | 
					 | 
				
			||||||
Palm Tree Trunk = Tronco de Palmera
 | 
					 | 
				
			||||||
Spruce Tree Trunk = Tronco de Arbol de Abeto
 | 
					 | 
				
			||||||
Willow Tree Trunk = Tronco de Arbol de Sauce
 | 
					 | 
				
			||||||
Rubber Tree Trunk = Tronco de Arbol de Arbol de Goma
 | 
					 | 
				
			||||||
Jungle Tree = Tronco de Arbol de Arbol de la Selva
 | 
					 | 
				
			||||||
Douglas Fir Trunk = Tronco de Arbol de Abeto de Douglas
 | 
					 | 
				
			||||||
Cedar Tree Trunk = Tronco de Arbol de Cedro
 | 
					 | 
				
			||||||
Date Palm Tree Trunk = Tronco de Palmera Datilera
 | 
					 | 
				
			||||||
Acacia Tree Trunk = Tronco de Arbol de Acacia
 | 
					 | 
				
			||||||
Poplar Tree Trunk = Tronco de Arbol de Alamo
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Beech Tree Planks = Madera de Arbol de Haya
 | 
					 | 
				
			||||||
Apple Tree Planks = Madera de Arbol de Manzana
 | 
					 | 
				
			||||||
Oak Tree Planks = Madera de Arbol de Roble
 | 
					 | 
				
			||||||
Giant Sequoia Planks = Madera de Sequoia Gigante
 | 
					 | 
				
			||||||
Birch Tree Planks = Madera de Arbol de Abedul
 | 
					 | 
				
			||||||
Palm Tree Planks = Madera de Palmera
 | 
					 | 
				
			||||||
Spruce Tree Planks = Madera de Arbol de Abeto
 | 
					 | 
				
			||||||
Willow Tree Planks = Madera de Arbol de Sauce
 | 
					 | 
				
			||||||
Rubber Tree Planks = Madera de Arbol de Arbol de Goma
 | 
					 | 
				
			||||||
Jungle Planks = Madera de Arbol de Arbol de la Selva
 | 
					 | 
				
			||||||
Douglas Fir Planks = Madera de Arbol de Abeto de Douglas
 | 
					 | 
				
			||||||
Cedar Tree Planks = Madera de Arbol de Cedro
 | 
					 | 
				
			||||||
Date Palm Tree Planks = Madera de Palmera Datilera
 | 
					 | 
				
			||||||
Acacia Tree Planks = Madera de Arbol de Acacia
 | 
					 | 
				
			||||||
Poplar Tree Planks = Madera de Arbol de Alamo
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Beech Tree Sapling = Retoño de Arbol de Haya
 | 
					 | 
				
			||||||
Apple Tree Sapling = Retoño de Arbol de Manzana
 | 
					 | 
				
			||||||
Oak Tree Sapling = Retoño de Arbol de Roble
 | 
					 | 
				
			||||||
Giant Sequoia Sapling = Retoño de Arbol de Sequoia Gigante
 | 
					 | 
				
			||||||
Birch Tree Sapling = Retoño de Arbol de Abedul
 | 
					 | 
				
			||||||
Palm Tree Sapling = Retoño de Palmera
 | 
					 | 
				
			||||||
Spruce Tree Sapling = Retoño de Arbol de Abeto
 | 
					 | 
				
			||||||
Willow Tree Sapling = Retoño de Arbol de Sauce
 | 
					 | 
				
			||||||
Rubber Tree Sapling = Retoño de Arbol de Arbol de Goma
 | 
					 | 
				
			||||||
Jungle Sapling = Retoño de Arbol de Arbol de la Selva
 | 
					 | 
				
			||||||
Douglas Fir Sapling = Retoño de Arbol de Abeto de Douglas
 | 
					 | 
				
			||||||
Cedar Tree Sapling = Retoño de Arbol de Cedro
 | 
					 | 
				
			||||||
Date Palm Tree Tree Sapling = Retoño de Palmera Datilera
 | 
					 | 
				
			||||||
Acacia Tree Sapling = Retoño de Arbol de Acacia
 | 
					 | 
				
			||||||
Poplar Tree Sapling = Retoño de Arbol de Alamo
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Beech Tree Leaves = Hojas de Arbol de Haya
 | 
					 | 
				
			||||||
Apple Tree Leaves = Hojas de Arbol de Manzana
 | 
					 | 
				
			||||||
Oak Tree Leaves = Hojas de Arbol de Roble
 | 
					 | 
				
			||||||
Giant Sequoia Leaves = Hojas de Sequoia Gigante
 | 
					 | 
				
			||||||
Birch Tree Leaves = Hojas de Arbol de Abedul
 | 
					 | 
				
			||||||
Palm Tree Leaves = Hojas de Palmera
 | 
					 | 
				
			||||||
Spruce Tree Leaves = Hojas de Arbol de Abeto
 | 
					 | 
				
			||||||
Willow Tree Leaves = Hojas de Arbol de Sauce
 | 
					 | 
				
			||||||
Rubber Tree Leaves = Hojas de Arbol de Arbol de Goma
 | 
					 | 
				
			||||||
Jungle Leaves = Hojas de Arbol de Arbol de la Selva
 | 
					 | 
				
			||||||
Douglas Fir Leaves = Hojas de Arbol de Abeto de Douglas
 | 
					 | 
				
			||||||
Cedar Tree Leaves = Hojas de Arbol de Cedro
 | 
					 | 
				
			||||||
Date Palm Tree Tree Leaves = Hojas de Palmera Datilera
 | 
					 | 
				
			||||||
Acacia Tree Leaves = Hojas de Arbol de Acacia
 | 
					 | 
				
			||||||
Poplar Tree Leaves = Hojas de Arbol de Alamo
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Acorn = Bellota
 | 
					 | 
				
			||||||
Coconut = Coco
 | 
					 | 
				
			||||||
Spruce Cone = Coco de Picea
 | 
					 | 
				
			||||||
Pine Cone = Coco de Pino
 | 
					 | 
				
			||||||
Fir Cone = Coco de Abeto
 | 
					 | 
				
			||||||
Cedar Cone = Coco de Alamo
 | 
					 | 
				
			||||||
Jungle Sapling = Retoño de Arbol de la Selva
 | 
					 | 
				
			||||||
Jungle Tree Leaves (Yellow) = Hojas de Arbol de la Selva (Amarilla)
 | 
					 | 
				
			||||||
Jungle Tree Leaves (Red) = Hojas de Arbol de la Selva (Roja)
 | 
					 | 
				
			||||||
Douglas Fir Leaves (Bright) = Hojas de Arbol de Abeto de Douglas (Brillante)
 | 
					 | 
				
			||||||
Rubber Tree Trunk (Empty) = Tronco de Arbol de Goma (Vacio)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[Moretrees] Loaded (2013-02-11) = [Masarboles] Cargado
 | 
					 | 
				
			||||||
@@ -1,74 +0,0 @@
 | 
				
			|||||||
# Traduction par Yoan31
 | 
					 | 
				
			||||||
# 
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### crafts.lua ###
 | 
					 | 
				
			||||||
Coconut Milk = Lait de Coco
 | 
					 | 
				
			||||||
Raw Coconut = Noix de Coco Crue
 | 
					 | 
				
			||||||
Acorn Muffin batter = Pate à Muffins au Gland
 | 
					 | 
				
			||||||
Acorn Muffin = Muffins au Gland
 | 
					 | 
				
			||||||
Roasted Spruce Cone Nuts = Noix de Cône de Sapin Roties
 | 
					 | 
				
			||||||
Roasted Pine Cone Nuts = Noix de Pomme de pin Roties
 | 
					 | 
				
			||||||
Roasted Fir Cone Nuts = Noix de Cône de Sapin Roties
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### node_defs.lua ###
 | 
					 | 
				
			||||||
Beech Tree Trunk = Tronc d'Arbre de Hêtre
 | 
					 | 
				
			||||||
Apple Tree Trunk = Tronc d'Arbre de Pommier
 | 
					 | 
				
			||||||
Oak Tree Trunk = Tronc d'Arbre de chêne
 | 
					 | 
				
			||||||
Giant Sequoia Trunk = Tronc d'Arbre de Séquoia Géant
 | 
					 | 
				
			||||||
Birch Tree Trunk = Tronc d'Arbre de bouleau
 | 
					 | 
				
			||||||
Palm Tree Trunk = Tronc d'Arbre de Palmier
 | 
					 | 
				
			||||||
Spruce Tree Trunk = Tronc d'Arbre d'Epicéa
 | 
					 | 
				
			||||||
Pine Tree Trunk = Tronc d'Arbre de Pin
 | 
					 | 
				
			||||||
Willow Tree Trunk = Tronc d'Arbre de Saule
 | 
					 | 
				
			||||||
Rubber Tree Trunk = Tronc d'Arbre a Caoutchouc
 | 
					 | 
				
			||||||
Jungle Tree Trunk = Tronc d'Arbre de la Jungle
 | 
					 | 
				
			||||||
Douglas Fir Trunk = Tronc de Sapin de Douglas
 | 
					 | 
				
			||||||
Beech Tree Planks = Planches de Hêtre
 | 
					 | 
				
			||||||
Apple Tree Planks = Planches de Pommier
 | 
					 | 
				
			||||||
Oak Tree Planks = Planches de Chêne
 | 
					 | 
				
			||||||
Giant Sequoia Planks = Planches de d'Arbre de Séquoia Géant
 | 
					 | 
				
			||||||
Birch Tree Planks = Planches d'Arbre de bouleau
 | 
					 | 
				
			||||||
Palm Tree Planks = Planches d'Arbre de Palmier
 | 
					 | 
				
			||||||
Spruce Tree Planks = Planches d'Arbre d'Epicéa
 | 
					 | 
				
			||||||
Pine Tree Planks = Planches d'Arbre de Pin
 | 
					 | 
				
			||||||
Willow Tree Planks = Planches d'Arbre de Saule
 | 
					 | 
				
			||||||
Rubber Tree Planks = Planches d'Arbre a Caoutchouc
 | 
					 | 
				
			||||||
Jungle Tree Planks = Planches d'Arbre de la Jungle
 | 
					 | 
				
			||||||
Douglas Fir Planks = Planches de Sapin de Douglas
 | 
					 | 
				
			||||||
Beech Tree Sapling = Pousse d'Arbre de Hêtre
 | 
					 | 
				
			||||||
Apple Tree Sapling = Pousse d'Arbre de Pommier
 | 
					 | 
				
			||||||
Oak Tree Sapling = Pousse d'Arbre de chêne
 | 
					 | 
				
			||||||
Giant Sequoia Sapling = Pousse d'Arbre de Séquoia Géant
 | 
					 | 
				
			||||||
Birch Tree Sapling = Pousse d'Arbre de bouleau
 | 
					 | 
				
			||||||
Palm Tree Sapling = Pousse d'Arbre de Palmier
 | 
					 | 
				
			||||||
Spruce Tree Sapling = Pousse d'Arbre d'Epicéa
 | 
					 | 
				
			||||||
Pine Tree Sapling = Pousse d'Arbre de Pin
 | 
					 | 
				
			||||||
Willow Tree Sapling = Pousse d'Arbre de Saule
 | 
					 | 
				
			||||||
Rubber Tree Sapling = Pousse d'Arbre a Caoutchouc
 | 
					 | 
				
			||||||
Jungle Tree Sapling = Pousse d'Arbre de la Jungle
 | 
					 | 
				
			||||||
Douglas Fir Sapling = Pousse de Sapin de Douglas
 | 
					 | 
				
			||||||
Beech Tree Leaves = Feuilles d'Arbre de Hêtre
 | 
					 | 
				
			||||||
Apple Tree Leaves = Feuilles d'Arbre de Pommier
 | 
					 | 
				
			||||||
Oak Tree Leaves = Feuilles d'Arbre de chêne
 | 
					 | 
				
			||||||
Giant Sequoia Leaves = Feuilles d'Arbre de Séquoia Géant
 | 
					 | 
				
			||||||
Birch Tree Leaves = Feuilles d'Arbre de bouleau
 | 
					 | 
				
			||||||
Palm Tree Leaves = Feuilles d'Arbre de Palmier
 | 
					 | 
				
			||||||
Spruce Tree Leaves = Feuilles d'Arbre d'Epicéa
 | 
					 | 
				
			||||||
Pine Tree Leaves = Feuilles d'Arbre de Pin
 | 
					 | 
				
			||||||
Willow Tree Leaves = Feuilles d'Arbre de Saule
 | 
					 | 
				
			||||||
Rubber Tree Leaves = Feuilles d'Arbre a Caoutchouc
 | 
					 | 
				
			||||||
Jungle Tree Leaves = Feuilles d'Arbre de la Jungle
 | 
					 | 
				
			||||||
Douglas Fir Leaves = Feuilles de Sapin de Douglas
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Acorn = Gland
 | 
					 | 
				
			||||||
Coconut = Noix de Coco
 | 
					 | 
				
			||||||
Spruce Cone = Cône de Sapin
 | 
					 | 
				
			||||||
Pine Cone = Pomme de Pin
 | 
					 | 
				
			||||||
Fir Cone = Pomme de Sapin
 | 
					 | 
				
			||||||
Jungle Sapling = Pousse d'Arbre de la Jungle
 | 
					 | 
				
			||||||
Jungle Tree Leaves (Yellow) = Feuille d'Arbre de la Jungle (Jaune)
 | 
					 | 
				
			||||||
Jungle Tree Leaves (Red) =  Feuille d'Arbre de la Jungle (Rouge)
 | 
					 | 
				
			||||||
Douglas Fir Leaves (Bright) = Feuille de Sapin de Douglas (Brillant)
 | 
					 | 
				
			||||||
Rubber Tree Trunk (Empty) = Tronc d'Arbre en Caoutchouc (Vide)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[Moretrees] Loaded (2013-02-11) = 
 | 
					 | 
				
			||||||
							
								
								
									
										220
									
								
								locale/moretrees.de.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										220
									
								
								locale/moretrees.de.tr
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,220 @@
 | 
				
			|||||||
 | 
					# textdomain: moretrees
 | 
				
			||||||
 | 
					# Translation by Xanthin and heavygale
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### cocos_palm.lua ###
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Coconut=Kokosnuss
 | 
				
			||||||
 | 
					Coconut Flower=Kokosnussblüte
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### crafts.lua ###
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Acorn Muffin=Eichelmuffin
 | 
				
			||||||
 | 
					Acorn Muffin batter=Eichelmuffinteig
 | 
				
			||||||
 | 
					Coconut Milk=Kokosnussmilch
 | 
				
			||||||
 | 
					Date=Dattel
 | 
				
			||||||
 | 
					Date & nut snack=Dattel & Nuss-Snack
 | 
				
			||||||
 | 
					Date-nut cake=Dattelnusskuchen
 | 
				
			||||||
 | 
					Date-nut cake batter=Dattelnuss-Kuchenteig
 | 
				
			||||||
 | 
					Date-nut energy bar=Dattelnuss-Energieriegel
 | 
				
			||||||
 | 
					Raw Coconut=Kokosnussfleisch
 | 
				
			||||||
 | 
					Roasted Cedar Cone Nuts=Geröstete Zedernzapfenkerne
 | 
				
			||||||
 | 
					Roasted Fir Cone Nuts=Geroestete Tannenzapfenkerne
 | 
				
			||||||
 | 
					Roasted Spruce Cone Nuts=Geroestete Fichtenzapfenkerne
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### date_palm.lua ###
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Date Flowers=Dattelblüten
 | 
				
			||||||
 | 
					Date Stem=Dattelstamm
 | 
				
			||||||
 | 
					Dates=Datteln
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### node_defs.lua ###
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@1 (fast growth)=@1 (schnelles Wachstum)
 | 
				
			||||||
 | 
					Acorn=Eichel
 | 
				
			||||||
 | 
					Apple Tree=Apfelbaum
 | 
				
			||||||
 | 
					Apple Tree Fence=Apfelbaum-Zaun
 | 
				
			||||||
 | 
					Apple Tree Fence Gate=Apfelbaum-Tor
 | 
				
			||||||
 | 
					Apple Tree Fence Rail=Apfelbaum-Schiene
 | 
				
			||||||
 | 
					Apple Tree Leaves=Apfelbaumlaub
 | 
				
			||||||
 | 
					Apple Tree Planks=Apfelbaumbretter
 | 
				
			||||||
 | 
					Apple Tree Planks Slab=Apfelbaumplatte
 | 
				
			||||||
 | 
					Apple Tree Planks Stair=Apfelbaumstufe
 | 
				
			||||||
 | 
					Apple Tree Sapling=Apfelbaumsetzling
 | 
				
			||||||
 | 
					Apple Tree Trunk=Apfelbaumstamm
 | 
				
			||||||
 | 
					Apple Tree Trunk Slab=Apfelbaumstammplatte
 | 
				
			||||||
 | 
					Apple Tree Trunk Stair=Apfelbaumstammstufe
 | 
				
			||||||
 | 
					Beech Tree=Buche
 | 
				
			||||||
 | 
					Beech Tree Fence=Buchenholz-Zaun
 | 
				
			||||||
 | 
					Beech Tree Fence Gate=Buchenholz-Tor
 | 
				
			||||||
 | 
					Beech Tree Fence Rail=Buchenholz-Schiene
 | 
				
			||||||
 | 
					Beech Tree Leaves=Buchenlaub
 | 
				
			||||||
 | 
					Beech Tree Planks=Buchenholzbretter
 | 
				
			||||||
 | 
					Beech Tree Planks Slab=Buchenholzplatte
 | 
				
			||||||
 | 
					Beech Tree Planks Stair=Buchenholzstufe 
 | 
				
			||||||
 | 
					Beech Tree Sapling=Buchesetzling
 | 
				
			||||||
 | 
					Beech Tree Trunk=Buchenstamm
 | 
				
			||||||
 | 
					Beech Tree Trunk Slab=Buchenstammplatte
 | 
				
			||||||
 | 
					Beech Tree Trunk Stair=Buchenstammstufe
 | 
				
			||||||
 | 
					Birch Tree=Birke
 | 
				
			||||||
 | 
					Birch Tree Fence=Birkenholz-Zaun
 | 
				
			||||||
 | 
					Birch Tree Fence Gate=Birkenholz-Tor
 | 
				
			||||||
 | 
					Birch Tree Fence Rail=Birkenholz-Schiene
 | 
				
			||||||
 | 
					Birch Tree Leaves=Birkenlaub
 | 
				
			||||||
 | 
					Birch Tree Planks=Birkenbretter
 | 
				
			||||||
 | 
					Birch Tree Planks Slab=Birkenholzplatte
 | 
				
			||||||
 | 
					Birch Tree Planks Stair=Birkeholzstufe
 | 
				
			||||||
 | 
					Birch Tree Sapling=Birkensetzling
 | 
				
			||||||
 | 
					Birch Tree Trunk=Birkenstamm
 | 
				
			||||||
 | 
					Birch Tree Trunk Slab=Birkenstammplatte
 | 
				
			||||||
 | 
					Birch Tree Trunk Stair=Birkenstammstufe
 | 
				
			||||||
 | 
					Cedar Cone=Zedernzapfen
 | 
				
			||||||
 | 
					Cedar Tree=Zeder
 | 
				
			||||||
 | 
					Cedar Tree Fence=Zedernholz-Zaun
 | 
				
			||||||
 | 
					Cedar Tree Fence Gate=Zedernholz-Tor
 | 
				
			||||||
 | 
					Cedar Tree Fence Rail=Zedernholz-Schiene
 | 
				
			||||||
 | 
					Cedar Tree Leaves=Zederblätter
 | 
				
			||||||
 | 
					Cedar Tree Planks=Zedernholzbretter
 | 
				
			||||||
 | 
					Cedar Tree Planks Slab=Zedernholzplatte
 | 
				
			||||||
 | 
					Cedar Tree Planks Stair=Zedernholzstufe
 | 
				
			||||||
 | 
					Cedar Tree Sapling=Zedersetzling
 | 
				
			||||||
 | 
					Cedar Tree Trunk=Zederstamm
 | 
				
			||||||
 | 
					Cedar Tree Trunk Slab=Zederstammplatte
 | 
				
			||||||
 | 
					Cedar Tree Trunk Stair=Zederstamm Stufe
 | 
				
			||||||
 | 
					Date Palm Tree=Dattelpalme
 | 
				
			||||||
 | 
					Date Palm Tree Fence=Dattelpalmen-Zaun
 | 
				
			||||||
 | 
					Date Palm Tree Fence Gate=Dattelpalmen-Tor
 | 
				
			||||||
 | 
					Date Palm Tree Fence Rail=Dattelpalmen-Schiene
 | 
				
			||||||
 | 
					Date Palm Tree Leaves=Dattelpalmenblätter
 | 
				
			||||||
 | 
					Date Palm Tree Planks=Dattelpalmenbretter
 | 
				
			||||||
 | 
					Date Palm Tree Planks Slab=Dattelpalmenplatte
 | 
				
			||||||
 | 
					Date Palm Tree Planks Stair=Dattelpalmenstufe
 | 
				
			||||||
 | 
					Date Palm Tree Sapling=Dattelpalmensetzling
 | 
				
			||||||
 | 
					Date Palm Tree Trunk=Dattelpalmenstamm
 | 
				
			||||||
 | 
					Date Palm Tree Trunk Slab=Dattelpalmenstammplatte
 | 
				
			||||||
 | 
					Date Palm Tree Trunk Stair=Dattelpalmenstammstufe
 | 
				
			||||||
 | 
					Douglas Fir=Douglasie
 | 
				
			||||||
 | 
					Douglas Fir Fence=Douglasien-Zaun
 | 
				
			||||||
 | 
					Douglas Fir Fence Gate=Douglasien-Tor
 | 
				
			||||||
 | 
					Douglas Fir Fence Rail=Douglasien-Schiene
 | 
				
			||||||
 | 
					Douglas Fir Leaves=Douglasiennadeln
 | 
				
			||||||
 | 
					Douglas Fir Leaves (Bright)=Douglasiennadeln (breit)
 | 
				
			||||||
 | 
					Douglas Fir Planks=Douglasienbretter
 | 
				
			||||||
 | 
					Douglas Fir Planks Slab=Douglasienplatte
 | 
				
			||||||
 | 
					Douglas Fir Planks Stair=Douglasienstufe
 | 
				
			||||||
 | 
					Douglas Fir Sapling=Douglasiensetzling
 | 
				
			||||||
 | 
					Douglas Fir Trunk=Douglasienstamm
 | 
				
			||||||
 | 
					Douglas Fir Trunk Slab=Douglasienstammplatte
 | 
				
			||||||
 | 
					Douglas Fir Trunk Stair=Douglasienstammstufe
 | 
				
			||||||
 | 
					Fir Cone=Tannenzapfen
 | 
				
			||||||
 | 
					Giant Sequoia=Riesenmammutbaum
 | 
				
			||||||
 | 
					Giant Sequoia Fence=Riesenmammutbaum-Zaun
 | 
				
			||||||
 | 
					Giant Sequoia Fence Gate=Riesenmammutbaum-Tor
 | 
				
			||||||
 | 
					Giant Sequoia Fence Rail=Riesenmammutbaum-Schiene
 | 
				
			||||||
 | 
					Giant Sequoia Leaves=Riesenmammutbaumlaub
 | 
				
			||||||
 | 
					Giant Sequoia Planks=Riesenmammutbaumbretter
 | 
				
			||||||
 | 
					Giant Sequoia Planks Slab=Riesenmammutbaumplatte
 | 
				
			||||||
 | 
					Giant Sequoia Planks Stair=Riesenmammutbaumstufe
 | 
				
			||||||
 | 
					Giant Sequoia Sapling=Riesenmammutbaumsetzling
 | 
				
			||||||
 | 
					Giant Sequoia Trunk=Riesenmammutbaumstamm
 | 
				
			||||||
 | 
					Giant Sequoia Trunk Slab=Riesenmammutbaumstammplatte
 | 
				
			||||||
 | 
					Giant Sequoia Trunk Stair=Riesenmammutbaumstammstufe
 | 
				
			||||||
 | 
					Jungle Tree=Tropenbaum
 | 
				
			||||||
 | 
					Jungle Tree Fence=Tropenbaum-Zaun
 | 
				
			||||||
 | 
					Jungle Tree Fence Gate=Tropenbaum-Tor
 | 
				
			||||||
 | 
					Jungle Tree Fence Rail=Tropenbaum-Schiene
 | 
				
			||||||
 | 
					Jungle Tree Leaves=Tropenbaumlaub
 | 
				
			||||||
 | 
					Jungle Tree Leaves (@1)=Tropenbaumlaub (@1)
 | 
				
			||||||
 | 
					Jungle Tree Planks=Tropenholzbretter
 | 
				
			||||||
 | 
					Jungle Tree Planks Slab=Tropenholzplatte
 | 
				
			||||||
 | 
					Jungle Tree Planks Stair=Tropenholzstufe
 | 
				
			||||||
 | 
					Jungle Tree Sapling=Tropenbaumsetzling
 | 
				
			||||||
 | 
					Jungle Tree Trunk=Tropenbaumstamm
 | 
				
			||||||
 | 
					Jungle Tree Trunk Slab=Tropenbaumstammplatte
 | 
				
			||||||
 | 
					Jungle Tree Trunk Stair=Tropenbaumstammstufe
 | 
				
			||||||
 | 
					Oak Tree=Eiche
 | 
				
			||||||
 | 
					Oak Tree Fence=Eichenholz-Zaun
 | 
				
			||||||
 | 
					Oak Tree Fence Gate=Eichenholz-Tor
 | 
				
			||||||
 | 
					Oak Tree Fence Rail=Eichenholz-Schiene
 | 
				
			||||||
 | 
					Oak Tree Leaves=Eichenlaub
 | 
				
			||||||
 | 
					Oak Tree Planks=Eichenbretter
 | 
				
			||||||
 | 
					Oak Tree Planks Slab=Eichenholzplatte
 | 
				
			||||||
 | 
					Oak Tree Planks Stair=Eichenholzstufe
 | 
				
			||||||
 | 
					Oak Tree Sapling=Eichensetzling
 | 
				
			||||||
 | 
					Oak Tree Trunk=Eichenstamm
 | 
				
			||||||
 | 
					Oak Tree Trunk Slab=Eichenstammplatte
 | 
				
			||||||
 | 
					Oak Tree Trunk Stair=Eichenstammstufe
 | 
				
			||||||
 | 
					Palm Tree=Palme
 | 
				
			||||||
 | 
					Palm Tree Fence=Plamenholz-Zaun
 | 
				
			||||||
 | 
					Palm Tree Fence Gate=Plamenholz-Tor
 | 
				
			||||||
 | 
					Palm Tree Fence Rail=Plamenholz-Schiene
 | 
				
			||||||
 | 
					Palm Tree Leaves=Palmenlaub
 | 
				
			||||||
 | 
					Palm Tree Planks=Palmenbretter
 | 
				
			||||||
 | 
					Palm Tree Planks Slab=Plamenholzplatte
 | 
				
			||||||
 | 
					Palm Tree Planks Stair=Plamenholzstufe
 | 
				
			||||||
 | 
					Palm Tree Sapling=Palmensetzling
 | 
				
			||||||
 | 
					Palm Tree Trunk=Palmenstamm
 | 
				
			||||||
 | 
					Palm Tree Trunk Slab=Palmenstammplatte
 | 
				
			||||||
 | 
					Palm Tree Trunk Stair=Palmenstammstufe
 | 
				
			||||||
 | 
					Poplar Tree=Pappel
 | 
				
			||||||
 | 
					Poplar Tree Fence=Pappelholz-Zaun
 | 
				
			||||||
 | 
					Poplar Tree Fence Gate=Pappelholz-Tor
 | 
				
			||||||
 | 
					Poplar Tree Fence Rail=Pappelholz-Schiene
 | 
				
			||||||
 | 
					Poplar Tree Leaves=Pappelblätter
 | 
				
			||||||
 | 
					Poplar Tree Planks=Pappelholzbretter
 | 
				
			||||||
 | 
					Poplar Tree Planks Slab=Pappelholzsplatte
 | 
				
			||||||
 | 
					Poplar Tree Planks Stair=Pappelholzstufe
 | 
				
			||||||
 | 
					Poplar Tree Sapling=Pappelsetzling
 | 
				
			||||||
 | 
					Poplar Tree Trunk=Pappelstamm
 | 
				
			||||||
 | 
					Poplar Tree Trunk Slab=Pappelstammplatte
 | 
				
			||||||
 | 
					Poplar Tree Trunk Stair=Pappelstammstufe
 | 
				
			||||||
 | 
					Red=rot
 | 
				
			||||||
 | 
					Rubber Tree=Gummibaum
 | 
				
			||||||
 | 
					Rubber Tree Fence=Gummibaum-Zaun
 | 
				
			||||||
 | 
					Rubber Tree Fence Gate=Gummibaum-Tor
 | 
				
			||||||
 | 
					Rubber Tree Fence Rail=Gummibaum-Schiene
 | 
				
			||||||
 | 
					Rubber Tree Leaves=Gummibaumlaub
 | 
				
			||||||
 | 
					Rubber Tree Planks=Gummibaumbretter
 | 
				
			||||||
 | 
					Rubber Tree Planks Slab=Gummibaumplatte
 | 
				
			||||||
 | 
					Rubber Tree Planks Stair=Gummibaumstufe
 | 
				
			||||||
 | 
					Rubber Tree Sapling=Gummibaumsetzling
 | 
				
			||||||
 | 
					Rubber Tree Trunk=Gummibaumstamm
 | 
				
			||||||
 | 
					Rubber Tree Trunk (Empty)=Gummibaumstamm (leer)
 | 
				
			||||||
 | 
					Rubber Tree Trunk Slab=Gummibaumstammplatte
 | 
				
			||||||
 | 
					Rubber Tree Trunk Stair=Gummibaumstammstufe
 | 
				
			||||||
 | 
					Small poplar Tree Sapling=Kleiner Pappelsetzling
 | 
				
			||||||
 | 
					Spruce Cone=Fichtenzapfen
 | 
				
			||||||
 | 
					Spruce Tree=Fichte
 | 
				
			||||||
 | 
					Spruce Tree Fence=Fichtenholz-Zaun
 | 
				
			||||||
 | 
					Spruce Tree Fence Gate=Fichtenholz-Zaun
 | 
				
			||||||
 | 
					Spruce Tree Fence Rail=Fichtenholz-Schiene
 | 
				
			||||||
 | 
					Spruce Tree Leaves=Fichtennadeln
 | 
				
			||||||
 | 
					Spruce Tree Planks=Fichtenbretter
 | 
				
			||||||
 | 
					Spruce Tree Planks Slab=Fichtenholzplatte
 | 
				
			||||||
 | 
					Spruce Tree Planks Stair=Fichtenholzstufe
 | 
				
			||||||
 | 
					Spruce Tree Sapling=Fichtensetzling
 | 
				
			||||||
 | 
					Spruce Tree Trunk=Fichtenstamm
 | 
				
			||||||
 | 
					Spruce Tree Trunk Slab=Fichtenstammplatte
 | 
				
			||||||
 | 
					Spruce Tree Trunk Stair=Fichtenstammstufe
 | 
				
			||||||
 | 
					Willow Tree=Weide
 | 
				
			||||||
 | 
					Willow Tree Fence=Weidenholz-Zaun
 | 
				
			||||||
 | 
					Willow Tree Fence Gate=Weidenholz-Tor
 | 
				
			||||||
 | 
					Willow Tree Fence Rail=Weidenholz-Schiene
 | 
				
			||||||
 | 
					Willow Tree Leaves=Weidenlaub
 | 
				
			||||||
 | 
					Willow Tree Planks=Weidenbretter
 | 
				
			||||||
 | 
					Willow Tree Planks Slab=Weidenholzplatte
 | 
				
			||||||
 | 
					Willow Tree Planks Stair=Weidenholzstufe
 | 
				
			||||||
 | 
					Willow Tree Sapling=Weidensetzling
 | 
				
			||||||
 | 
					Willow Tree Trunk=Weidenstamm
 | 
				
			||||||
 | 
					Willow Tree Trunk Slab=Weidenstammplatte
 | 
				
			||||||
 | 
					Willow Tree Trunk Stair=Weidenstammstufe
 | 
				
			||||||
 | 
					Yellow=gelb
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# init.lua
 | 
				
			||||||
 | 
					Sapling=Setzling
 | 
				
			||||||
 | 
					Tree=Baum
 | 
				
			||||||
 | 
					Wooden Planks=Holzbretter
 | 
				
			||||||
 | 
					Leaves=Blätter
 | 
				
			||||||
 | 
					Wooden Fence=Holzzaun
 | 
				
			||||||
 | 
					Wooden Fence Rail=Holzschiene
 | 
				
			||||||
 | 
					Wooden Fence Gate=Holztor
 | 
				
			||||||
							
								
								
									
										220
									
								
								locale/moretrees.es.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										220
									
								
								locale/moretrees.es.tr
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,220 @@
 | 
				
			|||||||
 | 
					# textdomain: moretrees
 | 
				
			||||||
 | 
					# Translation by Carlos Barraza, improvements by David Leal.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### cocos_palm.lua ###
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Coconut=Coco
 | 
				
			||||||
 | 
					Coconut Flower=Flor de Coco
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### crafts.lua ###
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Acorn Muffin=Mollete de Bellota
 | 
				
			||||||
 | 
					Acorn Muffin batter= Masa de Mollete de Bellota
 | 
				
			||||||
 | 
					Coconut Milk=Leche de Coco
 | 
				
			||||||
 | 
					Date=Datilera
 | 
				
			||||||
 | 
					Date & nut snack=Datilera y Nueces
 | 
				
			||||||
 | 
					Date-nut cake=Pastel de Datilera
 | 
				
			||||||
 | 
					Date-nut cake batter=Pasta de torta de Datilera
 | 
				
			||||||
 | 
					Date-nut energy bar=Barra energetica de Datilera
 | 
				
			||||||
 | 
					Raw Coconut=Coco Crudo
 | 
				
			||||||
 | 
					Roasted Cedar Cone Nuts=Coco de Álamo Tostado
 | 
				
			||||||
 | 
					Roasted Fir Cone Nuts=Cono de Abeto Tostado
 | 
				
			||||||
 | 
					Roasted Spruce Cone Nuts=Cono de Picea Tostado
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### date_palm.lua ###
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Date Flowers=Flores de Datilera
 | 
				
			||||||
 | 
					Date Stem=Tallo de Datilera
 | 
				
			||||||
 | 
					Dates=Datilera
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### node_defs.lua ###
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@1 (fast growth)=@1 (crecimiento rápido)
 | 
				
			||||||
 | 
					Acorn=Bellota
 | 
				
			||||||
 | 
					Apple Tree=Árbol de manzana
 | 
				
			||||||
 | 
					Apple Tree Fence=Valla de manzano
 | 
				
			||||||
 | 
					Apple Tree Fence Gate=Puerta de Valla de Manzano
 | 
				
			||||||
 | 
					Apple Tree Fence Rail=Riel de Valla de Manzano
 | 
				
			||||||
 | 
					Apple Tree Leaves=Hojas de Árbol de Manzana
 | 
				
			||||||
 | 
					Apple Tree Planks=Madera de Árbol de Manzana
 | 
				
			||||||
 | 
					Apple Tree Planks Slab=Losa de Tablones de Manzano
 | 
				
			||||||
 | 
					Apple Tree Planks Stair=Escalera de Tablones de Manzano
 | 
				
			||||||
 | 
					Apple Tree Sapling=Retoño de Árbol de Manzana
 | 
				
			||||||
 | 
					Apple Tree Trunk=Tronco de Árbol de Manzana
 | 
				
			||||||
 | 
					Apple Tree Trunk Slab=Losa de Tronco de Manzano
 | 
				
			||||||
 | 
					Apple Tree Trunk Stair=Escalera de Tronco de Manzano
 | 
				
			||||||
 | 
					Beech Tree=Haya
 | 
				
			||||||
 | 
					Beech Tree Fence=Valla de Haya
 | 
				
			||||||
 | 
					Beech Tree Fence Gate=Puerta de Valla de Haya
 | 
				
			||||||
 | 
					Beech Tree Fence Rail=Riel de Valla de Haya
 | 
				
			||||||
 | 
					Beech Tree Leaves=Hojas de Arbol de Haya
 | 
				
			||||||
 | 
					Beech Tree Planks=Madera de Arbol de Haya
 | 
				
			||||||
 | 
					Beech Tree Planks Slab=Losa de Tablones de Haya
 | 
				
			||||||
 | 
					Beech Tree Planks Stair=Escalera de Tablones de Haya
 | 
				
			||||||
 | 
					Beech Tree Sapling=Retoño de Árbol de Haya
 | 
				
			||||||
 | 
					Beech Tree Trunk=Tronco de Árbol de Haya
 | 
				
			||||||
 | 
					Beech Tree Trunk Slab=Losa de Tronco de Haya
 | 
				
			||||||
 | 
					Beech Tree Trunk Stair=Escalera de Tronco de Haya
 | 
				
			||||||
 | 
					Birch Tree=Abedul
 | 
				
			||||||
 | 
					Birch Tree Fence=Valla de Abedul
 | 
				
			||||||
 | 
					Birch Tree Fence Gate=Puerta de Valla de Abedul
 | 
				
			||||||
 | 
					Birch Tree Fence Rail=Riel de Valla de Abedul
 | 
				
			||||||
 | 
					Birch Tree Leaves=Hojas de Arbol de Abedul
 | 
				
			||||||
 | 
					Birch Tree Planks=Madera de Arbol de Abedul
 | 
				
			||||||
 | 
					Birch Tree Planks Slab=Losa de Tablones de Abedul
 | 
				
			||||||
 | 
					Birch Tree Planks Stair=Escalera de Tablones de Abedul
 | 
				
			||||||
 | 
					Birch Tree Sapling=Retoño de Árbol de Abedul
 | 
				
			||||||
 | 
					Birch Tree Trunk=Tronco de Árbol de Abedul
 | 
				
			||||||
 | 
					Birch Tree Trunk Slab=Losa de Tronco de Abedul
 | 
				
			||||||
 | 
					Birch Tree Trunk Stair=Escalera de Tronco de Abedul
 | 
				
			||||||
 | 
					Cedar Cone=Coco de Álamo
 | 
				
			||||||
 | 
					Cedar Tree=Árbol de Cedro
 | 
				
			||||||
 | 
					Cedar Tree Fence=Valla de Árbol de Cedro
 | 
				
			||||||
 | 
					Cedar Tree Fence Gate=Puerta de Valla de Árbol de Cedro
 | 
				
			||||||
 | 
					Cedar Tree Fence Rail=Riel de Valla de Árbol de Cedro
 | 
				
			||||||
 | 
					Cedar Tree Leaves=Hojas de Árbol de Cedro
 | 
				
			||||||
 | 
					Cedar Tree Planks=Madera de Árbol de Cedro
 | 
				
			||||||
 | 
					Cedar Tree Planks Slab=Losa de Tablones de Árbol de Cedro
 | 
				
			||||||
 | 
					Cedar Tree Planks Stair=Escalera de Tablones de Árbol de Cedro
 | 
				
			||||||
 | 
					Cedar Tree Sapling=Retoño de Árbol de Cedro
 | 
				
			||||||
 | 
					Cedar Tree Trunk=Tronco de Árbol de Cedro
 | 
				
			||||||
 | 
					Cedar Tree Trunk Slab=Losa de Tronco de Árbol de Cedro
 | 
				
			||||||
 | 
					Cedar Tree Trunk Stair=Escalera de Tronco de Árbol de Cedro
 | 
				
			||||||
 | 
					Date Palm Tree=Palmera Datilera
 | 
				
			||||||
 | 
					Date Palm Tree Fence=Valla de Palmera Datilera
 | 
				
			||||||
 | 
					Date Palm Tree Fence Gate=Puerta de Valla de Palmera Datilera
 | 
				
			||||||
 | 
					Date Palm Tree Fence Rail=Riel de Valla de Palmera Datilera
 | 
				
			||||||
 | 
					Date Palm Tree Leaves=Hojas de Palmera Datilera
 | 
				
			||||||
 | 
					Date Palm Tree Planks=Madera de Palmera Datilera
 | 
				
			||||||
 | 
					Date Palm Tree Planks Slab=Losa de Tablones de Palmera Datilera
 | 
				
			||||||
 | 
					Date Palm Tree Planks Stair=Escalera de Tablones de Palmera Datilera
 | 
				
			||||||
 | 
					Date Palm Tree Sapling=Retoño de Palmera Datilera
 | 
				
			||||||
 | 
					Date Palm Tree Trunk=Tronco de Palmera Datilera
 | 
				
			||||||
 | 
					Date Palm Tree Trunk Slab=Losa de Tronco de Palmera Datilera
 | 
				
			||||||
 | 
					Date Palm Tree Trunk Stair=Escalera de Tronco de Palmera Datilera
 | 
				
			||||||
 | 
					Douglas Fir=Árbol de Abeto de Douglas
 | 
				
			||||||
 | 
					Douglas Fir Fence=Valla de Árbol de Abeto de Douglas
 | 
				
			||||||
 | 
					Douglas Fir Fence Gate=Puerta de Valla de Árbol de Abeto de Douglas
 | 
				
			||||||
 | 
					Douglas Fir Fence Rail=Riel de Valla de Árbol de Abeto de Douglas
 | 
				
			||||||
 | 
					Douglas Fir Leaves=Hojas de Árbol de Abeto de Douglas
 | 
				
			||||||
 | 
					Douglas Fir Leaves (Bright)=Hojas de Árbol de Abeto de Douglas (Brillante)
 | 
				
			||||||
 | 
					Douglas Fir Planks=Madera de Árbol de Abeto de Douglas
 | 
				
			||||||
 | 
					Douglas Fir Planks Slab=Losa de Tablones de Árbol de Abeto de Douglas
 | 
				
			||||||
 | 
					Douglas Fir Planks Stair=Escalera de Tablones de Árbol de Abeto de Douglas
 | 
				
			||||||
 | 
					Douglas Fir Sapling=Retoño de Árbol de Abeto de Douglas
 | 
				
			||||||
 | 
					Douglas Fir Trunk=Tronco de Árbol de Abeto de Douglas
 | 
				
			||||||
 | 
					Douglas Fir Trunk Slab=Losa de Tronco de Árbol de Abeto de Douglas
 | 
				
			||||||
 | 
					Douglas Fir Trunk Stair=Escalera de Tronco de Árbol de Abeto de Douglas
 | 
				
			||||||
 | 
					Fir Cone=Coco de Abeto
 | 
				
			||||||
 | 
					Giant Sequoia=Secuoya Gigante
 | 
				
			||||||
 | 
					Giant Sequoia Fence=Valla de Secuoya Gigante
 | 
				
			||||||
 | 
					Giant Sequoia Fence Gate=Puerta de Valla de Secuoya Gigante
 | 
				
			||||||
 | 
					Giant Sequoia Fence Rail=Riel de Valla de Secuoya Gigante
 | 
				
			||||||
 | 
					Giant Sequoia Leaves=Hojas de Secuoya Gigante
 | 
				
			||||||
 | 
					Giant Sequoia Planks=Madera de Secuoya Gigante
 | 
				
			||||||
 | 
					Giant Sequoia Planks Slab=Losa de Tablones de Secuoya Gigante
 | 
				
			||||||
 | 
					Giant Sequoia Planks Stair=Escalera de Tablones de Secuoya Gigante
 | 
				
			||||||
 | 
					Giant Sequoia Sapling=Retoño de Árbol de Secuoya Gigante
 | 
				
			||||||
 | 
					Giant Sequoia Trunk=Tronco de Secuoya Gigante
 | 
				
			||||||
 | 
					Giant Sequoia Trunk Slab=Losa de Tronco de Secuoya Gigante
 | 
				
			||||||
 | 
					Giant Sequoia Trunk Stair=Escalera de Tronco de Secuoya Gigante
 | 
				
			||||||
 | 
					Jungle Tree=Árbol de la Selva
 | 
				
			||||||
 | 
					Jungle Tree Fence=Valla de Árbol de la Selva
 | 
				
			||||||
 | 
					Jungle Tree Fence Gate=Puerta de Valla de Árbol de la Selva
 | 
				
			||||||
 | 
					Jungle Tree Fence Rail=Riel de Valla de Árbol de la Selva
 | 
				
			||||||
 | 
					Jungle Tree Leaves=Hojas de Árbol de la Selva
 | 
				
			||||||
 | 
					Jungle Tree Leaves (@1)=Hojas de Árbol de la Selva (@1)
 | 
				
			||||||
 | 
					Jungle Tree Planks=Madera de Árbol de la Selva
 | 
				
			||||||
 | 
					Jungle Tree Planks Slab=Losa de Tablones de Árbol de la Selva
 | 
				
			||||||
 | 
					Jungle Tree Planks Stair=Escalera de Tablones de Árbol de la Selva
 | 
				
			||||||
 | 
					Jungle Tree Sapling=Retoño de Árbol de la Selva
 | 
				
			||||||
 | 
					Jungle Tree Trunk=Tronco de Árbol de Árbol de la Selva
 | 
				
			||||||
 | 
					Jungle Tree Trunk Slab=Losa de Tronco de Árbol de la Selva
 | 
				
			||||||
 | 
					Jungle Tree Trunk Stair=Escalera de Tronco de Árbol de la Selva
 | 
				
			||||||
 | 
					Oak Tree=Árbol de Roble
 | 
				
			||||||
 | 
					Oak Tree Fence=Valla de Árbol de Roble
 | 
				
			||||||
 | 
					Oak Tree Fence Gate=Puerta de Valla de Árbol de Roble
 | 
				
			||||||
 | 
					Oak Tree Fence Rail=Riel de Valla de Árbol de Roble
 | 
				
			||||||
 | 
					Oak Tree Leaves=Hojas de Árbol de Roble
 | 
				
			||||||
 | 
					Oak Tree Planks=Madera de Árbol de Roble
 | 
				
			||||||
 | 
					Oak Tree Planks Slab=Losa de Tablones de Árbol de Roble
 | 
				
			||||||
 | 
					Oak Tree Planks Stair=Escalera de Tablones de Árbol de Roble
 | 
				
			||||||
 | 
					Oak Tree Sapling=Retoño de Árbol de Roble
 | 
				
			||||||
 | 
					Oak Tree Trunk=Tronco de Árbol de Roble
 | 
				
			||||||
 | 
					Oak Tree Trunk Slab=Losa de Tronco de Árbol de Roble
 | 
				
			||||||
 | 
					Oak Tree Trunk Stair=Escalera de Tronco de Árbol de Roble
 | 
				
			||||||
 | 
					Palm Tree=Palmera
 | 
				
			||||||
 | 
					Palm Tree Fence=Valla de Palmera
 | 
				
			||||||
 | 
					Palm Tree Fence Gate=Puerta de Valla de Palmera
 | 
				
			||||||
 | 
					Palm Tree Fence Rail=Riel de Valla de Palmera
 | 
				
			||||||
 | 
					Palm Tree Leaves=Hojas de Palmera
 | 
				
			||||||
 | 
					Palm Tree Planks=Madera de Palmera
 | 
				
			||||||
 | 
					Palm Tree Planks Slab=Losa de Tablones de Palmera
 | 
				
			||||||
 | 
					Palm Tree Planks Stair=Escalera de Tablones de Palmera
 | 
				
			||||||
 | 
					Palm Tree Sapling=Retoño de Palmera
 | 
				
			||||||
 | 
					Palm Tree Trunk=Tronco de Palmera
 | 
				
			||||||
 | 
					Palm Tree Trunk Slab=Losa de Troncos de Palmera
 | 
				
			||||||
 | 
					Palm Tree Trunk Stair=Escalera de Troncos de Palmera
 | 
				
			||||||
 | 
					Poplar Tree=Árbol de Alamo
 | 
				
			||||||
 | 
					Poplar Tree Fence=Valla de Árbol de Alamo
 | 
				
			||||||
 | 
					Poplar Tree Fence Gate=Puerta de Valla de Árbol de Alamo
 | 
				
			||||||
 | 
					Poplar Tree Fence Rail=Riel de Valla de Árbol de Alamo
 | 
				
			||||||
 | 
					Poplar Tree Leaves=Hojas de Arbol de Alamo
 | 
				
			||||||
 | 
					Poplar Tree Planks=Madera de Árbol de Alamo
 | 
				
			||||||
 | 
					Poplar Tree Planks Slab=Losa de Tablones de Árbol de Alamo
 | 
				
			||||||
 | 
					Poplar Tree Planks Stair=Escalera de Tablones de Árbol de Alamo
 | 
				
			||||||
 | 
					Poplar Tree Sapling=Retoño de Árbol de Alamo
 | 
				
			||||||
 | 
					Poplar Tree Trunk=Tronco de Árbol de Alamo
 | 
				
			||||||
 | 
					Poplar Tree Trunk Slab=Losa de Tronco de Árbol de Alamo
 | 
				
			||||||
 | 
					Poplar Tree Trunk Stair=Escalera de Tronco de Árbol de Alamo
 | 
				
			||||||
 | 
					Red=Rojo
 | 
				
			||||||
 | 
					Rubber Tree=Árbol del Caucho
 | 
				
			||||||
 | 
					Rubber Tree Fence=Valla de Árbol del Caucho
 | 
				
			||||||
 | 
					Rubber Tree Fence Gate=Puerta de Valla de Árbol del Caucho
 | 
				
			||||||
 | 
					Rubber Tree Fence Rail=Riel de Valla de Árbol del Caucho
 | 
				
			||||||
 | 
					Rubber Tree Leaves=Hojas de Árbol de Árbol del Caucho
 | 
				
			||||||
 | 
					Rubber Tree Planks=Madera de Árbol de Árbol del Caucho
 | 
				
			||||||
 | 
					Rubber Tree Planks Slab=Losa de Tablones de Árbol del Caucho
 | 
				
			||||||
 | 
					Rubber Tree Planks Stair=Escalera de Tablones de Árbol del Caucho
 | 
				
			||||||
 | 
					Rubber Tree Sapling=Retoño de Árbol de Árbol del Caucho
 | 
				
			||||||
 | 
					Rubber Tree Trunk=Tronco de Árbol de Árbol del Caucho
 | 
				
			||||||
 | 
					Rubber Tree Trunk (Empty)=Tronco de Árbol del Caucho (Vacío)
 | 
				
			||||||
 | 
					Rubber Tree Trunk Slab=Losa de Tronco de Árbol del Caucho
 | 
				
			||||||
 | 
					Rubber Tree Trunk Stair=Escalera de Tronco de Árbol del Caucho
 | 
				
			||||||
 | 
					Small poplar Tree Sapling=Pequeño Retoño de Álamo
 | 
				
			||||||
 | 
					Spruce Cone=Coco de Picea
 | 
				
			||||||
 | 
					Spruce Tree=Árbol de Abeto
 | 
				
			||||||
 | 
					Spruce Tree Fence=Valla de Árbol de Abeto
 | 
				
			||||||
 | 
					Spruce Tree Fence Gate=Puerta de Valla de Árbol de Abeto
 | 
				
			||||||
 | 
					Spruce Tree Fence Rail=Riel de Valla de Árbol de Abeto
 | 
				
			||||||
 | 
					Spruce Tree Leaves=Hojas de Árbol de Abeto
 | 
				
			||||||
 | 
					Spruce Tree Planks=Madera de Árbol de Abeto
 | 
				
			||||||
 | 
					Spruce Tree Planks Slab=Losa de Tablones de Árbol de Abeto
 | 
				
			||||||
 | 
					Spruce Tree Planks Stair=Escalera de Tablones de Árbol de Abeto
 | 
				
			||||||
 | 
					Spruce Tree Sapling=Retoño de Árbol de Abeto
 | 
				
			||||||
 | 
					Spruce Tree Trunk=Tronco de Árbol de Abeto
 | 
				
			||||||
 | 
					Spruce Tree Trunk Slab=Losa de Tronco de Árbol de Abeto
 | 
				
			||||||
 | 
					Spruce Tree Trunk Stair=Escalera de Tronco de Árbol de Abeto
 | 
				
			||||||
 | 
					Willow Tree=Árbol de Sauce
 | 
				
			||||||
 | 
					Willow Tree Fence=Valla de Árbol de Sauce
 | 
				
			||||||
 | 
					Willow Tree Fence Gate=Puerta de Valla de Árbol de Sauce
 | 
				
			||||||
 | 
					Willow Tree Fence Rail=Riel de Valla de Árbol de Sauce
 | 
				
			||||||
 | 
					Willow Tree Leaves=Hojas de Árbol de Sauce
 | 
				
			||||||
 | 
					Willow Tree Planks=Madera de Árbol de Sauce
 | 
				
			||||||
 | 
					Willow Tree Planks Slab=Losa de Tablones de Árbol de Sauce
 | 
				
			||||||
 | 
					Willow Tree Planks Stair=Escalera de Tablones de Árbol de Sauce
 | 
				
			||||||
 | 
					Willow Tree Sapling=Retoño de Árbol de Sauce
 | 
				
			||||||
 | 
					Willow Tree Trunk=Tronco de Árbol de Sauce
 | 
				
			||||||
 | 
					Willow Tree Trunk Slab=Losa de Tronco de Árbol de Sauce
 | 
				
			||||||
 | 
					Willow Tree Trunk Stair=Escalera de Tronco de Árbol de Sauce
 | 
				
			||||||
 | 
					Yellow=Amarillo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# init.lua
 | 
				
			||||||
 | 
					Sapling=Retoño
 | 
				
			||||||
 | 
					Tree=Árbol
 | 
				
			||||||
 | 
					Wooden Planks=Tablones
 | 
				
			||||||
 | 
					Leaves=Hojas
 | 
				
			||||||
 | 
					Wooden Fence=Valla
 | 
				
			||||||
 | 
					Wooden Fence Rail=Riel de Valla
 | 
				
			||||||
 | 
					Wooden Fence Gate=Puerta de Valla
 | 
				
			||||||
							
								
								
									
										220
									
								
								locale/moretrees.fr.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										220
									
								
								locale/moretrees.fr.tr
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,220 @@
 | 
				
			|||||||
 | 
					# textdomain: moretrees
 | 
				
			||||||
 | 
					# Translation by Yoan31 and Louis Royer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### cocos_palm.lua ###
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Coconut=Noix de coco
 | 
				
			||||||
 | 
					Coconut Flower=Fleur de coco
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### crafts.lua ###
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Acorn Muffin=Muffins au gland
 | 
				
			||||||
 | 
					Acorn Muffin batter=Pate à muffins au Gland
 | 
				
			||||||
 | 
					Coconut Milk=Lait de coco
 | 
				
			||||||
 | 
					Date=Datte
 | 
				
			||||||
 | 
					Date & nut snack=Collation aux dattes et aux noix
 | 
				
			||||||
 | 
					Date-nut cake=Gâteau datte-noix
 | 
				
			||||||
 | 
					Date-nut cake batter=Pâte à gâteau datte-noix
 | 
				
			||||||
 | 
					Date-nut energy bar=Barre énergétique datte-noix
 | 
				
			||||||
 | 
					Raw Coconut=Noix de coco crue
 | 
				
			||||||
 | 
					Roasted Cedar Cone Nuts=Noix de pomme de pin roties
 | 
				
			||||||
 | 
					Roasted Fir Cone Nuts=Noix de cône de sapin roties
 | 
				
			||||||
 | 
					Roasted Spruce Cone Nuts=Noix de cône de sapin roties
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### date_palm.lua ###
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Date Flowers=Fleurs de datte
 | 
				
			||||||
 | 
					Date Stem=Tige de datte
 | 
				
			||||||
 | 
					Dates=Dattes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### node_defs.lua ###
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@1 (fast growth)=@1 (croissance rapide)
 | 
				
			||||||
 | 
					Acorn=Gland
 | 
				
			||||||
 | 
					Apple Tree=Pommier
 | 
				
			||||||
 | 
					Apple Tree Fence=Barrière en bois de pommier
 | 
				
			||||||
 | 
					Apple Tree Fence Gate=Porte de clôture en bois de pommier
 | 
				
			||||||
 | 
					Apple Tree Fence Rail=Clôture en bois de pommier
 | 
				
			||||||
 | 
					Apple Tree Leaves=Feuilles de pommier
 | 
				
			||||||
 | 
					Apple Tree Planks=Planches de pommier
 | 
				
			||||||
 | 
					Apple Tree Planks Slab=Dalle en bois de pommier
 | 
				
			||||||
 | 
					Apple Tree Planks Stair=Escaliers en bois de pommier
 | 
				
			||||||
 | 
					Apple Tree Sapling=Pousse d'arbre de pommier
 | 
				
			||||||
 | 
					Apple Tree Trunk=Tronc d'arbre de pommier
 | 
				
			||||||
 | 
					Apple Tree Trunk Slab=Dalle en tronc de pommier
 | 
				
			||||||
 | 
					Apple Tree Trunk Stair=Escalier en tronc de pommier
 | 
				
			||||||
 | 
					Beech Tree=Hêtre
 | 
				
			||||||
 | 
					Beech Tree Fence=Barrière en bois de hêtre
 | 
				
			||||||
 | 
					Beech Tree Fence Gate=Porte de clôture en bois de hêtre
 | 
				
			||||||
 | 
					Beech Tree Fence Rail=Clôture en bois de hêtre
 | 
				
			||||||
 | 
					Beech Tree Leaves=Feuilles de hêtre
 | 
				
			||||||
 | 
					Beech Tree Planks=Planches de hêtre
 | 
				
			||||||
 | 
					Beech Tree Planks Slab=Dalle en bois de hêtre
 | 
				
			||||||
 | 
					Beech Tree Planks Stair=Escalier en bois de hêtre
 | 
				
			||||||
 | 
					Beech Tree Sapling=Pousse d'arbre de hêtre
 | 
				
			||||||
 | 
					Beech Tree Trunk=Tronc d'arbre de hêtre
 | 
				
			||||||
 | 
					Beech Tree Trunk Slab=Dalle en tronc de hêtre
 | 
				
			||||||
 | 
					Beech Tree Trunk Stair=Escalier en tronc de hêtre
 | 
				
			||||||
 | 
					Birch Tree=Bouleau
 | 
				
			||||||
 | 
					Birch Tree Fence=Barrière en bois de bouleau
 | 
				
			||||||
 | 
					Birch Tree Fence Gate=Porte de clôture en bois de bouleau
 | 
				
			||||||
 | 
					Birch Tree Fence Rail=Clôture en bois de bouleau
 | 
				
			||||||
 | 
					Birch Tree Leaves=Feuilles de bouleau
 | 
				
			||||||
 | 
					Birch Tree Planks=Planches d'arbre de bouleau
 | 
				
			||||||
 | 
					Birch Tree Planks Slab=Dalle en bois de bouleau
 | 
				
			||||||
 | 
					Birch Tree Planks Stair=Escalier en bois de bouleau
 | 
				
			||||||
 | 
					Birch Tree Sapling=Pousse d'arbre de bouleau
 | 
				
			||||||
 | 
					Birch Tree Trunk=Tronc d'arbre de bouleau
 | 
				
			||||||
 | 
					Birch Tree Trunk Slab=Dalle en tronc de bouleau
 | 
				
			||||||
 | 
					Birch Tree Trunk Stair=Escalier en tronc de bouleau
 | 
				
			||||||
 | 
					Cedar Cone=Pomme de pin
 | 
				
			||||||
 | 
					Cedar Tree=Pin
 | 
				
			||||||
 | 
					Cedar Tree Fence=Barrière en bois de pin
 | 
				
			||||||
 | 
					Cedar Tree Fence Gate=Porte de clôture en bois de pin
 | 
				
			||||||
 | 
					Cedar Tree Fence Rail=Clôture en bois de pin
 | 
				
			||||||
 | 
					Cedar Tree Leaves=Feuilles de pin
 | 
				
			||||||
 | 
					Cedar Tree Planks=Planches d'arbre de pin
 | 
				
			||||||
 | 
					Cedar Tree Planks Slab=Dalle en bois de pin
 | 
				
			||||||
 | 
					Cedar Tree Planks Stair=Escalier en bois de pin
 | 
				
			||||||
 | 
					Cedar Tree Sapling=Pousse d'arbre de pin
 | 
				
			||||||
 | 
					Cedar Tree Trunk=Tronc d'arbre de pin
 | 
				
			||||||
 | 
					Cedar Tree Trunk Slab=Dalle en tronc de pin
 | 
				
			||||||
 | 
					Cedar Tree Trunk Stair=Escalier en tronc de pin
 | 
				
			||||||
 | 
					Date Palm Tree=Dattier
 | 
				
			||||||
 | 
					Date Palm Tree Fence=Barrière en bois de dattier
 | 
				
			||||||
 | 
					Date Palm Tree Fence Gate=Porte de clôture en bois de dattier
 | 
				
			||||||
 | 
					Date Palm Tree Fence Rail=Clôture en bois de dattier
 | 
				
			||||||
 | 
					Date Palm Tree Leaves=Feuille de dattier
 | 
				
			||||||
 | 
					Date Palm Tree Planks=Planches de dattier
 | 
				
			||||||
 | 
					Date Palm Tree Planks Slab=Dalle en bois de dattier
 | 
				
			||||||
 | 
					Date Palm Tree Planks Stair=Escalier en bois de dattier
 | 
				
			||||||
 | 
					Date Palm Tree Sapling=Pousse de dattier
 | 
				
			||||||
 | 
					Date Palm Tree Trunk=Tronc de dattier
 | 
				
			||||||
 | 
					Date Palm Tree Trunk Slab=Dalle en tronc de dattier
 | 
				
			||||||
 | 
					Date Palm Tree Trunk Stair=Escalier en tronc de dattier
 | 
				
			||||||
 | 
					Douglas Fir=Sapin de Douglas
 | 
				
			||||||
 | 
					Douglas Fir Fence=Barrière en bois de sapin de Douglas
 | 
				
			||||||
 | 
					Douglas Fir Fence Gate=Porte de clôture en bois de sapin de Douglas
 | 
				
			||||||
 | 
					Douglas Fir Fence Rail=Clôture en bois de sapin de Douglas
 | 
				
			||||||
 | 
					Douglas Fir Leaves=Feuilles de sapin de Douglas
 | 
				
			||||||
 | 
					Douglas Fir Leaves (Bright)=Feuille de sapin de Douglas (brillant)
 | 
				
			||||||
 | 
					Douglas Fir Planks=Planches de sapin de Douglas
 | 
				
			||||||
 | 
					Douglas Fir Planks Slab=Dalle en bois de sapin de Douglas
 | 
				
			||||||
 | 
					Douglas Fir Planks Stair=Escalier en bois de sapin de Douglas
 | 
				
			||||||
 | 
					Douglas Fir Sapling=Pousse de sapin de Douglas
 | 
				
			||||||
 | 
					Douglas Fir Trunk=Tronc de sapin de Douglas
 | 
				
			||||||
 | 
					Douglas Fir Trunk Slab=Dalle en tronc de sapin de Douglas
 | 
				
			||||||
 | 
					Douglas Fir Trunk Stair=Escalier en tronc de sapin de Douglas
 | 
				
			||||||
 | 
					Fir Cone=Pomme de sapin
 | 
				
			||||||
 | 
					Giant Sequoia=Séquoia géant
 | 
				
			||||||
 | 
					Giant Sequoia Fence=Barrière en bois de séquoia géant
 | 
				
			||||||
 | 
					Giant Sequoia Fence Gate=Porte de clôture en bois de séquoia géant
 | 
				
			||||||
 | 
					Giant Sequoia Fence Rail=Clôture en bois de séquoia géant
 | 
				
			||||||
 | 
					Giant Sequoia Leaves=Feuilles de séquoia géant
 | 
				
			||||||
 | 
					Giant Sequoia Planks=Planches de séquoia géant
 | 
				
			||||||
 | 
					Giant Sequoia Planks Slab=Dalle en bois de séquoia géant
 | 
				
			||||||
 | 
					Giant Sequoia Planks Stair=Escalier en bois de séquoia géant
 | 
				
			||||||
 | 
					Giant Sequoia Sapling=Pousse de séquoia géant
 | 
				
			||||||
 | 
					Giant Sequoia Trunk=Tronc de séquoia géant
 | 
				
			||||||
 | 
					Giant Sequoia Trunk Slab=Dalle en tronc de séquoia géant
 | 
				
			||||||
 | 
					Giant Sequoia Trunk Stair=Escalier en tronc de séquoia géant
 | 
				
			||||||
 | 
					Jungle Tree=Arbre de la jungle
 | 
				
			||||||
 | 
					Jungle Tree Fence=Barrière en bois d'arbre de la jungle
 | 
				
			||||||
 | 
					Jungle Tree Fence Gate=Porte de clôture en bois d'arbre de la jungle
 | 
				
			||||||
 | 
					Jungle Tree Fence Rail=Clôture en bois d'arbre de la jungle
 | 
				
			||||||
 | 
					Jungle Tree Leaves=Feuilles d'arbre de la jungle
 | 
				
			||||||
 | 
					Jungle Tree Leaves (@1)=Feuilles d'arbre de la jungle (@1)
 | 
				
			||||||
 | 
					Jungle Tree Planks=Planches d'arbre de la jungle
 | 
				
			||||||
 | 
					Jungle Tree Planks Slab=Dalle en bois d'arbre de la jungle
 | 
				
			||||||
 | 
					Jungle Tree Planks Stair=Escalier en bois d'arbre de la jungle
 | 
				
			||||||
 | 
					Jungle Tree Sapling=Pousse d'arbre de la jungle
 | 
				
			||||||
 | 
					Jungle Tree Trunk=Tronc d'arbre de la jungle
 | 
				
			||||||
 | 
					Jungle Tree Trunk Slab=Dalle en tronc d'arbre de la jungle
 | 
				
			||||||
 | 
					Jungle Tree Trunk Stair=Escalier en tronc d'arbre de la jungle
 | 
				
			||||||
 | 
					Oak Tree=Chêne
 | 
				
			||||||
 | 
					Oak Tree Fence=Barrière en bois de chêne
 | 
				
			||||||
 | 
					Oak Tree Fence Gate=Porte de clôture en bois de chêne
 | 
				
			||||||
 | 
					Oak Tree Fence Rail=Clôture en bois de chêne
 | 
				
			||||||
 | 
					Oak Tree Leaves=Feuilles de chêne
 | 
				
			||||||
 | 
					Oak Tree Planks=Planches de chêne
 | 
				
			||||||
 | 
					Oak Tree Planks Slab=Dalle en bois de chêne
 | 
				
			||||||
 | 
					Oak Tree Planks Stair=Escalier en bois de chêne
 | 
				
			||||||
 | 
					Oak Tree Sapling=Pousse d'arbre de chêne
 | 
				
			||||||
 | 
					Oak Tree Trunk=Tronc d'arbre de chêne
 | 
				
			||||||
 | 
					Oak Tree Trunk Slab=Dalle en tronc de chêne
 | 
				
			||||||
 | 
					Oak Tree Trunk Stair=Escalier en tronc de chêne
 | 
				
			||||||
 | 
					Palm Tree=Palmier
 | 
				
			||||||
 | 
					Palm Tree Fence=Barrière en bois de palmier
 | 
				
			||||||
 | 
					Palm Tree Fence Gate=Porte de clôture en bois de palmier
 | 
				
			||||||
 | 
					Palm Tree Fence Rail=Clôture en bois de palmier
 | 
				
			||||||
 | 
					Palm Tree Leaves=Feuilles de palmier
 | 
				
			||||||
 | 
					Palm Tree Planks=Planches de palmier
 | 
				
			||||||
 | 
					Palm Tree Planks Slab=Dalle en bois de palmier
 | 
				
			||||||
 | 
					Palm Tree Planks Stair=Escalier en bois de palmier
 | 
				
			||||||
 | 
					Palm Tree Sapling=Pousse d'arbre de palmier
 | 
				
			||||||
 | 
					Palm Tree Trunk=Tronc d'arbre de palmier
 | 
				
			||||||
 | 
					Palm Tree Trunk Slab=Dalle en tronc de palmier
 | 
				
			||||||
 | 
					Palm Tree Trunk Stair=Escalier en tronc de palmier
 | 
				
			||||||
 | 
					Poplar Tree=Peuplier
 | 
				
			||||||
 | 
					Poplar Tree Fence=Barrière en bois de peuplier
 | 
				
			||||||
 | 
					Poplar Tree Fence Gate=Porte de clôture en bois de peuplier
 | 
				
			||||||
 | 
					Poplar Tree Fence Rail=Clôture en bois de peuplier
 | 
				
			||||||
 | 
					Poplar Tree Leaves=Feuilles de peuplier
 | 
				
			||||||
 | 
					Poplar Tree Planks=Plances de peuplier
 | 
				
			||||||
 | 
					Poplar Tree Planks Slab=Dalle en bois de peuplier
 | 
				
			||||||
 | 
					Poplar Tree Planks Stair=Escalier en bois de peuplier
 | 
				
			||||||
 | 
					Poplar Tree Sapling=Pousse de peuplier
 | 
				
			||||||
 | 
					Poplar Tree Trunk=Tronc de peuplier
 | 
				
			||||||
 | 
					Poplar Tree Trunk Slab=Dalle en tronc de peuplier
 | 
				
			||||||
 | 
					Poplar Tree Trunk Stair=Escalier en tronc de peuplier
 | 
				
			||||||
 | 
					Red=rouge
 | 
				
			||||||
 | 
					Rubber Tree=Arbre à caoutchouc
 | 
				
			||||||
 | 
					Rubber Tree Fence=Barrière en bois d'arbre à caoutchouc
 | 
				
			||||||
 | 
					Rubber Tree Fence Gate=Porte de clôture en bois d'arbre à caoutchouc
 | 
				
			||||||
 | 
					Rubber Tree Fence Rail=Clôture en bois d'arbre à caoutchouc
 | 
				
			||||||
 | 
					Rubber Tree Leaves=Feuilles d'arbre à caoutchouc
 | 
				
			||||||
 | 
					Rubber Tree Planks=Planches d'arbre à caoutchouc
 | 
				
			||||||
 | 
					Rubber Tree Planks Slab=Dalle en bois d'arbre à caoutchouc
 | 
				
			||||||
 | 
					Rubber Tree Planks Stair=Escalier en bois d'arbre à caoutchouc
 | 
				
			||||||
 | 
					Rubber Tree Sapling=Pousse d'arbre à caoutchouc
 | 
				
			||||||
 | 
					Rubber Tree Trunk=Tronc d'arbre a caoutchouc
 | 
				
			||||||
 | 
					Rubber Tree Trunk (Empty)=Tronc d'arbre à caoutchouc (vide)
 | 
				
			||||||
 | 
					Rubber Tree Trunk Slab=Dalle en tronc d'arbre à caoutchouc
 | 
				
			||||||
 | 
					Rubber Tree Trunk Stair=Escalier en tronc d'arbre à caoutchouc
 | 
				
			||||||
 | 
					Small poplar Tree Sapling=Pousse de petit peuplier
 | 
				
			||||||
 | 
					Spruce Cone=Cône de sapin
 | 
				
			||||||
 | 
					Spruce Tree=Épicéa
 | 
				
			||||||
 | 
					Spruce Tree Fence=Barrière en bois d'épicéa
 | 
				
			||||||
 | 
					Spruce Tree Fence Gate=Porte de clôture en bois d'épicéa
 | 
				
			||||||
 | 
					Spruce Tree Fence Rail=Clôture en bois d'épicéa
 | 
				
			||||||
 | 
					Spruce Tree Leaves=Feuilles d'épicéa
 | 
				
			||||||
 | 
					Spruce Tree Planks=Planches d'arbre d'épicéa
 | 
				
			||||||
 | 
					Spruce Tree Planks Slab=Dalle en bois d'épicéa
 | 
				
			||||||
 | 
					Spruce Tree Planks Stair=Escalier en bois d'épicéa
 | 
				
			||||||
 | 
					Spruce Tree Sapling=Pousse d'arbre d'épicéa
 | 
				
			||||||
 | 
					Spruce Tree Trunk=Tronc d'arbre d'épicéa
 | 
				
			||||||
 | 
					Spruce Tree Trunk Slab=Dalle en tronc d'épicéa
 | 
				
			||||||
 | 
					Spruce Tree Trunk Stair=Escalier en tronc d'épicéa
 | 
				
			||||||
 | 
					Willow Tree=Saule
 | 
				
			||||||
 | 
					Willow Tree Fence=Barrière en bois de saule
 | 
				
			||||||
 | 
					Willow Tree Fence Gate=Porte de clôture en bois de saule
 | 
				
			||||||
 | 
					Willow Tree Fence Rail=Clôture en bois de saule
 | 
				
			||||||
 | 
					Willow Tree Leaves=Feuilles de saule
 | 
				
			||||||
 | 
					Willow Tree Planks=Planches de saule
 | 
				
			||||||
 | 
					Willow Tree Planks Slab=Dalle en bois de saule
 | 
				
			||||||
 | 
					Willow Tree Planks Stair=Escalier en bois de saule
 | 
				
			||||||
 | 
					Willow Tree Sapling=Pousse de saule
 | 
				
			||||||
 | 
					Willow Tree Trunk=Tronc d'arbre de saule
 | 
				
			||||||
 | 
					Willow Tree Trunk Slab=Dalle en tronc de saule
 | 
				
			||||||
 | 
					Willow Tree Trunk Stair=Escalier en tronc de saule
 | 
				
			||||||
 | 
					Yellow=jaune
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# init.lua
 | 
				
			||||||
 | 
					Sapling=Jeune Arbre
 | 
				
			||||||
 | 
					Tree=Arbre
 | 
				
			||||||
 | 
					Wooden Planks=Planches
 | 
				
			||||||
 | 
					Leaves=Feuilles
 | 
				
			||||||
 | 
					Wooden Fence=Barrière en bois
 | 
				
			||||||
 | 
					Wooden Fence Rail=Rail de clôture en bois
 | 
				
			||||||
 | 
					Wooden Fence Gate=Porte de clôture en bois
 | 
				
			||||||
							
								
								
									
										219
									
								
								locale/moretrees.ru.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										219
									
								
								locale/moretrees.ru.tr
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,219 @@
 | 
				
			|||||||
 | 
					# textdomain: moretrees
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### cocos_palm.lua ###
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Coconut=Кокос
 | 
				
			||||||
 | 
					Coconut Flower=Цветок кокоса
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### crafts.lua ###
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Acorn Muffin=Маффин с желудями
 | 
				
			||||||
 | 
					Acorn Muffin batter=Тесто для маффина с желудями
 | 
				
			||||||
 | 
					Coconut Milk=Кокосовое молоко
 | 
				
			||||||
 | 
					Date=Финик
 | 
				
			||||||
 | 
					Date & nut snack=Закуска из фиников и орехов
 | 
				
			||||||
 | 
					Date-nut cake=Финиково-ореховый пирог
 | 
				
			||||||
 | 
					Date-nut cake batter=Тесто для финиково-орехового пирога
 | 
				
			||||||
 | 
					Date-nut energy bar=Финиково-ореховый батончик
 | 
				
			||||||
 | 
					Raw Coconut=Сырой кокос
 | 
				
			||||||
 | 
					Roasted Cedar Cone Nuts=Жареные кедровые орешки
 | 
				
			||||||
 | 
					Roasted Fir Cone Nuts=Жареные орешки пихты
 | 
				
			||||||
 | 
					Roasted Spruce Cone Nuts=Жареные еловые орешки
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### date_palm.lua ###
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Date Flowers=Цветки фиников
 | 
				
			||||||
 | 
					Date Stem=Стебель финика
 | 
				
			||||||
 | 
					Dates=Финики
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### node_defs.lua ###
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@1 (fast growth)=@1 (бестрый рост)
 | 
				
			||||||
 | 
					Acorn=Желудь
 | 
				
			||||||
 | 
					Apple Tree=Яблоня
 | 
				
			||||||
 | 
					Apple Tree Fence=Яблоневый забор
 | 
				
			||||||
 | 
					Apple Tree Fence Gate=Яблоневые ворота
 | 
				
			||||||
 | 
					Apple Tree Fence Rail=Яблоневые перила
 | 
				
			||||||
 | 
					Apple Tree Leaves=Листья яблони
 | 
				
			||||||
 | 
					Apple Tree Planks=Яблоневые доски
 | 
				
			||||||
 | 
					Apple Tree Planks Slab=Яблоневые доски (плита)
 | 
				
			||||||
 | 
					Apple Tree Planks Stair=Яблоневые доски (ступени)
 | 
				
			||||||
 | 
					Apple Tree Sapling=Саженец яблони
 | 
				
			||||||
 | 
					Apple Tree Trunk=Ствол яблони
 | 
				
			||||||
 | 
					Apple Tree Trunk Slab=Ствол яблони (плита)
 | 
				
			||||||
 | 
					Apple Tree Trunk Stair=Ствол яблони (ступени)
 | 
				
			||||||
 | 
					Beech Tree=Бук
 | 
				
			||||||
 | 
					Beech Tree Fence=Забор из бука
 | 
				
			||||||
 | 
					Beech Tree Fence Gate=Ворота из бука
 | 
				
			||||||
 | 
					Beech Tree Fence Rail=Перила из бука
 | 
				
			||||||
 | 
					Beech Tree Leaves=Листья бука
 | 
				
			||||||
 | 
					Beech Tree Planks=Доски из бука
 | 
				
			||||||
 | 
					Beech Tree Planks Slab=Доски из бука (плита)
 | 
				
			||||||
 | 
					Beech Tree Planks Stair=Доски из бука (ступени)
 | 
				
			||||||
 | 
					Beech Tree Sapling=Саженец бука
 | 
				
			||||||
 | 
					Beech Tree Trunk=Ствол бука
 | 
				
			||||||
 | 
					Beech Tree Trunk Slab=Ствол бука (плита)
 | 
				
			||||||
 | 
					Beech Tree Trunk Stair=Ствол бука (ступени)
 | 
				
			||||||
 | 
					Birch Tree=Береза
 | 
				
			||||||
 | 
					Birch Tree Fence=Березовый забор
 | 
				
			||||||
 | 
					Birch Tree Fence Gate=Березовые ворота
 | 
				
			||||||
 | 
					Birch Tree Fence Rail=Березовые перила
 | 
				
			||||||
 | 
					Birch Tree Leaves=Березовые листья
 | 
				
			||||||
 | 
					Birch Tree Planks=Березовые доски
 | 
				
			||||||
 | 
					Birch Tree Planks Slab=Березовые доски (плита)
 | 
				
			||||||
 | 
					Birch Tree Planks Stair=Березовые доски (ступени)
 | 
				
			||||||
 | 
					Birch Tree Sapling=Саженец березы
 | 
				
			||||||
 | 
					Birch Tree Trunk=Ствол березы
 | 
				
			||||||
 | 
					Birch Tree Trunk Slab=Ствол березы (плита)
 | 
				
			||||||
 | 
					Birch Tree Trunk Stair=Ствол березы (ступени)
 | 
				
			||||||
 | 
					Cedar Cone=Кедровая шишка
 | 
				
			||||||
 | 
					Cedar Tree=Кедр
 | 
				
			||||||
 | 
					Cedar Tree Fence=Забор из кедра
 | 
				
			||||||
 | 
					Cedar Tree Fence Gate=Ворота из кедра
 | 
				
			||||||
 | 
					Cedar Tree Fence Rail=Перила из кедра
 | 
				
			||||||
 | 
					Cedar Tree Leaves=Кедровая хвоя
 | 
				
			||||||
 | 
					Cedar Tree Planks=Доски из кедра
 | 
				
			||||||
 | 
					Cedar Tree Planks Slab=Доски из кедра (плита)
 | 
				
			||||||
 | 
					Cedar Tree Planks Stair=Доски из кедра (ступени)
 | 
				
			||||||
 | 
					Cedar Tree Sapling=Саженец кедра
 | 
				
			||||||
 | 
					Cedar Tree Trunk=Ствол кедра
 | 
				
			||||||
 | 
					Cedar Tree Trunk Slab=Ствол кедра (плита)
 | 
				
			||||||
 | 
					Cedar Tree Trunk Stair=Ствол кедра (ступени)
 | 
				
			||||||
 | 
					Date Palm Tree=Финиковая пальма
 | 
				
			||||||
 | 
					Date Palm Tree Fence=Забор из финиковой пальмы
 | 
				
			||||||
 | 
					Date Palm Tree Fence Gate=Ворота из финиковой пальмы
 | 
				
			||||||
 | 
					Date Palm Tree Fence Rail=Перила из финиковой пальмы
 | 
				
			||||||
 | 
					Date Palm Tree Leaves=Листья финиковой пальмы
 | 
				
			||||||
 | 
					Date Palm Tree Planks=Доски из финиковой пальмы
 | 
				
			||||||
 | 
					Date Palm Tree Planks Slab=Доски из финиковой пальмы (плита)
 | 
				
			||||||
 | 
					Date Palm Tree Planks Stair=Доски из финиковой пальмы (ступени)
 | 
				
			||||||
 | 
					Date Palm Tree Sapling=Саженец финиковой пальмы
 | 
				
			||||||
 | 
					Date Palm Tree Trunk=Ствол финиковой пальмы
 | 
				
			||||||
 | 
					Date Palm Tree Trunk Slab=Ствол финиковой пальмы (плита)
 | 
				
			||||||
 | 
					Date Palm Tree Trunk Stair=Ствол финиковой пальмы (ступени)
 | 
				
			||||||
 | 
					Douglas Fir=Дугласова пихта
 | 
				
			||||||
 | 
					Douglas Fir Fence=Забор из дугласовой пихты
 | 
				
			||||||
 | 
					Douglas Fir Fence Gate=Ворота из дугласовой пихты
 | 
				
			||||||
 | 
					Douglas Fir Fence Rail=Перила из дугласовой пихты
 | 
				
			||||||
 | 
					Douglas Fir Leaves=Хвоя дугласовой пихты
 | 
				
			||||||
 | 
					Douglas Fir Leaves (Bright)=Листья дугласовой пихты (яркие)
 | 
				
			||||||
 | 
					Douglas Fir Planks=Доски из дугласовой пихты
 | 
				
			||||||
 | 
					Douglas Fir Planks Slab=Доски из дугласовой пихты (плита)
 | 
				
			||||||
 | 
					Douglas Fir Planks Stair=Доски из дугласовой пихты (ступени)
 | 
				
			||||||
 | 
					Douglas Fir Sapling=Саженец дугласовой пихты
 | 
				
			||||||
 | 
					Douglas Fir Trunk=Ствол дугласовой пихты
 | 
				
			||||||
 | 
					Douglas Fir Trunk Slab=Ствол дугласовой пихты (плита)
 | 
				
			||||||
 | 
					Douglas Fir Trunk Stair=Ствол дугласовой пихты (ступени)
 | 
				
			||||||
 | 
					Fir Cone=Пихтовая шишка
 | 
				
			||||||
 | 
					Giant Sequoia=Гигантская секвойя
 | 
				
			||||||
 | 
					Giant Sequoia Fence=Забор из гигантской секвойи
 | 
				
			||||||
 | 
					Giant Sequoia Fence Gate=Ворота из гигантской секвойи
 | 
				
			||||||
 | 
					Giant Sequoia Fence Rail=Перила из гигантской секвойи
 | 
				
			||||||
 | 
					Giant Sequoia Leaves=Хвоя гигантской секвойи
 | 
				
			||||||
 | 
					Giant Sequoia Planks=Доски из гигантской секвойи
 | 
				
			||||||
 | 
					Giant Sequoia Planks Slab=Доски из гигантской секвойи (плита)
 | 
				
			||||||
 | 
					Giant Sequoia Planks Stair=Доски из гигантской секвойи (ступени)
 | 
				
			||||||
 | 
					Giant Sequoia Sapling=Саженец гигантской секвойи
 | 
				
			||||||
 | 
					Giant Sequoia Trunk=Ствол гигантской секвойи
 | 
				
			||||||
 | 
					Giant Sequoia Trunk Slab=Ствол гигантской секвойи (плита)
 | 
				
			||||||
 | 
					Giant Sequoia Trunk Stair=Ствол гигантской секвойи (ступени)
 | 
				
			||||||
 | 
					Jungle Tree=Тропическое дерево
 | 
				
			||||||
 | 
					Jungle Tree Fence=Забор из тропического дерева
 | 
				
			||||||
 | 
					Jungle Tree Fence Gate=Ворота из тропического дерева
 | 
				
			||||||
 | 
					Jungle Tree Fence Rail=Перила из тропического дерева
 | 
				
			||||||
 | 
					Jungle Tree Leaves=Листья тропического дерева
 | 
				
			||||||
 | 
					Jungle Tree Leaves (@1)=Листья тропического дерева (@1)
 | 
				
			||||||
 | 
					Jungle Tree Planks=Доски из тропического дерева
 | 
				
			||||||
 | 
					Jungle Tree Planks Slab=Доски из тропического дерева (плита)
 | 
				
			||||||
 | 
					Jungle Tree Planks Stair=Доски из тропического дерева (ступени)
 | 
				
			||||||
 | 
					Jungle Tree Sapling=Саженец тропического дерева
 | 
				
			||||||
 | 
					Jungle Tree Trunk=Ствол тропического дерева
 | 
				
			||||||
 | 
					Jungle Tree Trunk Slab=Ствол тропического дерева (плита)
 | 
				
			||||||
 | 
					Jungle Tree Trunk Stair=Ствол тропического дерева (ступени)
 | 
				
			||||||
 | 
					Oak Tree=Дуб
 | 
				
			||||||
 | 
					Oak Tree Fence=Дубовый забор
 | 
				
			||||||
 | 
					Oak Tree Fence Gate=Дубовые ворота
 | 
				
			||||||
 | 
					Oak Tree Fence Rail=Дубовые перила
 | 
				
			||||||
 | 
					Oak Tree Leaves=Листья дуба
 | 
				
			||||||
 | 
					Oak Tree Planks=Дубовые доски
 | 
				
			||||||
 | 
					Oak Tree Planks Slab=Дубовые доски (плита)
 | 
				
			||||||
 | 
					Oak Tree Planks Stair=Дубовые доски (ступени)
 | 
				
			||||||
 | 
					Oak Tree Sapling=Саженец дуба
 | 
				
			||||||
 | 
					Oak Tree Trunk=Ствол дуба
 | 
				
			||||||
 | 
					Oak Tree Trunk Slab=Ствол дуба (плита)
 | 
				
			||||||
 | 
					Oak Tree Trunk Stair=Ствол дуба (ступени)
 | 
				
			||||||
 | 
					Palm Tree=Пальма
 | 
				
			||||||
 | 
					Palm Tree Fence=Пальмовый забор
 | 
				
			||||||
 | 
					Palm Tree Fence Gate=Пальмовые ворота
 | 
				
			||||||
 | 
					Palm Tree Fence Rail=Пальмовые перила
 | 
				
			||||||
 | 
					Palm Tree Leaves=Листья пальмы
 | 
				
			||||||
 | 
					Palm Tree Planks=Пальмовые доски
 | 
				
			||||||
 | 
					Palm Tree Planks Slab=Пальмовые доски (плита)
 | 
				
			||||||
 | 
					Palm Tree Planks Stair=Пальмовые доски (ступени)
 | 
				
			||||||
 | 
					Palm Tree Sapling=Саженец пальмы
 | 
				
			||||||
 | 
					Palm Tree Trunk=Ствол пальмы
 | 
				
			||||||
 | 
					Palm Tree Trunk Slab=Ствол пальмы (плита)
 | 
				
			||||||
 | 
					Palm Tree Trunk Stair=Ствол пальмы (ступени)
 | 
				
			||||||
 | 
					Poplar Tree=Тополь
 | 
				
			||||||
 | 
					Poplar Tree Fence=Забор из тополя
 | 
				
			||||||
 | 
					Poplar Tree Fence Gate=Ворота из тополя
 | 
				
			||||||
 | 
					Poplar Tree Fence Rail=Перила из тополя
 | 
				
			||||||
 | 
					Poplar Tree Leaves=Листья тополя
 | 
				
			||||||
 | 
					Poplar Tree Planks=Доски из тополя
 | 
				
			||||||
 | 
					Poplar Tree Planks Slab=Доски из тополя (плита)
 | 
				
			||||||
 | 
					Poplar Tree Planks Stair=Доски из тополя (ступени)
 | 
				
			||||||
 | 
					Poplar Tree Sapling=Саженец тополя
 | 
				
			||||||
 | 
					Poplar Tree Trunk=Ствол тополя
 | 
				
			||||||
 | 
					Poplar Tree Trunk Slab=Ствол тополя (плита)
 | 
				
			||||||
 | 
					Poplar Tree Trunk Stair=Ствол тополя (ступени)
 | 
				
			||||||
 | 
					Red=красные
 | 
				
			||||||
 | 
					Rubber Tree=Каучуковое дерево
 | 
				
			||||||
 | 
					Rubber Tree Fence=Забор из каучукового дерева
 | 
				
			||||||
 | 
					Rubber Tree Fence Gate=Ворота из каучукового дерева
 | 
				
			||||||
 | 
					Rubber Tree Fence Rail=Перила из каучукового дерева
 | 
				
			||||||
 | 
					Rubber Tree Leaves=Листья каучукового дерева
 | 
				
			||||||
 | 
					Rubber Tree Planks=Доски из каучукового дерева
 | 
				
			||||||
 | 
					Rubber Tree Planks Slab=Доски из каучукового дерева (плита)
 | 
				
			||||||
 | 
					Rubber Tree Planks Stair=Доски из каучукового дерева (ступени)
 | 
				
			||||||
 | 
					Rubber Tree Sapling=Саженец каучукового дерева
 | 
				
			||||||
 | 
					Rubber Tree Trunk=Ствол каучукового дерева
 | 
				
			||||||
 | 
					Rubber Tree Trunk (Empty)=Ствол каучукового дерева (пусто)
 | 
				
			||||||
 | 
					Rubber Tree Trunk Slab=Ствол каучукового дерева (плита)
 | 
				
			||||||
 | 
					Rubber Tree Trunk Stair=Ствол каучукового дерева (ступени)
 | 
				
			||||||
 | 
					Small poplar Tree Sapling=Малы саженец тополя
 | 
				
			||||||
 | 
					Spruce Cone=Еловая шишка
 | 
				
			||||||
 | 
					Spruce Tree=Ель
 | 
				
			||||||
 | 
					Spruce Tree Fence=Еловый забор
 | 
				
			||||||
 | 
					Spruce Tree Fence Gate=Еловые ворота
 | 
				
			||||||
 | 
					Spruce Tree Fence Rail=Еловые перила
 | 
				
			||||||
 | 
					Spruce Tree Leaves=Еловая хвоя
 | 
				
			||||||
 | 
					Spruce Tree Planks=Еловые доски
 | 
				
			||||||
 | 
					Spruce Tree Planks Slab=Еловые доски (плита)
 | 
				
			||||||
 | 
					Spruce Tree Planks Stair=Еловые доски (ступени)
 | 
				
			||||||
 | 
					Spruce Tree Sapling=Саженец ели
 | 
				
			||||||
 | 
					Spruce Tree Trunk=Ствол ели
 | 
				
			||||||
 | 
					Spruce Tree Trunk Slab=Ствол ели (плита)
 | 
				
			||||||
 | 
					Spruce Tree Trunk Stair=Ствол ели (ступени)
 | 
				
			||||||
 | 
					Willow Tree=Ива
 | 
				
			||||||
 | 
					Willow Tree Fence=Ивовый забор
 | 
				
			||||||
 | 
					Willow Tree Fence Gate=Ивовые ворота
 | 
				
			||||||
 | 
					Willow Tree Fence Rail=Ивовые перила
 | 
				
			||||||
 | 
					Willow Tree Leaves=Листья ивы
 | 
				
			||||||
 | 
					Willow Tree Planks=Ивовые доски
 | 
				
			||||||
 | 
					Willow Tree Planks Slab=Ивовые доски (плита)
 | 
				
			||||||
 | 
					Willow Tree Planks Stair=Ивовые доски (ступени)
 | 
				
			||||||
 | 
					Willow Tree Sapling=Саженец ивы
 | 
				
			||||||
 | 
					Willow Tree Trunk=Ствол ивы
 | 
				
			||||||
 | 
					Willow Tree Trunk Slab=Ствол ивы (плита)
 | 
				
			||||||
 | 
					Willow Tree Trunk Stair=Ствол ивы (ступени)
 | 
				
			||||||
 | 
					Yellow=желтые
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# init.lua
 | 
				
			||||||
 | 
					Sapling=Саженец
 | 
				
			||||||
 | 
					Tree=Дерево
 | 
				
			||||||
 | 
					Wooden Planks=Деревянные доски
 | 
				
			||||||
 | 
					Leaves=Листья
 | 
				
			||||||
 | 
					Wooden Fence=Деревянный забор
 | 
				
			||||||
 | 
					Wooden Fence Rail=Деревянные перила
 | 
				
			||||||
 | 
					Wooden Fence Gate=Деревянные ворота
 | 
				
			||||||
@@ -1,73 +1,219 @@
 | 
				
			|||||||
# Template
 | 
					# textdomain: moretrees
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### cocos_palm.lua ###
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Coconut=
 | 
				
			||||||
 | 
					Coconut Flower=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### crafts.lua ###
 | 
					### crafts.lua ###
 | 
				
			||||||
Coconut Milk = 
 | 
					
 | 
				
			||||||
Raw Coconut = 
 | 
					Acorn Muffin=
 | 
				
			||||||
Acorn Muffin batter = 
 | 
					Acorn Muffin batter=
 | 
				
			||||||
Acorn Muffin = 
 | 
					Coconut Milk=
 | 
				
			||||||
Roasted Spruce Cone Nuts = 
 | 
					Date=
 | 
				
			||||||
Roasted Pine Cone Nuts = 
 | 
					Date & nut snack=
 | 
				
			||||||
Roasted Fir Cone Nuts = 
 | 
					Date-nut cake=
 | 
				
			||||||
 | 
					Date-nut cake batter=
 | 
				
			||||||
 | 
					Date-nut energy bar=
 | 
				
			||||||
 | 
					Raw Coconut=
 | 
				
			||||||
 | 
					Roasted Cedar Cone Nuts=
 | 
				
			||||||
 | 
					Roasted Fir Cone Nuts=
 | 
				
			||||||
 | 
					Roasted Spruce Cone Nuts=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### date_palm.lua ###
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Date Flowers=
 | 
				
			||||||
 | 
					Date Stem=
 | 
				
			||||||
 | 
					Dates=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### node_defs.lua ###
 | 
					### node_defs.lua ###
 | 
				
			||||||
Beech Tree Trunk = 
 | 
					 | 
				
			||||||
Apple Tree Trunk = 
 | 
					 | 
				
			||||||
Oak Tree Trunk = 
 | 
					 | 
				
			||||||
Giant Sequoia Trunk = 
 | 
					 | 
				
			||||||
Birch Tree Trunk = 
 | 
					 | 
				
			||||||
Palm Tree Trunk = 
 | 
					 | 
				
			||||||
Spruce Tree Trunk = 
 | 
					 | 
				
			||||||
Pine Tree Trunk = 
 | 
					 | 
				
			||||||
Willow Tree Trunk = 
 | 
					 | 
				
			||||||
Rubber Tree Trunk = 
 | 
					 | 
				
			||||||
Jungle Tree Trunk = 
 | 
					 | 
				
			||||||
Douglas Fir Trunk = 
 | 
					 | 
				
			||||||
Beech Tree Planks = 
 | 
					 | 
				
			||||||
Apple Tree Planks = 
 | 
					 | 
				
			||||||
Oak Tree Planks = 
 | 
					 | 
				
			||||||
Giant Sequoia Planks = 
 | 
					 | 
				
			||||||
Birch Tree Planks = 
 | 
					 | 
				
			||||||
Palm Tree Planks = 
 | 
					 | 
				
			||||||
Spruce Tree Planks = 
 | 
					 | 
				
			||||||
Pine Tree Planks = 
 | 
					 | 
				
			||||||
Willow Tree Planks = 
 | 
					 | 
				
			||||||
Rubber Tree Planks = 
 | 
					 | 
				
			||||||
Jungle Tree Planks = 
 | 
					 | 
				
			||||||
Douglas Fir Planks = 
 | 
					 | 
				
			||||||
Beech Tree Sapling = 
 | 
					 | 
				
			||||||
Apple Tree Sapling = 
 | 
					 | 
				
			||||||
Oak Tree Sapling = 
 | 
					 | 
				
			||||||
Giant Sequoia Sapling = 
 | 
					 | 
				
			||||||
Birch Tree Sapling = 
 | 
					 | 
				
			||||||
Palm Tree Sapling = 
 | 
					 | 
				
			||||||
Spruce Tree Sapling = 
 | 
					 | 
				
			||||||
Pine Tree Sapling = 
 | 
					 | 
				
			||||||
Willow Tree Sapling = 
 | 
					 | 
				
			||||||
Rubber Tree Sapling = 
 | 
					 | 
				
			||||||
Jungle Tree Sapling = 
 | 
					 | 
				
			||||||
Douglas Fir Sapling = 
 | 
					 | 
				
			||||||
Beech Tree Leaves = 
 | 
					 | 
				
			||||||
Apple Tree Leaves = 
 | 
					 | 
				
			||||||
Oak Tree Leaves = 
 | 
					 | 
				
			||||||
Giant Sequoia Leaves = 
 | 
					 | 
				
			||||||
Birch Tree Leaves = 
 | 
					 | 
				
			||||||
Palm Tree Leaves = 
 | 
					 | 
				
			||||||
Spruce Tree Leaves = 
 | 
					 | 
				
			||||||
Pine Tree Leaves = 
 | 
					 | 
				
			||||||
Willow Tree Leaves = 
 | 
					 | 
				
			||||||
Rubber Tree Leaves = 
 | 
					 | 
				
			||||||
Jungle Tree Leaves = 
 | 
					 | 
				
			||||||
Douglas Fir Leaves = 
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
Acorn = 
 | 
					@1 (fast growth)=
 | 
				
			||||||
Coconut = 
 | 
					Acorn=
 | 
				
			||||||
Spruce Cone = 
 | 
					Apple Tree=
 | 
				
			||||||
Pine Cone = 
 | 
					Apple Tree Fence=
 | 
				
			||||||
Fir Cone = 
 | 
					Apple Tree Fence Gate=
 | 
				
			||||||
Jungle Sapling = 
 | 
					Apple Tree Fence Rail=
 | 
				
			||||||
Jungle Tree Leaves (Yellow) = 
 | 
					Apple Tree Leaves=
 | 
				
			||||||
Jungle Tree Leaves (Red) = 
 | 
					Apple Tree Planks=
 | 
				
			||||||
Douglas Fir Leaves (Bright) = 
 | 
					Apple Tree Planks Slab=
 | 
				
			||||||
Rubber Tree Trunk (Empty) = 
 | 
					Apple Tree Planks Stair=
 | 
				
			||||||
 | 
					Apple Tree Sapling=
 | 
				
			||||||
 | 
					Apple Tree Trunk=
 | 
				
			||||||
 | 
					Apple Tree Trunk Slab=
 | 
				
			||||||
 | 
					Apple Tree Trunk Stair=
 | 
				
			||||||
 | 
					Beech Tree=
 | 
				
			||||||
 | 
					Beech Tree Fence=
 | 
				
			||||||
 | 
					Beech Tree Fence Gate=
 | 
				
			||||||
 | 
					Beech Tree Fence Rail=
 | 
				
			||||||
 | 
					Beech Tree Leaves=
 | 
				
			||||||
 | 
					Beech Tree Planks=
 | 
				
			||||||
 | 
					Beech Tree Planks Slab=
 | 
				
			||||||
 | 
					Beech Tree Planks Stair=
 | 
				
			||||||
 | 
					Beech Tree Sapling=
 | 
				
			||||||
 | 
					Beech Tree Trunk=
 | 
				
			||||||
 | 
					Beech Tree Trunk Slab=
 | 
				
			||||||
 | 
					Beech Tree Trunk Stair=
 | 
				
			||||||
 | 
					Birch Tree=
 | 
				
			||||||
 | 
					Birch Tree Fence=
 | 
				
			||||||
 | 
					Birch Tree Fence Gate=
 | 
				
			||||||
 | 
					Birch Tree Fence Rail=
 | 
				
			||||||
 | 
					Birch Tree Leaves=
 | 
				
			||||||
 | 
					Birch Tree Planks=
 | 
				
			||||||
 | 
					Birch Tree Planks Slab=
 | 
				
			||||||
 | 
					Birch Tree Planks Stair=
 | 
				
			||||||
 | 
					Birch Tree Sapling=
 | 
				
			||||||
 | 
					Birch Tree Trunk=
 | 
				
			||||||
 | 
					Birch Tree Trunk Slab=
 | 
				
			||||||
 | 
					Birch Tree Trunk Stair=
 | 
				
			||||||
 | 
					Cedar Cone=
 | 
				
			||||||
 | 
					Cedar Tree=
 | 
				
			||||||
 | 
					Cedar Tree Fence=
 | 
				
			||||||
 | 
					Cedar Tree Fence Gate=
 | 
				
			||||||
 | 
					Cedar Tree Fence Rail=
 | 
				
			||||||
 | 
					Cedar Tree Leaves=
 | 
				
			||||||
 | 
					Cedar Tree Planks=
 | 
				
			||||||
 | 
					Cedar Tree Planks Slab=
 | 
				
			||||||
 | 
					Cedar Tree Planks Stair=
 | 
				
			||||||
 | 
					Cedar Tree Sapling=
 | 
				
			||||||
 | 
					Cedar Tree Trunk=
 | 
				
			||||||
 | 
					Cedar Tree Trunk Slab=
 | 
				
			||||||
 | 
					Cedar Tree Trunk Stair=
 | 
				
			||||||
 | 
					Date Palm Tree=
 | 
				
			||||||
 | 
					Date Palm Tree Fence=
 | 
				
			||||||
 | 
					Date Palm Tree Fence Gate=
 | 
				
			||||||
 | 
					Date Palm Tree Fence Rail=
 | 
				
			||||||
 | 
					Date Palm Tree Leaves=
 | 
				
			||||||
 | 
					Date Palm Tree Planks=
 | 
				
			||||||
 | 
					Date Palm Tree Planks Slab=
 | 
				
			||||||
 | 
					Date Palm Tree Planks Stair=
 | 
				
			||||||
 | 
					Date Palm Tree Sapling=
 | 
				
			||||||
 | 
					Date Palm Tree Trunk=
 | 
				
			||||||
 | 
					Date Palm Tree Trunk Slab=
 | 
				
			||||||
 | 
					Date Palm Tree Trunk Stair=
 | 
				
			||||||
 | 
					Douglas Fir=
 | 
				
			||||||
 | 
					Douglas Fir Fence=
 | 
				
			||||||
 | 
					Douglas Fir Fence Gate=
 | 
				
			||||||
 | 
					Douglas Fir Fence Rail=
 | 
				
			||||||
 | 
					Douglas Fir Leaves=
 | 
				
			||||||
 | 
					Douglas Fir Leaves (Bright)=
 | 
				
			||||||
 | 
					Douglas Fir Planks=
 | 
				
			||||||
 | 
					Douglas Fir Planks Slab=
 | 
				
			||||||
 | 
					Douglas Fir Planks Stair=
 | 
				
			||||||
 | 
					Douglas Fir Sapling=
 | 
				
			||||||
 | 
					Douglas Fir Trunk=
 | 
				
			||||||
 | 
					Douglas Fir Trunk Slab=
 | 
				
			||||||
 | 
					Douglas Fir Trunk Stair=
 | 
				
			||||||
 | 
					Fir Cone=
 | 
				
			||||||
 | 
					Giant Sequoia=
 | 
				
			||||||
 | 
					Giant Sequoia Fence=
 | 
				
			||||||
 | 
					Giant Sequoia Fence Gate=
 | 
				
			||||||
 | 
					Giant Sequoia Fence Rail=
 | 
				
			||||||
 | 
					Giant Sequoia Leaves=
 | 
				
			||||||
 | 
					Giant Sequoia Planks=
 | 
				
			||||||
 | 
					Giant Sequoia Planks Slab=
 | 
				
			||||||
 | 
					Giant Sequoia Planks Stair=
 | 
				
			||||||
 | 
					Giant Sequoia Sapling=
 | 
				
			||||||
 | 
					Giant Sequoia Trunk=
 | 
				
			||||||
 | 
					Giant Sequoia Trunk Slab=
 | 
				
			||||||
 | 
					Giant Sequoia Trunk Stair=
 | 
				
			||||||
 | 
					Jungle Tree=
 | 
				
			||||||
 | 
					Jungle Tree Fence=
 | 
				
			||||||
 | 
					Jungle Tree Fence Gate=
 | 
				
			||||||
 | 
					Jungle Tree Fence Rail=
 | 
				
			||||||
 | 
					Jungle Tree Leaves=
 | 
				
			||||||
 | 
					Jungle Tree Leaves (@1)=
 | 
				
			||||||
 | 
					Jungle Tree Planks=
 | 
				
			||||||
 | 
					Jungle Tree Planks Slab=
 | 
				
			||||||
 | 
					Jungle Tree Planks Stair=
 | 
				
			||||||
 | 
					Jungle Tree Sapling=
 | 
				
			||||||
 | 
					Jungle Tree Trunk=
 | 
				
			||||||
 | 
					Jungle Tree Trunk Slab=
 | 
				
			||||||
 | 
					Jungle Tree Trunk Stair=
 | 
				
			||||||
 | 
					Oak Tree=
 | 
				
			||||||
 | 
					Oak Tree Fence=
 | 
				
			||||||
 | 
					Oak Tree Fence Gate=
 | 
				
			||||||
 | 
					Oak Tree Fence Rail=
 | 
				
			||||||
 | 
					Oak Tree Leaves=
 | 
				
			||||||
 | 
					Oak Tree Planks=
 | 
				
			||||||
 | 
					Oak Tree Planks Slab=
 | 
				
			||||||
 | 
					Oak Tree Planks Stair=
 | 
				
			||||||
 | 
					Oak Tree Sapling=
 | 
				
			||||||
 | 
					Oak Tree Trunk=
 | 
				
			||||||
 | 
					Oak Tree Trunk Slab=
 | 
				
			||||||
 | 
					Oak Tree Trunk Stair=
 | 
				
			||||||
 | 
					Palm Tree=
 | 
				
			||||||
 | 
					Palm Tree Fence=
 | 
				
			||||||
 | 
					Palm Tree Fence Gate=
 | 
				
			||||||
 | 
					Palm Tree Fence Rail=
 | 
				
			||||||
 | 
					Palm Tree Leaves=
 | 
				
			||||||
 | 
					Palm Tree Planks=
 | 
				
			||||||
 | 
					Palm Tree Planks Slab=
 | 
				
			||||||
 | 
					Palm Tree Planks Stair=
 | 
				
			||||||
 | 
					Palm Tree Sapling=
 | 
				
			||||||
 | 
					Palm Tree Trunk=
 | 
				
			||||||
 | 
					Palm Tree Trunk Slab=
 | 
				
			||||||
 | 
					Palm Tree Trunk Stair=
 | 
				
			||||||
 | 
					Poplar Tree=
 | 
				
			||||||
 | 
					Poplar Tree Fence=
 | 
				
			||||||
 | 
					Poplar Tree Fence Gate=
 | 
				
			||||||
 | 
					Poplar Tree Fence Rail=
 | 
				
			||||||
 | 
					Poplar Tree Leaves=
 | 
				
			||||||
 | 
					Poplar Tree Planks=
 | 
				
			||||||
 | 
					Poplar Tree Planks Slab=
 | 
				
			||||||
 | 
					Poplar Tree Planks Stair=
 | 
				
			||||||
 | 
					Poplar Tree Sapling=
 | 
				
			||||||
 | 
					Poplar Tree Trunk=
 | 
				
			||||||
 | 
					Poplar Tree Trunk Slab=
 | 
				
			||||||
 | 
					Poplar Tree Trunk Stair=
 | 
				
			||||||
 | 
					Red=
 | 
				
			||||||
 | 
					Rubber Tree=
 | 
				
			||||||
 | 
					Rubber Tree Fence=
 | 
				
			||||||
 | 
					Rubber Tree Fence Gate=
 | 
				
			||||||
 | 
					Rubber Tree Fence Rail=
 | 
				
			||||||
 | 
					Rubber Tree Leaves=
 | 
				
			||||||
 | 
					Rubber Tree Planks=
 | 
				
			||||||
 | 
					Rubber Tree Planks Slab=
 | 
				
			||||||
 | 
					Rubber Tree Planks Stair=
 | 
				
			||||||
 | 
					Rubber Tree Sapling=
 | 
				
			||||||
 | 
					Rubber Tree Trunk=
 | 
				
			||||||
 | 
					Rubber Tree Trunk (Empty)=
 | 
				
			||||||
 | 
					Rubber Tree Trunk Slab=
 | 
				
			||||||
 | 
					Rubber Tree Trunk Stair=
 | 
				
			||||||
 | 
					Small poplar Tree Sapling=
 | 
				
			||||||
 | 
					Spruce Cone=
 | 
				
			||||||
 | 
					Spruce Tree=
 | 
				
			||||||
 | 
					Spruce Tree Fence=
 | 
				
			||||||
 | 
					Spruce Tree Fence Gate=
 | 
				
			||||||
 | 
					Spruce Tree Fence Rail=
 | 
				
			||||||
 | 
					Spruce Tree Leaves=
 | 
				
			||||||
 | 
					Spruce Tree Planks=
 | 
				
			||||||
 | 
					Spruce Tree Planks Slab=
 | 
				
			||||||
 | 
					Spruce Tree Planks Stair=
 | 
				
			||||||
 | 
					Spruce Tree Sapling=
 | 
				
			||||||
 | 
					Spruce Tree Trunk=
 | 
				
			||||||
 | 
					Spruce Tree Trunk Slab=
 | 
				
			||||||
 | 
					Spruce Tree Trunk Stair=
 | 
				
			||||||
 | 
					Willow Tree=
 | 
				
			||||||
 | 
					Willow Tree Fence=
 | 
				
			||||||
 | 
					Willow Tree Fence Gate=
 | 
				
			||||||
 | 
					Willow Tree Fence Rail=
 | 
				
			||||||
 | 
					Willow Tree Leaves=
 | 
				
			||||||
 | 
					Willow Tree Planks=
 | 
				
			||||||
 | 
					Willow Tree Planks Slab=
 | 
				
			||||||
 | 
					Willow Tree Planks Stair=
 | 
				
			||||||
 | 
					Willow Tree Sapling=
 | 
				
			||||||
 | 
					Willow Tree Trunk=
 | 
				
			||||||
 | 
					Willow Tree Trunk Slab=
 | 
				
			||||||
 | 
					Willow Tree Trunk Stair=
 | 
				
			||||||
 | 
					Yellow=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[Moretrees] Loaded (2013-02-11) = 
 | 
					# init.lua
 | 
				
			||||||
 | 
					Sapling=
 | 
				
			||||||
 | 
					Tree=
 | 
				
			||||||
 | 
					Wooden Planks=
 | 
				
			||||||
 | 
					Leaves=
 | 
				
			||||||
 | 
					Wooden Fence=
 | 
				
			||||||
 | 
					Wooden Fence Rail=
 | 
				
			||||||
 | 
					Wooden Fence Gate=
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										5
									
								
								mod.conf
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								mod.conf
									
									
									
									
									
								
							@@ -1,3 +1,4 @@
 | 
				
			|||||||
name = moretrees
 | 
					name = moretrees
 | 
				
			||||||
depends = default, biome_lib, vessels
 | 
					depends = xcompat
 | 
				
			||||||
optional_depends = doors, stairs, moreblocks, intllib, farming
 | 
					optional_depends = doors, stairs, moreblocks, farming, default, vessels
 | 
				
			||||||
 | 
					min_minetest_version = 5.2.0
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										605
									
								
								node_defs.lua
									
									
									
									
									
								
							
							
						
						
									
										605
									
								
								node_defs.lua
									
									
									
									
									
								
							@@ -1,32 +1,223 @@
 | 
				
			|||||||
local S = moretrees.intllib
 | 
					local S = minetest.get_translator("moretrees")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
moretrees.avoidnodes = {}
 | 
					moretrees.avoidnodes = {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					local jungle_sapling_texture = minetest.get_modpath("default") and "default_junglesapling.png"
 | 
				
			||||||
 | 
						or "moretrees_cedar_sapling.png"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
moretrees.treelist = {
 | 
					moretrees.treelist = {
 | 
				
			||||||
	{"beech",			"Beech Tree"},
 | 
						{"beech",        S("Beech Tree")},
 | 
				
			||||||
	{"apple_tree",		"Apple Tree"},
 | 
						{"apple_tree",   S("Apple Tree")},
 | 
				
			||||||
	{"oak",				"Oak Tree",			"acorn",					"Acorn",			{-0.2, -0.5, -0.2, 0.2, 0, 0.2},	0.8 },
 | 
						{"oak",          S("Oak Tree"),       "acorn",                S("Acorn"), {-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 0.8 },
 | 
				
			||||||
	{"sequoia",			"Giant Sequoia"},
 | 
						{"sequoia",      S("Giant Sequoia")},
 | 
				
			||||||
	{"birch",			"Birch Tree"},
 | 
						{"birch",        S("Birch Tree")},
 | 
				
			||||||
	{"palm",			"Palm Tree",		"palm_fruit_trunk_gen",		"Palm Tree",		{-0.2, -0.5, -0.2, 0.2, 0, 0.2},	1.0 },
 | 
						{"palm",         S("Palm Tree"),      "palm_fruit_trunk_gen", S("Palm Tree"), {-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 1.0 },
 | 
				
			||||||
	{"date_palm",		"Date Palm Tree",	"date_palm_fruit_trunk",	"Date Palm Tree",	{0, 0, 0, 0, 0, 0},	0.0 },
 | 
						{"date_palm",    S("Date Palm Tree"), "date_palm_fruit_trunk",S("Date Palm Tree"), {0, 0, 0, 0, 0, 0}, 0.0 },
 | 
				
			||||||
	{"spruce",			"Spruce Tree",		"spruce_cone",				"Spruce Cone",		{-0.2, -0.5, -0.2, 0.2, 0, 0.2},	0.8 },
 | 
						{"spruce",       S("Spruce Tree"),    "spruce_cone",          S("Spruce Cone"), {-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 0.8 },
 | 
				
			||||||
	{"cedar",			"Cedar Tree",		"cedar_cone",				"Cedar Cone",		{-0.2, -0.5, -0.2, 0.2, 0, 0.2},	0.8 },
 | 
						{"cedar",        S("Cedar Tree"),     "cedar_cone",           S("Cedar Cone"), {-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 0.8 },
 | 
				
			||||||
	{"poplar",			"Poplar Tree"},
 | 
						{"poplar",       S("Poplar Tree")},
 | 
				
			||||||
	{"poplar_small",	"Poplar Tree"},
 | 
						{"poplar_small", S("Poplar Tree")},
 | 
				
			||||||
	{"willow",			"Willow Tree"},
 | 
						{"willow",       S("Willow Tree")},
 | 
				
			||||||
	{"rubber_tree",		"Rubber Tree"},
 | 
						{"rubber_tree",  S("Rubber Tree")},
 | 
				
			||||||
	{"fir",				"Douglas Fir",		"fir_cone",					"Fir Cone",			{-0.2, -0.5, -0.2, 0.2, 0, 0.2},	0.8 },
 | 
						{"fir",          S("Douglas Fir"),    "fir_cone",             S("Fir Cone"), {-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 0.8 },
 | 
				
			||||||
	{"jungletree",		"Jungle Tree",		nil,						nil,				nil,								nil, "default_junglesapling.png"  },
 | 
						{"jungletree",   S("Jungle Tree"),     nil,                   nil, nil, nil, jungle_sapling_texture  },
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
local dirs1 = { 21, 20, 23, 22, 21 }
 | 
					moretrees.treedesc = {
 | 
				
			||||||
 | 
						beech = {
 | 
				
			||||||
 | 
							trunk = S("Beech Tree Trunk"),
 | 
				
			||||||
 | 
							planks = S("Beech Tree Planks"),
 | 
				
			||||||
 | 
							sapling = S("Beech Tree Sapling"),
 | 
				
			||||||
 | 
							leaves = S("Beech Tree Leaves"),
 | 
				
			||||||
 | 
							trunk_stair = S("Beech Tree Trunk Stair"),
 | 
				
			||||||
 | 
							trunk_slab = S("Beech Tree Trunk Slab"),
 | 
				
			||||||
 | 
							planks_stair = S("Beech Tree Planks Stair"),
 | 
				
			||||||
 | 
							planks_slab = S("Beech Tree Planks Slab"),
 | 
				
			||||||
 | 
							fence = S("Beech Tree Fence"),
 | 
				
			||||||
 | 
							fence_rail = S("Beech Tree Fence Rail"),
 | 
				
			||||||
 | 
							fence_gate = S("Beech Tree Fence Gate"),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						apple_tree = {
 | 
				
			||||||
 | 
							trunk = S("Apple Tree Trunk"),
 | 
				
			||||||
 | 
							planks = S("Apple Tree Planks"),
 | 
				
			||||||
 | 
							sapling = S("Apple Tree Sapling"),
 | 
				
			||||||
 | 
							leaves = S("Apple Tree Leaves"),
 | 
				
			||||||
 | 
							trunk_stair = S("Apple Tree Trunk Stair"),
 | 
				
			||||||
 | 
							trunk_slab = S("Apple Tree Trunk Slab"),
 | 
				
			||||||
 | 
							planks_stair = S("Apple Tree Planks Stair"),
 | 
				
			||||||
 | 
							planks_slab = S("Apple Tree Planks Slab"),
 | 
				
			||||||
 | 
							fence = S("Apple Tree Fence"),
 | 
				
			||||||
 | 
							fence_rail = S("Apple Tree Fence Rail"),
 | 
				
			||||||
 | 
							fence_gate = S("Apple Tree Fence Gate"),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						oak = {
 | 
				
			||||||
 | 
							trunk = S("Oak Tree Trunk"),
 | 
				
			||||||
 | 
							planks = S("Oak Tree Planks"),
 | 
				
			||||||
 | 
							sapling = S("Oak Tree Sapling"),
 | 
				
			||||||
 | 
							leaves = S("Oak Tree Leaves"),
 | 
				
			||||||
 | 
							trunk_stair = S("Oak Tree Trunk Stair"),
 | 
				
			||||||
 | 
							trunk_slab = S("Oak Tree Trunk Slab"),
 | 
				
			||||||
 | 
							planks_stair = S("Oak Tree Planks Stair"),
 | 
				
			||||||
 | 
							planks_slab = S("Oak Tree Planks Slab"),
 | 
				
			||||||
 | 
							fence = S("Oak Tree Fence"),
 | 
				
			||||||
 | 
							fence_rail = S("Oak Tree Fence Rail"),
 | 
				
			||||||
 | 
							fence_gate = S("Oak Tree Fence Gate"),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						sequoia = {
 | 
				
			||||||
 | 
							trunk = S("Giant Sequoia Trunk"),
 | 
				
			||||||
 | 
							planks = S("Giant Sequoia Planks"),
 | 
				
			||||||
 | 
							sapling = S("Giant Sequoia Sapling"),
 | 
				
			||||||
 | 
							leaves = S("Giant Sequoia Leaves"),
 | 
				
			||||||
 | 
							trunk_stair = S("Giant Sequoia Trunk Stair"),
 | 
				
			||||||
 | 
							trunk_slab = S("Giant Sequoia Trunk Slab"),
 | 
				
			||||||
 | 
							planks_stair = S("Giant Sequoia Planks Stair"),
 | 
				
			||||||
 | 
							planks_slab = S("Giant Sequoia Planks Slab"),
 | 
				
			||||||
 | 
							fence = S("Giant Sequoia Fence"),
 | 
				
			||||||
 | 
							fence_rail = S("Giant Sequoia Fence Rail"),
 | 
				
			||||||
 | 
							fence_gate = S("Giant Sequoia Fence Gate"),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						birch = {
 | 
				
			||||||
 | 
							trunk = S("Birch Tree Trunk"),
 | 
				
			||||||
 | 
							planks = S("Birch Tree Planks"),
 | 
				
			||||||
 | 
							sapling = S("Birch Tree Sapling"),
 | 
				
			||||||
 | 
							leaves = S("Birch Tree Leaves"),
 | 
				
			||||||
 | 
							trunk_stair = S("Birch Tree Trunk Stair"),
 | 
				
			||||||
 | 
							trunk_slab = S("Birch Tree Trunk Slab"),
 | 
				
			||||||
 | 
							planks_stair = S("Birch Tree Planks Stair"),
 | 
				
			||||||
 | 
							planks_slab = S("Birch Tree Planks Slab"),
 | 
				
			||||||
 | 
							fence = S("Birch Tree Fence"),
 | 
				
			||||||
 | 
							fence_rail = S("Birch Tree Fence Rail"),
 | 
				
			||||||
 | 
							fence_gate = S("Birch Tree Fence Gate"),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						palm = {
 | 
				
			||||||
 | 
							trunk = S("Palm Tree Trunk"),
 | 
				
			||||||
 | 
							planks = S("Palm Tree Planks"),
 | 
				
			||||||
 | 
							sapling = S("Palm Tree Sapling"),
 | 
				
			||||||
 | 
							leaves = S("Palm Tree Leaves"),
 | 
				
			||||||
 | 
							trunk_stair = S("Palm Tree Trunk Stair"),
 | 
				
			||||||
 | 
							trunk_slab = S("Palm Tree Trunk Slab"),
 | 
				
			||||||
 | 
							planks_stair = S("Palm Tree Planks Stair"),
 | 
				
			||||||
 | 
							planks_slab = S("Palm Tree Planks Slab"),
 | 
				
			||||||
 | 
							fence = S("Palm Tree Fence"),
 | 
				
			||||||
 | 
							fence_rail = S("Palm Tree Fence Rail"),
 | 
				
			||||||
 | 
							fence_gate = S("Palm Tree Fence Gate"),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						date_palm = {
 | 
				
			||||||
 | 
							trunk = S("Date Palm Tree Trunk"),
 | 
				
			||||||
 | 
							planks = S("Date Palm Tree Planks"),
 | 
				
			||||||
 | 
							sapling = S("Date Palm Tree Sapling"),
 | 
				
			||||||
 | 
							leaves = S("Date Palm Tree Leaves"),
 | 
				
			||||||
 | 
							trunk_stair = S("Date Palm Tree Trunk Stair"),
 | 
				
			||||||
 | 
							trunk_slab = S("Date Palm Tree Trunk Slab"),
 | 
				
			||||||
 | 
							planks_stair = S("Date Palm Tree Planks Stair"),
 | 
				
			||||||
 | 
							planks_slab = S("Date Palm Tree Planks Slab"),
 | 
				
			||||||
 | 
							fence = S("Date Palm Tree Fence"),
 | 
				
			||||||
 | 
							fence_rail = S("Date Palm Tree Fence Rail"),
 | 
				
			||||||
 | 
							fence_gate = S("Date Palm Tree Fence Gate"),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						spruce = {
 | 
				
			||||||
 | 
							trunk = S("Spruce Tree Trunk"),
 | 
				
			||||||
 | 
							planks = S("Spruce Tree Planks"),
 | 
				
			||||||
 | 
							sapling = S("Spruce Tree Sapling"),
 | 
				
			||||||
 | 
							leaves = S("Spruce Tree Leaves"),
 | 
				
			||||||
 | 
							trunk_stair = S("Spruce Tree Trunk Stair"),
 | 
				
			||||||
 | 
							trunk_slab = S("Spruce Tree Trunk Slab"),
 | 
				
			||||||
 | 
							planks_stair = S("Spruce Tree Planks Stair"),
 | 
				
			||||||
 | 
							planks_slab = S("Spruce Tree Planks Slab"),
 | 
				
			||||||
 | 
							fence = S("Spruce Tree Fence"),
 | 
				
			||||||
 | 
							fence_rail = S("Spruce Tree Fence Rail"),
 | 
				
			||||||
 | 
							fence_gate = S("Spruce Tree Fence Gate"),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						cedar =  {
 | 
				
			||||||
 | 
							trunk = S("Cedar Tree Trunk"),
 | 
				
			||||||
 | 
							planks = S("Cedar Tree Planks"),
 | 
				
			||||||
 | 
							sapling = S("Cedar Tree Sapling"),
 | 
				
			||||||
 | 
							leaves = S("Cedar Tree Leaves"),
 | 
				
			||||||
 | 
							trunk_stair = S("Cedar Tree Trunk Stair"),
 | 
				
			||||||
 | 
							trunk_slab = S("Cedar Tree Trunk Slab"),
 | 
				
			||||||
 | 
							planks_stair = S("Cedar Tree Planks Stair"),
 | 
				
			||||||
 | 
							planks_slab = S("Cedar Tree Planks Slab"),
 | 
				
			||||||
 | 
							fence = S("Cedar Tree Fence"),
 | 
				
			||||||
 | 
							fence_rail = S("Cedar Tree Fence Rail"),
 | 
				
			||||||
 | 
							fence_gate = S("Cedar Tree Fence Gate"),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						poplar = {
 | 
				
			||||||
 | 
							trunk = S("Poplar Tree Trunk"),
 | 
				
			||||||
 | 
							planks = S("Poplar Tree Planks"),
 | 
				
			||||||
 | 
							sapling = S("Poplar Tree Sapling"),
 | 
				
			||||||
 | 
							leaves = S("Poplar Tree Leaves"),
 | 
				
			||||||
 | 
							trunk_stair = S("Poplar Tree Trunk Stair"),
 | 
				
			||||||
 | 
							trunk_slab = S("Poplar Tree Trunk Slab"),
 | 
				
			||||||
 | 
							planks_stair = S("Poplar Tree Planks Stair"),
 | 
				
			||||||
 | 
							planks_slab = S("Poplar Tree Planks Slab"),
 | 
				
			||||||
 | 
							fence = S("Poplar Tree Fence"),
 | 
				
			||||||
 | 
							fence_rail = S("Poplar Tree Fence Rail"),
 | 
				
			||||||
 | 
							fence_gate = S("Poplar Tree Fence Gate"),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						poplar_small = {
 | 
				
			||||||
 | 
							sapling = S("Small poplar Tree Sapling"),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						willow = {
 | 
				
			||||||
 | 
							trunk = S("Willow Tree Trunk"),
 | 
				
			||||||
 | 
							planks = S("Willow Tree Planks"),
 | 
				
			||||||
 | 
							sapling = S("Willow Tree Sapling"),
 | 
				
			||||||
 | 
							leaves = S("Willow Tree Leaves"),
 | 
				
			||||||
 | 
							trunk_stair = S("Willow Tree Trunk Stair"),
 | 
				
			||||||
 | 
							trunk_slab = S("Willow Tree Trunk Slab"),
 | 
				
			||||||
 | 
							planks_stair = S("Willow Tree Planks Stair"),
 | 
				
			||||||
 | 
							planks_slab = S("Willow Tree Planks Slab"),
 | 
				
			||||||
 | 
							fence = S("Willow Tree Fence"),
 | 
				
			||||||
 | 
							fence_rail = S("Willow Tree Fence Rail"),
 | 
				
			||||||
 | 
							fence_gate = S("Willow Tree Fence Gate"),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						rubber_tree = {
 | 
				
			||||||
 | 
							trunk = S("Rubber Tree Trunk"),
 | 
				
			||||||
 | 
							planks = S("Rubber Tree Planks"),
 | 
				
			||||||
 | 
							sapling = S("Rubber Tree Sapling"),
 | 
				
			||||||
 | 
							leaves = S("Rubber Tree Leaves"),
 | 
				
			||||||
 | 
							trunk_stair = S("Rubber Tree Trunk Stair"),
 | 
				
			||||||
 | 
							trunk_slab = S("Rubber Tree Trunk Slab"),
 | 
				
			||||||
 | 
							planks_stair = S("Rubber Tree Planks Stair"),
 | 
				
			||||||
 | 
							planks_slab = S("Rubber Tree Planks Slab"),
 | 
				
			||||||
 | 
							fence = S("Rubber Tree Fence"),
 | 
				
			||||||
 | 
							fence_rail = S("Rubber Tree Fence Rail"),
 | 
				
			||||||
 | 
							fence_gate = S("Rubber Tree Fence Gate"),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						fir = {
 | 
				
			||||||
 | 
							trunk = S("Douglas Fir Trunk"),
 | 
				
			||||||
 | 
							planks = S("Douglas Fir Planks"),
 | 
				
			||||||
 | 
							sapling = S("Douglas Fir Sapling"),
 | 
				
			||||||
 | 
							leaves = S("Douglas Fir Leaves"),
 | 
				
			||||||
 | 
							trunk_stair = S("Douglas Fir Trunk Stair"),
 | 
				
			||||||
 | 
							trunk_slab = S("Douglas Fir Trunk Slab"),
 | 
				
			||||||
 | 
							planks_stair = S("Douglas Fir Planks Stair"),
 | 
				
			||||||
 | 
							planks_slab = S("Douglas Fir Planks Slab"),
 | 
				
			||||||
 | 
							fence = S("Douglas Fir Fence"),
 | 
				
			||||||
 | 
							fence_rail = S("Douglas Fir Fence Rail"),
 | 
				
			||||||
 | 
							fence_gate = S("Douglas Fir Fence Gate"),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						jungletree = {
 | 
				
			||||||
 | 
							trunk = S("Jungle Tree Trunk"),
 | 
				
			||||||
 | 
							planks = S("Jungle Tree Planks"),
 | 
				
			||||||
 | 
							sapling = S("Jungle Tree Sapling"),
 | 
				
			||||||
 | 
							leaves = S("Jungle Tree Leaves"),
 | 
				
			||||||
 | 
							trunk_stair = S("Jungle Tree Trunk Stair"),
 | 
				
			||||||
 | 
							trunk_slab = S("Jungle Tree Trunk Slab"),
 | 
				
			||||||
 | 
							planks_stair = S("Jungle Tree Planks Stair"),
 | 
				
			||||||
 | 
							planks_slab = S("Jungle Tree Planks Slab"),
 | 
				
			||||||
 | 
							fence = S("Jungle Tree Fence"),
 | 
				
			||||||
 | 
							fence_rail = S("Jungle Tree Fence Rail"),
 | 
				
			||||||
 | 
							fence_gate = S("Jungle Tree Fence Gate"),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- local dirs1 = { 21, 20, 23, 22, 21 }
 | 
				
			||||||
local dirs2 = { 12, 9, 18, 7, 12 }
 | 
					local dirs2 = { 12, 9, 18, 7, 12 }
 | 
				
			||||||
local dirs3 = { 14, 11, 16, 5, 14 }
 | 
					-- local dirs3 = { 14, 11, 16, 5, 14 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
local moretrees_new_leaves_drawtype = "allfaces_optional"
 | 
					local moretrees_new_leaves_drawtype = "allfaces_optional"
 | 
				
			||||||
local moretrees_plantlike_leaves_visual_scale = 1
 | 
					local moretrees_plantlike_leaves_visual_scale = 1
 | 
				
			||||||
local moretrees_new_leaves_waving = 1
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
if moretrees.plantlike_leaves then
 | 
					if moretrees.plantlike_leaves then
 | 
				
			||||||
	moretrees_new_leaves_drawtype = "plantlike"
 | 
						moretrees_new_leaves_drawtype = "plantlike"
 | 
				
			||||||
@@ -35,8 +226,8 @@ end
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
-- redefine default leaves to handle plantlike and/or leaf decay options
 | 
					-- redefine default leaves to handle plantlike and/or leaf decay options
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if moretrees.plantlike_leaves then
 | 
					if minetest.get_modpath("default") and moretrees.plantlike_leaves then
 | 
				
			||||||
	minetest.override_item("default:leaves", {
 | 
						minetest.override_item(xcompat.materials.apple_leaves, {
 | 
				
			||||||
		inventory_image = minetest.inventorycube("default_leaves.png"),
 | 
							inventory_image = minetest.inventorycube("default_leaves.png"),
 | 
				
			||||||
		drawtype = "plantlike",
 | 
							drawtype = "plantlike",
 | 
				
			||||||
		visual_scale = math.sqrt(2)
 | 
							visual_scale = math.sqrt(2)
 | 
				
			||||||
@@ -45,8 +236,8 @@ end
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
-- redefine default jungle leaves for same
 | 
					-- redefine default jungle leaves for same
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if moretrees.plantlike_leaves then
 | 
					if minetest.get_modpath("default") and moretrees.plantlike_leaves then
 | 
				
			||||||
	minetest.override_item("default:jungleleaves", {
 | 
						minetest.override_item(xcompat.materials.jungle_leaves, {
 | 
				
			||||||
		inventory_image = minetest.inventorycube("default_jungleleaves.png"),
 | 
							inventory_image = minetest.inventorycube("default_jungleleaves.png"),
 | 
				
			||||||
		drawtype = "plantlike",
 | 
							drawtype = "plantlike",
 | 
				
			||||||
		visual_scale = math.sqrt(2)
 | 
							visual_scale = math.sqrt(2)
 | 
				
			||||||
@@ -55,7 +246,6 @@ end
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
for i in ipairs(moretrees.treelist) do
 | 
					for i in ipairs(moretrees.treelist) do
 | 
				
			||||||
	local treename = moretrees.treelist[i][1]
 | 
						local treename = moretrees.treelist[i][1]
 | 
				
			||||||
	local treedesc = moretrees.treelist[i][2]
 | 
					 | 
				
			||||||
	local fruit = moretrees.treelist[i][3]
 | 
						local fruit = moretrees.treelist[i][3]
 | 
				
			||||||
	local fruitdesc = moretrees.treelist[i][4]
 | 
						local fruitdesc = moretrees.treelist[i][4]
 | 
				
			||||||
	local selbox = moretrees.treelist[i][5]
 | 
						local selbox = moretrees.treelist[i][5]
 | 
				
			||||||
@@ -74,17 +264,17 @@ for i in ipairs(moretrees.treelist) do
 | 
				
			|||||||
		droprarity = 20
 | 
							droprarity = 20
 | 
				
			||||||
		decay = moretrees.palm_leafdecay_radius
 | 
							decay = moretrees.palm_leafdecay_radius
 | 
				
			||||||
	elseif treename == "date_palm" then
 | 
						elseif treename == "date_palm" then
 | 
				
			||||||
		decay = moretrees.palm_leafdecay_radius
 | 
							decay = moretrees.date_palm_leafdecay_radius
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if treename ~= "jungletree"  -- the default game provides jungle tree and pine trunk/planks nodes.
 | 
						-- dont register planks/nodes for trees from default and small varients for trees
 | 
				
			||||||
		and treename ~= "poplar_small"
 | 
						local split_tn = treename:split("_")
 | 
				
			||||||
		and treename ~= "pine" then
 | 
						if treename ~= "jungletree" and treename ~= "pine" and split_tn[2]~="small" then
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		saptex = "moretrees_"..treename.."_sapling.png"
 | 
							saptex = "moretrees_"..treename.."_sapling.png"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		minetest.register_node("moretrees:"..treename.."_trunk", {
 | 
							minetest.register_node("moretrees:"..treename.."_trunk", {
 | 
				
			||||||
			description = S(treedesc.." Trunk"),
 | 
								description = moretrees.treedesc[treename].trunk,
 | 
				
			||||||
			tiles = {
 | 
								tiles = {
 | 
				
			||||||
				"moretrees_"..treename.."_trunk_top.png",
 | 
									"moretrees_"..treename.."_trunk_top.png",
 | 
				
			||||||
				"moretrees_"..treename.."_trunk_top.png",
 | 
									"moretrees_"..treename.."_trunk_top.png",
 | 
				
			||||||
@@ -93,55 +283,31 @@ for i in ipairs(moretrees.treelist) do
 | 
				
			|||||||
			paramtype2 = "facedir",
 | 
								paramtype2 = "facedir",
 | 
				
			||||||
			is_ground_content = false,
 | 
								is_ground_content = false,
 | 
				
			||||||
			groups = {tree=1,snappy=1,choppy=2,oddly_breakable_by_hand=1,flammable=2},
 | 
								groups = {tree=1,snappy=1,choppy=2,oddly_breakable_by_hand=1,flammable=2},
 | 
				
			||||||
			sounds = default.node_sound_wood_defaults(),
 | 
								sounds = xcompat.sounds.node_sound_wood_defaults(),
 | 
				
			||||||
			on_place = minetest.rotate_node,
 | 
								on_place = minetest.rotate_node,
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		minetest.register_node("moretrees:"..treename.."_planks", {
 | 
							if moretrees.enable_planks then
 | 
				
			||||||
			description = S(treedesc.." Planks"),
 | 
								minetest.register_node("moretrees:"..treename.."_planks", {
 | 
				
			||||||
			tiles = {"moretrees_"..treename.."_wood.png"},
 | 
									description = moretrees.treedesc[treename].planks,
 | 
				
			||||||
			is_ground_content = false,
 | 
									tiles = {"moretrees_"..treename.."_wood.png"},
 | 
				
			||||||
			groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1},
 | 
									is_ground_content = false,
 | 
				
			||||||
			sounds = default.node_sound_wood_defaults(),
 | 
									groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1},
 | 
				
			||||||
		})
 | 
									sounds = xcompat.sounds.node_sound_wood_defaults(),
 | 
				
			||||||
 | 
								})
 | 
				
			||||||
		minetest.register_node("moretrees:"..treename.."_sapling", {
 | 
							end
 | 
				
			||||||
			description = S(treedesc.." Sapling"),
 | 
					 | 
				
			||||||
			drawtype = "plantlike",
 | 
					 | 
				
			||||||
			tiles = {saptex},
 | 
					 | 
				
			||||||
			inventory_image = saptex,
 | 
					 | 
				
			||||||
			paramtype = "light",
 | 
					 | 
				
			||||||
			paramtype2 = "waving",
 | 
					 | 
				
			||||||
			walkable = false,
 | 
					 | 
				
			||||||
			is_ground_content = true,
 | 
					 | 
				
			||||||
			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,sapling=1},
 | 
					 | 
				
			||||||
			sounds = default.node_sound_defaults(),
 | 
					 | 
				
			||||||
			on_place = function(itemstack, placer, pointed_thing)
 | 
					 | 
				
			||||||
				itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
 | 
					 | 
				
			||||||
					"moretrees:" ..treename.. "_sapling",
 | 
					 | 
				
			||||||
					-- minp, maxp to be checked, relative to sapling pos
 | 
					 | 
				
			||||||
					-- minp_relative.y = 1 because sapling pos has been checked
 | 
					 | 
				
			||||||
					{x = -3, y = 1, z = -3},
 | 
					 | 
				
			||||||
					{x = 3, y = 6, z = 3},
 | 
					 | 
				
			||||||
					-- maximum interval of interior volume check
 | 
					 | 
				
			||||||
					4)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
				return itemstack
 | 
					 | 
				
			||||||
			end,
 | 
					 | 
				
			||||||
		})
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		local moretrees_leaves_inventory_image = nil
 | 
							local moretrees_leaves_inventory_image = nil
 | 
				
			||||||
 | 
							local moretrees_new_leaves_waving = nil
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if moretrees.plantlike_leaves then
 | 
							if moretrees.plantlike_leaves then
 | 
				
			||||||
			moretrees_leaves_inventory_image = minetest.inventorycube("moretrees_"..treename.."_leaves.png")
 | 
								moretrees_leaves_inventory_image = minetest.inventorycube("moretrees_"..treename.."_leaves.png")
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
								moretrees_new_leaves_waving = 1
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		minetest.register_node("moretrees:"..treename.."_leaves", {
 | 
							minetest.register_node("moretrees:"..treename.."_leaves", {
 | 
				
			||||||
			description = S(treedesc.." Leaves"),
 | 
								description = moretrees.treedesc[treename].leaves,
 | 
				
			||||||
			drawtype = moretrees_new_leaves_drawtype,
 | 
								drawtype = moretrees_new_leaves_drawtype,
 | 
				
			||||||
			waving = moretrees_new_leaves_waving,
 | 
								waving = moretrees_new_leaves_waving,
 | 
				
			||||||
			visual_scale = moretrees_plantlike_leaves_visual_scale,
 | 
								visual_scale = moretrees_plantlike_leaves_visual_scale,
 | 
				
			||||||
@@ -150,7 +316,7 @@ for i in ipairs(moretrees.treelist) do
 | 
				
			|||||||
			paramtype = "light",
 | 
								paramtype = "light",
 | 
				
			||||||
			is_ground_content = false,
 | 
								is_ground_content = false,
 | 
				
			||||||
			groups = {snappy = 3, flammable = 2, leaves = 1, moretrees_leaves = 1, leafdecay = 1},
 | 
								groups = {snappy = 3, flammable = 2, leaves = 1, moretrees_leaves = 1, leafdecay = 1},
 | 
				
			||||||
			sounds = default.node_sound_leaves_defaults(),
 | 
								sounds = xcompat.sounds.node_sound_leaves_defaults(),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			drop = {
 | 
								drop = {
 | 
				
			||||||
				max_items = 1,
 | 
									max_items = 1,
 | 
				
			||||||
@@ -161,27 +327,25 @@ for i in ipairs(moretrees.treelist) do
 | 
				
			|||||||
			},
 | 
								},
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if moretrees.enable_stairs then
 | 
							if minetest.get_modpath("moreblocks") then
 | 
				
			||||||
			if minetest.get_modpath("moreblocks") then
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	--			stairsplus:register_all(modname, subname, recipeitem, {fields})
 | 
								stairsplus:register_all(
 | 
				
			||||||
 | 
									"moretrees",
 | 
				
			||||||
				stairsplus:register_all(
 | 
									treename.."_trunk",
 | 
				
			||||||
					"moretrees",
 | 
									"moretrees:"..treename.."_trunk",
 | 
				
			||||||
					treename.."_trunk",
 | 
									{
 | 
				
			||||||
					"moretrees:"..treename.."_trunk",
 | 
										groups = { snappy=1, choppy=2, oddly_breakable_by_hand=1, flammable=2, not_in_creative_inventory=1 },
 | 
				
			||||||
					{
 | 
										tiles =	{
 | 
				
			||||||
						groups = { snappy=1, choppy=2, oddly_breakable_by_hand=1, flammable=2, not_in_creative_inventory=1 },
 | 
											"moretrees_"..treename.."_trunk_top.png",
 | 
				
			||||||
						tiles =	{
 | 
											"moretrees_"..treename.."_trunk_top.png",
 | 
				
			||||||
							"moretrees_"..treename.."_trunk_top.png",
 | 
											"moretrees_"..treename.."_trunk.png"
 | 
				
			||||||
							"moretrees_"..treename.."_trunk_top.png",
 | 
										},
 | 
				
			||||||
							"moretrees_"..treename.."_trunk.png"
 | 
										description = moretrees.treedesc[treename].trunk,
 | 
				
			||||||
						},
 | 
										drop = treename.."_trunk",
 | 
				
			||||||
						description = S(treedesc.." Trunk"),
 | 
									}
 | 
				
			||||||
						drop = treename.."_trunk",
 | 
								)
 | 
				
			||||||
					}
 | 
					 | 
				
			||||||
				)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								if moretrees.enable_planks then
 | 
				
			||||||
				stairsplus:register_all(
 | 
									stairsplus:register_all(
 | 
				
			||||||
					"moretrees",
 | 
										"moretrees",
 | 
				
			||||||
					treename.."_planks",
 | 
										treename.."_planks",
 | 
				
			||||||
@@ -189,42 +353,44 @@ for i in ipairs(moretrees.treelist) do
 | 
				
			|||||||
					{
 | 
										{
 | 
				
			||||||
						groups = { snappy=1, choppy=2, oddly_breakable_by_hand=2, flammable=3, not_in_creative_inventory=1 },
 | 
											groups = { snappy=1, choppy=2, oddly_breakable_by_hand=2, flammable=3, not_in_creative_inventory=1 },
 | 
				
			||||||
						tiles = { "moretrees_"..treename.."_wood.png" },
 | 
											tiles = { "moretrees_"..treename.."_wood.png" },
 | 
				
			||||||
						description = S(treedesc.." Planks"),
 | 
											description = moretrees.treedesc[treename].planks,
 | 
				
			||||||
						drop = treename.."_planks",
 | 
											drop = treename.."_planks",
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
				)
 | 
									)
 | 
				
			||||||
			elseif minetest.get_modpath("stairs") then
 | 
								end
 | 
				
			||||||
				stairs.register_stair_and_slab(
 | 
							elseif minetest.get_modpath("stairs") then
 | 
				
			||||||
					"moretrees_"..treename.."_trunk",
 | 
								stairs.register_stair_and_slab(
 | 
				
			||||||
					"moretrees:"..treename.."_trunk",
 | 
									"moretrees_"..treename.."_trunk",
 | 
				
			||||||
					{ snappy=1, choppy=2, oddly_breakable_by_hand=1, flammable=2 },
 | 
									"moretrees:"..treename.."_trunk",
 | 
				
			||||||
					{	"moretrees_"..treename.."_trunk_top.png",
 | 
									{ snappy=1, choppy=2, oddly_breakable_by_hand=1, flammable=2 },
 | 
				
			||||||
						"moretrees_"..treename.."_trunk_top.png",
 | 
									{	"moretrees_"..treename.."_trunk_top.png",
 | 
				
			||||||
						"moretrees_"..treename.."_trunk.png"
 | 
										"moretrees_"..treename.."_trunk_top.png",
 | 
				
			||||||
					},
 | 
										"moretrees_"..treename.."_trunk.png"
 | 
				
			||||||
					S(treedesc.." Trunk Stair"),
 | 
									},
 | 
				
			||||||
					S(treedesc.." Trunk Slab"),
 | 
									moretrees.treedesc[treename].trunk_stair,
 | 
				
			||||||
					default.node_sound_wood_defaults()
 | 
									moretrees.treedesc[treename].trunk_slab,
 | 
				
			||||||
				)
 | 
									xcompat.sounds.node_sound_wood_defaults()
 | 
				
			||||||
 | 
								)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								if moretrees.enable_planks then
 | 
				
			||||||
				stairs.register_stair_and_slab(
 | 
									stairs.register_stair_and_slab(
 | 
				
			||||||
					"moretrees_"..treename.."_planks",
 | 
										"moretrees_"..treename.."_planks",
 | 
				
			||||||
					"moretrees:"..treename.."_planks",
 | 
										"moretrees:"..treename.."_planks",
 | 
				
			||||||
					{ snappy=1, choppy=2, oddly_breakable_by_hand=2, flammable=3 },
 | 
										{ snappy=1, choppy=2, oddly_breakable_by_hand=2, flammable=3 },
 | 
				
			||||||
					{ "moretrees_"..treename.."_wood.png" },
 | 
										{ "moretrees_"..treename.."_wood.png" },
 | 
				
			||||||
					S(treedesc.." Planks Stair"),
 | 
										moretrees.treedesc[treename].planks_stair,
 | 
				
			||||||
					S(treedesc.." Planks Slab"),
 | 
										moretrees.treedesc[treename].planks_slab,
 | 
				
			||||||
					default.node_sound_wood_defaults()
 | 
										xcompat.sounds.node_sound_wood_defaults()
 | 
				
			||||||
				)
 | 
									)
 | 
				
			||||||
 | 
					 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if moretrees.enable_fences then
 | 
							if minetest.get_modpath("default") and moretrees.enable_planks then
 | 
				
			||||||
			local planks_name = "moretrees:" .. treename .. "_planks"
 | 
								local planks_name = "moretrees:" .. treename .. "_planks"
 | 
				
			||||||
			local planks_tile = "moretrees_" .. treename .. "_wood.png"
 | 
								local planks_tile = "moretrees_" .. treename .. "_wood.png"
 | 
				
			||||||
			default.register_fence("moretrees:" .. treename .. "_fence", {
 | 
								default.register_fence("moretrees:" .. treename .. "_fence", {
 | 
				
			||||||
				description = S(treedesc.." Fence"),
 | 
									description = moretrees.treedesc[treename].fence,
 | 
				
			||||||
				texture = planks_tile,
 | 
									texture = planks_tile,
 | 
				
			||||||
				inventory_image = "default_fence_overlay.png^" .. planks_tile ..
 | 
									inventory_image = "default_fence_overlay.png^" .. planks_tile ..
 | 
				
			||||||
										"^default_fence_overlay.png^[makealpha:255,126,126",
 | 
															"^default_fence_overlay.png^[makealpha:255,126,126",
 | 
				
			||||||
@@ -232,10 +398,10 @@ for i in ipairs(moretrees.treelist) do
 | 
				
			|||||||
										"^default_fence_overlay.png^[makealpha:255,126,126",
 | 
															"^default_fence_overlay.png^[makealpha:255,126,126",
 | 
				
			||||||
				material = planks_name,
 | 
									material = planks_name,
 | 
				
			||||||
				groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
 | 
									groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
 | 
				
			||||||
				sounds = default.node_sound_wood_defaults()
 | 
									sounds = xcompat.sounds.node_sound_wood_defaults()
 | 
				
			||||||
			})
 | 
								})
 | 
				
			||||||
			default.register_fence_rail("moretrees:" .. treename .. "_fence_rail", {
 | 
								default.register_fence_rail("moretrees:" .. treename .. "_fence_rail", {
 | 
				
			||||||
				description = S(treedesc.." Fence Rail"),
 | 
									description = moretrees.treedesc[treename].fence_rail,
 | 
				
			||||||
				texture = planks_tile,
 | 
									texture = planks_tile,
 | 
				
			||||||
				inventory_image = "default_fence_rail_overlay.png^" .. planks_tile ..
 | 
									inventory_image = "default_fence_rail_overlay.png^" .. planks_tile ..
 | 
				
			||||||
										"^default_fence_rail_overlay.png^[makealpha:255,126,126",
 | 
															"^default_fence_rail_overlay.png^[makealpha:255,126,126",
 | 
				
			||||||
@@ -243,11 +409,11 @@ for i in ipairs(moretrees.treelist) do
 | 
				
			|||||||
										"^default_fence_rail_overlay.png^[makealpha:255,126,126",
 | 
															"^default_fence_rail_overlay.png^[makealpha:255,126,126",
 | 
				
			||||||
				material = planks_name,
 | 
									material = planks_name,
 | 
				
			||||||
				groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
 | 
									groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
 | 
				
			||||||
				sounds = default.node_sound_wood_defaults()
 | 
									sounds = xcompat.sounds.node_sound_wood_defaults()
 | 
				
			||||||
			})
 | 
								})
 | 
				
			||||||
			if minetest.global_exists("doors") then
 | 
								if minetest.global_exists("doors") then
 | 
				
			||||||
				doors.register_fencegate("moretrees:" .. treename .. "_gate", {
 | 
									doors.register_fencegate("moretrees:" .. treename .. "_gate", {
 | 
				
			||||||
					description = S(treedesc .. " Fence Gate"),
 | 
										description = moretrees.treedesc[treename].fence_gate,
 | 
				
			||||||
					texture = planks_tile,
 | 
										texture = planks_tile,
 | 
				
			||||||
					material = planks_name,
 | 
										material = planks_name,
 | 
				
			||||||
					groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
 | 
										groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
 | 
				
			||||||
@@ -256,25 +422,30 @@ for i in ipairs(moretrees.treelist) do
 | 
				
			|||||||
		end
 | 
							end
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	minetest.register_node("moretrees:"..treename.."_sapling_ongen", {
 | 
						-- the default game provides jungle tree and pine saplings.
 | 
				
			||||||
		description = S(treedesc.." Sapling (fast growth)"),
 | 
						if treename~="jungletree" and treename ~= "pine" then
 | 
				
			||||||
		drawtype = "plantlike",
 | 
							local regular_groups = {snappy=2,dig_immediate=3,flammable=2,attached_node=1,sapling=1}
 | 
				
			||||||
		tiles = {saptex},
 | 
							if minetest.settings:get_bool("creative_mode", false) then
 | 
				
			||||||
		inventory_image = saptex,
 | 
								regular_groups["not_in_creative_inventory"]=1
 | 
				
			||||||
		paramtype = "light",
 | 
							end
 | 
				
			||||||
		paramtype2 = "waving",
 | 
					
 | 
				
			||||||
		walkable = false,
 | 
							minetest.register_node("moretrees:"..treename.."_sapling", {
 | 
				
			||||||
		is_ground_content = true,
 | 
								description = moretrees.treedesc[treename].sapling,
 | 
				
			||||||
		selection_box = {
 | 
								drawtype = "plantlike",
 | 
				
			||||||
			type = "fixed",
 | 
								tiles = {split_tn[2] and split_tn[2]=="small" and "moretrees_" .. treename .. "_sapling.png" or saptex},
 | 
				
			||||||
			fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3}
 | 
								inventory_image = split_tn[2] and split_tn[2]=="small" and "moretrees_" .. treename .. "_sapling.png" or saptex,
 | 
				
			||||||
		},
 | 
								paramtype = "light",
 | 
				
			||||||
		groups = {snappy=2,dig_immediate=3,flammable=2,attached_node=1,sapling=1},
 | 
								walkable = false,
 | 
				
			||||||
		sounds = default.node_sound_defaults(),
 | 
								is_ground_content = true,
 | 
				
			||||||
		drop = "moretrees:"..treename.."_sapling",
 | 
								selection_box = {
 | 
				
			||||||
		on_place = function(itemstack, placer, pointed_thing)
 | 
									type = "fixed",
 | 
				
			||||||
				itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
 | 
									fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3}
 | 
				
			||||||
					"moretrees:" ..treename.. "_sapling_ongen",
 | 
								},
 | 
				
			||||||
 | 
								groups = regular_groups,
 | 
				
			||||||
 | 
								sounds = xcompat.sounds.node_sound_default(),
 | 
				
			||||||
 | 
								on_place = function(itemstack, placer, pointed_thing)
 | 
				
			||||||
 | 
									itemstack = xcompat.functions.sapling_on_place(itemstack, placer, pointed_thing,
 | 
				
			||||||
 | 
										"moretrees:" ..treename.. "_sapling",
 | 
				
			||||||
					-- minp, maxp to be checked, relative to sapling pos
 | 
										-- minp, maxp to be checked, relative to sapling pos
 | 
				
			||||||
					-- minp_relative.y = 1 because sapling pos has been checked
 | 
										-- minp_relative.y = 1 because sapling pos has been checked
 | 
				
			||||||
					{x = -3, y = 1, z = -3},
 | 
										{x = -3, y = 1, z = -3},
 | 
				
			||||||
@@ -284,13 +455,89 @@ for i in ipairs(moretrees.treelist) do
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
				return itemstack
 | 
									return itemstack
 | 
				
			||||||
			end,
 | 
								end,
 | 
				
			||||||
 | 
								on_construct = function(pos)
 | 
				
			||||||
 | 
									minetest.get_node_timer(pos):start(300)
 | 
				
			||||||
 | 
								end,
 | 
				
			||||||
 | 
								on_timer = function(pos, elapsed)
 | 
				
			||||||
 | 
									if moretrees.can_grow(pos, treename) then
 | 
				
			||||||
 | 
										--moretrees["grow_" .. treename](pos)
 | 
				
			||||||
 | 
										minetest.set_node(pos, {name="air"})
 | 
				
			||||||
 | 
										if type(moretrees["spawn_" .. treename .. "_object"])=="string" then
 | 
				
			||||||
 | 
											local split = moretrees["spawn_" .. treename .. "_object"]:split(".")
 | 
				
			||||||
 | 
											moretrees[split[2]](pos)
 | 
				
			||||||
 | 
										else
 | 
				
			||||||
 | 
											minetest.spawn_tree(pos, moretrees["spawn_" .. treename .. "_object"])
 | 
				
			||||||
 | 
										end
 | 
				
			||||||
 | 
									else
 | 
				
			||||||
 | 
										minetest.get_node_timer(pos):start(300)
 | 
				
			||||||
 | 
									end
 | 
				
			||||||
 | 
								end,
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						local ongen_groups = {
 | 
				
			||||||
 | 
							snappy = 2,
 | 
				
			||||||
 | 
							dig_immediate = 3,
 | 
				
			||||||
 | 
							flammable = 2,
 | 
				
			||||||
 | 
							attached_node = 1,
 | 
				
			||||||
 | 
							sapling = 1,
 | 
				
			||||||
 | 
							moretrees_ongen = 1,
 | 
				
			||||||
 | 
							not_in_creative_inventory = 1
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if minetest.settings:get_bool("creative_mode", false) then
 | 
				
			||||||
 | 
							ongen_groups["not_in_creative_inventory"]=nil
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
						minetest.register_node("moretrees:"..treename.."_sapling_ongen", {
 | 
				
			||||||
 | 
							description = S("@1 (fast growth)", moretrees.treedesc[treename].sapling),
 | 
				
			||||||
 | 
							drawtype = "plantlike",
 | 
				
			||||||
 | 
							tiles = {split_tn[2] and split_tn[2]=="small" and "moretrees_" .. treename .. "_sapling.png" or saptex,},
 | 
				
			||||||
 | 
							inventory_image = split_tn[2] and split_tn[2]=="small" and "moretrees_" .. treename .. "_sapling.png" or saptex,
 | 
				
			||||||
 | 
							paramtype = "light",
 | 
				
			||||||
 | 
							walkable = false,
 | 
				
			||||||
 | 
							is_ground_content = true,
 | 
				
			||||||
 | 
							selection_box = {
 | 
				
			||||||
 | 
								type = "fixed",
 | 
				
			||||||
 | 
								fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3}
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							groups = ongen_groups,
 | 
				
			||||||
 | 
							sounds = xcompat.sounds.node_sound_default(),
 | 
				
			||||||
 | 
							drop = "moretrees:"..treename.."_sapling",
 | 
				
			||||||
 | 
							on_place = function(itemstack, placer, pointed_thing)
 | 
				
			||||||
 | 
								itemstack = xcompat.functions.sapling_on_place(itemstack, placer, pointed_thing,
 | 
				
			||||||
 | 
									"moretrees:" ..treename.. "_sapling_ongen",
 | 
				
			||||||
 | 
									-- minp, maxp to be checked, relative to sapling pos
 | 
				
			||||||
 | 
									-- minp_relative.y = 1 because sapling pos has been checked
 | 
				
			||||||
 | 
									{x = -3, y = 1, z = -3},
 | 
				
			||||||
 | 
									{x = 3, y = 6, z = 3},
 | 
				
			||||||
 | 
									-- maximum interval of interior volume check
 | 
				
			||||||
 | 
									4)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								return itemstack
 | 
				
			||||||
 | 
							end,
 | 
				
			||||||
 | 
							on_construct = function(pos)
 | 
				
			||||||
 | 
								minetest.get_node_timer(pos):start(2)
 | 
				
			||||||
 | 
							end,
 | 
				
			||||||
 | 
							on_timer = function(pos, elapsed)
 | 
				
			||||||
 | 
								if moretrees.can_grow(pos, treename) then
 | 
				
			||||||
 | 
									--moretrees["grow_" .. treename](pos)
 | 
				
			||||||
 | 
									minetest.set_node(pos, {name="air"})
 | 
				
			||||||
 | 
									if type(moretrees["spawn_" .. treename .. "_object"])=="string" then
 | 
				
			||||||
 | 
										local split = moretrees["spawn_" .. treename .. "_object"]:split(".")
 | 
				
			||||||
 | 
										moretrees[split[2]](pos)
 | 
				
			||||||
 | 
									else
 | 
				
			||||||
 | 
										minetest.spawn_tree(pos, moretrees["spawn_" .. treename .. "_object"])
 | 
				
			||||||
 | 
									end
 | 
				
			||||||
 | 
								else
 | 
				
			||||||
 | 
									minetest.get_node_timer(pos):start(300)
 | 
				
			||||||
 | 
								end
 | 
				
			||||||
 | 
							end,
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	local fruitname = nil
 | 
						local fruitname = nil
 | 
				
			||||||
	if fruit then
 | 
						if fruit then
 | 
				
			||||||
		fruitname = "moretrees:"..fruit
 | 
							fruitname = "moretrees:"..fruit
 | 
				
			||||||
		minetest.register_node(fruitname, {
 | 
							minetest.register_node(fruitname, {
 | 
				
			||||||
			description = S(fruitdesc),
 | 
								description = fruitdesc,
 | 
				
			||||||
			drawtype = "plantlike",
 | 
								drawtype = "plantlike",
 | 
				
			||||||
			tiles = { "moretrees_"..fruit..".png" },
 | 
								tiles = { "moretrees_"..fruit..".png" },
 | 
				
			||||||
			inventory_image = "moretrees_"..fruit..".png^[transformR180",
 | 
								inventory_image = "moretrees_"..fruit..".png^[transformR180",
 | 
				
			||||||
@@ -305,13 +552,19 @@ for i in ipairs(moretrees.treelist) do
 | 
				
			|||||||
					fixed = selbox
 | 
										fixed = selbox
 | 
				
			||||||
				},
 | 
									},
 | 
				
			||||||
			groups = {fleshy=3,dig_immediate=3,flammable=2, attached_node=1, leafdecay = 1, leafdecay_drop = 1},
 | 
								groups = {fleshy=3,dig_immediate=3,flammable=2, attached_node=1, leafdecay = 1, leafdecay_drop = 1},
 | 
				
			||||||
			sounds = default.node_sound_defaults(),
 | 
								sounds = xcompat.sounds.node_sound_default(),
 | 
				
			||||||
 | 
								after_place_node = function(pos, placer)
 | 
				
			||||||
 | 
									if placer:is_player() then
 | 
				
			||||||
 | 
										minetest.set_node(pos, {name = "moretrees:"..fruit, param2 = 1})
 | 
				
			||||||
 | 
									end
 | 
				
			||||||
 | 
								end
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if treename ~= "jungletree"
 | 
						if treename ~= "jungletree"
 | 
				
			||||||
		and treename ~= "poplar_small"
 | 
							and treename ~= "poplar_small"
 | 
				
			||||||
		and treename ~= "pine" then
 | 
							and treename ~= "pine"
 | 
				
			||||||
 | 
							and minetest.get_modpath("default") then
 | 
				
			||||||
			default.register_leafdecay({
 | 
								default.register_leafdecay({
 | 
				
			||||||
				trunks = { "moretrees:"..treename.."_trunk" },
 | 
									trunks = { "moretrees:"..treename.."_trunk" },
 | 
				
			||||||
				leaves = { "moretrees:"..treename.."_leaves", fruitname },
 | 
									leaves = { "moretrees:"..treename.."_leaves", fruitname },
 | 
				
			||||||
@@ -325,7 +578,7 @@ for i in ipairs(moretrees.treelist) do
 | 
				
			|||||||
		chance = 1,
 | 
							chance = 1,
 | 
				
			||||||
		action = function(pos, node, active_object_count, active_object_count_wider)
 | 
							action = function(pos, node, active_object_count, active_object_count_wider)
 | 
				
			||||||
			local fdir = node.param2 or 0
 | 
								local fdir = node.param2 or 0
 | 
				
			||||||
				nfdir = dirs2[fdir+1]
 | 
									local nfdir = dirs2[fdir+1]
 | 
				
			||||||
			minetest.add_node(pos, {name = "moretrees:"..treename.."_trunk", param2 = nfdir})
 | 
								minetest.add_node(pos, {name = "moretrees:"..treename.."_trunk", param2 = nfdir})
 | 
				
			||||||
		end,
 | 
							end,
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
@@ -338,37 +591,11 @@ for i in ipairs(moretrees.treelist) do
 | 
				
			|||||||
	end
 | 
						end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- Add small poplar saplings
 | 
					-- poplar saplings leaves
 | 
				
			||||||
 | 
					 | 
				
			||||||
local poplar_sapling = minetest.registered_nodes["moretrees:poplar_sapling"]
 | 
					 | 
				
			||||||
local poplar_sapling_ongen = minetest.registered_nodes["moretrees:poplar_sapling_ongen"]
 | 
					 | 
				
			||||||
local poplar_small_sapling = {}
 | 
					 | 
				
			||||||
local poplar_small_sapling_ongen = {}
 | 
					 | 
				
			||||||
for k,v in pairs(poplar_sapling) do
 | 
					 | 
				
			||||||
	poplar_small_sapling[k] = v
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
for k,v in pairs(poplar_sapling_ongen) do
 | 
					 | 
				
			||||||
	poplar_small_sapling_ongen[k] = v
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
poplar_small_sapling.tiles = {"moretrees_poplar_small_sapling.png"}
 | 
					 | 
				
			||||||
poplar_small_sapling.inventory_image = "moretrees_poplar_small_sapling.png"
 | 
					 | 
				
			||||||
poplar_small_sapling.is_ground_content = true
 | 
					 | 
				
			||||||
poplar_small_sapling_ongen.tiles_ongen = {"moretrees_poplar_small_sapling.png"}
 | 
					 | 
				
			||||||
poplar_small_sapling_ongen.inventory_image_ongen = "moretrees_poplar_small_sapling.png"
 | 
					 | 
				
			||||||
poplar_small_sapling_ongen.drop = "moretrees:poplar_small_sapling"
 | 
					 | 
				
			||||||
poplar_small_sapling_ongen.is_ground_content = true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
minetest.register_node("moretrees:poplar_small_sapling", poplar_small_sapling)
 | 
					 | 
				
			||||||
minetest.register_node("moretrees:poplar_small_sapling_ongen", poplar_small_sapling_ongen)
 | 
					 | 
				
			||||||
if moretrees.spawn_saplings then
 | 
					 | 
				
			||||||
	table.insert(moretrees.avoidnodes, "moretrees:poplar_sapling")
 | 
					 | 
				
			||||||
	table.insert(moretrees.avoidnodes, "moretrees:poplar_small_sapling_ongen")
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
local poplar_leaves_drop = minetest.registered_nodes["moretrees:poplar_leaves"].drop
 | 
					local poplar_leaves_drop = minetest.registered_nodes["moretrees:poplar_leaves"].drop
 | 
				
			||||||
minetest.override_item("moretrees:poplar_leaves", {
 | 
					minetest.override_item("moretrees:poplar_leaves", {
 | 
				
			||||||
	drop = {
 | 
						drop = {
 | 
				
			||||||
		max_items = poplar_leaves_drop.maxitems,
 | 
							max_items = poplar_leaves_drop.max_items,
 | 
				
			||||||
		items = {
 | 
							items = {
 | 
				
			||||||
			{items = {"moretrees:poplar_sapling"}, rarity = 1.33 * poplar_leaves_drop.items[1].rarity },
 | 
								{items = {"moretrees:poplar_sapling"}, rarity = 1.33 * poplar_leaves_drop.items[1].rarity },
 | 
				
			||||||
			{items = {"moretrees:poplar_small_sapling"}, rarity = 1.33 * poplar_leaves_drop.items[1].rarity },
 | 
								{items = {"moretrees:poplar_small_sapling"}, rarity = 1.33 * poplar_leaves_drop.items[1].rarity },
 | 
				
			||||||
@@ -380,7 +607,7 @@ minetest.override_item("moretrees:poplar_leaves", {
 | 
				
			|||||||
-- Extra nodes for jungle trees:
 | 
					-- Extra nodes for jungle trees:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
local jungleleaves = {"yellow","red"}
 | 
					local jungleleaves = {"yellow","red"}
 | 
				
			||||||
local jungleleavesnames = {"Yellow", "Red"}
 | 
					local jungleleavesnames = {S("Yellow"), S("Red")}
 | 
				
			||||||
for color = 1, #jungleleaves do
 | 
					for color = 1, #jungleleaves do
 | 
				
			||||||
	local leave_name = "moretrees:jungletree_leaves_"..jungleleaves[color]
 | 
						local leave_name = "moretrees:jungletree_leaves_"..jungleleaves[color]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -388,10 +615,12 @@ for color = 1, #jungleleaves do
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	if moretrees.plantlike_leaves then
 | 
						if moretrees.plantlike_leaves then
 | 
				
			||||||
		moretrees_leaves_inventory_image = minetest.inventorycube("moretrees_jungletree_leaves_"..jungleleaves[color]..".png")
 | 
							moretrees_leaves_inventory_image = minetest.inventorycube("moretrees_jungletree_leaves_"..jungleleaves[color]..".png")
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							moretrees_new_leaves_waving = 1
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	minetest.register_node(leave_name, {
 | 
						minetest.register_node(leave_name, {
 | 
				
			||||||
		description = S("Jungle Tree Leaves ("..jungleleavesnames[color]..")"),
 | 
							description = S("Jungle Tree Leaves (@1)", jungleleavesnames[color]),
 | 
				
			||||||
		drawtype = moretrees_new_leaves_drawtype,
 | 
							drawtype = moretrees_new_leaves_drawtype,
 | 
				
			||||||
		waving = moretrees_new_leaves_waving,
 | 
							waving = moretrees_new_leaves_waving,
 | 
				
			||||||
		visual_scale = moretrees_plantlike_leaves_visual_scale,
 | 
							visual_scale = moretrees_plantlike_leaves_visual_scale,
 | 
				
			||||||
@@ -400,30 +629,31 @@ for color = 1, #jungleleaves do
 | 
				
			|||||||
		paramtype = "light",
 | 
							paramtype = "light",
 | 
				
			||||||
		is_ground_content = false,
 | 
							is_ground_content = false,
 | 
				
			||||||
		groups = {snappy = 3, flammable = 2, leaves = 1, moretrees_leaves = 1, leafdecay = 3 },
 | 
							groups = {snappy = 3, flammable = 2, leaves = 1, moretrees_leaves = 1, leafdecay = 3 },
 | 
				
			||||||
		drop = {
 | 
							drop = minetest.get_modpath("default") and {
 | 
				
			||||||
			max_items = 1,
 | 
								max_items = 1,
 | 
				
			||||||
			items = {
 | 
								items = {
 | 
				
			||||||
				{items = {"default:junglesapling"}, rarity = 100 },
 | 
									{items = {"default:junglesapling"}, rarity = 100 },
 | 
				
			||||||
				{items = {"moretrees:jungletree_leaves_"..jungleleaves[color]} }
 | 
									{items = {"moretrees:jungletree_leaves_"..jungleleaves[color]} }
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		},
 | 
							} or nil,
 | 
				
			||||||
		sounds = default.node_sound_leaves_defaults(),
 | 
							sounds = xcompat.sounds.node_sound_leaves_defaults(),
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- To get Moretrees to generate its own jungle trees among the default mapgen
 | 
					-- To get Moretrees to generate its own jungle trees among the default mapgen
 | 
				
			||||||
-- we need our own copy of that node, which moretrees will match against.
 | 
					-- we need our own copy of that node, which moretrees will match against.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
local jungle_tree = table.copy(minetest.registered_nodes["default:jungletree"])
 | 
					if minetest.get_modpath("default") then
 | 
				
			||||||
jungle_tree.drop = jungle_tree.drop or { items = {} }
 | 
						local jungle_tree = table.copy(minetest.registered_nodes["default:jungletree"])
 | 
				
			||||||
table.insert(jungle_tree.drop.items, { items = {"default:jungletree"}})
 | 
						jungle_tree.drop = "default:jungletree"
 | 
				
			||||||
minetest.register_node("moretrees:jungletree_trunk", jungle_tree)
 | 
						minetest.register_node("moretrees:jungletree_trunk", jungle_tree)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
default.register_leafdecay({
 | 
						default.register_leafdecay({
 | 
				
			||||||
	trunks = { "default:jungletree", "moretrees:jungletree_trunk" },
 | 
							trunks = { "default:jungletree", "moretrees:jungletree_trunk" },
 | 
				
			||||||
	leaves = { "default:jungleleaves", "moretrees:jungletree_leaves_yellow", "moretrees:jungletree_leaves_red" },
 | 
							leaves = { xcompat.materials.jungle_leaves, "moretrees:jungletree_leaves_yellow", "moretrees:jungletree_leaves_red" },
 | 
				
			||||||
	radius = moretrees.leafdecay_radius,
 | 
							radius = moretrees.leafdecay_radius,
 | 
				
			||||||
})
 | 
						})
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- Extra needles for firs
 | 
					-- Extra needles for firs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -450,17 +680,19 @@ minetest.register_node("moretrees:fir_leaves_bright", {
 | 
				
			|||||||
			{items = {'moretrees:fir_leaves_bright'} }
 | 
								{items = {'moretrees:fir_leaves_bright'} }
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	sounds = default.node_sound_leaves_defaults()
 | 
						sounds = xcompat.sounds.node_sound_leaves_defaults()
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
default.register_leafdecay({
 | 
					if minetest.get_modpath("default") then
 | 
				
			||||||
	trunks = { "moretrees:fir_trunk" },
 | 
						default.register_leafdecay({
 | 
				
			||||||
	leaves = { "moretrees:fir_leaves", "moretrees:fir_leaves_bright" },
 | 
							trunks = { "moretrees:fir_trunk" },
 | 
				
			||||||
	radius = moretrees.leafdecay_radius,
 | 
							leaves = { "moretrees:fir_leaves", "moretrees:fir_leaves_bright" },
 | 
				
			||||||
})
 | 
							radius = moretrees.leafdecay_radius,
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if moretrees.enable_redefine_apple then
 | 
					if minetest.get_modpath("default") and moretrees.enable_redefine_apple then
 | 
				
			||||||
	local appledef = table.copy(minetest.registered_nodes["default:apple"])
 | 
						local appledef = table.copy(minetest.registered_nodes["default:apple"])
 | 
				
			||||||
	appledef.groups.attached_node = 1
 | 
						appledef.groups.attached_node = 1
 | 
				
			||||||
	minetest.register_node(":default:apple", appledef)
 | 
						minetest.register_node(":default:apple", appledef)
 | 
				
			||||||
@@ -487,9 +719,8 @@ minetest.register_node("moretrees:rubber_tree_trunk_empty", {
 | 
				
			|||||||
		"moretrees_rubber_tree_trunk_top.png",
 | 
							"moretrees_rubber_tree_trunk_top.png",
 | 
				
			||||||
		"moretrees_rubber_tree_trunk_empty.png"
 | 
							"moretrees_rubber_tree_trunk_empty.png"
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	is_ground_content = true,
 | 
					 | 
				
			||||||
	groups = {tree=1,snappy=1,choppy=2,oddly_breakable_by_hand=1,flammable=2},
 | 
						groups = {tree=1,snappy=1,choppy=2,oddly_breakable_by_hand=1,flammable=2},
 | 
				
			||||||
	sounds = default.node_sound_wood_defaults(),
 | 
						sounds = xcompat.sounds.node_sound_wood_defaults(),
 | 
				
			||||||
	paramtype2 = "facedir",
 | 
						paramtype2 = "facedir",
 | 
				
			||||||
	is_ground_content = false,
 | 
						is_ground_content = false,
 | 
				
			||||||
	on_place = minetest.rotate_node,
 | 
						on_place = minetest.rotate_node,
 | 
				
			||||||
@@ -501,7 +732,7 @@ minetest.register_abm({
 | 
				
			|||||||
	chance = 1,
 | 
						chance = 1,
 | 
				
			||||||
	action = function(pos, node, active_object_count, active_object_count_wider)
 | 
						action = function(pos, node, active_object_count, active_object_count_wider)
 | 
				
			||||||
		local fdir = node.param2 or 0
 | 
							local fdir = node.param2 or 0
 | 
				
			||||||
			nfdir = dirs2[fdir+1]
 | 
								local nfdir = dirs2[fdir+1]
 | 
				
			||||||
		minetest.add_node(pos, {name = "moretrees:rubber_tree_trunk_empty", param2 = nfdir})
 | 
							minetest.add_node(pos, {name = "moretrees:rubber_tree_trunk_empty", param2 = nfdir})
 | 
				
			||||||
	end,
 | 
						end,
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
@@ -535,7 +766,7 @@ minetest.register_alias("conifers:sapling",						"moretrees:fir_sapling")
 | 
				
			|||||||
minetest.register_alias("moretrees:jungletree_sapling",			"default:junglesapling")
 | 
					minetest.register_alias("moretrees:jungletree_sapling",			"default:junglesapling")
 | 
				
			||||||
minetest.register_alias("moretrees:jungletree_trunk_sideways",	"moreblocks:horizontal_jungle_tree")
 | 
					minetest.register_alias("moretrees:jungletree_trunk_sideways",	"moreblocks:horizontal_jungle_tree")
 | 
				
			||||||
minetest.register_alias("moretrees:jungletree_planks",			"default:junglewood")
 | 
					minetest.register_alias("moretrees:jungletree_planks",			"default:junglewood")
 | 
				
			||||||
minetest.register_alias("moretrees:jungletree_leaves_green",	"default:jungleleaves")
 | 
					minetest.register_alias("moretrees:jungletree_leaves_green",	xcompat.materials.jungle_leaves)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
minetest.register_alias("moretrees:acacia_trunk",				"default:acacia_tree")
 | 
					minetest.register_alias("moretrees:acacia_trunk",				"default:acacia_tree")
 | 
				
			||||||
minetest.register_alias("moretrees:acacia_planks",				"default:acacia_wood")
 | 
					minetest.register_alias("moretrees:acacia_planks",				"default:acacia_wood")
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										49
									
								
								saplings.lua
									
									
									
									
									
								
							
							
						
						
									
										49
									
								
								saplings.lua
									
									
									
									
									
								
							@@ -5,25 +5,21 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
local dirt_surfaces = {
 | 
					local dirt_surfaces = {
 | 
				
			||||||
	set = true,
 | 
						set = true,
 | 
				
			||||||
	["default:dirt"] = true,
 | 
						[xcompat.materials.dirt] = true,
 | 
				
			||||||
	["default:dirt_with_snow"] = true,
 | 
						[xcompat.materials.dirt_with_grass] = true,
 | 
				
			||||||
	["default:dry_dirt"] = true,
 | 
					 | 
				
			||||||
	["default:dry_dirt_with_dry_grass"] = true,
 | 
					 | 
				
			||||||
	["default:dirt_with_grass"] = true,
 | 
					 | 
				
			||||||
	["default:dirt_with_dry_grass"] = true,
 | 
						["default:dirt_with_dry_grass"] = true,
 | 
				
			||||||
	["default:dirt_with_coniferous_litter"] = true,
 | 
						["default:dirt_with_coniferous_litter"] = true,
 | 
				
			||||||
	["default:dirt_with_rainforest_litter"] = true,
 | 
						["default:dirt_with_rainforest_litter"] = true,
 | 
				
			||||||
	["woodsoils:dirt_with_leaves_1"] = true,
 | 
						["woodsoils:dirt_with_leaves_1"] = true,
 | 
				
			||||||
	["woodsoils:dirt_with_leaves_2"] = true,
 | 
						["woodsoils:dirt_with_leaves_2"] = true,
 | 
				
			||||||
	["woodsoils:grass_with_leaves_1"] = true,
 | 
						["woodsoils:grass_with_leaves_1"] = true,
 | 
				
			||||||
	["woodsoils:grass_with_leaves_2"] = true,
 | 
						["woodsoils:grass_with_leaves_2"] = true
 | 
				
			||||||
	["meditteranean_biome:dirt_with_mediterranean_grass"] = true
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
local conifer_surfaces =  {
 | 
					local conifer_surfaces =  {
 | 
				
			||||||
	set = true,
 | 
						set = true,
 | 
				
			||||||
	["default:dirt"] = true,
 | 
						[xcompat.materials.dirt] = true,
 | 
				
			||||||
	["default:dirt_with_grass"] = true,
 | 
						[xcompat.materials.dirt_with_grass] = true,
 | 
				
			||||||
	["default:dirt_with_dry_grass"] = true,
 | 
						["default:dirt_with_dry_grass"] = true,
 | 
				
			||||||
	["default:dirt_with_coniferous_litter"] = true,
 | 
						["default:dirt_with_coniferous_litter"] = true,
 | 
				
			||||||
	["default:dirt_with_rainforest_litter"] = true,
 | 
						["default:dirt_with_rainforest_litter"] = true,
 | 
				
			||||||
@@ -31,21 +27,40 @@ local conifer_surfaces =  {
 | 
				
			|||||||
	["woodsoils:dirt_with_leaves_2"] = true,
 | 
						["woodsoils:dirt_with_leaves_2"] = true,
 | 
				
			||||||
	["woodsoils:grass_with_leaves_1"] = true,
 | 
						["woodsoils:grass_with_leaves_1"] = true,
 | 
				
			||||||
	["woodsoils:grass_with_leaves_2"] = true,
 | 
						["woodsoils:grass_with_leaves_2"] = true,
 | 
				
			||||||
	["default:dirt_with_snow"] = true,
 | 
						["default:dirt_with_snow"] = true
 | 
				
			||||||
	["meditteranean_biome:dirt_with_mediterranean_grass"] = true
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
local sand_surfaces = {
 | 
					local sand_surfaces = {
 | 
				
			||||||
	set = true,
 | 
						set = true,
 | 
				
			||||||
	["default:sand"] = true,
 | 
						[xcompat.materials.sand] = true,
 | 
				
			||||||
	["default:desert_sand"] = true,
 | 
						[xcompat.materials.desert_sand] = true,
 | 
				
			||||||
	["cottages:loam"] = true,
 | 
						["cottages:loam"] = true,
 | 
				
			||||||
	["darkage:mud"] = true,
 | 
					 | 
				
			||||||
	-- note, no silver sand here.
 | 
						-- note, no silver sand here.
 | 
				
			||||||
	-- too cold for a palm, too... well... sandy for anything else.
 | 
						-- too cold for a palm, too... well... sandy for anything else.
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
for i in ipairs(moretrees.treelist) do
 | 
					function moretrees.can_grow(pos, treename)
 | 
				
			||||||
 | 
						local surfaces
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if treename == "spruce"
 | 
				
			||||||
 | 
						  or treename == "fir"
 | 
				
			||||||
 | 
						  or treename == "cedar"
 | 
				
			||||||
 | 
						  or treename == "pine" then
 | 
				
			||||||
 | 
							surfaces = conifer_surfaces
 | 
				
			||||||
 | 
						elseif string.find(treename, "palm") then
 | 
				
			||||||
 | 
							surfaces = sand_surfaces
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							surfaces = dirt_surfaces
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if surfaces[minetest.get_node(vector.new(pos.x, pos.y-1, pos.z)).name] then
 | 
				
			||||||
 | 
							return true
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							return false
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--[[ for i in ipairs(moretrees.treelist) do
 | 
				
			||||||
	local treename = moretrees.treelist[i][1]
 | 
						local treename = moretrees.treelist[i][1]
 | 
				
			||||||
	local tree_model = treename.."_model"
 | 
						local tree_model = treename.."_model"
 | 
				
			||||||
	local tree_biome = treename.."_biome"
 | 
						local tree_biome = treename.."_biome"
 | 
				
			||||||
@@ -70,7 +85,7 @@ for i in ipairs(moretrees.treelist) do
 | 
				
			|||||||
		grow_function = "moretrees.grow_"..treename
 | 
							grow_function = "moretrees.grow_"..treename
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	biome_lib:dbg(dump(moretrees[tree_biome].surface))
 | 
						biome_lib.dbg(dump(moretrees[tree_biome].surface), 4)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	biome_lib:grow_plants({
 | 
						biome_lib:grow_plants({
 | 
				
			||||||
		grow_delay = moretrees.sapling_interval,
 | 
							grow_delay = moretrees.sapling_interval,
 | 
				
			||||||
@@ -87,4 +102,4 @@ for i in ipairs(moretrees.treelist) do
 | 
				
			|||||||
		grow_nodes = surfaces,
 | 
							grow_nodes = surfaces,
 | 
				
			||||||
		grow_function = grow_function,
 | 
							grow_function = grow_function,
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
end
 | 
					end ]]
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -31,7 +31,7 @@ index 8189ffd..afd4644 100644
 | 
				
			|||||||
@@ -225,9 +225,12 @@ moretrees.ct_rules_b1 = "[-FBf][+FBf]"
 | 
					@@ -225,9 +225,12 @@ moretrees.ct_rules_b1 = "[-FBf][+FBf]"
 | 
				
			||||||
 moretrees.ct_rules_a2 = "FF[FF][&&-FBF][&&+FBF][&&---FBF][&&+++FBF]F/A"
 | 
					 moretrees.ct_rules_a2 = "FF[FF][&&-FBF][&&+FBF][&&---FBF][&&+++FBF]F/A"
 | 
				
			||||||
 moretrees.ct_rules_b2 = "[-fB][+fB]"
 | 
					 moretrees.ct_rules_b2 = "[-fB][+fB]"
 | 
				
			||||||
 
 | 
					
 | 
				
			||||||
+local jleaves = 1
 | 
					+local jleaves = 1
 | 
				
			||||||
 function moretrees.grow_jungletree(pos)
 | 
					 function moretrees.grow_jungletree(pos)
 | 
				
			||||||
        local r1 = math.random(2)
 | 
					        local r1 = math.random(2)
 | 
				
			||||||
@@ -40,11 +40,11 @@ index 8189ffd..afd4644 100644
 | 
				
			|||||||
+       jleaves = jleaves % 2 + 1
 | 
					+       jleaves = jleaves % 2 + 1
 | 
				
			||||||
        if r1 == 1 then
 | 
					        if r1 == 1 then
 | 
				
			||||||
                moretrees.jungletree_model.leaves2 = "moretrees:jungletree_leaves_red"
 | 
					                moretrees.jungletree_model.leaves2 = "moretrees:jungletree_leaves_red"
 | 
				
			||||||
        else 
 | 
					        else
 | 
				
			||||||
@@ -235,6 +238,7 @@ function moretrees.grow_jungletree(pos)
 | 
					@@ -235,6 +238,7 @@ function moretrees.grow_jungletree(pos)
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
        moretrees.jungletree_model.leaves2_chance = math.random(25, 75)
 | 
					        moretrees.jungletree_model.leaves2_chance = math.random(25, 75)
 | 
				
			||||||
 
 | 
					
 | 
				
			||||||
+       r2=3
 | 
					+       r2=3
 | 
				
			||||||
        if r2 == 1 then
 | 
					        if r2 == 1 then
 | 
				
			||||||
                moretrees.jungletree_model.trunk_type = "single"
 | 
					                moretrees.jungletree_model.trunk_type = "single"
 | 
				
			||||||
@@ -62,7 +62,7 @@ minetest.register_chatcommand("make-scene", {
 | 
				
			|||||||
		minetest.place_node({x=780, y=30, z=-276}, {name="default:obsidian"})
 | 
							minetest.place_node({x=780, y=30, z=-276}, {name="default:obsidian"})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		for z = -360, -300 do
 | 
							for z = -360, -300 do
 | 
				
			||||||
			dy=2
 | 
								local dy=2
 | 
				
			||||||
			for x = 630 + (-z - 360)/3, 660 + (-z - 300)/3 do
 | 
								for x = 630 + (-z - 360)/3, 660 + (-z - 300)/3 do
 | 
				
			||||||
				for y = 5, 22 do
 | 
									for y = 5, 22 do
 | 
				
			||||||
					minetest.place_node({x=x, y=y, z=z}, {name="default:desert_stone"})
 | 
										minetest.place_node({x=x, y=y, z=z}, {name="default:desert_stone"})
 | 
				
			||||||
@@ -145,7 +145,8 @@ minetest.register_chatcommand("make-scene", {
 | 
				
			|||||||
The following is a search/replace command suitable for vi (/vim) or sed, to convert minetest log
 | 
					The following is a search/replace command suitable for vi (/vim) or sed, to convert minetest log
 | 
				
			||||||
messages to equivalent lua commands:
 | 
					messages to equivalent lua commands:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
s/.*\(\(moretrees\|default\)[^ ]*\) at (\([-0-9]\+\),\([-0-9]\+\),\([-0-9]\+\)).*/\t\tminetest.place_node({x=\3, y=\4, z=\5}, {name="\1"})/
 | 
					s/.*\(\(moretrees\|default\)[^ ]*\) at
 | 
				
			||||||
 | 
						(\([-0-9]\+\),\([-0-9]\+\),\([-0-9]\+\)).*/\t\tminetest.place_node({x=\3, y=\4, z=\5}, {name="\1"})/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
E.g. a minetest log line of the following kind:
 | 
					E.g. a minetest log line of the following kind:
 | 
				
			||||||
		2016-07-03 11:30:50: ACTION[Server]: singleplayer places node moretrees:rubber_tree_sapling at  (760,5,-223)
 | 
							2016-07-03 11:30:50: ACTION[Server]: singleplayer places node moretrees:rubber_tree_sapling at  (760,5,-223)
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										57
									
								
								settings.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								settings.lua
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,57 @@
 | 
				
			|||||||
 | 
					local stg = minetest.settings
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--spawns tree on mapgen as saplings, legacy setting
 | 
				
			||||||
 | 
					moretrees.spawn_saplings		= stg:get_bool("moretrees.spawn_saplings", true)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--enable plantlike drawtype for leaves
 | 
				
			||||||
 | 
					moretrees.plantlike_leaves		= stg:get_bool("moretrees.plantlike_leaves", false)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- Enable this if you want moretrees to redefine default apples so that they
 | 
				
			||||||
 | 
					-- fall when leaves decay/are dug.
 | 
				
			||||||
 | 
					moretrees.enable_redefine_apple		= stg:get_bool("moretrees.enable_redefine_apple", true)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- various related settings to configure leaf decay.
 | 
				
			||||||
 | 
					moretrees.leafdecay_radius		= tonumber(stg:get("moretrees.leafdecay_radius")) or 5
 | 
				
			||||||
 | 
					moretrees.palm_leafdecay_radius		= tonumber(stg:get("moretrees.palm_leafdecay_radius")) or 10
 | 
				
			||||||
 | 
					moretrees.date_palm_leafdecay_radius	= tonumber(stg:get("moretrees.date_palm_leafdecay_radius")) or 14
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- Cocos palm settings
 | 
				
			||||||
 | 
					moretrees.coconuts_regrow		= stg:get_bool("moretrees.coconuts_regrow", true)
 | 
				
			||||||
 | 
					moretrees.coconuts_convert_existing_palms = stg:get_bool("moretrees.coconuts_convert_existing_palms", true)
 | 
				
			||||||
 | 
					moretrees.coconut_flower_interval	= tonumber(stg:get("moretrees.coconut_flower_interval")) or 59
 | 
				
			||||||
 | 
					moretrees.coconut_flower_chance		= tonumber(stg:get("moretrees.coconut_flower_chance")) or 67
 | 
				
			||||||
 | 
					moretrees.coconut_grow_interval		= tonumber(stg:get("moretrees.coconut_grow_interval")) or
 | 
				
			||||||
 | 
					    2 * moretrees.coconut_flower_interval * moretrees.coconut_flower_chance
 | 
				
			||||||
 | 
					moretrees.coconut_item_drop_ichance	= tonumber(stg:get("moretrees.coconut_item_drop_ichance")) or 10
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- Date palm settings
 | 
				
			||||||
 | 
					moretrees.dates_regrow_pollinated	= stg:get_bool("moretrees.dates_regrow_pollinated", true)
 | 
				
			||||||
 | 
					moretrees.dates_regrow_unpollinated_percent	= tonumber(stg:get("moretrees.dates_regrow_unpollinated_percent")) or 0
 | 
				
			||||||
 | 
					moretrees.dates_female_percent		= tonumber(stg:get("moretrees.dates_female_percent")) or 57
 | 
				
			||||||
 | 
					moretrees.dates_pollination_distance	= tonumber(stg:get("moretrees.dates_pollination_distance")) or 120
 | 
				
			||||||
 | 
					moretrees.dates_blossom_search_time_treshold = tonumber(stg:get("moretrees.dates_blossom_search_time_treshold")) or 1000
 | 
				
			||||||
 | 
					moretrees.dates_blossom_search_iload = tonumber(stg:get("moretrees.dates_blossom_search_iload")) or 10
 | 
				
			||||||
 | 
					moretrees.dates_flower_interval		= tonumber(stg:get("moretrees.dates_flower_interval")) or 59
 | 
				
			||||||
 | 
					moretrees.dates_flower_chance		= tonumber(stg:get("moretrees.dates_flower_chance")) or 181
 | 
				
			||||||
 | 
					moretrees.dates_grow_interval		= tonumber(stg:get("moretrees.dates_grow_interval")) or
 | 
				
			||||||
 | 
					    2 * moretrees.dates_flower_interval * moretrees.dates_flower_chance
 | 
				
			||||||
 | 
					moretrees.dates_item_drop_ichance	= tonumber(stg:get("moretrees.dates_item_drop_ichance")) or 10
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- Sapling settings
 | 
				
			||||||
 | 
					moretrees.sapling_interval		= 100
 | 
				
			||||||
 | 
					moretrees.sapling_chance		= 5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- Enable this only if you have used an old moretrees version which was using biome_lib
 | 
				
			||||||
 | 
					-- and when you notice large areas with ongen saplings that don't grow
 | 
				
			||||||
 | 
					moretrees.grow_legacy_saplings	= stg:get_bool("moretrees.grow_legacy_saplings", false)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- If this variable is set to true, drop leaves out as entities during leaf
 | 
				
			||||||
 | 
					-- decay, rather than just disappearing them.
 | 
				
			||||||
 | 
					moretrees.decay_leaves_as_items = stg:get_bool("moretrees.decay_leaves_as_items", false)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- this is an internal setting for games that only have one type of planks
 | 
				
			||||||
 | 
					if type(minetest.get_game_info) == "function" then
 | 
				
			||||||
 | 
					    moretrees.enable_planks = minetest.get_game_info().id~="voxelgarden"
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					    moretrees.enable_planks = true
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
@@ -1,5 +1,6 @@
 | 
				
			|||||||
moretrees.beech_model={
 | 
					moretrees.beech_model={
 | 
				
			||||||
	axiom="FFFFFBFB",
 | 
						axiom="FFFFFBFB",
 | 
				
			||||||
 | 
						-- luacheck: no max line length
 | 
				
			||||||
	rules_a="[&&&GGF[++^Fd][--&Fd]//Fd[+^Fd][--&Fd]]////[&&&GGF[++^Fd][--&Fd]//Fd[+^Fd][--&Fd]]////[&&&GGF[++^Fd][--&Fd]//Fd[+^Fd][--&Fdd]]",
 | 
						rules_a="[&&&GGF[++^Fd][--&Fd]//Fd[+^Fd][--&Fd]]////[&&&GGF[++^Fd][--&Fd]//Fd[+^Fd][--&Fd]]////[&&&GGF[++^Fd][--&Fd]//Fd[+^Fd][--&Fdd]]",
 | 
				
			||||||
	rules_b="[&&&F[++^Fd][--&d]//d[+^d][--&d]]////[&&&F[++^Fd][--&d]//d[+^d][--&d]]////[&&&F[++^Fd][--&Fd]//d[+^d][--&d]]",
 | 
						rules_b="[&&&F[++^Fd][--&d]//d[+^d][--&d]]////[&&&F[++^Fd][--&d]//d[+^d][--&d]]////[&&&F[++^Fd][--&Fd]//d[+^d][--&d]]",
 | 
				
			||||||
	rules_c="/",
 | 
						rules_c="/",
 | 
				
			||||||
@@ -24,8 +25,8 @@ moretrees.apple_tree_model={
 | 
				
			|||||||
	random_level=0,
 | 
						random_level=0,
 | 
				
			||||||
	trunk_type="single",
 | 
						trunk_type="single",
 | 
				
			||||||
	thin_branches=true,
 | 
						thin_branches=true,
 | 
				
			||||||
	fruit="default:apple",
 | 
						fruit=minetest.get_modpath("default") and "default:apple" or nil,
 | 
				
			||||||
	fruit_chance=15,
 | 
						fruit_chance=minetest.get_modpath("default") and 15 or nil,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
moretrees.oak_model={
 | 
					moretrees.oak_model={
 | 
				
			||||||
@@ -49,7 +50,6 @@ moretrees.poplar_model={
 | 
				
			|||||||
	rules_b="[[T]&&G++f++ff++ff++ff++f--]G",
 | 
						rules_b="[[T]&&G++f++ff++ff++ff++f--]G",
 | 
				
			||||||
	rules_c="[[T]&&G++f++ff++ff++ff++f--G++[d]G[d]G++G[d]G[d]G[d]G++G[d]G[d]G[d]G++G[d]G[d]G[d]G++G[d]G]G",
 | 
						rules_c="[[T]&&G++f++ff++ff++ff++f--G++[d]G[d]G++G[d]G[d]G[d]G++G[d]G[d]G[d]G++G[d]G[d]G[d]G++G[d]G]G",
 | 
				
			||||||
	rules_d="f",
 | 
						rules_d="f",
 | 
				
			||||||
	trunk="air",
 | 
					 | 
				
			||||||
	trunk="moretrees:poplar_trunk",
 | 
						trunk="moretrees:poplar_trunk",
 | 
				
			||||||
	leaves="moretrees:poplar_leaves",
 | 
						leaves="moretrees:poplar_leaves",
 | 
				
			||||||
	angle=45,
 | 
						angle=45,
 | 
				
			||||||
@@ -76,6 +76,7 @@ moretrees.poplar_small_model={
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
moretrees.sequoia_model={
 | 
					moretrees.sequoia_model={
 | 
				
			||||||
	axiom="FFFFFFFFFFddccA///cccFddcFA///ddFcFA/cFFddFcdBddd/A/ccdcddd/ccAddddcFBcccAccFdFcFBcccc/BFdFFcFFdcccc/B",
 | 
						axiom="FFFFFFFFFFddccA///cccFddcFA///ddFcFA/cFFddFcdBddd/A/ccdcddd/ccAddddcFBcccAccFdFcFBcccc/BFdFFcFFdcccc/B",
 | 
				
			||||||
 | 
						-- luacheck: no max line length
 | 
				
			||||||
	rules_a="[&&&GGF[++^FFdd][--&Fddd]//Fdd[+^Fd][--&Fdd]]////[&&&GGF[++^FFdd][--&Fddd]//Fdd[+^Fd][--&Fdd]]////[&&&GGF[++^FFdd][--&Fddd]//Fdd[+^Fd][--&Fdd]]",
 | 
						rules_a="[&&&GGF[++^FFdd][--&Fddd]//Fdd[+^Fd][--&Fdd]]////[&&&GGF[++^FFdd][--&Fddd]//Fdd[+^Fd][--&Fdd]]////[&&&GGF[++^FFdd][--&Fddd]//Fdd[+^Fd][--&Fdd]]",
 | 
				
			||||||
	rules_b="[&&&GGF[++^Fdd][--&Fdd]//dd[+^d][--&Fd]]////[&&&GGF[++^Fdd][--&Fdd]//dd[+^d][--&Fd]]////[&&&GGF[++^Fdd][--&Fdd]//dd[+^d][--&Fd]]",
 | 
						rules_b="[&&&GGF[++^Fdd][--&Fdd]//dd[+^d][--&Fd]]////[&&&GGF[++^Fdd][--&Fdd]//dd[+^d][--&Fd]]////[&&&GGF[++^Fdd][--&Fdd]//dd[+^d][--&Fd]]",
 | 
				
			||||||
	rules_c="/",
 | 
						rules_c="/",
 | 
				
			||||||
@@ -147,7 +148,7 @@ moretrees.palm_model={
 | 
				
			|||||||
-- So, a generic fruit trunk is spawned. An ABM will convert it to a male
 | 
					-- So, a generic fruit trunk is spawned. An ABM will convert it to a male
 | 
				
			||||||
-- or female fruit trunk, and generate the actual dates.
 | 
					-- or female fruit trunk, and generate the actual dates.
 | 
				
			||||||
moretrees.date_palm_model={
 | 
					moretrees.date_palm_model={
 | 
				
			||||||
	axiom="TTTTddddddddddccccccccccRT[TGGGGT]"..
 | 
						axiom="TTTTddddddddddccccccccccRT[TTT]"..
 | 
				
			||||||
		"ccccc[&&a]ccccc[&&a]ccccc[&&a]ccccc[&&a]ccccc[&&a]ccccc[&&a]"..
 | 
							"ccccc[&&a]ccccc[&&a]ccccc[&&a]ccccc[&&a]ccccc[&&a]ccccc[&&a]"..
 | 
				
			||||||
		"GGccccc[&a]ccccc[&a]ccccc[&a]ccccc[&a]ccccc[&a]ccccc[&a]"..
 | 
							"GGccccc[&a]ccccc[&a]ccccc[&a]ccccc[&a]ccccc[&a]ccccc[&a]"..
 | 
				
			||||||
		"GGccccc[a]ccccc[a]ccccc[a]ccccc[a]ccccc[a]ccccc[a]",
 | 
							"GGccccc[a]ccccc[a]ccccc[a]ccccc[a]ccccc[a]ccccc[a]",
 | 
				
			||||||
@@ -167,6 +168,7 @@ moretrees.date_palm_model={
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
moretrees.spruce_model1={
 | 
					moretrees.spruce_model1={
 | 
				
			||||||
 | 
						-- luacheck: no max line length
 | 
				
			||||||
	axiom="FFFFFAFFFFFFBFFFFFFCFFFFFFDFFFFFF[&&&F^^FF][&&&++F^^FF][&&&++++F^^FF][&&&++++++F^^FF][&&&--F^^FF][&&&----F^^FF][FFFFf]",
 | 
						axiom="FFFFFAFFFFFFBFFFFFFCFFFFFFDFFFFFF[&&&F^^FF][&&&++F^^FF][&&&++++F^^FF][&&&++++++F^^FF][&&&--F^^FF][&&&----F^^FF][FFFFf]",
 | 
				
			||||||
	rules_a="[&&&FFFFFF^^FFF][&&&++FFFFFF^^FFF][&&&++++FFFFFF^^FFF][&&&++++++FFFFFF^^FFF][&&&--FFFFFF^^FFF][&&&----FFFFFF^^FFF]",
 | 
						rules_a="[&&&FFFFFF^^FFF][&&&++FFFFFF^^FFF][&&&++++FFFFFF^^FFF][&&&++++++FFFFFF^^FFF][&&&--FFFFFF^^FFF][&&&----FFFFFF^^FFF]",
 | 
				
			||||||
	rules_b="[&&&FFFFF^^FFF][&&&++FFFFF^^FFF][&&&++++FFFFF^^FFF][&&&++++++FFFFF^^FFF][&&&--FFFFF^^FFF][&&&----FFFFF^^FFF]",
 | 
						rules_b="[&&&FFFFF^^FFF][&&&++FFFFF^^FFF][&&&++++FFFFF^^FFF][&&&++++++FFFFF^^FFF][&&&--FFFFF^^FFF][&&&----FFFFF^^FFF]",
 | 
				
			||||||
@@ -184,6 +186,7 @@ moretrees.spruce_model1={
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
moretrees.spruce_model2={
 | 
					moretrees.spruce_model2={
 | 
				
			||||||
 | 
						-- luacheck: no max line length
 | 
				
			||||||
	axiom="FFFFFFBFFFFFFCFFFFFFDFFFFFF[&&&F^^FF][&&&++F^^FF][&&&++++F^^FF][&&&++++++F^^FF][&&&--F^^FF][&&&----F^^FF][FFFFf]",
 | 
						axiom="FFFFFFBFFFFFFCFFFFFFDFFFFFF[&&&F^^FF][&&&++F^^FF][&&&++++F^^FF][&&&++++++F^^FF][&&&--F^^FF][&&&----F^^FF][FFFFf]",
 | 
				
			||||||
	rules_b="[&&&FFFFF^^FFF][&&&++FFFFF^^FFF][&&&++++FFFFF^^FFF][&&&++++++FFFFF^^FFF][&&&--FFFFF^^FFF][&&&----FFFFF^^FFF]",
 | 
						rules_b="[&&&FFFFF^^FFF][&&&++FFFFF^^FFF][&&&++++FFFFF^^FFF][&&&++++++FFFFF^^FFF][&&&--FFFFF^^FFF][&&&----FFFFF^^FFF]",
 | 
				
			||||||
	rules_c="[&&&FFFF^^FFF][&&&++FFFF^^FFF][&&&++++FFFF^^FFF][&&&++++++FFFF^^FFF][&&&--FFFF^^FFF][&&&----FFFF^^FFF]",
 | 
						rules_c="[&&&FFFF^^FFF][&&&++FFFF^^FFF][&&&++++FFFF^^FFF][&&&++++++FFFF^^FFF][&&&--FFFF^^FFF][&&&----FFFF^^FFF]",
 | 
				
			||||||
@@ -218,6 +221,7 @@ moretrees.cedar_model={
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
moretrees.willow_model={
 | 
					moretrees.willow_model={
 | 
				
			||||||
	axiom="FFFFFFFFccA",
 | 
						axiom="FFFFFFFFccA",
 | 
				
			||||||
 | 
						-- luacheck: no max line length
 | 
				
			||||||
	rules_a="[&FF&FFFF&&F&FFFFFFFdddd][**&FF&FFFF&&F&FFFFFFFdddd][//&FF&FFFF&&F&FFFFFFFdddd][////&FF&FFFF&&F&FFFFFFFdddd][//////&FF&FFFF&&F&FFFFFFFdddd][////////&FF&FFFF&&F&FFFFFFFdddd]",
 | 
						rules_a="[&FF&FFFF&&F&FFFFFFFdddd][**&FF&FFFF&&F&FFFFFFFdddd][//&FF&FFFF&&F&FFFFFFFdddd][////&FF&FFFF&&F&FFFFFFFdddd][//////&FF&FFFF&&F&FFFFFFFdddd][////////&FF&FFFF&&F&FFFFFFFdddd]",
 | 
				
			||||||
	rules_c="/",
 | 
						rules_c="/",
 | 
				
			||||||
	rules_d="F",
 | 
						rules_d="F",
 | 
				
			||||||
@@ -248,7 +252,7 @@ moretrees.jungletree_model={
 | 
				
			|||||||
	rules_a=nil,
 | 
						rules_a=nil,
 | 
				
			||||||
	rules_b=nil,
 | 
						rules_b=nil,
 | 
				
			||||||
	trunk="moretrees:jungletree_trunk",
 | 
						trunk="moretrees:jungletree_trunk",
 | 
				
			||||||
	leaves="default:jungleleaves",
 | 
						leaves=xcompat.materials.jungle_leaves,
 | 
				
			||||||
	leaves2=nil,
 | 
						leaves2=nil,
 | 
				
			||||||
	leaves2_chance=nil,
 | 
						leaves2_chance=nil,
 | 
				
			||||||
	angle=45,
 | 
						angle=45,
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user