X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fworld%2FBlockType.hpp;h=a27b89bfd30016c66fcf677d64c23a3e51b78693;hb=1c2994622a6b73f90cbd3ec9c09ffb4d7724cab4;hp=bdc4721e96dea3b4762cc219190b4d0c49379ff6;hpb=57f4a76edbfd6c2b6077047e9fba31788d161b44;p=blank.git diff --git a/src/world/BlockType.hpp b/src/world/BlockType.hpp index bdc4721..a27b89b 100644 --- a/src/world/BlockType.hpp +++ b/src/world/BlockType.hpp @@ -18,27 +18,48 @@ struct BlockType { const Shape *shape; float texture; - glm::vec3 color; + glm::vec3 hsl_mod; + glm::vec3 rgb_mod; 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 { @@ -52,11 +73,7 @@ struct BlockType { } } fill; - explicit BlockType( - bool v = false, - const glm::vec3 &color = { 1, 1, 1 }, - const Shape *shape = &DEFAULT_SHAPE - ) noexcept; + BlockType() noexcept; static const NullShape DEFAULT_SHAPE;