summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorthe lemons <citrons@mondecitronne.com>2022-02-10 20:40:53 -0600
committerthe lemons <citrons@mondecitronne.com>2022-02-10 20:40:53 -0600
commit2bdf6a1bf157ddfc668b5392d0427d8c738b9380 (patch)
treee21c43adee4704017846cad0877ad1ce8805ceb1
parente7b5bf790bf6d16f4112982d108fd235e04aee48 (diff)
parent818f52145c0fcead6ff838c069a4732e982c00af (diff)
Merge branch 'master' of citrons.xyz:vzxv
-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