MCPcopy Create free account
hub / github.com/OpenStarbound/OpenStarbound / forEachCollisionBlock

Method forEachCollisionBlock

source/game/StarWorldServer.cpp:808–819  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

806
807
808void 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
821bool WorldServer::isTileConnectable(Vec2I const& pos, TileLayer layer, bool tilesOnly) const {
822 return m_tileArray->tile(pos).isConnectable(layer, tilesOnly);

Callers

nothing calls this directly

Calls 4

tileEachMethod · 0.80
getCollisionMethod · 0.60
iteratorClass · 0.50
freshenCollisionMethod · 0.45

Tested by

no test coverage detected