diff options
author | Mattes D <github@xoft.cz> | 2013-10-01 11:38:48 +0200 |
---|---|---|
committer | Mattes D <github@xoft.cz> | 2013-10-01 11:38:48 +0200 |
commit | d7fa9c9ff2ce808237b2826b1ee918d2eea5dec2 (patch) | |
tree | ee68051c3892acf64f7901eb259c2c6df2e16159 /source/Simulator | |
parent | APIDump: Added equality operator renaming. (diff) | |
parent | Fixed issues (diff) | |
download | cuberite-d7fa9c9ff2ce808237b2826b1ee918d2eea5dec2.tar cuberite-d7fa9c9ff2ce808237b2826b1ee918d2eea5dec2.tar.gz cuberite-d7fa9c9ff2ce808237b2826b1ee918d2eea5dec2.tar.bz2 cuberite-d7fa9c9ff2ce808237b2826b1ee918d2eea5dec2.tar.lz cuberite-d7fa9c9ff2ce808237b2826b1ee918d2eea5dec2.tar.xz cuberite-d7fa9c9ff2ce808237b2826b1ee918d2eea5dec2.tar.zst cuberite-d7fa9c9ff2ce808237b2826b1ee918d2eea5dec2.zip |
Diffstat (limited to 'source/Simulator')
-rw-r--r-- | source/Simulator/FireSimulator.cpp | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/source/Simulator/FireSimulator.cpp b/source/Simulator/FireSimulator.cpp index 587f45306..da1dc8d15 100644 --- a/source/Simulator/FireSimulator.cpp +++ b/source/Simulator/FireSimulator.cpp @@ -234,10 +234,6 @@ int cFireSimulator::GetBurnStepTime(cChunk * a_Chunk, int a_RelX, int a_RelY, in return m_BurnStepTimeFuel; } } - if ((a_RelY < cChunkDef::Height - 1) && IsFuel(a_Chunk->GetBlock(a_RelX, a_RelY - 1, a_RelZ))) - { - return m_BurnStepTimeFuel; - } for (int i = 0; i < ARRAYCOUNT(gCrossCoords); i++) { @@ -251,7 +247,23 @@ int cFireSimulator::GetBurnStepTime(cChunk * a_Chunk, int a_RelX, int a_RelY, in } } } // for i - gCrossCoords[] - return m_BurnStepTimeNonfuel; + + if ((a_RelY > 0) && (a_RelY < cChunkDef::Height - 1)) + { + // Checked through everything, nothing was flammable + // If block below isn't solid, we can't have fire, otherwise, we have non-fueled fire + BLOCKTYPE BlockBelow = a_Chunk->GetBlock(a_RelX, a_RelY - 1, a_RelZ); + if (g_BlockIsSolid[BlockBelow]) + { + return m_BurnStepTimeNonfuel; + } + else + { + // SetBlock just to make sure fire doesn't spawn + a_Chunk->SetBlock(a_RelX, a_RelY, a_RelZ, E_BLOCK_AIR, 0); + return 0; + } + } } |