diff options
Diffstat (limited to 'src/Simulator/DelayedFluidSimulator.h')
-rw-r--r-- | src/Simulator/DelayedFluidSimulator.h | 39 |
1 files changed, 18 insertions, 21 deletions
diff --git a/src/Simulator/DelayedFluidSimulator.h b/src/Simulator/DelayedFluidSimulator.h index 312bc1ff9..01d25ae01 100644 --- a/src/Simulator/DelayedFluidSimulator.h +++ b/src/Simulator/DelayedFluidSimulator.h @@ -15,53 +15,53 @@ -class cDelayedFluidSimulatorChunkData : - public cFluidSimulatorData +class cDelayedFluidSimulatorChunkData : public cFluidSimulatorData { -public: + public: class cSlot { - public: + public: /** Returns true if the specified block is stored */ bool HasBlock(int a_RelX, int a_RelY, int a_RelZ); - /** Adds the specified block unless already present; returns true if added, false if the block was already present */ + /** Adds the specified block unless already present; returns true if added, false if the block was already + * present */ bool Add(int a_RelX, int a_RelY, int a_RelZ); /** Array of block containers, each item stores blocks for one Z coord size_t param is the block index (for faster duplicate comparison in Add()) */ std::vector<cCoordWithData<size_t>> m_Blocks[16]; - } ; + }; cDelayedFluidSimulatorChunkData(int a_TickDelay); virtual ~cDelayedFluidSimulatorChunkData() override; /** Slots, one for each delay tick, each containing the blocks to simulate */ cSlot * m_Slots; -} ; +}; -class cDelayedFluidSimulator: - public cFluidSimulator +class cDelayedFluidSimulator : public cFluidSimulator { using Super = cFluidSimulator; -public: - + public: cDelayedFluidSimulator(cWorld & a_World, BLOCKTYPE a_Fluid, BLOCKTYPE a_StationaryFluid, int a_TickDelay); -protected: - + protected: virtual void Simulate(float a_Dt) override; virtual void SimulateChunk(std::chrono::milliseconds a_Dt, int a_ChunkX, int a_ChunkZ, cChunk * a_Chunk) override; virtual void AddBlock(cChunk & a_Chunk, Vector3i a_Position, BLOCKTYPE a_Block) override; - virtual cFluidSimulatorData * CreateChunkData(void) override { return new cDelayedFluidSimulatorChunkData(m_TickDelay); } + virtual cFluidSimulatorData * CreateChunkData(void) override + { + return new cDelayedFluidSimulatorChunkData(m_TickDelay); + } - int m_TickDelay; // Count of the m_Slots array in each ChunkData + int m_TickDelay; // Count of the m_Slots array in each ChunkData int m_AddSlotNum; // Index into m_Slots[] where to add new blocks in each ChunkData int m_SimSlotNum; // Index into m_Slots[] where to simulate blocks in each ChunkData @@ -71,10 +71,7 @@ protected: | 0 | 1 | ... | m_AddSlotNum | m_SimSlotNum | ... | m_TickDelay - 1 | | adding blocks here ^ | ^ simulating here */ - /** Called from SimulateChunk() to simulate each block in one slot of blocks. Descendants override this method to provide custom simulation. */ + /** Called from SimulateChunk() to simulate each block in one slot of blocks. Descendants override this method to + * provide custom simulation. */ virtual void SimulateBlock(cChunk * a_Chunk, int a_RelX, int a_RelY, int a_RelZ) = 0; -} ; - - - - +}; |