From 164f0e7de9b484ca97cec4109739b327cdd421b8 Mon Sep 17 00:00:00 2001 From: "madmaxoft@gmail.com" Date: Sun, 14 Oct 2012 20:10:03 +0000 Subject: Floody fluid sim: reads params from world.ini; water and lava react together into cobblestone / stone / obsidian git-svn-id: http://mc-server.googlecode.com/svn/trunk@965 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/World.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'source/World.cpp') diff --git a/source/World.cpp b/source/World.cpp index 68f674ab6..a8ec8b75d 100644 --- a/source/World.cpp +++ b/source/World.cpp @@ -2171,11 +2171,14 @@ cFluidSimulator * cWorld::InitializeFluidSimulator(cIniFile & a_IniFile, const c } cFluidSimulator * res = NULL; - // TODO: other fluid simulators + bool IsWater = (strcmp(a_FluidName, "Water") == 0); // Used for defaults if (NoCaseCompare(SimulatorName, "floody") == 0) { - // TODO: Floody simulator params - res = new cFloodyFluidSimulator(this, a_SimulateBlock, a_StationaryBlock, 1, 5); + int DefaultFalloff = IsWater ? 1 : 2; + int DefaultTickDelay = IsWater ? 5 : 30; + int Falloff = a_IniFile.GetValueSetI(SimulatorSectionName, "Falloff", DefaultFalloff); + int TickDelay = a_IniFile.GetValueSetI(SimulatorSectionName, "TickDelay", DefaultTickDelay); + res = new cFloodyFluidSimulator(this, a_SimulateBlock, a_StationaryBlock, Falloff, TickDelay); } else { @@ -2184,8 +2187,8 @@ cFluidSimulator * cWorld::InitializeFluidSimulator(cIniFile & a_IniFile, const c // The simulator name doesn't match anything we have, issue a warning: LOGWARNING("%s [Physics]:%s specifies an unknown simulator, using the default \"Classic\".", GetIniFileName().c_str(), SimulatorNameKey.c_str()); } - int DefaultFalloff = (strcmp(a_FluidName, "Water") == 0) ? 1 : 2; - int DefaultMaxHeight = (strcmp(a_FluidName, "Water") == 0) ? 7 : 6; + int DefaultFalloff = IsWater ? 1 : 2; + int DefaultMaxHeight = IsWater ? 7 : 6; int Falloff = a_IniFile.GetValueSetI(SimulatorSectionName, "Falloff", DefaultFalloff); int MaxHeight = a_IniFile.GetValueSetI(SimulatorSectionName, "MaxHeight", DefaultMaxHeight); res = new cClassicFluidSimulator(this, a_SimulateBlock, a_StationaryBlock, MaxHeight, Falloff); -- cgit v1.2.3