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

Method modifyLiquid

source/game/StarWorldServer.cpp:1793–1807  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1791}
1792
1793void WorldServer::modifyLiquid(Vec2I const& pos, LiquidId liquid, float quantity, bool additive) {
1794 if (liquid == EmptyLiquidId)
1795 quantity = 0;
1796
1797 if (ServerTile* tile = m_tileArray->modifyTile(pos)) {
1798 auto materialDatabase = Root::singleton().materialDatabase();
1799 if (tile->foreground == EmptyMaterialId || !isSolidColliding(materialDatabase->materialCollisionKind(tile->foreground))) {
1800 if (additive && liquid == tile->liquid.liquid)
1801 quantity += tile->liquid.level;
1802
1803 setLiquid(pos, liquid, quantity, tile->liquid.pressure);
1804 m_liquidEngine->visitLocation(pos);
1805 }
1806 }
1807}
1808
1809void WorldServer::setLiquid(Vec2I const& pos, LiquidId liquid, float level, float pressure) {
1810 if (ServerTile* tile = m_tileArray->modifyTile(pos)) {

Callers 2

setForegroundMaterialMethod · 0.80
setBackgroundMaterialMethod · 0.80

Calls 6

singletonClass · 0.85
isSolidCollidingFunction · 0.85
materialDatabaseMethod · 0.80
materialCollisionKindMethod · 0.80
modifyTileMethod · 0.45
visitLocationMethod · 0.45

Tested by

no test coverage detected