diff options
| author | Mel <einebeere@gmail.com> | 2023-08-06 01:54:27 +0200 |
|---|---|---|
| committer | Mel <einebeere@gmail.com> | 2023-08-06 01:54:27 +0200 |
| commit | e6f5f9e03f673db796f1babb308609ca2576db2f (patch) | |
| tree | fbc7d9451ec943a107f0ab54b3de7a7bd25e656d /src/World/Generation/ChunkMeshing.cpp | |
| parent | a627fb7038c94de9be9709ea88dcd1dddc95c5a3 (diff) | |
| download | meowcraft-e6f5f9e03f673db796f1babb308609ca2576db2f.tar.zst meowcraft-e6f5f9e03f673db796f1babb308609ca2576db2f.zip | |
Improve MC::Position and remove some redundant code
Diffstat (limited to 'src/World/Generation/ChunkMeshing.cpp')
| -rw-r--r-- | src/World/Generation/ChunkMeshing.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/World/Generation/ChunkMeshing.cpp b/src/World/Generation/ChunkMeshing.cpp index 3855de4..feecc64 100644 --- a/src/World/Generation/ChunkMeshing.cpp +++ b/src/World/Generation/ChunkMeshing.cpp @@ -11,15 +11,15 @@ ChunkMesh mesh_chunk(Chunk& chunk, const SurroundingContext& context) { }; } -SurroundingContext::Block& SurroundingContext::at(Position::BlockOffset p) { +SurroundingContext::Block& SurroundingContext::at(Position::BlockLocalOffset p) { return m_blocks[pos(p)]; } -const SurroundingContext::Block& SurroundingContext::at(Position::BlockOffset p) const { +const SurroundingContext::Block& SurroundingContext::at(Position::BlockLocalOffset p) const { return m_blocks[pos(p)]; } -USize SurroundingContext::pos(Position::BlockOffset p) { +USize SurroundingContext::pos(Position::BlockLocalOffset p) { // First we calculate the index as if there were no gaps. USize pos = 0; pos += p.x() + 1; @@ -39,7 +39,7 @@ SurroundingContext create_meshing_context(const Chunk& chunk, ChunkNeighbors& ne for (I16 x = -1; x <= (I16)Chunk::Width; x++) { for (I16 z = -1; z <= (I16)Chunk::Width; z++) { for (I16 y = 0; y < (I16)Chunk::Height; y++) { - Position::BlockOffset pos{x, y, z}; + Position::BlockLocalOffset pos{x, y, z}; if (pos.fits_within_chunk()) continue; auto [does_exist, block] = get_block_wrapping(chunk, neighbors, {pos.x(), pos.y(), pos.z()}); context.at(pos) = {does_exist, block}; @@ -205,7 +205,7 @@ Face<AO> DefaultMeshDecisions::face_ao_values(Chunk& chunk, const SurroundingCon auto b = offsets[++offset_index]; // corner auto c = offsets[++offset_index % 8]; - auto p = [=](auto o) -> Position::BlockOffset { return {(I16)((I16)x + o.x()), (I16)((I16)y + o.y()), (I16)((I16)z + o.z())}; }; + auto p = [=](auto o) -> Position::BlockLocalOffset { return {(I16)x + o.x(), (I16)y + o.y(), (I16)z + o.z()}; }; auto block_a = get_block_from_chunk_or_context(chunk, context, p(a)); auto block_b = get_block_from_chunk_or_context(chunk, context, p(b)); auto block_c = get_block_from_chunk_or_context(chunk, context, p(c)); @@ -236,7 +236,7 @@ Vector<3, I32> DefaultMeshDecisions::get_face_normal(BlockSide side) { } SurroundingContext::Block DefaultMeshDecisions::get_block_from_chunk_or_context( - const Chunk& chunk, const SurroundingContext& context, Position::BlockOffset pos + const Chunk& chunk, const SurroundingContext& context, Position::BlockLocalOffset pos ) { if (pos.fits_within_chunk()) return {true, chunk.at(pos)}; return context.at(pos); |
