Added checks whether flowers/mushrooms/saplings can be placed on surface Added checks for cactus to see if it's allowed to be placed Fluids now wash away certain items (flower, sapling, cactus) git-svn-id: http://mc-server.googlecode.com/svn/trunk@169 0a769ca7-a7f5-676a-18bf-c427514a06d6
		
			
				
	
	
		
			49 lines
		
	
	
		
			1020 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1020 B
		
	
	
	
		
			C++
		
	
	
	
	
	
#pragma once
 | 
						|
 | 
						|
#include "cSimulator.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 cFluidSimulator : public cSimulator
 | 
						|
{
 | 
						|
public:
 | 
						|
	cFluidSimulator( cWorld* a_World );
 | 
						|
	~cFluidSimulator();
 | 
						|
 | 
						|
	virtual void Simulate( float a_Dt );
 | 
						|
 | 
						|
	//Gets the flowing direction. 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);
 | 
						|
 | 
						|
	virtual inline bool IsAllowedBlock( char a_BlockID ) = 0;
 | 
						|
	virtual inline bool IsPassableForFluid( char a_BlockID );
 | 
						|
	bool CanWashAway( char a_BlockID );
 | 
						|
protected:
 | 
						|
	virtual void AddBlock( int a_X, int a_Y, int a_Z);
 | 
						|
	char GetHighestLevelAround( int a_X, int a_Y, int a_Z );
 | 
						|
 | 
						|
 | 
						|
	float m_Timer;
 | 
						|
 | 
						|
	class FluidData;
 | 
						|
	FluidData* m_Data;
 | 
						|
 | 
						|
	//Customize
 | 
						|
	char m_FluidBlock;
 | 
						|
	char m_MaxHeight;
 | 
						|
	char m_FlowReduction;
 | 
						|
 | 
						|
}; |