From a4963b69efff3bffeac40b1d22624f72007ac3b2 Mon Sep 17 00:00:00 2001 From: "madmaxoft@gmail.com" Date: Fri, 29 Mar 2013 16:46:58 +0000 Subject: MineShafts: backup commit with initial work, still unusable. git-svn-id: http://mc-server.googlecode.com/svn/trunk@1321 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/Generating/MineShafts.h | 55 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 source/Generating/MineShafts.h (limited to 'source/Generating/MineShafts.h') diff --git a/source/Generating/MineShafts.h b/source/Generating/MineShafts.h new file mode 100644 index 000000000..0d9b7436b --- /dev/null +++ b/source/Generating/MineShafts.h @@ -0,0 +1,55 @@ + +// 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 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; +} ; + + + + -- cgit v1.2.3