diff options
author | Howaner <franzi.moos@googlemail.com> | 2014-03-08 10:25:46 +0100 |
---|---|---|
committer | Howaner <franzi.moos@googlemail.com> | 2014-03-08 10:25:46 +0100 |
commit | f5e374be41ef3bde93e0faaa76208e3e0e15e9ea (patch) | |
tree | 9b97062eebbc063dca6953cc3057f7686f81c79c /src/Entities/TNTEntity.cpp | |
parent | Link cItem in the documentation (diff) | |
download | cuberite-f5e374be41ef3bde93e0faaa76208e3e0e15e9ea.tar cuberite-f5e374be41ef3bde93e0faaa76208e3e0e15e9ea.tar.gz cuberite-f5e374be41ef3bde93e0faaa76208e3e0e15e9ea.tar.bz2 cuberite-f5e374be41ef3bde93e0faaa76208e3e0e15e9ea.tar.lz cuberite-f5e374be41ef3bde93e0faaa76208e3e0e15e9ea.tar.xz cuberite-f5e374be41ef3bde93e0faaa76208e3e0e15e9ea.tar.zst cuberite-f5e374be41ef3bde93e0faaa76208e3e0e15e9ea.zip |
Diffstat (limited to 'src/Entities/TNTEntity.cpp')
-rw-r--r-- | src/Entities/TNTEntity.cpp | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/src/Entities/TNTEntity.cpp b/src/Entities/TNTEntity.cpp index 339107b2e..4f361403c 100644 --- a/src/Entities/TNTEntity.cpp +++ b/src/Entities/TNTEntity.cpp @@ -10,8 +10,7 @@ cTNTEntity::cTNTEntity(double a_X, double a_Y, double a_Z, double a_FuseTimeInSec) : super(etTNT, a_X, a_Y, a_Z, 0.98, 0.98), - m_Counter(0), - m_MaxFuseTime(a_FuseTimeInSec) + m_FuseTicks(a_FuseTimeInSec) { } @@ -21,8 +20,7 @@ cTNTEntity::cTNTEntity(double a_X, double a_Y, double a_Z, double a_FuseTimeInSe cTNTEntity::cTNTEntity(const Vector3d & a_Pos, double a_FuseTimeInSec) : super(etTNT, a_Pos.x, a_Pos.y, a_Pos.z, 0.98, 0.98), - m_Counter(0), - m_MaxFuseTime(a_FuseTimeInSec) + m_FuseTicks(a_FuseTimeInSec) { } @@ -42,18 +40,27 @@ void cTNTEntity::SpawnOn(cClientHandle & a_ClientHandle) +void cTNTEntity::Explode(void) +{ + m_FuseTicks = 0; + Destroy(true); + LOGD("BOOM at {%f,%f,%f}", GetPosX(), GetPosY(), GetPosZ()); + m_World->DoExplosionAt(4.0, GetPosX() + 0.49, GetPosY() + 0.49, GetPosZ() + 0.49, true, esPrimedTNT, this); +} + + + + + void cTNTEntity::Tick(float a_Dt, cChunk & a_Chunk) { super::Tick(a_Dt, a_Chunk); BroadcastMovementUpdate(); float delta_time = a_Dt / 1000; // Convert miliseconds to seconds - m_Counter += delta_time; - if (m_Counter > m_MaxFuseTime) // Check if we go KABOOOM + m_FuseTicks -= delta_time; + if (m_FuseTicks <= 0) { - Destroy(true); - LOGD("BOOM at {%f,%f,%f}", GetPosX(), GetPosY(), GetPosZ()); - m_World->DoExplosionAt(4.0, GetPosX() + 0.49, GetPosY() + 0.49, GetPosZ() + 0.49, true, esPrimedTNT, this); - return; + Explode(); } } |