summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorheav-4 <heavpoot@gmail.com>2022-02-11 02:37:49 +0000
committerheav-4 <heavpoot@gmail.com>2022-02-11 02:37:49 +0000
commit818f52145c0fcead6ff838c069a4732e982c00af (patch)
tree0c67a789f7d71f5e8b685f1228d12f2f602b6cb3
parentb962cd58944ecb85722151234bf02421b09fc337 (diff)
generate tree trunks
-rw-r--r--mods/vzxv_worldgen/init.lua21
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