From 14dce238450b419a5df2aa171ee91981910463b0 Mon Sep 17 00:00:00 2001 From: "lapayo94@gmail.com" Date: Sun, 15 Jul 2012 20:36:34 +0000 Subject: A new Block handling system :o It was really a lot of work :D Took me the complete weekend :D Would really like to here your opinion on this =) The aim of this is to put all the actions for one block in one place so it is not spread around the source. (ToPickup, Action in cWorld, Action in cChunk, Action here, action there :D) git-svn-id: http://mc-server.googlecode.com/svn/trunk@671 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/cFluidSimulator.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'source/cFluidSimulator.cpp') 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 ) -- cgit v1.2.3