diff options
author | Howaner <franzi.moos@googlemail.com> | 2014-10-23 14:59:42 +0200 |
---|---|---|
committer | Howaner <franzi.moos@googlemail.com> | 2014-10-23 14:59:42 +0200 |
commit | 72bb299a4a4f74840c3b368c6669ddc3d32006ee (patch) | |
tree | 748fee756010b1f36aa95162f762e21ee0d19c0a /src/Entities/FireworkEntity.cpp | |
parent | Merge branch 'master' into ChunkLoader (diff) | |
parent | Fixed a crash in redstone simulator. (diff) | |
download | cuberite-72bb299a4a4f74840c3b368c6669ddc3d32006ee.tar cuberite-72bb299a4a4f74840c3b368c6669ddc3d32006ee.tar.gz cuberite-72bb299a4a4f74840c3b368c6669ddc3d32006ee.tar.bz2 cuberite-72bb299a4a4f74840c3b368c6669ddc3d32006ee.tar.lz cuberite-72bb299a4a4f74840c3b368c6669ddc3d32006ee.tar.xz cuberite-72bb299a4a4f74840c3b368c6669ddc3d32006ee.tar.zst cuberite-72bb299a4a4f74840c3b368c6669ddc3d32006ee.zip |
Diffstat (limited to 'src/Entities/FireworkEntity.cpp')
-rw-r--r-- | src/Entities/FireworkEntity.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/Entities/FireworkEntity.cpp b/src/Entities/FireworkEntity.cpp index 403a53c84..68d02640a 100644 --- a/src/Entities/FireworkEntity.cpp +++ b/src/Entities/FireworkEntity.cpp @@ -10,7 +10,7 @@ cFireworkEntity::cFireworkEntity(cEntity * a_Creator, double a_X, double a_Y, double a_Z, const cItem & a_Item) : super(pkFirework, a_Creator, a_X, a_Y, a_Z, 0.25, 0.25), - m_ExplodeTimer(0), + m_TicksToExplosion(a_Item.m_FireworkItem.m_FlightTimeInTicks), m_FireworkItem(a_Item) { } @@ -27,7 +27,9 @@ void cFireworkEntity::HandlePhysics(float a_Dt, cChunk & a_Chunk) if ((PosY < 0) || (PosY >= cChunkDef::Height)) { - goto setspeed; + AddSpeedY(1); + AddPosition(GetSpeed() * (a_Dt / 1000)); + return; } if (m_IsInGround) @@ -50,7 +52,6 @@ void cFireworkEntity::HandlePhysics(float a_Dt, cChunk & a_Chunk) } } -setspeed: AddSpeedY(1); AddPosition(GetSpeed() * (a_Dt / 1000)); } @@ -63,11 +64,13 @@ void cFireworkEntity::Tick(float a_Dt, cChunk & a_Chunk) { super::Tick(a_Dt, a_Chunk); - if (m_ExplodeTimer == m_FireworkItem.m_FireworkItem.m_FlightTimeInTicks) + if (m_TicksToExplosion <= 0) { + // TODO: Notify the plugins m_World->BroadcastEntityStatus(*this, esFireworkExploding); Destroy(); + return; } - m_ExplodeTimer++; + m_TicksToExplosion -= 1; } |