1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00

Add Mapgen V7, reorganize biomes

This commit is contained in:
kwolekr 2013-04-06 11:19:59 -04:00
parent d50b2ede92
commit 8ec3fc35c6
16 changed files with 871 additions and 384 deletions

View file

@ -1,6 +1,7 @@
/*
Minetest
Copyright (C) 2010-2013 celeron55, Perttu Ahola <celeron55@gmail.com>
Copyright (C) 2010-2013 kwolekr, Ryan Kwolek <kwolekr@minetest.net>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
@ -536,6 +537,41 @@ float *Noise::perlinMap2D(float x, float y) {
}
float *Noise::perlinMap2DModulated(float x, float y, float *persist_map) {
float f = 1.0;
int i, j, index, oct;
x /= np->spread.X;
y /= np->spread.Y;
memset(result, 0, sizeof(float) * sx * sy);
float *g = new float[sx * sy];
for (index = 0; index != sx * sy; index++)
g[index] = 1.0;
for (oct = 0; oct < np->octaves; oct++) {
gradientMap2D(x * f, y * f,
f / np->spread.X, f / np->spread.Y,
seed + np->seed + oct);
index = 0;
for (j = 0; j != sy; j++) {
for (i = 0; i != sx; i++) {
result[index] += g[index] * buf[index];
g[index] *= persist_map[index];
index++;
}
}
f *= 2.0;
}
delete[] g;
return result;
}
float *Noise::perlinMap3D(float x, float y, float z) {
float f = 1.0, g = 1.0;
int i, j, k, index, oct;