mirror of
https://github.com/GayPizzaSpecifications/voxelotl-engine.git
synced 2025-08-02 13:00:53 +00:00
don't damage chunk if a one block change doesn't touch a solid
This commit is contained in:
parent
d35de84221
commit
0cdc495434
@ -36,12 +36,18 @@ public class World {
|
||||
for (i, ofs) in zip(internalPos.indices, [ SIMD3<Int>.X, .Y, .Z ]) {
|
||||
if internalPos[i] == 0 {
|
||||
let id = chunkID &- ofs
|
||||
if self._chunks.keys.contains(id) {
|
||||
if let other = self._chunks[id],
|
||||
// optim: Damage adjacent chunk only if block is touching a solid
|
||||
case .solid = other.getBlock(internal: (internalPos &- ofs) & Chunk.mask).type
|
||||
{
|
||||
self._chunkDamage.insert(id)
|
||||
}
|
||||
} else if internalPos[i] == Chunk.size - 1 {
|
||||
let id = chunkID &+ ofs
|
||||
if self._chunks.keys.contains(id) {
|
||||
if let other = self._chunks[id],
|
||||
// optim: Damage adjacent chunk only if block is touching a solid
|
||||
case .solid = other.getBlock(internal: (internalPos &+ ofs) & Chunk.mask).type
|
||||
{
|
||||
self._chunkDamage.insert(id)
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user