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

Method damageTiles

source/game/StarPlant.cpp:917–940  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

915}
916
917bool Plant::damageTiles(List<Vec2I> const& positions, Vec2F const& sourcePosition, TileDamage const& tileDamage) {
918 auto position = baseDamagePosition(positions);
919
920 auto geometry = world()->geometry();
921
922 m_tileDamageStatus.damage(m_tileDamageParameters, tileDamage);
923 m_tileDamageX = geometry.diff(position[0], tilePosition()[0]);
924 m_tileDamageY = position[1] - tilePosition()[1];
925 m_tileDamageEvent = true;
926 m_tileDamageEventTrigger = true;
927
928 bool breaking = false;
929 if (m_tileDamageStatus.dead()) {
930 breaking = true;
931 if (m_fallsWhenDead) {
932 m_tileDamageStatus.reset();
933 breakAtPosition(position, sourcePosition);
934 } else {
935 m_broken = true;
936 }
937 }
938
939 return breaking;
940}
941
942void Plant::breakAtPosition(Vec2I const& position, Vec2F const& sourcePosition) {
943 auto geometry = world()->geometry();

Callers 1

processActionMethod · 0.45

Calls 5

damageMethod · 0.80
geometryMethod · 0.45
diffMethod · 0.45
deadMethod · 0.45
resetMethod · 0.45

Tested by

no test coverage detected