From 5b7de82a79e3f18affcffd686484a681d187942a Mon Sep 17 00:00:00 2001 From: "madmaxoft@gmail.com" Date: Sun, 14 Oct 2012 17:06:21 +0000 Subject: Initial Floody fluid simulator. Can spread, cannot dry. git-svn-id: http://mc-server.googlecode.com/svn/trunk@963 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/Simulator/FloodyFluidSimulator.h | 49 +++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 source/Simulator/FloodyFluidSimulator.h (limited to 'source/Simulator/FloodyFluidSimulator.h') 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); +} ; + + + + -- cgit v1.2.3