diff options
author | the lemons <citrons@mondecitronne.com> | 2022-02-10 04:37:57 -0600 |
---|---|---|
committer | the lemons <citrons@mondecitronne.com> | 2022-02-10 04:37:57 -0600 |
commit | 132a98f65fdfa2c6f243d89f6cc76fc4bd74b219 (patch) | |
tree | 0c5410da772cdc001f60b9b8f4a5989798f48d00 | |
parent | 06b7ab4746c1de09cd51793df9513a3614c2185c (diff) |
start adding noisy terrain (broken)
-rw-r--r-- | mods/vzxv_worldgen/init.lua | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/mods/vzxv_worldgen/init.lua b/mods/vzxv_worldgen/init.lua index 719cd52..b16e24f 100644 --- a/mods/vzxv_worldgen/init.lua +++ b/mods/vzxv_worldgen/init.lua @@ -1,20 +1,32 @@ minetest.set_mapgen_setting('mg_name','singlenode',true) minetest.set_mapgen_setting('flags','nolight',true) + local stone = minetest.get_content_id("vzxv:stone") local data = {} --- buffer for things something someting memory use - minetest.register_on_generated(function(minp,maxp,seed) local voxmn, vmin, vmax = minetest.get_mapgen_object("voxelmanip") - local w = minp.x - maxp.x + 1 local va = VoxelArea:new{MinEdge=vmin,MaxEdge=vmax} - + + local noisemap = PerlinNoiseMap({ + seed = 1, + offset = 0, + scale = 10, + spread = {x=500,y=500,z=500}, + octaves = 5, + persistence = 0.63, + lacunarity = 2.0, + flags = "defaults, absvalue", + }, {x=maxp.x-minp.x+1,y=maxp.z-minp.z+1}) + local heightmap = noisemap:get_2d_map{x=minp.x,y=minp.z} + voxmn:get_data(data) for x=minp.x, maxp.x do - for y=minp.y, maxp.y do - for z=minp.z, maxp.z do + for z=minp.z, maxp.z do + local height = heightmap[x-minp.x+1][z-minp.z+1] + height = height - 5 + for y=minp.y, maxp.y do local i = va:index(x,y,z) - if y < 0 then + if y < height then data[i] = stone end end @@ -29,4 +41,4 @@ minetest.register_on_generated(function(minp,maxp,seed) minetest.after(0,function() minetest.fix_light(minp,maxp) end) -end)
\ No newline at end of file +end) |