summaryrefslogtreecommitdiffstats
path: root/source/Generating/ChunkDesc.h
diff options
context:
space:
mode:
authormadmaxoft@gmail.com <madmaxoft@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6>2013-02-08 17:01:44 +0100
committermadmaxoft@gmail.com <madmaxoft@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6>2013-02-08 17:01:44 +0100
commit7c0a7d662daec45a44bdf598735d1600bf7c187d (patch)
tree28886a3bb1b71b127821a05d58505e26b08e0a0b /source/Generating/ChunkDesc.h
parentAdded cBlockArea:CopyTo() and :CopyFrom(), so now block areas can be duplicated easily. (diff)
downloadcuberite-7c0a7d662daec45a44bdf598735d1600bf7c187d.tar
cuberite-7c0a7d662daec45a44bdf598735d1600bf7c187d.tar.gz
cuberite-7c0a7d662daec45a44bdf598735d1600bf7c187d.tar.bz2
cuberite-7c0a7d662daec45a44bdf598735d1600bf7c187d.tar.lz
cuberite-7c0a7d662daec45a44bdf598735d1600bf7c187d.tar.xz
cuberite-7c0a7d662daec45a44bdf598735d1600bf7c187d.tar.zst
cuberite-7c0a7d662daec45a44bdf598735d1600bf7c187d.zip
Diffstat (limited to 'source/Generating/ChunkDesc.h')
-rw-r--r--source/Generating/ChunkDesc.h196
1 files changed, 45 insertions, 151 deletions
diff --git a/source/Generating/ChunkDesc.h b/source/Generating/ChunkDesc.h
index 02b67998a..e8d4aa17a 100644
--- a/source/Generating/ChunkDesc.h
+++ b/source/Generating/ChunkDesc.h
@@ -15,175 +15,69 @@
-class cChunkDesc // tolua_export
-{ // tolua_export
+// tolua_begin
+class cChunkDesc
+{
public:
- cChunkDesc(
- cChunkDef::BlockTypes & a_BlockTypes,
- cChunkDef::BlockNibbles & a_BlockNibbles ,
- cChunkDef::HeightMap & a_HeightMap,
- cChunkDef::BiomeMap & a_BiomeMap
- )
- : m_BiomeMap(a_BiomeMap)
- , m_BlockTypes(a_BlockTypes)
- , m_BlockMeta(a_BlockNibbles)
- , m_HeightMap(a_HeightMap)
- , m_bUseDefaultBiomes(true)
- , m_bUseDefaultHeight(true)
- , m_bUseDefaultComposition(true)
- , m_bUseDefaultStructures(true)
- , m_bUseDefaultFinish(true)
- {
- memset(m_BlockTypes, 0, sizeof(cChunkDef::BlockTypes));
- memset(m_BlockMeta, 0, sizeof(cChunkDef::BlockNibbles));
- memset(m_BiomeMap, 0, sizeof(cChunkDef::BiomeMap));
- memset(m_HeightMap, 0, sizeof(cChunkDef::HeightMap));
- }
+ // tolua_end
- ~cChunkDesc()
- {}
+ cChunkDesc(void);
+ ~cChunkDesc();
// tolua_begin
+ void FillBlocks(BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta);
+ void SetBlock(int a_RelX, int a_RelY, int a_RelZ, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta);
-
- // Block functions:
- void FillBlocks(BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta)
- {
- const NIBBLETYPE CompressedMeta = a_BlockMeta | a_BlockMeta << 4;
- memset(m_BlockTypes, a_BlockType, sizeof(cChunkDef::BlockTypes));
- memset(m_BlockMeta, CompressedMeta, sizeof(cChunkDef::BlockNibbles));
- }
-
-
- void SetBlock(int a_X, int a_Y, int a_Z, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta)
- {
- cChunkDef::SetBlock( m_BlockTypes, a_X, a_Y, a_Z, a_BlockType );
- cChunkDef::SetNibble( m_BlockMeta, a_X, a_Y, a_Z, a_BlockMeta );
- }
-
-
- BLOCKTYPE GetBlock( int a_X, int a_Y, int a_Z )
- {
- return cChunkDef::GetBlock( m_BlockTypes, a_X, a_Y, a_Z );
- }
-
-
- NIBBLETYPE GetBlockMeta( int a_X, int a_Y, int a_Z )
- {
- return cChunkDef::GetNibble( m_BlockMeta, a_X, a_Y, a_Z );
- }
-
-
-
- // Biome functinos
- void SetBiome( int a_X, int a_Z, int a_BiomeID )
- {
- cChunkDef::SetBiome( m_BiomeMap, a_X, a_Z, (EMCSBiome)a_BiomeID );
- }
-
-
- int GetBiome( int a_X, int a_Z )
- {
- return cChunkDef::GetBiome( m_BiomeMap, a_X, a_Z );
- }
-
-
-
- // Height functions
- void SetHeight( int a_X, int a_Z, int a_Height )
- {
- cChunkDef::SetHeight( m_HeightMap, a_X, a_Z, a_Height );
- }
-
-
- int GetHeight( int a_X, int a_Z )
- {
- return cChunkDef::GetHeight( m_HeightMap, a_X, a_Z );
- }
-
-
-
- // Functions to explicitly tell the server to use default behavior for certain parts of generating terrain
- void SetUseDefaultBiomes(bool a_bUseDefaultBiomes)
- {
- m_bUseDefaultBiomes = a_bUseDefaultBiomes;
- }
-
+ void SetBlockType(int a_RelX, int a_RelY, int a_RelZ, BLOCKTYPE a_BlockType);
+ BLOCKTYPE GetBlockType(int a_RelX, int a_RelY, int a_RelZ);
- bool IsUsingDefaultBiomes(void) const
- {
- return m_bUseDefaultBiomes;
- }
-
-
- void SetUseDefaultHeight(bool a_bUseDefaultHeight)
- {
- m_bUseDefaultHeight = a_bUseDefaultHeight;
- }
-
-
- bool IsUsingDefaultHeight(void) const
- {
- return m_bUseDefaultHeight;
- }
-
-
- void SetUseDefaultComposition(bool a_bUseDefaultComposition)
- {
- m_bUseDefaultComposition = a_bUseDefaultComposition;
- }
-
-
- bool IsUsingDefaultComposition(void) const
- {
- return m_bUseDefaultComposition;
- }
-
-
- void SetUseDefaultStructures(bool a_bUseDefaultStructures)
- {
- m_bUseDefaultStructures = a_bUseDefaultStructures;
- }
-
-
- bool IsUsingDefaultStructures(void) const
- {
- return m_bUseDefaultStructures;
- }
-
-
- void SetUseDefaultFinish(bool a_bUseDefaultFinish)
- {
- m_bUseDefaultFinish = a_bUseDefaultFinish;
- }
-
-
- bool IsUsingDefaultFinish(void) const
- {
- return m_bUseDefaultFinish;
- }
+ void SetBlockMeta(int a_RelX, int a_RelY, int a_RelZ, NIBBLETYPE a_BlockMeta);
+ NIBBLETYPE GetBlockMeta(int a_RelX, int a_RelY, int a_RelZ);
+
+ void SetBiome(int a_RelX, int a_RelZ, int a_BiomeID);
+ EMCSBiome GetBiome(int a_RelX, int a_RelZ);
+
+ void SetHeight(int a_RelX, int a_RelZ, int a_Height);
+ int GetHeight(int a_RelX, int a_RelZ);
+
+ // Default generation:
+ void SetUseDefaultBiomes(bool a_bUseDefaultBiomes);
+ bool IsUsingDefaultBiomes(void) const;
+ void SetUseDefaultHeight(bool a_bUseDefaultHeight);
+ bool IsUsingDefaultHeight(void) const;
+ void SetUseDefaultComposition(bool a_bUseDefaultComposition);
+ bool IsUsingDefaultComposition(void) const;
+ void SetUseDefaultStructures(bool a_bUseDefaultStructures);
+ bool IsUsingDefaultStructures(void) const;
+ void SetUseDefaultFinish(bool a_bUseDefaultFinish);
+ bool IsUsingDefaultFinish(void) const;
// tolua_end
// Accessors used by cChunkGenerator::Generator descendants:
- cChunkDef::BiomeMap & GetBiomeMap (void) { return m_BiomeMap; }
- cChunkDef::BlockTypes & GetBlockTypes(void) { return m_BlockTypes; }
- cChunkDef::BlockNibbles & GetBlockMetas(void) { return m_BlockMeta; }
- cChunkDef::HeightMap & GetHeightMap (void) { return m_HeightMap; }
-
+ cChunkDef::BiomeMap & GetBiomeMap (void) { return m_BiomeMap; }
+ cChunkDef::BlockTypes & GetBlockTypes (void) { return m_BlockTypes; }
+ cChunkDef::BlockNibbles & GetBlockMetas (void) { return m_BlockMeta; }
+ cChunkDef::HeightMap & GetHeightMap (void) { return m_HeightMap; }
+ cEntityList & GetEntities (void) { return m_Entities; }
+ cBlockEntityList & GetBlockEntities(void) { return m_BlockEntities; }
+
private:
+ cChunkDef::BiomeMap m_BiomeMap;
+ cChunkDef::BlockTypes m_BlockTypes;
+ cChunkDef::BlockNibbles m_BlockMeta;
+ cChunkDef::HeightMap m_HeightMap;
+ cEntityList m_Entities; // Individual entities are NOT owned by this object!
+ cBlockEntityList m_BlockEntities; // Individual block entities are NOT owned by this object!
+
+
bool m_bUseDefaultBiomes;
bool m_bUseDefaultHeight;
bool m_bUseDefaultComposition;
bool m_bUseDefaultStructures;
bool m_bUseDefaultFinish;
-
- cChunkDef::BiomeMap & m_BiomeMap;
- cChunkDef::BlockTypes & m_BlockTypes;
- cChunkDef::BlockNibbles & m_BlockMeta;
- cChunkDef::HeightMap & m_HeightMap;
} ; // tolua_export