X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;ds=sidebyside;f=src%2Fworld%2FBlockType.hpp;h=8837ca9fd4bd8e1567accde47c5a429c6681cbde;hb=a7eb097d4c1513108b5588eb2e99014ace85c9c5;hp=1ea34a1f897558e28e5020dc4545eb19513b55a5;hpb=ba55bf4293f3abc742eef710545a4b207ba2c820;p=blank.git diff --git a/src/world/BlockType.hpp b/src/world/BlockType.hpp index 1ea34a1..8837ca9 100644 --- a/src/world/BlockType.hpp +++ b/src/world/BlockType.hpp @@ -4,7 +4,7 @@ #include "Block.hpp" #include "../graphics/BlockMesh.hpp" #include "../graphics/EntityMesh.hpp" -#include "../graphics/OutlineMesh.hpp" +#include "../graphics/PrimitiveMesh.hpp" #include "../model/Shape.hpp" #include @@ -13,6 +13,10 @@ namespace blank { +class ResourceIndex; +class ShapeRegistry; +class TokenStreamReader; + /// single 1x1x1 cube /// attributes of a type of block struct BlockType { @@ -26,6 +30,9 @@ struct BlockType { /// a string to display to the user std::string label; + int place_sound; + int remove_sound; + Block::Type id; /// light level that blocks of this type emit @@ -63,6 +70,12 @@ struct BlockType { BlockType() noexcept; + void Read( + TokenStreamReader &in, + ResourceIndex &snd_index, + ResourceIndex &tex_index, + const ShapeRegistry &shapes); + bool FaceFilled(const Block &block, Block::Face face) const noexcept { return shape && shape->FaceFilled(block.OrientedFace(face)); } @@ -76,7 +89,7 @@ struct BlockType { const glm::mat4 &transform = glm::mat4(1.0f), BlockMesh::Index idx_offset = 0 ) const noexcept; - void FillOutlineMesh(OutlineMesh::Buffer &m) const noexcept; + void OutlinePrimitiveMesh(PrimitiveMesh::Buffer &) const noexcept; };