forked from mtcontrib/moretrees
Compare commits
62 Commits
Author | SHA1 | Date |
---|---|---|
bri cassa | fdd341ac71 | |
Niklp | 5d7c46c4cf | |
Buckaroo Banzai | 17f2037218 | |
bri cassa | d1ae12c4b1 | |
Micah Scott | b1fe8df038 | |
wsor4035 | b56e22fefd | |
David Leal | 288870bc8d | |
tenplus1 | 393840ba49 | |
Awkanimus | 21bdcc360b | |
unknown | 7879bd8192 | |
unknown | 5bc6bdc3d9 | |
wsor4035 | e476b81cf5 | |
bri cassa | aaa0ba123b | |
fluxionary | 8103aaae79 | |
wsor4035 | c4d1dde83c | |
Niklp | 87a997ba4a | |
bri cassa | 159cd8d506 | |
OgelGames | cbe846dfde | |
bri cassa | bce9f8d1cb | |
Vanessa Dannenberg | 62cab1b1d9 | |
Sys Quatre | 19d41419a0 | |
Vanessa Dannenberg | 20770027a6 | |
FrostRanger | 06aaee3187 | |
Sys Quatre | be9bc9dc23 | |
Vanessa Dannenberg | 8c0a83dacb | |
Max | 24bb114a11 | |
Sys Quatre | 850e9627c7 | |
Vanessa Dannenberg | c559ea3aef | |
Louis Royer | 3212fae8cf | |
Louis Royer | ea92403fa3 | |
Vanessa Dannenberg | dd36f8b63e | |
Louis Royer | dc93bb5f16 | |
Sys Quatre | b2a94399ec | |
Sys Quatre | 7383549476 | |
Sys Quatre | ac9dd5503c | |
Sys Quatre | 5ee036f0f4 | |
Sys Quatre | fab2944277 | |
VanessaE | e72c539cdc | |
Sys Quatre | c8aaaf20ed | |
Sys Quatre | 93553670d2 | |
Vanessa Dannenberg | 66fd6724c5 | |
David Leal | fa83e1b262 | |
Vanessa Dannenberg | f94f1bea26 | |
Till Affeldt | 09f08b50bc | |
Sys Quatre | f3108af2e3 | |
Vanessa Dannenberg | d335eceecc | |
Louis | 89bffdecaf | |
Sys Quatre | 114e47966b | |
Vanessa Dannenberg | 6fd3729669 | |
flux | 25250e6eea | |
Vanessa Dannenberg | 9bc0bc1b68 | |
flux | d097fd6044 | |
Vanessa Dannenberg | 216acdc6b1 | |
Vanessa Dannenberg | dde035cb5e | |
Sys Quatre | 157f53def0 | |
Vanessa Dannenberg | acb534d8d0 | |
Vanessa Dannenberg | f45ffc09bf | |
Vanessa Dannenberg | e912fba6c8 | |
Vanessa Dannenberg | 7161cfbdee | |
Vanessa Dannenberg | a27af10d2e | |
Vanessa Dannenberg | e474194daf | |
Sys Quatre | 26f1ec49d2 |
|
@ -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"}},
|
||||||
|
|
||||||
|
"biome_lib",
|
||||||
|
"stairsplus",
|
||||||
|
"stairs",
|
||||||
|
"doors",
|
||||||
|
}
|
||||||
|
|
|
@ -8,4 +8,4 @@ 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: `default`
|
||||||
|
|
|
@ -69,6 +69,9 @@ moretrees.apple_tree_biome = {
|
||||||
temp_max = -0.15,
|
temp_max = -0.15,
|
||||||
rarity = 75,
|
rarity = 75,
|
||||||
max_count = 5,
|
max_count = 5,
|
||||||
|
place_on = {"default:dirt_with_grass"},
|
||||||
|
biomes = {"deciduous_forest"},
|
||||||
|
fill_ratio = 0.0001,
|
||||||
}
|
}
|
||||||
|
|
||||||
moretrees.oak_biome = {
|
moretrees.oak_biome = {
|
||||||
|
@ -82,6 +85,7 @@ moretrees.oak_biome = {
|
||||||
temp_max = 0.2,
|
temp_max = 0.2,
|
||||||
rarity = 50,
|
rarity = 50,
|
||||||
max_count = 5,
|
max_count = 5,
|
||||||
|
fill_ratio = 0.0003
|
||||||
}
|
}
|
||||||
|
|
||||||
moretrees.sequoia_biome = {
|
moretrees.sequoia_biome = {
|
||||||
|
@ -95,6 +99,7 @@ moretrees.sequoia_biome = {
|
||||||
temp_max = -0.4,
|
temp_max = -0.4,
|
||||||
rarity = 90,
|
rarity = 90,
|
||||||
max_count = 5,
|
max_count = 5,
|
||||||
|
fill_ratio = 0.0001,
|
||||||
}
|
}
|
||||||
|
|
||||||
moretrees.birch_biome = {
|
moretrees.birch_biome = {
|
||||||
|
@ -108,6 +113,7 @@ moretrees.birch_biome = {
|
||||||
temp_max = 0.3,
|
temp_max = 0.3,
|
||||||
rarity = 50,
|
rarity = 50,
|
||||||
max_count = 10,
|
max_count = 10,
|
||||||
|
fill_ratio = 0.001,
|
||||||
}
|
}
|
||||||
|
|
||||||
moretrees.willow_biome = {
|
moretrees.willow_biome = {
|
||||||
|
@ -125,7 +131,10 @@ moretrees.willow_biome = {
|
||||||
}
|
}
|
||||||
|
|
||||||
moretrees.rubber_tree_biome = {
|
moretrees.rubber_tree_biome = {
|
||||||
surface = "default:dirt_with_grass",
|
surface = {
|
||||||
|
"default:dirt_with_grass",
|
||||||
|
"default:sand",
|
||||||
|
},
|
||||||
avoid_nodes = moretrees.avoidnodes,
|
avoid_nodes = moretrees.avoidnodes,
|
||||||
avoid_radius = 10,
|
avoid_radius = 10,
|
||||||
seed_diff = 338,
|
seed_diff = 338,
|
||||||
|
@ -145,7 +154,8 @@ moretrees.jungletree_biome = {
|
||||||
"default:dirt_with_grass",
|
"default: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"},
|
avoid_nodes = {"moretrees:jungletree_trunk"},
|
||||||
max_count = 12,
|
max_count = 12,
|
||||||
|
@ -158,6 +168,7 @@ moretrees.jungletree_biome = {
|
||||||
near_nodes_vertical = 2,
|
near_nodes_vertical = 2,
|
||||||
near_nodes_count = 1,
|
near_nodes_count = 1,
|
||||||
plantlife_limit = -0.9,
|
plantlife_limit = -0.9,
|
||||||
|
biomes = {"rainforest", "rainforest_swamp"},
|
||||||
}
|
}
|
||||||
|
|
||||||
moretrees.spruce_biome = {
|
moretrees.spruce_biome = {
|
||||||
|
@ -177,6 +188,7 @@ moretrees.cedar_biome = {
|
||||||
avoid_nodes = moretrees.avoidnodes,
|
avoid_nodes = moretrees.avoidnodes,
|
||||||
avoid_radius = 10,
|
avoid_radius = 10,
|
||||||
seed_diff = 336,
|
seed_diff = 336,
|
||||||
|
min_elevation = 0, --Added to solve an issue where cedar trees would sometimes spawn deep underground
|
||||||
near_nodes = {"default:water_source"},
|
near_nodes = {"default:water_source"},
|
||||||
near_nodes_size = 15,
|
near_nodes_size = 15,
|
||||||
near_nodes_count = 5,
|
near_nodes_count = 5,
|
||||||
|
|
101
cocos_palm.lua
101
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
|
||||||
|
@ -190,55 +205,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
|
||||||
|
|
59
crafts.lua
59
crafts.lua
|
@ -1,4 +1,4 @@
|
||||||
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]
|
||||||
|
@ -38,7 +38,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", {
|
||||||
|
@ -117,11 +118,63 @@ for i in ipairs(moretrees.cutting_tools) do
|
||||||
},
|
},
|
||||||
replacements = {
|
replacements = {
|
||||||
{ "moretrees:coconut", "moretrees:raw_coconut" },
|
{ "moretrees:coconut", "moretrees:raw_coconut" },
|
||||||
{ tool, tool }
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- give tool back with wear preserved
|
||||||
|
minetest.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv)
|
||||||
|
if (itemstack:get_name() == "moretrees:coconut_milk") then
|
||||||
|
for i, j in pairs(old_craft_grid) do
|
||||||
|
-- find tool used to do the craft
|
||||||
|
local ocg_name = j:get_name()
|
||||||
|
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
|
||||||
|
local t = ItemStack(ocg_name)
|
||||||
|
local w = j:get_wear()
|
||||||
|
-- works if tool used is an axe
|
||||||
|
local uses = j:get_tool_capabilities().groupcaps.choppy.uses or 0
|
||||||
|
if (w == 0 and uses ~= 0) then
|
||||||
|
-- tool has never been used
|
||||||
|
-- use tool once
|
||||||
|
t:set_wear(65535/(9*(uses - 1)))
|
||||||
|
else
|
||||||
|
-- set wear back
|
||||||
|
t:set_wear(w)
|
||||||
|
-- use tool once
|
||||||
|
if (uses ~= 0) then
|
||||||
|
t:add_wear(65535/(9*(uses - 1)))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
-- add to craft inventory
|
||||||
|
craft_inv:add_item("craft", t)
|
||||||
|
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
|
||||||
|
|
||||||
|
|
|
@ -25,12 +25,16 @@ moretrees.enable_beech = false
|
||||||
moretrees.spawn_saplings = true
|
moretrees.spawn_saplings = true
|
||||||
|
|
||||||
-- Set this to true to allow defining stairs/slabs/etc. If Moreblocks is
|
-- 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
|
-- installed, this will use that mod's Stairs Plus component. Otherwise, it
|
||||||
-- will use the default stairs mod in minetest_game, if present
|
-- will use the default stairs mod in minetest_game, if present
|
||||||
|
|
||||||
moretrees.enable_stairs = true
|
moretrees.enable_stairs = true
|
||||||
|
|
||||||
-- Set this to true if you want the plantlike drawtype for leaves, which
|
-- 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.
|
-- improves some peoples' framerates without resorting to making leaf nodes opaque.
|
||||||
-- Affects default leaves and default jungle leaves also.
|
-- Affects default leaves and default jungle leaves also.
|
||||||
|
|
||||||
|
@ -51,6 +55,7 @@ moretrees.leafdecay_delay = 2
|
||||||
moretrees.leafdecay_chance = 5
|
moretrees.leafdecay_chance = 5
|
||||||
moretrees.leafdecay_radius = 5
|
moretrees.leafdecay_radius = 5
|
||||||
moretrees.palm_leafdecay_radius = 10
|
moretrees.palm_leafdecay_radius = 10
|
||||||
|
moretrees.date_palm_leafdecay_radius = 14
|
||||||
|
|
||||||
-- Change these settings if you want default trees to be gradually cut down
|
-- Change these settings if you want default trees to be gradually cut down
|
||||||
-- above the elevation where firs normally generate.
|
-- above the elevation where firs normally generate.
|
||||||
|
@ -122,8 +127,8 @@ moretrees.dates_item_drop_ichance = 10 -- inverse probability of ripe dates dr
|
||||||
|
|
||||||
-- Sapling settings
|
-- Sapling settings
|
||||||
|
|
||||||
moretrees.sapling_interval = 500
|
moretrees.sapling_interval = 100
|
||||||
moretrees.sapling_chance = 20
|
moretrees.sapling_chance = 5
|
||||||
|
|
||||||
-- If this variable is set to true, drop leaves out as entities during leaf
|
-- If this variable is set to true, drop leaves out as entities during leaf
|
||||||
-- decay, rather than just disappearing them.
|
-- decay, rather than just disappearing them.
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
default
|
|
||||||
biome_lib
|
|
||||||
vessels
|
|
||||||
stairs?
|
|
||||||
moreblocks?
|
|
||||||
intllib?
|
|
||||||
farming?
|
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
This mod adds a whole bunch of new types of trees to the game
|
|
243
init.lua
243
init.lua
|
@ -15,37 +15,67 @@
|
||||||
|
|
||||||
moretrees = {}
|
moretrees = {}
|
||||||
|
|
||||||
|
minetest.override_item("default:sapling", {
|
||||||
|
description = "Sapling"
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.override_item("default:tree", {
|
||||||
|
description = "Tree"
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.override_item("default:wood", {
|
||||||
|
description = "Wooden Planks"
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.override_item("default:leaves", {
|
||||||
|
description = "Leaves"
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.override_item("default:fence_wood", {
|
||||||
|
description = "Wooden Fence"
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.override_item("default:fence_rail_wood", {
|
||||||
|
description = "Wooden Fence Rail"
|
||||||
|
})
|
||||||
|
|
||||||
|
if minetest.get_modpath("doors") then
|
||||||
|
minetest.override_item("doors:gate_wood_closed", {
|
||||||
|
description = "Wooden Fence Gate"
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.override_item("doors:gate_wood_open", {
|
||||||
|
description = "Wooden Fence Gate"
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
-- Read the default config file (and if necessary, copy it to the world folder).
|
-- Read the default config file (and if necessary, copy it to the world folder).
|
||||||
|
|
||||||
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 " ..
|
||||||
-- clone node
|
"in parts of this mod and others disappearing due to mod " ..
|
||||||
|
"load order. Please update ethereal.");
|
||||||
function moretrees.clone_node(name)
|
end
|
||||||
local node2 = {}
|
|
||||||
local node = minetest.registered_nodes[name]
|
|
||||||
for k,v in pairs(node) do
|
|
||||||
node2[k]=v
|
|
||||||
end
|
end
|
||||||
return node2
|
end)
|
||||||
end
|
|
||||||
|
|
||||||
-- infinite stacks checking
|
-- infinite stacks checking
|
||||||
|
|
||||||
|
@ -79,111 +109,142 @@ 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 or def.surface,
|
||||||
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.near_nodes,
|
||||||
moretrees.spawn_fir_snow_object = "snow:sapling_pine"
|
num_spawn_by = def.near_nodes_count,
|
||||||
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
|
if moretrees.enable_beech then
|
||||||
biome_lib:register_generate_plant(moretrees.beech_biome, moretrees.spawn_beech_object)
|
minetest.register_decoration(translate_biome_defs(moretrees.beech_biome, "beech"))
|
||||||
end
|
end
|
||||||
|
|
||||||
if moretrees.enable_apple_tree then
|
if moretrees.enable_apple_tree then
|
||||||
biome_lib:register_generate_plant(moretrees.apple_tree_biome, moretrees.spawn_apple_tree_object)
|
minetest.register_decoration(translate_biome_defs(moretrees.apple_tree_biome, "apple_tree"))
|
||||||
end
|
end
|
||||||
|
|
||||||
if moretrees.enable_oak then
|
if moretrees.enable_oak then
|
||||||
biome_lib:register_generate_plant(moretrees.oak_biome, moretrees.spawn_oak_object)
|
minetest.register_decoration(translate_biome_defs(moretrees.oak_biome, "oak"))
|
||||||
end
|
end
|
||||||
|
|
||||||
if moretrees.enable_sequoia then
|
if moretrees.enable_sequoia then
|
||||||
biome_lib:register_generate_plant(moretrees.sequoia_biome, moretrees.spawn_sequoia_object)
|
minetest.register_decoration(translate_biome_defs(moretrees.sequoia_biome, "sequoia"))
|
||||||
end
|
end
|
||||||
|
|
||||||
if moretrees.enable_palm then
|
if moretrees.enable_palm then
|
||||||
biome_lib:register_generate_plant(moretrees.palm_biome, moretrees.spawn_palm_object)
|
minetest.register_decoration(translate_biome_defs(moretrees.palm_biome, "palm"))
|
||||||
end
|
end
|
||||||
|
|
||||||
if moretrees.enable_date_palm then
|
if moretrees.enable_date_palm then
|
||||||
biome_lib:register_generate_plant(moretrees.date_palm_biome, moretrees.spawn_date_palm_object)
|
minetest.register_decoration(translate_biome_defs(moretrees.date_palm_biome, "date_palm", 1))
|
||||||
biome_lib:register_generate_plant(moretrees.date_palm_biome_2, moretrees.spawn_date_palm_object)
|
minetest.register_decoration(translate_biome_defs(moretrees.date_palm_biome_2, "date_palm", 2))
|
||||||
end
|
end
|
||||||
|
|
||||||
if moretrees.enable_cedar then
|
if moretrees.enable_cedar then
|
||||||
biome_lib:register_generate_plant(moretrees.cedar_biome, moretrees.spawn_cedar_object)
|
minetest.register_decoration(translate_biome_defs(moretrees.cedar_biome, "cedar"))
|
||||||
end
|
end
|
||||||
|
|
||||||
if moretrees.enable_rubber_tree then
|
if moretrees.enable_rubber_tree then
|
||||||
biome_lib:register_generate_plant(moretrees.rubber_tree_biome, moretrees.spawn_rubber_tree_object)
|
minetest.register_decoration(translate_biome_defs(moretrees.rubber_tree_biome, "rubber_tree"))
|
||||||
end
|
end
|
||||||
|
|
||||||
if moretrees.enable_willow then
|
if moretrees.enable_willow then
|
||||||
biome_lib:register_generate_plant(moretrees.willow_biome, moretrees.spawn_willow_object)
|
minetest.register_decoration(translate_biome_defs(moretrees.willow_biome, "willow"))
|
||||||
end
|
end
|
||||||
|
|
||||||
if moretrees.enable_birch then
|
if moretrees.enable_birch then
|
||||||
biome_lib:register_generate_plant(moretrees.birch_biome, moretrees.spawn_birch_object)
|
minetest.register_decoration(translate_biome_defs(moretrees.birch_biome, "birch"))
|
||||||
end
|
end
|
||||||
|
|
||||||
if moretrees.enable_spruce then
|
if moretrees.enable_spruce then
|
||||||
biome_lib:register_generate_plant(moretrees.spruce_biome, moretrees.spawn_spruce_object)
|
minetest.register_decoration(translate_biome_defs(moretrees.spruce_biome, "spruce"))
|
||||||
end
|
end
|
||||||
|
|
||||||
if moretrees.enable_jungle_tree then
|
if moretrees.enable_jungle_tree then
|
||||||
biome_lib:register_generate_plant(moretrees.jungletree_biome, moretrees.spawn_jungletree_object)
|
minetest.register_decoration(translate_biome_defs(moretrees.jungletree_biome, "jungletree"))
|
||||||
end
|
end
|
||||||
|
|
||||||
if moretrees.enable_fir then
|
if moretrees.enable_fir then
|
||||||
biome_lib:register_generate_plant(moretrees.fir_biome, moretrees.spawn_fir_object)
|
minetest.register_decoration(translate_biome_defs(moretrees.fir_biome, "fir", 1))
|
||||||
if minetest.get_modpath("snow") then
|
if minetest.get_modpath("snow") then
|
||||||
biome_lib:register_generate_plant(moretrees.fir_biome_snow, moretrees.spawn_fir_snow_object)
|
minetest.register_decoration(translate_biome_defs(moretrees.fir_biome_snow, "fir", 2))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if moretrees.enable_poplar then
|
if moretrees.enable_poplar then
|
||||||
biome_lib:register_generate_plant(moretrees.poplar_biome, moretrees.spawn_poplar_object)
|
minetest.register_decoration(translate_biome_defs(moretrees.poplar_biome, "poplar", 1))
|
||||||
biome_lib:register_generate_plant(moretrees.poplar_biome_2, moretrees.spawn_poplar_object)
|
minetest.register_decoration(translate_biome_defs(moretrees.poplar_biome_2, "poplar", 2))
|
||||||
biome_lib:register_generate_plant(moretrees.poplar_biome_3, moretrees.spawn_poplar_object)
|
minetest.register_decoration(translate_biome_defs(moretrees.poplar_biome_3, "poplar", 3))
|
||||||
biome_lib:register_generate_plant(moretrees.poplar_small_biome, moretrees.spawn_poplar_small_object)
|
minetest.register_decoration(translate_biome_defs(moretrees.poplar_small_biome, "poplar_small", 4))
|
||||||
biome_lib:register_generate_plant(moretrees.poplar_small_biome_2, moretrees.spawn_poplar_small_object)
|
minetest.register_decoration(translate_biome_defs(moretrees.poplar_small_biome_2, "poplar_small", 5))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--[[
|
||||||
|
this is purposefully wrapped in a on mods loaded callback to that it gets the proper ids
|
||||||
|
if other mods clear the registered decorations
|
||||||
|
]]
|
||||||
|
minetest.register_on_mods_loaded(function()
|
||||||
|
for k, v in pairs(deco_ids) do
|
||||||
|
deco_ids[k] = minetest.get_decoration_id(v)
|
||||||
|
end
|
||||||
|
minetest.set_gen_notify("decoration", deco_ids)
|
||||||
|
end)
|
||||||
|
|
||||||
|
minetest.register_on_generated(function(minp, maxp, blockseed)
|
||||||
|
local g = minetest.get_mapgen_object("gennotify")
|
||||||
|
local locations = {}
|
||||||
|
for _, id in pairs(deco_ids) do
|
||||||
|
local deco_locations = g["decoration#" .. id] or {}
|
||||||
|
for _, pos in pairs(deco_locations) do
|
||||||
|
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
|
||||||
|
@ -194,7 +255,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
|
||||||
|
@ -209,6 +270,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"
|
||||||
|
|
||||||
|
@ -248,10 +310,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},
|
||||||
|
"default: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
|
||||||
|
@ -275,10 +340,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},
|
||||||
|
"default: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
|
||||||
|
@ -302,12 +371,16 @@ 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},
|
||||||
|
"default: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)"))
|
print("[Moretrees] Loaded (2013-02-11)")
|
||||||
|
|
|
@ -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) =
|
|
|
@ -0,0 +1,211 @@
|
||||||
|
# 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
|
|
@ -0,0 +1,211 @@
|
||||||
|
# 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
|
|
@ -0,0 +1,211 @@
|
||||||
|
# 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
|
|
@ -1,73 +1,210 @@
|
||||||
# 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=
|
||||||
[Moretrees] Loaded (2013-02-11) =
|
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=
|
||||||
|
|
3
mod.conf
3
mod.conf
|
@ -1 +1,4 @@
|
||||||
name = moretrees
|
name = moretrees
|
||||||
|
depends = default, vessels
|
||||||
|
optional_depends = doors, stairs, moreblocks, farming
|
||||||
|
min_minetest_version = 5.2.0
|
||||||
|
|
455
node_defs.lua
455
node_defs.lua
|
@ -1,31 +1,221 @@
|
||||||
local S = moretrees.intllib
|
local S = minetest.get_translator("moretrees")
|
||||||
|
|
||||||
moretrees.avoidnodes = {}
|
moretrees.avoidnodes = {}
|
||||||
|
|
||||||
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, "default_junglesapling.png" },
|
||||||
}
|
}
|
||||||
|
|
||||||
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"
|
||||||
|
@ -54,7 +244,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]
|
||||||
|
@ -73,17 +262,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",
|
||||||
|
@ -97,41 +286,21 @@ for i in ipairs(moretrees.treelist) do
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("moretrees:"..treename.."_planks", {
|
minetest.register_node("moretrees:"..treename.."_planks", {
|
||||||
description = S(treedesc.." Planks"),
|
description = moretrees.treedesc[treename].planks,
|
||||||
tiles = {"moretrees_"..treename.."_wood.png"},
|
tiles = {"moretrees_"..treename.."_wood.png"},
|
||||||
is_ground_content = false,
|
is_ground_content = false,
|
||||||
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1},
|
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1},
|
||||||
sounds = default.node_sound_wood_defaults(),
|
sounds = default.node_sound_wood_defaults(),
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("moretrees:"..treename.."_sapling", {
|
|
||||||
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(),
|
|
||||||
})
|
|
||||||
|
|
||||||
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,
|
||||||
|
@ -167,7 +336,7 @@ for i in ipairs(moretrees.treelist) do
|
||||||
"moretrees_"..treename.."_trunk_top.png",
|
"moretrees_"..treename.."_trunk_top.png",
|
||||||
"moretrees_"..treename.."_trunk.png"
|
"moretrees_"..treename.."_trunk.png"
|
||||||
},
|
},
|
||||||
description = S(treedesc.." Trunk"),
|
description = moretrees.treedesc[treename].trunk,
|
||||||
drop = treename.."_trunk",
|
drop = treename.."_trunk",
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
@ -179,7 +348,7 @@ 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",
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
@ -192,8 +361,8 @@ for i in ipairs(moretrees.treelist) do
|
||||||
"moretrees_"..treename.."_trunk_top.png",
|
"moretrees_"..treename.."_trunk_top.png",
|
||||||
"moretrees_"..treename.."_trunk.png"
|
"moretrees_"..treename.."_trunk.png"
|
||||||
},
|
},
|
||||||
S(treedesc.." Trunk Stair"),
|
moretrees.treedesc[treename].trunk_stair,
|
||||||
S(treedesc.." Trunk Slab"),
|
moretrees.treedesc[treename].trunk_slab,
|
||||||
default.node_sound_wood_defaults()
|
default.node_sound_wood_defaults()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -202,20 +371,113 @@ for i in ipairs(moretrees.treelist) do
|
||||||
"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()
|
default.node_sound_wood_defaults()
|
||||||
)
|
)
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if moretrees.enable_fences then
|
||||||
|
local planks_name = "moretrees:" .. treename .. "_planks"
|
||||||
|
local planks_tile = "moretrees_" .. treename .. "_wood.png"
|
||||||
|
default.register_fence("moretrees:" .. treename .. "_fence", {
|
||||||
|
description = moretrees.treedesc[treename].fence,
|
||||||
|
texture = planks_tile,
|
||||||
|
inventory_image = "default_fence_overlay.png^" .. planks_tile ..
|
||||||
|
"^default_fence_overlay.png^[makealpha:255,126,126",
|
||||||
|
wield_image = "default_fence_overlay.png^" .. planks_tile ..
|
||||||
|
"^default_fence_overlay.png^[makealpha:255,126,126",
|
||||||
|
material = planks_name,
|
||||||
|
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
|
||||||
|
sounds = default.node_sound_wood_defaults()
|
||||||
|
})
|
||||||
|
default.register_fence_rail("moretrees:" .. treename .. "_fence_rail", {
|
||||||
|
description = moretrees.treedesc[treename].fence_rail,
|
||||||
|
texture = planks_tile,
|
||||||
|
inventory_image = "default_fence_rail_overlay.png^" .. planks_tile ..
|
||||||
|
"^default_fence_rail_overlay.png^[makealpha:255,126,126",
|
||||||
|
wield_image = "default_fence_rail_overlay.png^" .. planks_tile ..
|
||||||
|
"^default_fence_rail_overlay.png^[makealpha:255,126,126",
|
||||||
|
material = planks_name,
|
||||||
|
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
|
||||||
|
sounds = default.node_sound_wood_defaults()
|
||||||
|
})
|
||||||
|
if minetest.global_exists("doors") then
|
||||||
|
doors.register_fencegate("moretrees:" .. treename .. "_gate", {
|
||||||
|
description = moretrees.treedesc[treename].fence_gate,
|
||||||
|
texture = planks_tile,
|
||||||
|
material = planks_name,
|
||||||
|
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- the default game provides jungle tree and pine saplings.
|
||||||
|
if treename~="jungletree" and treename ~= "pine" then
|
||||||
|
local regular_groups = {snappy=2,dig_immediate=3,flammable=2,attached_node=1,sapling=1}
|
||||||
|
if minetest.settings:get_bool("creative_mode", false) then
|
||||||
|
regular_groups["not_in_creative_inventory"]=1
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest.register_node("moretrees:"..treename.."_sapling", {
|
||||||
|
description = 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",
|
||||||
|
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 = regular_groups,
|
||||||
|
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,
|
||||||
|
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,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", {
|
minetest.register_node("moretrees:"..treename.."_sapling_ongen", {
|
||||||
description = S(treedesc.." Sapling (on-generated)"),
|
description = S("@1 (fast growth)", moretrees.treedesc[treename].sapling),
|
||||||
drawtype = "plantlike",
|
drawtype = "plantlike",
|
||||||
tiles = {saptex},
|
tiles = {split_tn[2] and split_tn[2]=="small" and "moretrees_" .. treename .. "_sapling.png" or saptex,},
|
||||||
inventory_image = saptex,
|
inventory_image = split_tn[2] and split_tn[2]=="small" and "moretrees_" .. treename .. "_sapling.png" or saptex,
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "waving",
|
paramtype2 = "waving",
|
||||||
walkable = false,
|
walkable = false,
|
||||||
|
@ -224,16 +486,45 @@ for i in ipairs(moretrees.treelist) do
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3}
|
fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3}
|
||||||
},
|
},
|
||||||
groups = {snappy=2,dig_immediate=3,flammable=2,attached_node=1,not_in_creative_inventory=1,sapling=1},
|
groups = ongen_groups,
|
||||||
sounds = default.node_sound_defaults(),
|
sounds = default.node_sound_defaults(),
|
||||||
drop = "moretrees:"..treename.."_sapling"
|
drop = "moretrees:"..treename.."_sapling",
|
||||||
|
on_place = function(itemstack, placer, pointed_thing)
|
||||||
|
itemstack = default.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",
|
||||||
|
@ -249,6 +540,11 @@ for i in ipairs(moretrees.treelist) do
|
||||||
},
|
},
|
||||||
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 = default.node_sound_defaults(),
|
||||||
|
after_place_node = function(pos, placer)
|
||||||
|
if placer:is_player() then
|
||||||
|
minetest.set_node(pos, {name = "moretrees:"..fruit, param2 = 1})
|
||||||
|
end
|
||||||
|
end
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -268,7 +564,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,
|
||||||
})
|
})
|
||||||
|
@ -281,37 +577,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 },
|
||||||
|
@ -323,7 +593,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]
|
||||||
|
|
||||||
|
@ -331,12 +601,10 @@ 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,
|
||||||
|
@ -406,7 +674,7 @@ default.register_leafdecay({
|
||||||
|
|
||||||
|
|
||||||
if moretrees.enable_redefine_apple then
|
if moretrees.enable_redefine_apple then
|
||||||
local appledef = moretrees.clone_node("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)
|
||||||
end
|
end
|
||||||
|
@ -432,7 +700,6 @@ 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 = default.node_sound_wood_defaults(),
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
|
@ -446,7 +713,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,
|
||||||
})
|
})
|
||||||
|
|
171
saplings.lua
171
saplings.lua
|
@ -1,98 +1,111 @@
|
||||||
-- sapling growth
|
-- sapling growth
|
||||||
|
-- these tables only affect hand-placed saplings
|
||||||
|
-- mapgen-placed always use their biome def settings, which are much more
|
||||||
|
-- limited, in the interest of speed.
|
||||||
|
|
||||||
for i in ipairs(moretrees.treelist) do
|
local dirt_surfaces = {
|
||||||
local treename = moretrees.treelist[i][1]
|
set = true,
|
||||||
local tree_model = treename.."_model"
|
["default:dirt"] = true,
|
||||||
local tree_biome = treename.."_biome"
|
["default:dirt_with_snow"] = 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_coniferous_litter"] = true,
|
||||||
|
["default:dirt_with_rainforest_litter"] = true,
|
||||||
|
["woodsoils:dirt_with_leaves_1"] = true,
|
||||||
|
["woodsoils:dirt_with_leaves_2"] = true,
|
||||||
|
["woodsoils:grass_with_leaves_1"] = true,
|
||||||
|
["woodsoils:grass_with_leaves_2"] = true,
|
||||||
|
["meditteranean_biome:dirt_with_mediterranean_grass"] = true
|
||||||
|
}
|
||||||
|
|
||||||
if treename ~= "birch" and treename ~= "spruce" and treename ~= "fir" and treename ~= "jungletree" then
|
local conifer_surfaces = {
|
||||||
|
set = true,
|
||||||
|
["default:dirt"] = true,
|
||||||
|
["default:dirt_with_grass"] = true,
|
||||||
|
["default:dirt_with_dry_grass"] = true,
|
||||||
|
["default:dirt_with_coniferous_litter"] = true,
|
||||||
|
["default:dirt_with_rainforest_litter"] = true,
|
||||||
|
["woodsoils:dirt_with_leaves_1"] = true,
|
||||||
|
["woodsoils:dirt_with_leaves_2"] = true,
|
||||||
|
["woodsoils:grass_with_leaves_1"] = true,
|
||||||
|
["woodsoils:grass_with_leaves_2"] = true,
|
||||||
|
["default:dirt_with_snow"] = true,
|
||||||
|
["meditteranean_biome:dirt_with_mediterranean_grass"] = true
|
||||||
|
}
|
||||||
|
|
||||||
biome_lib:dbg(dump(moretrees[tree_biome].surface))
|
local sand_surfaces = {
|
||||||
biome_lib:grow_plants({
|
set = true,
|
||||||
grow_delay = moretrees.sapling_interval,
|
["default:sand"] = true,
|
||||||
grow_chance = moretrees.sapling_chance,
|
["default:desert_sand"] = true,
|
||||||
grow_plant = "moretrees:"..treename.."_sapling",
|
["cottages:loam"] = true,
|
||||||
grow_nodes = moretrees[tree_biome].surface,
|
["darkage:mud"] = true,
|
||||||
grow_function = moretrees[tree_model],
|
-- note, no silver sand here.
|
||||||
})
|
-- too cold for a palm, too... well... sandy for anything else.
|
||||||
|
}
|
||||||
|
|
||||||
if moretrees.spawn_saplings then
|
function moretrees.can_grow(pos, treename)
|
||||||
biome_lib:grow_plants({
|
local surfaces
|
||||||
grow_delay = 2,
|
|
||||||
grow_chance = 30,
|
|
||||||
grow_plant = "moretrees:"..treename.."_sapling_ongen",
|
|
||||||
grow_nodes = moretrees[tree_biome].surface,
|
|
||||||
grow_function = moretrees[tree_model],
|
|
||||||
})
|
|
||||||
end
|
|
||||||
|
|
||||||
|
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
|
||||||
end
|
end
|
||||||
|
|
||||||
biome_lib:grow_plants({
|
--[[ for i in ipairs(moretrees.treelist) do
|
||||||
grow_delay = moretrees.sapling_interval,
|
local treename = moretrees.treelist[i][1]
|
||||||
grow_chance = moretrees.sapling_chance,
|
local tree_model = treename.."_model"
|
||||||
grow_plant = "moretrees:birch_sapling",
|
local tree_biome = treename.."_biome"
|
||||||
grow_nodes = moretrees.birch_biome.surface,
|
local surfaces
|
||||||
grow_function = "moretrees.grow_birch"
|
local grow_function = moretrees[tree_model]
|
||||||
})
|
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
biome_lib:grow_plants({
|
if treename == "spruce"
|
||||||
grow_delay = moretrees.sapling_interval,
|
or treename == "fir"
|
||||||
grow_chance = moretrees.sapling_chance,
|
or treename == "birch"
|
||||||
grow_plant = "moretrees:spruce_sapling",
|
or treename == "jungletree" then
|
||||||
grow_nodes = moretrees.spruce_biome.surface,
|
grow_function = "moretrees.grow_"..treename
|
||||||
grow_function = "moretrees.grow_spruce"
|
end
|
||||||
})
|
|
||||||
|
|
||||||
biome_lib:grow_plants({
|
biome_lib.dbg(dump(moretrees[tree_biome].surface), 4)
|
||||||
grow_delay = moretrees.sapling_interval,
|
|
||||||
grow_chance = moretrees.sapling_chance,
|
|
||||||
grow_plant = "moretrees:fir_sapling",
|
|
||||||
grow_nodes = moretrees.fir_biome.surface,
|
|
||||||
grow_function = "moretrees.grow_fir"
|
|
||||||
})
|
|
||||||
|
|
||||||
biome_lib:grow_plants({
|
|
||||||
grow_delay = moretrees.sapling_interval,
|
|
||||||
grow_chance = moretrees.sapling_chance,
|
|
||||||
grow_plant = "default:junglesapling",
|
|
||||||
grow_nodes = moretrees.jungletree_biome.surface,
|
|
||||||
grow_function = "moretrees.grow_jungletree"
|
|
||||||
})
|
|
||||||
|
|
||||||
if moretrees.spawn_saplings then
|
|
||||||
biome_lib:grow_plants({
|
biome_lib:grow_plants({
|
||||||
grow_delay = 2,
|
grow_delay = moretrees.sapling_interval,
|
||||||
grow_chance = 30,
|
grow_chance = moretrees.sapling_chance,
|
||||||
grow_plant = "moretrees:jungletree_sapling_ongen",
|
grow_plant = "moretrees:"..treename.."_sapling",
|
||||||
grow_nodes = moretrees.jungletree_biome.surface,
|
grow_nodes = surfaces,
|
||||||
grow_function = "moretrees.grow_jungletree"
|
grow_function = grow_function,
|
||||||
})
|
})
|
||||||
|
|
||||||
biome_lib:grow_plants({
|
biome_lib:grow_plants({
|
||||||
grow_delay = 2,
|
grow_delay = 2,
|
||||||
grow_chance = 30,
|
grow_chance = 1,
|
||||||
grow_plant = "moretrees:fir_sapling_ongen",
|
grow_plant = "moretrees:"..treename.."_sapling_ongen",
|
||||||
grow_nodes = moretrees.fir_biome.surface,
|
grow_nodes = surfaces,
|
||||||
grow_function = "moretrees.grow_fir"
|
grow_function = grow_function,
|
||||||
})
|
})
|
||||||
|
end ]]
|
||||||
|
|
||||||
biome_lib:grow_plants({
|
|
||||||
grow_delay = 2,
|
|
||||||
grow_chance = 30,
|
|
||||||
grow_plant = "moretrees:spruce_sapling_ongen",
|
|
||||||
grow_nodes = moretrees.spruce_biome.surface,
|
|
||||||
grow_function = "moretrees.grow_spruce"
|
|
||||||
})
|
|
||||||
|
|
||||||
biome_lib:grow_plants({
|
|
||||||
grow_delay = 2,
|
|
||||||
grow_chance = 30,
|
|
||||||
grow_plant = "moretrees:birch_sapling_ongen",
|
|
||||||
grow_nodes = moretrees.birch_biome.surface,
|
|
||||||
grow_function = "moretrees.grow_birch"
|
|
||||||
})
|
|
||||||
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)
|
||||||
|
|
|
@ -0,0 +1,79 @@
|
||||||
|
local stg = minetest.settings
|
||||||
|
|
||||||
|
--enable/disable different trees
|
||||||
|
moretrees.enable_apple_tree = stg:get_bool("moretrees.enable_apple_tree", true)
|
||||||
|
moretrees.enable_oak = stg:get_bool("moretrees.enable_oak", true)
|
||||||
|
moretrees.enable_sequoia = stg:get_bool("moretrees.enable_sequoia", true)
|
||||||
|
moretrees.enable_palm = stg:get_bool("moretrees.enable_palm", true)
|
||||||
|
moretrees.enable_date_palm = stg:get_bool("moretrees.enable_date_palm", true)
|
||||||
|
moretrees.enable_cedar = stg:get_bool("moretrees.enable_cedar", true)
|
||||||
|
moretrees.enable_rubber_tree = stg:get_bool("moretrees.enable_rubber_tree", true)
|
||||||
|
moretrees.enable_willow = stg:get_bool("moretrees.enable_willow", true)
|
||||||
|
moretrees.enable_birch = stg:get_bool("moretrees.enable_birch", true)
|
||||||
|
moretrees.enable_spruce = stg:get_bool("moretrees.enable_spruce", true)
|
||||||
|
moretrees.enable_jungle_tree = stg:get_bool("moretrees.enable_jungle_tree", true)
|
||||||
|
moretrees.enable_fir = stg:get_bool("moretrees.enable_fir", true)
|
||||||
|
moretrees.enable_poplar = stg:get_bool("moretrees.enable_poplar", true)
|
||||||
|
moretrees.enable_beech = stg:get_bool("moretrees.enable_beech", false)
|
||||||
|
|
||||||
|
--spawns tree on mapgen as saplings, legacy setting
|
||||||
|
moretrees.spawn_saplings = stg:get_bool("moretrees.spawn_saplings", true)
|
||||||
|
|
||||||
|
--turn on/off stair varients of nodes via moreblocks or the stair api
|
||||||
|
moretrees.enable_stairs = stg:get_bool("moretrees.enable_stairs", true)
|
||||||
|
|
||||||
|
-- If this variable is set to true, register fences for moretrees wood
|
||||||
|
moretrees.enable_fences = stg:get_bool("moretrees.enable_fences", 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)
|
||||||
|
|
||||||
|
-- Set this to true to enable leaf decay of all trees except the default ones.
|
||||||
|
moretrees.enable_leafdecay = stg:get_bool("moretrees.enable_leafdecay", true)
|
||||||
|
|
||||||
|
-- various related settings to configure leaf decay.
|
||||||
|
moretrees.leafdecay_delay = tonumber(stg:get("moretrees.leafdecay_delay")) or 2
|
||||||
|
moretrees.leafdecay_chance = tonumber(stg:get("moretrees.leafdecay_chance")) or 5
|
||||||
|
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
|
||||||
|
|
||||||
|
-- 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 = stg:get_bool("moretrees.firs_remove_default_trees", false)
|
||||||
|
moretrees.firs_remove_interval = tonumber(stg:get("moretrees.firs_remove_interval")) or 2
|
||||||
|
moretrees.firs_remove_chance = tonumber(stg:get("moretrees.firs_remove_chance")) or 150
|
||||||
|
|
||||||
|
-- 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
|
||||||
|
|
||||||
|
-- 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)
|
|
@ -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="/",
|
||||||
|
@ -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",
|
||||||
|
|
Loading…
Reference in New Issue