summaryrefslogtreecommitdiffstats
path: root/source/Simulator/FluidSimulator.h
diff options
context:
space:
mode:
authormadmaxoft@gmail.com <madmaxoft@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6>2012-10-13 11:53:28 +0200
committermadmaxoft@gmail.com <madmaxoft@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6>2012-10-13 11:53:28 +0200
commitf7da7c2536b438db92bc28b88c4139d9af15e44f (patch)
tree4710e9e41ebcf2317ebacade2801732ba9184b41 /source/Simulator/FluidSimulator.h
parentProtoProxy: Fixed parsing of the PACKET_PLAYER_ABILITIES packet. (diff)
downloadcuberite-f7da7c2536b438db92bc28b88c4139d9af15e44f.tar
cuberite-f7da7c2536b438db92bc28b88c4139d9af15e44f.tar.gz
cuberite-f7da7c2536b438db92bc28b88c4139d9af15e44f.tar.bz2
cuberite-f7da7c2536b438db92bc28b88c4139d9af15e44f.tar.lz
cuberite-f7da7c2536b438db92bc28b88c4139d9af15e44f.tar.xz
cuberite-f7da7c2536b438db92bc28b88c4139d9af15e44f.tar.zst
cuberite-f7da7c2536b438db92bc28b88c4139d9af15e44f.zip
Diffstat (limited to '')
-rw-r--r--source/Simulator/FluidSimulator.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/source/Simulator/FluidSimulator.h b/source/Simulator/FluidSimulator.h
new file mode 100644
index 000000000..f0b2b23ba
--- /dev/null
+++ b/source/Simulator/FluidSimulator.h
@@ -0,0 +1,47 @@
+
+#pragma once
+
+#include "Simulator.h"
+
+
+
+
+
+enum Direction
+{
+ X_PLUS,
+ X_MINUS,
+ Y_PLUS,
+ Y_MINUS,
+ Z_PLUS,
+ Z_MINUS,
+ NONE
+};
+
+
+
+
+
+class cFluidSimulator :
+ public cSimulator
+{
+ typedef cSimulator super;
+
+public:
+ cFluidSimulator(cWorld * a_World, BLOCKTYPE a_Fluid, BLOCKTYPE a_StationaryFluid);
+
+ // Gets the flowing direction. If a_Over is true also the block over the current block affects the direction (standard)
+ virtual Direction GetFlowingDirection(int a_X, int a_Y, int a_Z, bool a_Over = true) = 0;
+
+ bool IsFluidBlock (BLOCKTYPE a_BlockType) const { return (a_BlockType == m_FluidBlock); }
+ bool IsStationaryFluidBlock(BLOCKTYPE a_BlockType) const { return (a_BlockType == m_StationaryFluidBlock); }
+
+protected:
+ BLOCKTYPE m_FluidBlock; // The fluid block type that needs simulating
+ BLOCKTYPE m_StationaryFluidBlock; // The fluid block type that indicates no simulation is needed
+} ;
+
+
+
+
+