diff --git a/res/generators/default.lua b/res/generators/default.lua new file mode 100644 index 00000000..65d7dcd2 --- /dev/null +++ b/res/generators/default.lua @@ -0,0 +1,37 @@ +local W = 256 +local H = 256 + +function generate_heightmap(x, y) + local umap = Heightmap(W, H) + local vmap = Heightmap(W, H) + umap:noise({x+521, y+73}, 0.05, 1, 20.8) + umap:noise({x+51, y+75}, 0.05, 1, 21.8) + umap:noise({x+521, y+70}, 0.1, 3, 35.8) + vmap:noise({x+95, y+246}, 0.15, 3, 35.8) + + local bmap = Heightmap(W, H) + bmap:noise({x+3, y+6}, 0.1, 1, 3) + local map = Heightmap(W, H) + + + map:noise({x, y}, 0.06, 5, 0.2, umap, vmap) + map:noise({x, y}, 0.12, 6, 0.5, umap, vmap) + map:mul(bmap) + map:mul(0.7) + + local rivermap = Heightmap(W, H) + rivermap:noise({x+21, y+12}, 0.1, 3) + rivermap:abs() + rivermap:min(0.5) + rivermap:mul(2.0) + rivermap:pow(0.6) + map:add(1.2) + map:mul(rivermap) + map:add(-1.0) + map:mul(0.5) + + return map +end + +local map = generate_heightmap(0, 0) +map:dump("heightmap.png") diff --git a/res/scripts/world.lua b/res/scripts/world.lua index c48b5615..964100e7 100644 --- a/res/scripts/world.lua +++ b/res/scripts/world.lua @@ -1,48 +1,3 @@ -- use for engine development tests -- must be empty in release -- must not be modified by content-packs - -local W = 1024 -local H = 1024 - -for t=1,1 do - local tm = time.uptime() - - local umap = Heightmap(W, H) - local vmap = Heightmap(W, H) - umap:noise({521, 73}, 0.2, 1, 11.8) - umap:noise({51, 73}, 0.2, 1, 11.8) - umap:noise({521, 73}, 0.4, 6, 5.8) - vmap:noise({95, 246}, 0.6, 6, 5.8) - - local bmap = Heightmap(W, H) - bmap:noise({3, 6}, 0.1, 1, 3) - local map = Heightmap(W, H) - - - map:noise({0, 0}, 0.06, 4, 0.2, umap, vmap) - map:noise({0, 0}, 0.25, 6, 0.5, umap, vmap) - map:mul(bmap) - map:mul(0.7) - - local rivermap = Heightmap(W, H) - rivermap:noise({21, 12}, 0.05, 3) - rivermap:abs() - rivermap:min(0.1) - rivermap:mul(10.0) - rivermap:pow(0.8) - map:add(1.2) - map:mul(rivermap) - map:add(-1.0) - map:mul(0.5) - - local overmap = Heightmap(W, H) - overmap:noise({1, 5122}, 0.02, 2, 0.2) - overmap:abs() - overmap:pow(0.5) - overmap:mul(-1.0) - map:add(overmap) - - print(math.floor((time.uptime() - tm) * 1000000).." mcs") - map:dump("heightmap.png") -end