]> git.localhorst.tv Git - blank.git/blobdiff - src/world/BlockType.hpp
group entity updates in as few packets as possible
[blank.git] / src / world / BlockType.hpp
index 344bec7f6542b1c5ffa049ec08cda2b8dd8135d2..bdc4721e96dea3b4762cc219190b4d0c49379ff6 100644 (file)
@@ -3,7 +3,7 @@
 
 #include "Block.hpp"
 #include "../model/BlockModel.hpp"
-#include "../model/Model.hpp"
+#include "../model/EntityModel.hpp"
 #include "../model/OutlineModel.hpp"
 #include "../model/shapes.hpp"
 
@@ -17,16 +17,28 @@ namespace blank {
 struct BlockType {
 
        const Shape *shape;
+       float texture;
        glm::vec3 color;
        glm::vec3 outline_color;
 
+       // a string to display to the user
+       std::string label;
+
        Block::Type id;
 
+       // light level that blocks of this type emit
        int luminosity;
 
+       // whether to draw
        bool visible;
+       // if true, stops light from propagating and fixes level to luminosity
        bool block_light;
 
+       // whether to check for collisions at all
+       bool collision;
+       // if the block should be impenetrable
+       bool collide_block;
+
        struct Faces {
                bool face[Block::FACE_COUNT];
                Faces &operator =(const Faces &other) noexcept {
@@ -52,21 +64,17 @@ struct BlockType {
                return fill[block.OrientedFace(face)];
        }
 
-       void FillModel(
-               Model::Buffer &m,
+       void FillEntityModel(
+               EntityModel::Buffer &m,
                const glm::mat4 &transform = glm::mat4(1.0f),
-               Model::Index idx_offset = 0
+               EntityModel::Index idx_offset = 0
        ) const noexcept;
        void FillBlockModel(
                BlockModel::Buffer &m,
                const glm::mat4 &transform = glm::mat4(1.0f),
                BlockModel::Index idx_offset = 0
        ) const noexcept;
-       void FillOutlineModel(
-               OutlineModel &m,
-               const glm::vec3 &pos_offset = { 0, 0, 0 },
-               OutlineModel::Index idx_offset = 0
-       ) const noexcept;
+       void FillOutlineModel(OutlineModel::Buffer &m) const noexcept;
 
 };