diff --git a/Minecraft.World/LevelChunk.cpp b/Minecraft.World/LevelChunk.cpp index 118dbcdda..29308e294 100644 --- a/Minecraft.World/LevelChunk.cpp +++ b/Minecraft.World/LevelChunk.cpp @@ -1628,18 +1628,18 @@ void LevelChunk::getEntities(shared_ptr except, AABB *bb, vectorbb->intersects(bb) && (selector == nullptr || selector->matches(e))) + if (e && e != except && e->bb->intersects(bb) && (selector == nullptr || selector->matches(e))) { es.push_back(e); + vector > *subs = e->getSubEntities(); if (subs != nullptr) { - for (const auto& sub : *subs) + for (const auto& subEntity : *subs) { - e = sub; - if ( e && e != except && e->bb->intersects(bb) && (selector == nullptr || selector->matches(e))) + if (subEntity && subEntity != except && subEntity->bb->intersects(bb) && (selector == nullptr || selector->matches(subEntity))) { - es.push_back(e); + es.push_back(subEntity); } } }