2 #include <glm/gtc/noise.hpp>
6 using namespace dragonblocks;
8 Chunk::Data Mapgen::generate(const ivec3 &chunkp) const
11 vec3 minp = chunkp * ivec3(DRAGONBLOCKS_CHUNK_SIZE);
12 vec3 maxp = minp + vec3(DRAGONBLOCKS_CHUNK_SIZE);
13 int minx = minp.x, miny = minp.y, minz = minp.z, maxx = maxp.x, maxy = maxp.y, maxz = maxp.z;
14 for (int x = minx; x < maxx; x++) {
16 for (int z = minz; z < maxz; z++) {
18 int grass_layer = grass_layer_middle + grass_layer_range * perlin(vec2((float)x / 64, (float)z / 64));
19 for (int y = miny; y < maxy; y++) {
22 if (y < grass_layer - 4)
24 else if (y < grass_layer - 1)
26 else if (y < grass_layer)
30 data.blocks[rx][ry][rz] = blockdef;