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

Method blockType

source/game/StarWorldGeneration.cpp:146–162  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

144 : m_worldServer(w), m_materialDatabase(Root::singleton().materialDatabase()) {}
145
146FallingBlockType FallingBlocksWorld::blockType(Vec2I const& pos) {
147 auto const& tile = m_worldServer->getServerTile(pos, true);
148 if (tile.rootSource) {
149 return FallingBlockType::Immovable;
150 } if (tile.foreground == EmptyMaterialId) {
151 if (m_worldServer->tileIsOccupied(pos, TileLayer::Foreground))
152 return FallingBlockType::Immovable;
153 else
154 return FallingBlockType::Open;
155 } else if (m_materialDatabase->isCascadingFallingMaterial(tile.foreground)) {
156 return FallingBlockType::Cascading;
157 } else if (m_materialDatabase->isFallingMaterial(tile.foreground)) {
158 return FallingBlockType::Falling;
159 } else {
160 return FallingBlockType::Immovable;
161 }
162}
163
164void FallingBlocksWorld::moveBlock(Vec2I const& from, Vec2I const& to) {
165 auto fromTile = m_worldServer->modifyServerTile(from, true);

Callers 1

updateMethod · 0.80

Calls 3

isFallingMaterialMethod · 0.80
tileIsOccupiedMethod · 0.45

Tested by

no test coverage detected