Default: Add jungletree_branch node, use in tree generation

Fix rotation errors for mapgen aspen and sapling jungletree
This commit is contained in:
paramat 2016-03-07 04:18:46 +00:00
parent f80fafbcfb
commit 87b43a26f2
5 changed files with 26 additions and 7 deletions

View file

@ -1204,7 +1204,6 @@ function default.register_decorations()
y_max = 31000,
schematic = minetest.get_modpath("default").."/schematics/aspen_tree.mts",
flags = "place_center_x, place_center_z",
rotation = "random",
})
minetest.register_decoration({

View file

@ -14,7 +14,7 @@ language (for example pinewood and pine wood) the underscore form should be used
Stone
-----
(1. Material 2. Cobble variant 3. Brick variant [4. Modified forms])
(1. Material 2. Cobble variant 3. Brick variant 4. Modified forms)
default:stone
default:cobble
@ -33,7 +33,7 @@ default:obsidianbrick
Soft / Non-Stone
----------------
(1. Material [2. Modified forms])
(1. Material 2. Modified forms)
default:dirt
default:dirt_with_grass
@ -55,7 +55,7 @@ default:ice
Trees
-----
(1. Trunk 2. Fabricated trunk 3. Leaves 4. Sapling [5. Fruits])
(1. Trunk 2. Branch 3. Fabricated trunk 4. Leaves 5. Sapling 6. Fruits)
default:tree
default:wood
@ -64,6 +64,7 @@ default:sapling
default:apple
default:jungletree
default:jungletree_branch
default:junglewood
default:jungleleaves
default:junglesapling
@ -82,6 +83,7 @@ default:aspen_tree
default:aspen_wood
default:aspen_leaves
default:aspen_sapling
Ores
----
(1. In stone 2. Block)
@ -107,6 +109,7 @@ default:diamondblock
Plantlife (non-cubic)
---------------------
default:cactus
default:papyrus
default:dry_shrub
@ -139,6 +142,7 @@ default:lava_flowing
Tools / "Advanced" crafting / Non-"natural"
-------------------------------------------
default:torch
default:chest
@ -168,6 +172,7 @@ default:meselamp
Misc
----
default:cloud
default:nyancat
default:nyancat_rainbow
@ -524,6 +529,16 @@ minetest.register_node("default:jungletree", {
on_place = minetest.rotate_node
})
minetest.register_node("default:jungletree_branch", {
description = "Jungle Tree Branch",
tiles = {"default_jungletree.png"},
paramtype2 = "facedir",
is_ground_content = false,
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
drop = "default:jungletree",
sounds = default.node_sound_wood_defaults(),
})
minetest.register_node("default:junglewood", {
description = "Junglewood Planks",
tiles = {"default_junglewood.png"},

View file

@ -225,6 +225,7 @@ function default.grow_jungle_tree(pos, bad)
local c_air = minetest.get_content_id("air")
local c_ignore = minetest.get_content_id("ignore")
local c_jungletree = minetest.get_content_id("default:jungletree")
local c_jungletree_branch = minetest.get_content_id("default:jungletree_branch")
local c_jungleleaves = minetest.get_content_id("default:jungleleaves")
local vm = minetest.get_voxel_manip()
@ -234,6 +235,7 @@ function default.grow_jungle_tree(pos, bad)
)
local a = VoxelArea:new({MinEdge = minp, MaxEdge = maxp})
local data = vm:get_data()
local p2data = vm:get_param2_data()
add_trunk_and_leaves(data, a, pos, c_jungletree, c_jungleleaves,
height, 3, 30, false)
@ -245,9 +247,11 @@ function default.grow_jungle_tree(pos, bad)
for x_dist = -1, 1 do
if random(1, 3) >= 2 then
if data[vi_1] == c_air or data[vi_1] == c_ignore then
data[vi_1] = c_jungletree
data[vi_1] = c_jungletree_branch
p2data[vi_1] = random(0, 1)
elseif data[vi_2] == c_air or data[vi_2] == c_ignore then
data[vi_2] = c_jungletree
data[vi_2] = c_jungletree_branch
p2data[vi_2] = random(0, 1)
end
end
vi_1 = vi_1 + 1
@ -256,6 +260,7 @@ function default.grow_jungle_tree(pos, bad)
end
vm:set_data(data)
vm:set_param2_data(p2data)
vm:write_to_map()
vm:update_map()
end
@ -403,7 +408,7 @@ function default.grow_new_jungle_tree(pos)
local path = minetest.get_modpath("default") ..
"/schematics/jungle_tree_from_sapling.mts"
minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2},
path, "0", nil, false)
path, "random", nil, false)
end