summaryrefslogtreecommitdiffstats
path: root/source/Simulator/FloodyFluidSimulator.h
diff options
context:
space:
mode:
authormadmaxoft@gmail.com <madmaxoft@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6>2012-10-14 19:06:21 +0200
committermadmaxoft@gmail.com <madmaxoft@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6>2012-10-14 19:06:21 +0200
commit5b7de82a79e3f18affcffd686484a681d187942a (patch)
tree3a0b766fd827de634456bee9ea9ce225f40bfb60 /source/Simulator/FloodyFluidSimulator.h
parentBiomal CompoGen now generates sea with STATIONARY_WATER instead of regular WATER. (diff)
downloadcuberite-5b7de82a79e3f18affcffd686484a681d187942a.tar
cuberite-5b7de82a79e3f18affcffd686484a681d187942a.tar.gz
cuberite-5b7de82a79e3f18affcffd686484a681d187942a.tar.bz2
cuberite-5b7de82a79e3f18affcffd686484a681d187942a.tar.lz
cuberite-5b7de82a79e3f18affcffd686484a681d187942a.tar.xz
cuberite-5b7de82a79e3f18affcffd686484a681d187942a.tar.zst
cuberite-5b7de82a79e3f18affcffd686484a681d187942a.zip
Diffstat (limited to '')
-rw-r--r--source/Simulator/FloodyFluidSimulator.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/source/Simulator/FloodyFluidSimulator.h b/source/Simulator/FloodyFluidSimulator.h
new file mode 100644
index 000000000..d3fa85fce
--- /dev/null
+++ b/source/Simulator/FloodyFluidSimulator.h
@@ -0,0 +1,49 @@
+
+// FloodyFluidSimulator.h
+
+// Interfaces to the cFloodyFluidSimulator that represents a fluid simulator that tries to flood everything :)
+// http://forum.mc-server.org/showthread.php?tid=565
+
+
+
+
+
+#pragma once
+
+#include "DelayedFluidSimulator.h"
+
+
+
+
+
+// fwd:
+class cBlockArea;
+
+
+
+
+
+class cFloodyFluidSimulator :
+ public cDelayedFluidSimulator
+{
+ typedef cDelayedFluidSimulator super;
+
+public:
+ cFloodyFluidSimulator(cWorld * a_World, BLOCKTYPE a_Fluid, BLOCKTYPE a_StationaryFluid, NIBBLETYPE a_Falloff, int a_TickDelay);
+
+protected:
+ NIBBLETYPE m_Falloff;
+
+ // cDelayedFluidSimulator overrides:
+ virtual void SimulateBlock(int a_BlockX, int a_BlockY, int a_BlockZ) override;
+
+ /// Checks tributaries, if not fed, decreases the block's level and returns true
+ bool CheckTributaries(int a_BlockX, int a_BlockY, int a_BlockZ, const cBlockArea & a_Area, NIBBLETYPE a_MyMeta);
+
+ /// Spreads into the specified block, if the block there allows. a_Area is for checking.
+ void SpreadToNeighbor(int a_BlockX, int a_BlockY, int a_BlockZ, const cBlockArea & a_Area, NIBBLETYPE a_NewMeta);
+} ;
+
+
+
+