From 7616537bc071bc93f8d36c84b94603528be1efb0 Mon Sep 17 00:00:00 2001 From: kwolekr Date: Wed, 12 Nov 2014 23:01:13 -0500 Subject: Add Generator Element Management framework Add BiomeManager, OreManager, DecorationManager, and SchematicManager --- src/emerge.h | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) (limited to 'src/emerge.h') diff --git a/src/emerge.h b/src/emerge.h index c8b99a6e1..712289d30 100644 --- a/src/emerge.h +++ b/src/emerge.h @@ -23,8 +23,8 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include "irr_v3d.h" #include "util/container.h" -#include "map.h" // for ManualMapVoxelManipulator #include "mapgen.h" // for MapgenParams +#include "map.h" #define MGPARAMS_SET_MGNAME 1 #define MGPARAMS_SET_SEED 2 @@ -34,16 +34,20 @@ with this program; if not, write to the Free Software Foundation, Inc., #define BLOCK_EMERGE_ALLOWGEN (1<<0) #define EMERGE_DBG_OUT(x) \ - { if (enable_mapgen_debug_info) \ - infostream << "EmergeThread: " x << std::endl; } + do { \ + if (enable_mapgen_debug_info) \ + infostream << "EmergeThread: " x << std::endl; \ + } while (0) class EmergeThread; -class Biome; -class BiomeDefManager; -class Decoration; -class Ore; class INodeDefManager; class Settings; +//class ManualMapVoxelManipulator; + +class BiomeManager; +class OreManager; +class DecorationManager; +class SchematicManager; struct BlockMakeData { ManualMapVoxelManipulator *vmanip; @@ -88,16 +92,18 @@ public: u32 gennotify; - //block emerge queue data structures + //// Block emerge queue data structures JMutex queuemutex; std::map blocks_enqueued; std::map peer_queue_count; - //Mapgen-related structures - BiomeDefManager *biomedef; - std::vector ores; - std::vector decorations; + //// Managers of map generation-related components + BiomeManager *biomemgr; + OreManager *oremgr; + DecorationManager *decomgr; + SchematicManager *schemmgr; + //// Methods EmergeManager(IGameDef *gamedef); ~EmergeManager(); @@ -105,7 +111,7 @@ public: void initMapgens(); Mapgen *getCurrentMapgen(); Mapgen *createMapgen(std::string mgname, int mgid, - MapgenParams *mgparams); + MapgenParams *mgparams); MapgenSpecificParams *createMapgenParams(std::string mgname); void startThreads(); void stopThreads(); -- cgit v1.2.3