summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorthe lemons <citrons@mondecitronne.com>2022-02-10 04:37:57 -0600
committerthe lemons <citrons@mondecitronne.com>2022-02-10 04:37:57 -0600
commit132a98f65fdfa2c6f243d89f6cc76fc4bd74b219 (patch)
tree0c5410da772cdc001f60b9b8f4a5989798f48d00
parent06b7ab4746c1de09cd51793df9513a3614c2185c (diff)
start adding noisy terrain (broken)
-rw-r--r--mods/vzxv_worldgen/init.lua28
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)