From a4d017a3f2b841788f7e47669c0d0cac9c3f31c8 Mon Sep 17 00:00:00 2001 From: LaG1924 <12997935+LaG1924@users.noreply.github.com> Date: Fri, 9 Mar 2018 02:44:17 +0500 Subject: Fixed holes when block on section border destroyed --- src/World.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'src/World.cpp') diff --git a/src/World.cpp b/src/World.cpp index 59399f5..67abc02 100644 --- a/src/World.cpp +++ b/src/World.cpp @@ -350,10 +350,22 @@ void World::SetBlockId(Vector pos, BlockId block) { Vector sectionPos(std::floor(pos.x / 16.0), std::floor(pos.y / 16.0), std::floor(pos.z / 16.0)); - + Vector blockPos = pos - (sectionPos * 16); Section* section = GetSectionPtr(sectionPos); - section->SetBlockId(pos - (sectionPos * 16), block); + section->SetBlockId(blockPos, block); PUSH_EVENT("ChunkChanged",sectionPos); + if (blockPos.x == 0) + PUSH_EVENT("ChunkChangedForce", sectionPos + Vector(-1, 0, 0)); + if (blockPos.x == 15) + PUSH_EVENT("ChunkChangedForce", sectionPos + Vector(1, 0, 0)); + if (blockPos.y == 0) + PUSH_EVENT("ChunkChangedForce", sectionPos + Vector(0, -1, 0)); + if (blockPos.y == 15) + PUSH_EVENT("ChunkChangedForce", sectionPos + Vector(0, 1, 0)); + if (blockPos.z == 0) + PUSH_EVENT("ChunkChangedForce", sectionPos + Vector(0, 0, -1)); + if (blockPos.z == 15) + PUSH_EVENT("ChunkChangedForce", sectionPos + Vector(0, 0, 1)); } void World::SetBlockLight(Vector pos, unsigned char light) { -- cgit v1.2.3