From d6953a7ea2b20574ade4e0590ce030966c163394 Mon Sep 17 00:00:00 2001 From: "lapayo94@gmail.com" Date: Sun, 25 Dec 2011 16:20:06 +0000 Subject: Refactored both simulators (water and lava) to make them more flexible and easier to modify git-svn-id: http://mc-server.googlecode.com/svn/trunk@108 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/cWaterSimulator.h | 39 ++++----------------------------------- 1 file changed, 4 insertions(+), 35 deletions(-) (limited to 'source/cWaterSimulator.h') diff --git a/source/cWaterSimulator.h b/source/cWaterSimulator.h index 5962cd83e..c4eab8d80 100644 --- a/source/cWaterSimulator.h +++ b/source/cWaterSimulator.h @@ -1,43 +1,12 @@ #pragma once +#include "cFluidSimulator.h" - -//TODO This definitly needs a better naming :D but how? -enum Direction -{ - X_PLUS, - X_MINUS, - Y_PLUS, - Y_MINUS, - Z_PLUS, - Z_MINUS, - NONE -}; - -class Vector3i; -class cWorld; -class cWaterSimulator +class cWaterSimulator : public cFluidSimulator { public: cWaterSimulator( cWorld* a_World ); - ~cWaterSimulator(); - - void Simulate( float a_Dt ); - void WakeUp( int a_X, int a_Y, int a_Z ); - - //Gets the flowing direction of a Waterblock if a_Over is true also the block over the current block affects the direction (standard) - Direction GetFlowingDirection(int a_X, int a_Y, int a_Z, bool a_Over = true); - -private: - void AddBlock( int a_X, int a_Y, int a_Z); - char GetHighestLevelAround( int a_X, int a_Y, int a_Z ); - - bool IsWaterBlock( char a_BlockID ); - - float m_Timer; - cWorld* m_World; - class WaterData; - WaterData* m_Data; + virtual inline bool IsAllowedBlock( char a_BlockID ); + virtual inline bool IsPassableForFluid( char a_BlockID ); - }; \ No newline at end of file -- cgit v1.2.3