]> git.localhorst.tv Git - blank.git/blob - src/generator.hpp
add some light blocks to generated surfaces
[blank.git] / src / generator.hpp
1 #ifndef BLANK_GENERATOR_HPP_
2 #define BLANK_GENERATOR_HPP_
3
4 #include "block.hpp"
5 #include "chunk.hpp"
6 #include "noise.hpp"
7
8 #include <vector>
9
10
11 namespace blank {
12
13 class Generator {
14
15 public:
16         explicit Generator(unsigned int seed);
17
18         void operator ()(Chunk &) const;
19
20         void Space(Block::Type t) { space = t; }
21         void Light(Block::Type t) { light = t; }
22         void Solids(const std::vector<Block::Type> &s) { solids = s; }
23
24 private:
25         SimplexNoise solidNoise;
26         WorleyNoise typeNoise;
27
28         float stretch;
29         float solid_threshold;
30
31         Block::Type space;
32         Block::Type light;
33         std::vector<Block::Type> solids;
34
35 };
36
37 }
38
39 #endif