1
0
cuberite-2a/source/Generating/MineShafts.h
2013-03-29 16:46:58 +00:00

56 lines
1.4 KiB
C++

// MineShafts.h
// Declares the cStructGenMineShafts class representing the structure generator for abandoned mineshafts
#pragma once
#include "ComposableGenerator.h"
#include "../Noise.h"
class cStructGenMineShafts :
public cStructureGen
{
public:
cStructGenMineShafts(int a_Seed, int a_GridSize, int a_MaxSystemSize);
virtual ~cStructGenMineShafts();
protected:
friend class cMineShaft;
friend class cMineShaftDirtRoom;
friend class cMineShaftCorridor;
friend class cMineShaftCrossing;
friend class cMineShaftStaircase;
class cMineShaftSystem; // fwd: MineShafts.cpp
typedef std::list<cMineShaftSystem *> cMineShaftSystems;
cNoise m_Noise;
int m_GridSize; ///< Average spacing of the systems
int m_MaxSystemSize; ///< Maximum blcok size of a mineshaft system
cMineShaftSystems m_Cache; ///< Cache of the most recently used systems. MoveToFront used.
/// Clears everything from the cache
void ClearCache(void);
/** Returns all systems that *may* intersect the given chunk.
All the systems are valid until the next call to this function (which may delete some of the pointers).
*/
void GetMineShaftSystemsForChunk(int a_ChunkX, int a_ChunkZ, cMineShaftSystems & a_MineShaftSystems);
// cStructureGen overrides:
virtual void GenStructures(cChunkDesc & a_ChunkDesc) override;
} ;