Can spread, cannot dry. git-svn-id: http://mc-server.googlecode.com/svn/trunk@963 0a769ca7-a7f5-676a-18bf-c427514a06d6
		
			
				
	
	
		
			51 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
 | 
						|
// ClassicFluidSimulator.h
 | 
						|
 | 
						|
// Interfaces to the cClassicFluidSimulator class representing the original MCServer's fluid simulator
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
#pragma once
 | 
						|
 | 
						|
#include "FluidSimulator.h"
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
class cClassicFluidSimulator :
 | 
						|
	public cFluidSimulator
 | 
						|
{
 | 
						|
public:
 | 
						|
	cClassicFluidSimulator(cWorld * a_World, BLOCKTYPE a_Fluid, BLOCKTYPE a_StationaryFluid, NIBBLETYPE a_MaxHeight, NIBBLETYPE a_Falloff);
 | 
						|
	~cClassicFluidSimulator();
 | 
						|
 | 
						|
	// cSimulator overrides:
 | 
						|
	virtual void Simulate(float a_Dt) override;
 | 
						|
	virtual void AddBlock(int a_BlockX, int a_BlockY, int a_BlockZ) override;
 | 
						|
 | 
						|
protected:
 | 
						|
	NIBBLETYPE GetHighestLevelAround(int a_BlockX, int a_BlockY, int a_BlockZ);
 | 
						|
 | 
						|
	/// Applies special rules such as generation of water between sources, returns false if it is necessary to apply general rules
 | 
						|
	bool UniqueSituation(Vector3i a_Pos);
 | 
						|
	
 | 
						|
	void ApplyUniqueToNearest(Vector3i a_Pos);
 | 
						|
 | 
						|
	float m_Timer;
 | 
						|
 | 
						|
	// fwd: ClassicFluidSimulator.cpp
 | 
						|
	class FluidData;
 | 
						|
	
 | 
						|
	FluidData * m_Data;
 | 
						|
 | 
						|
	NIBBLETYPE m_MaxHeight;
 | 
						|
	NIBBLETYPE m_Falloff;
 | 
						|
} ;
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 |