X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fgenerator.cpp;h=c1a7a0801198de34e3a4b8b3d0bdddd70f334ba4;hb=bd6bd2c875f4b6baef913e5315aa9f7e7cd7da7a;hp=60708e021a01c93751b1aa767963cc3add0c4d57;hpb=28fda9f7f55a9e806ade3f49f4e94f0242ec2c3c;p=blank.git diff --git a/src/generator.cpp b/src/generator.cpp index 60708e0..c1a7a08 100644 --- a/src/generator.cpp +++ b/src/generator.cpp @@ -10,6 +10,8 @@ Generator::Generator(unsigned int seed) , typeNoise(seed + 1) , stretch(64.0f) , solid_threshold(0.8f) +, space(0) +, light(0) , solids() { } @@ -27,11 +29,22 @@ void Generator::operator ()(Chunk &chunk) const { float val = solidNoise(gen_pos); if (val > solid_threshold) { int type_val = int((typeNoise(gen_pos) + 1.0f) * solids.size()) % solids.size(); - chunk.BlockAt(block_pos) = Block(solids[type_val]); + chunk.SetBlock(block_pos, Block(solids[type_val])); + } else { + chunk.SetBlock(block_pos, Block(space)); } } } } + unsigned int random = 263167 * pos.x + 2097593 * pos.y + 426389 * pos.z; + for (int index = 0; index < Chunk::Size(); ++index) { + if (chunk.IsSurface(index)) { + random = random * 666649 + 7778777; + if ((random % 32) == 0) { + chunk.SetBlock(index, Block(light)); + } + } + } chunk.Invalidate(); chunk.CheckUpdate(); }