1 #include <glm/gtc/noise.hpp>
5 using namespace dragonblocks;
7 Chunk::Data Mapgen::generate(const ivec3 &chunkp) const
10 vec3 minp = chunkp * ivec3(DRAGONBLOCKS_CHUNK_SIZE);
11 vec3 maxp = minp + vec3(DRAGONBLOCKS_CHUNK_SIZE);
12 int minx = minp.x, miny = minp.y, minz = minp.z, maxx = maxp.x, maxy = maxp.y, maxz = maxp.z;
13 for (int x = minx; x < maxx; x++) {
15 for (int z = minz; z < maxz; z++) {
17 int grass_layer = grass_layer_middle + grass_layer_range * perlin(vec2((float)x / 128, (float)z / 128));
18 for (int y = miny; y < maxy; y++) {
21 if (y < grass_layer - 4)
23 else if (y < grass_layer - 1)
25 else if (y < grass_layer)
29 data.blocks[rx][ry][rz] = blockdef;