diff options
author | the lemons <citrons@mondecitronne.com> | 2022-02-10 20:40:53 -0600 |
---|---|---|
committer | the lemons <citrons@mondecitronne.com> | 2022-02-10 20:40:53 -0600 |
commit | 2bdf6a1bf157ddfc668b5392d0427d8c738b9380 (patch) | |
tree | e21c43adee4704017846cad0877ad1ce8805ceb1 | |
parent | e7b5bf790bf6d16f4112982d108fd235e04aee48 (diff) | |
parent | 818f52145c0fcead6ff838c069a4732e982c00af (diff) |
Merge branch 'master' of citrons.xyz:vzxv
-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 |