From 68b1aa23b0493ac5964fca88234f374b5f8a7db5 Mon Sep 17 00:00:00 2001 From: "madmaxoft@gmail.com" Date: Thu, 14 Mar 2013 20:03:42 +0000 Subject: Added a Noop fluid simulator that doesn't do anything with the fluid (fluid doesn't spread at all, behaves like a normal block) git-svn-id: http://mc-server.googlecode.com/svn/trunk@1272 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/Simulator/NoopFluidSimulator.h | 36 +++++++++++++++++++++++++++++++++++ source/World.cpp | 10 ++++++++++ 2 files changed, 46 insertions(+) create mode 100644 source/Simulator/NoopFluidSimulator.h (limited to 'source') diff --git a/source/Simulator/NoopFluidSimulator.h b/source/Simulator/NoopFluidSimulator.h new file mode 100644 index 000000000..9120fe868 --- /dev/null +++ b/source/Simulator/NoopFluidSimulator.h @@ -0,0 +1,36 @@ + +// NoopFluidSimulator.h + +// Declares the cNoopFluidSimulator class representing a fluid simulator that performs nothing, it ignores all blocks + + + + + +#pragma once + +#include "FluidSimulator.h" + + + + + +class cNoopFluidSimulator : + public cFluidSimulator +{ + typedef cFluidSimulator super; + +public: + cNoopFluidSimulator(cWorld & a_World, BLOCKTYPE a_Fluid, BLOCKTYPE a_StationaryFluid) : + super(a_World, a_Fluid, a_StationaryFluid) + { + } + + // cSimulator overrides: + virtual void AddBlock(int a_BlockX, int a_BlockY, int a_BlockZ, cChunk * a_Chunk) override {} + virtual void Simulate(float a_Dt) override {} +} ; + + + + diff --git a/source/World.cpp b/source/World.cpp index a82b4078b..81aa2e6f7 100644 --- a/source/World.cpp +++ b/source/World.cpp @@ -19,6 +19,7 @@ #include "Simulator/FloodyFluidSimulator.h" #include "Simulator/FluidSimulator.h" #include "Simulator/FireSimulator.h" +#include "Simulator/NoopFluidSimulator.h" #include "Simulator/SandSimulator.h" #include "Simulator/RedstoneSimulator.h" #include "Simulator/VaporizeFluidSimulator.h" @@ -2252,6 +2253,15 @@ cFluidSimulator * cWorld::InitializeFluidSimulator(cIniFile & a_IniFile, const c { res = new cVaporizeFluidSimulator(*this, a_SimulateBlock, a_StationaryBlock); } + else if ( + (NoCaseCompare(SimulatorName, "noop") == 0) || + (NoCaseCompare(SimulatorName, "nop") == 0) || + (NoCaseCompare(SimulatorName, "null") == 0) || + (NoCaseCompare(SimulatorName, "nil") == 0) + ) + { + res = new cNoopFluidSimulator(*this, a_SimulateBlock, a_StationaryBlock); + } else { if (NoCaseCompare(SimulatorName, "classic") != 0) -- cgit v1.2.3