summaryrefslogtreecommitdiffstats
path: root/source/cFluidSimulator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/cFluidSimulator.cpp')
-rw-r--r--source/cFluidSimulator.cpp18
1 files changed, 11 insertions, 7 deletions
diff --git a/source/cFluidSimulator.cpp b/source/cFluidSimulator.cpp
index 1301caa8c..937a40c68 100644
--- a/source/cFluidSimulator.cpp
+++ b/source/cFluidSimulator.cpp
@@ -9,7 +9,7 @@
#include "BlockID.h"
#include "Defines.h"
#include "cItem.h"
-#include "cBlockToPickup.h"
+#include "blocks/Block.h"
@@ -356,9 +356,11 @@ void cFluidSimulator::Simulate( float a_Dt )
{
if( bWashedAwayItem )
{
- cItems Drops;
- cBlockToPickup::ToPickup(DownID, m_World->GetBlockMeta(pos.x, pos.y - 1, pos.z), E_ITEM_EMPTY, Drops);
- m_World->SpawnItemPickups(Drops, pos.x, pos.y - 1, pos.z);
+ cBlockHandler * Handler = BlockHandler(DownID);
+ if(Handler->DropOnUnsuitable())
+ {
+ Handler->DropBlock(m_World, pos.x, pos.y - 1, pos.z);
+ }
}
if (pos.y > 0)
{
@@ -390,9 +392,11 @@ void cFluidSimulator::Simulate( float a_Dt )
{
if (bWashedAwayItem)
{
- cItems Drops;
- cBlockToPickup::ToPickup(DownID, m_World->GetBlockMeta(p.x, p.y, p.z), E_ITEM_EMPTY, Drops);
- m_World->SpawnItemPickups(Drops, p.x, p.y, p.z);
+ cBlockHandler * Handler = BlockHandler(DownID);
+ if(Handler->DropOnUnsuitable())
+ {
+ Handler->DropBlock(m_World, p.x, p.y, p.z);
+ }
}
if( p.y == pos.y )