Merge pull request #1266 from mc-server/PreSimulatorConfig
PreSimulator: Added configurations.
This commit is contained in:
commit
a899dfc26e
@ -408,7 +408,12 @@ void cComposableGenerator::InitFinishGens(cIniFile & a_IniFile)
|
||||
}
|
||||
else if (NoCaseCompare(*itr, "PreSimulator") == 0)
|
||||
{
|
||||
m_FinishGens.push_back(new cFinishGenPreSimulator);
|
||||
// Load the settings
|
||||
bool PreSimulateFallingBlocks = a_IniFile.GetValueSetB("Generator", "PreSimulatorFallingBlocks", true);
|
||||
bool PreSimulateWater = a_IniFile.GetValueSetB("Generator", "PreSimulatorWater", true);
|
||||
bool PreSimulateLava = a_IniFile.GetValueSetB("Generator", "PreSimulatorLava", true);
|
||||
|
||||
m_FinishGens.push_back(new cFinishGenPreSimulator(PreSimulateFallingBlocks, PreSimulateWater, PreSimulateLava));
|
||||
}
|
||||
else if (NoCaseCompare(*itr, "RainbowRoads") == 0)
|
||||
{
|
||||
|
@ -555,7 +555,10 @@ void cFinishGenBottomLava::GenFinish(cChunkDesc & a_ChunkDesc)
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// cFinishGenPreSimulator:
|
||||
|
||||
cFinishGenPreSimulator::cFinishGenPreSimulator(void)
|
||||
cFinishGenPreSimulator::cFinishGenPreSimulator(bool a_PreSimulateFallingBlocks, bool a_PreSimulateWater, bool a_PreSimulateLava) :
|
||||
m_PreSimulateFallingBlocks(a_PreSimulateFallingBlocks),
|
||||
m_PreSimulateWater(a_PreSimulateWater),
|
||||
m_PreSimulateLava(a_PreSimulateLava)
|
||||
{
|
||||
// Nothing needed yet
|
||||
}
|
||||
@ -566,9 +569,20 @@ cFinishGenPreSimulator::cFinishGenPreSimulator(void)
|
||||
|
||||
void cFinishGenPreSimulator::GenFinish(cChunkDesc & a_ChunkDesc)
|
||||
{
|
||||
CollapseSandGravel(a_ChunkDesc.GetBlockTypes(), a_ChunkDesc.GetHeightMap());
|
||||
StationarizeFluid(a_ChunkDesc.GetBlockTypes(), a_ChunkDesc.GetHeightMap(), E_BLOCK_WATER, E_BLOCK_STATIONARY_WATER);
|
||||
StationarizeFluid(a_ChunkDesc.GetBlockTypes(), a_ChunkDesc.GetHeightMap(), E_BLOCK_LAVA, E_BLOCK_STATIONARY_LAVA);
|
||||
if (m_PreSimulateFallingBlocks)
|
||||
{
|
||||
CollapseSandGravel(a_ChunkDesc.GetBlockTypes(), a_ChunkDesc.GetHeightMap());
|
||||
}
|
||||
|
||||
if (m_PreSimulateWater)
|
||||
{
|
||||
StationarizeFluid(a_ChunkDesc.GetBlockTypes(), a_ChunkDesc.GetHeightMap(), E_BLOCK_WATER, E_BLOCK_STATIONARY_WATER);
|
||||
}
|
||||
|
||||
if (m_PreSimulateLava)
|
||||
{
|
||||
StationarizeFluid(a_ChunkDesc.GetBlockTypes(), a_ChunkDesc.GetHeightMap(), E_BLOCK_LAVA, E_BLOCK_STATIONARY_LAVA);
|
||||
}
|
||||
// TODO: other operations
|
||||
}
|
||||
|
||||
|
@ -240,9 +240,14 @@ class cFinishGenPreSimulator :
|
||||
public cFinishGen
|
||||
{
|
||||
public:
|
||||
cFinishGenPreSimulator(void);
|
||||
cFinishGenPreSimulator(bool a_PreSimulateFallingBlocks, bool a_PreSimulateWater, bool a_PreSimulateLava);
|
||||
|
||||
protected:
|
||||
|
||||
bool m_PreSimulateFallingBlocks;
|
||||
bool m_PreSimulateWater;
|
||||
bool m_PreSimulateLava;
|
||||
|
||||
// Drops hanging sand and gravel down to the ground, recalculates heightmap
|
||||
void CollapseSandGravel(
|
||||
cChunkDef::BlockTypes & a_BlockTypes, // Block types to read and change
|
||||
|
Loading…
Reference in New Issue
Block a user