| 806 | |
| 807 | |
| 808 | void WorldServer::forEachCollisionBlock(RectI const& region, function<void(CollisionBlock const&)> const& iterator) const { |
| 809 | const_cast<WorldServer*>(this)->freshenCollision(region); |
| 810 | m_tileArray->tileEach(region, [iterator](Vec2I const& pos, ServerTile const& tile) { |
| 811 | if (tile.getCollision() == CollisionKind::Null) { |
| 812 | iterator(CollisionBlock::nullBlock(pos)); |
| 813 | } else { |
| 814 | starAssert(!tile.collisionCacheDirty); |
| 815 | for (auto const& block : tile.collisionCache) |
| 816 | iterator(block); |
| 817 | } |
| 818 | }); |
| 819 | } |
| 820 | |
| 821 | bool WorldServer::isTileConnectable(Vec2I const& pos, TileLayer layer, bool tilesOnly) const { |
| 822 | return m_tileArray->tile(pos).isConnectable(layer, tilesOnly); |
nothing calls this directly
no test coverage detected