summaryrefslogtreecommitdiffstats
path: root/src/Generating
diff options
context:
space:
mode:
Diffstat (limited to 'src/Generating')
-rw-r--r--src/Generating/ComposableGenerator.cpp9
-rw-r--r--src/Generating/GridStructGen.cpp35
-rw-r--r--src/Generating/GridStructGen.h16
-rw-r--r--src/Generating/PieceGenerator.cpp11
-rw-r--r--src/Generating/PieceGenerator.h11
-rw-r--r--src/Generating/Prefab.cpp48
-rw-r--r--src/Generating/Prefab.h21
-rw-r--r--src/Generating/Prefabs/PlainsVillagePrefabs.cpp4355
-rw-r--r--src/Generating/Prefabs/PlainsVillagePrefabs.h15
-rw-r--r--src/Generating/Prefabs/SandVillagePrefabs.cpp1890
-rw-r--r--src/Generating/Prefabs/SandVillagePrefabs.h15
-rw-r--r--src/Generating/VillageGen.cpp296
-rw-r--r--src/Generating/VillageGen.h48
13 files changed, 6757 insertions, 13 deletions
diff --git a/src/Generating/ComposableGenerator.cpp b/src/Generating/ComposableGenerator.cpp
index 2e886336f..f264599c9 100644
--- a/src/Generating/ComposableGenerator.cpp
+++ b/src/Generating/ComposableGenerator.cpp
@@ -25,6 +25,7 @@
#include "Noise3DGenerator.h"
#include "POCPieceGenerator.h"
#include "Ravines.h"
+#include "VillageGen.h"
@@ -32,6 +33,7 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// cTerrainCompositionGen:
+
cTerrainCompositionGen * cTerrainCompositionGen::CreateCompositionGen(cIniFile & a_IniFile, cBiomeGen & a_BiomeGen, cTerrainHeightGen & a_HeightGen, int a_Seed)
{
AString CompoGenName = a_IniFile.GetValueSet("Generator", "CompositionGen", "");
@@ -404,6 +406,13 @@ void cComposableGenerator::InitFinishGens(cIniFile & a_IniFile)
{
m_FinishGens.push_back(new cStructGenTrees(Seed, m_BiomeGen, m_HeightGen, m_CompositionGen));
}
+ else if (NoCaseCompare(*itr, "Villages") == 0)
+ {
+ int GridSize = a_IniFile.GetValueSetI("Generator", "VillageGridSize", 384);
+ int MaxDepth = a_IniFile.GetValueSetI("Generator", "VillageMaxDepth", 3);
+ int MaxSize = a_IniFile.GetValueSetI("Generator", "VillageMaxSize", 128);
+ m_FinishGens.push_back(new cVillageGen(Seed, GridSize, MaxDepth, MaxSize, *m_BiomeGen, *m_HeightGen));
+ }
else if (NoCaseCompare(*itr, "WaterLakes") == 0)
{
int Probability = a_IniFile.GetValueSetI("Generator", "WaterLakesProbability", 25);
diff --git a/src/Generating/GridStructGen.cpp b/src/Generating/GridStructGen.cpp
index 3bbc89054..23946e2e9 100644
--- a/src/Generating/GridStructGen.cpp
+++ b/src/Generating/GridStructGen.cpp
@@ -9,6 +9,34 @@
+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// cEmptyStructure:
+
+/** A cStructure descendant representing an empty structure.
+Used when the generator descended from cGridStructGen doesn't return any structure, to keep at least the
+Origin coords so that the structure isn't queried over and over again. */
+class cEmptyStructure :
+ public cGridStructGen::cStructure
+{
+ typedef cGridStructGen::cStructure super;
+
+public:
+ cEmptyStructure(int a_OriginX, int a_OriginZ) :
+ super(a_OriginX, a_OriginZ)
+ {
+ }
+
+protected:
+ virtual void DrawIntoChunk(cChunkDesc & a_ChunkDesc) override
+ {
+ // Do nothing
+ }
+} ;
+
+
+
+
+
cGridStructGen::cGridStructGen(
int a_Seed,
int a_GridSizeX, int a_GridSizeZ,
@@ -81,7 +109,12 @@ void cGridStructGen::GetStructuresForChunk(int a_ChunkX, int a_ChunkZ, cStructur
} // for itr - a_Structures[]
if (!Found)
{
- a_Structures.push_back(CreateStructure(OriginX, OriginZ));
+ cStructurePtr Structure = CreateStructure(OriginX, OriginZ);
+ if (Structure.get() == NULL)
+ {
+ Structure.reset(new cEmptyStructure(OriginX, OriginZ));
+ }
+ a_Structures.push_back(Structure);
}
} // for z
} // for x
diff --git a/src/Generating/GridStructGen.h b/src/Generating/GridStructGen.h
index 234cc75c5..630a5e44e 100644
--- a/src/Generating/GridStructGen.h
+++ b/src/Generating/GridStructGen.h
@@ -39,14 +39,6 @@ class cGridStructGen :
public cFinishGen
{
public:
- cGridStructGen(
- int a_Seed,
- int a_GridSizeX, int a_GridSizeZ,
- int a_MaxStructureSizeX, int a_MaxStructureSizeZ,
- size_t a_MaxCacheSize
- );
-
-protected:
/** Represents a single structure that occupies the grid point. Knows how to draw itself into a chunk. */
class cStructure
{
@@ -75,6 +67,14 @@ protected:
typedef std::list<cStructurePtr> cStructurePtrs;
+ cGridStructGen(
+ int a_Seed,
+ int a_GridSizeX, int a_GridSizeZ,
+ int a_MaxStructureSizeX, int a_MaxStructureSizeZ,
+ size_t a_MaxCacheSize
+ );
+
+protected:
/** Seed for generating the semi-random grid. */
int m_Seed;
diff --git a/src/Generating/PieceGenerator.cpp b/src/Generating/PieceGenerator.cpp
index ce19c1c95..c12559d3f 100644
--- a/src/Generating/PieceGenerator.cpp
+++ b/src/Generating/PieceGenerator.cpp
@@ -297,6 +297,17 @@ cPlacedPiece::cPlacedPiece(const cPlacedPiece * a_Parent, const cPiece & a_Piece
+cPiece::cConnector cPlacedPiece::GetRotatedConnector(size_t a_Index) const
+{
+ cPiece::cConnectors Connectors = m_Piece->GetConnectors();
+ ASSERT(Connectors.size() >= a_Index);
+ return m_Piece->RotateMoveConnector(Connectors[a_Index], m_NumCCWRotations, m_Coords.x, m_Coords.y, m_Coords.z);
+}
+
+
+
+
+
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// cPieceGenerator:
diff --git a/src/Generating/PieceGenerator.h b/src/Generating/PieceGenerator.h
index 16bec3bb4..643ca58b6 100644
--- a/src/Generating/PieceGenerator.h
+++ b/src/Generating/PieceGenerator.h
@@ -144,13 +144,20 @@ public:
const cCuboid & GetHitBox (void) const { return m_HitBox; }
int GetDepth (void) const { return m_Depth; }
+ /** Returns the coords as a modifiable object. */
+ Vector3i & GetCoords(void) { return m_Coords; }
+
+ /** Returns the connector at the specified index, rotated in the actual placement.
+ Undefined behavior if a_Index is out of range. */
+ cPiece::cConnector GetRotatedConnector(size_t a_Index) const;
+
protected:
const cPlacedPiece * m_Parent;
const cPiece * m_Piece;
Vector3i m_Coords;
int m_NumCCWRotations;
- cCuboid m_HitBox;
- int m_Depth;
+ cCuboid m_HitBox; // Hitbox of the placed piece, in world coords
+ int m_Depth; // Depth in the generated piece tree
};
typedef std::vector<cPlacedPiece *> cPlacedPieces;
diff --git a/src/Generating/Prefab.cpp b/src/Generating/Prefab.cpp
index 0f20603be..506e1c2cc 100644
--- a/src/Generating/Prefab.cpp
+++ b/src/Generating/Prefab.cpp
@@ -136,6 +136,33 @@ cPrefab::cPrefab(const cPrefab::sDef & a_Def) :
ParseConnectors(a_Def.m_Connectors);
ParseDepthWeight(a_Def.m_DepthWeight);
+ AddRotatedBlockAreas();
+}
+
+
+
+
+
+cPrefab::cPrefab(const cBlockArea & a_Image, int a_AllowedRotations) :
+ m_Size(a_Image.GetSize()),
+ m_AllowedRotations(a_AllowedRotations),
+ m_MergeStrategy(cBlockArea::msOverwrite),
+ m_ShouldExtendFloor(false),
+ m_DefaultWeight(1),
+ m_AddWeightIfSame(0)
+{
+ m_HitBox.p1.Set(0, 0, 0);
+ m_HitBox.p2.Set(m_Size.x - 1, m_Size.y - 1, m_Size.z - 1);
+ m_BlockArea[0].CopyFrom(a_Image);
+ AddRotatedBlockAreas();
+}
+
+
+
+
+
+void cPrefab::AddRotatedBlockAreas(void)
+{
// 1 CCW rotation:
if ((m_AllowedRotations & 0x01) != 0)
{
@@ -165,12 +192,20 @@ cPrefab::cPrefab(const cPrefab::sDef & a_Def) :
void cPrefab::Draw(cChunkDesc & a_Dest, const cPlacedPiece * a_Placement) const
{
+ Draw(a_Dest, a_Placement->GetCoords(), a_Placement->GetNumCCWRotations());
+}
+
+
+
+
+void cPrefab::Draw(cChunkDesc & a_Dest, const Vector3i & a_Placement, int a_NumRotations) const
+{
// Draw the basic image:
- Vector3i Placement = a_Placement->GetCoords();
+ Vector3i Placement(a_Placement);
int ChunkStartX = a_Dest.GetChunkX() * cChunkDef::Width;
int ChunkStartZ = a_Dest.GetChunkZ() * cChunkDef::Width;
Placement.Move(-ChunkStartX, 0, -ChunkStartZ);
- const cBlockArea & Image = m_BlockArea[a_Placement->GetNumCCWRotations()];
+ const cBlockArea & Image = m_BlockArea[a_NumRotations];
a_Dest.WriteBlockArea(Image, Placement.x, Placement.y, Placement.z, m_MergeStrategy);
// If requested, draw the floor (from the bottom of the prefab down to the nearest non-air)
@@ -257,6 +292,15 @@ int cPrefab::GetPieceWeight(const cPlacedPiece & a_PlacedPiece, const cPiece::cC
+void cPrefab::AddConnector(int a_RelX, int a_RelY, int a_RelZ, eBlockFace a_Direction, int a_Type)
+{
+ m_Connectors.push_back(cConnector(a_RelX, a_RelY, a_RelZ, a_Type, a_Direction));
+}
+
+
+
+
+
void cPrefab::ParseCharMap(CharMap & a_CharMapOut, const char * a_CharMapDef)
{
ASSERT(a_CharMapDef != NULL);
diff --git a/src/Generating/Prefab.h b/src/Generating/Prefab.h
index 37db2ff16..2b89a204c 100644
--- a/src/Generating/Prefab.h
+++ b/src/Generating/Prefab.h
@@ -84,17 +84,34 @@ public:
int m_AddWeightIfSame;
};
+
+ /** Creates a prefab from the provided definition. */
cPrefab(const sDef & a_Def);
+ /** Creates a prefab based on the given BlockArea and allowed rotations. */
+ cPrefab(const cBlockArea & a_Image, int a_AllowedRotations);
+
/** Draws the prefab into the specified chunk, according to the placement stored in the PlacedPiece. */
void Draw(cChunkDesc & a_Dest, const cPlacedPiece * a_Placement) const;
+ /** Draws the prefab into the specified chunks, according to the specified placement and rotations. */
+ void Draw(cChunkDesc & a_Dest, const Vector3i & a_Placement, int a_NumRotations) const;
+
/** Returns true if the prefab has any connector of the specified type. */
bool HasConnectorType(int a_ConnectorType) const;
/** Returns the weight (chance) of this prefab generating as the next piece after the specified placed piece.
PiecePool implementations can use this for their GetPieceWeight() implementations. */
int GetPieceWeight(const cPlacedPiece & a_PlacedPiece, const cPiece::cConnector & a_ExistingConnector) const;
+
+ /** Returns the unmodified DefaultWeight property for the piece. */
+ int GetDefaultWeight(void) const { return m_DefaultWeight; }
+
+ /** Sets the AddWeightIfSame member, that is used to modify the weight when the previous piece is the same prefab */
+ void SetAddWeightIfSame(int a_AddWeightIfSame) { m_AddWeightIfSame = a_AddWeightIfSame; }
+
+ /** Adds the specified connector to the list of connectors this piece supports. */
+ void AddConnector(int a_RelX, int a_RelY, int a_RelZ, eBlockFace a_Direction, int a_Type);
protected:
/** Packs complete definition of a single block, for per-letter assignment. */
@@ -157,6 +174,10 @@ protected:
virtual cCuboid GetHitBox(void) const override;
virtual bool CanRotateCCW(int a_NumRotations) const override;
+ /** Based on the m_AllowedRotations, adds rotated cBlockAreas to the m_BlockArea array.
+ To be called only from this class's constructor! */
+ void AddRotatedBlockAreas(void);
+
/** Parses the CharMap in the definition into a CharMap binary data used for translating the definition into BlockArea. */
void ParseCharMap(CharMap & a_CharMapOut, const char * a_CharMapDef);
diff --git a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp
new file mode 100644
index 000000000..863720ab4
--- /dev/null
+++ b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp
@@ -0,0 +1,4355 @@
+
+// PlainsVillagePrefabs.cpp
+
+// Defines the prefabs in the group PlainsVillage
+
+// NOTE: This file has been generated automatically by GalExport!
+// Any manual changes will be overwritten by the next automatic export!
+
+#include "Globals.h"
+#include "PlainsVillagePrefabs.h"
+
+
+
+
+
+const cPrefab::sDef g_PlainsVillagePrefabs[] =
+{
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // BigPlantBed:
+ // The data has been exported from the gallery Plains, area index 26, ID 70, created by Taugrammaton
+ {
+ // Size:
+ 13, 4, 12, // SizeX = 13, SizeY = 4, SizeZ = 12
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 12, 3, 11, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a: 3: 0\n" /* dirt */
+ "b: 5: 0\n" /* wood */
+ "c: 13: 0\n" /* gravel */
+ "d: 17: 0\n" /* tree */
+ "e: 60: 7\n" /* tilleddirt */
+ "f: 8: 0\n" /* water */
+ "g: 85: 0\n" /* fence */
+ "h: 59: 7\n" /* crops */
+ "m: 19: 0\n" /* sponge */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 111 */
+ /* * 0123456789012 */
+ /* 0 */ "aaaaaaaaaaaaa"
+ /* 1 */ "aaaaaaaaaaaaa"
+ /* 2 */ "aaaaaaaaaaaaa"
+ /* 3 */ "aaaaaaaaaaaaa"
+ /* 4 */ "aaaaaaaaaaaaa"
+ /* 5 */ "aaaaaaaaaaaaa"
+ /* 6 */ "aaaaaaaaaaaaa"
+ /* 7 */ "aaaaaaaaaaaaa"
+ /* 8 */ "aaaaaaaaaaaaa"
+ /* 9 */ "aaaaaaaaaaaaa"
+ /* 10 */ "aaaaaaaaaaaaa"
+ /* 11 */ "aaaaaaaaaaaaa"
+
+ // Level 1
+ /* z\x* 111 */
+ /* * 0123456789012 */
+ /* 0 */ "bbbbbbbbbbbbb"
+ /* 1 */ "bcccccccccccb"
+ /* 2 */ "bcccccccccccb"
+ /* 3 */ "bcccccccccccb"
+ /* 4 */ "bcccccccccccb"
+ /* 5 */ "bcccccccccccb"
+ /* 6 */ "bcccccccccccb"
+ /* 7 */ "bcccccccccccb"
+ /* 8 */ "bcccccccccccb"
+ /* 9 */ "bcccccccccccb"
+ /* 10 */ "bcccccccccccb"
+ /* 11 */ "bbbbbbbbbbbbb"
+
+ // Level 2
+ /* z\x* 111 */
+ /* * 0123456789012 */
+ /* 0 */ "ddddddddddddd"
+ /* 1 */ "deefeefeefeed"
+ /* 2 */ "deefeefeefeed"
+ /* 3 */ "deefeefeefeed"
+ /* 4 */ "deefeefeefeed"
+ /* 5 */ "deefeefeefeed"
+ /* 6 */ "deefeefeefeed"
+ /* 7 */ "deefeefeefeed"
+ /* 8 */ "deefeefeefeed"
+ /* 9 */ "deefeefeefeed"
+ /* 10 */ "deefeefeefeed"
+ /* 11 */ "ddddddddddddd"
+
+ // Level 3
+ /* z\x* 111 */
+ /* * 0123456789012 */
+ /* 0 */ "g..g..g..g..g"
+ /* 1 */ "ghh.h..hh.hhg"
+ /* 2 */ "ghh..h.hh.hhg"
+ /* 3 */ "ghh.h..h..hhg"
+ /* 4 */ "ghh.hh.h..hhg"
+ /* 5 */ "ghh.h..hh.hhg"
+ /* 6 */ "ghh.hh.hh.hhg"
+ /* 7 */ "ghh....h..hhg"
+ /* 8 */ "ghh..h....hhg"
+ /* 9 */ "ghh.....h.hhg"
+ /* 10 */ "ghh.hh.h..hhg"
+ /* 11 */ "g..g..g..g..g",
+
+ // Connectors:
+ "-1: 7, 1, 11: 3\n" /* Type -1, direction Z+ */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // BigPlantBed
+
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // CobbleHouse10x5Library:
+ // The data has been exported from the gallery Plains, area index 23, ID 66, created by xoft
+ {
+ // Size:
+ 12, 8, 7, // SizeX = 12, SizeY = 8, SizeZ = 7
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 11, 7, 6, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a: 3: 0\n" /* dirt */
+ "b: 2: 0\n" /* grass */
+ "c: 67: 0\n" /* stairs */
+ "d: 67: 2\n" /* stairs */
+ "e: 67: 1\n" /* stairs */
+ "f: 4: 0\n" /* cobblestone */
+ "g: 64: 7\n" /* wooddoorblock */
+ "h: 53: 3\n" /* woodstairs */
+ "i: 53: 1\n" /* woodstairs */
+ "j: 85: 0\n" /* fence */
+ "k: 53: 0\n" /* woodstairs */
+ "l: 53: 2\n" /* woodstairs */
+ "m: 19: 0\n" /* sponge */
+ "n:102: 0\n" /* glasspane */
+ "o: 64:12\n" /* wooddoorblock */
+ "p: 50: 3\n" /* torch */
+ "q: 72: 0\n" /* woodplate */
+ "r: 50: 4\n" /* torch */
+ "s: 53: 7\n" /* woodstairs */
+ "t: 47: 0\n" /* bookshelf */
+ "u: 50: 1\n" /* torch */
+ "v: 50: 2\n" /* torch */
+ "w: 53: 6\n" /* woodstairs */
+ "x: 5: 0\n" /* wood */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 11 */
+ /* * 012345678901 */
+ /* 0 */ "aaaaaaaaaaaa"
+ /* 1 */ "aaaaaaaaaaaa"
+ /* 2 */ "aaaaaaaaaaaa"
+ /* 3 */ "aaaaaaaaaaaa"
+ /* 4 */ "aaaaaaaaaaaa"
+ /* 5 */ "aaaaaaaaaaaa"
+ /* 6 */ "aaaaaaaaaaaa"
+
+ // Level 1
+ /* z\x* 11 */
+ /* * 012345678901 */
+ /* 0 */ "bbbbbbbaaabb"
+ /* 1 */ "baaaaaaaaaab"
+ /* 2 */ "baaaaaaaaaab"
+ /* 3 */ "baaaaaaaaaab"
+ /* 4 */ "baaaaaaaaaab"
+ /* 5 */ "baaaaaaaaaab"
+ /* 6 */ "bbbbbbbbbbbb"
+
+ // Level 2
+ /* z\x* 11 */
+ /* * 012345678901 */
+ /* 0 */ ".......cde.."
+ /* 1 */ ".ffffffffff."
+ /* 2 */ ".ffffffffff."
+ /* 3 */ ".ffffffffff."
+ /* 4 */ ".ffffffffff."
+ /* 5 */ ".ffffffffff."
+ /* 6 */ "............"
+
+ // Level 3
+ /* z\x* 11 */
+ /* * 012345678901 */
+ /* 0 */ "............"
+ /* 1 */ ".fffffffgff."
+ /* 2 */ ".fh.ijk...f."
+ /* 3 */ ".fj.......f."
+ /* 4 */ ".fl.ijkijkf."
+ /* 5 */ ".ffffffffff."
+ /* 6 */ "............"
+
+ // Level 4
+ /* z\x* 11 */
+ /* * 012345678901 */
+ /* 0 */ "............"
+ /* 1 */ ".fnnfnnfoff."
+ /* 2 */ ".n..pq.p.pn."
+ /* 3 */ ".nq.......n."
+ /* 4 */ ".n..rq.rq.n."
+ /* 5 */ ".fnnfnnfnnf."
+ /* 6 */ "............"
+
+ // Level 5
+ /* z\x* 11 */
+ /* * 012345678901 */
+ /* 0 */ "llllllllllll"
+ /* 1 */ "sffffffffffs"
+ /* 2 */ ".fttttttttf."
+ /* 3 */ ".fu......vf."
+ /* 4 */ ".fttttttttf."
+ /* 5 */ "wffffffffffw"
+ /* 6 */ "hhhhhhhhhhhh"
+
+ // Level 6
+ /* z\x* 11 */
+ /* * 012345678901 */
+ /* 0 */ "............"
+ /* 1 */ "llllllllllll"
+ /* 2 */ "sxxxxxxxxxxs"
+ /* 3 */ ".xxxxxxxxxx."
+ /* 4 */ "wxxxxxxxxxxw"
+ /* 5 */ "hhhhhhhhhhhh"
+ /* 6 */ "............"
+
+ // Level 7
+ /* z\x* 11 */
+ /* * 012345678901 */
+ /* 0 */ "............"
+ /* 1 */ "............"
+ /* 2 */ "llllllllllll"
+ /* 3 */ "xxxxxxxxxxxx"
+ /* 4 */ "hhhhhhhhhhhh"
+ /* 5 */ "............"
+ /* 6 */ "............",
+
+ // Connectors:
+ "-1: 8, 2, 0: 2\n" /* Type -1, direction Z- */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // CobbleHouse10x5Library
+
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // DoublePlantBed:
+ // The data has been exported from the gallery Plains, area index 5, ID 20, created by tonibm1999
+ {
+ // Size:
+ 15, 2, 9, // SizeX = 15, SizeY = 2, SizeZ = 9
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 14, 1, 8, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a: 17: 0\n" /* tree */
+ "b: 60: 7\n" /* tilleddirt */
+ "c: 8: 0\n" /* water */
+ "d: 50: 5\n" /* torch */
+ "e: 59: 7\n" /* crops */
+ "m: 19: 0\n" /* sponge */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "aaaaaaamaaaaaaa"
+ /* 1 */ "abbcbbamabbcbba"
+ /* 2 */ "abbcbbamabbcbba"
+ /* 3 */ "abbcbbamabbcbba"
+ /* 4 */ "abbcbbamabbcbba"
+ /* 5 */ "abbcbbamabbcbba"
+ /* 6 */ "abbcbbamabbcbba"
+ /* 7 */ "abbcbbamabbcbba"
+ /* 8 */ "aaaaaaamaaaaaaa"
+
+ // Level 1
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "dmmmmmdmdmmmmmd"
+ /* 1 */ "meemeemmmeemeem"
+ /* 2 */ "memmmemmmeemeem"
+ /* 3 */ "memmmmmmmeemeem"
+ /* 4 */ "meemmemmmeemeem"
+ /* 5 */ "meemmemmmeemeem"
+ /* 6 */ "mmemmemmmeemeem"
+ /* 7 */ "mmememmmmeemeem"
+ /* 8 */ "dmmmmmdmdmmmmmd",
+
+ // Connectors:
+ "-1: 7, 0, 8: 3\n" /* Type -1, direction Z+ */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // DoublePlantBed
+
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // Forge:
+ // The data has been exported from the gallery Plains, area index 51, ID 102, created by Aloe_vera
+ {
+ // Size:
+ 12, 10, 11, // SizeX = 12, SizeY = 10, SizeZ = 11
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 11, 9, 10, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a: 3: 0\n" /* dirt */
+ "b: 2: 0\n" /* grass */
+ "c: 67: 0\n" /* stairs */
+ "d: 67: 2\n" /* stairs */
+ "e: 67: 1\n" /* stairs */
+ "f: 4: 0\n" /* cobblestone */
+ "g: 17: 0\n" /* tree */
+ "h: 5: 0\n" /* wood */
+ "i: 64: 6\n" /* wooddoorblock */
+ "j: 10: 0\n" /* lava */
+ "k: 54: 2\n" /* chest */
+ "l: 61: 2\n" /* furnace */
+ "m: 19: 0\n" /* sponge */
+ "n:102: 0\n" /* glasspane */
+ "o: 64:12\n" /* wooddoorblock */
+ "p:139: 0\n" /* cobblestonewall */
+ "q:101: 0\n" /* ironbars */
+ "r: 53: 2\n" /* woodstairs */
+ "s: 53: 7\n" /* woodstairs */
+ "t: 50: 2\n" /* torch */
+ "u: 50: 1\n" /* torch */
+ "v: 53: 6\n" /* woodstairs */
+ "w: 53: 3\n" /* woodstairs */
+ "x: 43: 0\n" /* doubleslab */
+ "y: 44: 0\n" /* step */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 11 */
+ /* * 012345678901 */
+ /* 0 */ "aaaaaaaaaaaa"
+ /* 1 */ "aaaaaaaaaaaa"
+ /* 2 */ "aaaaaaaaaaaa"
+ /* 3 */ "aaaaaaaaaaaa"
+ /* 4 */ "aaaaaaaaaaaa"
+ /* 5 */ "aaaaaaaaaaaa"
+ /* 6 */ "aaaaaaaaaaaa"
+ /* 7 */ "aaaaaaaaaaaa"
+ /* 8 */ "aaaaaaaaaaaa"
+ /* 9 */ "aaaaaaaaaaaa"
+ /* 10 */ "aaaaaaaaaaaa"
+
+ // Level 1
+ /* z\x* 11 */
+ /* * 012345678901 */
+ /* 0 */ "bbbbbaaaaabb"
+ /* 1 */ "baaaaaaaaabb"
+ /* 2 */ "baaaaaaaaabb"
+ /* 3 */ "baaaaaaaaaaa"
+ /* 4 */ "baaaaaaaaaaa"
+ /* 5 */ "baaaaaaaaaaa"
+ /* 6 */ "baaaaaaaaaaa"
+ /* 7 */ "baaaaaaaaaaa"
+ /* 8 */ "baaaaabbbbbb"
+ /* 9 */ "baaaaabbbbbb"
+ /* 10 */ "bbbbbbbbbbbb"
+
+ // Level 2
+ /* z\x* 11 */
+ /* * 012345678901 */
+ /* 0 */ ".....cddde.."
+ /* 1 */ ".ffffffffe.."
+ /* 2 */ ".ffffffffe.."
+ /* 3 */ ".fffffffffff"
+ /* 4 */ ".fffffffffff"
+ /* 5 */ ".fffffffffff"
+ /* 6 */ ".fffffffffff"
+ /* 7 */ ".fffffffffff"
+ /* 8 */ ".fffff.mmmmm"
+ /* 9 */ ".fffff.mmmmm"
+ /* 10 */ ".......mmmmm"
+
+ // Level 3
+ /* z\x* 11 */
+ /* * 012345678901 */
+ /* 0 */ "............"
+ /* 1 */ ".ghhhg......"
+ /* 2 */ ".h...i......"
+ /* 3 */ ".h...gf..fff"
+ /* 4 */ ".h...h...fjf"
+ /* 5 */ ".h...h...fjf"
+ /* 6 */ ".h...hkllfjf"
+ /* 7 */ ".h...gffffff"
+ /* 8 */ ".h...h.mmmmm"
+ /* 9 */ ".ghhhg.mmmmm"
+ /* 10 */ ".......mmmmm"
+
+ // Level 4
+ /* z\x* 11 */
+ /* * 012345678901 */
+ /* 0 */ "............"
+ /* 1 */ ".gnnng......"
+ /* 2 */ ".n...o......"
+ /* 3 */ ".n...gp..p.f"
+ /* 4 */ ".n...n.....q"
+ /* 5 */ ".h...n.....q"
+ /* 6 */ ".n...n.....q"
+ /* 7 */ ".n...gfqqqqf"
+ /* 8 */ ".n...h.mmmmm"
+ /* 9 */ ".gnnng.mmmmm"
+ /* 10 */ ".......mmmmm"
+
+ // Level 5
+ /* z\x* 11 */
+ /* * 012345678901 */
+ /* 0 */ "rrrrrrr....."
+ /* 1 */ "shhhhhs....."
+ /* 2 */ ".h...h......"
+ /* 3 */ ".h..thf..fqf"
+ /* 4 */ ".h...h...q.f"
+ /* 5 */ ".h...h...q.f"
+ /* 6 */ ".hu..h...q.f"
+ /* 7 */ ".h...hffffff"
+ /* 8 */ ".h...h.mmmmm"
+ /* 9 */ "vhhhhhvmmmmm"
+ /* 10 */ "wwwwwwwmmmmm"
+
+ // Level 6
+ /* z\x* 11 */
+ /* * 012345678901 */
+ /* 0 */ "............"
+ /* 1 */ "rrrrrrr....."
+ /* 2 */ "shhhhhs....."
+ /* 3 */ ".h...hxxxxxx"
+ /* 4 */ ".h...hxyyyyx"
+ /* 5 */ ".h...hxyyyyx"
+ /* 6 */ ".h...hxyyyyx"
+ /* 7 */ ".h...hxxxxxx"
+ /* 8 */ "vhhhhhvmmmmm"
+ /* 9 */ "wwwwwwwmmmmm"
+ /* 10 */ ".......mmmmm"
+
+ // Level 7
+ /* z\x* 11 */
+ /* * 012345678901 */
+ /* 0 */ "............"
+ /* 1 */ "............"
+ /* 2 */ "rrrrrrr....."
+ /* 3 */ "shhhhhs....."
+ /* 4 */ ".h...h......"
+ /* 5 */ ".h...h......"
+ /* 6 */ ".h...h......"
+ /* 7 */ "vhhhhhv....."
+ /* 8 */ "wwwwwwwmmmmm"
+ /* 9 */ ".......mmmmm"
+ /* 10 */ ".......mmmmm"
+
+ // Level 8
+ /* z\x* 11 */
+ /* * 012345678901 */
+ /* 0 */ "............"
+ /* 1 */ "............"
+ /* 2 */ "............"
+ /* 3 */ "rrrrrrr....."
+ /* 4 */ "shhhhhs....."
+ /* 5 */ ".h...h......"
+ /* 6 */ "vhhhhhv....."
+ /* 7 */ "wwwwwww....."
+ /* 8 */ ".......mmmmm"
+ /* 9 */ ".......mmmmm"
+ /* 10 */ ".......mmmmm"
+
+ // Level 9
+ /* z\x* 11 */
+ /* * 012345678901 */
+ /* 0 */ "............"
+ /* 1 */ "............"
+ /* 2 */ "............"
+ /* 3 */ "............"
+ /* 4 */ "rrrrrrr....."
+ /* 5 */ "hhhhhhh....."
+ /* 6 */ "wwwwwww....."
+ /* 7 */ "............"
+ /* 8 */ ".......mmmmm"
+ /* 9 */ ".......mmmmm"
+ /* 10 */ ".......mmmmm",
+
+ // Connectors:
+ "-1: 7, 2, -1: 2\n" /* Type -1, direction Z- */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // Forge
+
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // SinglePlantBed:
+ // The data has been exported from the gallery Plains, area index 17, ID 60, created by Aloe_vera
+ {
+ // Size:
+ 10, 3, 7, // SizeX = 10, SizeY = 3, SizeZ = 7
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 9, 2, 6, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a: 3: 0\n" /* dirt */
+ "b: 17: 0\n" /* tree */
+ "c: 60: 7\n" /* tilleddirt */
+ "d: 8: 0\n" /* water */
+ "e: 59: 7\n" /* crops */
+ "m: 19: 0\n" /* sponge */,
+
+ // Block data:
+ // Level 0
+ /* z\x* */
+ /* * 0123456789 */
+ /* 0 */ "aaaaaaaaaa"
+ /* 1 */ "aaaaaaaaaa"
+ /* 2 */ "aaaaaaaaaa"
+ /* 3 */ "aaaaaaaaaa"
+ /* 4 */ "aaaaaaaaaa"
+ /* 5 */ "aaaaaaaaaa"
+ /* 6 */ "aaaaaaaaaa"
+
+ // Level 1
+ /* z\x* */
+ /* * 0123456789 */
+ /* 0 */ "bbbbbbbbbb"
+ /* 1 */ "bccccccccb"
+ /* 2 */ "bccccccccb"
+ /* 3 */ "bddddddddb"
+ /* 4 */ "bccccccccb"
+ /* 5 */ "bccccccccb"
+ /* 6 */ "bbbbbbbbbb"
+
+ // Level 2
+ /* z\x* */
+ /* * 0123456789 */
+ /* 0 */ ".........."
+ /* 1 */ ".eeeeeeee."
+ /* 2 */ ".eeeeeeee."
+ /* 3 */ ".........."
+ /* 4 */ ".eeeeeeee."
+ /* 5 */ ".eeeeeeee."
+ /* 6 */ "..........",
+
+ // Connectors:
+ "-1: 9, 1, 3: 5\n" /* Type -1, direction X+ */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // SinglePlantBed
+
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // WoodenChurchMid:
+ // The data has been exported from the gallery Plains, area index 58, ID 109, created by Aloe_vera
+ {
+ // Size:
+ 7, 16, 13, // SizeX = 7, SizeY = 16, SizeZ = 13
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 6, 15, 12, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "A: 54: 2\n" /* chest */
+ "B: 50: 4\n" /* torch */
+ "C: 85: 0\n" /* fence */
+ "D:126: 8\n" /* woodenslab */
+ "a: 3: 0\n" /* dirt */
+ "b: 2: 0\n" /* grass */
+ "c: 67: 0\n" /* stairs */
+ "d: 67: 2\n" /* stairs */
+ "e: 67: 1\n" /* stairs */
+ "f: 4: 0\n" /* cobblestone */
+ "g: 17: 0\n" /* tree */
+ "h: 5: 0\n" /* wood */
+ "i: 64: 7\n" /* wooddoorblock */
+ "j: 65: 3\n" /* ladder */
+ "k: 53: 3\n" /* woodstairs */
+ "l: 53: 7\n" /* woodstairs */
+ "m: 19: 0\n" /* sponge */
+ "n: 64:12\n" /* wooddoorblock */
+ "o:102: 0\n" /* glasspane */
+ "p: 50: 1\n" /* torch */
+ "q: 50: 2\n" /* torch */
+ "r:171:14\n" /* carpet */
+ "s: 50: 3\n" /* torch */
+ "t: 53: 2\n" /* woodstairs */
+ "u: 53: 0\n" /* woodstairs */
+ "v: 53: 1\n" /* woodstairs */
+ "w: 53: 5\n" /* woodstairs */
+ "x: 53: 4\n" /* woodstairs */
+ "y: 17: 4\n" /* tree */
+ "z: 17: 8\n" /* tree */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 0123456 */
+ /* 0 */ "aaaaaaa"
+ /* 1 */ "aaaaaaa"
+ /* 2 */ "aaaaaaa"
+ /* 3 */ "aaaaaaa"
+ /* 4 */ "aaaaaaa"
+ /* 5 */ "aaaaaaa"
+ /* 6 */ "aaaaaaa"
+ /* 7 */ "aaaaaaa"
+ /* 8 */ "aaaaaaa"
+ /* 9 */ "aaaaaaa"
+ /* 10 */ "aaaaaaa"
+ /* 11 */ "aaaaaaa"
+ /* 12 */ "aaaaaaa"
+
+ // Level 1
+ /* z\x* 0123456 */
+ /* 0 */ "bbaaabb"
+ /* 1 */ "baaaaab"
+ /* 2 */ "baaaaab"
+ /* 3 */ "baaaaab"
+ /* 4 */ "baaaaab"
+ /* 5 */ "baaaaab"
+ /* 6 */ "baaaaab"
+ /* 7 */ "baaaaab"
+ /* 8 */ "baaaaab"
+ /* 9 */ "baaaaab"
+ /* 10 */ "baaaaab"
+ /* 11 */ "baaaaab"
+ /* 12 */ "bbbbbbb"
+
+ // Level 2
+ /* z\x* 0123456 */
+ /* 0 */ "..cde.."
+ /* 1 */ ".fffff."
+ /* 2 */ ".fffff."
+ /* 3 */ ".fffff."
+ /* 4 */ ".fffff."
+ /* 5 */ ".fffff."
+ /* 6 */ ".fffff."
+ /* 7 */ ".fffff."
+ /* 8 */ ".fffff."
+ /* 9 */ ".fffff."
+ /* 10 */ ".fffff."
+ /* 11 */ ".fffff."
+ /* 12 */ "......."
+
+ // Level 3
+ /* z\x* 0123456 */
+ /* 0 */ "......."
+ /* 1 */ ".ghihg."
+ /* 2 */ ".h..jh."
+ /* 3 */ ".h...h."
+ /* 4 */ ".h...h."
+ /* 5 */ ".gk.kg."
+ /* 6 */ ".h...h."
+ /* 7 */ ".hk.kh."
+ /* 8 */ ".h...h."
+ /* 9 */ ".h.l.h."
+ /* 10 */ ".h...h."
+ /* 11 */ ".ghhhg."
+ /* 12 */ "......."
+
+ // Level 4
+ /* z\x* 0123456 */
+ /* 0 */ "......."
+ /* 1 */ ".ghnhg."
+ /* 2 */ ".o..jo."
+ /* 3 */ ".o...o."
+ /* 4 */ ".o...o."
+ /* 5 */ ".g...g."
+ /* 6 */ ".o...o."
+ /* 7 */ ".o...o."
+ /* 8 */ ".hp.qh."
+ /* 9 */ ".o.r.o."
+ /* 10 */ ".o...o."
+ /* 11 */ ".gooog."
+ /* 12 */ "......."
+
+ // Level 5
+ /* z\x* 0123456 */
+ /* 0 */ "......."
+ /* 1 */ ".ghhhg."
+ /* 2 */ ".h.sjh."
+ /* 3 */ ".h...h."
+ /* 4 */ ".h...h."
+ /* 5 */ "tg...gt"
+ /* 6 */ "uh...hv"
+ /* 7 */ "uh...hv"
+ /* 8 */ "uh...hv"
+ /* 9 */ "uh...hv"
+ /* 10 */ "uh...hv"
+ /* 11 */ "ughhhhv"
+ /* 12 */ "uw...xv"
+
+ // Level 6
+ /* z\x* 0123456 */
+ /* 0 */ "......."
+ /* 1 */ ".gyyyg."
+ /* 2 */ ".zhhjz."
+ /* 3 */ ".zhhhz."
+ /* 4 */ ".zhhhz."
+ /* 5 */ ".gyyyg."
+ /* 6 */ ".uh.hv."
+ /* 7 */ ".uh.hv."
+ /* 8 */ ".uh.hv."
+ /* 9 */ ".uh.hv."
+ /* 10 */ ".uh.hv."
+ /* 11 */ ".uhhhv."
+ /* 12 */ ".uw.xv."
+
+ // Level 7
+ /* z\x* 0123456 */
+ /* 0 */ "......."
+ /* 1 */ ".ghohg."
+ /* 2 */ ".h..jh."
+ /* 3 */ ".h...h."
+ /* 4 */ ".h.A.h."
+ /* 5 */ ".ghhhg."
+ /* 6 */ "..uhv.."
+ /* 7 */ "..uhv.."
+ /* 8 */ "..uhv.."
+ /* 9 */ "..uhv.."
+ /* 10 */ "..uhv.."
+ /* 11 */ "..uhv.."
+ /* 12 */ "..uhv.."
+
+ // Level 8
+ /* z\x* 0123456 */
+ /* 0 */ "......."
+ /* 1 */ ".ghohg."
+ /* 2 */ ".h..jh."
+ /* 3 */ ".o...o."
+ /* 4 */ ".h...h."
+ /* 5 */ ".ghhhg."
+ /* 6 */ "......."
+ /* 7 */ "......."
+ /* 8 */ "......."
+ /* 9 */ "......."
+ /* 10 */ "......."
+ /* 11 */ "......."
+ /* 12 */ "......."
+
+ // Level 9
+ /* z\x* 0123456 */
+ /* 0 */ "......."
+ /* 1 */ ".ghohg."
+ /* 2 */ ".h..jh."
+ /* 3 */ ".h...h."
+ /* 4 */ ".h.B.h."
+ /* 5 */ ".ghhhg."
+ /* 6 */ "......."
+ /* 7 */ "......."
+ /* 8 */ "......."
+ /* 9 */ "......."
+ /* 10 */ "......."
+ /* 11 */ "......."
+ /* 12 */ "......."
+
+ // Level 10
+ /* z\x* 0123456 */
+ /* 0 */ "......."
+ /* 1 */ ".gyyyg."
+ /* 2 */ ".zhhjz."
+ /* 3 */ ".zhhhz."
+ /* 4 */ ".zhhhz."
+ /* 5 */ ".gyyyg."
+ /* 6 */ "......."
+ /* 7 */ "......."
+ /* 8 */ "......."
+ /* 9 */ "......."
+ /* 10 */ "......."
+ /* 11 */ "......."
+ /* 12 */ "......."
+
+ // Level 11
+ /* z\x* 0123456 */
+ /* 0 */ "......."
+ /* 1 */ ".gCCCg."
+ /* 2 */ ".C...C."
+ /* 3 */ ".C...C."
+ /* 4 */ ".C...C."
+ /* 5 */ ".gCCCg."
+ /* 6 */ "......."
+ /* 7 */ "......."
+ /* 8 */ "......."
+ /* 9 */ "......."
+ /* 10 */ "......."
+ /* 11 */ "......."
+ /* 12 */ "......."
+
+ // Level 12
+ /* z\x* 0123456 */
+ /* 0 */ "......."
+ /* 1 */ ".g...g."
+ /* 2 */ "......."
+ /* 3 */ "......."
+ /* 4 */ "......."
+ /* 5 */ ".g...g."
+ /* 6 */ "......."
+ /* 7 */ "......."
+ /* 8 */ "......."
+ /* 9 */ "......."
+ /* 10 */ "......."
+ /* 11 */ "......."
+ /* 12 */ "......."
+
+ // Level 13
+ /* z\x* 0123456 */
+ /* 0 */ "uw...xv"
+ /* 1 */ "ughhhgv"
+ /* 2 */ "uhDDDhv"
+ /* 3 */ "uhDDDhv"
+ /* 4 */ "uhDDDhv"
+ /* 5 */ "uhhhhhv"
+ /* 6 */ "uw...xv"
+ /* 7 */ "......."
+ /* 8 */ "......."
+ /* 9 */ "......."
+ /* 10 */ "......."
+ /* 11 */ "......."
+ /* 12 */ "......."
+
+ // Level 14
+ /* z\x* 0123456 */
+ /* 0 */ ".uw.xv."
+ /* 1 */ ".uhhhv."
+ /* 2 */ ".uhhhv."
+ /* 3 */ ".uhhhv."
+ /* 4 */ ".uhhhv."
+ /* 5 */ ".uhhhv."
+ /* 6 */ ".uw.xv."
+ /* 7 */ "......."
+ /* 8 */ "......."
+ /* 9 */ "......."
+ /* 10 */ "......."
+ /* 11 */ "......."
+ /* 12 */ "......."
+
+ // Level 15
+ /* z\x* 0123456 */
+ /* 0 */ "..uhv.."
+ /* 1 */ "..uhv.."
+ /* 2 */ "..uhv.."
+ /* 3 */ "..uhv.."
+ /* 4 */ "..uhv.."
+ /* 5 */ "..uhv.."
+ /* 6 */ "..uhv.."
+ /* 7 */ "......."
+ /* 8 */ "......."
+ /* 9 */ "......."
+ /* 10 */ "......."
+ /* 11 */ "......."
+ /* 12 */ ".......",
+
+ // Connectors:
+ "-1: 3, 2, 0: 2\n" /* Type -1, direction Z- */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 20,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // WoodenChurchMid
+
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // WoodenGranary:
+ // The data has been exported from the gallery Plains, area index 54, ID 105, created by Aloe_vera
+ {
+ // Size:
+ 7, 8, 9, // SizeX = 7, SizeY = 8, SizeZ = 9
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 6, 7, 8, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a: 3: 0\n" /* dirt */
+ "b: 2: 0\n" /* grass */
+ "c:170: 0\n" /* haybale */
+ "d: 67: 0\n" /* stairs */
+ "e: 67: 2\n" /* stairs */
+ "f: 67: 1\n" /* stairs */
+ "g: 4: 0\n" /* cobblestone */
+ "h: 17: 0\n" /* tree */
+ "i: 5: 0\n" /* wood */
+ "j:170: 4\n" /* haybale */
+ "k:170: 8\n" /* haybale */
+ "l: 54: 2\n" /* chest */
+ "m: 19: 0\n" /* sponge */
+ "n: 50: 4\n" /* torch */
+ "o: 53: 0\n" /* woodstairs */
+ "p: 53: 5\n" /* woodstairs */
+ "q: 53: 4\n" /* woodstairs */
+ "r: 53: 1\n" /* woodstairs */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 0123456 */
+ /* 0 */ "aaaaaaa"
+ /* 1 */ "aaaaaaa"
+ /* 2 */ "aaaaaaa"
+ /* 3 */ "aaaaaaa"
+ /* 4 */ "aaaaaaa"
+ /* 5 */ "aaaaaaa"
+ /* 6 */ "aaaaaaa"
+ /* 7 */ "aaaaaaa"
+ /* 8 */ "aaaaaaa"
+
+ // Level 1
+ /* z\x* 0123456 */
+ /* 0 */ "aaaaaab"
+ /* 1 */ "baaaaab"
+ /* 2 */ "baaaaab"
+ /* 3 */ "baaaaab"
+ /* 4 */ "baaaaab"
+ /* 5 */ "baaaaab"
+ /* 6 */ "baaaaab"
+ /* 7 */ "baaaaab"
+ /* 8 */ "bbbbbbb"
+
+ // Level 2
+ /* z\x* 0123456 */
+ /* 0 */ "cdeeef."
+ /* 1 */ ".ggggg."
+ /* 2 */ ".ggggg."
+ /* 3 */ ".ggggg."
+ /* 4 */ ".ggggg."
+ /* 5 */ ".ggggg."
+ /* 6 */ ".ggggg."
+ /* 7 */ ".ggggg."
+ /* 8 */ "......."
+
+ // Level 3
+ /* z\x* 0123456 */
+ /* 0 */ "......."
+ /* 1 */ ".h..ch."
+ /* 2 */ ".i...i."
+ /* 3 */ ".ic.ji."
+ /* 4 */ ".hkjkh."
+ /* 5 */ ".iccci."
+ /* 6 */ ".iklci."
+ /* 7 */ ".hihih."
+ /* 8 */ "......."
+
+ // Level 4
+ /* z\x* 0123456 */
+ /* 0 */ ".n...n."
+ /* 1 */ ".h...h."
+ /* 2 */ ".i...i."
+ /* 3 */ ".i...i."
+ /* 4 */ ".hj..h."
+ /* 5 */ ".ijkci."
+ /* 6 */ ".ijkki."
+ /* 7 */ ".hihih."
+ /* 8 */ "......."
+
+ // Level 5
+ /* z\x* 0123456 */
+ /* 0 */ "op...qr"
+ /* 1 */ "oiiiiir"
+ /* 2 */ "oi...ir"
+ /* 3 */ "oi...ir"
+ /* 4 */ "oi...ir"
+ /* 5 */ "oicc.ir"
+ /* 6 */ "oikckir"
+ /* 7 */ "oiiiiir"
+ /* 8 */ "op...qr"
+
+ // Level 6
+ /* z\x* 0123456 */
+ /* 0 */ ".op.qr."
+ /* 1 */ ".oiiir."
+ /* 2 */ ".oi.ir."
+ /* 3 */ ".oi.ir."
+ /* 4 */ ".oi.ir."
+ /* 5 */ ".oi.ir."
+ /* 6 */ ".oi.ir."
+ /* 7 */ ".oiiir."
+ /* 8 */ ".op.qr."
+
+ // Level 7
+ /* z\x* 0123456 */
+ /* 0 */ "..oir.."
+ /* 1 */ "..oir.."
+ /* 2 */ "..oir.."
+ /* 3 */ "..oir.."
+ /* 4 */ "..oir.."
+ /* 5 */ "..oir.."
+ /* 6 */ "..oir.."
+ /* 7 */ "..oir.."
+ /* 8 */ "..oir..",
+
+ // Connectors:
+ "-1: 3, 2, -1: 2\n" /* Type -1, direction Z- */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // WoodenGranary
+
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // WoodenHouse10x7Library:
+ // The data has been exported from the gallery Plains, area index 47, ID 98, created by Aloe_vera
+ {
+ // Size:
+ 12, 9, 9, // SizeX = 12, SizeY = 9, SizeZ = 9
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 11, 8, 8, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a: 3: 0\n" /* dirt */
+ "b: 2: 0\n" /* grass */
+ "c: 67: 0\n" /* stairs */
+ "d: 67: 2\n" /* stairs */
+ "e: 67: 1\n" /* stairs */
+ "f: 4: 0\n" /* cobblestone */
+ "g: 17: 0\n" /* tree */
+ "h: 5: 0\n" /* wood */
+ "i: 64: 7\n" /* wooddoorblock */
+ "j: 64: 5\n" /* wooddoorblock */
+ "k: 53: 3\n" /* woodstairs */
+ "l: 85: 0\n" /* fence */
+ "m: 19: 0\n" /* sponge */
+ "n: 53: 2\n" /* woodstairs */
+ "o: 53: 1\n" /* woodstairs */
+ "p: 53: 0\n" /* woodstairs */
+ "q:102: 0\n" /* glasspane */
+ "r: 64:12\n" /* wooddoorblock */
+ "s: 50: 3\n" /* torch */
+ "t: 72: 0\n" /* woodplate */
+ "u: 53: 7\n" /* woodstairs */
+ "v: 47: 0\n" /* bookshelf */
+ "w: 50: 1\n" /* torch */
+ "x: 50: 2\n" /* torch */
+ "y: 53: 6\n" /* woodstairs */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 11 */
+ /* * 012345678901 */
+ /* 0 */ "aaaaaaaaaaaa"
+ /* 1 */ "aaaaaaaaaaaa"
+ /* 2 */ "aaaaaaaaaaaa"
+ /* 3 */ "aaaaaaaaaaaa"
+ /* 4 */ "aaaaaaaaaaaa"
+ /* 5 */ "aaaaaaaaaaaa"
+ /* 6 */ "aaaaaaaaaaaa"
+ /* 7 */ "aaaaaaaaaaaa"
+ /* 8 */ "aaaaaaaaaaaa"
+
+ // Level 1
+ /* z\x* 11 */
+ /* * 012345678901 */
+ /* 0 */ "bbbbaaaabbbb"
+ /* 1 */ "baaaaaaaaaab"
+ /* 2 */ "baaaaaaaaaab"
+ /* 3 */ "baaaaaaaaaab"
+ /* 4 */ "baaaaaaaaaab"
+ /* 5 */ "baaaaaaaaaab"
+ /* 6 */ "baaaaaaaaaab"
+ /* 7 */ "baaaaaaaaaab"
+ /* 8 */ "bbbbbbbbbbbb"
+
+ // Level 2
+ /* z\x* 11 */
+ /* * 012345678901 */
+ /* 0 */ "....cdde...."
+ /* 1 */ ".ffffffffff."
+ /* 2 */ ".ffffffffff."
+ /* 3 */ ".ffffffffff."
+ /* 4 */ ".ffffffffff."
+ /* 5 */ ".ffffffffff."
+ /* 6 */ ".ffffffffff."
+ /* 7 */ ".ffffffffff."
+ /* 8 */ "............"
+
+ // Level 3
+ /* z\x* 11 */
+ /* * 012345678901 */
+ /* 0 */ "............"
+ /* 1 */ ".ghhhijhhhg."
+ /* 2 */ ".h........h."
+ /* 3 */ ".hk......kh."
+ /* 4 */ ".hl......lh."
+ /* 5 */ ".hn......nh."
+ /* 6 */ ".h.olpolp.h."
+ /* 7 */ ".ghhhhhhhhg."
+ /* 8 */ "............"
+
+ // Level 4
+ /* z\x* 11 */
+ /* * 012345678901 */
+ /* 0 */ "............"
+ /* 1 */ ".gqqhrrhqqg."
+ /* 2 */ ".q..s..s..q."
+ /* 3 */ ".q........q."
+ /* 4 */ ".ht......th."
+ /* 5 */ ".q........q."
+ /* 6 */ ".q..t..t..q."
+ /* 7 */ ".gqqhqqhqqg."
+ /* 8 */ "............"
+
+ // Level 5
+ /* z\x* 11 */
+ /* * 012345678901 */
+ /* 0 */ "nnnnnnnnnnnn"
+ /* 1 */ "uhhhhhhhhhhu"
+ /* 2 */ ".hvvvvvvvvh."
+ /* 3 */ ".h........h."
+ /* 4 */ ".hw......xh."
+ /* 5 */ ".h........h."
+ /* 6 */ ".hvvvvvvvvh."
+ /* 7 */ "yhhhhhhhhhhy"
+ /* 8 */ "kkkkkkkkkkkk"
+
+ // Level 6
+ /* z\x* 11 */
+ /* * 012345678901 */
+ /* 0 */ "............"
+ /* 1 */ "nnnnnnnnnnnn"
+ /* 2 */ "uhhhhhhhhhhu"
+ /* 3 */ ".hvvvvvvvvh."
+ /* 4 */ ".h........h."
+ /* 5 */ ".hvvvvvvvvh."
+ /* 6 */ "yhhhhhhhhhhy"
+ /* 7 */ "kkkkkkkkkkkk"
+ /* 8 */ "............"
+
+ // Level 7
+ /* z\x* 11 */
+ /* * 012345678901 */
+ /* 0 */ "............"
+ /* 1 */ "............"
+ /* 2 */ "nnnnnnnnnnnn"
+ /* 3 */ "uhhhhhhhhhhu"
+ /* 4 */ ".h........h."
+ /* 5 */ "yhhhhhhhhhhy"
+ /* 6 */ "kkkkkkkkkkkk"
+ /* 7 */ "............"
+ /* 8 */ "............"
+
+ // Level 8
+ /* z\x* 11 */
+ /* * 012345678901 */
+ /* 0 */ "............"
+ /* 1 */ "............"
+ /* 2 */ "............"
+ /* 3 */ "nnnnnnnnnnnn"
+ /* 4 */ "hhhhhhhhhhhh"
+ /* 5 */ "kkkkkkkkkkkk"
+ /* 6 */ "............"
+ /* 7 */ "............"
+ /* 8 */ "............",
+
+ // Connectors:
+ "-1: 5, 2, 0: 2\n" /* Type -1, direction Z- */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // WoodenHouse10x7Library
+
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // WoodenHouse5x5:
+ // The data has been exported from the gallery Plains, area index 49, ID 100, created by Aloe_vera
+ {
+ // Size:
+ 7, 8, 7, // SizeX = 7, SizeY = 8, SizeZ = 7
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 6, 7, 6, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a: 3: 0\n" /* dirt */
+ "b: 2: 0\n" /* grass */
+ "c: 67: 0\n" /* stairs */
+ "d: 67: 2\n" /* stairs */
+ "e: 67: 1\n" /* stairs */
+ "f: 4: 0\n" /* cobblestone */
+ "g: 17: 0\n" /* tree */
+ "h: 5: 0\n" /* wood */
+ "i: 64: 7\n" /* wooddoorblock */
+ "j: 64:12\n" /* wooddoorblock */
+ "k:102: 0\n" /* glasspane */
+ "l: 53: 2\n" /* woodstairs */
+ "m: 19: 0\n" /* sponge */
+ "n: 53: 7\n" /* woodstairs */
+ "o: 50: 3\n" /* torch */
+ "p: 53: 6\n" /* woodstairs */
+ "q: 53: 3\n" /* woodstairs */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 0123456 */
+ /* 0 */ "aaaaaaa"
+ /* 1 */ "aaaaaaa"
+ /* 2 */ "aaaaaaa"
+ /* 3 */ "aaaaaaa"
+ /* 4 */ "aaaaaaa"
+ /* 5 */ "aaaaaaa"
+ /* 6 */ "aaaaaaa"
+
+ // Level 1
+ /* z\x* 0123456 */
+ /* 0 */ "bbaaabb"
+ /* 1 */ "baaaaab"
+ /* 2 */ "baaaaab"
+ /* 3 */ "baaaaab"
+ /* 4 */ "baaaaab"
+ /* 5 */ "baaaaab"
+ /* 6 */ "bbbbbbb"
+
+ // Level 2
+ /* z\x* 0123456 */
+ /* 0 */ "..cde.."
+ /* 1 */ ".fffff."
+ /* 2 */ ".fffff."
+ /* 3 */ ".fffff."
+ /* 4 */ ".fffff."
+ /* 5 */ ".fffff."
+ /* 6 */ "......."
+
+ // Level 3
+ /* z\x* 0123456 */
+ /* 0 */ "......."
+ /* 1 */ ".ghihg."
+ /* 2 */ ".h...h."
+ /* 3 */ ".h...h."
+ /* 4 */ ".h...h."
+ /* 5 */ ".ghhhg."
+ /* 6 */ "......."
+
+ // Level 4
+ /* z\x* 0123456 */
+ /* 0 */ "......."
+ /* 1 */ ".ghjhg."
+ /* 2 */ ".k...k."
+ /* 3 */ ".k...k."
+ /* 4 */ ".k...k."
+ /* 5 */ ".gkkkg."
+ /* 6 */ "......."
+
+ // Level 5
+ /* z\x* 0123456 */
+ /* 0 */ "lllllll"
+ /* 1 */ "nhhhhhn"
+ /* 2 */ ".ho.oh."
+ /* 3 */ ".h...h."
+ /* 4 */ ".h...h."
+ /* 5 */ "phhhhhp"
+ /* 6 */ "qqqqqqq"
+
+ // Level 6
+ /* z\x* 0123456 */
+ /* 0 */ "......."
+ /* 1 */ "lllllll"
+ /* 2 */ "nhhhhhn"
+ /* 3 */ ".h...h."
+ /* 4 */ "phhhhhp"
+ /* 5 */ "qqqqqqq"
+ /* 6 */ "......."
+
+ // Level 7
+ /* z\x* 0123456 */
+ /* 0 */ "......."
+ /* 1 */ "......."
+ /* 2 */ "lllllll"
+ /* 3 */ "hhhhhhh"
+ /* 4 */ "qqqqqqq"
+ /* 5 */ "......."
+ /* 6 */ ".......",
+
+ // Connectors:
+ "-1: 3, 2, 0: 2\n" /* Type -1, direction Z- */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // WoodenHouse5x5
+
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // WoodenHouse7x5:
+ // The data has been exported from the gallery Plains, area index 40, ID 91, created by xoft
+ {
+ // Size:
+ 9, 8, 7, // SizeX = 9, SizeY = 8, SizeZ = 7
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 8, 7, 6, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a: 3: 0\n" /* dirt */
+ "b: 2: 0\n" /* grass */
+ "c: 67: 0\n" /* stairs */
+ "d: 67: 2\n" /* stairs */
+ "e: 67: 1\n" /* stairs */
+ "f: 4: 0\n" /* cobblestone */
+ "g: 17: 0\n" /* tree */
+ "h: 5: 0\n" /* wood */
+ "i: 64: 7\n" /* wooddoorblock */
+ "j:102: 0\n" /* glasspane */
+ "k: 64:12\n" /* wooddoorblock */
+ "l: 53: 2\n" /* woodstairs */
+ "m: 19: 0\n" /* sponge */
+ "n: 53: 7\n" /* woodstairs */
+ "o: 50: 3\n" /* torch */
+ "p: 53: 6\n" /* woodstairs */
+ "q: 53: 3\n" /* woodstairs */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 012345678 */
+ /* 0 */ "aaaaaaaaa"
+ /* 1 */ "aaaaaaaaa"
+ /* 2 */ "aaaaaaaaa"
+ /* 3 */ "aaaaaaaaa"
+ /* 4 */ "aaaaaaaaa"
+ /* 5 */ "aaaaaaaaa"
+ /* 6 */ "aaaaaaaaa"
+
+ // Level 1
+ /* z\x* 012345678 */
+ /* 0 */ "bbbaaabbb"
+ /* 1 */ "baaaaaaab"
+ /* 2 */ "baaaaaaab"
+ /* 3 */ "baaaaaaab"
+ /* 4 */ "baaaaaaab"
+ /* 5 */ "baaaaaaab"
+ /* 6 */ "bbbbbbbbb"
+
+ // Level 2
+ /* z\x* 012345678 */
+ /* 0 */ "...cde..."
+ /* 1 */ ".fffffff."
+ /* 2 */ ".fffffff."
+ /* 3 */ ".fffffff."
+ /* 4 */ ".fffffff."
+ /* 5 */ ".fffffff."
+ /* 6 */ "........."
+
+ // Level 3
+ /* z\x* 012345678 */
+ /* 0 */ "........."
+ /* 1 */ ".ghhihhg."
+ /* 2 */ ".h.....h."
+ /* 3 */ ".h.....h."
+ /* 4 */ ".h.....h."
+ /* 5 */ ".ghhhhhg."
+ /* 6 */ "........."
+
+ // Level 4
+ /* z\x* 012345678 */
+ /* 0 */ "........."
+ /* 1 */ ".gjhkhjg."
+ /* 2 */ ".j.....j."
+ /* 3 */ ".j.....j."
+ /* 4 */ ".j.....j."
+ /* 5 */ ".gjjhjjg."
+ /* 6 */ "........."
+
+ // Level 5
+ /* z\x* 012345678 */
+ /* 0 */ "lllllllll"
+ /* 1 */ "nghhhhhgn"
+ /* 2 */ ".h.o.o.h."
+ /* 3 */ ".h.....h."
+ /* 4 */ ".h.....h."
+ /* 5 */ "pghhhhhgp"
+ /* 6 */ "qqqqqqqqq"
+
+ // Level 6
+ /* z\x* 012345678 */
+ /* 0 */ "........."
+ /* 1 */ "lllllllll"
+ /* 2 */ "nhhhhhhhn"
+ /* 3 */ ".h.....h."
+ /* 4 */ "phhhhhhhp"
+ /* 5 */ "qqqqqqqqq"
+ /* 6 */ "........."
+
+ // Level 7
+ /* z\x* 012345678 */
+ /* 0 */ "........."
+ /* 1 */ "........."
+ /* 2 */ "lllllllll"
+ /* 3 */ "hhhhhhhhh"
+ /* 4 */ "qqqqqqqqq"
+ /* 5 */ "........."
+ /* 6 */ ".........",
+
+ // Connectors:
+ "-1: 4, 2, -1: 2\n" /* Type -1, direction Z- */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // WoodenHouse7x5
+
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // WoodenHouse9x5:
+ // The data has been exported from the gallery Plains, area index 41, ID 92, created by xoft
+ {
+ // Size:
+ 11, 8, 7, // SizeX = 11, SizeY = 8, SizeZ = 7
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 10, 7, 6, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a: 3: 0\n" /* dirt */
+ "b: 2: 0\n" /* grass */
+ "c: 67: 0\n" /* stairs */
+ "d: 67: 2\n" /* stairs */
+ "e: 67: 1\n" /* stairs */
+ "f: 4: 0\n" /* cobblestone */
+ "g: 17: 0\n" /* tree */
+ "h: 5: 0\n" /* wood */
+ "i: 64: 7\n" /* wooddoorblock */
+ "j:102: 0\n" /* glasspane */
+ "k: 64:12\n" /* wooddoorblock */
+ "l: 53: 2\n" /* woodstairs */
+ "m: 19: 0\n" /* sponge */
+ "n: 53: 7\n" /* woodstairs */
+ "o: 50: 3\n" /* torch */
+ "p: 53: 6\n" /* woodstairs */
+ "q: 53: 3\n" /* woodstairs */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "aaaaaaaaaaa"
+ /* 1 */ "aaaaaaaaaaa"
+ /* 2 */ "aaaaaaaaaaa"
+ /* 3 */ "aaaaaaaaaaa"
+ /* 4 */ "aaaaaaaaaaa"
+ /* 5 */ "aaaaaaaaaaa"
+ /* 6 */ "aaaaaaaaaaa"
+
+ // Level 1
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "bbbbaaabbbb"
+ /* 1 */ "baaaaaaaaab"
+ /* 2 */ "baaaaaaaaab"
+ /* 3 */ "baaaaaaaaab"
+ /* 4 */ "baaaaaaaaab"
+ /* 5 */ "baaaaaaaaab"
+ /* 6 */ "bbbbbbbbbbb"
+
+ // Level 2
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "....cde...."
+ /* 1 */ ".fffffffff."
+ /* 2 */ ".fffffffff."
+ /* 3 */ ".fffffffff."
+ /* 4 */ ".fffffffff."
+ /* 5 */ ".fffffffff."
+ /* 6 */ "..........."
+
+ // Level 3
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ ".ghhhihhhg."
+ /* 2 */ ".h.......h."
+ /* 3 */ ".h.......h."
+ /* 4 */ ".h.......h."
+ /* 5 */ ".ghhhhhhhg."
+ /* 6 */ "..........."
+
+ // Level 4
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ ".gjjhkhjjg."
+ /* 2 */ ".j.......j."
+ /* 3 */ ".j.......j."
+ /* 4 */ ".j.......j."
+ /* 5 */ ".gjjjhjjjg."
+ /* 6 */ "..........."
+
+ // Level 5
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "lllllllllll"
+ /* 1 */ "nhhhhhhhhhn"
+ /* 2 */ ".h..o.o.hh."
+ /* 3 */ ".h......hh."
+ /* 4 */ ".h......hh."
+ /* 5 */ "phhhhhhhhhp"
+ /* 6 */ "qqqqqqqqqqq"
+
+ // Level 6
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ "lllllllllll"
+ /* 2 */ "nhhhhhhhhhn"
+ /* 3 */ ".hhhhhhhhh."
+ /* 4 */ "phhhhhhhhhp"
+ /* 5 */ "qqqqqqqqqqq"
+ /* 6 */ "..........."
+
+ // Level 7
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ "..........."
+ /* 2 */ "lllllllllll"
+ /* 3 */ "hhhhhhhhhhh"
+ /* 4 */ "qqqqqqqqqqq"
+ /* 5 */ "..........."
+ /* 6 */ "...........",
+
+ // Connectors:
+ "-1: 5, 2, -1: 2\n" /* Type -1, direction Z- */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // WoodenHouse9x5
+
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // WoodenHouse9x5:
+ // The data has been exported from the gallery Plains, area index 46, ID 97, created by Aloe_vera
+ {
+ // Size:
+ 11, 8, 7, // SizeX = 11, SizeY = 8, SizeZ = 7
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 10, 7, 6, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a: 3: 0\n" /* dirt */
+ "b: 2: 0\n" /* grass */
+ "c: 67: 0\n" /* stairs */
+ "d: 67: 2\n" /* stairs */
+ "e: 67: 1\n" /* stairs */
+ "f: 4: 0\n" /* cobblestone */
+ "g: 17: 0\n" /* tree */
+ "h: 5: 0\n" /* wood */
+ "i: 64: 7\n" /* wooddoorblock */
+ "j: 53: 3\n" /* woodstairs */
+ "k: 85: 0\n" /* fence */
+ "l: 53: 2\n" /* woodstairs */
+ "m: 19: 0\n" /* sponge */
+ "n: 53: 1\n" /* woodstairs */
+ "o: 53: 0\n" /* woodstairs */
+ "p:102: 0\n" /* glasspane */
+ "q: 64:12\n" /* wooddoorblock */
+ "r: 50: 3\n" /* torch */
+ "s: 72: 0\n" /* woodplate */
+ "t: 53: 7\n" /* woodstairs */
+ "u: 47: 0\n" /* bookshelf */
+ "v: 50: 1\n" /* torch */
+ "w: 50: 2\n" /* torch */
+ "x: 53: 6\n" /* woodstairs */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "aaaaaaaaaaa"
+ /* 1 */ "aaaaaaaaaaa"
+ /* 2 */ "aaaaaaaaaaa"
+ /* 3 */ "aaaaaaaaaaa"
+ /* 4 */ "aaaaaaaaaaa"
+ /* 5 */ "aaaaaaaaaaa"
+ /* 6 */ "aaaaaaaaaaa"
+
+ // Level 1
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "bbbbaaabbbb"
+ /* 1 */ "baaaaaaaaab"
+ /* 2 */ "baaaaaaaaab"
+ /* 3 */ "baaaaaaaaab"
+ /* 4 */ "baaaaaaaaab"
+ /* 5 */ "baaaaaaaaab"
+ /* 6 */ "bbbbbbbbbbb"
+
+ // Level 2
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "....cde...."
+ /* 1 */ ".fffffffff."
+ /* 2 */ ".fffffffff."
+ /* 3 */ ".fffffffff."
+ /* 4 */ ".fffffffff."
+ /* 5 */ ".fffffffff."
+ /* 6 */ "..........."
+
+ // Level 3
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ ".ghhhihhhg."
+ /* 2 */ ".hj.....jh."
+ /* 3 */ ".hk.....kh."
+ /* 4 */ ".hl.nko.lh."
+ /* 5 */ ".ghhhhhhhg."
+ /* 6 */ "..........."
+
+ // Level 4
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ ".gpphqhppg."
+ /* 2 */ ".p..r.r..p."
+ /* 3 */ ".ps.....sp."
+ /* 4 */ ".p...s...p."
+ /* 5 */ ".gppphpppg."
+ /* 6 */ "..........."
+
+ // Level 5
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "lllllllllll"
+ /* 1 */ "thhhhhhhhht"
+ /* 2 */ ".huuuuuuuh."
+ /* 3 */ ".hv.....wh."
+ /* 4 */ ".huuuuuuuh."
+ /* 5 */ "xhhhhhhhhhx"
+ /* 6 */ "jjjjjjjjjjj"
+
+ // Level 6
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ "lllllllllll"
+ /* 2 */ "thhhhhhhhht"
+ /* 3 */ ".h.......h."
+ /* 4 */ "xhhhhhhhhhx"
+ /* 5 */ "jjjjjjjjjjj"
+ /* 6 */ "..........."
+
+ // Level 7
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ "..........."
+ /* 2 */ "lllllllllll"
+ /* 3 */ "hhhhhhhhhhh"
+ /* 4 */ "jjjjjjjjjjj"
+ /* 5 */ "..........."
+ /* 6 */ "...........",
+
+ // Connectors:
+ "-1: 5, 2, 0: 2\n" /* Type -1, direction Z- */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // WoodenHouse9x5
+
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // WoodenHouse9x5Fence:
+ // The data has been exported from the gallery Plains, area index 9, ID 26, created by Aloe_vera
+ {
+ // Size:
+ 10, 8, 11, // SizeX = 10, SizeY = 8, SizeZ = 11
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 9, 7, 10, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a: 3: 0\n" /* dirt */
+ "b: 2: 0\n" /* grass */
+ "c: 4: 0\n" /* cobblestone */
+ "d: 5: 0\n" /* wood */
+ "e: 67: 2\n" /* stairs */
+ "f: 43: 0\n" /* doubleslab */
+ "g: 67: 0\n" /* stairs */
+ "h: 67: 3\n" /* stairs */
+ "i: 17: 0\n" /* tree */
+ "j: 53: 1\n" /* woodstairs */
+ "k: 85: 0\n" /* fence */
+ "l: 53: 0\n" /* woodstairs */
+ "m: 19: 0\n" /* sponge */
+ "n: 64: 6\n" /* wooddoorblock */
+ "o: 64: 0\n" /* wooddoorblock */
+ "p:102: 0\n" /* glasspane */
+ "q: 72: 0\n" /* woodplate */
+ "r: 64:12\n" /* wooddoorblock */
+ "s: 64: 8\n" /* wooddoorblock */
+ "t: 53: 5\n" /* woodstairs */
+ "u: 53: 4\n" /* woodstairs */
+ "v: 50: 1\n" /* torch */
+ "w: 50: 2\n" /* torch */,
+
+ // Block data:
+ // Level 0
+ /* z\x* */
+ /* * 0123456789 */
+ /* 0 */ "aaaaaaaaaa"
+ /* 1 */ "aaaaaaaaaa"
+ /* 2 */ "aaaaaaaaaa"
+ /* 3 */ "aaaaaaaaaa"
+ /* 4 */ "aaaaaaaaaa"
+ /* 5 */ "aaaaaaaaaa"
+ /* 6 */ "aaaaaaaaaa"
+ /* 7 */ "aaaaaaaaaa"
+ /* 8 */ "aaaaaaaaaa"
+ /* 9 */ "aaaaaaaaaa"
+ /* 10 */ "aaaaaaaaaa"
+
+ // Level 1
+ /* z\x* */
+ /* * 0123456789 */
+ /* 0 */ "bbbbbbbbbb"
+ /* 1 */ "baaaaabbbb"
+ /* 2 */ "baaaaabbbb"
+ /* 3 */ "baaaaaaaaa"
+ /* 4 */ "aaaaaaaaaa"
+ /* 5 */ "aaaaaaaaaa"
+ /* 6 */ "aaaaaaaaaa"
+ /* 7 */ "baaaaaaaaa"
+ /* 8 */ "baaaaaaaaa"
+ /* 9 */ "baaaaabbbb"
+ /* 10 */ "bbbbbbbbbb"
+
+ // Level 2
+ /* z\x* */
+ /* * 0123456789 */
+ /* 0 */ "......mmmm"
+ /* 1 */ ".cccccmmmm"
+ /* 2 */ ".cdddcmmmm"
+ /* 3 */ ".cdddcbbbb"
+ /* 4 */ "ecfffcbbbb"
+ /* 5 */ "gcffffbbbb"
+ /* 6 */ "hcfffcbbbb"
+ /* 7 */ ".cfffcbbbb"
+ /* 8 */ ".cfffcbbbb"
+ /* 9 */ ".cccccmmmm"
+ /* 10 */ "......mmmm"
+
+ // Level 3
+ /* z\x* */
+ /* * 0123456789 */
+ /* 0 */ "......mmmm"
+ /* 1 */ ".idddimmmm"
+ /* 2 */ ".djkldmmmm"
+ /* 3 */ ".d...dkkkk"
+ /* 4 */ ".d...d...k"
+ /* 5 */ ".n...o...k"
+ /* 6 */ ".d...d...k"
+ /* 7 */ ".dff.d...k"
+ /* 8 */ ".d...dkkkk"
+ /* 9 */ ".idddimmmm"
+ /* 10 */ "......mmmm"
+
+ // Level 4
+ /* z\x* */
+ /* * 0123456789 */
+ /* 0 */ "......mmmm"
+ /* 1 */ ".ipppimmmm"
+ /* 2 */ ".p.q.pmmmm"
+ /* 3 */ ".p...p...."
+ /* 4 */ ".d...d...."
+ /* 5 */ ".r...s...."
+ /* 6 */ ".d...d...."
+ /* 7 */ ".p...p...."
+ /* 8 */ ".p...p...."
+ /* 9 */ ".ipppimmmm"
+ /* 10 */ "......mmmm"
+
+ // Level 5
+ /* z\x* */
+ /* * 0123456789 */
+ /* 0 */ "lt...ujmmm"
+ /* 1 */ "lidddijmmm"
+ /* 2 */ "ld...djmmm"
+ /* 3 */ "ld...dj..."
+ /* 4 */ "ldv.wdj..."
+ /* 5 */ "ld...dj..."
+ /* 6 */ "ldv.wdj..."
+ /* 7 */ "ld...dj..."
+ /* 8 */ "ld...dj..."
+ /* 9 */ "lidddijmmm"
+ /* 10 */ "lt...ujmmm"
+
+ // Level 6
+ /* z\x* */
+ /* * 0123456789 */
+ /* 0 */ "mlt.ujmmmm"
+ /* 1 */ "mldddjmmmm"
+ /* 2 */ "mld.djmmmm"
+ /* 3 */ "mld.djm..."
+ /* 4 */ "mld.djm..."
+ /* 5 */ "mld.djm..."
+ /* 6 */ "mld.djm..."
+ /* 7 */ "mld.djm..."
+ /* 8 */ "mld.djm..."
+ /* 9 */ "mldddjmmmm"
+ /* 10 */ "mlt.ujmmmm"
+
+ // Level 7
+ /* z\x* */
+ /* * 0123456789 */
+ /* 0 */ "mmldjmmmmm"
+ /* 1 */ "mmldjmmmmm"
+ /* 2 */ "mmldjmmmmm"
+ /* 3 */ "mmldjmm..."
+ /* 4 */ "mmldjmm..."
+ /* 5 */ "mmldjmm..."
+ /* 6 */ "mmldjmm..."
+ /* 7 */ "mmldjmm..."
+ /* 8 */ "mmldjmm..."
+ /* 9 */ "mmldjmmmmm"
+ /* 10 */ "mmldjmmmmm",
+
+ // Connectors:
+ "-1: 0, 2, 5: 4\n" /* Type -1, direction X- */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // WoodenHouse9x5Fence
+
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // WoodenHouse9x7:
+ // The data has been exported from the gallery Plains, area index 52, ID 103, created by Aloe_vera
+ {
+ // Size:
+ 11, 9, 9, // SizeX = 11, SizeY = 9, SizeZ = 9
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 10, 8, 8, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a: 3: 0\n" /* dirt */
+ "b: 2: 0\n" /* grass */
+ "c: 67: 0\n" /* stairs */
+ "d: 67: 2\n" /* stairs */
+ "e: 67: 1\n" /* stairs */
+ "f: 4: 0\n" /* cobblestone */
+ "g: 17: 0\n" /* tree */
+ "h: 5: 0\n" /* wood */
+ "i: 64: 7\n" /* wooddoorblock */
+ "j:102: 0\n" /* glasspane */
+ "k: 64:12\n" /* wooddoorblock */
+ "l: 53: 2\n" /* woodstairs */
+ "m: 19: 0\n" /* sponge */
+ "n: 53: 7\n" /* woodstairs */
+ "o: 50: 3\n" /* torch */
+ "p: 50: 4\n" /* torch */
+ "q: 53: 6\n" /* woodstairs */
+ "r: 53: 3\n" /* woodstairs */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "aaaaaaaaaaa"
+ /* 1 */ "aaaaaaaaaaa"
+ /* 2 */ "aaaaaaaaaaa"
+ /* 3 */ "aaaaaaaaaaa"
+ /* 4 */ "aaaaaaaaaaa"
+ /* 5 */ "aaaaaaaaaaa"
+ /* 6 */ "aaaaaaaaaaa"
+ /* 7 */ "aaaaaaaaaaa"
+ /* 8 */ "aaaaaaaaaaa"
+
+ // Level 1
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "bbbbaaabbbb"
+ /* 1 */ "baaaaaaaaab"
+ /* 2 */ "baaaaaaaaab"
+ /* 3 */ "baaaaaaaaab"
+ /* 4 */ "baaaaaaaaab"
+ /* 5 */ "baaaaaaaaab"
+ /* 6 */ "baaaaaaaaab"
+ /* 7 */ "baaaaaaaaab"
+ /* 8 */ "bbbbbbbbbbb"
+
+ // Level 2
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "....cde...."
+ /* 1 */ ".fffffffff."
+ /* 2 */ ".fffffffff."
+ /* 3 */ ".fffffffff."
+ /* 4 */ ".fffffffff."
+ /* 5 */ ".fffffffff."
+ /* 6 */ ".fffffffff."
+ /* 7 */ ".fffffffff."
+ /* 8 */ "..........."
+
+ // Level 3
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ ".ghhhihhhg."
+ /* 2 */ ".h.......h."
+ /* 3 */ ".h.......h."
+ /* 4 */ ".h.......h."
+ /* 5 */ ".h.......h."
+ /* 6 */ ".h.......h."
+ /* 7 */ ".ghhhhhhhg."
+ /* 8 */ "..........."
+
+ // Level 4
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ ".gjjhkhjjg."
+ /* 2 */ ".j.......j."
+ /* 3 */ ".j.......j."
+ /* 4 */ ".h.......h."
+ /* 5 */ ".j.......j."
+ /* 6 */ ".j.......j."
+ /* 7 */ ".gjjjhjjjg."
+ /* 8 */ "..........."
+
+ // Level 5
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "lllllllllll"
+ /* 1 */ "nhhhhhhhhhn"
+ /* 2 */ ".h..o.o..h."
+ /* 3 */ ".h.......h."
+ /* 4 */ ".h.......h."
+ /* 5 */ ".h.......h."
+ /* 6 */ ".h...p...h."
+ /* 7 */ "qhhhhhhhhhq"
+ /* 8 */ "rrrrrrrrrrr"
+
+ // Level 6
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ "lllllllllll"
+ /* 2 */ "nhhhhhhhhhn"
+ /* 3 */ ".h.......h."
+ /* 4 */ ".h.......h."
+ /* 5 */ ".h.......h."
+ /* 6 */ "qhhhhhhhhhq"
+ /* 7 */ "rrrrrrrrrrr"
+ /* 8 */ "..........."
+
+ // Level 7
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ "..........."
+ /* 2 */ "lllllllllll"
+ /* 3 */ "nhhhhhhhhhn"
+ /* 4 */ ".h.......h."
+ /* 5 */ "qhhhhhhhhhq"
+ /* 6 */ "rrrrrrrrrrr"
+ /* 7 */ "..........."
+ /* 8 */ "..........."
+
+ // Level 8
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ "..........."
+ /* 2 */ "..........."
+ /* 3 */ "lllllllllll"
+ /* 4 */ "hhhhhhhhhhh"
+ /* 5 */ "rrrrrrrrrrr"
+ /* 6 */ "..........."
+ /* 7 */ "..........."
+ /* 8 */ "...........",
+
+ // Connectors:
+ "-1: 5, 2, 0: 2\n" /* Type -1, direction Z- */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // WoodenHouse9x7
+
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // WoodenHouse9x7Butcher:
+ // The data has been exported from the gallery Plains, area index 48, ID 99, created by Aloe_vera
+ {
+ // Size:
+ 11, 9, 13, // SizeX = 11, SizeY = 9, SizeZ = 13
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 10, 8, 12, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a: 3: 0\n" /* dirt */
+ "b: 2: 0\n" /* grass */
+ "c: 67: 0\n" /* stairs */
+ "d: 67: 2\n" /* stairs */
+ "e: 67: 1\n" /* stairs */
+ "f: 4: 0\n" /* cobblestone */
+ "g: 43: 0\n" /* doubleslab */
+ "h: 17: 0\n" /* tree */
+ "i: 5: 0\n" /* wood */
+ "j: 64: 7\n" /* wooddoorblock */
+ "k: 53: 3\n" /* woodstairs */
+ "l: 85: 0\n" /* fence */
+ "m: 19: 0\n" /* sponge */
+ "n: 53: 2\n" /* woodstairs */
+ "o:102: 0\n" /* glasspane */
+ "p: 64:12\n" /* wooddoorblock */
+ "q: 72: 0\n" /* woodplate */
+ "r: 53: 7\n" /* woodstairs */
+ "s: 50: 1\n" /* torch */
+ "t: 50: 2\n" /* torch */
+ "u: 53: 6\n" /* woodstairs */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "aaaaaaaaaaa"
+ /* 1 */ "aaaaaaaaaaa"
+ /* 2 */ "aaaaaaaaaaa"
+ /* 3 */ "aaaaaaaaaaa"
+ /* 4 */ "aaaaaaaaaaa"
+ /* 5 */ "aaaaaaaaaaa"
+ /* 6 */ "aaaaaaaaaaa"
+ /* 7 */ "aaaaaaaaaaa"
+ /* 8 */ "aaaaaaaaaaa"
+ /* 9 */ "aaaaaaaaaaa"
+ /* 10 */ "aaaaaaaaaaa"
+ /* 11 */ "aaaaaaaaaaa"
+ /* 12 */ "aaaaaaaaaaa"
+
+ // Level 1
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "bbbbaaabbbb"
+ /* 1 */ "baaaaaaaaab"
+ /* 2 */ "baaaaaaaaab"
+ /* 3 */ "baaaaaaaaab"
+ /* 4 */ "baaaaaaaaab"
+ /* 5 */ "baaaaaaaaab"
+ /* 6 */ "baaaaaaaaab"
+ /* 7 */ "baaaaaaaaab"
+ /* 8 */ "bbaaaaaaabb"
+ /* 9 */ "bbaaaaaaabb"
+ /* 10 */ "bbaaaaaaabb"
+ /* 11 */ "bbaaaaaaabb"
+ /* 12 */ "bbaaaaaaabb"
+
+ // Level 2
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "....cde...."
+ /* 1 */ ".fffffffff."
+ /* 2 */ ".fggggffff."
+ /* 3 */ ".fggggffff."
+ /* 4 */ ".fggggffff."
+ /* 5 */ ".fggggffff."
+ /* 6 */ ".fggggffff."
+ /* 7 */ ".fffffffff."
+ /* 8 */ "..bbbbbbb.."
+ /* 9 */ "mmbbbbbbbmm"
+ /* 10 */ "mmbbbbbbbmm"
+ /* 11 */ "mmbbbbbbbmm"
+ /* 12 */ "mmbbbbbbbmm"
+
+ // Level 3
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ ".hiiijiiih."
+ /* 2 */ ".i.g....ki."
+ /* 3 */ ".i.g....li."
+ /* 4 */ ".i.g....ni."
+ /* 5 */ ".i.......i."
+ /* 6 */ ".i.......i."
+ /* 7 */ ".hiiijiiih."
+ /* 8 */ "..l.....l.."
+ /* 9 */ "mml.....lmm"
+ /* 10 */ "mml.....lmm"
+ /* 11 */ "mml.....lmm"
+ /* 12 */ "mmlllllllmm"
+
+ // Level 4
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ ".hooipiooh."
+ /* 2 */ ".o.......o."
+ /* 3 */ ".o......qo."
+ /* 4 */ ".i.......i."
+ /* 5 */ ".o.......o."
+ /* 6 */ ".o.......o."
+ /* 7 */ ".hooipiooh."
+ /* 8 */ "..........."
+ /* 9 */ "mm.......mm"
+ /* 10 */ "mm.......mm"
+ /* 11 */ "mm.......mm"
+ /* 12 */ "mm.......mm"
+
+ // Level 5
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "nnnnnnnnnnn"
+ /* 1 */ "riiiiiiiiir"
+ /* 2 */ ".i.......i."
+ /* 3 */ ".i.......i."
+ /* 4 */ ".is.....ti."
+ /* 5 */ ".i.......i."
+ /* 6 */ ".i.......i."
+ /* 7 */ "uiiiiiiiiiu"
+ /* 8 */ "kkkkkkkkkkk"
+ /* 9 */ "mm.......mm"
+ /* 10 */ "mm.......mm"
+ /* 11 */ "mm.......mm"
+ /* 12 */ "mm.......mm"
+
+ // Level 6
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ "nnnnnnnnnnn"
+ /* 2 */ "riiiiiiiiir"
+ /* 3 */ ".i.......i."
+ /* 4 */ ".i.......i."
+ /* 5 */ ".i.......i."
+ /* 6 */ "uiiiiiiiiiu"
+ /* 7 */ "kkkkkkkkkkk"
+ /* 8 */ "..........."
+ /* 9 */ "mm.......mm"
+ /* 10 */ "mm.......mm"
+ /* 11 */ "mm.......mm"
+ /* 12 */ "mm.......mm"
+
+ // Level 7
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ "..........."
+ /* 2 */ "nnnnnnnnnnn"
+ /* 3 */ "riiiiiiiiir"
+ /* 4 */ ".i.......i."
+ /* 5 */ "uiiiiiiiiiu"
+ /* 6 */ "kkkkkkkkkkk"
+ /* 7 */ "..........."
+ /* 8 */ "..........."
+ /* 9 */ "mm.......mm"
+ /* 10 */ "mm.......mm"
+ /* 11 */ "mm.......mm"
+ /* 12 */ "mm.......mm"
+
+ // Level 8
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ "..........."
+ /* 2 */ "..........."
+ /* 3 */ "nnnnnnnnnnn"
+ /* 4 */ "iiiiiiiiiii"
+ /* 5 */ "kkkkkkkkkkk"
+ /* 6 */ "..........."
+ /* 7 */ "..........."
+ /* 8 */ "..........."
+ /* 9 */ "mm.......mm"
+ /* 10 */ "mm.......mm"
+ /* 11 */ "mm.......mm"
+ /* 12 */ "mm.......mm",
+
+ // Connectors:
+ "-1: 5, 2, 0: 2\n" /* Type -1, direction Z- */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // WoodenHouse9x7Butcher
+
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // WoodenHouse9x7DoubleDoor:
+ // The data has been exported from the gallery Plains, area index 38, ID 87, created by Aloe_vera
+ {
+ // Size:
+ 11, 9, 9, // SizeX = 11, SizeY = 9, SizeZ = 9
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 10, 8, 8, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a: 3: 0\n" /* dirt */
+ "b: 2: 0\n" /* grass */
+ "c: 67: 0\n" /* stairs */
+ "d: 67: 2\n" /* stairs */
+ "e: 67: 1\n" /* stairs */
+ "f: 4: 0\n" /* cobblestone */
+ "g: 67: 3\n" /* stairs */
+ "h: 17: 0\n" /* tree */
+ "i: 5: 0\n" /* wood */
+ "j: 64: 7\n" /* wooddoorblock */
+ "k:102: 0\n" /* glasspane */
+ "l: 64:12\n" /* wooddoorblock */
+ "m: 19: 0\n" /* sponge */
+ "n: 53: 2\n" /* woodstairs */
+ "o: 53: 7\n" /* woodstairs */
+ "p: 17: 4\n" /* tree */
+ "q: 17: 8\n" /* tree */
+ "r: 50: 3\n" /* torch */
+ "s: 50: 4\n" /* torch */
+ "t: 53: 6\n" /* woodstairs */
+ "u: 53: 3\n" /* woodstairs */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "aaaaaaaaaaa"
+ /* 1 */ "aaaaaaaaaaa"
+ /* 2 */ "aaaaaaaaaaa"
+ /* 3 */ "aaaaaaaaaaa"
+ /* 4 */ "aaaaaaaaaaa"
+ /* 5 */ "aaaaaaaaaaa"
+ /* 6 */ "aaaaaaaaaaa"
+ /* 7 */ "aaaaaaaaaaa"
+ /* 8 */ "aaaaaaaaaaa"
+
+ // Level 1
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "bbbbaaabbbb"
+ /* 1 */ "baaaaaaaaab"
+ /* 2 */ "baaaaaaaaab"
+ /* 3 */ "baaaaaaaaab"
+ /* 4 */ "baaaaaaaaab"
+ /* 5 */ "baaaaaaaaab"
+ /* 6 */ "baaaaaaaaab"
+ /* 7 */ "baaaaaaaaab"
+ /* 8 */ "bbbbaaabbbb"
+
+ // Level 2
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "....cde...."
+ /* 1 */ ".fffffffff."
+ /* 2 */ ".fffffffff."
+ /* 3 */ ".fffffffff."
+ /* 4 */ ".fffffffff."
+ /* 5 */ ".fffffffff."
+ /* 6 */ ".fffffffff."
+ /* 7 */ ".fffffffff."
+ /* 8 */ "....cge...."
+
+ // Level 3
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ ".hiihjhiih."
+ /* 2 */ ".i.......i."
+ /* 3 */ ".i.......i."
+ /* 4 */ ".h.......h."
+ /* 5 */ ".i.......i."
+ /* 6 */ ".i.......i."
+ /* 7 */ ".hiihjhiih."
+ /* 8 */ "..........."
+
+ // Level 4
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ ".hkkhlhkkh."
+ /* 2 */ ".k.......k."
+ /* 3 */ ".k.......k."
+ /* 4 */ ".h.......h."
+ /* 5 */ ".k.......k."
+ /* 6 */ ".k.......k."
+ /* 7 */ ".hkkhlhkkh."
+ /* 8 */ "..........."
+
+ // Level 5
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "nnnnnnnnnnn"
+ /* 1 */ "ohpppppppho"
+ /* 2 */ ".q..r.r..q."
+ /* 3 */ ".q.......q."
+ /* 4 */ ".q.......q."
+ /* 5 */ ".q.......q."
+ /* 6 */ ".q..s.s..q."
+ /* 7 */ "thpppppppht"
+ /* 8 */ "uuuuuuuuuuu"
+
+ // Level 6
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ "nnnnnnnnnnn"
+ /* 2 */ "oiiiiiiiiio"
+ /* 3 */ ".i.......i."
+ /* 4 */ ".i.......i."
+ /* 5 */ ".i.......i."
+ /* 6 */ "tiiiiiiiiit"
+ /* 7 */ "uuuuuuuuuuu"
+ /* 8 */ "..........."
+
+ // Level 7
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ "..........."
+ /* 2 */ "nnnnnnnnnnn"
+ /* 3 */ "oiiiiiiiiio"
+ /* 4 */ ".i.......i."
+ /* 5 */ "tiiiiiiiiit"
+ /* 6 */ "uuuuuuuuuuu"
+ /* 7 */ "..........."
+ /* 8 */ "..........."
+
+ // Level 8
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ "..........."
+ /* 2 */ "..........."
+ /* 3 */ "nnnnnnnnnnn"
+ /* 4 */ "iiiiiiiiiii"
+ /* 5 */ "uuuuuuuuuuu"
+ /* 6 */ "..........."
+ /* 7 */ "..........."
+ /* 8 */ "...........",
+
+ // Connectors:
+ "-1: 5, 2, 0: 2\n" /* Type -1, direction Z- */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // WoodenHouse9x7DoubleDoor
+
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // WoodenHouseL13x14:
+ // The data has been exported from the gallery Plains, area index 39, ID 90, created by STR_Warrior
+ {
+ // Size:
+ 15, 10, 16, // SizeX = 15, SizeY = 10, SizeZ = 16
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 14, 9, 15, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "A: 50: 4\n" /* torch */
+ "B: 50: 2\n" /* torch */
+ "C: 53: 7\n" /* woodstairs */
+ "D: 53: 4\n" /* woodstairs */
+ "E: 53: 5\n" /* woodstairs */
+ "F: 53: 6\n" /* woodstairs */
+ "a: 3: 0\n" /* dirt */
+ "b: 2: 0\n" /* grass */
+ "c: 67: 0\n" /* stairs */
+ "d: 67: 2\n" /* stairs */
+ "e: 67: 1\n" /* stairs */
+ "f: 4: 0\n" /* cobblestone */
+ "g: 43: 0\n" /* doubleslab */
+ "h: 17: 0\n" /* tree */
+ "i: 5: 0\n" /* wood */
+ "j: 64: 7\n" /* wooddoorblock */
+ "k: 96: 8\n" /* trapdoor */
+ "l: 61: 2\n" /* furnace */
+ "m: 19: 0\n" /* sponge */
+ "n: 53: 3\n" /* woodstairs */
+ "o: 85: 0\n" /* fence */
+ "p: 53: 2\n" /* woodstairs */
+ "q: 53: 1\n" /* woodstairs */
+ "r: 53: 0\n" /* woodstairs */
+ "s: 47: 0\n" /* bookshelf */
+ "t:102: 0\n" /* glasspane */
+ "u: 64:12\n" /* wooddoorblock */
+ "v: 72: 0\n" /* woodplate */
+ "w: 17: 4\n" /* tree */
+ "x: 17: 8\n" /* tree */
+ "y: 50: 3\n" /* torch */
+ "z: 50: 1\n" /* torch */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "aaaaaaaaaaaaaaa"
+ /* 1 */ "aaaaaaaaaaaaaaa"
+ /* 2 */ "aaaaaaaaaaaaaaa"
+ /* 3 */ "aaaaaaaaaaaaaaa"
+ /* 4 */ "aaaaaaaaaaaaaaa"
+ /* 5 */ "aaaaaaaaaaaaaaa"
+ /* 6 */ "aaaaaaaaaaaaaaa"
+ /* 7 */ "aaaaaaaaaaaaaaa"
+ /* 8 */ "mmmmmmmmaaaaaaa"
+ /* 9 */ "mmmmmmmmaaaaaaa"
+ /* 10 */ "mmmmmmmmaaaaaaa"
+ /* 11 */ "mmmmmmmmaaaaaaa"
+ /* 12 */ "mmmmmmmmaaaaaaa"
+ /* 13 */ "mmmmmmmmaaaaaaa"
+ /* 14 */ "mmmmmmmmaaaaaaa"
+ /* 15 */ "mmmmmmmmaaaaaaa"
+
+ // Level 1
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "bbbbbbaaabbbbbb"
+ /* 1 */ "baaaaaaaaaaaaab"
+ /* 2 */ "baaaaaaaaaaaaab"
+ /* 3 */ "baaaaaaaaaaaaab"
+ /* 4 */ "baaaaaaaaaaaaab"
+ /* 5 */ "baaaaaaaaaaaaab"
+ /* 6 */ "baaaaaaaaaaaaab"
+ /* 7 */ "baaaaaaaaaaaaab"
+ /* 8 */ "mmmmmmmmaaaaaab"
+ /* 9 */ "mmmmmmmmaaaaaab"
+ /* 10 */ "mmmmmmmmaaaaaab"
+ /* 11 */ "mmmmmmmmaaaaaab"
+ /* 12 */ "mmmmmmmmaaaaaab"
+ /* 13 */ "mmmmmmmmaaaaaab"
+ /* 14 */ "mmmmmmmmaaaaaab"
+ /* 15 */ "mmmmmmmmbbbbbbb"
+
+ // Level 2
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "......cde......"
+ /* 1 */ ".fffffffffffff."
+ /* 2 */ ".fggggffffffff."
+ /* 3 */ ".fggggffffffff."
+ /* 4 */ ".fffffffffffff."
+ /* 5 */ ".fffffffffffff."
+ /* 6 */ ".fffffffffffff."
+ /* 7 */ "mfffffffffffff."
+ /* 8 */ "mmmmmmmmffffff."
+ /* 9 */ "mmmmmmmmffffff."
+ /* 10 */ "mmmmmmmmffffff."
+ /* 11 */ "mmmmmmmmffffff."
+ /* 12 */ "mmmmmmmmffffff."
+ /* 13 */ "mmmmmmmmffffff."
+ /* 14 */ "mmmmmmmmffffff."
+ /* 15 */ "mmmmmmmm......."
+
+ // Level 3
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "..............."
+ /* 1 */ ".hiiiihjhiiiih."
+ /* 2 */ ".i...k.......i."
+ /* 3 */ ".ilggg......ni."
+ /* 4 */ ".h..........oi."
+ /* 5 */ ".i..........pi."
+ /* 6 */ ".i.qor..qo...i."
+ /* 7 */ "mhiiiiiihp...h."
+ /* 8 */ "mmmmmmmmi....i."
+ /* 9 */ "mmmmmmmmin...i."
+ /* 10 */ "mmmmmmmmio..ni."
+ /* 11 */ "mmmmmmmmip..oi."
+ /* 12 */ "mmmmmmmmi...pi."
+ /* 13 */ "mmmmmmmmis..si."
+ /* 14 */ "mmmmmmmmhiiiih."
+ /* 15 */ "mmmmmmmm......."
+
+ // Level 4
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "..............."
+ /* 1 */ ".hittihuhittih."
+ /* 2 */ ".i...........i."
+ /* 3 */ ".i...........t."
+ /* 4 */ ".h..........vt."
+ /* 5 */ ".i...........t."
+ /* 6 */ ".i..v....v...i."
+ /* 7 */ "mhittttih....h."
+ /* 8 */ "mmmmmmmmi....i."
+ /* 9 */ "mmmmmmmmt....t."
+ /* 10 */ "mmmmmmmmtv...t."
+ /* 11 */ "mmmmmmmmt...vt."
+ /* 12 */ "mmmmmmmmt....t."
+ /* 13 */ "mmmmmmmmis..si."
+ /* 14 */ "mmmmmmmmhittih."
+ /* 15 */ "mmmmmmmm......."
+
+ // Level 5
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "..............."
+ /* 1 */ ".hwwwwwwwwwwwh."
+ /* 2 */ ".x....y.y....x."
+ /* 3 */ ".x...........x."
+ /* 4 */ ".xz..........x."
+ /* 5 */ ".x...........x."
+ /* 6 */ ".x......A....x."
+ /* 7 */ "mhwwwwwwhz..Bx."
+ /* 8 */ "mmmmmmmmx....x."
+ /* 9 */ "mmmmmmmmx....x."
+ /* 10 */ "mmmmmmmmx....x."
+ /* 11 */ "mmmmmmmmx....x."
+ /* 12 */ "mmmmmmmmx....x."
+ /* 13 */ "mmmmmmmmx.AA.x."
+ /* 14 */ "mmmmmmmmhwwwwh."
+ /* 15 */ "mmmmmmmm......."
+
+ // Level 6
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "ppppppppppppppq"
+ /* 1 */ "riiiiiiiiiiiiiq"
+ /* 2 */ "riCCCCCCCCCCDiq"
+ /* 3 */ "riE.........Diq"
+ /* 4 */ "riE.........Diq"
+ /* 5 */ "riE.........Diq"
+ /* 6 */ "riEFFFFFFF..Diq"
+ /* 7 */ "riiiiiiiiE..Diq"
+ /* 8 */ "rnnnnnnriE..Diq"
+ /* 9 */ "mmmmmmmriE..Diq"
+ /* 10 */ "mmmmmmmriE..Diq"
+ /* 11 */ "mmmmmmmriE..Diq"
+ /* 12 */ "mmmmmmmriE..Diq"
+ /* 13 */ "mmmmmmmriEFFDiq"
+ /* 14 */ "mmmmmmmriiiiiiq"
+ /* 15 */ "mmmmmmmrnnnnnnn"
+
+ // Level 7
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "mmmmmmmmmmmmmmm"
+ /* 1 */ "mrpppppppppppqm"
+ /* 2 */ "mriiiiiiiiiiiqm"
+ /* 3 */ "mriiiiiiiiiiiqm"
+ /* 4 */ "mriiiiiiiiiiiqm"
+ /* 5 */ "mriiiiiiiiiiiqm"
+ /* 6 */ "mriiiiiiiiiiiqm"
+ /* 7 */ "mrnnnnnnniiiiqm"
+ /* 8 */ "mmmmmmmmriiiiqm"
+ /* 9 */ "mmmmmmmmriiiiqm"
+ /* 10 */ "mmmmmmmmriiiiqm"
+ /* 11 */ "mmmmmmmmriiiiqm"
+ /* 12 */ "mmmmmmmmriiiiqm"
+ /* 13 */ "mmmmmmmmriiiiqm"
+ /* 14 */ "mmmmmmmmnnnnnqm"
+ /* 15 */ "mmmmmmmmmmmmmmm"
+
+ // Level 8
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "mmmmmmmmmmmmmmm"
+ /* 1 */ "mmmmmmmmmmmmmmm"
+ /* 2 */ "mmpppppppppppmm"
+ /* 3 */ "mmriiiiiiiiiqmm"
+ /* 4 */ "mmriiiiiiiiiqmm"
+ /* 5 */ "mmriiiiiiiiiqmm"
+ /* 6 */ "mmnnnnnnnniiqmm"
+ /* 7 */ "mmmmmmmmmriiqmm"
+ /* 8 */ "mmmmmmmmmriiqmm"
+ /* 9 */ "mmmmmmmmmriiqmm"
+ /* 10 */ "mmmmmmmmmriiqmm"
+ /* 11 */ "mmmmmmmmmriiqmm"
+ /* 12 */ "mmmmmmmmmriiqmm"
+ /* 13 */ "mmmmmmmmmnnnqmm"
+ /* 14 */ "mmmmmmmmmmmmmmm"
+ /* 15 */ "mmmmmmmmmmmmmmm"
+
+ // Level 9
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "mmmmmmmmmmmmmmm"
+ /* 1 */ "mmmmmmmmmmmmmmm"
+ /* 2 */ "mmmmmmmmmmmmmmm"
+ /* 3 */ "mmmrpppppppqmmm"
+ /* 4 */ "mmmriiiiiiiqmmm"
+ /* 5 */ "mmmrnnnnnnrqmmm"
+ /* 6 */ "mmmmmmmmmmrqmmm"
+ /* 7 */ "mmmmmmmmmmrqmmm"
+ /* 8 */ "mmmmmmmmmmrqmmm"
+ /* 9 */ "mmmmmmmmmmrqmmm"
+ /* 10 */ "mmmmmmmmmmrqmmm"
+ /* 11 */ "mmmmmmmmmmrqmmm"
+ /* 12 */ "mmmmmmmmmmrnmmm"
+ /* 13 */ "mmmmmmmmmmmmmmm"
+ /* 14 */ "mmmmmmmmmmmmmmm"
+ /* 15 */ "mmmmmmmmmmmmmmm",
+
+ // Connectors:
+ "-1: 7, 2, 0: 2\n" /* Type -1, direction Z- */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // WoodenHouseL13x14
+
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // WoodenHouseL14x14:
+ // The data has been exported from the gallery Plains, area index 0, ID 4, created by Aloe_vera
+ {
+ // Size:
+ 16, 7, 16, // SizeX = 16, SizeY = 7, SizeZ = 16
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 15, 6, 15, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a: 67: 0\n" /* stairs */
+ "b: 67: 2\n" /* stairs */
+ "c: 67: 1\n" /* stairs */
+ "d: 4: 0\n" /* cobblestone */
+ "e: 5: 0\n" /* wood */
+ "f: 67: 3\n" /* stairs */
+ "g: 17: 0\n" /* tree */
+ "h: 64: 7\n" /* wooddoorblock */
+ "i: 64: 5\n" /* wooddoorblock */
+ "j:102: 0\n" /* glasspane */
+ "k: 64:12\n" /* wooddoorblock */
+ "l: 53: 2\n" /* woodstairs */
+ "m: 19: 0\n" /* sponge */
+ "n: 53: 1\n" /* woodstairs */
+ "o: 53: 7\n" /* woodstairs */
+ "p: 53: 6\n" /* woodstairs */
+ "q: 53: 3\n" /* woodstairs */
+ "r: 53: 0\n" /* woodstairs */
+ "s: 53: 5\n" /* woodstairs */
+ "t: 53: 4\n" /* woodstairs */
+ "u: 50: 3\n" /* torch */
+ "v: 50: 2\n" /* torch */
+ "w: 50: 4\n" /* torch */
+ "x: 50: 1\n" /* torch */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 111111 */
+ /* * 0123456789012345 */
+ /* 0 */ "........abc....."
+ /* 1 */ ".dddddddddddddd."
+ /* 2 */ ".deeeeeeeeeeeed."
+ /* 3 */ ".deeeeeeeeeeeed."
+ /* 4 */ ".deeeeeeeeeeeed."
+ /* 5 */ ".deeeeeeeeeeeed."
+ /* 6 */ ".deeeeeeeeeeeed."
+ /* 7 */ ".ddddddddeeeeed."
+ /* 8 */ "mmmmmafcdeeeeed."
+ /* 9 */ "mmmmmmmmdeeeeed."
+ /* 10 */ "mmmmmmmmdeeeeed."
+ /* 11 */ "mmmmmmmmdeeeeed."
+ /* 12 */ "mmmmmmmmdeeeeed."
+ /* 13 */ "mmmmmmmmdeeeeed."
+ /* 14 */ "mmmmmmmmddddddd."
+ /* 15 */ "mmmmmmmm........"
+
+ // Level 1
+ /* z\x* 111111 */
+ /* * 0123456789012345 */
+ /* 0 */ "................"
+ /* 1 */ ".geeeeeeghgeeeg."
+ /* 2 */ ".e............e."
+ /* 3 */ ".e............e."
+ /* 4 */ ".e............e."
+ /* 5 */ ".e............e."
+ /* 6 */ ".e............e."
+ /* 7 */ ".geeeeieg.....e."
+ /* 8 */ "mmmmmm.me.....e."
+ /* 9 */ "mmmmmmmme.....e."
+ /* 10 */ "mmmmmmmme.....e."
+ /* 11 */ "mmmmmmmme.....e."
+ /* 12 */ "mmmmmmmme.....e."
+ /* 13 */ "mmmmmmmme.....e."
+ /* 14 */ "mmmmmmmmgeeeeeg."
+ /* 15 */ "mmmmmmmm........"
+
+ // Level 2
+ /* z\x* 111111 */
+ /* * 0123456789012345 */
+ /* 0 */ "................"
+ /* 1 */ ".gejjejjgkgjjeg."
+ /* 2 */ ".j............e."
+ /* 3 */ ".j............j."
+ /* 4 */ ".j............j."
+ /* 5 */ ".j............e."
+ /* 6 */ ".j............j."
+ /* 7 */ ".gejjekeg.....j."
+ /* 8 */ "mmmmmm.me.....e."
+ /* 9 */ "mmmmmmmmj.....j."
+ /* 10 */ "mmmmmmmmj.....j."
+ /* 11 */ "mmmmmmmme.....e."
+ /* 12 */ "mmmmmmmmj.....j."
+ /* 13 */ "mmmmmmmmj.....j."
+ /* 14 */ "mmmmmmmmgjjjjjg."
+ /* 15 */ "mmmmmmmm........"
+
+ // Level 3
+ /* z\x* 111111 */
+ /* * 0123456789012345 */
+ /* 0 */ "llllllllllllllln"
+ /* 1 */ "ogeeeeeegegeeegn"
+ /* 2 */ ".e............en"
+ /* 3 */ ".e............en"
+ /* 4 */ ".e............en"
+ /* 5 */ ".e............en"
+ /* 6 */ ".e............en"
+ /* 7 */ "pgeeeeeeg.....en"
+ /* 8 */ "qqqqqqqre.....en"
+ /* 9 */ "mmmmmmmre.....en"
+ /* 10 */ "mmmmmmmre.....en"
+ /* 11 */ "mmmmmmmre.....en"
+ /* 12 */ "mmmmmmmre.....en"
+ /* 13 */ "mmmmmmmre.....en"
+ /* 14 */ "mmmmmmmrgeeeeegn"
+ /* 15 */ "mmmmmmmrs.....tn"
+
+ // Level 4
+ /* z\x* 111111 */
+ /* * 0123456789012345 */
+ /* 0 */ "................"
+ /* 1 */ "lllllllllllllll."
+ /* 2 */ "oeeeeeeeeeeeeen."
+ /* 3 */ ".e.........u.en."
+ /* 4 */ ".e..........ven."
+ /* 5 */ ".e......w....en."
+ /* 6 */ "peeeeeeeee...en."
+ /* 7 */ "qqqqqqqqrex..en."
+ /* 8 */ "mmmmmmmmre...en."
+ /* 9 */ "mmmmmmmmre...en."
+ /* 10 */ "mmmmmmmmre...en."
+ /* 11 */ "mmmmmmmmre...en."
+ /* 12 */ "mmmmmmmmre...en."
+ /* 13 */ "mmmmmmmmre...en."
+ /* 14 */ "mmmmmmmmreeeeen."
+ /* 15 */ "mmmmmmmmrs...tn."
+
+ // Level 5
+ /* z\x* 111111 */
+ /* * 0123456789012345 */
+ /* 0 */ "................"
+ /* 1 */ "................"
+ /* 2 */ "llllllllllllln.."
+ /* 3 */ "oeeeeeeeeeeeen.."
+ /* 4 */ ".ex.........en.."
+ /* 5 */ "peeeeeeeeee.en.."
+ /* 6 */ "qqqqqqqqqre.en.."
+ /* 7 */ ".........re.en.."
+ /* 8 */ "mmmmmmmm.re.en.."
+ /* 9 */ "mmmmmmmm.re.en.."
+ /* 10 */ "mmmmmmmm.re.en.."
+ /* 11 */ "mmmmmmmm.re.en.."
+ /* 12 */ "mmmmmmmm.re.en.."
+ /* 13 */ "mmmmmmmm.rewen.."
+ /* 14 */ "mmmmmmmm.reeen.."
+ /* 15 */ "mmmmmmmm.rs.tn.."
+
+ // Level 6
+ /* z\x* 111111 */
+ /* * 0123456789012345 */
+ /* 0 */ "................"
+ /* 1 */ "................"
+ /* 2 */ "................"
+ /* 3 */ "lllllllllllll..."
+ /* 4 */ "eeeeeeeeeeeen..."
+ /* 5 */ "qqqqqqqqqqren..."
+ /* 6 */ "mmmmmmmmmmren..."
+ /* 7 */ "mmmmmmmmmmren..."
+ /* 8 */ "mmmmmmmmmmren..."
+ /* 9 */ "mmmmmmmmmmren..."
+ /* 10 */ "mmmmmmmmmmren..."
+ /* 11 */ "mmmmmmmmmmren..."
+ /* 12 */ "mmmmmmmmmmren..."
+ /* 13 */ "mmmmmmmmmmren..."
+ /* 14 */ "mmmmmmmmmmren..."
+ /* 15 */ "mmmmmmmmmmren...",
+
+ // Connectors:
+ "-1: 9, 0, 0: 2\n" /* Type -1, direction Z- */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // WoodenHouseL14x14
+
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // WoodenHouseL9x9:
+ // The data has been exported from the gallery Plains, area index 42, ID 93, created by xoft
+ {
+ // Size:
+ 11, 8, 11, // SizeX = 11, SizeY = 8, SizeZ = 11
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 10, 7, 10, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a: 3: 0\n" /* dirt */
+ "b: 2: 0\n" /* grass */
+ "c: 67: 0\n" /* stairs */
+ "d: 67: 2\n" /* stairs */
+ "e: 67: 1\n" /* stairs */
+ "f: 4: 0\n" /* cobblestone */
+ "g: 17: 0\n" /* tree */
+ "h: 5: 0\n" /* wood */
+ "i: 64: 7\n" /* wooddoorblock */
+ "j:102: 0\n" /* glasspane */
+ "k: 64:12\n" /* wooddoorblock */
+ "l: 53: 2\n" /* woodstairs */
+ "m: 19: 0\n" /* sponge */
+ "n: 53: 7\n" /* woodstairs */
+ "o: 53: 1\n" /* woodstairs */
+ "p: 50: 3\n" /* torch */
+ "q: 50: 4\n" /* torch */
+ "r: 53: 6\n" /* woodstairs */
+ "s: 50: 1\n" /* torch */
+ "t: 50: 2\n" /* torch */
+ "u: 53: 3\n" /* woodstairs */
+ "v: 53: 0\n" /* woodstairs */
+ "w: 53: 5\n" /* woodstairs */
+ "x: 53: 4\n" /* woodstairs */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "aaaaaaaaaaa"
+ /* 1 */ "aaaaaaaaaaa"
+ /* 2 */ "aaaaaaaaaaa"
+ /* 3 */ "aaaaaaaaaaa"
+ /* 4 */ "aaaaaaaaaaa"
+ /* 5 */ "aaaaaaaaaaa"
+ /* 6 */ "aaaaaaaaaaa"
+ /* 7 */ "aaaaaaaaaaa"
+ /* 8 */ "aaaaaaaaaaa"
+ /* 9 */ "aaaaaaaaaaa"
+ /* 10 */ "aaaaaaaaaaa"
+
+ // Level 1
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "bbbbaaabbbb"
+ /* 1 */ "baaaaaaaaab"
+ /* 2 */ "baaaaaaaaab"
+ /* 3 */ "baaaaaaaaab"
+ /* 4 */ "baaaaaaaaab"
+ /* 5 */ "baaaaaaaaab"
+ /* 6 */ "bbbbbaaaaab"
+ /* 7 */ "bbbbbaaaaab"
+ /* 8 */ "bbbbbaaaaab"
+ /* 9 */ "bbbbbaaaaab"
+ /* 10 */ "bbbbbbbbbbb"
+
+ // Level 2
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "....cde...."
+ /* 1 */ ".fffffffff."
+ /* 2 */ ".fffffffff."
+ /* 3 */ ".fffffffff."
+ /* 4 */ ".fffffffff."
+ /* 5 */ ".fffffffff."
+ /* 6 */ ".....fffff."
+ /* 7 */ "mmmm.fffff."
+ /* 8 */ "mmmm.fffff."
+ /* 9 */ "mmmm.fffff."
+ /* 10 */ "mmmm......."
+
+ // Level 3
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ ".ghhhihhhg."
+ /* 2 */ ".h.......h."
+ /* 3 */ ".h.......h."
+ /* 4 */ ".h.......h."
+ /* 5 */ ".ghhhg...h."
+ /* 6 */ ".....h...h."
+ /* 7 */ "mmmm.h...h."
+ /* 8 */ "mmmm.h...h."
+ /* 9 */ "mmmm.ghhhg."
+ /* 10 */ "mmmm......."
+
+ // Level 4
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ ".gjjhkhjjg."
+ /* 2 */ ".j.......j."
+ /* 3 */ ".j.......j."
+ /* 4 */ ".j.......j."
+ /* 5 */ ".gjjjg...h."
+ /* 6 */ ".....j...j."
+ /* 7 */ "mmmm.j...j."
+ /* 8 */ "mmmm.j...j."
+ /* 9 */ "mmmm.gjjjg."
+ /* 10 */ "mmmm......."
+
+ // Level 5
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "lllllllllll"
+ /* 1 */ "nhhhhhhhhho"
+ /* 2 */ ".h..p.p..ho"
+ /* 3 */ ".h.......ho"
+ /* 4 */ ".h...q...ho"
+ /* 5 */ "rhhhhhs.tho"
+ /* 6 */ "uuuuuh...ho"
+ /* 7 */ "mmmmvh...ho"
+ /* 8 */ "mmmmvh...ho"
+ /* 9 */ "mmmmvhhhhho"
+ /* 10 */ "mmmmvw...xo"
+
+ // Level 6
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ "lllllllllo."
+ /* 2 */ "nhhhhhhhho."
+ /* 3 */ ".h......ho."
+ /* 4 */ "rhhhhhh.ho."
+ /* 5 */ "uuuuuuh.ho."
+ /* 6 */ ".....vh.ho."
+ /* 7 */ "mmmm.vh.ho."
+ /* 8 */ "mmmm.vh.ho."
+ /* 9 */ "mmmm.vhhho."
+ /* 10 */ "mmmm.vw.xo."
+
+ // Level 7
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ "..........."
+ /* 2 */ "lllllllll.."
+ /* 3 */ "hhhhhhhho.."
+ /* 4 */ "uuuuuuvho.."
+ /* 5 */ "......vho.."
+ /* 6 */ "......vho.."
+ /* 7 */ "mmmm..vho.."
+ /* 8 */ "mmmm..vho.."
+ /* 9 */ "mmmm..vho.."
+ /* 10 */ "mmmm..vho..",
+
+ // Connectors:
+ "-1: 5, 2, 0: 2\n" /* Type -1, direction Z- */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // WoodenHouseL9x9
+
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // WoodenHouseU13x9:
+ // The data has been exported from the gallery Plains, area index 43, ID 94, created by xoft
+ {
+ // Size:
+ 15, 8, 11, // SizeX = 15, SizeY = 8, SizeZ = 11
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 14, 7, 10, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a: 3: 0\n" /* dirt */
+ "b: 2: 0\n" /* grass */
+ "c: 67: 0\n" /* stairs */
+ "d: 67: 2\n" /* stairs */
+ "e: 67: 1\n" /* stairs */
+ "f: 4: 0\n" /* cobblestone */
+ "g: 17: 0\n" /* tree */
+ "h: 5: 0\n" /* wood */
+ "i: 64: 7\n" /* wooddoorblock */
+ "j:102: 0\n" /* glasspane */
+ "k: 64:12\n" /* wooddoorblock */
+ "l: 53: 2\n" /* woodstairs */
+ "m: 19: 0\n" /* sponge */
+ "n: 53: 0\n" /* woodstairs */
+ "o: 53: 1\n" /* woodstairs */
+ "p: 50: 3\n" /* torch */
+ "q: 50: 4\n" /* torch */
+ "r: 50: 2\n" /* torch */
+ "s: 50: 1\n" /* torch */
+ "t: 53: 3\n" /* woodstairs */
+ "u: 53: 5\n" /* woodstairs */
+ "v: 53: 4\n" /* woodstairs */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "aaaaaaaaaaaaaaa"
+ /* 1 */ "aaaaaaaaaaaaaaa"
+ /* 2 */ "aaaaaaaaaaaaaaa"
+ /* 3 */ "aaaaaaaaaaaaaaa"
+ /* 4 */ "aaaaaaaaaaaaaaa"
+ /* 5 */ "aaaaaaaaaaaaaaa"
+ /* 6 */ "aaaaaaaaaaaaaaa"
+ /* 7 */ "aaaaaaaaaaaaaaa"
+ /* 8 */ "aaaaaaaaaaaaaaa"
+ /* 9 */ "aaaaaaaaaaaaaaa"
+ /* 10 */ "aaaaaaaaaaaaaaa"
+
+ // Level 1
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "bbbbbbaaabbbbbb"
+ /* 1 */ "baaaaaaaaaaaaab"
+ /* 2 */ "baaaaaaaaaaaaab"
+ /* 3 */ "baaaaaaaaaaaaab"
+ /* 4 */ "baaaaaaaaaaaaab"
+ /* 5 */ "baaaaaaaaaaaaab"
+ /* 6 */ "baaaaabbbaaaaab"
+ /* 7 */ "baaaaabbbaaaaab"
+ /* 8 */ "baaaaabbbaaaaab"
+ /* 9 */ "baaaaabbbaaaaab"
+ /* 10 */ "bbbbbbbbbbbbbbb"
+
+ // Level 2
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "......cde......"
+ /* 1 */ ".fffffffffffff."
+ /* 2 */ ".fffffffffffff."
+ /* 3 */ ".fffffffffffff."
+ /* 4 */ ".fffffffffffff."
+ /* 5 */ ".fffffffffffff."
+ /* 6 */ ".fffff...fffff."
+ /* 7 */ ".fffff...fffff."
+ /* 8 */ ".fffff...fffff."
+ /* 9 */ ".fffff...fffff."
+ /* 10 */ "..............."
+
+ // Level 3
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "..............."
+ /* 1 */ ".ghhhhhihhhhhg."
+ /* 2 */ ".h...........h."
+ /* 3 */ ".h...........h."
+ /* 4 */ ".h...........h."
+ /* 5 */ ".h...ghhhg...h."
+ /* 6 */ ".h...h...h...h."
+ /* 7 */ ".h...h...h...h."
+ /* 8 */ ".h...h...h...h."
+ /* 9 */ ".ghhhg...ghhhg."
+ /* 10 */ "..............."
+
+ // Level 4
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "..............."
+ /* 1 */ ".gjjjjhkhjjjjg."
+ /* 2 */ ".j...........j."
+ /* 3 */ ".j...........j."
+ /* 4 */ ".j...........j."
+ /* 5 */ ".h...gjjjg...h."
+ /* 6 */ ".j...j...j...j."
+ /* 7 */ ".j...j...j...j."
+ /* 8 */ ".j...j...j...j."
+ /* 9 */ ".gjjjg...gjjjg."
+ /* 10 */ "..............."
+
+ // Level 5
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "lllllllllllllll"
+ /* 1 */ "nhhhhhhhhhhhhho"
+ /* 2 */ "nh....p.p....ho"
+ /* 3 */ "nh...........ho"
+ /* 4 */ "nh...q...q...ho"
+ /* 5 */ "nh..rhhhhhs..ho"
+ /* 6 */ "nh...httth...ho"
+ /* 7 */ "nh...ho.nh...ho"
+ /* 8 */ "nh...ho.nh...ho"
+ /* 9 */ "nhhhhho.nhhhhho"
+ /* 10 */ "nu...vo.nu...vo"
+
+ // Level 6
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "..............."
+ /* 1 */ ".llllllllllllo."
+ /* 2 */ ".nhhhhhhhhhhho."
+ /* 3 */ ".nhhhhhhhhhhho."
+ /* 4 */ ".nhhhhhhhhhhho."
+ /* 5 */ ".nhhhotttthhho."
+ /* 6 */ ".nhhho...nhhho."
+ /* 7 */ ".nhhho...nhhho."
+ /* 8 */ ".nhhho...nhhho."
+ /* 9 */ ".nhhho...nhhho."
+ /* 10 */ ".nu.vo...nu.vo."
+
+ // Level 7
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "..............."
+ /* 1 */ "..............."
+ /* 2 */ "..nllllllllll.."
+ /* 3 */ "..nhhhhhhhhho.."
+ /* 4 */ "..nhotttttnho.."
+ /* 5 */ "..nho.....nho.."
+ /* 6 */ "..nho.....nho.."
+ /* 7 */ "..nho.....nho.."
+ /* 8 */ "..nho.....nho.."
+ /* 9 */ "..nho.....nho.."
+ /* 10 */ "..nho.....nho..",
+
+ // Connectors:
+ "-1: 7, 2, 0: 2\n" /* Type -1, direction Z- */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // WoodenHouseU13x9
+
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // WoodenMill5x5:
+ // The data has been exported from the gallery Plains, area index 60, ID 111, created by Aloe_vera
+ {
+ // Size:
+ 9, 18, 13, // SizeX = 9, SizeY = 18, SizeZ = 13
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 8, 17, 12, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a: 3: 0\n" /* dirt */
+ "b: 2: 0\n" /* grass */
+ "c: 4: 0\n" /* cobblestone */
+ "d: 67: 2\n" /* stairs */
+ "e: 67: 1\n" /* stairs */
+ "f: 67: 3\n" /* stairs */
+ "g: 17: 0\n" /* tree */
+ "h: 5: 0\n" /* wood */
+ "i: 54: 4\n" /* chest */
+ "j:154: 4\n" /* hopper */
+ "k: 64: 4\n" /* wooddoorblock */
+ "l:102: 0\n" /* glasspane */
+ "m: 19: 0\n" /* sponge */
+ "n: 85: 0\n" /* fence */
+ "o: 64:12\n" /* wooddoorblock */
+ "p: 50: 2\n" /* torch */
+ "q: 35: 0\n" /* wool */
+ "r: 17: 4\n" /* tree */
+ "s: 17: 8\n" /* tree */
+ "t: 53: 2\n" /* woodstairs */
+ "u: 53: 7\n" /* woodstairs */
+ "v: 53: 6\n" /* woodstairs */
+ "w: 53: 3\n" /* woodstairs */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 012345678 */
+ /* 0 */ "aaaaaaaaa"
+ /* 1 */ "aaaaaaaaa"
+ /* 2 */ "aaaaaaaaa"
+ /* 3 */ "aaaaaaaaa"
+ /* 4 */ "aaaaaaaaa"
+ /* 5 */ "aaaaaaaaa"
+ /* 6 */ "aaaaaaaaa"
+ /* 7 */ "aaaaaaaaa"
+ /* 8 */ "aaaaaaaaa"
+ /* 9 */ "aaaaaaaaa"
+ /* 10 */ "aaaaaaaaa"
+ /* 11 */ "aaaaaaaaa"
+ /* 12 */ "aaaaaaaaa"
+
+ // Level 1
+ /* z\x* 012345678 */
+ /* 0 */ "bbbbbbbbb"
+ /* 1 */ "bbbbbbbbb"
+ /* 2 */ "bbbbbbbbb"
+ /* 3 */ "bbbbbbbbb"
+ /* 4 */ "baaaaabbb"
+ /* 5 */ "baaaaaabb"
+ /* 6 */ "baaaaaabb"
+ /* 7 */ "baaaaaabb"
+ /* 8 */ "baaaaabbb"
+ /* 9 */ "bbbbbbbbb"
+ /* 10 */ "bbbbbbbbb"
+ /* 11 */ "bbbbbbbbb"
+ /* 12 */ "bbbbbbbbb"
+
+ // Level 2
+ /* z\x* 012345678 */
+ /* 0 */ "mmmmmmm.."
+ /* 1 */ "mmmmmmm.."
+ /* 2 */ "mmmmmmm.."
+ /* 3 */ "........."
+ /* 4 */ ".ccccc..."
+ /* 5 */ ".cccccd.."
+ /* 6 */ ".ccccce.."
+ /* 7 */ ".cccccf.."
+ /* 8 */ ".ccccc..."
+ /* 9 */ "........."
+ /* 10 */ "mmmmmmm.."
+ /* 11 */ "mmmmmmm.."
+ /* 12 */ "mmmmmmm.."
+
+ // Level 3
+ /* z\x* 012345678 */
+ /* 0 */ "mmmmmmm.."
+ /* 1 */ "mmmmmmm.."
+ /* 2 */ "mmmmmmm.."
+ /* 3 */ "........."
+ /* 4 */ ".ghhhg..."
+ /* 5 */ ".h...h..."
+ /* 6 */ ".hij.k..."
+ /* 7 */ ".h...h..."
+ /* 8 */ ".ghhhg..."
+ /* 9 */ "........."
+ /* 10 */ "mmmmmmm.."
+ /* 11 */ "mmmmmmm.."
+ /* 12 */ "mmmmmmm.."
+
+ // Level 4
+ /* z\x* 012345678 */
+ /* 0 */ "mmmmmmm.."
+ /* 1 */ "mmmmmmm.."
+ /* 2 */ "mmmmmmm.."
+ /* 3 */ "........."
+ /* 4 */ ".glllg..."
+ /* 5 */ ".l...h..."
+ /* 6 */ ".l.n.o..."
+ /* 7 */ ".l...h..."
+ /* 8 */ ".glllg..."
+ /* 9 */ "........."
+ /* 10 */ "mmmmmmm.."
+ /* 11 */ "mmmmmmm.."
+ /* 12 */ "mmmmmmm.."
+
+ // Level 5
+ /* z\x* 012345678 */
+ /* 0 */ "mmmmmmm.."
+ /* 1 */ "mmmmmmm.."
+ /* 2 */ "mmmmmmm.."
+ /* 3 */ "........."
+ /* 4 */ ".ghhhg..."
+ /* 5 */ ".h..ph..."
+ /* 6 */ ".h.n.h..."
+ /* 7 */ ".h..ph..n"
+ /* 8 */ ".ghhhg..q"
+ /* 9 */ "........."
+ /* 10 */ "mmmmmmm.."
+ /* 11 */ "mmmmmmm.."
+ /* 12 */ "mmmmmmm.."
+
+ // Level 6
+ /* z\x* 012345678 */
+ /* 0 */ "mmmmmmm.."
+ /* 1 */ "mmmmmmm.."
+ /* 2 */ "mmmmmmm.."
+ /* 3 */ "........."
+ /* 4 */ ".grrrg..."
+ /* 5 */ ".s...s..."
+ /* 6 */ ".s.n.s..."
+ /* 7 */ ".s...s..n"
+ /* 8 */ ".grrrg..q"
+ /* 9 */ "........."
+ /* 10 */ "mmmmmmm.."
+ /* 11 */ "mmmmmmm.."
+ /* 12 */ "mmmmmmm.."
+
+ // Level 7
+ /* z\x* 012345678 */
+ /* 0 */ "mmmmmmm.."
+ /* 1 */ "mmmmmmm.."
+ /* 2 */ "mmmmmmm.."
+ /* 3 */ "........."
+ /* 4 */ ".ghhhg..."
+ /* 5 */ ".h...h..."
+ /* 6 */ ".h.n.h..n"
+ /* 7 */ ".h...h..q"
+ /* 8 */ ".ghhhg..q"
+ /* 9 */ "........."
+ /* 10 */ "mmmmmmm.."
+ /* 11 */ "mmmmmmm.."
+ /* 12 */ "mmmmmmm.."
+
+ // Level 8
+ /* z\x* 012345678 */
+ /* 0 */ "mmmmmmm.."
+ /* 1 */ "mmmmmmm.."
+ /* 2 */ "mmmmmmm.."
+ /* 3 */ "........."
+ /* 4 */ ".glllg..."
+ /* 5 */ ".l...l..."
+ /* 6 */ ".l.n.l..n"
+ /* 7 */ ".l...l..q"
+ /* 8 */ ".glllg..."
+ /* 9 */ "........."
+ /* 10 */ "mmmmmmm.."
+ /* 11 */ "mmmmmmm.."
+ /* 12 */ "mmmmmmm.."
+
+ // Level 9
+ /* z\x* 012345678 */
+ /* 0 */ "mmmmmmm.q"
+ /* 1 */ "mmmmmmm.q"
+ /* 2 */ "mmmmmmm.q"
+ /* 3 */ "........."
+ /* 4 */ ".ghhhg..."
+ /* 5 */ ".h...h..n"
+ /* 6 */ ".h.n.h..q"
+ /* 7 */ ".h...h..q"
+ /* 8 */ ".ghhhg..."
+ /* 9 */ "........."
+ /* 10 */ "mmmmmmm.."
+ /* 11 */ "mmmmmmm.."
+ /* 12 */ "mmmmmmm.."
+
+ // Level 10
+ /* z\x* 012345678 */
+ /* 0 */ "mmmmmmm.n"
+ /* 1 */ "mmmmmmm.n"
+ /* 2 */ "mmmmmmm.q"
+ /* 3 */ "........q"
+ /* 4 */ ".grrrg..q"
+ /* 5 */ ".s...s..n"
+ /* 6 */ ".s.n.s..q"
+ /* 7 */ ".s...s..n"
+ /* 8 */ ".grrrg..n"
+ /* 9 */ "........."
+ /* 10 */ "mmmmmmm.."
+ /* 11 */ "mmmmmmm.."
+ /* 12 */ "mmmmmmm.."
+
+ // Level 11
+ /* z\x* 012345678 */
+ /* 0 */ "mmmmmmm.."
+ /* 1 */ "mmmmmmm.."
+ /* 2 */ "mmmmmmm.n"
+ /* 3 */ "ttttttt.n"
+ /* 4 */ "uhhhhhu.q"
+ /* 5 */ ".h...h..q"
+ /* 6 */ ".h.nrrrrr"
+ /* 7 */ ".h...h..q"
+ /* 8 */ "vhhhhhv.q"
+ /* 9 */ "wwwwwww.n"
+ /* 10 */ "mmmmmmm.n"
+ /* 11 */ "mmmmmmm.."
+ /* 12 */ "mmmmmmm.."
+
+ // Level 12
+ /* z\x* 012345678 */
+ /* 0 */ "mmmmmmm.."
+ /* 1 */ "mmmmmmm.."
+ /* 2 */ "mmmmmmm.."
+ /* 3 */ "mmmmmmm.."
+ /* 4 */ "ttttttt.n"
+ /* 5 */ "uhhhhhu.n"
+ /* 6 */ ".h...h..q"
+ /* 7 */ "vhhhhhv.n"
+ /* 8 */ "wwwwwww.q"
+ /* 9 */ "mmmmmmm.q"
+ /* 10 */ "mmmmmmm.q"
+ /* 11 */ "mmmmmmm.n"
+ /* 12 */ "mmmmmmm.n"
+
+ // Level 13
+ /* z\x* 012345678 */
+ /* 0 */ "mmmmmmm.."
+ /* 1 */ "mmmmmmm.."
+ /* 2 */ "mmmmmmm.."
+ /* 3 */ "mmmmmmm.."
+ /* 4 */ "mmmmmmm.."
+ /* 5 */ "ttttttt.q"
+ /* 6 */ "hhhhhhh.q"
+ /* 7 */ "wwwwwww.n"
+ /* 8 */ "mmmmmmm.."
+ /* 9 */ "mmmmmmm.."
+ /* 10 */ "mmmmmmm.q"
+ /* 11 */ "mmmmmmm.q"
+ /* 12 */ "mmmmmmm.q"
+
+ // Level 14
+ /* z\x* 012345678 */
+ /* 0 */ "........."
+ /* 1 */ "........."
+ /* 2 */ "........."
+ /* 3 */ "........."
+ /* 4 */ "........."
+ /* 5 */ "........q"
+ /* 6 */ "........n"
+ /* 7 */ "........."
+ /* 8 */ "........."
+ /* 9 */ "........."
+ /* 10 */ "........."
+ /* 11 */ "........."
+ /* 12 */ "........."
+
+ // Level 15
+ /* z\x* 012345678 */
+ /* 0 */ "........."
+ /* 1 */ "........."
+ /* 2 */ "........."
+ /* 3 */ "........."
+ /* 4 */ "........q"
+ /* 5 */ "........q"
+ /* 6 */ "........n"
+ /* 7 */ "........."
+ /* 8 */ "........."
+ /* 9 */ "........."
+ /* 10 */ "........."
+ /* 11 */ "........."
+ /* 12 */ "........."
+
+ // Level 16
+ /* z\x* 012345678 */
+ /* 0 */ "........."
+ /* 1 */ "........."
+ /* 2 */ "........."
+ /* 3 */ "........."
+ /* 4 */ "........q"
+ /* 5 */ "........n"
+ /* 6 */ "........."
+ /* 7 */ "........."
+ /* 8 */ "........."
+ /* 9 */ "........."
+ /* 10 */ "........."
+ /* 11 */ "........."
+ /* 12 */ "........."
+
+ // Level 17
+ /* z\x* 012345678 */
+ /* 0 */ "........."
+ /* 1 */ "........."
+ /* 2 */ "........."
+ /* 3 */ "........."
+ /* 4 */ "........q"
+ /* 5 */ "........n"
+ /* 6 */ "........."
+ /* 7 */ "........."
+ /* 8 */ "........."
+ /* 9 */ "........."
+ /* 10 */ "........."
+ /* 11 */ "........."
+ /* 12 */ ".........",
+
+ // Connectors:
+ "-1: 8, 2, 6: 5\n" /* Type -1, direction X+ */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // WoodenMill5x5
+
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // WoodenStables:
+ // The data has been exported from the gallery Plains, area index 55, ID 106, created by Aloe_vera
+ {
+ // Size:
+ 15, 10, 9, // SizeX = 15, SizeY = 10, SizeZ = 9
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 14, 9, 8, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a: 3: 0\n" /* dirt */
+ "b: 2: 0\n" /* grass */
+ "c: 67: 0\n" /* stairs */
+ "d: 67: 2\n" /* stairs */
+ "e: 67: 1\n" /* stairs */
+ "f: 4: 0\n" /* cobblestone */
+ "g: 17: 0\n" /* tree */
+ "h:107: 0\n" /* fencegate */
+ "i:107: 4\n" /* fencegate */
+ "j: 5: 0\n" /* wood */
+ "k:107: 6\n" /* fencegate */
+ "l: 85: 0\n" /* fence */
+ "m: 19: 0\n" /* sponge */
+ "n:170: 0\n" /* haybale */
+ "o:170: 4\n" /* haybale */
+ "p:170: 8\n" /* haybale */
+ "q: 50: 1\n" /* torch */
+ "r: 50: 2\n" /* torch */
+ "s: 53: 2\n" /* woodstairs */
+ "t: 53: 7\n" /* woodstairs */
+ "u: 53: 6\n" /* woodstairs */
+ "v: 53: 3\n" /* woodstairs */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "aaaaaaaaaaaaaaa"
+ /* 1 */ "aaaaaaaaaaaaaaa"
+ /* 2 */ "aaaaaaaaaaaaaaa"
+ /* 3 */ "aaaaaaaaaaaaaaa"
+ /* 4 */ "aaaaaaaaaaaaaaa"
+ /* 5 */ "aaaaaaaaaaaaaaa"
+ /* 6 */ "aaaaaaaaaaaaaaa"
+ /* 7 */ "aaaaaaaaaaaaaaa"
+ /* 8 */ "aaaaaaaaaaaaaaa"
+
+ // Level 1
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "baaaaaaaaaaaaab"
+ /* 1 */ "baaaaaaaaaaaaab"
+ /* 2 */ "baaaaaaaaaaaaab"
+ /* 3 */ "baaaaaaaaaaaaab"
+ /* 4 */ "baaaaaaaaaaaaab"
+ /* 5 */ "baaaaaaaaaaaaab"
+ /* 6 */ "baaaaaaaaaaaaab"
+ /* 7 */ "baaaaaaaaaaaaab"
+ /* 8 */ "bbbbbbbbbbbbbbb"
+
+ // Level 2
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ ".cddddddddddde."
+ /* 1 */ ".fffffffffffff."
+ /* 2 */ ".faaaaaaaaaaaf."
+ /* 3 */ ".faaaaaaaaaaaf."
+ /* 4 */ ".faaaaaaaaaaaf."
+ /* 5 */ ".faaaaaaaaaaaf."
+ /* 6 */ ".faaaaaaaaaaaf."
+ /* 7 */ ".fffffffffffff."
+ /* 8 */ "..............."
+
+ // Level 3
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "..............."
+ /* 1 */ ".ghihjhihjhkhg."
+ /* 2 */ ".l...l...l...l."
+ /* 3 */ ".l...l...l...l."
+ /* 4 */ ".l...l...l...l."
+ /* 5 */ ".l...l...l...l."
+ /* 6 */ ".ln..l..olp..l."
+ /* 7 */ ".gllljllljlllg."
+ /* 8 */ "..............."
+
+ // Level 4
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "..............."
+ /* 1 */ ".g...j...j...g."
+ /* 2 */ "..............."
+ /* 3 */ "..............."
+ /* 4 */ "..............."
+ /* 5 */ "..............."
+ /* 6 */ "..............."
+ /* 7 */ ".g...j...j...g."
+ /* 8 */ "..............."
+
+ // Level 5
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "..............."
+ /* 1 */ ".gq.rjq.rjq.rg."
+ /* 2 */ "..............."
+ /* 3 */ "..............."
+ /* 4 */ "..............."
+ /* 5 */ "..............."
+ /* 6 */ "..............."
+ /* 7 */ ".g...j...j...g."
+ /* 8 */ "..............."
+
+ // Level 6
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "sssssssssssssss"
+ /* 1 */ "tjjjjjjjjjjjjjt"
+ /* 2 */ ".j...........j."
+ /* 3 */ ".j...........j."
+ /* 4 */ ".j...........j."
+ /* 5 */ ".j...........j."
+ /* 6 */ ".j...........j."
+ /* 7 */ "ujjjjjjjjjjjjju"
+ /* 8 */ "vvvvvvvvvvvvvvv"
+
+ // Level 7
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "..............."
+ /* 1 */ "sssssssssssssss"
+ /* 2 */ "tjjjjjjjjjjjjjt"
+ /* 3 */ ".j...........j."
+ /* 4 */ ".j...........j."
+ /* 5 */ ".j...........j."
+ /* 6 */ "ujjjjjjjjjjjjju"
+ /* 7 */ "vvvvvvvvvvvvvvv"
+ /* 8 */ "..............."
+
+ // Level 8
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "..............."
+ /* 1 */ "..............."
+ /* 2 */ "sssssssssssssss"
+ /* 3 */ "tjjjjjjjjjjjjjt"
+ /* 4 */ ".j...........j."
+ /* 5 */ "ujjjjjjjjjjjjju"
+ /* 6 */ "vvvvvvvvvvvvvvv"
+ /* 7 */ "..............."
+ /* 8 */ "..............."
+
+ // Level 9
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "..............."
+ /* 1 */ "..............."
+ /* 2 */ "..............."
+ /* 3 */ "sssssssssssssss"
+ /* 4 */ "jjjjjjjjjjjjjjj"
+ /* 5 */ "vvvvvvvvvvvvvvv"
+ /* 6 */ "..............."
+ /* 7 */ "..............."
+ /* 8 */ "...............",
+
+ // Connectors:
+ "-1: 7, 2, -1: 2\n" /* Type -1, direction Z- */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // WoodenStables
+}; // g_PlainsVillagePrefabs
+
+
+
+
+
+
+const cPrefab::sDef g_PlainsVillageStartingPrefabs[] =
+{
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // CobbleWell4x4:
+ // The data has been exported from the gallery Plains, area index 1, ID 5, created by Aloe_vera
+ {
+ // Size:
+ 4, 13, 4, // SizeX = 4, SizeY = 13, SizeZ = 4
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 3, 12, 3, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a: 1: 0\n" /* stone */
+ "b: 4: 0\n" /* cobblestone */
+ "c: 8: 0\n" /* water */
+ "d: 85: 0\n" /* fence */
+ "m: 19: 0\n" /* sponge */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 0123 */
+ /* 0 */ "aaaa"
+ /* 1 */ "aaaa"
+ /* 2 */ "aaaa"
+ /* 3 */ "aaaa"
+
+ // Level 1
+ /* z\x* 0123 */
+ /* 0 */ "bbbb"
+ /* 1 */ "bccb"
+ /* 2 */ "bccb"
+ /* 3 */ "bbbb"
+
+ // Level 2
+ /* z\x* 0123 */
+ /* 0 */ "bbbb"
+ /* 1 */ "bccb"
+ /* 2 */ "bccb"
+ /* 3 */ "bbbb"
+
+ // Level 3
+ /* z\x* 0123 */
+ /* 0 */ "bbbb"
+ /* 1 */ "bccb"
+ /* 2 */ "bccb"
+ /* 3 */ "bbbb"
+
+ // Level 4
+ /* z\x* 0123 */
+ /* 0 */ "bbbb"
+ /* 1 */ "bccb"
+ /* 2 */ "bccb"
+ /* 3 */ "bbbb"
+
+ // Level 5
+ /* z\x* 0123 */
+ /* 0 */ "bbbb"
+ /* 1 */ "bccb"
+ /* 2 */ "bccb"
+ /* 3 */ "bbbb"
+
+ // Level 6
+ /* z\x* 0123 */
+ /* 0 */ "bbbb"
+ /* 1 */ "bccb"
+ /* 2 */ "bccb"
+ /* 3 */ "bbbb"
+
+ // Level 7
+ /* z\x* 0123 */
+ /* 0 */ "bbbb"
+ /* 1 */ "bccb"
+ /* 2 */ "bccb"
+ /* 3 */ "bbbb"
+
+ // Level 8
+ /* z\x* 0123 */
+ /* 0 */ "bbbb"
+ /* 1 */ "bccb"
+ /* 2 */ "bccb"
+ /* 3 */ "bbbb"
+
+ // Level 9
+ /* z\x* 0123 */
+ /* 0 */ "bbbb"
+ /* 1 */ "b..b"
+ /* 2 */ "b..b"
+ /* 3 */ "bbbb"
+
+ // Level 10
+ /* z\x* 0123 */
+ /* 0 */ "d..d"
+ /* 1 */ "...."
+ /* 2 */ "...."
+ /* 3 */ "d..d"
+
+ // Level 11
+ /* z\x* 0123 */
+ /* 0 */ "d..d"
+ /* 1 */ "...."
+ /* 2 */ "...."
+ /* 3 */ "d..d"
+
+ // Level 12
+ /* z\x* 0123 */
+ /* 0 */ "bbbb"
+ /* 1 */ "bbbb"
+ /* 2 */ "bbbb"
+ /* 3 */ "bbbb",
+
+ // Connectors:
+ "2: 1, 9, 3: 3\n" /* Type 2, direction Z+ */
+ "2: 2, 9, 0: 2\n" /* Type 2, direction Z- */
+ "2: 0, 9, 1: 4\n" /* Type 2, direction X- */
+ "2: 3, 9, 2: 5\n" /* Type 2, direction X+ */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // CobbleWell4x4
+
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // RoofedWell:
+ // The data has been exported from the gallery Plains, area index 119, ID 271, created by STR_Warrior
+ {
+ // Size:
+ 7, 15, 7, // SizeX = 7, SizeY = 15, SizeZ = 7
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 6, 14, 6, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a: 1: 0\n" /* stone */
+ "b: 4: 0\n" /* cobblestone */
+ "c: 8: 0\n" /* water */
+ "d: 3: 0\n" /* dirt */
+ "e: 2: 0\n" /* grass */
+ "f: 13: 0\n" /* gravel */
+ "g:118: 3\n" /* cauldronblock */
+ "h: 85: 0\n" /* fence */
+ "i: 53: 2\n" /* woodstairs */
+ "j: 53: 7\n" /* woodstairs */
+ "k: 5: 0\n" /* wood */
+ "l: 53: 4\n" /* woodstairs */
+ "m: 19: 0\n" /* sponge */
+ "n: 53: 5\n" /* woodstairs */
+ "o: 53: 6\n" /* woodstairs */
+ "p: 53: 3\n" /* woodstairs */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 0123456 */
+ /* 0 */ "aaaaaaa"
+ /* 1 */ "aaaaaaa"
+ /* 2 */ "aaaaaaa"
+ /* 3 */ "aaaaaaa"
+ /* 4 */ "aaaaaaa"
+ /* 5 */ "aaaaaaa"
+ /* 6 */ "aaaaaaa"
+
+ // Level 1
+ /* z\x* 0123456 */
+ /* 0 */ "aaaaaaa"
+ /* 1 */ "abbbbba"
+ /* 2 */ "abcccba"
+ /* 3 */ "abcccba"
+ /* 4 */ "abcccba"
+ /* 5 */ "abbbbba"
+ /* 6 */ "aaaaaaa"
+
+ // Level 2
+ /* z\x* 0123456 */
+ /* 0 */ "aaaaaaa"
+ /* 1 */ "abbbbba"
+ /* 2 */ "abcccba"
+ /* 3 */ "abcccba"
+ /* 4 */ "abcccba"
+ /* 5 */ "abbbbba"
+ /* 6 */ "aaaaaaa"
+
+ // Level 3
+ /* z\x* 0123456 */
+ /* 0 */ "aaaaaaa"
+ /* 1 */ "abbbbba"
+ /* 2 */ "abcccba"
+ /* 3 */ "abcccba"
+ /* 4 */ "abcccba"
+ /* 5 */ "abbbbba"
+ /* 6 */ "aaaaaaa"
+
+ // Level 4
+ /* z\x* 0123456 */
+ /* 0 */ "aaaaaaa"
+ /* 1 */ "abbbbba"
+ /* 2 */ "abcccba"
+ /* 3 */ "abcccba"
+ /* 4 */ "abcccba"
+ /* 5 */ "abbbbba"
+ /* 6 */ "aaaaaaa"
+
+ // Level 5
+ /* z\x* 0123456 */
+ /* 0 */ "ddddddd"
+ /* 1 */ "dbbbbbd"
+ /* 2 */ "dbcccbd"
+ /* 3 */ "dbcccbd"
+ /* 4 */ "dbcccbd"
+ /* 5 */ "dbbbbbd"
+ /* 6 */ "ddddddd"
+
+ // Level 6
+ /* z\x* 0123456 */
+ /* 0 */ "ddddddd"
+ /* 1 */ "dbbbbbd"
+ /* 2 */ "dbcccbd"
+ /* 3 */ "dbcccbd"
+ /* 4 */ "dbcccbd"
+ /* 5 */ "dbbbbbd"
+ /* 6 */ "ddddddd"
+
+ // Level 7
+ /* z\x* 0123456 */
+ /* 0 */ "ddddddd"
+ /* 1 */ "dbbbbbd"
+ /* 2 */ "dbcccbd"
+ /* 3 */ "dbcccbd"
+ /* 4 */ "dbcccbd"
+ /* 5 */ "dbbbbbd"
+ /* 6 */ "ddddddd"
+
+ // Level 8
+ /* z\x* 0123456 */
+ /* 0 */ "eefffee"
+ /* 1 */ "ebbbbbe"
+ /* 2 */ "fbcccbf"
+ /* 3 */ "fbcccbf"
+ /* 4 */ "fbcccbf"
+ /* 5 */ "ebbbbbe"
+ /* 6 */ "eefffee"
+
+ // Level 9
+ /* z\x* 0123456 */
+ /* 0 */ "......."
+ /* 1 */ ".bbbbb."
+ /* 2 */ ".b...b."
+ /* 3 */ ".b.g.b."
+ /* 4 */ ".b...b."
+ /* 5 */ ".bbbbb."
+ /* 6 */ "......."
+
+ // Level 10
+ /* z\x* 0123456 */
+ /* 0 */ "......."
+ /* 1 */ ".h...h."
+ /* 2 */ "......."
+ /* 3 */ "...h..."
+ /* 4 */ "......."
+ /* 5 */ ".h...h."
+ /* 6 */ "......."
+
+ // Level 11
+ /* z\x* 0123456 */
+ /* 0 */ "......."
+ /* 1 */ ".h...h."
+ /* 2 */ "......."
+ /* 3 */ "...h..."
+ /* 4 */ "......."
+ /* 5 */ ".h...h."
+ /* 6 */ "......."
+
+ // Level 12
+ /* z\x* 0123456 */
+ /* 0 */ "iiiiiii"
+ /* 1 */ "jkjjjkj"
+ /* 2 */ ".l...n."
+ /* 3 */ ".l.h.n."
+ /* 4 */ ".l...n."
+ /* 5 */ "okoooko"
+ /* 6 */ "ppppppp"
+
+ // Level 13
+ /* z\x* 0123456 */
+ /* 0 */ "......."
+ /* 1 */ "iiiiiii"
+ /* 2 */ "jkjjjkj"
+ /* 3 */ ".k.h.k."
+ /* 4 */ "okoooko"
+ /* 5 */ "ppppppp"
+ /* 6 */ "......."
+
+ // Level 14
+ /* z\x* 0123456 */
+ /* 0 */ "......."
+ /* 1 */ "......."
+ /* 2 */ "iiiiiii"
+ /* 3 */ "kkkkkkk"
+ /* 4 */ "ppppppp"
+ /* 5 */ "......."
+ /* 6 */ ".......",
+
+ // Connectors:
+ "2: 0, 9, 3: 4\n" /* Type 2, direction X- */
+ "2: 3, 9, 6: 3\n" /* Type 2, direction Z+ */
+ "2: 6, 9, 3: 5\n" /* Type 2, direction X+ */
+ "2: 3, 9, 0: 2\n" /* Type 2, direction Z- */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // RoofedWell
+};
+
+
+
+
+
+// The prefab counts:
+
+const size_t g_PlainsVillagePrefabsCount = ARRAYCOUNT(g_PlainsVillagePrefabs);
+
+const size_t g_PlainsVillageStartingPrefabsCount = ARRAYCOUNT(g_PlainsVillageStartingPrefabs);
+
diff --git a/src/Generating/Prefabs/PlainsVillagePrefabs.h b/src/Generating/Prefabs/PlainsVillagePrefabs.h
new file mode 100644
index 000000000..087783b1e
--- /dev/null
+++ b/src/Generating/Prefabs/PlainsVillagePrefabs.h
@@ -0,0 +1,15 @@
+
+// PlainsVillagePrefabs.h
+
+// Declares the prefabs in the group PlainsVillage
+
+#include "../Prefab.h"
+
+
+
+
+
+extern const cPrefab::sDef g_PlainsVillagePrefabs[];
+extern const cPrefab::sDef g_PlainsVillageStartingPrefabs[];
+extern const size_t g_PlainsVillagePrefabsCount;
+extern const size_t g_PlainsVillageStartingPrefabsCount;
diff --git a/src/Generating/Prefabs/SandVillagePrefabs.cpp b/src/Generating/Prefabs/SandVillagePrefabs.cpp
new file mode 100644
index 000000000..539f57b9d
--- /dev/null
+++ b/src/Generating/Prefabs/SandVillagePrefabs.cpp
@@ -0,0 +1,1890 @@
+
+// SandVillagePrefabs.cpp
+
+// Defines the prefabs in the group SandVillage
+
+// NOTE: This file has been generated automatically by GalExport!
+// Any manual changes will be overwritten by the next automatic export!
+
+#include "Globals.h"
+#include "SandVillagePrefabs.h"
+
+
+
+
+
+const cPrefab::sDef g_SandVillagePrefabs[] =
+{
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // DoubleField:
+ // The data has been exported from the gallery Desert, area index 5, ID 75, created by tonibm1999
+ {
+ // Size:
+ 13, 2, 9, // SizeX = 13, SizeY = 2, SizeZ = 9
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 12, 1, 8, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a: 24: 0\n" /* sandstone */
+ "b: 60: 7\n" /* tilleddirt */
+ "c: 8: 0\n" /* water */
+ "d: 50: 5\n" /* torch */
+ "e: 59: 7\n" /* crops */
+ "m: 19: 0\n" /* sponge */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 111 */
+ /* * 0123456789012 */
+ /* 0 */ "aaaaaaaaaaaaa"
+ /* 1 */ "abbcbbabbcbba"
+ /* 2 */ "abbcbbabbcbba"
+ /* 3 */ "abbcbbabbcbba"
+ /* 4 */ "abbcbbabbcbba"
+ /* 5 */ "abbcbbabbcbba"
+ /* 6 */ "abbcbbabbcbba"
+ /* 7 */ "abbcbbabbcbba"
+ /* 8 */ "aaaaaaaaaaaaa"
+
+ // Level 1
+ /* z\x* 111 */
+ /* * 0123456789012 */
+ /* 0 */ "d.....d.....d"
+ /* 1 */ ".......ee.ee."
+ /* 2 */ ".......ee.ee."
+ /* 3 */ ".......ee.ee."
+ /* 4 */ ".......ee.ee."
+ /* 5 */ ".......ee.ee."
+ /* 6 */ ".......ee.ee."
+ /* 7 */ ".......ee.ee."
+ /* 8 */ "d.....d.....d",
+
+ // Connectors:
+ "-1: 6, 0, 8: 3\n" /* Type -1, direction Z+ */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // DoubleField
+
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // House11x7:
+ // The data has been exported from the gallery Desert, area index 6, ID 81, created by Aloe_vera
+ {
+ // Size:
+ 11, 6, 7, // SizeX = 11, SizeY = 6, SizeZ = 7
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 10, 5, 6, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a:128: 0\n" /* sandstonestairs */
+ "b:128: 2\n" /* sandstonestairs */
+ "c:128: 1\n" /* sandstonestairs */
+ "d: 24: 0\n" /* sandstone */
+ "e: 64: 7\n" /* wooddoorblock */
+ "f:102: 0\n" /* glasspane */
+ "g: 64:12\n" /* wooddoorblock */
+ "h:128: 7\n" /* sandstonestairs */
+ "i: 50: 3\n" /* torch */
+ "j: 50: 4\n" /* torch */
+ "k:128: 6\n" /* sandstonestairs */
+ "l:128: 3\n" /* sandstonestairs */
+ "m: 19: 0\n" /* sponge */
+ "n: 50: 1\n" /* torch */
+ "o: 50: 2\n" /* torch */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "....abc...."
+ /* 1 */ ".ddddddddd."
+ /* 2 */ ".ddddddddd."
+ /* 3 */ ".ddddddddd."
+ /* 4 */ ".ddddddddd."
+ /* 5 */ ".ddddddddd."
+ /* 6 */ "..........."
+
+ // Level 1
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ ".ddddedddd."
+ /* 2 */ ".d.......d."
+ /* 3 */ ".d.......d."
+ /* 4 */ ".d.......d."
+ /* 5 */ ".ddddddddd."
+ /* 6 */ "..........."
+
+ // Level 2
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ ".dffdgdffd."
+ /* 2 */ ".f.......f."
+ /* 3 */ ".f.......f."
+ /* 4 */ ".f.......f."
+ /* 5 */ ".dffdfdffd."
+ /* 6 */ "..........."
+
+ // Level 3
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "bbbbbbbbbbb"
+ /* 1 */ "hdddddddddh"
+ /* 2 */ ".d..i.i..d."
+ /* 3 */ ".d.......d."
+ /* 4 */ ".d..j.j..d."
+ /* 5 */ "kdddddddddk"
+ /* 6 */ "lllllllllll"
+
+ // Level 4
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ "bbbbbbbbbbb"
+ /* 2 */ "hdddddddddh"
+ /* 3 */ ".dn.....od."
+ /* 4 */ "kdddddddddk"
+ /* 5 */ "lllllllllll"
+ /* 6 */ "..........."
+
+ // Level 5
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ "..........."
+ /* 2 */ "bbbbbbbbbbb"
+ /* 3 */ "ddddddddddd"
+ /* 4 */ "lllllllllll"
+ /* 5 */ "..........."
+ /* 6 */ "...........",
+
+ // Connectors:
+ "-1: 5, 0, 0: 2\n" /* Type -1, direction Z- */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // House11x7
+
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // House11x9:
+ // The data has been exported from the gallery Desert, area index 11, ID 115, created by xoft
+ {
+ // Size:
+ 11, 7, 9, // SizeX = 11, SizeY = 7, SizeZ = 9
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 10, 6, 8, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a:128: 0\n" /* sandstonestairs */
+ "b:128: 2\n" /* sandstonestairs */
+ "c:128: 1\n" /* sandstonestairs */
+ "d: 24: 0\n" /* sandstone */
+ "e: 64: 7\n" /* wooddoorblock */
+ "f:102: 0\n" /* glasspane */
+ "g: 64:12\n" /* wooddoorblock */
+ "h:128: 7\n" /* sandstonestairs */
+ "i: 50: 3\n" /* torch */
+ "j: 50: 4\n" /* torch */
+ "k:128: 6\n" /* sandstonestairs */
+ "l:128: 3\n" /* sandstonestairs */
+ "m: 19: 0\n" /* sponge */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "....abc...."
+ /* 1 */ ".ddddddddd."
+ /* 2 */ ".ddddddddd."
+ /* 3 */ ".ddddddddd."
+ /* 4 */ ".ddddddddd."
+ /* 5 */ ".ddddddddd."
+ /* 6 */ ".ddddddddd."
+ /* 7 */ ".ddddddddd."
+ /* 8 */ "..........."
+
+ // Level 1
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ ".ddddedddd."
+ /* 2 */ ".d.......d."
+ /* 3 */ ".d.......d."
+ /* 4 */ ".d.......d."
+ /* 5 */ ".d.......d."
+ /* 6 */ ".d.......d."
+ /* 7 */ ".ddddddddd."
+ /* 8 */ "..........."
+
+ // Level 2
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ ".dffdgdffd."
+ /* 2 */ ".f.......f."
+ /* 3 */ ".f.......f."
+ /* 4 */ ".d.......d."
+ /* 5 */ ".f.......f."
+ /* 6 */ ".f.......f."
+ /* 7 */ ".dfffdfffd."
+ /* 8 */ "..........."
+
+ // Level 3
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "bbbbbbbbbbb"
+ /* 1 */ "hdddddddddh"
+ /* 2 */ ".d..i.i..d."
+ /* 3 */ ".d.......d."
+ /* 4 */ ".d.......d."
+ /* 5 */ ".d.......d."
+ /* 6 */ ".d...j...d."
+ /* 7 */ "kdddddddddk"
+ /* 8 */ "lllllllllll"
+
+ // Level 4
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ "bbbbbbbbbbb"
+ /* 2 */ "hdddddddddh"
+ /* 3 */ ".d.......d."
+ /* 4 */ ".d.......d."
+ /* 5 */ ".d.......d."
+ /* 6 */ "kdddddddddk"
+ /* 7 */ "lllllllllll"
+ /* 8 */ "..........."
+
+ // Level 5
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ "..........."
+ /* 2 */ "bbbbbbbbbbb"
+ /* 3 */ "hdddddddddh"
+ /* 4 */ ".d.......d."
+ /* 5 */ "kdddddddddk"
+ /* 6 */ "lllllllllll"
+ /* 7 */ "..........."
+ /* 8 */ "..........."
+
+ // Level 6
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ "..........."
+ /* 2 */ "..........."
+ /* 3 */ "bbbbbbbbbbb"
+ /* 4 */ "ddddddddddd"
+ /* 5 */ "lllllllllll"
+ /* 6 */ "..........."
+ /* 7 */ "..........."
+ /* 8 */ "...........",
+
+ // Connectors:
+ "-1: 5, 0, 0: 2\n" /* Type -1, direction Z- */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // House11x9
+
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // House13x7:
+ // The data has been exported from the gallery Desert, area index 15, ID 125, created by Aloe_vera
+ {
+ // Size:
+ 13, 6, 7, // SizeX = 13, SizeY = 6, SizeZ = 7
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 12, 5, 6, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a:128: 0\n" /* sandstonestairs */
+ "b:128: 2\n" /* sandstonestairs */
+ "c:128: 1\n" /* sandstonestairs */
+ "d: 24: 0\n" /* sandstone */
+ "e: 64: 7\n" /* wooddoorblock */
+ "f:102: 0\n" /* glasspane */
+ "g: 64:12\n" /* wooddoorblock */
+ "h:128: 7\n" /* sandstonestairs */
+ "i: 50: 3\n" /* torch */
+ "j: 50: 4\n" /* torch */
+ "k:128: 6\n" /* sandstonestairs */
+ "l:128: 3\n" /* sandstonestairs */
+ "m: 19: 0\n" /* sponge */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 111 */
+ /* * 0123456789012 */
+ /* 0 */ ".....abc....."
+ /* 1 */ ".ddddddddddd."
+ /* 2 */ ".ddddddddddd."
+ /* 3 */ ".ddddddddddd."
+ /* 4 */ ".ddddddddddd."
+ /* 5 */ ".ddddddddddd."
+ /* 6 */ "............."
+
+ // Level 1
+ /* z\x* 111 */
+ /* * 0123456789012 */
+ /* 0 */ "............."
+ /* 1 */ ".dddddeddddd."
+ /* 2 */ ".d.........d."
+ /* 3 */ ".d.........d."
+ /* 4 */ ".d.........d."
+ /* 5 */ ".ddddddddddd."
+ /* 6 */ "............."
+
+ // Level 2
+ /* z\x* 111 */
+ /* * 0123456789012 */
+ /* 0 */ "............."
+ /* 1 */ ".dfffdgdfffd."
+ /* 2 */ ".f.........f."
+ /* 3 */ ".f.........f."
+ /* 4 */ ".f.........f."
+ /* 5 */ ".dffdfffdffd."
+ /* 6 */ "............."
+
+ // Level 3
+ /* z\x* 111 */
+ /* * 0123456789012 */
+ /* 0 */ "bbbbbbbbbbbbb"
+ /* 1 */ "hdddddddddddh"
+ /* 2 */ ".d...i.i...d."
+ /* 3 */ ".d.........d."
+ /* 4 */ ".d..j...j..d."
+ /* 5 */ "kdddddddddddk"
+ /* 6 */ "lllllllllllll"
+
+ // Level 4
+ /* z\x* 111 */
+ /* * 0123456789012 */
+ /* 0 */ "............."
+ /* 1 */ "bbbbbbbbbbbbb"
+ /* 2 */ "hdddddddddddh"
+ /* 3 */ ".d.........d."
+ /* 4 */ "kdddddddddddk"
+ /* 5 */ "lllllllllllll"
+ /* 6 */ "............."
+
+ // Level 5
+ /* z\x* 111 */
+ /* * 0123456789012 */
+ /* 0 */ "............."
+ /* 1 */ "............."
+ /* 2 */ "bbbbbbbbbbbbb"
+ /* 3 */ "ddddddddddddd"
+ /* 4 */ "lllllllllllll"
+ /* 5 */ "............."
+ /* 6 */ ".............",
+
+ // Connectors:
+ "-1: 6, 0, 0: 2\n" /* Type -1, direction Z- */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // House13x7
+
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // House13x9:
+ // The data has been exported from the gallery Desert, area index 12, ID 116, created by xoft
+ {
+ // Size:
+ 13, 7, 9, // SizeX = 13, SizeY = 7, SizeZ = 9
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 12, 6, 8, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a:128: 0\n" /* sandstonestairs */
+ "b:128: 2\n" /* sandstonestairs */
+ "c:128: 1\n" /* sandstonestairs */
+ "d: 24: 0\n" /* sandstone */
+ "e: 64: 7\n" /* wooddoorblock */
+ "f:102: 0\n" /* glasspane */
+ "g: 64:12\n" /* wooddoorblock */
+ "h:128: 7\n" /* sandstonestairs */
+ "i: 50: 3\n" /* torch */
+ "j: 50: 4\n" /* torch */
+ "k:128: 6\n" /* sandstonestairs */
+ "l:128: 3\n" /* sandstonestairs */
+ "m: 19: 0\n" /* sponge */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 111 */
+ /* * 0123456789012 */
+ /* 0 */ ".....abc....."
+ /* 1 */ ".ddddddddddd."
+ /* 2 */ ".ddddddddddd."
+ /* 3 */ ".ddddddddddd."
+ /* 4 */ ".ddddddddddd."
+ /* 5 */ ".ddddddddddd."
+ /* 6 */ ".ddddddddddd."
+ /* 7 */ ".ddddddddddd."
+ /* 8 */ "............."
+
+ // Level 1
+ /* z\x* 111 */
+ /* * 0123456789012 */
+ /* 0 */ "............."
+ /* 1 */ ".dddddeddddd."
+ /* 2 */ ".d.........d."
+ /* 3 */ ".d.........d."
+ /* 4 */ ".d.........d."
+ /* 5 */ ".d.........d."
+ /* 6 */ ".d.........d."
+ /* 7 */ ".ddddddddddd."
+ /* 8 */ "............."
+
+ // Level 2
+ /* z\x* 111 */
+ /* * 0123456789012 */
+ /* 0 */ "............."
+ /* 1 */ ".dfffdgdfffd."
+ /* 2 */ ".f.........f."
+ /* 3 */ ".f.........f."
+ /* 4 */ ".d.........d."
+ /* 5 */ ".f.........f."
+ /* 6 */ ".f.........f."
+ /* 7 */ ".dffdffdfffd."
+ /* 8 */ "............."
+
+ // Level 3
+ /* z\x* 111 */
+ /* * 0123456789012 */
+ /* 0 */ "bbbbbbbbbbbbb"
+ /* 1 */ "hdddddddddddh"
+ /* 2 */ ".d...i.i...d."
+ /* 3 */ ".d.........d."
+ /* 4 */ ".d.........d."
+ /* 5 */ ".d.........d."
+ /* 6 */ ".d..j..j...d."
+ /* 7 */ "kdddddddddddk"
+ /* 8 */ "lllllllllllll"
+
+ // Level 4
+ /* z\x* 111 */
+ /* * 0123456789012 */
+ /* 0 */ "............."
+ /* 1 */ "bbbbbbbbbbbbb"
+ /* 2 */ "hdddddddddddh"
+ /* 3 */ ".d.........d."
+ /* 4 */ ".d.........d."
+ /* 5 */ ".d.........d."
+ /* 6 */ "kdddddddddddk"
+ /* 7 */ "lllllllllllll"
+ /* 8 */ "............."
+
+ // Level 5
+ /* z\x* 111 */
+ /* * 0123456789012 */
+ /* 0 */ "............."
+ /* 1 */ "............."
+ /* 2 */ "bbbbbbbbbbbbb"
+ /* 3 */ "hdddddddddddh"
+ /* 4 */ ".d.........d."
+ /* 5 */ "kdddddddddddk"
+ /* 6 */ "lllllllllllll"
+ /* 7 */ "............."
+ /* 8 */ "............."
+
+ // Level 6
+ /* z\x* 111 */
+ /* * 0123456789012 */
+ /* 0 */ "............."
+ /* 1 */ "............."
+ /* 2 */ "............."
+ /* 3 */ "bbbbbbbbbbbbb"
+ /* 4 */ "ddddddddddddd"
+ /* 5 */ "lllllllllllll"
+ /* 6 */ "............."
+ /* 7 */ "............."
+ /* 8 */ ".............",
+
+ // Connectors:
+ "-1: 6, 0, 0: 2\n" /* Type -1, direction Z- */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // House13x9
+
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // House15x9:
+ // The data has been exported from the gallery Desert, area index 13, ID 118, created by xoft
+ {
+ // Size:
+ 15, 7, 9, // SizeX = 15, SizeY = 7, SizeZ = 9
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 14, 6, 8, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a:128: 0\n" /* sandstonestairs */
+ "b:128: 2\n" /* sandstonestairs */
+ "c:128: 1\n" /* sandstonestairs */
+ "d: 24: 0\n" /* sandstone */
+ "e: 64: 7\n" /* wooddoorblock */
+ "f:102: 0\n" /* glasspane */
+ "g: 64:12\n" /* wooddoorblock */
+ "h:128: 7\n" /* sandstonestairs */
+ "i: 50: 3\n" /* torch */
+ "j: 50: 4\n" /* torch */
+ "k:128: 6\n" /* sandstonestairs */
+ "l:128: 3\n" /* sandstonestairs */
+ "m: 19: 0\n" /* sponge */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ ".....abc......."
+ /* 1 */ ".ddddddddddddd."
+ /* 2 */ ".ddddddddddddd."
+ /* 3 */ ".ddddddddddddd."
+ /* 4 */ ".ddddddddddddd."
+ /* 5 */ ".ddddddddddddd."
+ /* 6 */ ".ddddddddddddd."
+ /* 7 */ ".ddddddddddddd."
+ /* 8 */ "..............."
+
+ // Level 1
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "..............."
+ /* 1 */ ".dddddeddddddd."
+ /* 2 */ ".d...........d."
+ /* 3 */ ".d...........d."
+ /* 4 */ ".d...........d."
+ /* 5 */ ".d...........d."
+ /* 6 */ ".d...........d."
+ /* 7 */ ".ddddddddddddd."
+ /* 8 */ "..............."
+
+ // Level 2
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "..............."
+ /* 1 */ ".dfffdgdffdffd."
+ /* 2 */ ".f...........f."
+ /* 3 */ ".f...........f."
+ /* 4 */ ".d...........d."
+ /* 5 */ ".f...........f."
+ /* 6 */ ".f...........f."
+ /* 7 */ ".dffdffdffdffd."
+ /* 8 */ "..............."
+
+ // Level 3
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "bbbbbbbbbbbbbbb"
+ /* 1 */ "hdddddddddddddh"
+ /* 2 */ ".d...i.i..i..d."
+ /* 3 */ ".d...........d."
+ /* 4 */ ".d...........d."
+ /* 5 */ ".d...........d."
+ /* 6 */ ".d..j..j..j..d."
+ /* 7 */ "kdddddddddddddk"
+ /* 8 */ "lllllllllllllll"
+
+ // Level 4
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "..............."
+ /* 1 */ "bbbbbbbbbbbbbbb"
+ /* 2 */ "hdddddddddddddh"
+ /* 3 */ ".d...........d."
+ /* 4 */ ".d...........d."
+ /* 5 */ ".d...........d."
+ /* 6 */ "kdddddddddddddk"
+ /* 7 */ "lllllllllllllll"
+ /* 8 */ "..............."
+
+ // Level 5
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "..............."
+ /* 1 */ "..............."
+ /* 2 */ "bbbbbbbbbbbbbbb"
+ /* 3 */ "hdddddddddddddh"
+ /* 4 */ ".d...........d."
+ /* 5 */ "kdddddddddddddk"
+ /* 6 */ "lllllllllllllll"
+ /* 7 */ "..............."
+ /* 8 */ "..............."
+
+ // Level 6
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "..............."
+ /* 1 */ "..............."
+ /* 2 */ "..............."
+ /* 3 */ "bbbbbbbbbbbbbbb"
+ /* 4 */ "ddddddddddddddd"
+ /* 5 */ "lllllllllllllll"
+ /* 6 */ "..............."
+ /* 7 */ "..............."
+ /* 8 */ "...............",
+
+ // Connectors:
+ "-1: 6, 0, 0: 2\n" /* Type -1, direction Z- */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // House15x9
+
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // House16x9:
+ // The data has been exported from the gallery Desert, area index 16, ID 126, created by Aloe_vera
+ {
+ // Size:
+ 16, 7, 9, // SizeX = 16, SizeY = 7, SizeZ = 9
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 15, 6, 8, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a:128: 0\n" /* sandstonestairs */
+ "b:128: 2\n" /* sandstonestairs */
+ "c:128: 1\n" /* sandstonestairs */
+ "d: 24: 0\n" /* sandstone */
+ "e: 64: 7\n" /* wooddoorblock */
+ "f:102: 0\n" /* glasspane */
+ "g: 64:12\n" /* wooddoorblock */
+ "h:128: 7\n" /* sandstonestairs */
+ "i: 50: 3\n" /* torch */
+ "j: 50: 4\n" /* torch */
+ "k:128: 6\n" /* sandstonestairs */
+ "l:128: 3\n" /* sandstonestairs */
+ "m: 19: 0\n" /* sponge */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 111111 */
+ /* * 0123456789012345 */
+ /* 0 */ "........abc....."
+ /* 1 */ ".dddddddddddddd."
+ /* 2 */ ".dddddddddddddd."
+ /* 3 */ ".dddddddddddddd."
+ /* 4 */ ".dddddddddddddd."
+ /* 5 */ ".dddddddddddddd."
+ /* 6 */ ".dddddddddddddd."
+ /* 7 */ ".dddddddddddddd."
+ /* 8 */ "................"
+
+ // Level 1
+ /* z\x* 111111 */
+ /* * 0123456789012345 */
+ /* 0 */ "................"
+ /* 1 */ ".ddddddddeddddd."
+ /* 2 */ ".d............d."
+ /* 3 */ ".d............d."
+ /* 4 */ ".d............d."
+ /* 5 */ ".d............d."
+ /* 6 */ ".d............d."
+ /* 7 */ ".dddddddddddddd."
+ /* 8 */ "................"
+
+ // Level 2
+ /* z\x* 111111 */
+ /* * 0123456789012345 */
+ /* 0 */ "................"
+ /* 1 */ ".dffdfffdgdfffd."
+ /* 2 */ ".f............f."
+ /* 3 */ ".f............f."
+ /* 4 */ ".d............d."
+ /* 5 */ ".f............f."
+ /* 6 */ ".f............f."
+ /* 7 */ ".dffdffdfffdffd."
+ /* 8 */ "................"
+
+ // Level 3
+ /* z\x* 111111 */
+ /* * 0123456789012345 */
+ /* 0 */ "bbbbbbbbbbbbbbbb"
+ /* 1 */ "hddddddddddddddh"
+ /* 2 */ ".d..i...i.i...d."
+ /* 3 */ ".d............d."
+ /* 4 */ ".d............d."
+ /* 5 */ ".d............d."
+ /* 6 */ ".d..j..j...j..d."
+ /* 7 */ "kddddddddddddddk"
+ /* 8 */ "llllllllllllllll"
+
+ // Level 4
+ /* z\x* 111111 */
+ /* * 0123456789012345 */
+ /* 0 */ "................"
+ /* 1 */ "bbbbbbbbbbbbbbbb"
+ /* 2 */ "hddddddddddddddh"
+ /* 3 */ ".d............d."
+ /* 4 */ ".d............d."
+ /* 5 */ ".d............d."
+ /* 6 */ "kddddddddddddddk"
+ /* 7 */ "llllllllllllllll"
+ /* 8 */ "................"
+
+ // Level 5
+ /* z\x* 111111 */
+ /* * 0123456789012345 */
+ /* 0 */ "................"
+ /* 1 */ "................"
+ /* 2 */ "bbbbbbbbbbbbbbbb"
+ /* 3 */ "hddddddddddddddh"
+ /* 4 */ ".d............d."
+ /* 5 */ "kddddddddddddddk"
+ /* 6 */ "llllllllllllllll"
+ /* 7 */ "................"
+ /* 8 */ "................"
+
+ // Level 6
+ /* z\x* 111111 */
+ /* * 0123456789012345 */
+ /* 0 */ "................"
+ /* 1 */ "................"
+ /* 2 */ "................"
+ /* 3 */ "bbbbbbbbbbbbbbbb"
+ /* 4 */ "dddddddddddddddd"
+ /* 5 */ "llllllllllllllll"
+ /* 6 */ "................"
+ /* 7 */ "................"
+ /* 8 */ "................",
+
+ // Connectors:
+ "-1: 9, 0, 0: 2\n" /* Type -1, direction Z- */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // House16x9
+
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // House7x7:
+ // The data has been exported from the gallery Desert, area index 8, ID 112, created by Aloe_vera
+ {
+ // Size:
+ 7, 6, 7, // SizeX = 7, SizeY = 6, SizeZ = 7
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 6, 5, 6, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a:128: 0\n" /* sandstonestairs */
+ "b:128: 2\n" /* sandstonestairs */
+ "c:128: 1\n" /* sandstonestairs */
+ "d: 24: 0\n" /* sandstone */
+ "e: 64: 7\n" /* wooddoorblock */
+ "f:102: 0\n" /* glasspane */
+ "g: 64:12\n" /* wooddoorblock */
+ "h:128: 7\n" /* sandstonestairs */
+ "i: 50: 3\n" /* torch */
+ "j:128: 6\n" /* sandstonestairs */
+ "k:128: 3\n" /* sandstonestairs */
+ "m: 19: 0\n" /* sponge */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 0123456 */
+ /* 0 */ "...abc."
+ /* 1 */ ".ddddd."
+ /* 2 */ ".ddddd."
+ /* 3 */ ".ddddd."
+ /* 4 */ ".ddddd."
+ /* 5 */ ".ddddd."
+ /* 6 */ "......."
+
+ // Level 1
+ /* z\x* 0123456 */
+ /* 0 */ "......."
+ /* 1 */ ".ddded."
+ /* 2 */ ".d...d."
+ /* 3 */ ".d...d."
+ /* 4 */ ".d...d."
+ /* 5 */ ".ddddd."
+ /* 6 */ "......."
+
+ // Level 2
+ /* z\x* 0123456 */
+ /* 0 */ "......."
+ /* 1 */ ".dfdgd."
+ /* 2 */ ".f...f."
+ /* 3 */ ".f...f."
+ /* 4 */ ".f...f."
+ /* 5 */ ".dfffd."
+ /* 6 */ "......."
+
+ // Level 3
+ /* z\x* 0123456 */
+ /* 0 */ "bbbbbbb"
+ /* 1 */ "hdddddh"
+ /* 2 */ ".d.i.d."
+ /* 3 */ ".d...d."
+ /* 4 */ ".d...d."
+ /* 5 */ "jdddddj"
+ /* 6 */ "kkkkkkk"
+
+ // Level 4
+ /* z\x* 0123456 */
+ /* 0 */ "......."
+ /* 1 */ "bbbbbbb"
+ /* 2 */ "hdddddh"
+ /* 3 */ ".d...d."
+ /* 4 */ "jdddddj"
+ /* 5 */ "kkkkkkk"
+ /* 6 */ "......."
+
+ // Level 5
+ /* z\x* 0123456 */
+ /* 0 */ "......."
+ /* 1 */ "......."
+ /* 2 */ "bbbbbbb"
+ /* 3 */ "ddddddd"
+ /* 4 */ "kkkkkkk"
+ /* 5 */ "......."
+ /* 6 */ ".......",
+
+ // Connectors:
+ "-1: 4, 0, 0: 2\n" /* Type -1, direction Z- */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // House7x7
+
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // House9x7:
+ // The data has been exported from the gallery Desert, area index 9, ID 113, created by xoft
+ {
+ // Size:
+ 9, 6, 7, // SizeX = 9, SizeY = 6, SizeZ = 7
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 8, 5, 6, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a:128: 0\n" /* sandstonestairs */
+ "b:128: 2\n" /* sandstonestairs */
+ "c:128: 1\n" /* sandstonestairs */
+ "d: 24: 0\n" /* sandstone */
+ "e: 64: 7\n" /* wooddoorblock */
+ "f:102: 0\n" /* glasspane */
+ "g: 64:12\n" /* wooddoorblock */
+ "h:128: 7\n" /* sandstonestairs */
+ "i: 50: 3\n" /* torch */
+ "j: 50: 4\n" /* torch */
+ "k:128: 6\n" /* sandstonestairs */
+ "l:128: 3\n" /* sandstonestairs */
+ "m: 19: 0\n" /* sponge */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 012345678 */
+ /* 0 */ "...abc..."
+ /* 1 */ ".ddddddd."
+ /* 2 */ ".ddddddd."
+ /* 3 */ ".ddddddd."
+ /* 4 */ ".ddddddd."
+ /* 5 */ ".ddddddd."
+ /* 6 */ "........."
+
+ // Level 1
+ /* z\x* 012345678 */
+ /* 0 */ "........."
+ /* 1 */ ".dddeddd."
+ /* 2 */ ".d.....d."
+ /* 3 */ ".d.....d."
+ /* 4 */ ".d.....d."
+ /* 5 */ ".ddddddd."
+ /* 6 */ "........."
+
+ // Level 2
+ /* z\x* 012345678 */
+ /* 0 */ "........."
+ /* 1 */ ".dfdgdfd."
+ /* 2 */ ".f.....f."
+ /* 3 */ ".f.....f."
+ /* 4 */ ".f.....f."
+ /* 5 */ ".dffdffd."
+ /* 6 */ "........."
+
+ // Level 3
+ /* z\x* 012345678 */
+ /* 0 */ "bbbbbbbbb"
+ /* 1 */ "hdddddddh"
+ /* 2 */ ".d.i.i.d."
+ /* 3 */ ".d.....d."
+ /* 4 */ ".d..j..d."
+ /* 5 */ "kdddddddk"
+ /* 6 */ "lllllllll"
+
+ // Level 4
+ /* z\x* 012345678 */
+ /* 0 */ "........."
+ /* 1 */ "bbbbbbbbb"
+ /* 2 */ "hdddddddh"
+ /* 3 */ ".d.....d."
+ /* 4 */ "kdddddddk"
+ /* 5 */ "lllllllll"
+ /* 6 */ "........."
+
+ // Level 5
+ /* z\x* 012345678 */
+ /* 0 */ "........."
+ /* 1 */ "........."
+ /* 2 */ "bbbbbbbbb"
+ /* 3 */ "ddddddddd"
+ /* 4 */ "lllllllll"
+ /* 5 */ "........."
+ /* 6 */ ".........",
+
+ // Connectors:
+ "-1: 4, 0, 0: 2\n" /* Type -1, direction Z- */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // House9x7
+
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // House9x9:
+ // The data has been exported from the gallery Desert, area index 10, ID 114, created by xoft
+ {
+ // Size:
+ 9, 7, 9, // SizeX = 9, SizeY = 7, SizeZ = 9
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 8, 6, 8, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a:128: 0\n" /* sandstonestairs */
+ "b:128: 2\n" /* sandstonestairs */
+ "c:128: 1\n" /* sandstonestairs */
+ "d: 24: 0\n" /* sandstone */
+ "e: 64: 7\n" /* wooddoorblock */
+ "f:102: 0\n" /* glasspane */
+ "g: 64:12\n" /* wooddoorblock */
+ "h:128: 7\n" /* sandstonestairs */
+ "i: 50: 3\n" /* torch */
+ "j: 50: 4\n" /* torch */
+ "k:128: 6\n" /* sandstonestairs */
+ "l:128: 3\n" /* sandstonestairs */
+ "m: 19: 0\n" /* sponge */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 012345678 */
+ /* 0 */ "...abc..."
+ /* 1 */ ".ddddddd."
+ /* 2 */ ".ddddddd."
+ /* 3 */ ".ddddddd."
+ /* 4 */ ".ddddddd."
+ /* 5 */ ".ddddddd."
+ /* 6 */ ".ddddddd."
+ /* 7 */ ".ddddddd."
+ /* 8 */ "........."
+
+ // Level 1
+ /* z\x* 012345678 */
+ /* 0 */ "........."
+ /* 1 */ ".dddeddd."
+ /* 2 */ ".d.....d."
+ /* 3 */ ".d.....d."
+ /* 4 */ ".d.....d."
+ /* 5 */ ".d.....d."
+ /* 6 */ ".d.....d."
+ /* 7 */ ".ddddddd."
+ /* 8 */ "........."
+
+ // Level 2
+ /* z\x* 012345678 */
+ /* 0 */ "........."
+ /* 1 */ ".dfdgdfd."
+ /* 2 */ ".f.....f."
+ /* 3 */ ".f.....f."
+ /* 4 */ ".d.....d."
+ /* 5 */ ".f.....f."
+ /* 6 */ ".f.....f."
+ /* 7 */ ".dffdffd."
+ /* 8 */ "........."
+
+ // Level 3
+ /* z\x* 012345678 */
+ /* 0 */ "bbbbbbbbb"
+ /* 1 */ "hdddddddh"
+ /* 2 */ ".d.i.i.d."
+ /* 3 */ ".d.....d."
+ /* 4 */ ".d.....d."
+ /* 5 */ ".d.....d."
+ /* 6 */ ".d..j..d."
+ /* 7 */ "kdddddddk"
+ /* 8 */ "lllllllll"
+
+ // Level 4
+ /* z\x* 012345678 */
+ /* 0 */ "........."
+ /* 1 */ "bbbbbbbbb"
+ /* 2 */ "hdddddddh"
+ /* 3 */ ".d.....d."
+ /* 4 */ ".d.....d."
+ /* 5 */ ".d.....d."
+ /* 6 */ "kdddddddk"
+ /* 7 */ "lllllllll"
+ /* 8 */ "........."
+
+ // Level 5
+ /* z\x* 012345678 */
+ /* 0 */ "........."
+ /* 1 */ "........."
+ /* 2 */ "bbbbbbbbb"
+ /* 3 */ "hdddddddh"
+ /* 4 */ ".d.....d."
+ /* 5 */ "kdddddddk"
+ /* 6 */ "lllllllll"
+ /* 7 */ "........."
+ /* 8 */ "........."
+
+ // Level 6
+ /* z\x* 012345678 */
+ /* 0 */ "........."
+ /* 1 */ "........."
+ /* 2 */ "........."
+ /* 3 */ "bbbbbbbbb"
+ /* 4 */ "ddddddddd"
+ /* 5 */ "lllllllll"
+ /* 6 */ "........."
+ /* 7 */ "........."
+ /* 8 */ ".........",
+
+ // Connectors:
+ "-1: 4, 0, 0: 2\n" /* Type -1, direction Z- */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // House9x9
+
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // HouseL14x12:
+ // The data has been exported from the gallery Desert, area index 7, ID 82, created by Aloe_vera
+ {
+ // Size:
+ 14, 6, 12, // SizeX = 14, SizeY = 6, SizeZ = 12
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 13, 5, 11, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a:128: 0\n" /* sandstonestairs */
+ "b:128: 2\n" /* sandstonestairs */
+ "c:128: 1\n" /* sandstonestairs */
+ "d: 24: 0\n" /* sandstone */
+ "e:128: 3\n" /* sandstonestairs */
+ "f: 64: 7\n" /* wooddoorblock */
+ "g: 64: 5\n" /* wooddoorblock */
+ "h:102: 0\n" /* glasspane */
+ "i: 64:12\n" /* wooddoorblock */
+ "j:128: 7\n" /* sandstonestairs */
+ "k: 50: 3\n" /* torch */
+ "l: 50: 4\n" /* torch */
+ "m: 19: 0\n" /* sponge */
+ "n:128: 6\n" /* sandstonestairs */
+ "o:128: 5\n" /* sandstonestairs */
+ "p:128: 4\n" /* sandstonestairs */
+ "q: 50: 1\n" /* torch */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 1111 */
+ /* * 01234567890123 */
+ /* 0 */ ".......abc...."
+ /* 1 */ ".dddddddddddd."
+ /* 2 */ ".dddddddddddd."
+ /* 3 */ ".dddddddddddd."
+ /* 4 */ ".dddddddddddd."
+ /* 5 */ ".dddddddddddd."
+ /* 6 */ "....aec.ddddd."
+ /* 7 */ "mmmmmmm.ddddd."
+ /* 8 */ "mmmmmmm.ddddd."
+ /* 9 */ "mmmmmmm.ddddd."
+ /* 10 */ "mmmmmmm.ddddd."
+ /* 11 */ "mmmmmmm......."
+
+ // Level 1
+ /* z\x* 1111 */
+ /* * 01234567890123 */
+ /* 0 */ ".............."
+ /* 1 */ ".dddddddfdddd."
+ /* 2 */ ".d..........d."
+ /* 3 */ ".d..........d."
+ /* 4 */ ".d..........d."
+ /* 5 */ ".ddddgddd...d."
+ /* 6 */ "........d...d."
+ /* 7 */ "mmmmmmm.d...d."
+ /* 8 */ "mmmmmmm.d...d."
+ /* 9 */ "mmmmmmm.d...d."
+ /* 10 */ "mmmmmmm.ddddd."
+ /* 11 */ "mmmmmmm......."
+
+ // Level 2
+ /* z\x* 1111 */
+ /* * 01234567890123 */
+ /* 0 */ ".............."
+ /* 1 */ ".dhhdhhdidhhd."
+ /* 2 */ ".h..........h."
+ /* 3 */ ".h..........h."
+ /* 4 */ ".h..........d."
+ /* 5 */ ".dhhdidhh...h."
+ /* 6 */ "........h...h."
+ /* 7 */ "mmmmmmm.d...d."
+ /* 8 */ "mmmmmmm.h...h."
+ /* 9 */ "mmmmmmm.h...h."
+ /* 10 */ "mmmmmmm.dhhhd."
+ /* 11 */ "mmmmmmm......."
+
+ // Level 3
+ /* z\x* 1111 */
+ /* * 01234567890123 */
+ /* 0 */ "bbbbbbbbbbbbbb"
+ /* 1 */ "jddddddddddddc"
+ /* 2 */ ".d.....k.k..dc"
+ /* 3 */ ".d..........dc"
+ /* 4 */ ".d..l.l.....dc"
+ /* 5 */ "ndddddddd...dc"
+ /* 6 */ "eeeeeeead...dc"
+ /* 7 */ "mmmmmmmad...dc"
+ /* 8 */ "mmmmmmmad...dc"
+ /* 9 */ "mmmmmmmad...dc"
+ /* 10 */ "mmmmmmmadddddc"
+ /* 11 */ "mmmmmmmao...pc"
+
+ // Level 4
+ /* z\x* 1111 */
+ /* * 01234567890123 */
+ /* 0 */ ".............."
+ /* 1 */ "bbbbbbbbbbbbb."
+ /* 2 */ "jdddddddddddc."
+ /* 3 */ ".dq........dc."
+ /* 4 */ "nddddddddd.dc."
+ /* 5 */ "eeeeeeeead.dc."
+ /* 6 */ "........ad.dc."
+ /* 7 */ "mmmmmmm.ad.dc."
+ /* 8 */ "mmmmmmm.ad.dc."
+ /* 9 */ "mmmmmmm.adldc."
+ /* 10 */ "mmmmmmm.adddc."
+ /* 11 */ "mmmmmmm.ao.pc."
+
+ // Level 5
+ /* z\x* 1111 */
+ /* * 01234567890123 */
+ /* 0 */ ".............."
+ /* 1 */ ".............."
+ /* 2 */ "bbbbbbbbbbbb.."
+ /* 3 */ "dddddddddddc.."
+ /* 4 */ "eeeeeeeeeadc.."
+ /* 5 */ ".........adc.."
+ /* 6 */ ".........adc.."
+ /* 7 */ "mmmmmmm..adc.."
+ /* 8 */ "mmmmmmm..adc.."
+ /* 9 */ "mmmmmmm..adc.."
+ /* 10 */ "mmmmmmm..adc.."
+ /* 11 */ "mmmmmmm..adc..",
+
+ // Connectors:
+ "-1: 8, 0, 0: 2\n" /* Type -1, direction Z- */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // HouseL14x12
+
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // HouseL14x12:
+ // The data has been exported from the gallery Desert, area index 14, ID 124, created by Aloe_vera
+ {
+ // Size:
+ 14, 7, 12, // SizeX = 14, SizeY = 7, SizeZ = 12
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 13, 6, 11, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a:128: 0\n" /* sandstonestairs */
+ "b:128: 2\n" /* sandstonestairs */
+ "c:128: 1\n" /* sandstonestairs */
+ "d: 24: 0\n" /* sandstone */
+ "e:128: 3\n" /* sandstonestairs */
+ "f: 64: 7\n" /* wooddoorblock */
+ "g:102: 0\n" /* glasspane */
+ "h: 64:12\n" /* wooddoorblock */
+ "i:128: 7\n" /* sandstonestairs */
+ "j: 50: 3\n" /* torch */
+ "k: 50: 2\n" /* torch */
+ "l: 50: 4\n" /* torch */
+ "m: 19: 0\n" /* sponge */
+ "n:128: 6\n" /* sandstonestairs */
+ "o: 50: 1\n" /* torch */
+ "p:128: 5\n" /* sandstonestairs */
+ "q:128: 4\n" /* sandstonestairs */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 1111 */
+ /* * 01234567890123 */
+ /* 0 */ "....abc......."
+ /* 1 */ ".dddddddddddd."
+ /* 2 */ ".dddddddddddd."
+ /* 3 */ ".dddddddddddd."
+ /* 4 */ ".dddddddddddd."
+ /* 5 */ ".dddddddddddd."
+ /* 6 */ ".dddddddddddd."
+ /* 7 */ ".dddddddddddd."
+ /* 8 */ "....aeddddddd."
+ /* 9 */ "mmmmm.ddddddd."
+ /* 10 */ "mmmmm.ddddddd."
+ /* 11 */ "mmmmm........."
+
+ // Level 1
+ /* z\x* 1111 */
+ /* * 01234567890123 */
+ /* 0 */ ".............."
+ /* 1 */ ".ddddfddddddd."
+ /* 2 */ ".d..........d."
+ /* 3 */ ".d..........d."
+ /* 4 */ ".d..........d."
+ /* 5 */ ".d..........d."
+ /* 6 */ ".d..........d."
+ /* 7 */ ".ddddfd.....d."
+ /* 8 */ "......d.....d."
+ /* 9 */ "mmmmm.d.....d."
+ /* 10 */ "mmmmm.ddddddd."
+ /* 11 */ "mmmmm........."
+
+ // Level 2
+ /* z\x* 1111 */
+ /* * 01234567890123 */
+ /* 0 */ ".............."
+ /* 1 */ ".dggdhdggdggd."
+ /* 2 */ ".g..........g."
+ /* 3 */ ".g..........g."
+ /* 4 */ ".d..........d."
+ /* 5 */ ".g..........g."
+ /* 6 */ ".g..........g."
+ /* 7 */ ".dggdhd.....d."
+ /* 8 */ "......g.....g."
+ /* 9 */ "mmmmm.g.....g."
+ /* 10 */ "mmmmm.dggdggd."
+ /* 11 */ "mmmmm........."
+
+ // Level 3
+ /* z\x* 1111 */
+ /* * 01234567890123 */
+ /* 0 */ "bbbbbbbbbbbbbb"
+ /* 1 */ "iddddddddddddc"
+ /* 2 */ ".d..j.j.....dc"
+ /* 3 */ ".d..........dc"
+ /* 4 */ ".d.........kdc"
+ /* 5 */ ".d..........dc"
+ /* 6 */ ".d..l.l.....dc"
+ /* 7 */ "nddddddo...kdc"
+ /* 8 */ "eeeeead.....dc"
+ /* 9 */ "mmmmmad.....dc"
+ /* 10 */ "mmmmmadddddddc"
+ /* 11 */ "mmmmmap.....qc"
+
+ // Level 4
+ /* z\x* 1111 */
+ /* * 01234567890123 */
+ /* 0 */ ".............."
+ /* 1 */ "bbbbbbbbbbbbc."
+ /* 2 */ "idddddddddddc."
+ /* 3 */ ".d.........dc."
+ /* 4 */ ".d.........dc."
+ /* 5 */ ".d.........dc."
+ /* 6 */ "nddddddd...dc."
+ /* 7 */ "eeeeeead...dc."
+ /* 8 */ "......ad...dc."
+ /* 9 */ "mmmmm.ad...dc."
+ /* 10 */ "mmmmm.adddddc."
+ /* 11 */ "mmmmm.ap...qc."
+
+ // Level 5
+ /* z\x* 1111 */
+ /* * 01234567890123 */
+ /* 0 */ ".............."
+ /* 1 */ ".............."
+ /* 2 */ "bbbbbbbbbbbb.."
+ /* 3 */ "iddddddddddc.."
+ /* 4 */ ".d........dc.."
+ /* 5 */ "ndddddddd.dc.."
+ /* 6 */ "eeeeeeeed.dc.."
+ /* 7 */ ".......ad.dc.."
+ /* 8 */ ".......ad.dc.."
+ /* 9 */ "mmmmm..ad.dc.."
+ /* 10 */ "mmmmm..adddc.."
+ /* 11 */ "mmmmm..ap.qc.."
+
+ // Level 6
+ /* z\x* 1111 */
+ /* * 01234567890123 */
+ /* 0 */ ".............."
+ /* 1 */ ".............."
+ /* 2 */ ".............."
+ /* 3 */ "bbbbbbbbbbb..."
+ /* 4 */ "ddddddddddc..."
+ /* 5 */ "eeeeeeeeadc..."
+ /* 6 */ "........adc..."
+ /* 7 */ "........adc..."
+ /* 8 */ "........adc..."
+ /* 9 */ "mmmmm...adc..."
+ /* 10 */ "mmmmm...adc..."
+ /* 11 */ "mmmmm...adc...",
+
+ // Connectors:
+ "-1: 5, 0, 0: 2\n" /* Type -1, direction Z- */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // HouseL14x12
+
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // SingleField:
+ // The data has been exported from the gallery Desert, area index 17, ID 127, created by Aloe_vera
+ {
+ // Size:
+ 10, 2, 7, // SizeX = 10, SizeY = 2, SizeZ = 7
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 9, 1, 6, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a: 24: 0\n" /* sandstone */
+ "b: 60: 7\n" /* tilleddirt */
+ "c: 8: 0\n" /* water */
+ "d: 50: 5\n" /* torch */
+ "e: 59: 7\n" /* crops */
+ "m: 19: 0\n" /* sponge */,
+
+ // Block data:
+ // Level 0
+ /* z\x* */
+ /* * 0123456789 */
+ /* 0 */ "aaaaaaaaaa"
+ /* 1 */ "abbbbbbbba"
+ /* 2 */ "abbbbbbbba"
+ /* 3 */ "acccccccca"
+ /* 4 */ "abbbbbbbba"
+ /* 5 */ "abbbbbbbba"
+ /* 6 */ "aaaaaaaaaa"
+
+ // Level 1
+ /* z\x* */
+ /* * 0123456789 */
+ /* 0 */ "d........d"
+ /* 1 */ ".eeeeeeee."
+ /* 2 */ ".eeeeeeee."
+ /* 3 */ ".........."
+ /* 4 */ ".eeeeeeee."
+ /* 5 */ ".eeeeeeee."
+ /* 6 */ "d........d",
+
+ // Connectors:
+ "-1: 0, 0, 3: 4\n" /* Type -1, direction X- */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // SingleField
+
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // SmallHut:
+ // The data has been exported from the gallery Desert, area index 4, ID 68, created by tonibm1999
+ {
+ // Size:
+ 5, 5, 6, // SizeX = 5, SizeY = 5, SizeZ = 6
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 4, 4, 5, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a: 24: 0\n" /* sandstone */
+ "b:128: 3\n" /* sandstonestairs */
+ "c: 24: 2\n" /* sandstone */
+ "d: 50: 5\n" /* torch */
+ "e: 26:10\n" /* bedblock */
+ "f: 26: 2\n" /* bedblock */
+ "g: 64: 5\n" /* wooddoorblock */
+ "h: 64:12\n" /* wooddoorblock */
+ "m: 19: 0\n" /* sponge */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 01234 */
+ /* 0 */ "aaaaa"
+ /* 1 */ "aaaaa"
+ /* 2 */ "aaaaa"
+ /* 3 */ "aaaaa"
+ /* 4 */ "aaaaa"
+ /* 5 */ "..b.."
+
+ // Level 1
+ /* z\x* 01234 */
+ /* 0 */ "accca"
+ /* 1 */ "cdedc"
+ /* 2 */ "c.f.c"
+ /* 3 */ "c...c"
+ /* 4 */ "acgca"
+ /* 5 */ "....."
+
+ // Level 2
+ /* z\x* 01234 */
+ /* 0 */ "ac.ca"
+ /* 1 */ "c...c"
+ /* 2 */ "....."
+ /* 3 */ "c...c"
+ /* 4 */ "achca"
+ /* 5 */ "....."
+
+ // Level 3
+ /* z\x* 01234 */
+ /* 0 */ "accca"
+ /* 1 */ "c...c"
+ /* 2 */ "c...c"
+ /* 3 */ "c...c"
+ /* 4 */ "accca"
+ /* 5 */ "....."
+
+ // Level 4
+ /* z\x* 01234 */
+ /* 0 */ ".aaa."
+ /* 1 */ "aaaaa"
+ /* 2 */ "aaaaa"
+ /* 3 */ "aaaaa"
+ /* 4 */ ".aaa."
+ /* 5 */ ".....",
+
+ // Connectors:
+ "-1: 2, 0, 5: 3\n" /* Type -1, direction Z+ */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // SmallHut
+}; // g_SandVillagePrefabs
+
+
+
+
+
+
+const cPrefab::sDef g_SandVillageStartingPrefabs[] =
+{
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // Well:
+ // The data has been exported from the gallery Desert, area index 0, ID 1, created by Aloe_vera
+ {
+ // Size:
+ 4, 13, 4, // SizeX = 4, SizeY = 13, SizeZ = 4
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 3, 12, 3, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a: 1: 0\n" /* stone */
+ "b: 24: 0\n" /* sandstone */
+ "c: 8: 0\n" /* water */
+ "d: 85: 0\n" /* fence */
+ "m: 19: 0\n" /* sponge */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 0123 */
+ /* 0 */ "aaaa"
+ /* 1 */ "aaaa"
+ /* 2 */ "aaaa"
+ /* 3 */ "aaaa"
+
+ // Level 1
+ /* z\x* 0123 */
+ /* 0 */ "bbbb"
+ /* 1 */ "bccb"
+ /* 2 */ "bccb"
+ /* 3 */ "bbbb"
+
+ // Level 2
+ /* z\x* 0123 */
+ /* 0 */ "bbbb"
+ /* 1 */ "bccb"
+ /* 2 */ "bccb"
+ /* 3 */ "bbbb"
+
+ // Level 3
+ /* z\x* 0123 */
+ /* 0 */ "bbbb"
+ /* 1 */ "bccb"
+ /* 2 */ "bccb"
+ /* 3 */ "bbbb"
+
+ // Level 4
+ /* z\x* 0123 */
+ /* 0 */ "bbbb"
+ /* 1 */ "bccb"
+ /* 2 */ "bccb"
+ /* 3 */ "bbbb"
+
+ // Level 5
+ /* z\x* 0123 */
+ /* 0 */ "bbbb"
+ /* 1 */ "bccb"
+ /* 2 */ "bccb"
+ /* 3 */ "bbbb"
+
+ // Level 6
+ /* z\x* 0123 */
+ /* 0 */ "bbbb"
+ /* 1 */ "bccb"
+ /* 2 */ "bccb"
+ /* 3 */ "bbbb"
+
+ // Level 7
+ /* z\x* 0123 */
+ /* 0 */ "bbbb"
+ /* 1 */ "bccb"
+ /* 2 */ "bccb"
+ /* 3 */ "bbbb"
+
+ // Level 8
+ /* z\x* 0123 */
+ /* 0 */ "bbbb"
+ /* 1 */ "b..b"
+ /* 2 */ "b..b"
+ /* 3 */ "bbbb"
+
+ // Level 9
+ /* z\x* 0123 */
+ /* 0 */ "d..d"
+ /* 1 */ "...."
+ /* 2 */ "...."
+ /* 3 */ "d..d"
+
+ // Level 10
+ /* z\x* 0123 */
+ /* 0 */ "d..d"
+ /* 1 */ "...."
+ /* 2 */ "...."
+ /* 3 */ "d..d"
+
+ // Level 11
+ /* z\x* 0123 */
+ /* 0 */ "d..d"
+ /* 1 */ "...."
+ /* 2 */ "...."
+ /* 3 */ "d..d"
+
+ // Level 12
+ /* z\x* 0123 */
+ /* 0 */ "bbbb"
+ /* 1 */ "bbbb"
+ /* 2 */ "bbbb"
+ /* 3 */ "bbbb",
+
+ // Connectors:
+ "2: 2, 8, 0: 2\n" /* Type 2, direction Z- */
+ "2: 0, 8, 1: 4\n" /* Type 2, direction X- */
+ "2: 1, 8, 3: 3\n" /* Type 2, direction Z+ */
+ "2: 3, 8, 2: 5\n" /* Type 2, direction X+ */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+ }, // Well
+};
+
+
+
+
+
+// The prefab counts:
+
+const size_t g_SandVillagePrefabsCount = ARRAYCOUNT(g_SandVillagePrefabs);
+
+const size_t g_SandVillageStartingPrefabsCount = ARRAYCOUNT(g_SandVillageStartingPrefabs);
+
diff --git a/src/Generating/Prefabs/SandVillagePrefabs.h b/src/Generating/Prefabs/SandVillagePrefabs.h
new file mode 100644
index 000000000..7b00db56f
--- /dev/null
+++ b/src/Generating/Prefabs/SandVillagePrefabs.h
@@ -0,0 +1,15 @@
+
+// SandVillagePrefabs.h
+
+// Declares the prefabs in the group SandVillage
+
+#include "../Prefab.h"
+
+
+
+
+
+extern const cPrefab::sDef g_SandVillagePrefabs[];
+extern const cPrefab::sDef g_SandVillageStartingPrefabs[];
+extern const size_t g_SandVillagePrefabsCount;
+extern const size_t g_SandVillageStartingPrefabsCount;
diff --git a/src/Generating/VillageGen.cpp b/src/Generating/VillageGen.cpp
new file mode 100644
index 000000000..520d63029
--- /dev/null
+++ b/src/Generating/VillageGen.cpp
@@ -0,0 +1,296 @@
+
+// VillageGen.cpp
+
+// Implements the cVillageGen class representing the village generator
+
+#include "Globals.h"
+#include "VillageGen.h"
+#include "Prefabs/PlainsVillagePrefabs.h"
+#include "Prefabs/SandVillagePrefabs.h"
+#include "PieceGenerator.h"
+
+
+
+
+
+/*
+How village generating works:
+By descending from a cGridStructGen, a semi-random grid is generated. A village may be generated for each of
+the grid's cells. Each cell checks the biomes in an entire chunk around it, only generating a village if all
+biomes are village-friendly. If yes, the entire village structure is built for that cell. If not, the cell
+is left village-less.
+
+A village is generated using the regular BFS piece generator. The well piece is used as the starting piece,
+the roads and houses are then used as the following pieces. Only the houses are read from the prefabs,
+though, the roads are generated by code and their content is ignored. A special subclass of the cPiecePool
+class is used, so that the roads connect to each other and to the well only in predefined manners.
+
+The well has connectors of type "1". The houses have connectors of type "-1". The roads have connectors of
+both types, type "-1" at the far ends and type "1" on the long edges.
+
+When the village is about to be drawn into a chunk, it queries the heights for each piece intersecting the
+chunk. The pieces are shifted so that their pivot points lie on the surface, and the roads are drawn
+directly by turning the surface blocks into gravel / sandstone.
+*/
+
+class cVillagePiecePool :
+ public cPrefabPiecePool
+{
+ typedef cPrefabPiecePool super;
+public:
+ cVillagePiecePool(
+ const cPrefab::sDef * a_PieceDefs, size_t a_NumPieceDefs,
+ const cPrefab::sDef * a_StartingPieceDefs, size_t a_NumStartingPieceDefs
+ ) :
+ super(a_PieceDefs, a_NumPieceDefs, a_StartingPieceDefs, a_NumStartingPieceDefs)
+ {
+ // Add the road pieces:
+ for (int len = 19; len < 60; len += 8)
+ {
+ cBlockArea BA;
+ BA.Create(len, 1, 3, cBlockArea::baTypes | cBlockArea::baMetas);
+ BA.Fill(cBlockArea::baTypes | cBlockArea::baMetas, E_BLOCK_GRAVEL, 0);
+ cPrefab * RoadPiece = new cPrefab(BA, 1);
+ RoadPiece->AddConnector(0, 0, 1, BLOCK_FACE_XM, -2);
+ RoadPiece->AddConnector(len - 1, 0, 1, BLOCK_FACE_XP, -2);
+
+ // Add the road connectors:
+ for (int x = 1; x < len; x += 8)
+ {
+ RoadPiece->AddConnector(x, 0, 0, BLOCK_FACE_ZM, 2);
+ RoadPiece->AddConnector(x, 0, 2, BLOCK_FACE_ZP, 2);
+ }
+
+ // Add the buildings connectors:
+ for (int x = 5; x < len; x += 8)
+ {
+ RoadPiece->AddConnector(x, 0, 0, BLOCK_FACE_ZM, 1);
+ RoadPiece->AddConnector(x, 0, 2, BLOCK_FACE_ZP, 1);
+ }
+ m_AllPieces.push_back(RoadPiece);
+ m_PiecesByConnector[-2].push_back(RoadPiece);
+ m_PiecesByConnector[1].push_back(RoadPiece);
+ m_PiecesByConnector[2].push_back(RoadPiece);
+ } // for len - roads of varying length
+ }
+
+
+ // cPrefabPiecePool overrides:
+ virtual int GetPieceWeight(const cPlacedPiece & a_PlacedPiece, const cPiece::cConnector & a_ExistingConnector, const cPiece & a_NewPiece) override
+ {
+ // Roads cannot branch T-wise (appending -2 connector to a +2 connector):
+ if ((a_ExistingConnector.m_Type == 2) && (a_PlacedPiece.GetDepth() > 0))
+ {
+ return 0;
+ }
+
+ return ((const cPrefab &)a_NewPiece).GetPieceWeight(a_PlacedPiece, a_ExistingConnector);
+ }
+} ;
+
+
+
+
+
+class cVillageGen::cVillage :
+ public cGridStructGen::cStructure
+{
+ typedef cGridStructGen::cStructure super;
+
+public:
+ cVillage(
+ int a_Seed,
+ int a_OriginX, int a_OriginZ,
+ int a_MaxRoadDepth,
+ int a_MaxSize,
+ cPrefabPiecePool & a_Prefabs,
+ cTerrainHeightGen & a_HeightGen,
+ BLOCKTYPE a_RoadBlock
+ ) :
+ super(a_OriginX, a_OriginZ),
+ m_Seed(a_Seed),
+ m_Noise(a_Seed),
+ m_MaxSize(a_MaxSize),
+ m_Borders(a_OriginX - a_MaxSize, 0, a_OriginZ - a_MaxSize, a_OriginX + a_MaxSize, 255, a_OriginZ + a_MaxSize),
+ m_Prefabs(a_Prefabs),
+ m_HeightGen(a_HeightGen),
+ m_RoadBlock(a_RoadBlock)
+ {
+ cBFSPieceGenerator pg(m_Prefabs, a_Seed);
+ // Generate the pieces at very negative Y coords, so that we can later test
+ // Piece has negative Y coord -> hasn't been height-adjusted yet
+ pg.PlacePieces(a_OriginX, -1000, a_OriginZ, a_MaxRoadDepth + 1, m_Pieces);
+ }
+
+protected:
+ /** Seed for the random functions */
+ int m_Seed;
+
+ /** The noise used as a pseudo-random generator */
+ cNoise m_Noise;
+
+ /** Maximum size, in X/Z blocks, of the village (radius from the origin) */
+ int m_MaxSize;
+
+ /** Borders of the vilalge - no item may reach out of this cuboid. */
+ cCuboid m_Borders;
+
+ /** Prefabs to use for buildings */
+ cPrefabPiecePool & m_Prefabs;
+
+ /** The underlying height generator, used for placing the structures on top of the terrain. */
+ cTerrainHeightGen & m_HeightGen;
+
+ /** The village pieces, placed by the generator. */
+ cPlacedPieces m_Pieces;
+
+ /** The block to use for the roads. */
+ BLOCKTYPE m_RoadBlock;
+
+
+ // cGrdStructGen::cStructure overrides:
+ virtual void DrawIntoChunk(cChunkDesc & a_Chunk) override
+ {
+ // Iterate over all items
+ // Each intersecting prefab is placed on ground, then drawn
+ // Each intersecting road is drawn by replacing top soil blocks with gravel / sandstone blocks
+ cChunkDef::HeightMap HeightMap; // Heightmap for this chunk, used by roads
+ m_HeightGen.GenHeightMap(a_Chunk.GetChunkX(), a_Chunk.GetChunkZ(), HeightMap);
+ for (cPlacedPieces::iterator itr = m_Pieces.begin(), end = m_Pieces.end(); itr != end; ++itr)
+ {
+ cPrefab & Prefab = (cPrefab &)((*itr)->GetPiece());
+ if ((*itr)->GetPiece().GetSize().y == 1)
+ {
+ // It's a road, special handling (change top terrain blocks to m_RoadBlock)
+ DrawRoad(a_Chunk, **itr, HeightMap);
+ continue;
+ }
+ if ((*itr)->GetCoords().y < 0)
+ {
+ PlacePieceOnGround(**itr);
+ }
+ Prefab.Draw(a_Chunk, *itr);
+ } // for itr - m_PlacedPieces[]
+ }
+
+
+ /** Adjusts the Y coord of the given piece so that the piece is on the ground.
+ Ground level is assumed to be represented by the first connector in the piece. */
+ void PlacePieceOnGround(cPlacedPiece & a_Piece)
+ {
+ cPiece::cConnector FirstConnector = a_Piece.GetRotatedConnector(0);
+ int ChunkX, ChunkZ;
+ int BlockX = FirstConnector.m_Pos.x;
+ int BlockZ = FirstConnector.m_Pos.z;
+ int BlockY;
+ cChunkDef::AbsoluteToRelative(BlockX, BlockY, BlockZ, ChunkX, ChunkZ);
+ cChunkDef::HeightMap HeightMap;
+ m_HeightGen.GenHeightMap(ChunkX, ChunkZ, HeightMap);
+ int TerrainHeight = cChunkDef::GetHeight(HeightMap, BlockX, BlockZ);
+ a_Piece.GetCoords().y += TerrainHeight - FirstConnector.m_Pos.y + 1;
+ }
+
+
+ /** Draws the road into the chunk.
+ The heightmap is not queried from the heightgen, but is given via parameter, so that it may be queried just
+ once for all roads in a chunk. */
+ void DrawRoad(cChunkDesc & a_Chunk, cPlacedPiece & a_Road, cChunkDef::HeightMap & a_HeightMap)
+ {
+ cCuboid RoadCoords = a_Road.GetHitBox();
+ RoadCoords.Sort();
+ int MinX = std::max(RoadCoords.p1.x - a_Chunk.GetChunkX() * cChunkDef::Width, 0);
+ int MaxX = std::min(RoadCoords.p2.x - a_Chunk.GetChunkX() * cChunkDef::Width, cChunkDef::Width - 1);
+ int MinZ = std::max(RoadCoords.p1.z - a_Chunk.GetChunkZ() * cChunkDef::Width, 0);
+ int MaxZ = std::min(RoadCoords.p2.z - a_Chunk.GetChunkZ() * cChunkDef::Width, cChunkDef::Width - 1);
+ for (int z = MinZ; z <= MaxZ; z++)
+ {
+ for (int x = MinX; x <= MaxX; x++)
+ {
+ a_Chunk.SetBlockType(x, cChunkDef::GetHeight(a_HeightMap, x, z), z, m_RoadBlock);
+ }
+ }
+ }
+} ;
+
+
+
+
+
+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// cVillageGen:
+
+/** The prefabs for the sand village. */
+static cVillagePiecePool g_SandVillage (g_SandVillagePrefabs, g_SandVillagePrefabsCount, g_SandVillageStartingPrefabs, g_SandVillageStartingPrefabsCount);
+
+/** The prefabs for the plains village. */
+static cVillagePiecePool g_PlainsVillage(g_PlainsVillagePrefabs, g_PlainsVillagePrefabsCount, g_PlainsVillageStartingPrefabs, g_PlainsVillageStartingPrefabsCount);
+
+
+
+
+
+cVillageGen::cVillageGen(int a_Seed, int a_GridSize, int a_MaxDepth, int a_MaxSize, cBiomeGen & a_BiomeGen, cTerrainHeightGen & a_HeightGen) :
+ super(a_Seed, a_GridSize, a_GridSize, a_MaxSize, a_MaxSize, 100),
+ m_MaxDepth(a_MaxDepth),
+ m_MaxSize(a_MaxSize),
+ m_BiomeGen(a_BiomeGen),
+ m_HeightGen(a_HeightGen)
+{
+}
+
+
+
+
+
+cGridStructGen::cStructurePtr cVillageGen::CreateStructure(int a_OriginX, int a_OriginZ)
+{
+ // Generate the biomes for the chunk surrounding the origin:
+ int ChunkX, ChunkZ;
+ cChunkDef::BlockToChunk(a_OriginX, a_OriginZ, ChunkX, ChunkZ);
+ cChunkDef::BiomeMap Biomes;
+ m_BiomeGen.GenBiomes(ChunkX, ChunkZ, Biomes);
+
+ // Check if all the biomes are village-friendly:
+ // If just one is not, no village is created, because it's likely that an unfriendly biome is too close
+ cVillagePiecePool * VillagePrefabs = NULL;
+ BLOCKTYPE RoadBlock = E_BLOCK_GRAVEL;
+ for (size_t i = 0; i < ARRAYCOUNT(Biomes); i++)
+ {
+ switch (Biomes[i])
+ {
+ case biDesert:
+ case biDesertM:
+ {
+ // These biomes allow sand villages
+ VillagePrefabs = &g_SandVillage;
+ RoadBlock = E_BLOCK_SANDSTONE;
+ break;
+ }
+ case biPlains:
+ case biSavanna:
+ case biSavannaM:
+ case biSunflowerPlains:
+ {
+ // These biomes allow plains-style villages
+ VillagePrefabs = &g_PlainsVillage;
+ break;
+ }
+ default:
+ {
+ // Village-unfriendly biome, bail out with zero structure:
+ return cStructurePtr();
+ }
+ } // switch (Biomes[i])
+ } // for i - Biomes[]
+
+ // Create a village based on the chosen prefabs:
+ if (VillagePrefabs == NULL)
+ {
+ return cStructurePtr();
+ }
+ return cStructurePtr(new cVillage(m_Seed, a_OriginX, a_OriginZ, m_MaxDepth, m_MaxSize, *VillagePrefabs, m_HeightGen, RoadBlock));
+}
+
+
+
+
diff --git a/src/Generating/VillageGen.h b/src/Generating/VillageGen.h
new file mode 100644
index 000000000..c6f8f024a
--- /dev/null
+++ b/src/Generating/VillageGen.h
@@ -0,0 +1,48 @@
+
+// VillageGen.h
+
+// Declares the cVillageGen class representing the village generator
+
+
+
+
+
+#pragma once
+
+#include "GridStructGen.h"
+#include "PrefabPiecePool.h"
+
+
+
+
+
+class cVillageGen :
+ public cGridStructGen
+{
+ typedef cGridStructGen super;
+public:
+ cVillageGen(int a_Seed, int a_GridSize, int a_MaxDepth, int a_MaxSize, cBiomeGen & a_BiomeGen, cTerrainHeightGen & a_HeightGen);
+
+protected:
+ class cVillage; // fwd: VillageGen.cpp
+
+ /** Maximum depth of the generator tree*/
+ int m_MaxDepth;
+
+ /** Maximum size, in X/Z blocks, of the village (radius from the origin) */
+ int m_MaxSize;
+
+ /** The underlying biome generator that defines whether the village is created or not */
+ cBiomeGen & m_BiomeGen;
+
+ /** The underlying height generator, used to position the prefabs crossing chunk borders */
+ cTerrainHeightGen & m_HeightGen;
+
+
+ // cGridStructGen overrides:
+ virtual cStructurePtr CreateStructure(int a_OriginX, int a_OriginZ) override;
+} ;
+
+
+
+