summary refs log tree commit diff
path: root/src/World/Chunk.hpp
diff options
context:
space:
mode:
authorMel <einebeere@gmail.com>2023-07-07 21:39:42 +0200
committerMel <einebeere@gmail.com>2023-07-07 21:39:42 +0200
commitf1fc192ddc4c739fa8b4b376c759b7d3218a34eb (patch)
tree9e9afb9a21ba3ca27d1f25d46230aa9d27f8be39 /src/World/Chunk.hpp
parent24b8124469350d1c80d0553cf3f4bf58cdb1489b (diff)
downloadmeowcraft-f1fc192ddc4c739fa8b4b376c759b7d3218a34eb.tar.zst
meowcraft-f1fc192ddc4c739fa8b4b376c759b7d3218a34eb.zip
Chunk-bound tree decoration
Diffstat (limited to 'src/World/Chunk.hpp')
-rw-r--r--src/World/Chunk.hpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/World/Chunk.hpp b/src/World/Chunk.hpp
index d200039..8780700 100644
--- a/src/World/Chunk.hpp
+++ b/src/World/Chunk.hpp
@@ -19,27 +19,30 @@ public:
 
     struct BlockData {
         BlockType type;
+
+        bool empty() const { return type == BlockType::Air; }
     };
 
     void set(uint32_t x, uint32_t y, uint32_t z, BlockData data);
     BlockData get(uint32_t x, uint32_t y, uint32_t z) const;
+    bool is_empty(uint32_t x, uint32_t y, uint32_t z) const;
 
     struct Details {
         Matrix<Width, Width> landmass_values{};
         Matrix<Width, Width> hill_values{};
+
+        Matrix<Width, Width> temperature_values{};
+        Matrix<Width, Width> humidity_values{};
+
         Matrix<Width, Width, BiomeType> biome_values{};
     };
     void set_details(const Details& details) { m_details = details; }
     Details& details(){ return m_details; }
 
     Vector<3> position();
-    GFX::Mesh mesh();
-private:
-    bool is_face_visible(uint32_t x, uint32_t y, uint32_t z, BlockSide side);
-
-    static std::array<Vector<2>, 4> face_tex_coords(BlockType type, BlockSide side);
-    static std::array<Vector<3>, 4> face_normals(BlockSide side);
 
+    static bool is_valid_position(uint32_t x, uint32_t y, uint32_t z);
+private:
     static uint64_t pos(uint32_t x, uint32_t y, uint32_t z);
 
     Vector<3> m_position;