a4963b69ef
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1321 0a769ca7-a7f5-676a-18bf-c427514a06d6
56 lines
1.4 KiB
C++
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;
|
|
} ;
|
|
|
|
|
|
|
|
|