summaryrefslogtreecommitdiffstats
path: root/src/Generating/UnderwaterBaseGen.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Generating/UnderwaterBaseGen.cpp')
-rw-r--r--src/Generating/UnderwaterBaseGen.cpp143
1 files changed, 0 insertions, 143 deletions
diff --git a/src/Generating/UnderwaterBaseGen.cpp b/src/Generating/UnderwaterBaseGen.cpp
deleted file mode 100644
index c5066ca1b..000000000
--- a/src/Generating/UnderwaterBaseGen.cpp
+++ /dev/null
@@ -1,143 +0,0 @@
-
-// UnderwaterBaseGen.cpp
-
-// Implements the cUnderwaterBaseGen class representing the underwater base generator
-
-#include "Globals.h"
-#include "UnderwaterBaseGen.h"
-#include "Prefabs/UnderwaterBasePrefabs.h"
-#include "PieceGenerator.h"
-
-
-
-
-
-static cPrefabPiecePool g_UnderwaterBase(g_UnderwaterBasePrefabs, g_UnderwaterBasePrefabsCount, g_UnderwaterBaseStartingPrefabs, g_UnderwaterBaseStartingPrefabsCount);
-
-
-
-
-
-////////////////////////////////////////////////////////////////////////////////
-// cUnderwaterBaseGen::cUnderwaterBase:
-
-class cUnderwaterBaseGen::cUnderwaterBase :
- public cGridStructGen::cStructure
-{
- typedef cGridStructGen::cStructure super;
-
-public:
- cUnderwaterBase(
- int a_Seed,
- int a_GridX, int a_GridZ,
- int a_OriginX, int a_OriginZ,
- int a_MaxDepth,
- int a_MaxSize
- ) :
- super(a_GridX, a_GridZ, a_OriginX, a_OriginZ),
- m_Seed(a_Seed),
- m_Noise(a_Seed),
- m_MaxSize(a_MaxSize),
- m_Borders(a_OriginX - a_MaxSize, 0, a_OriginZ - a_MaxSize, a_OriginX + a_MaxSize, 255, a_OriginZ + a_MaxSize)
- {
- // Generate the pieces for this base:
- cBFSPieceGenerator pg(g_UnderwaterBase, a_Seed);
- pg.PlacePieces(a_OriginX, 50, a_OriginZ, a_MaxDepth, m_Pieces);
- if (m_Pieces.empty())
- {
- return;
- }
- }
-
- ~cUnderwaterBase()
- {
- cPieceGenerator::FreePieces(m_Pieces);
- }
-
-protected:
- /** Seed for the random functions */
- int m_Seed;
-
- /** The noise used as a pseudo-random generator */
- cNoise m_Noise;
-
- /** Maximum size, in X / Z blocks, of the base (radius from the origin) */
- int m_MaxSize;
-
- /** Borders of the vilalge - no item may reach out of this cuboid. */
- cCuboid m_Borders;
-
- /** The village pieces, placed by the generator. */
- cPlacedPieces m_Pieces;
-
-
- // cGridStructGen::cStructure overrides:
- virtual void DrawIntoChunk(cChunkDesc & a_Chunk) override
- {
- for (cPlacedPieces::iterator itr = m_Pieces.begin(), end = m_Pieces.end(); itr != end; ++itr)
- {
- const cPrefab & Prefab = static_cast<const cPrefab &>((*itr)->GetPiece());
- Prefab.Draw(a_Chunk, *itr);
- } // for itr - m_PlacedPieces[]
- }
-} ;
-
-
-
-
-
-////////////////////////////////////////////////////////////////////////////////
-// cUnderwaterBaseGen:
-
-
-
-
-
-cUnderwaterBaseGen::cUnderwaterBaseGen(int a_Seed, int a_GridSize, int a_MaxOffset, int a_MaxDepth, int a_MaxSize, cBiomeGenPtr a_BiomeGen) :
- super(a_Seed, a_GridSize, a_GridSize, a_MaxOffset, a_MaxOffset, a_MaxSize, a_MaxSize, 100),
- m_Noise(a_Seed + 1000),
- m_MaxDepth(a_MaxDepth),
- m_MaxSize(a_MaxSize),
- m_BiomeGen(a_BiomeGen)
-{
-}
-
-
-
-
-
-cGridStructGen::cStructurePtr cUnderwaterBaseGen::CreateStructure(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ)
-{
- // Generate the biomes for the chunk surrounding the origin:
- int ChunkX, ChunkZ;
- cChunkDef::BlockToChunk(a_OriginX, a_OriginZ, ChunkX, ChunkZ);
- cChunkDef::BiomeMap Biomes;
- m_BiomeGen->GenBiomes(ChunkX, ChunkZ, Biomes);
-
- // Check if all the biomes are ocean:
- // If just one is not, no base is created, because it's likely that an unfriendly biome is too close
- for (size_t i = 0; i < ARRAYCOUNT(Biomes); i++)
- {
- switch (Biomes[i])
- {
- case biOcean:
- case biDeepOcean:
- {
- // These biomes allow underwater bases
- break;
- }
- default:
- {
- // base-unfriendly biome, bail out with zero structure:
- return cStructurePtr();
- }
- } // switch (Biomes[i])
- } // for i - Biomes[]
-
- // Create a base based on the chosen prefabs:
- return cStructurePtr(new cUnderwaterBase(m_Seed, a_GridX, a_GridZ, a_OriginX, a_OriginZ, m_MaxDepth, m_MaxSize));
-}
-
-
-
-