]> git.localhorst.tv Git - blank.git/blobdiff - src/world/BlockType.hpp
more parameters for world generation
[blank.git] / src / world / BlockType.hpp
index bdc4721e96dea3b4762cc219190b4d0c49379ff6..0cae9c00389767c013880e559f3a37bf1126c7c8 100644 (file)
@@ -21,24 +21,44 @@ struct BlockType {
        glm::vec3 color;
        glm::vec3 outline_color;
 
-       // a string to display to the user
+       /// a string to display to the user
        std::string label;
 
        Block::Type id;
 
-       // light level that blocks of this type emit
+       /// light level that blocks of this type emit
        int luminosity;
 
-       // whether to draw
+       /// whether to draw
        bool visible;
-       // if true, stops light from propagating and fixes level to luminosity
+       /// if true, stops light from propagating and fixes level to luminosity
        bool block_light;
 
-       // whether to check for collisions at all
+       /// whether to check for collisions at all
        bool collision;
-       // if the block should be impenetrable
+       /// if the block should be impenetrable
        bool collide_block;
 
+       // generation properties
+       /// whether to use this block in generation at all
+       bool generate;
+       // min/mid/max points for the respective properties
+       // should all be in the (-1,1) range
+       float min_solidity;
+       float mid_solidity;
+       float max_solidity;
+       float min_humidity;
+       float mid_humidity;
+       float max_humidity;
+       float min_temperature;
+       float mid_temperature;
+       float max_temperature;
+       float min_richness;
+       float mid_richness;
+       float max_richness;
+       /// commonness factor, random chance is multiplied by this
+       float commonness;
+
        struct Faces {
                bool face[Block::FACE_COUNT];
                Faces &operator =(const Faces &other) noexcept {