diff options
author | heav-4 <heavpoot@gmail.com> | 2022-02-11 02:37:49 +0000 |
---|---|---|
committer | heav-4 <heavpoot@gmail.com> | 2022-02-11 02:37:49 +0000 |
commit | 818f52145c0fcead6ff838c069a4732e982c00af (patch) | |
tree | 0c67a789f7d71f5e8b685f1228d12f2f602b6cb3 | |
parent | b962cd58944ecb85722151234bf02421b09fc337 (diff) |
generate tree trunks
-rw-r--r-- | mods/vzxv_worldgen/init.lua | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/mods/vzxv_worldgen/init.lua b/mods/vzxv_worldgen/init.lua index a5b3b50..c3a61e6 100644 --- a/mods/vzxv_worldgen/init.lua +++ b/mods/vzxv_worldgen/init.lua @@ -11,6 +11,8 @@ local tree = minetest.get_content_id("vzxv:treedirt") local data = {} local dirt_height = 4 local water_level = 14 +local trees_tbg = {} +-- chunks minetest.register_on_generated(function(minp,maxp,seed) local voxmn, vmin, vmax = minetest.get_mapgen_object("voxelmanip") local va = VoxelArea:new{MinEdge=vmin,MaxEdge=vmax} @@ -38,10 +40,9 @@ minetest.register_on_generated(function(minp,maxp,seed) if not underwater then if y == math.floor(height) then if math.random(0,255) == 0 then - data[i] = tree - else - data[i] = grass + table.insert(trees_tbg,{x=x,y=y,z=z}) end + data[i] = grass else data[i] = y > height - dirt_height and dirt or stone end @@ -66,5 +67,19 @@ minetest.register_on_generated(function(minp,maxp,seed) minetest.after(0,function() minetest.fix_light(minp,maxp) + for i, v in ipairs(trees_tbg) do + generate_tree(v) + end + trees_tbg = {} end) end) + +function generate_tree(pos) + minetest.set_node(pos,{name="vzxv:moistdirt"}) + local height = math.random(16,32) + for i=1, height do + local node = minetest.get_node({x=pos.x,y=pos.y+i,z=pos.z}) + if node.name ~= "air" and node.name ~= "ignore" then return end + minetest.set_node({x=pos.x,y=pos.y+i,z=pos.z},{name="vzxv:trunk"}) + end +end
\ No newline at end of file |