diff options
Diffstat (limited to 'source/cFluidSimulator.h')
-rw-r--r-- | source/cFluidSimulator.h | 108 |
1 files changed, 54 insertions, 54 deletions
diff --git a/source/cFluidSimulator.h b/source/cFluidSimulator.h index afacea5f7..4557d3ef1 100644 --- a/source/cFluidSimulator.h +++ b/source/cFluidSimulator.h @@ -1,55 +1,55 @@ -#pragma once
-
-#include "cSimulator.h"
-#include "Vector3i.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 bool IsAllowedBlock( char a_BlockID ) = 0;
- virtual bool IsStationaryBlock( char a_BlockID);
- virtual bool IsPassableForFluid( char a_BlockID );
- bool CanWashAway( char a_BlockID );
- bool IsSolidBlock(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 );
-
- bool UniqueSituation(Vector3i a_Pos); //Applys special for this fluid rules like generation of water betwin sources, returns false if it is necessary to apply general rules
- void ApplyUniqueToNearest(Vector3i a_Pos);
-
- float m_Timer;
-
- class FluidData;
- FluidData* m_Data;
-
- //Customize
- char m_FluidBlock;
- char m_StationaryFluidBlock;
- char m_MaxHeight;
- char m_FlowReduction;
-
+#pragma once + +#include "cSimulator.h" +#include "Vector3i.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 bool IsAllowedBlock( char a_BlockID ) = 0; + virtual bool IsStationaryBlock( char a_BlockID); + virtual bool IsPassableForFluid( char a_BlockID ); + bool CanWashAway( char a_BlockID ); + bool IsSolidBlock(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 ); + + bool UniqueSituation(Vector3i a_Pos); //Applys special for this fluid rules like generation of water betwin sources, returns false if it is necessary to apply general rules + void ApplyUniqueToNearest(Vector3i a_Pos); + + float m_Timer; + + class FluidData; + FluidData* m_Data; + + //Customize + char m_FluidBlock; + char m_StationaryFluidBlock; + char m_MaxHeight; + char m_FlowReduction; + };
\ No newline at end of file |