From 2eef7cf49b7a15559ee7bb6719411bcf67386213 Mon Sep 17 00:00:00 2001 From: Mel Date: Sat, 22 Jul 2023 17:35:00 +0200 Subject: Propagation in lighting system --- src/World/Chunk.hpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/World/Chunk.hpp') diff --git a/src/World/Chunk.hpp b/src/World/Chunk.hpp index 5f4844e..32d3ab3 100644 --- a/src/World/Chunk.hpp +++ b/src/World/Chunk.hpp @@ -1,19 +1,23 @@ #pragma once #include "../Common/Sizes.hpp" +#include "ChunkDimensions.hpp" #include "BiomeType.hpp" #include "BlockType.hpp" +#include "ChunkIndex.hpp" +#include "Position.hpp" #include "../GFX/Mesh.hpp" namespace MC::World { class Chunk { public: - static constexpr U32 Width = 16; - static constexpr U32 Height = 128; + static constexpr U32 Width = ChunkDimensions::Width; + static constexpr U32 Height = ChunkDimensions::Height; Chunk(I64 x, I64 y) : m_blocks{Width * Height * Width, {BlockType::Air}}, + m_index(x, y), m_position{(Real)x * Width, 0.0f, (Real)y * Width} {} struct BlockData { @@ -28,6 +32,8 @@ public: const BlockData& at(U32 x, U32 y, U32 z) const; BlockData& at(U32 x, U32 y, U32 z); + const BlockData& at(Position::BlockLocal pos) const; + BlockData& at(Position::BlockLocal pos); Bool is_empty(U32 x, U32 y, U32 z) const; @@ -43,12 +49,14 @@ public: void set_details(const Details& details) { m_details = details; } Details& details(){ return m_details; } + ChunkIndex index() const; Vector<3> position() const; static Bool is_valid_position(U32 x, U32 y, U32 z); private: static U64 pos(U32 x, U32 y, U32 z); + ChunkIndex m_index; Vector<3> m_position; std::vector m_blocks; -- cgit 1.4.1