summaryrefslogtreecommitdiffstats
path: root/src/World.cpp
diff options
context:
space:
mode:
authorHowaner <franzi.moos@googlemail.com>2014-09-02 20:03:42 +0200
committerHowaner <franzi.moos@googlemail.com>2014-09-02 20:03:42 +0200
commitd3b8100a7b84a465ca52238d459bb10d32940c46 (patch)
tree2c272ec985b9228ef2e4892aeeabefa54786d215 /src/World.cpp
parentRemoved SexyMotd link (diff)
parentRe-added alternate spellings of darkgraywool. (diff)
downloadcuberite-d3b8100a7b84a465ca52238d459bb10d32940c46.tar
cuberite-d3b8100a7b84a465ca52238d459bb10d32940c46.tar.gz
cuberite-d3b8100a7b84a465ca52238d459bb10d32940c46.tar.bz2
cuberite-d3b8100a7b84a465ca52238d459bb10d32940c46.tar.lz
cuberite-d3b8100a7b84a465ca52238d459bb10d32940c46.tar.xz
cuberite-d3b8100a7b84a465ca52238d459bb10d32940c46.tar.zst
cuberite-d3b8100a7b84a465ca52238d459bb10d32940c46.zip
Diffstat (limited to '')
-rw-r--r--src/World.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/World.cpp b/src/World.cpp
index b01e53638..99e09c658 100644
--- a/src/World.cpp
+++ b/src/World.cpp
@@ -1226,24 +1226,26 @@ void cWorld::DoExplosionAt(double a_ExplosionSize, double a_BlockX, double a_Blo
return;
}
- // TODO: Add damage to entities and implement block hardiness
+ // TODO: Implement block hardiness
Vector3d explosion_pos = Vector3d(a_BlockX, a_BlockY, a_BlockZ);
cVector3iArray BlocksAffected;
m_ChunkMap->DoExplosionAt(a_ExplosionSize, a_BlockX, a_BlockY, a_BlockZ, BlocksAffected);
BroadcastSoundEffect("random.explode", (double)a_BlockX, (double)a_BlockY, (double)a_BlockZ, 1.0f, 0.6f);
+
{
cCSLock Lock(m_CSPlayers);
for (cPlayerList::iterator itr = m_Players.begin(); itr != m_Players.end(); ++itr)
{
cClientHandle * ch = (*itr)->GetClientHandle();
- if ((ch == NULL) || !ch->IsLoggedIn() || ch->IsDestroyed())
+ if (ch == NULL)
{
continue;
}
+
Vector3d distance_explosion = (*itr)->GetPosition() - explosion_pos;
if (distance_explosion.SqrLength() < 4096.0)
{
- double real_distance = std::max(0.004, sqrt(distance_explosion.SqrLength()));
+ double real_distance = std::max(0.004, distance_explosion.Length());
double power = a_ExplosionSize / real_distance;
if (power <= 1)
{
@@ -1255,6 +1257,7 @@ void cWorld::DoExplosionAt(double a_ExplosionSize, double a_BlockX, double a_Blo
}
}
}
+
cPluginManager::Get()->CallHookExploded(*this, a_ExplosionSize, a_CanCauseFire, a_BlockX, a_BlockY, a_BlockZ, a_Source, a_SourceData);
}