summaryrefslogtreecommitdiffstats
path: root/src/Generating
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/Generating/BioGen.cpp43
-rw-r--r--src/Generating/BioGen.h7
-rw-r--r--src/Generating/CMakeLists.txt65
-rw-r--r--src/Generating/Caves.cpp54
-rw-r--r--src/Generating/ChunkDesc.cpp27
-rw-r--r--src/Generating/ChunkDesc.h5
-rw-r--r--src/Generating/ChunkGenerator.cpp14
-rw-r--r--src/Generating/ChunkGenerator.h2
-rw-r--r--src/Generating/CompoGen.cpp35
-rw-r--r--src/Generating/ComposableGenerator.cpp110
-rw-r--r--src/Generating/DistortedHeightmap.cpp28
-rw-r--r--src/Generating/EndGen.cpp4
-rw-r--r--src/Generating/EndGen.h3
-rw-r--r--src/Generating/FinishGen.cpp246
-rw-r--r--src/Generating/FinishGen.h116
-rw-r--r--src/Generating/GridStructGen.cpp17
-rw-r--r--src/Generating/HeiGen.cpp24
-rw-r--r--src/Generating/MineShafts.cpp15
-rw-r--r--src/Generating/NetherFortGen.cpp6
-rw-r--r--src/Generating/Noise3DGenerator.cpp4
-rw-r--r--src/Generating/POCPieceGenerator.cpp2
-rw-r--r--src/Generating/PieceGenerator.cpp18
-rw-r--r--src/Generating/PieceGenerator.h4
-rw-r--r--src/Generating/Prefab.cpp13
-rw-r--r--src/Generating/Prefab.h2
-rw-r--r--src/Generating/Prefabs/AlchemistVillagePrefabs.cpp3736
-rw-r--r--src/Generating/Prefabs/CMakeLists.txt31
-rw-r--r--src/Generating/Prefabs/JapaneseVillagePrefabs.cpp438
-rw-r--r--src/Generating/Prefabs/NetherFortPrefabs.cpp857
-rw-r--r--src/Generating/Prefabs/PlainsVillagePrefabs.cpp880
-rw-r--r--src/Generating/Prefabs/RainbowRoadPrefabs.cpp24
-rw-r--r--src/Generating/Prefabs/SandFlatRoofVillagePrefabs.cpp204
-rw-r--r--src/Generating/Prefabs/SandVillagePrefabs.cpp1504
-rw-r--r--src/Generating/Prefabs/TestRailsPrefabs.cpp484
-rw-r--r--src/Generating/Prefabs/TestRailsPrefabs.h15
-rw-r--r--src/Generating/Prefabs/UnderwaterBasePrefabs.cpp30
-rw-r--r--src/Generating/RainbowRoadsGen.cpp4
-rw-r--r--src/Generating/Ravines.cpp32
-rw-r--r--src/Generating/RoughRavines.cpp300
-rw-r--r--src/Generating/RoughRavines.h86
-rw-r--r--src/Generating/StructGen.cpp27
-rw-r--r--src/Generating/TestRailsGen.cpp116
-rw-r--r--src/Generating/TestRailsGen.h47
-rw-r--r--src/Generating/Trees.cpp138
-rw-r--r--src/Generating/Trees.h2
-rw-r--r--src/Generating/UnderwaterBaseGen.cpp4
-rw-r--r--src/Generating/VillageGen.cpp4
47 files changed, 6371 insertions, 3456 deletions
diff --git a/src/Generating/BioGen.cpp b/src/Generating/BioGen.cpp
index 47ba080c6..8fad9f5c9 100644
--- a/src/Generating/BioGen.cpp
+++ b/src/Generating/BioGen.cpp
@@ -12,7 +12,7 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cBiomeGen:
cBiomeGen * cBiomeGen::CreateBiomeGen(cIniFile & a_IniFile, int a_Seed, bool & a_CacheOffByDefault)
@@ -78,7 +78,7 @@ cBiomeGen * cBiomeGen::CreateBiomeGen(cIniFile & a_IniFile, int a_Seed, bool & a
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cBioGenConstant:
void cBioGenConstant::GenBiomes(int a_ChunkX, int a_ChunkZ, cChunkDef::BiomeMap & a_BiomeMap)
@@ -95,7 +95,7 @@ void cBioGenConstant::GenBiomes(int a_ChunkX, int a_ChunkZ, cChunkDef::BiomeMap
void cBioGenConstant::InitializeBiomeGen(cIniFile & a_IniFile)
{
- AString Biome = a_IniFile.GetValueSet("Generator", "ConstantBiome", "Plains");
+ AString Biome = a_IniFile.GetValueSet("Generator", "ConstantBiome", "");
m_Biome = StringToBiome(Biome);
if (m_Biome == biInvalidBiome)
{
@@ -108,7 +108,7 @@ void cBioGenConstant::InitializeBiomeGen(cIniFile & a_IniFile)
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cBioGenCache:
cBioGenCache::cBioGenCache(cBiomeGen * a_BioGenToCache, int a_CacheSize) :
@@ -135,7 +135,9 @@ cBioGenCache::cBioGenCache(cBiomeGen * a_BioGenToCache, int a_CacheSize) :
cBioGenCache::~cBioGenCache()
{
delete[] m_CacheData;
+ m_CacheData = NULL;
delete[] m_CacheOrder;
+ m_CacheOrder = NULL;
}
@@ -207,7 +209,7 @@ void cBioGenCache::InitializeBiomeGen(cIniFile & a_IniFile)
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cBiomeGenList:
void cBiomeGenList::InitializeBiomes(const AString & a_Biomes)
@@ -288,7 +290,7 @@ void cBiomeGenList::InitializeBiomes(const AString & a_Biomes)
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cBioGenCheckerboard:
void cBioGenCheckerboard::GenBiomes(int a_ChunkX, int a_ChunkZ, cChunkDef::BiomeMap & a_BiomeMap)
@@ -322,7 +324,7 @@ void cBioGenCheckerboard::InitializeBiomeGen(cIniFile & a_IniFile)
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cBioGenVoronoi :
void cBioGenVoronoi::GenBiomes(int a_ChunkX, int a_ChunkZ, cChunkDef::BiomeMap & a_BiomeMap)
@@ -355,7 +357,7 @@ void cBioGenVoronoi::InitializeBiomeGen(cIniFile & a_IniFile)
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cBioGenDistortedVoronoi:
void cBioGenDistortedVoronoi::GenBiomes(int a_ChunkX, int a_ChunkZ, cChunkDef::BiomeMap & a_BiomeMap)
@@ -416,7 +418,7 @@ void cBioGenDistortedVoronoi::Distort(int a_BlockX, int a_BlockZ, int & a_Distor
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cBioGenMultiStepMap :
cBioGenMultiStepMap::cBioGenMultiStepMap(int a_Seed) :
@@ -737,7 +739,7 @@ void cBioGenMultiStepMap::FreezeWaterBiomes(cChunkDef::BiomeMap & a_BiomeMap, co
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cBioGenTwoLevel:
cBioGenTwoLevel::cBioGenTwoLevel(int a_Seed) :
@@ -745,7 +747,12 @@ cBioGenTwoLevel::cBioGenTwoLevel(int a_Seed) :
m_VoronoiSmall(a_Seed + 2000),
m_DistortX(a_Seed + 3000),
m_DistortZ(a_Seed + 4000),
- m_Noise(a_Seed + 5000)
+ m_Noise1(a_Seed + 5001),
+ m_Noise2(a_Seed + 5002),
+ m_Noise3(a_Seed + 5003),
+ m_Noise4(a_Seed + 5004),
+ m_Noise5(a_Seed + 5005),
+ m_Noise6(a_Seed + 5006)
{
}
@@ -767,12 +774,12 @@ void cBioGenTwoLevel::GenBiomes(int a_ChunkX, int a_ChunkZ, cChunkDef::BiomeMap
int BlockZ = BaseZ + z * 4;
float BlockXF = (float)(16 * BlockX) / 128;
float BlockZF = (float)(16 * BlockZ) / 128;
- double NoiseX = m_Noise.CubicNoise3D(BlockXF / 16, BlockZF / 16, 1000);
- NoiseX += 0.5 * m_Noise.CubicNoise3D(BlockXF / 8, BlockZF / 8, 2000);
- NoiseX += 0.08 * m_Noise.CubicNoise3D(BlockXF, BlockZF, 3000);
- double NoiseZ = m_Noise.CubicNoise3D(BlockXF / 16, BlockZF / 16, 4000);
- NoiseZ += 0.5 * m_Noise.CubicNoise3D(BlockXF / 8, BlockZF / 8, 5000);
- NoiseZ += 0.08 * m_Noise.CubicNoise3D(BlockXF, BlockZF, 6000);
+ double NoiseX = m_Noise1.CubicNoise2D(BlockXF / 16, BlockZF / 16);
+ NoiseX += 0.5 * m_Noise2.CubicNoise2D(BlockXF / 8, BlockZF / 8);
+ NoiseX += 0.08 * m_Noise3.CubicNoise2D(BlockXF, BlockZF);
+ double NoiseZ = m_Noise4.CubicNoise2D(BlockXF / 16, BlockZF / 16);
+ NoiseZ += 0.5 * m_Noise5.CubicNoise2D(BlockXF / 8, BlockZF / 8);
+ NoiseZ += 0.08 * m_Noise6.CubicNoise2D(BlockXF, BlockZF);
DistortX[4 * x][4 * z] = BlockX + (int)(64 * NoiseX);
DistortZ[4 * x][4 * z] = BlockZ + (int)(64 * NoiseZ);
@@ -786,8 +793,8 @@ void cBioGenTwoLevel::GenBiomes(int a_ChunkX, int a_ChunkZ, cChunkDef::BiomeMap
{
for (int x = 0; x < cChunkDef::Width; x++)
{
- int BiomeGroup = m_VoronoiLarge.GetValueAt(DistortX[x][z], DistortZ[x][z]) / 7;
int MinDist1, MinDist2;
+ int BiomeGroup = m_VoronoiLarge.GetValueAt(DistortX[x][z], DistortZ[x][z], MinDist1, MinDist2) / 7;
int BiomeIdx = m_VoronoiSmall.GetValueAt(DistortX[x][z], DistortZ[x][z], MinDist1, MinDist2) / 11;
cChunkDef::SetBiome(a_BiomeMap, x, z, SelectBiome(BiomeGroup, BiomeIdx, (MinDist1 < MinDist2 / 4) ? 0 : 1));
}
diff --git a/src/Generating/BioGen.h b/src/Generating/BioGen.h
index 8bd460d8f..227ec97d7 100644
--- a/src/Generating/BioGen.h
+++ b/src/Generating/BioGen.h
@@ -261,7 +261,12 @@ protected:
/// The noise used to distort the inupt Z coord
cPerlinNoise m_DistortZ;
- cNoise m_Noise;
+ cNoise m_Noise1;
+ cNoise m_Noise2;
+ cNoise m_Noise3;
+ cNoise m_Noise4;
+ cNoise m_Noise5;
+ cNoise m_Noise6;
// cBiomeGen overrides:
diff --git a/src/Generating/CMakeLists.txt b/src/Generating/CMakeLists.txt
index 3dacb5066..58df9d421 100644
--- a/src/Generating/CMakeLists.txt
+++ b/src/Generating/CMakeLists.txt
@@ -4,11 +4,64 @@ project (MCServer)
include_directories ("${PROJECT_SOURCE_DIR}/../")
-file(GLOB SOURCE
- "*.cpp"
- "*.h"
-)
+SET (SRCS
+ BioGen.cpp
+ Caves.cpp
+ ChunkDesc.cpp
+ ChunkGenerator.cpp
+ CompoGen.cpp
+ ComposableGenerator.cpp
+ DistortedHeightmap.cpp
+ EndGen.cpp
+ FinishGen.cpp
+ GridStructGen.cpp
+ HeiGen.cpp
+ MineShafts.cpp
+ NetherFortGen.cpp
+ Noise3DGenerator.cpp
+ POCPieceGenerator.cpp
+ PieceGenerator.cpp
+ Prefab.cpp
+ PrefabPiecePool.cpp
+ RainbowRoadsGen.cpp
+ Ravines.cpp
+ RoughRavines.cpp
+ StructGen.cpp
+ TestRailsGen.cpp
+ Trees.cpp
+ UnderwaterBaseGen.cpp
+ VillageGen.cpp)
-add_library(Generating ${SOURCE})
+SET (HDRS
+ BioGen.h
+ Caves.h
+ ChunkDesc.h
+ ChunkGenerator.h
+ CompoGen.h
+ ComposableGenerator.h
+ DistortedHeightmap.h
+ EndGen.h
+ FinishGen.h
+ GridStructGen.h
+ HeiGen.h
+ MineShafts.h
+ NetherFortGen.h
+ Noise3DGenerator.h
+ POCPieceGenerator.h
+ PieceGenerator.h
+ Prefab.h
+ PrefabPiecePool.h
+ RainbowRoadsGen.h
+ Ravines.h
+ RoughRavines.h
+ StructGen.h
+ TestRailsGen.h
+ Trees.h
+ UnderwaterBaseGen.h
+ VillageGen.h)
-target_link_libraries(Generating OSSupport iniFile Blocks)
+if(NOT MSVC)
+ add_library(Generating ${SRCS} ${HDRS})
+
+ target_link_libraries(Generating OSSupport iniFile Blocks)
+endif()
diff --git a/src/Generating/Caves.cpp b/src/Generating/Caves.cpp
index 6aa7fd4cb..6fc371958 100644
--- a/src/Generating/Caves.cpp
+++ b/src/Generating/Caves.cpp
@@ -151,7 +151,7 @@ protected:
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cCaveTunnel:
cCaveTunnel::cCaveTunnel(
@@ -497,29 +497,9 @@ void cCaveTunnel::ProcessChunk(
int SqDist = (DifX - x) * (DifX - x) + (DifY - y) * (DifY - y) + (DifZ - z) * (DifZ - z);
if (4 * SqDist <= SqRad)
{
- switch (cChunkDef::GetBlock(a_BlockTypes, x, y, z))
+ if (cBlockInfo::CanBeTerraformed(cChunkDef::GetBlock(a_BlockTypes, x, y, z)))
{
- // Only carve out these specific block types
- case E_BLOCK_DIRT:
- case E_BLOCK_GRASS:
- case E_BLOCK_STONE:
- case E_BLOCK_COBBLESTONE:
- case E_BLOCK_GRAVEL:
- case E_BLOCK_SAND:
- case E_BLOCK_SANDSTONE:
- case E_BLOCK_SOULSAND:
- case E_BLOCK_NETHERRACK:
- case E_BLOCK_COAL_ORE:
- case E_BLOCK_IRON_ORE:
- case E_BLOCK_GOLD_ORE:
- case E_BLOCK_DIAMOND_ORE:
- case E_BLOCK_REDSTONE_ORE:
- case E_BLOCK_REDSTONE_ORE_GLOWING:
- {
- cChunkDef::SetBlock(a_BlockTypes, x, y, z, E_BLOCK_AIR);
- break;
- }
- default: break;
+ cChunkDef::SetBlock(a_BlockTypes, x, y, z, E_BLOCK_AIR);
}
}
} // for y
@@ -555,14 +535,14 @@ AString cCaveTunnel::ExportAsSVG(int a_Color, int a_OffsetX, int a_OffsetZ) cons
{
AString SVG;
SVG.reserve(m_Points.size() * 20 + 200);
- AppendPrintf(SVG, "<path style=\"fill:none;stroke:#%06x;stroke-width:1px;\"\nd=\"", a_Color);
- char Prefix = 'M'; // The first point needs "M" prefix, all the others need "L"
- for (cCaveDefPoints::const_iterator itr = m_Points.begin(); itr != m_Points.end(); ++itr)
- {
- AppendPrintf(SVG, "%c %d,%d ", Prefix, a_OffsetX + itr->m_BlockX, a_OffsetZ + itr->m_BlockZ);
+ AppendPrintf(SVG, "<path style=\"fill:none;stroke:#%06x;stroke-width:1px;\"\nd=\"", a_Color);
+ char Prefix = 'M'; // The first point needs "M" prefix, all the others need "L"
+ for (cCaveDefPoints::const_iterator itr = m_Points.begin(); itr != m_Points.end(); ++itr)
+ {
+ AppendPrintf(SVG, "%c %d, %d ", Prefix, a_OffsetX + itr->m_BlockX, a_OffsetZ + itr->m_BlockZ);
Prefix = 'L';
- }
- SVG.append("\"/>\n");
+ }
+ SVG.append("\"/>\n");
return SVG;
}
#endif // _DEBUG
@@ -571,7 +551,7 @@ AString cCaveTunnel::ExportAsSVG(int a_Color, int a_OffsetX, int a_OffsetZ) cons
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cStructGenWormNestCaves::cCaveSystem:
cStructGenWormNestCaves::cCaveSystem::cCaveSystem(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ, int a_MaxOffset, int a_Size, cNoise & a_Noise) :
@@ -687,7 +667,7 @@ int cStructGenWormNestCaves::cCaveSystem::GetRadius(cNoise & a_Noise, int a_Orig
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cStructGenWormNestCaves:
cGridStructGen::cStructurePtr cStructGenWormNestCaves::CreateStructure(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ)
@@ -700,13 +680,13 @@ cGridStructGen::cStructurePtr cStructGenWormNestCaves::CreateStructure(int a_Gri
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cStructGenMarbleCaves:
-static float GetMarbleNoise( float x, float y, float z, cNoise & a_Noise )
+static float GetMarbleNoise( float x, float y, float z, cNoise & a_Noise)
{
static const float PI_2 = 1.57079633f;
- float oct1 = (a_Noise.CubicNoise3D(x * 0.1f, y * 0.1f, z * 0.1f )) * 4;
+ float oct1 = (a_Noise.CubicNoise3D(x * 0.1f, y * 0.1f, z * 0.1f)) * 4;
oct1 = oct1 * oct1 * oct1;
if (oct1 < 0.f) oct1 = PI_2;
@@ -730,7 +710,7 @@ void cStructGenMarbleCaves::GenFinish(cChunkDesc & a_ChunkDesc)
const float xx = (float)(a_ChunkDesc.GetChunkX() * cChunkDef::Width + x);
int Top = a_ChunkDesc.GetHeight(x, z);
- for (int y = 1; y < Top; ++y )
+ for (int y = 1; y < Top; ++y)
{
if (a_ChunkDesc.GetBlockType(x, y, z) != E_BLOCK_STONE)
{
@@ -752,7 +732,7 @@ void cStructGenMarbleCaves::GenFinish(cChunkDesc & a_ChunkDesc)
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cStructGenDualRidgeCaves:
void cStructGenDualRidgeCaves::GenFinish(cChunkDesc & a_ChunkDesc)
diff --git a/src/Generating/ChunkDesc.cpp b/src/Generating/ChunkDesc.cpp
index 7711723fc..c0b646fd0 100644
--- a/src/Generating/ChunkDesc.cpp
+++ b/src/Generating/ChunkDesc.cpp
@@ -20,7 +20,6 @@ cChunkDesc::cChunkDesc(int a_ChunkX, int a_ChunkZ) :
m_bUseDefaultBiomes(true),
m_bUseDefaultHeight(true),
m_bUseDefaultComposition(true),
- m_bUseDefaultStructures(true),
m_bUseDefaultFinish(true)
{
m_BlockArea.Create(cChunkDef::Width, cChunkDef::Height, cChunkDef::Width);
@@ -207,26 +206,6 @@ bool cChunkDesc::IsUsingDefaultComposition(void) const
-void cChunkDesc::SetUseDefaultStructures(bool a_bUseDefaultStructures)
-{
- LOGWARNING("%s: Structures are no longer accounted for, use Finishers instead", __FUNCTION__);
- m_bUseDefaultStructures = a_bUseDefaultStructures;
-}
-
-
-
-
-
-bool cChunkDesc::IsUsingDefaultStructures(void) const
-{
- LOGWARNING("%s: Structures are no longer accounted for, use Finishers instead", __FUNCTION__);
- return m_bUseDefaultStructures;
-}
-
-
-
-
-
void cChunkDesc::SetUseDefaultFinish(bool a_bUseDefaultFinish)
{
m_bUseDefaultFinish = a_bUseDefaultFinish;
@@ -290,7 +269,7 @@ void cChunkDesc::ReadBlockArea(cBlockArea & a_Dest, int a_MinRelX, int a_MaxRelX
LOGWARNING("%s: MaxRelX less than zero, adjusting to zero", __FUNCTION__);
a_MaxRelX = 0;
}
- else if (a_MinRelX >= cChunkDef::Width)
+ else if (a_MaxRelX >= cChunkDef::Width)
{
LOGWARNING("%s: MaxRelX more than chunk width, adjusting to chunk width", __FUNCTION__);
a_MaxRelX = cChunkDef::Width - 1;
@@ -311,7 +290,7 @@ void cChunkDesc::ReadBlockArea(cBlockArea & a_Dest, int a_MinRelX, int a_MaxRelX
LOGWARNING("%s: MaxRelY less than zero, adjusting to zero", __FUNCTION__);
a_MaxRelY = 0;
}
- else if (a_MinRelY >= cChunkDef::Height)
+ else if (a_MaxRelY >= cChunkDef::Height)
{
LOGWARNING("%s: MaxRelY more than chunk height, adjusting to chunk height", __FUNCTION__);
a_MaxRelY = cChunkDef::Height - 1;
@@ -332,7 +311,7 @@ void cChunkDesc::ReadBlockArea(cBlockArea & a_Dest, int a_MinRelX, int a_MaxRelX
LOGWARNING("%s: MaxRelZ less than zero, adjusting to zero", __FUNCTION__);
a_MaxRelZ = 0;
}
- else if (a_MinRelZ >= cChunkDef::Width)
+ else if (a_MaxRelZ >= cChunkDef::Width)
{
LOGWARNING("%s: MaxRelZ more than chunk width, adjusting to chunk width", __FUNCTION__);
a_MaxRelZ = cChunkDef::Width - 1;
diff --git a/src/Generating/ChunkDesc.h b/src/Generating/ChunkDesc.h
index 8edc2800b..eeea0c957 100644
--- a/src/Generating/ChunkDesc.h
+++ b/src/Generating/ChunkDesc.h
@@ -68,8 +68,6 @@ public:
bool IsUsingDefaultHeight(void) const;
void SetUseDefaultComposition(bool a_bUseDefaultComposition);
bool IsUsingDefaultComposition(void) const;
- void SetUseDefaultStructures(bool a_bUseDefaultStructures);
- bool IsUsingDefaultStructures(void) const;
void SetUseDefaultFinish(bool a_bUseDefaultFinish);
bool IsUsingDefaultFinish(void) const;
@@ -186,7 +184,7 @@ public:
// Accessors used by cChunkGenerator::Generator descendants:
inline cChunkDef::BiomeMap & GetBiomeMap (void) { return m_BiomeMap; }
inline cChunkDef::BlockTypes & GetBlockTypes (void) { return *((cChunkDef::BlockTypes *)m_BlockArea.GetBlockTypes()); }
- // CANNOT, different compression!
+ // CANNOT, different compression!
// inline cChunkDef::BlockNibbles & GetBlockMetas (void) { return *((cChunkDef::BlockNibbles *)m_BlockArea.GetBlockMetas()); }
inline BlockNibbleBytes & GetBlockMetasUncompressed(void) { return *((BlockNibbleBytes *)m_BlockArea.GetBlockMetas()); }
inline cChunkDef::HeightMap & GetHeightMap (void) { return m_HeightMap; }
@@ -214,7 +212,6 @@ private:
bool m_bUseDefaultBiomes;
bool m_bUseDefaultHeight;
bool m_bUseDefaultComposition;
- bool m_bUseDefaultStructures;
bool m_bUseDefaultFinish;
} ; // tolua_export
diff --git a/src/Generating/ChunkGenerator.cpp b/src/Generating/ChunkGenerator.cpp
index 73f0223e8..3d5af152c 100644
--- a/src/Generating/ChunkGenerator.cpp
+++ b/src/Generating/ChunkGenerator.cpp
@@ -22,7 +22,7 @@ const unsigned int QUEUE_SKIP_LIMIT = 500;
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cChunkGenerator:
cChunkGenerator::cChunkGenerator(void) :
@@ -52,7 +52,7 @@ bool cChunkGenerator::Start(cPluginInterface & a_PluginInterface, cChunkSink & a
m_ChunkSink = &a_ChunkSink;
MTRand rnd;
- m_Seed = a_IniFile.GetValueSetI("Seed", "Seed", rnd.randInt());
+ m_Seed = a_IniFile.GetValueSetI("Seed", "Seed", (int)rnd.randInt());
AString GeneratorName = a_IniFile.GetValueSet("Generator", "Generator", "Composable");
if (NoCaseCompare(GeneratorName, "Noise3D") == 0)
@@ -180,7 +180,7 @@ BLOCKTYPE cChunkGenerator::GetIniBlock(cIniFile & a_IniFile, const AString & a_S
BLOCKTYPE Block = BlockStringToType(BlockType);
if (Block < 0)
{
- LOGWARN("[%s].%s Could not parse block value \"%s\". Using default: \"%s\".", a_SectionName.c_str(), a_ValueName.c_str(), BlockType.c_str(),a_Default.c_str());
+ LOGWARN("[%s].%s Could not parse block value \"%s\". Using default: \"%s\".", a_SectionName.c_str(), a_ValueName.c_str(), BlockType.c_str(), a_Default.c_str());
return BlockStringToType(a_Default);
}
return Block;
@@ -228,10 +228,10 @@ void cChunkGenerator::Execute(void)
continue;
}
- cChunkCoords coords = m_Queue.front(); // Get next coord from queue
- m_Queue.erase( m_Queue.begin() ); // Remove coordinate from queue
+ cChunkCoords coords = m_Queue.front(); // Get next coord from queue
+ m_Queue.erase( m_Queue.begin()); // Remove coordinate from queue
bool SkipEnabled = (m_Queue.size() > QUEUE_SKIP_LIMIT);
- Lock.Unlock(); // Unlock ASAP
+ Lock.Unlock(); // Unlock ASAP
m_evtRemoved.Set();
// Display perf info once in a while:
@@ -290,7 +290,7 @@ void cChunkGenerator::DoGenerate(int a_ChunkX, int a_ChunkY, int a_ChunkZ)
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cChunkGenerator::cGenerator:
cChunkGenerator::cGenerator::cGenerator(cChunkGenerator & a_ChunkGenerator) :
diff --git a/src/Generating/ChunkGenerator.h b/src/Generating/ChunkGenerator.h
index 9b2d9eb3c..88d71f3f9 100644
--- a/src/Generating/ChunkGenerator.h
+++ b/src/Generating/ChunkGenerator.h
@@ -44,7 +44,7 @@ public:
{
public:
cGenerator(cChunkGenerator & a_ChunkGenerator);
- virtual ~cGenerator() {} ; // Force a virtual destructor
+ virtual ~cGenerator() {} // Force a virtual destructor
/// Called to initialize the generator on server startup.
virtual void Initialize(cIniFile & a_IniFile);
diff --git a/src/Generating/CompoGen.cpp b/src/Generating/CompoGen.cpp
index 688d19c40..178673e32 100644
--- a/src/Generating/CompoGen.cpp
+++ b/src/Generating/CompoGen.cpp
@@ -18,7 +18,7 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cCompoGenSameBlock:
void cCompoGenSameBlock::ComposeTerrain(cChunkDesc & a_ChunkDesc)
@@ -60,7 +60,7 @@ void cCompoGenSameBlock::InitializeCompoGen(cIniFile & a_IniFile)
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cCompoGenDebugBiomes:
void cCompoGenDebugBiomes::ComposeTerrain(cChunkDesc & a_ChunkDesc)
@@ -68,7 +68,7 @@ void cCompoGenDebugBiomes::ComposeTerrain(cChunkDesc & a_ChunkDesc)
static BLOCKTYPE Blocks[] =
{
E_BLOCK_STONE,
- E_BLOCK_COBBLESTONE,
+ E_BLOCK_COBBLESTONE,
E_BLOCK_LOG,
E_BLOCK_PLANKS,
E_BLOCK_SANDSTONE,
@@ -111,7 +111,7 @@ void cCompoGenDebugBiomes::ComposeTerrain(cChunkDesc & a_ChunkDesc)
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cCompoGenClassic:
cCompoGenClassic::cCompoGenClassic(void) :
@@ -209,7 +209,7 @@ void cCompoGenClassic::InitializeCompoGen(cIniFile & a_IniFile)
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cCompoGenBiomal:
void cCompoGenBiomal::ComposeTerrain(cChunkDesc & a_ChunkDesc)
@@ -526,7 +526,7 @@ void cCompoGenBiomal::FillColumnPattern(int a_RelX, int a_RelZ, int a_Height, cC
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cCompoGenNether:
cCompoGenNether::cCompoGenNether(int a_Seed) :
@@ -563,7 +563,7 @@ void cCompoGenNether::ComposeTerrain(cChunkDesc & a_ChunkDesc)
{
//*
FloorLo[INTERPOL_X * x + 17 * INTERPOL_Z * z] =
- m_Noise1.IntNoise3DInt(BaseX + INTERPOL_X * x, 0, BaseZ + INTERPOL_Z * z) *
+ m_Noise1.IntNoise3DInt(BaseX + INTERPOL_X * x, 0, BaseZ + INTERPOL_Z * z) *
m_Noise2.IntNoise3DInt(BaseX + INTERPOL_X * x, 0, BaseZ + INTERPOL_Z * z) /
256;
//*/
@@ -628,7 +628,22 @@ void cCompoGenNether::ComposeTerrain(cChunkDesc & a_ChunkDesc)
for (int z = 0; z < 16; z++) for (int x = 0; x < 16; x++)
{
a_ChunkDesc.SetBlockType(x, 0, z, E_BLOCK_BEDROCK);
- a_ChunkDesc.SetBlockType(x, a_ChunkDesc.GetHeight(x, z), z, E_BLOCK_BEDROCK);
+
+ int Height = a_ChunkDesc.GetHeight(x, z);
+ a_ChunkDesc.SetBlockType(x, Height, z, E_BLOCK_BEDROCK);
+
+ NOISE_DATATYPE CeilingDisguise = (m_Noise1.CubicNoise2D((float)(a_ChunkDesc.GetChunkX() * cChunkDef::Width + x) / 10, (float)(a_ChunkDesc.GetChunkZ() * cChunkDef::Width + z) / 10));
+ if (CeilingDisguise < 0)
+ {
+ CeilingDisguise = -CeilingDisguise;
+ }
+
+ int CeilingDisguiseHeight = Height - 2 - (int)CeilingDisguise * 3;
+
+ for (int y = Height - 1; y > CeilingDisguiseHeight; y--)
+ {
+ a_ChunkDesc.SetBlockType(x, y, z, E_BLOCK_NETHERRACK);
+ }
}
}
@@ -645,7 +660,7 @@ void cCompoGenNether::InitializeCompoGen(cIniFile & a_IniFile)
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cCompoGenCache:
cCompoGenCache::cCompoGenCache(cTerrainCompositionGen & a_Underlying, int a_CacheSize) :
@@ -672,7 +687,9 @@ cCompoGenCache::cCompoGenCache(cTerrainCompositionGen & a_Underlying, int a_Cach
cCompoGenCache::~cCompoGenCache()
{
delete[] m_CacheData;
+ m_CacheData = NULL;
delete[] m_CacheOrder;
+ m_CacheOrder = NULL;
}
diff --git a/src/Generating/ComposableGenerator.cpp b/src/Generating/ComposableGenerator.cpp
index 22941dcbe..cedb9aeb7 100644
--- a/src/Generating/ComposableGenerator.cpp
+++ b/src/Generating/ComposableGenerator.cpp
@@ -26,6 +26,8 @@
#include "POCPieceGenerator.h"
#include "RainbowRoadsGen.h"
#include "Ravines.h"
+#include "RoughRavines.h"
+#include "TestRailsGen.h"
#include "UnderwaterBaseGen.h"
#include "VillageGen.h"
@@ -33,7 +35,7 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cTerrainCompositionGen:
cTerrainCompositionGen * cTerrainCompositionGen::CreateCompositionGen(cIniFile & a_IniFile, cBiomeGen & a_BiomeGen, cTerrainHeightGen & a_HeightGen, int a_Seed)
@@ -43,7 +45,6 @@ cTerrainCompositionGen * cTerrainCompositionGen::CreateCompositionGen(cIniFile &
{
LOGWARN("[Generator] CompositionGen value not set in world.ini, using \"Biomal\".");
CompoGenName = "Biomal";
- a_IniFile.SetValue("Generator", "CompositionGen", CompoGenName);
}
cTerrainCompositionGen * res = NULL;
@@ -97,7 +98,6 @@ cTerrainCompositionGen * cTerrainCompositionGen::CreateCompositionGen(cIniFile &
else
{
LOGWARN("Unknown CompositionGen \"%s\", using \"Biomal\" instead.", CompoGenName.c_str());
- a_IniFile.DeleteValue("Generator", "CompositionGen");
a_IniFile.SetValue("Generator", "CompositionGen", "Biomal");
return CreateCompositionGen(a_IniFile, a_BiomeGen, a_HeightGen, a_Seed);
}
@@ -113,7 +113,7 @@ cTerrainCompositionGen * cTerrainCompositionGen::CreateCompositionGen(cIniFile &
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cComposableGenerator:
cComposableGenerator::cComposableGenerator(cChunkGenerator & a_ChunkGenerator) :
@@ -233,7 +233,7 @@ void cComposableGenerator::InitBiomeGen(cIniFile & a_IniFile)
{
if (CacheSize < 4)
{
- LOGWARNING("Biomegen cache size set too low, would hurt performance instead of helping. Increasing from %d to %d",
+ LOGWARNING("Biomegen cache size set too low, would hurt performance instead of helping. Increasing from %d to %d",
CacheSize, 4
);
CacheSize = 4;
@@ -251,7 +251,7 @@ void cComposableGenerator::InitBiomeGen(cIniFile & a_IniFile)
void cComposableGenerator::InitHeightGen(cIniFile & a_IniFile)
{
bool CacheOffByDefault = false;
- m_HeightGen = cTerrainHeightGen::CreateHeightGen(a_IniFile, *m_BiomeGen, m_ChunkGenerator.GetSeed(), CacheOffByDefault);
+ m_HeightGen = cTerrainHeightGen::CreateHeightGen(a_IniFile, *m_BiomeGen, m_ChunkGenerator.GetSeed(), CacheOffByDefault);
// Add a cache, if requested:
int CacheSize = a_IniFile.GetValueSetI("Generator", "HeightGenCacheSize", CacheOffByDefault ? 0 : 64);
@@ -259,7 +259,7 @@ void cComposableGenerator::InitHeightGen(cIniFile & a_IniFile)
{
if (CacheSize < 4)
{
- LOGWARNING("Heightgen cache size set too low, would hurt performance instead of helping. Increasing from %d to %d",
+ LOGWARNING("Heightgen cache size set too low, would hurt performance instead of helping. Increasing from %d to %d",
CacheSize, 4
);
CacheSize = 4;
@@ -295,19 +295,7 @@ void cComposableGenerator::InitFinishGens(cIniFile & a_IniFile)
int Seed = m_ChunkGenerator.GetSeed();
eDimension Dimension = StringToDimension(a_IniFile.GetValue("General", "Dimension", "Overworld"));
- // Older configuration used "Structures" in addition to "Finishers"; we don't distinguish between the two anymore (#398)
- // Therefore, we load Structures from the ini file for compatibility, but move its contents over to Finishers:
- AString Structures = a_IniFile.GetValue("Generator", "Structures", "");
- AString Finishers = a_IniFile.GetValueSet("Generator", "Finishers", "Ravines, WormNestCaves, WaterLakes, LavaLakes, OreNests, Trees, SprinkleFoliage, Ice, Snow, Lilypads, BottomLava, DeadBushes, PreSimulator");
- if (!Structures.empty())
- {
- LOGINFO("[Generator].Structures is deprecated, moving the contents to [Generator].Finishers.");
- // Structures used to generate before Finishers, so place them first:
- Structures.append(", ");
- Finishers = Structures + Finishers;
- a_IniFile.SetValue("Generator", "Finishers", Finishers);
- }
- a_IniFile.DeleteValue("Generator", "Structures");
+ AString Finishers = a_IniFile.GetValueSet("Generator", "Finishers", "");
// Create all requested finishers:
AStringVector Str = StringSplitAndTrim(Finishers, ",");
@@ -322,7 +310,25 @@ void cComposableGenerator::InitFinishGens(cIniFile & a_IniFile)
}
else if (NoCaseCompare(*itr, "DeadBushes") == 0)
{
- m_FinishGens.push_back(new cFinishGenSingleBiomeSingleTopBlock(Seed, E_BLOCK_DEAD_BUSH, biDesert, 2, E_BLOCK_SAND, E_BLOCK_SAND));
+ // A list with all the allowed biomes.
+ cFinishGenSingleTopBlock::BiomeList AllowedBiomes;
+ AllowedBiomes.push_back(biDesert);
+ AllowedBiomes.push_back(biDesertHills);
+ AllowedBiomes.push_back(biDesertM);
+ AllowedBiomes.push_back(biMesa);
+ AllowedBiomes.push_back(biMesaBryce);
+ AllowedBiomes.push_back(biMesaPlateau);
+ AllowedBiomes.push_back(biMesaPlateauF);
+ AllowedBiomes.push_back(biMesaPlateauFM);
+ AllowedBiomes.push_back(biMesaPlateauM);
+
+ // A list with all the allowed blocks that can be below the dead bush.
+ cFinishGenSingleTopBlock::BlockList AllowedBlocks;
+ AllowedBlocks.push_back(E_BLOCK_SAND);
+ AllowedBlocks.push_back(E_BLOCK_HARDENED_CLAY);
+ AllowedBlocks.push_back(E_BLOCK_STAINED_CLAY);
+
+ m_FinishGens.push_back(new cFinishGenSingleTopBlock(Seed, E_BLOCK_DEAD_BUSH, AllowedBiomes, 2, AllowedBlocks));
}
else if (NoCaseCompare(*itr, "DirectOverhangs") == 0)
{
@@ -369,7 +375,17 @@ void cComposableGenerator::InitFinishGens(cIniFile & a_IniFile)
}
else if (NoCaseCompare(*itr, "Lilypads") == 0)
{
- m_FinishGens.push_back(new cFinishGenSingleBiomeSingleTopBlock(Seed, E_BLOCK_LILY_PAD, biSwampland, 4, E_BLOCK_WATER, E_BLOCK_STATIONARY_WATER));
+ // A list with all the allowed biomes.
+ cFinishGenSingleTopBlock::BiomeList AllowedBiomes;
+ AllowedBiomes.push_back(biSwampland);
+ AllowedBiomes.push_back(biSwamplandM);
+
+ // A list with all the allowed blocks that can be below the lilypad.
+ cFinishGenSingleTopBlock::BlockList AllowedBlocks;
+ AllowedBlocks.push_back(E_BLOCK_WATER);
+ AllowedBlocks.push_back(E_BLOCK_STATIONARY_WATER);
+
+ m_FinishGens.push_back(new cFinishGenSingleTopBlock(Seed, E_BLOCK_LILY_PAD, AllowedBiomes, 4, AllowedBlocks));
}
else if (NoCaseCompare(*itr, "NetherClumpFoliage") == 0)
{
@@ -392,20 +408,54 @@ void cComposableGenerator::InitFinishGens(cIniFile & a_IniFile)
}
else if (NoCaseCompare(*itr, "PreSimulator") == 0)
{
- m_FinishGens.push_back(new cFinishGenPreSimulator);
+ // Load the settings
+ bool PreSimulateFallingBlocks = a_IniFile.GetValueSetB("Generator", "PreSimulatorFallingBlocks", true);
+ bool PreSimulateWater = a_IniFile.GetValueSetB("Generator", "PreSimulatorWater", true);
+ bool PreSimulateLava = a_IniFile.GetValueSetB("Generator", "PreSimulatorLava", true);
+
+ m_FinishGens.push_back(new cFinishGenPreSimulator(PreSimulateFallingBlocks, PreSimulateWater, PreSimulateLava));
}
else if (NoCaseCompare(*itr, "RainbowRoads") == 0)
{
- int GridSize = a_IniFile.GetValueSetI("Generator", "RainbowRoadsGridSize", 512);
+ int GridSize = a_IniFile.GetValueSetI("Generator", "RainbowRoadsGridSize", 512);
int MaxOffset = a_IniFile.GetValueSetI("Generator", "RainbowRoadsMaxOffset", 128);
- int MaxDepth = a_IniFile.GetValueSetI("Generator", "RainbowRoadsMaxDepth", 30);
- int MaxSize = a_IniFile.GetValueSetI("Generator", "RainbowRoadsMaxSize", 260);
+ int MaxDepth = a_IniFile.GetValueSetI("Generator", "RainbowRoadsMaxDepth", 30);
+ int MaxSize = a_IniFile.GetValueSetI("Generator", "RainbowRoadsMaxSize", 260);
m_FinishGens.push_back(new cRainbowRoadsGen(Seed, GridSize, MaxOffset, MaxDepth, MaxSize));
}
else if (NoCaseCompare(*itr, "Ravines") == 0)
{
m_FinishGens.push_back(new cStructGenRavines(Seed, 128));
}
+ else if (NoCaseCompare(*itr, "RoughRavines") == 0)
+ {
+ int GridSize = a_IniFile.GetValueSetI("Generator", "RoughRavinesGridSize", 256);
+ int MaxOffset = a_IniFile.GetValueSetI("Generator", "RoughRavinesMaxOffset", 128);
+ int MaxSize = a_IniFile.GetValueSetI("Generator", "RoughRavinesMaxSize", 128);
+ int MinSize = a_IniFile.GetValueSetI("Generator", "RoughRavinesMinSize", 64);
+ double MaxCenterWidth = a_IniFile.GetValueSetF("Generator", "RoughRavinesMaxCenterWidth", 8);
+ double MinCenterWidth = a_IniFile.GetValueSetF("Generator", "RoughRavinesMinCenterWidth", 2);
+ double MaxRoughness = a_IniFile.GetValueSetF("Generator", "RoughRavinesMaxRoughness", 0.2);
+ double MinRoughness = a_IniFile.GetValueSetF("Generator", "RoughRavinesMinRoughness", 0.05);
+ double MaxFloorHeightEdge = a_IniFile.GetValueSetF("Generator", "RoughRavinesMaxFloorHeightEdge", 8);
+ double MinFloorHeightEdge = a_IniFile.GetValueSetF("Generator", "RoughRavinesMinFloorHeightEdge", 30);
+ double MaxFloorHeightCenter = a_IniFile.GetValueSetF("Generator", "RoughRavinesMaxFloorHeightCenter", 20);
+ double MinFloorHeightCenter = a_IniFile.GetValueSetF("Generator", "RoughRavinesMinFloorHeightCenter", 6);
+ double MaxCeilingHeightEdge = a_IniFile.GetValueSetF("Generator", "RoughRavinesMaxCeilingHeightEdge", 56);
+ double MinCeilingHeightEdge = a_IniFile.GetValueSetF("Generator", "RoughRavinesMinCeilingHeightEdge", 38);
+ double MaxCeilingHeightCenter = a_IniFile.GetValueSetF("Generator", "RoughRavinesMaxCeilingHeightCenter", 58);
+ double MinCeilingHeightCenter = a_IniFile.GetValueSetF("Generator", "RoughRavinesMinCeilingHeightCenter", 36);
+ m_FinishGens.push_back(new cRoughRavines(
+ Seed, MaxSize, MinSize,
+ (float)MaxCenterWidth, (float)MinCenterWidth,
+ (float)MaxRoughness, (float)MinRoughness,
+ (float)MaxFloorHeightEdge, (float)MinFloorHeightEdge,
+ (float)MaxFloorHeightCenter, (float)MinFloorHeightCenter,
+ (float)MaxCeilingHeightEdge, (float)MinCeilingHeightEdge,
+ (float)MaxCeilingHeightCenter, (float)MinCeilingHeightCenter,
+ GridSize, MaxOffset
+ ));
+ }
else if (NoCaseCompare(*itr, "Snow") == 0)
{
m_FinishGens.push_back(new cFinishGenSnow);
@@ -414,6 +464,14 @@ void cComposableGenerator::InitFinishGens(cIniFile & a_IniFile)
{
m_FinishGens.push_back(new cFinishGenSprinkleFoliage(Seed));
}
+ else if (NoCaseCompare(*itr, "TallGrass") == 0)
+ {
+ m_FinishGens.push_back(new cFinishGenTallGrass(Seed));
+ }
+ else if (NoCaseCompare(*itr, "TestRails") == 0)
+ {
+ m_FinishGens.push_back(new cTestRailsGen(Seed, 100, 1, 7, 50));
+ }
else if (NoCaseCompare(*itr, "Trees") == 0)
{
m_FinishGens.push_back(new cStructGenTrees(Seed, m_BiomeGen, m_HeightGen, m_CompositionGen));
diff --git a/src/Generating/DistortedHeightmap.cpp b/src/Generating/DistortedHeightmap.cpp
index eb9fe92ba..c18c402da 100644
--- a/src/Generating/DistortedHeightmap.cpp
+++ b/src/Generating/DistortedHeightmap.cpp
@@ -14,7 +14,7 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cPattern:
/// This class is used to store a column pattern initialized at runtime,
@@ -50,7 +50,7 @@ protected:
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// The arrays to use for the top block pattern definitions:
static cDistortedHeightmap::sBlockInfo tbGrass[] =
@@ -119,7 +119,7 @@ static cDistortedHeightmap::sBlockInfo tbStone[] =
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// Ocean floor pattern top-block definitions:
static cDistortedHeightmap::sBlockInfo tbOFSand[] =
@@ -151,7 +151,7 @@ static cDistortedHeightmap::sBlockInfo tbOFRedSand[] =
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// Individual patterns to use:
static cPattern patGrass (tbGrass, ARRAYCOUNT(tbGrass));
@@ -171,7 +171,7 @@ static cPattern patOFRedSand(tbOFRedSand, ARRAYCOUNT(tbOFRedSand));
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cDistortedHeightmap:
/** This table assigns a relative maximum overhang size in each direction to biomes.
@@ -675,6 +675,8 @@ void cDistortedHeightmap::ComposeColumn(cChunkDesc & a_ChunkDesc, int a_RelX, in
case biForestHills:
case biTaigaHills:
case biExtremeHillsEdge:
+ case biExtremeHillsPlus:
+ case biExtremeHills:
case biJungle:
case biJungleHills:
case biJungleEdge:
@@ -750,18 +752,6 @@ void cDistortedHeightmap::ComposeColumn(cChunkDesc & a_ChunkDesc, int a_RelX, in
return;
}
- case biExtremeHillsPlus:
- case biExtremeHills:
- {
- // Select the pattern to use - stone or grass:
- NOISE_DATATYPE NoiseX = ((NOISE_DATATYPE)(m_CurChunkX * cChunkDef::Width + a_RelX)) / FrequencyX;
- NOISE_DATATYPE NoiseY = ((NOISE_DATATYPE)(m_CurChunkZ * cChunkDef::Width + a_RelZ)) / FrequencyZ;
- NOISE_DATATYPE Val = m_OceanFloorSelect.CubicNoise2D(NoiseX, NoiseY);
- const sBlockInfo * Pattern = (Val < -0.1) ? patStone.Get() : patGrass.Get();
- FillColumnPattern(a_ChunkDesc, a_RelX, a_RelZ, Pattern);
- return;
- }
-
case biExtremeHillsPlusM:
case biExtremeHillsM:
{
@@ -769,7 +759,7 @@ void cDistortedHeightmap::ComposeColumn(cChunkDesc & a_ChunkDesc, int a_RelX, in
NOISE_DATATYPE NoiseX = ((NOISE_DATATYPE)(m_CurChunkX * cChunkDef::Width + a_RelX)) / FrequencyX;
NOISE_DATATYPE NoiseY = ((NOISE_DATATYPE)(m_CurChunkZ * cChunkDef::Width + a_RelZ)) / FrequencyZ;
NOISE_DATATYPE Val = m_OceanFloorSelect.CubicNoise2D(NoiseX, NoiseY);
- const sBlockInfo * Pattern = (Val < -0.9) ? patStone.Get() : ((Val > 0) ? patGravel.Get() : patGrass.Get());
+ const sBlockInfo * Pattern = (Val < 0.0) ? patStone.Get() : patGrass.Get();
FillColumnPattern(a_ChunkDesc, a_RelX, a_RelZ, Pattern);
return;
}
@@ -819,7 +809,7 @@ void cDistortedHeightmap::FillColumnPattern(cChunkDesc & a_ChunkDesc, int a_RelX
}
// Select the ocean-floor pattern to use:
- a_Pattern = ChooseOceanFloorPattern(a_RelX, a_RelZ);
+ a_Pattern = a_ChunkDesc.GetBiome(a_RelX, a_RelZ) == biDeepOcean ? patGravel.Get() : ChooseOceanFloorPattern(a_RelX, a_RelZ);
HasHadWater = true;
} // for y
a_ChunkDesc.SetBlockType(a_RelX, 0, a_RelZ, E_BLOCK_BEDROCK);
diff --git a/src/Generating/EndGen.cpp b/src/Generating/EndGen.cpp
index f466039b9..c94cd1eff 100644
--- a/src/Generating/EndGen.cpp
+++ b/src/Generating/EndGen.cpp
@@ -29,7 +29,7 @@ enum
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cEndGen:
cEndGen::cEndGen(int a_Seed) :
@@ -50,7 +50,7 @@ cEndGen::cEndGen(int a_Seed) :
-void cEndGen::Initialize(cIniFile & a_IniFile)
+void cEndGen::InitializeCompoGen(cIniFile & a_IniFile)
{
m_IslandSizeX = a_IniFile.GetValueSetI("Generator", "EndGenIslandSizeX", m_IslandSizeX);
m_IslandSizeY = a_IniFile.GetValueSetI("Generator", "EndGenIslandSizeY", m_IslandSizeY);
diff --git a/src/Generating/EndGen.h b/src/Generating/EndGen.h
index 4904a0e3d..322061810 100644
--- a/src/Generating/EndGen.h
+++ b/src/Generating/EndGen.h
@@ -23,8 +23,6 @@ class cEndGen :
public:
cEndGen(int a_Seed);
- void Initialize(cIniFile & a_IniFile);
-
protected:
/// Seed for the noise
@@ -66,4 +64,5 @@ protected:
// cTerrainCompositionGen overrides:
virtual void ComposeTerrain(cChunkDesc & a_ChunkDesc) override;
+ virtual void InitializeCompoGen(cIniFile & a_IniFile) override;
} ;
diff --git a/src/Generating/FinishGen.cpp b/src/Generating/FinishGen.cpp
index f2d66af70..e8324095e 100644
--- a/src/Generating/FinishGen.cpp
+++ b/src/Generating/FinishGen.cpp
@@ -40,47 +40,19 @@ static inline bool IsWater(BLOCKTYPE a_BlockType)
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cFinishGenNetherClumpFoliage:
void cFinishGenNetherClumpFoliage::GenFinish(cChunkDesc & a_ChunkDesc)
{
- double ChunkX = a_ChunkDesc.GetChunkX() + 0.1; // We can't devide through 0 so lets add 0.1 to all the chunk coordinates.
- double ChunkZ = a_ChunkDesc.GetChunkZ() + 0.1;
-
- NOISE_DATATYPE Val1 = m_Noise.CubicNoise2D((float) (ChunkX * ChunkZ * 0.01f), (float) (ChunkZ / ChunkX * 0.01f));
- NOISE_DATATYPE Val2 = m_Noise.CubicNoise2D((float) (ChunkX / ChunkZ / 0.01f), (float) (ChunkZ * ChunkX / 0.01f));
+ int ChunkX = a_ChunkDesc.GetChunkX();
+ int ChunkZ = a_ChunkDesc.GetChunkZ();
- if (Val1 < 0)
- {
- Val1 = -Val1;
- }
-
- if (Val2 < 0)
- {
- Val2 = -Val2;
- }
+ int Val1 = m_Noise.IntNoise2DInt(ChunkX ^ ChunkZ, ChunkZ + ChunkX);
+ int Val2 = m_Noise.IntNoise2DInt(ChunkZ ^ ChunkX, ChunkZ - ChunkX);
- int PosX, PosZ;
- // Calculate PosX
- if (Val1 <= 1)
- {
- PosX = (int) floor(Val1 * 16);
- }
- else
- {
- PosX = (int) floor(16 / Val1);
- }
-
- // Calculate PosZ
- if (Val2 <= 1)
- {
- PosZ = (int) floor(Val2 * 16);
- }
- else
- {
- PosZ = (int) floor(16 / Val2);
- }
+ int PosX = Val1 % 16;
+ int PosZ = Val2 % 16;
for (int y = 1; y < cChunkDef::Height; y++)
{
@@ -88,12 +60,14 @@ void cFinishGenNetherClumpFoliage::GenFinish(cChunkDesc & a_ChunkDesc)
{
continue;
}
+
if (!cBlockInfo::IsSolid(a_ChunkDesc.GetBlockType(PosX, y - 1, PosZ))) // Only place on solid blocks
{
continue;
}
- NOISE_DATATYPE BlockType = m_Noise.CubicNoise1D((float) (ChunkX * ChunkZ) / (y * 0.1f));
+ // Choose what block to use.
+ NOISE_DATATYPE BlockType = m_Noise.IntNoise3D((int) ChunkX, y, (int) ChunkZ);
if (BlockType < -0.7)
{
TryPlaceClump(a_ChunkDesc, PosX, y, PosZ, E_BLOCK_BROWN_MUSHROOM);
@@ -117,26 +91,71 @@ void cFinishGenNetherClumpFoliage::TryPlaceClump(cChunkDesc & a_ChunkDesc, int a
{
bool IsFireBlock = a_Block == E_BLOCK_FIRE;
- for (int x = a_RelX - 4; x < a_RelX + 4; x++)
+ int MinX = a_RelX - 4;
+ if (MinX < 0) // Check if the coordinate is outside the chunk. If it it then adjust it.
{
- float xx = (float) a_ChunkDesc.GetChunkX() * cChunkDef::Width + x;
- for (int z = a_RelZ - 4; z < a_RelZ + 4; z++)
+ MinX = 0;
+ }
+
+ int MaxX = a_RelX + 4;
+ if (MaxX > cChunkDef::Width) // Check if the coordinate is outside the chunk. If it it then adjust it.
+ {
+ MaxX = cChunkDef::Width;
+ }
+
+ int MinZ = a_RelZ - 4;
+ if (MinZ < 0) // Check if the coordinate is outside the chunk. If it it then adjust it.
+ {
+ MinZ = 0;
+ }
+
+ int MaxZ = a_RelZ + 4;
+ if (MaxZ > cChunkDef::Width) // Check if the coordinate is outside the chunk. If it it then adjust it.
+ {
+ MaxZ = cChunkDef::Width;
+ }
+
+ int MinY = a_RelY - 2;
+ if (MinY < 0) // Check if the coordinate is outside the chunk. If it it then adjust it.
+ {
+ MinY = 0;
+ }
+
+ int MaxY = a_RelY + 2;
+ if (MaxY > cChunkDef::Height) // Check if the coordinate is outside the chunk. If it it then adjust it.
+ {
+ MaxY = cChunkDef::Height;
+ }
+
+ for (int x = MinX; x < MaxX; x++)
+ {
+ int xx = a_ChunkDesc.GetChunkX() * cChunkDef::Width + x;
+ for (int z = MinZ; z < MaxZ; z++)
{
- float zz = (float) a_ChunkDesc.GetChunkZ() * cChunkDef::Width + z;
- for (int y = a_RelY - 2; y < a_RelY + 2; y++)
+ int zz = a_ChunkDesc.GetChunkZ() * cChunkDef::Width + z;
+ for (int y = MinY; y < MaxY; y++)
{
- if (a_ChunkDesc.GetBlockType(x, y, z) != E_BLOCK_AIR) // Don't replace non air blocks.
+ if (
+ ((x < 0) || (x >= cChunkDef::Width)) ||
+ ((y < 0) || (y >= cChunkDef::Height)) ||
+ ((z < 0) || (z >= cChunkDef::Width))
+ )
+ {
+ continue;
+ }
+
+ if (a_ChunkDesc.GetBlockType(x, y, z) != E_BLOCK_AIR) // Don't replace non air blocks.
{
continue;
}
BLOCKTYPE BlockBelow = a_ChunkDesc.GetBlockType(x, y - 1, z);
- if (!cBlockInfo::IsSolid(BlockBelow)) // Only place on solid blocks
+ if (!cBlockInfo::FullyOccupiesVoxel(BlockBelow)) // Only place on solid blocks
{
continue;
}
- if (IsFireBlock) // don't place fire on non-forever burning blocks.
+ if (IsFireBlock) // don't place fire on non-forever burning blocks.
{
if (!cFireSimulator::DoesBurnForever(BlockBelow))
{
@@ -144,9 +163,8 @@ void cFinishGenNetherClumpFoliage::TryPlaceClump(cChunkDesc & a_ChunkDesc, int a
}
}
-
- NOISE_DATATYPE Val = m_Noise.CubicNoise2D(xx, zz);
- if (Val < -0.70)
+ NOISE_DATATYPE Val = m_Noise.IntNoise2D(xx, zz);
+ if (Val < -0.5)
{
a_ChunkDesc.SetBlockType(x, y, z, a_Block);
}
@@ -159,7 +177,66 @@ void cFinishGenNetherClumpFoliage::TryPlaceClump(cChunkDesc & a_ChunkDesc, int a
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
+// cFinishGenTallGrass:
+
+void cFinishGenTallGrass::GenFinish(cChunkDesc & a_ChunkDesc)
+{
+ for (int x = 0; x < cChunkDef::Width; x++)
+ {
+ int xx = x + a_ChunkDesc.GetChunkX() * cChunkDef::Width;
+ for (int z = 0; z < cChunkDef::Width; z++)
+ {
+ int zz = z + a_ChunkDesc.GetChunkZ() * cChunkDef::Width;
+ int BiomeDensity = GetBiomeDensity(a_ChunkDesc.GetBiome(x, z));
+
+ // Choose if we want to place long grass here. If not then bail out:
+ if ((m_Noise.IntNoise2DInt(xx + m_Noise.IntNoise1DInt(xx), zz + m_Noise.IntNoise1DInt(zz)) / 7 % 100) > BiomeDensity)
+ {
+ continue;
+ }
+
+ // Get the top block + 1. This is the place where the grass would finaly be placed:
+ int y = a_ChunkDesc.GetHeight(x, z) + 1;
+
+ // Check if long grass can be placed:
+ if (
+ (a_ChunkDesc.GetBlockType(x, y, z) != E_BLOCK_AIR) ||
+ ((a_ChunkDesc.GetBlockType(x, y - 1, z) != E_BLOCK_GRASS) && (a_ChunkDesc.GetBlockType(x, y - 1, z) != E_BLOCK_DIRT))
+ )
+ {
+ continue;
+ }
+
+ // Choose what long grass meta we should use:
+ int GrassType = m_Noise.IntNoise2DInt(xx * 50, zz * 50) / 7 % 100;
+ if (GrassType < 60)
+ {
+ a_ChunkDesc.SetBlockTypeMeta(x, y, z, E_BLOCK_TALL_GRASS, 1);
+ }
+ else if (GrassType < 90)
+ {
+ a_ChunkDesc.SetBlockTypeMeta(x, y, z, E_BLOCK_TALL_GRASS, 2);
+ }
+ else
+ {
+ // If double long grass we have to choose what type we should use:
+ if (a_ChunkDesc.GetBlockType(x, y + 1, z) == E_BLOCK_AIR)
+ {
+ NIBBLETYPE Meta = (m_Noise.IntNoise2DInt(xx * 100, zz * 100) / 7 % 100) > 25 ? 2 : 3;
+ a_ChunkDesc.SetBlockTypeMeta(x, y, z, E_BLOCK_BIG_FLOWER, Meta);
+ a_ChunkDesc.SetBlockTypeMeta(x, y + 1, z, E_BLOCK_BIG_FLOWER, 8);
+ }
+ }
+ }
+ }
+}
+
+
+
+
+
+////////////////////////////////////////////////////////////////////////////////
// cFinishGenSprinkleFoliage:
bool cFinishGenSprinkleFoliage::TryAddSugarcane(cChunkDesc & a_ChunkDesc, int a_RelX, int a_RelY, int a_RelZ)
@@ -193,8 +270,8 @@ bool cFinishGenSprinkleFoliage::TryAddSugarcane(cChunkDesc & a_ChunkDesc, int a_
if (
!IsWater(a_ChunkDesc.GetBlockType(a_RelX - 1, a_RelY, a_RelZ)) &&
!IsWater(a_ChunkDesc.GetBlockType(a_RelX + 1, a_RelY, a_RelZ)) &&
- !IsWater(a_ChunkDesc.GetBlockType(a_RelX , a_RelY, a_RelZ - 1)) &&
- !IsWater(a_ChunkDesc.GetBlockType(a_RelX , a_RelY, a_RelZ + 1))
+ !IsWater(a_ChunkDesc.GetBlockType(a_RelX, a_RelY, a_RelZ - 1)) &&
+ !IsWater(a_ChunkDesc.GetBlockType(a_RelX, a_RelY, a_RelZ + 1))
)
{
return false;
@@ -214,7 +291,7 @@ void cFinishGenSprinkleFoliage::GenFinish(cChunkDesc & a_ChunkDesc)
// Generate small foliage (1-block):
// TODO: Update heightmap with 1-block-tall foliage
- for (int z = 0; z < cChunkDef::Width; z++)
+ for (int z = 0; z < cChunkDef::Width; z++)
{
int BlockZ = a_ChunkDesc.GetChunkZ() * cChunkDef::Width + z;
const float zz = (float)BlockZ;
@@ -239,14 +316,14 @@ void cFinishGenSprinkleFoliage::GenFinish(cChunkDesc & a_ChunkDesc)
}
const float xx = (float)BlockX;
- float val1 = m_Noise.CubicNoise2D(xx * 0.1f, zz * 0.1f );
- float val2 = m_Noise.CubicNoise2D(xx * 0.01f, zz * 0.01f );
+ float val1 = m_Noise.CubicNoise2D(xx * 0.1f, zz * 0.1f);
+ float val2 = m_Noise.CubicNoise2D(xx * 0.01f, zz * 0.01f);
switch (a_ChunkDesc.GetBlockType(x, Top, z))
{
case E_BLOCK_GRASS:
{
- float val3 = m_Noise.CubicNoise2D(xx * 0.01f + 10, zz * 0.01f + 10 );
- float val4 = m_Noise.CubicNoise2D(xx * 0.05f + 20, zz * 0.05f + 20 );
+ float val3 = m_Noise.CubicNoise2D(xx * 0.01f + 10, zz * 0.01f + 10);
+ float val4 = m_Noise.CubicNoise2D(xx * 0.05f + 20, zz * 0.05f + 20);
if (val1 + val2 > 0.2f)
{
a_ChunkDesc.SetBlockType(x, ++Top, z, E_BLOCK_YELLOW_FLOWER);
@@ -309,7 +386,7 @@ void cFinishGenSprinkleFoliage::GenFinish(cChunkDesc & a_ChunkDesc)
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cFinishGenSnow:
void cFinishGenSnow::GenFinish(cChunkDesc & a_ChunkDesc)
@@ -345,7 +422,7 @@ void cFinishGenSnow::GenFinish(cChunkDesc & a_ChunkDesc)
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cFinishGenIce:
void cFinishGenIce::GenFinish(cChunkDesc & a_ChunkDesc)
@@ -385,15 +462,15 @@ void cFinishGenIce::GenFinish(cChunkDesc & a_ChunkDesc)
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// cFinishGenLilypads:
+////////////////////////////////////////////////////////////////////////////////
+// cFinishGenSingleTopBlock:
-int cFinishGenSingleBiomeSingleTopBlock::GetNumToGen(const cChunkDef::BiomeMap & a_BiomeMap)
+int cFinishGenSingleTopBlock::GetNumToGen(const cChunkDef::BiomeMap & a_BiomeMap)
{
int res = 0;
for (size_t i = 0; i < ARRAYCOUNT(a_BiomeMap); i++)
{
- if (a_BiomeMap[i] == m_Biome)
+ if (IsAllowedBiome(a_BiomeMap[i]))
{
res++;
}
@@ -405,7 +482,7 @@ int cFinishGenSingleBiomeSingleTopBlock::GetNumToGen(const cChunkDef::BiomeMap &
-void cFinishGenSingleBiomeSingleTopBlock::GenFinish(cChunkDesc & a_ChunkDesc)
+void cFinishGenSingleTopBlock::GenFinish(cChunkDesc & a_ChunkDesc)
{
// Add Lilypads on top of water surface in Swampland
@@ -418,11 +495,13 @@ void cFinishGenSingleBiomeSingleTopBlock::GenFinish(cChunkDesc & a_ChunkDesc)
int z = (m_Noise.IntNoise3DInt(ChunkX - ChunkZ, i, ChunkZ) / 11) % cChunkDef::Width;
// Place the block at {x, z} if possible:
- if (a_ChunkDesc.GetBiome(x, z) != m_Biome)
+ EMCSBiome Biome = a_ChunkDesc.GetBiome(x, z);
+ if (!IsAllowedBiome(Biome))
{
// Incorrect biome
continue;
}
+
int Height = a_ChunkDesc.GetHeight(x, z);
if (Height >= cChunkDef::Height)
{
@@ -434,20 +513,23 @@ void cFinishGenSingleBiomeSingleTopBlock::GenFinish(cChunkDesc & a_ChunkDesc)
// Not an empty block
continue;
}
+
BLOCKTYPE BlockBelow = a_ChunkDesc.GetBlockType(x, Height, z);
- if ((BlockBelow == m_AllowedBelow1) || (BlockBelow == m_AllowedBelow2))
+ if (!IsAllowedBlockBelow(BlockBelow))
{
- a_ChunkDesc.SetBlockType(x, Height + 1, z, m_BlockType);
- a_ChunkDesc.SetHeight(x, z, Height + 1);
+ continue;
}
- } // for i
+
+ a_ChunkDesc.SetBlockType(x, Height + 1, z, m_BlockType);
+ a_ChunkDesc.SetHeight(x, z, Height + 1);
+ }
}
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cFinishGenBottomLava:
void cFinishGenBottomLava::GenFinish(cChunkDesc & a_ChunkDesc)
@@ -470,10 +552,13 @@ void cFinishGenBottomLava::GenFinish(cChunkDesc & a_ChunkDesc)
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cFinishGenPreSimulator:
-cFinishGenPreSimulator::cFinishGenPreSimulator(void)
+cFinishGenPreSimulator::cFinishGenPreSimulator(bool a_PreSimulateFallingBlocks, bool a_PreSimulateWater, bool a_PreSimulateLava) :
+ m_PreSimulateFallingBlocks(a_PreSimulateFallingBlocks),
+ m_PreSimulateWater(a_PreSimulateWater),
+ m_PreSimulateLava(a_PreSimulateLava)
{
// Nothing needed yet
}
@@ -484,9 +569,20 @@ cFinishGenPreSimulator::cFinishGenPreSimulator(void)
void cFinishGenPreSimulator::GenFinish(cChunkDesc & a_ChunkDesc)
{
- CollapseSandGravel(a_ChunkDesc.GetBlockTypes(), a_ChunkDesc.GetHeightMap());
- StationarizeFluid(a_ChunkDesc.GetBlockTypes(), a_ChunkDesc.GetHeightMap(), E_BLOCK_WATER, E_BLOCK_STATIONARY_WATER);
- StationarizeFluid(a_ChunkDesc.GetBlockTypes(), a_ChunkDesc.GetHeightMap(), E_BLOCK_LAVA, E_BLOCK_STATIONARY_LAVA);
+ if (m_PreSimulateFallingBlocks)
+ {
+ CollapseSandGravel(a_ChunkDesc.GetBlockTypes(), a_ChunkDesc.GetHeightMap());
+ }
+
+ if (m_PreSimulateWater)
+ {
+ StationarizeFluid(a_ChunkDesc.GetBlockTypes(), a_ChunkDesc.GetHeightMap(), E_BLOCK_WATER, E_BLOCK_STATIONARY_WATER);
+ }
+
+ if (m_PreSimulateLava)
+ {
+ StationarizeFluid(a_ChunkDesc.GetBlockTypes(), a_ChunkDesc.GetHeightMap(), E_BLOCK_LAVA, E_BLOCK_STATIONARY_LAVA);
+ }
// TODO: other operations
}
@@ -637,7 +733,7 @@ void cFinishGenPreSimulator::StationarizeFluid(
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cFinishGenFluidSprings:
cFinishGenFluidSprings::cFinishGenFluidSprings(int a_Seed, BLOCKTYPE a_Fluid, cIniFile & a_IniFile, eDimension a_Dimension) :
@@ -678,7 +774,7 @@ cFinishGenFluidSprings::cFinishGenFluidSprings(int a_Seed, BLOCKTYPE a_Fluid, cI
AString HeightDistribution = a_IniFile.GetValueSet(SectionName, "HeightDistribution", DefaultHeightDistribution);
if (!m_HeightDistribution.SetDefString(HeightDistribution) || (m_HeightDistribution.GetSum() <= 0))
{
- LOGWARNING("[%sSprings]: HeightDistribution is invalid, using the default of \"%s\".",
+ LOGWARNING("[%sSprings]: HeightDistribution is invalid, using the default of \"%s\".",
(a_Fluid == E_BLOCK_WATER) ? "Water" : "Lava",
DefaultHeightDistribution.c_str()
);
diff --git a/src/Generating/FinishGen.h b/src/Generating/FinishGen.h
index 2e5732929..4a08d70c8 100644
--- a/src/Generating/FinishGen.h
+++ b/src/Generating/FinishGen.h
@@ -69,6 +69,54 @@ protected:
+class cFinishGenTallGrass :
+ public cFinishGen
+{
+public:
+ cFinishGenTallGrass(int a_Seed) : m_Noise(a_Seed), m_Seed(a_Seed) {}
+
+protected:
+ cNoise m_Noise;
+ int m_Seed;
+
+ // cFinishGen override:
+ virtual void GenFinish(cChunkDesc & a_ChunkDesc) override;
+
+ int GetBiomeDensity(EMCSBiome a_Biome)
+ {
+ switch (a_Biome)
+ {
+ case biSavanna:
+ case biSavannaM:
+ case biSavannaPlateau:
+ case biSavannaPlateauM:
+ case biPlains:
+ {
+ return 70;
+ }
+
+ case biExtremeHillsEdge:
+ case biExtremeHillsPlus:
+ case biExtremeHills:
+ case biExtremeHillsPlusM:
+ case biExtremeHillsM:
+ case biIceMountains:
+ {
+ return 3;
+ }
+
+ default:
+ {
+ return 20;
+ }
+ }
+ }
+};
+
+
+
+
+
class cFinishGenSprinkleFoliage :
public cFinishGen
{
@@ -95,32 +143,69 @@ Used for:
- Lilypads finisher
- DeadBushes finisher
*/
-class cFinishGenSingleBiomeSingleTopBlock :
+class cFinishGenSingleTopBlock :
public cFinishGen
{
public:
- cFinishGenSingleBiomeSingleTopBlock(
- int a_Seed, BLOCKTYPE a_BlockType, EMCSBiome a_Biome, int a_Amount,
- BLOCKTYPE a_AllowedBelow1, BLOCKTYPE a_AllowedBelow2
+ typedef std::vector<BLOCKTYPE> BlockList;
+ bool m_IsAllowedBelow[256];
+
+ typedef std::vector<EMCSBiome> BiomeList;
+ bool m_IsBiomeAllowed[256];
+
+
+ cFinishGenSingleTopBlock(
+ int a_Seed, BLOCKTYPE a_BlockType, BiomeList a_Biomes, int a_Amount,
+ BlockList a_AllowedBelow
) :
m_Noise(a_Seed),
m_BlockType(a_BlockType),
- m_Biome(a_Biome),
- m_Amount(a_Amount),
- m_AllowedBelow1(a_AllowedBelow1),
- m_AllowedBelow2(a_AllowedBelow2)
+ m_Amount(a_Amount)
{
+ // Initialize all the block types.
+ for (size_t idx = 0; idx < ARRAYCOUNT(m_IsAllowedBelow); ++idx)
+ {
+ m_IsAllowedBelow[idx] = false;
+ }
+
+ // Load the allowed blocks into m_IsAllowedBelow
+ for (BlockList::iterator itr = a_AllowedBelow.begin(); itr != a_AllowedBelow.end(); ++itr)
+ {
+ m_IsAllowedBelow[*itr] = true;
+ }
+
+ // Initialize all the biome types.
+ for (size_t idx = 0; idx < ARRAYCOUNT(m_IsBiomeAllowed); ++idx)
+ {
+ m_IsBiomeAllowed[idx] = false;
+ }
+
+ // Load the allowed biomes into m_IsBiomeAllowed
+ for (BiomeList::iterator itr = a_Biomes.begin(); itr != a_Biomes.end(); ++itr)
+ {
+ m_IsBiomeAllowed[*itr] = true;
+ }
}
protected:
cNoise m_Noise;
BLOCKTYPE m_BlockType;
- EMCSBiome m_Biome;
int m_Amount; ///< Relative amount of blocks to try adding. 1 = one block per 256 biome columns.
- BLOCKTYPE m_AllowedBelow1; ///< First of the two blocktypes that are allowed below m_BlockType
- BLOCKTYPE m_AllowedBelow2; ///< Second of the two blocktypes that are allowed below m_BlockType
int GetNumToGen(const cChunkDef::BiomeMap & a_BiomeMap);
+
+ // Returns true if the given biome is a biome that is allowed.
+ inline bool IsAllowedBiome(EMCSBiome a_Biome)
+ {
+ return m_IsBiomeAllowed[a_Biome];
+ }
+
+ // Returns true if the given blocktype may be below m_BlockType
+ inline bool IsAllowedBlockBelow(BLOCKTYPE a_BlockBelow)
+ {
+ return m_IsAllowedBelow[a_BlockBelow];
+ }
+
// cFinishGen override:
virtual void GenFinish(cChunkDesc & a_ChunkDesc) override;
@@ -155,9 +240,14 @@ class cFinishGenPreSimulator :
public cFinishGen
{
public:
- cFinishGenPreSimulator(void);
+ cFinishGenPreSimulator(bool a_PreSimulateFallingBlocks, bool a_PreSimulateWater, bool a_PreSimulateLava);
protected:
+
+ bool m_PreSimulateFallingBlocks;
+ bool m_PreSimulateWater;
+ bool m_PreSimulateLava;
+
// Drops hanging sand and gravel down to the ground, recalculates heightmap
void CollapseSandGravel(
cChunkDef::BlockTypes & a_BlockTypes, // Block types to read and change
@@ -199,7 +289,7 @@ protected:
// cFinishGen override:
virtual void GenFinish(cChunkDesc & a_ChunkDesc) override;
- /// Tries to place a spring at the specified coords, checks neighbors. Returns true if successful
+ /// Tries to place a spring at the specified coords, checks neighbors. Returns true if successful
bool TryPlaceSpring(cChunkDesc & a_ChunkDesc, int x, int y, int z);
} ;
diff --git a/src/Generating/GridStructGen.cpp b/src/Generating/GridStructGen.cpp
index 2931df3eb..7090f14b1 100644
--- a/src/Generating/GridStructGen.cpp
+++ b/src/Generating/GridStructGen.cpp
@@ -9,7 +9,7 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cEmptyStructure:
/** A cStructure descendant representing an empty structure.
@@ -44,6 +44,7 @@ cGridStructGen::cGridStructGen(
int a_MaxStructureSizeX, int a_MaxStructureSizeZ,
size_t a_MaxCacheSize
) :
+ m_Seed(a_Seed),
m_Noise(a_Seed),
m_GridSizeX(a_GridSizeX),
m_GridSizeZ(a_GridSizeZ),
@@ -53,6 +54,16 @@ cGridStructGen::cGridStructGen(
m_MaxStructureSizeZ(a_MaxStructureSizeZ),
m_MaxCacheSize(a_MaxCacheSize)
{
+ if (m_GridSizeX == 0)
+ {
+ LOG("Grid Size cannot be zero, setting to 1");
+ m_GridSizeX = 1;
+ }
+ if (m_GridSizeZ == 0)
+ {
+ LOG("Grid Size cannot be zero, setting to 1");
+ m_GridSizeZ = 1;
+ }
size_t NumStructuresPerQuery = (size_t)(((m_MaxStructureSizeX + m_MaxOffsetX) / m_GridSizeX + 1) * ((m_MaxStructureSizeZ + m_MaxOffsetZ) / m_GridSizeZ + 1));
if (NumStructuresPerQuery > m_MaxCacheSize)
{
@@ -88,8 +99,8 @@ void cGridStructGen::GetStructuresForChunk(int a_ChunkX, int a_ChunkZ, cStructur
for (cStructurePtrs::iterator itr = m_Cache.begin(), end = m_Cache.end(); itr != end;)
{
if (
- ((*itr)->m_OriginX >= MinX) && ((*itr)->m_OriginX < MaxX) &&
- ((*itr)->m_OriginZ >= MinZ) && ((*itr)->m_OriginZ < MaxZ)
+ ((*itr)->m_GridX >= MinX) && ((*itr)->m_GridX < MaxX) &&
+ ((*itr)->m_GridZ >= MinZ) && ((*itr)->m_GridZ < MaxZ)
)
{
// want
diff --git a/src/Generating/HeiGen.cpp b/src/Generating/HeiGen.cpp
index 25ac912fd..870ceef7f 100644
--- a/src/Generating/HeiGen.cpp
+++ b/src/Generating/HeiGen.cpp
@@ -16,7 +16,7 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cTerrainHeightGen:
cTerrainHeightGen * cTerrainHeightGen::CreateHeightGen(cIniFile &a_IniFile, cBiomeGen & a_BiomeGen, int a_Seed, bool & a_CacheOffByDefault)
@@ -91,7 +91,7 @@ cTerrainHeightGen * cTerrainHeightGen::CreateHeightGen(cIniFile &a_IniFile, cBio
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cHeiGenFlat:
void cHeiGenFlat::GenHeightMap(int a_ChunkX, int a_ChunkZ, cChunkDef::HeightMap & a_HeightMap)
@@ -115,7 +115,7 @@ void cHeiGenFlat::InitializeHeightGen(cIniFile & a_IniFile)
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cHeiGenCache:
cHeiGenCache::cHeiGenCache(cTerrainHeightGen & a_HeiGenToCache, int a_CacheSize) :
@@ -142,7 +142,9 @@ cHeiGenCache::cHeiGenCache(cTerrainHeightGen & a_HeiGenToCache, int a_CacheSize)
cHeiGenCache::~cHeiGenCache()
{
delete[] m_CacheData;
+ m_CacheData = NULL;
delete[] m_CacheOrder;
+ m_CacheOrder = NULL;
}
@@ -232,7 +234,7 @@ bool cHeiGenCache::GetHeightAt(int a_ChunkX, int a_ChunkZ, int a_RelX, int a_Rel
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cHeiGenClassic:
cHeiGenClassic::cHeiGenClassic(int a_Seed) :
@@ -251,9 +253,9 @@ float cHeiGenClassic::GetNoise(float x, float y)
float oct2 = m_Noise.CubicNoise2D(x * m_HeightFreq2, y * m_HeightFreq2) * m_HeightAmp2;
float oct3 = m_Noise.CubicNoise2D(x * m_HeightFreq3, y * m_HeightFreq3) * m_HeightAmp3;
- float height = m_Noise.CubicNoise2D(x * 0.1f, y * 0.1f ) * 2;
+ float height = m_Noise.CubicNoise2D(x * 0.1f, y * 0.1f) * 2;
- float flatness = ((m_Noise.CubicNoise2D(x * 0.5f, y * 0.5f) + 1.f) * 0.5f) * 1.1f; // 0 ... 1.5
+ float flatness = ((m_Noise.CubicNoise2D(x * 0.5f, y * 0.5f) + 1.f) * 0.5f) * 1.1f; // 0 ... 1.5
flatness *= flatness * flatness;
return (oct1 + oct2 + oct3) * flatness + height;
@@ -265,7 +267,7 @@ float cHeiGenClassic::GetNoise(float x, float y)
void cHeiGenClassic::GenHeightMap(int a_ChunkX, int a_ChunkZ, cChunkDef::HeightMap & a_HeightMap)
{
- for (int z = 0; z < cChunkDef::Width; z++)
+ for (int z = 0; z < cChunkDef::Width; z++)
{
const float zz = (float)(a_ChunkZ * cChunkDef::Width + z);
for (int x = 0; x < cChunkDef::Width; x++)
@@ -281,7 +283,7 @@ void cHeiGenClassic::GenHeightMap(int a_ChunkX, int a_ChunkZ, cChunkDef::HeightM
{
hei = 250;
}
- cChunkDef::SetHeight(a_HeightMap, x , z, hei);
+ cChunkDef::SetHeight(a_HeightMap, x, z, hei);
} // for x
} // for z
}
@@ -304,7 +306,7 @@ void cHeiGenClassic::InitializeHeightGen(cIniFile & a_IniFile)
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cHeiGenMountains:
cHeiGenMountains::cHeiGenMountains(int a_Seed) :
@@ -343,7 +345,7 @@ void cHeiGenMountains::GenHeightMap(int a_ChunkX, int a_ChunkZ, cChunkDef::Heigh
{
hei = 250;
}
- cChunkDef::SetHeight(a_HeightMap, x , z, hei);
+ cChunkDef::SetHeight(a_HeightMap, x, z, hei);
} // for x
} // for z
}
@@ -366,7 +368,7 @@ void cHeiGenMountains::InitializeHeightGen(cIniFile & a_IniFile)
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cHeiGenBiomal:
const cHeiGenBiomal::sGenParam cHeiGenBiomal::m_GenParam[256] =
diff --git a/src/Generating/MineShafts.cpp b/src/Generating/MineShafts.cpp
index ab9b1aa29..0532aff39 100644
--- a/src/Generating/MineShafts.cpp
+++ b/src/Generating/MineShafts.cpp
@@ -275,7 +275,7 @@ public:
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cStructGenMineShafts::cMineShaftSystem:
cStructGenMineShafts::cMineShaftSystem::cMineShaftSystem(
@@ -400,7 +400,7 @@ bool cStructGenMineShafts::cMineShaftSystem::CanAppend(const cCuboid & a_Boundin
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cMineShaftDirtRoom:
cMineShaftDirtRoom::cMineShaftDirtRoom(cStructGenMineShafts::cMineShaftSystem & a_Parent, cNoise & a_Noise) :
@@ -492,7 +492,7 @@ void cMineShaftDirtRoom::ProcessChunk(cChunkDesc & a_ChunkDesc)
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cMineShaftCorridor:
cMineShaftCorridor::cMineShaftCorridor(
@@ -732,7 +732,7 @@ void cMineShaftCorridor::ProcessChunk(cChunkDesc & a_ChunkDesc)
PlaceChest(a_ChunkDesc);
PlaceTracks(a_ChunkDesc);
- PlaceSpawner(a_ChunkDesc); // (must be after Tracks!)
+ PlaceSpawner(a_ChunkDesc); // (must be after Tracks!)
PlaceTorches(a_ChunkDesc);
}
@@ -964,7 +964,7 @@ void cMineShaftCorridor::PlaceTorches(cChunkDesc & a_ChunkDesc)
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cMineShaftCrossing:
cMineShaftCrossing::cMineShaftCrossing(cStructGenMineShafts::cMineShaftSystem & a_ParentSystem, const cCuboid & a_BoundingBox) :
@@ -997,7 +997,6 @@ cMineShaft * cMineShaftCrossing::CreateAndFit(
BoundingBox.p2.y -= 4;
}
}
- rnd >>= 2;
switch (a_Direction)
{
case dirXP: BoundingBox.p2.x += 4; BoundingBox.p1.z -= 2; BoundingBox.p2.z += 2; break;
@@ -1100,7 +1099,7 @@ void cMineShaftCrossing::ProcessChunk(cChunkDesc & a_ChunkDesc)
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cMineShaftStaircase:
cMineShaftStaircase::cMineShaftStaircase(
@@ -1278,7 +1277,7 @@ void cMineShaftStaircase::ProcessChunk(cChunkDesc & a_ChunkDesc)
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cStructGenMineShafts:
cStructGenMineShafts::cStructGenMineShafts(
diff --git a/src/Generating/NetherFortGen.cpp b/src/Generating/NetherFortGen.cpp
index 23fa56048..f35555efd 100644
--- a/src/Generating/NetherFortGen.cpp
+++ b/src/Generating/NetherFortGen.cpp
@@ -11,7 +11,7 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cNetherFortGen::cNetherFort:
class cNetherFortGen::cNetherFort :
@@ -65,7 +65,7 @@ public:
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// Performance test of the NetherFort generator:
/*
@@ -99,7 +99,7 @@ public:
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cNetherFortGen:
cPrefabPiecePool cNetherFortGen::m_PiecePool(g_NetherFortPrefabs, g_NetherFortPrefabsCount, g_NetherFortStartingPrefabs, g_NetherFortStartingPrefabsCount);
diff --git a/src/Generating/Noise3DGenerator.cpp b/src/Generating/Noise3DGenerator.cpp
index 15a588d45..b879349ee 100644
--- a/src/Generating/Noise3DGenerator.cpp
+++ b/src/Generating/Noise3DGenerator.cpp
@@ -61,7 +61,7 @@ public:
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cNoise3DGenerator:
cNoise3DGenerator::cNoise3DGenerator(cChunkGenerator & a_ChunkGenerator) :
@@ -342,7 +342,7 @@ void cNoise3DGenerator::ComposeTerrain(cChunkDesc & a_ChunkDesc)
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cNoise3DComposable:
cNoise3DComposable::cNoise3DComposable(int a_Seed) :
diff --git a/src/Generating/POCPieceGenerator.cpp b/src/Generating/POCPieceGenerator.cpp
index 491f4d206..6e7e74d7a 100644
--- a/src/Generating/POCPieceGenerator.cpp
+++ b/src/Generating/POCPieceGenerator.cpp
@@ -150,7 +150,7 @@ static void DebugPieces(const cPlacedPieces & a_Pieces)
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cPOCPieceGenerator:
cPOCPieceGenerator::cPOCPieceGenerator(int a_Seed) :
diff --git a/src/Generating/PieceGenerator.cpp b/src/Generating/PieceGenerator.cpp
index 5de231f75..ae4b6e36c 100644
--- a/src/Generating/PieceGenerator.cpp
+++ b/src/Generating/PieceGenerator.cpp
@@ -1,7 +1,7 @@
// PieceGenerator.cpp
-// Implements the cBFSPieceGenerator class and cDFSPieceGenerator class
+// Implements the cBFSPieceGenerator class and cDFSPieceGenerator class
// representing base classes for generating structures composed of individual "pieces"
#include "Globals.h"
@@ -13,7 +13,7 @@
#ifdef SELF_TEST
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// Self-test:
static class cPieceGeneratorSelfTest :
@@ -140,7 +140,7 @@ protected:
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cPiece:
@@ -254,7 +254,7 @@ cCuboid cPiece::RotateMoveHitBox(int a_NumCCWRotations, int a_MoveX, int a_MoveY
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cPiece::cConnector:
cPiece::cConnector::cConnector(int a_X, int a_Y, int a_Z, int a_Type, eBlockFace a_Direction) :
@@ -279,7 +279,7 @@ cPiece::cConnector::cConnector(const Vector3i & a_Pos, int a_Type, eBlockFace a_
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cPlacedPiece:
cPlacedPiece::cPlacedPiece(const cPlacedPiece * a_Parent, const cPiece & a_Piece, const Vector3i & a_Coords, int a_NumCCWRotations) :
@@ -328,7 +328,7 @@ void cPlacedPiece::MoveToGroundBy(int a_OffsetY)
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cPieceGenerator:
cPieceGenerator::cPieceGenerator(cPiecePool & a_PiecePool, int a_Seed) :
@@ -578,7 +578,7 @@ void cPieceGenerator::DebugConnectorPool(const cPieceGenerator::cFreeConnectors
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cPieceGenerator::cConnection:
cPieceGenerator::cConnection::cConnection(cPiece & a_Piece, cPiece::cConnector & a_Connector, int a_NumCCWRotations, int a_Weight) :
@@ -593,7 +593,7 @@ cPieceGenerator::cConnection::cConnection(cPiece & a_Piece, cPiece::cConnector &
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cPieceGenerator::cFreeConnector:
cPieceGenerator::cFreeConnector::cFreeConnector(cPlacedPiece * a_Piece, const cPiece::cConnector & a_Connector) :
@@ -606,7 +606,7 @@ cPieceGenerator::cFreeConnector::cFreeConnector(cPlacedPiece * a_Piece, const cP
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cBFSPieceGenerator:
cBFSPieceGenerator::cBFSPieceGenerator(cPiecePool & a_PiecePool, int a_Seed) :
diff --git a/src/Generating/PieceGenerator.h b/src/Generating/PieceGenerator.h
index fd8576706..f06029280 100644
--- a/src/Generating/PieceGenerator.h
+++ b/src/Generating/PieceGenerator.h
@@ -1,7 +1,7 @@
// PieceGenerator.h
-// Declares the cBFSPieceGenerator class and cDFSPieceGenerator class
+// Declares the cBFSPieceGenerator class and cDFSPieceGenerator class
// representing base classes for generating structures composed of individual "pieces"
/*
@@ -251,7 +251,7 @@ protected:
const cPiece::cConnector & a_ExistingConnector, // The existing connector
const Vector3i & a_ToPos, // The position on which the new connector should be placed
const cPiece & a_Piece, // The new piece
- const cPiece::cConnector & a_NewConnector, // The connector of the new piece
+ const cPiece::cConnector & a_NewConnector, // The connector of the new piece
int a_NumCCWRotations, // Number of rotations for the new piece to align the connector
const cPlacedPieces & a_OutPieces // All the already-placed pieces to check
);
diff --git a/src/Generating/Prefab.cpp b/src/Generating/Prefab.cpp
index 2ab1455b9..6da3c3d10 100644
--- a/src/Generating/Prefab.cpp
+++ b/src/Generating/Prefab.cpp
@@ -181,7 +181,7 @@ void cPrefab::AddRotatedBlockAreas(void)
m_BlockArea[2].CopyFrom(m_BlockArea[0]);
m_BlockArea[2].MirrorXY();
m_BlockArea[2].MirrorYZ();
- }
+ }
// 3 CCW rotations = 1 CW rotation:
if ((m_AllowedRotations & 0x04) != 0)
@@ -211,6 +211,17 @@ void cPrefab::Draw(cChunkDesc & a_Dest, const Vector3i & a_Placement, int a_NumR
int ChunkStartZ = a_Dest.GetChunkZ() * cChunkDef::Width;
Placement.Move(-ChunkStartX, 0, -ChunkStartZ);
const cBlockArea & Image = m_BlockArea[a_NumRotations];
+
+ // If the placement is outside this chunk, bail out:
+ if (
+ (Placement.x > cChunkDef::Width) || (Placement.x + Image.GetSizeX() < 0) ||
+ (Placement.z > cChunkDef::Width) || (Placement.z + Image.GetSizeZ() < 0)
+ )
+ {
+ return;
+ }
+
+ // Write the image:
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)
diff --git a/src/Generating/Prefab.h b/src/Generating/Prefab.h
index 8b4e4b4ef..eb905e78e 100644
--- a/src/Generating/Prefab.h
+++ b/src/Generating/Prefab.h
@@ -183,7 +183,7 @@ protected:
bool m_MoveToGround;
- // cPiece overrides:
+ // cPiece overrides:
virtual cConnectors GetConnectors(void) const override;
virtual Vector3i GetSize(void) const override;
virtual cCuboid GetHitBox(void) const override;
diff --git a/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp b/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp
index eb0d30fdf..c08e53ef6 100644
--- a/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp
+++ b/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp
@@ -15,7 +15,7 @@
const cPrefab::sDef g_AlchemistVillagePrefabs[] =
{
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// BarWithBasement:
// The data has been exported from the gallery Desert, area index 82, ID 598, created by STR_Warrior
{
@@ -28,170 +28,172 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
// Block definitions:
".: 0: 0\n" /* air */
- "A:171: 8\n" /* carpet */
- "B:101: 0\n" /* ironbars */
- "C: 64:12\n" /* wooddoorblock */
- "D:128: 2\n" /* sandstonestairs */
- "E: 24: 1\n" /* sandstone */
- "F: 44: 9\n" /* step */
- "G:126: 8\n" /* woodenslab */
- "H:128: 7\n" /* sandstonestairs */
- "I: 44: 1\n" /* step */
- "J: 64: 7\n" /* wooddoorblock */
- "K:128: 6\n" /* sandstonestairs */
- "a: 1: 0\n" /* stone */
- "b: 24: 0\n" /* sandstone */
- "c: 12: 0\n" /* sand */
- "d:134: 4\n" /* 134 */
- "e: 5: 1\n" /* wood */
- "f:134: 5\n" /* 134 */
- "g: 65: 5\n" /* ladder */
- "h: 17: 3\n" /* tree */
- "i: 69:11\n" /* lever */
- "j:134: 0\n" /* 134 */
- "k:134: 1\n" /* 134 */
- "l: 50: 4\n" /* torch */
+ "A: 65: 3\n" /* ladder */
+ "B: 50: 3\n" /* torch */
+ "C:171: 8\n" /* carpet */
+ "D:101: 0\n" /* ironbars */
+ "E: 64: 8\n" /* wooddoorblock */
+ "F:128: 2\n" /* sandstonestairs */
+ "G: 24: 1\n" /* sandstone */
+ "H: 44: 9\n" /* step */
+ "I:126: 8\n" /* woodenslab */
+ "J:128: 7\n" /* sandstonestairs */
+ "K: 44: 1\n" /* step */
+ "L: 64: 3\n" /* wooddoorblock */
+ "M:128: 6\n" /* sandstonestairs */
+ "a: 24: 2\n" /* sandstone */
+ "b: 1: 0\n" /* stone */
+ "c: 24: 0\n" /* sandstone */
+ "d: 12: 0\n" /* sand */
+ "e:134: 4\n" /* 134 */
+ "f: 5: 1\n" /* wood */
+ "g:134: 5\n" /* 134 */
+ "h: 65: 5\n" /* ladder */
+ "i: 17: 3\n" /* tree */
+ "j: 69:11\n" /* lever */
+ "k: 4: 0\n" /* cobblestone */
+ "l:134: 0\n" /* 134 */
"m: 19: 0\n" /* sponge */
- "n: 5: 0\n" /* wood */
- "o: 96:12\n" /* trapdoor */
- "p: 24: 2\n" /* sandstone */
- "q:128: 5\n" /* sandstonestairs */
- "r:107: 6\n" /* fencegate */
- "s:128: 4\n" /* sandstonestairs */
- "t:134: 3\n" /* 134 */
- "u: 85: 0\n" /* fence */
- "v:134: 7\n" /* 134 */
- "w:107: 5\n" /* fencegate */
- "x: 64: 5\n" /* wooddoorblock */
- "y: 65: 3\n" /* ladder */
- "z: 50: 3\n" /* torch */,
+ "n:134: 1\n" /* 134 */
+ "o: 50: 4\n" /* torch */
+ "p: 13: 0\n" /* gravel */
+ "q: 5: 0\n" /* wood */
+ "r: 96: 8\n" /* trapdoor */
+ "s:128: 5\n" /* sandstonestairs */
+ "t:107: 2\n" /* fencegate */
+ "u:128: 4\n" /* sandstonestairs */
+ "v:134: 3\n" /* 134 */
+ "w: 85: 0\n" /* fence */
+ "x:134: 7\n" /* 134 */
+ "y:107: 5\n" /* fencegate */
+ "z: 64: 1\n" /* wooddoorblock */,
// Block data:
// Level 0
/* z\x* 1 */
/* * 01234567890 */
- /* 0 */ "aaaaaaaaaaa"
- /* 1 */ "aaaaaaaaaaa"
- /* 2 */ "aabbbbbbbaa"
- /* 3 */ "aabbbbbbbaa"
- /* 4 */ "aabbbbbbbaa"
- /* 5 */ "aabbbbbbbaa"
- /* 6 */ "aabbbbbbbaa"
- /* 7 */ "aabbbbbbbaa"
- /* 8 */ "aaaaaaaaaaa"
- /* 9 */ "aaaaaaaaaaa"
+ /* 0 */ "mmmabbbammm"
+ /* 1 */ "mcccccccccm"
+ /* 2 */ "abcccccccba"
+ /* 3 */ "cbcccccccbc"
+ /* 4 */ "cbcccccccbc"
+ /* 5 */ "cbcccccccbc"
+ /* 6 */ "cbcccccccbc"
+ /* 7 */ "cbcccccccbc"
+ /* 8 */ "abbbbbbbbba"
+ /* 9 */ "mmmmmmmmmmm"
// Level 1
/* z\x* 1 */
/* * 01234567890 */
- /* 0 */ "ccccccccccc"
- /* 1 */ "cbbbbbbbbbc"
- /* 2 */ "cbdef.defbc"
- /* 3 */ "cbdef.defbc"
- /* 4 */ "cbdef.defbc"
- /* 5 */ "cb.......bc"
- /* 6 */ "cb.......bc"
- /* 7 */ "cbg......bc"
- /* 8 */ "cbbbbbbbbbc"
- /* 9 */ "ccccccccccc"
+ /* 0 */ "mmmadddammm"
+ /* 1 */ "mcccccccccm"
+ /* 2 */ "acefg.efgca"
+ /* 3 */ "ccefg.efgcc"
+ /* 4 */ "ccefg.efgcc"
+ /* 5 */ "cc.......cc"
+ /* 6 */ "cc.......cc"
+ /* 7 */ "cch......cc"
+ /* 8 */ "accccccccca"
+ /* 9 */ "mmmmmmmmmmm"
// Level 2
/* z\x* 1 */
/* * 01234567890 */
- /* 0 */ "ccccccccccc"
- /* 1 */ "cbbbbbbbbbc"
- /* 2 */ "cbeee.eeebc"
- /* 3 */ "cbeee.eeebc"
- /* 4 */ "cbehe.ehebc"
- /* 5 */ "cb.i...i.bc"
- /* 6 */ "cb.......bc"
- /* 7 */ "cbg......bc"
- /* 8 */ "cbbbbbbbbbc"
- /* 9 */ "ccccccccccc"
+ /* 0 */ "mmmadddammm"
+ /* 1 */ "mcccccccccm"
+ /* 2 */ "acfff.fffca"
+ /* 3 */ "ccfff.fffcc"
+ /* 4 */ "ccfif.fifcc"
+ /* 5 */ "cc.j...j.cc"
+ /* 6 */ "cc.......cc"
+ /* 7 */ "cch......cc"
+ /* 8 */ "accccccccca"
+ /* 9 */ "mmmmmmmmmmm"
// Level 3
/* z\x* 1 */
/* * 01234567890 */
- /* 0 */ "ccccccccccc"
- /* 1 */ "cbbbbbbbbbc"
- /* 2 */ "cbjek.jekbc"
- /* 3 */ "cbjek.jekbc"
- /* 4 */ "cbjek.jekbc"
- /* 5 */ "cb.......bc"
- /* 6 */ "cb.......bc"
- /* 7 */ "cbg..l...bc"
- /* 8 */ "cbbbbbbbbbc"
- /* 9 */ "ccccccccccc"
+ /* 0 */ "mmmakkkammm"
+ /* 1 */ "mcccccccccm"
+ /* 2 */ "aclfn.lfnca"
+ /* 3 */ "cclfn.lfncc"
+ /* 4 */ "cclfn.lfncc"
+ /* 5 */ "cc.......cc"
+ /* 6 */ "cc.......cc"
+ /* 7 */ "cch..o...cc"
+ /* 8 */ "accccccccca"
+ /* 9 */ "mmmmmmmmmmm"
// Level 4
/* z\x* 1 */
/* * 01234567890 */
- /* 0 */ "ccccccccccc"
- /* 1 */ "ccccccccccc"
- /* 2 */ "ccnnnnnnncc"
- /* 3 */ "cnnnnnnnnnc"
- /* 4 */ "cnnnnnnnnnc"
- /* 5 */ "cnnnnnnnnnc"
- /* 6 */ "cnnnnnnnnnc"
- /* 7 */ "cnonnnnnnnc"
- /* 8 */ "cnccccccccc"
- /* 9 */ "ccccccccccc"
+ /* 0 */ "mmmapppammm"
+ /* 1 */ "mmmmpppmmmm"
+ /* 2 */ "acccqqqccca"
+ /* 3 */ "cqqqqqqqqqc"
+ /* 4 */ "cqqqqqqqqqc"
+ /* 5 */ "cqqqqqqqqqc"
+ /* 6 */ "cqqqqqqqqqc"
+ /* 7 */ "cqrqqqqqqqc"
+ /* 8 */ "aqcccccccca"
+ /* 9 */ "mmmmmmmmmmm"
// Level 5
/* z\x* 1 */
/* * 01234567890 */
- /* 0 */ "...p...p..."
- /* 1 */ "..........."
- /* 2 */ "pbbbqrsbbbp"
- /* 3 */ "bkt.....ttb"
- /* 4 */ "bku.....ujb"
- /* 5 */ "b.........b"
- /* 6 */ "bfvvd.....b"
- /* 7 */ "b...w..kujb"
- /* 8 */ "pxbbbbbbbbp"
- /* 9 */ "..y........"
+ /* 0 */ "mmma...ammm"
+ /* 1 */ "mmm.....mmm"
+ /* 2 */ "acccstuccca"
+ /* 3 */ "cnv.....vvc"
+ /* 4 */ "cnw.....wlc"
+ /* 5 */ "c.........c"
+ /* 6 */ "cgxxe.....c"
+ /* 7 */ "c...y..nwlc"
+ /* 8 */ "azcccccccca"
+ /* 9 */ "mmAmmmmmmmm"
// Level 6
/* z\x* 1 */
/* * 01234567890 */
- /* 0 */ "...p...p..."
- /* 1 */ "..........."
- /* 2 */ "pbbb...bbbp"
- /* 3 */ "b..z...z..b"
- /* 4 */ "b.A.....A.b"
- /* 5 */ "B.........B"
- /* 6 */ "b.........b"
- /* 7 */ "b.......A.b"
- /* 8 */ "pCbbBBBbbbp"
- /* 9 */ "..y........"
+ /* 0 */ "mmma...ammm"
+ /* 1 */ "mmm.....mmm"
+ /* 2 */ "accc...ccca"
+ /* 3 */ "c..B...B..c"
+ /* 4 */ "c.C.....C.c"
+ /* 5 */ "D.........D"
+ /* 6 */ "c.........c"
+ /* 7 */ "c.......C.c"
+ /* 8 */ "aEccDDDccca"
+ /* 9 */ "mmAmmmmmmmm"
// Level 7
/* z\x* 1 */
/* * 01234567890 */
- /* 0 */ "...D...D..."
- /* 1 */ "...E...b..."
- /* 2 */ "pbbbqFsbbbp"
- /* 3 */ "bGGGGGGGGGb"
- /* 4 */ "bGGGGGGGGGb"
- /* 5 */ "sGGGGGGGGGq"
- /* 6 */ "bGGGGGGGGGb"
- /* 7 */ "bGGGGGGGGGb"
- /* 8 */ "pbbbHHHbbbp"
- /* 9 */ "..y........"
+ /* 0 */ "mmmF...Fmmm"
+ /* 1 */ "mmmG...cmmm"
+ /* 2 */ "acccsHuccca"
+ /* 3 */ "cIIIIIIIIIc"
+ /* 4 */ "cIIIIIIIIIc"
+ /* 5 */ "uIIIIIIIIIs"
+ /* 6 */ "cIIIIIIIIIc"
+ /* 7 */ "cIIIIIIIIIc"
+ /* 8 */ "acccJJJccca"
+ /* 9 */ "mmAmmmmmmmm"
// Level 8
/* z\x* 1 */
/* * 01234567890 */
- /* 0 */ "..........."
- /* 1 */ "..........."
- /* 2 */ "bIIIIbIIIIb"
- /* 3 */ "IpbbbbbbbpI"
- /* 4 */ "Ib.......bI"
- /* 5 */ "bb.......bb"
- /* 6 */ "Ib.......bI"
- /* 7 */ "IpJbbbbbbpI"
- /* 8 */ "bI.IIbIIIIb"
- /* 9 */ "..........."
+ /* 0 */ "mmm.....mmm"
+ /* 1 */ "mmm.....mmm"
+ /* 2 */ "cKKKKcKKKKc"
+ /* 3 */ "KacccccccaK"
+ /* 4 */ "Kc.......cK"
+ /* 5 */ "cc.......cc"
+ /* 6 */ "Kc.......cK"
+ /* 7 */ "KaLccccccaK"
+ /* 8 */ "cK.KKcKKKKc"
+ /* 9 */ "mmmmmmmmmmm"
// Level 9
/* z\x* 1 */
@@ -199,11 +201,11 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
/* 0 */ "..........."
/* 1 */ "..........."
/* 2 */ "..........."
- /* 3 */ ".pbbBBBbbp."
- /* 4 */ ".b.......b."
- /* 5 */ ".B.......B."
- /* 6 */ ".b.......b."
- /* 7 */ ".pCbBBBbbp."
+ /* 3 */ ".accDDDcca."
+ /* 4 */ ".c.......c."
+ /* 5 */ ".D.......D."
+ /* 6 */ ".c.......c."
+ /* 7 */ ".aEcDDDcca."
/* 8 */ "..........."
/* 9 */ "..........."
@@ -213,11 +215,11 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
/* 0 */ "..........."
/* 1 */ "..........."
/* 2 */ "..........."
- /* 3 */ ".pbbKKKbbp."
- /* 4 */ ".bGGGGGGGb."
- /* 5 */ ".sGGGGGGGq."
- /* 6 */ ".bGGGGGGGb."
- /* 7 */ ".pbbHHHbbp."
+ /* 3 */ ".accMMMcca."
+ /* 4 */ ".cIIIIIIIc."
+ /* 5 */ ".uIIIIIIIs."
+ /* 6 */ ".cIIIIIIIc."
+ /* 7 */ ".accJJJcca."
/* 8 */ "..........."
/* 9 */ "..........."
@@ -227,11 +229,11 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
/* 0 */ "..........."
/* 1 */ "..........."
/* 2 */ "..........."
- /* 3 */ ".bIIIbIIIb."
- /* 4 */ ".I.......I."
- /* 5 */ ".b.......b."
- /* 6 */ ".I.......I."
- /* 7 */ ".bIIIbIIIb."
+ /* 3 */ ".cKKKcKKKc."
+ /* 4 */ ".K.......K."
+ /* 5 */ ".c.......c."
+ /* 6 */ ".K.......K."
+ /* 7 */ ".cKKKcKKKc."
/* 8 */ "..........."
/* 9 */ "...........",
@@ -262,166 +264,180 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// BarWithoutBasement:
// The data has been exported from the gallery Desert, area index 81, ID 597, created by STR_Warrior
{
// Size:
- 11, 8, 10, // SizeX = 11, SizeY = 8, SizeZ = 10
+ 11, 9, 10, // SizeX = 11, SizeY = 9, SizeZ = 10
// Hitbox (relative to bounding box):
-1, 0, 0, // MinX, MinY, MinZ
- 11, 7, 10, // MaxX, MaxY, MaxZ
+ 11, 8, 10, // MaxX, MaxY, MaxZ
// Block definitions:
".: 0: 0\n" /* air */
- "A:128: 7\n" /* sandstonestairs */
- "B: 44: 1\n" /* step */
- "C: 64: 3\n" /* wooddoorblock */
- "D: 64: 8\n" /* wooddoorblock */
+ "A:126: 8\n" /* woodenslab */
+ "B:128: 7\n" /* sandstonestairs */
+ "C: 44: 1\n" /* step */
+ "D: 64: 3\n" /* wooddoorblock */
"E:128: 6\n" /* sandstonestairs */
- "a: 12: 0\n" /* sand */
- "b: 5: 0\n" /* wood */
- "c: 24: 2\n" /* sandstone */
- "d: 24: 0\n" /* sandstone */
- "e:128: 5\n" /* sandstonestairs */
- "f:107: 6\n" /* fencegate */
- "g:128: 4\n" /* sandstonestairs */
- "h:134: 1\n" /* 134 */
- "i:134: 3\n" /* 134 */
- "j: 85: 0\n" /* fence */
- "k:134: 0\n" /* 134 */
- "l:134: 5\n" /* 134 */
+ "a: 24: 2\n" /* sandstone */
+ "b: 4: 0\n" /* cobblestone */
+ "c: 24: 0\n" /* sandstone */
+ "d: 13: 0\n" /* gravel */
+ "e: 5: 0\n" /* wood */
+ "f:128: 5\n" /* sandstonestairs */
+ "g:107: 2\n" /* fencegate */
+ "h:128: 4\n" /* sandstonestairs */
+ "i:134: 1\n" /* 134 */
+ "j:134: 3\n" /* 134 */
+ "k: 85: 0\n" /* fence */
+ "l:134: 0\n" /* 134 */
"m: 19: 0\n" /* sponge */
- "n:134: 7\n" /* 134 */
- "o:134: 4\n" /* 134 */
- "p:107: 5\n" /* fencegate */
- "q: 64: 5\n" /* wooddoorblock */
- "r: 65: 3\n" /* ladder */
- "s: 50: 3\n" /* torch */
- "t:171: 8\n" /* carpet */
- "u:101: 0\n" /* ironbars */
- "v: 64:12\n" /* wooddoorblock */
- "w:128: 2\n" /* sandstonestairs */
- "x: 24: 1\n" /* sandstone */
- "y: 44: 9\n" /* step */
- "z:126: 8\n" /* woodenslab */,
+ "n:134: 5\n" /* 134 */
+ "o:134: 7\n" /* 134 */
+ "p:134: 4\n" /* 134 */
+ "q:107: 1\n" /* fencegate */
+ "r: 64: 1\n" /* wooddoorblock */
+ "s: 65: 3\n" /* ladder */
+ "t: 50: 3\n" /* torch */
+ "u:171: 8\n" /* carpet */
+ "v:101: 0\n" /* ironbars */
+ "w: 64: 8\n" /* wooddoorblock */
+ "x:128: 2\n" /* sandstonestairs */
+ "y: 24: 1\n" /* sandstone */
+ "z: 44: 9\n" /* step */,
// Block data:
// Level 0
/* z\x* 1 */
/* * 01234567890 */
- /* 0 */ "aaaaaaaaaaa"
- /* 1 */ "aaaaaaaaaaa"
- /* 2 */ "aaaabbbaaaa"
- /* 3 */ "abbbbbbbbba"
- /* 4 */ "abbbbbbbbba"
- /* 5 */ "abbbbbbbbba"
- /* 6 */ "abbbbbbbbba"
- /* 7 */ "abbbbbbbbba"
- /* 8 */ "abaaaaaaaaa"
- /* 9 */ "aaaaaaaaaaa"
+ /* 0 */ "mmmabbbammm"
+ /* 1 */ "mmmmbbbmmmm"
+ /* 2 */ "accccccccca"
+ /* 3 */ "ccccccccccc"
+ /* 4 */ "ccccccccccc"
+ /* 5 */ "ccccccccccc"
+ /* 6 */ "ccccccccccc"
+ /* 7 */ "ccccccccccc"
+ /* 8 */ "accccccccca"
+ /* 9 */ "mmmmmmmmmmm"
// Level 1
/* z\x* 1 */
/* * 01234567890 */
- /* 0 */ "...c...c..."
- /* 1 */ "..........."
- /* 2 */ "cdddefgdddc"
- /* 3 */ "dhi.....iid"
- /* 4 */ "dhj.....jkd"
- /* 5 */ "d.........d"
- /* 6 */ "dlnno.....d"
- /* 7 */ "d...p..hjkd"
- /* 8 */ "cqddddddddc"
- /* 9 */ "..r........"
+ /* 0 */ "mmmadddammm"
+ /* 1 */ "mmmmdddmmmm"
+ /* 2 */ "accceeeccca"
+ /* 3 */ "ceeeeeeeeec"
+ /* 4 */ "ceeeeeeeeec"
+ /* 5 */ "ceeeeeeeeec"
+ /* 6 */ "ceeeeeeeeec"
+ /* 7 */ "ceeeeeeeeec"
+ /* 8 */ "aecccccccca"
+ /* 9 */ "mmmmmmmmmmm"
// Level 2
/* z\x* 1 */
/* * 01234567890 */
- /* 0 */ "...c...c..."
- /* 1 */ "..........."
- /* 2 */ "cddd...dddc"
- /* 3 */ "d..s...s..d"
- /* 4 */ "d.t.....t.d"
- /* 5 */ "u.........u"
- /* 6 */ "d.........d"
- /* 7 */ "d.......t.d"
- /* 8 */ "cvdduuudddc"
- /* 9 */ "..r........"
+ /* 0 */ "mmma...ammm"
+ /* 1 */ "mmm.....mmm"
+ /* 2 */ "acccfghccca"
+ /* 3 */ "cij.....jjc"
+ /* 4 */ "cik.....klc"
+ /* 5 */ "c.........c"
+ /* 6 */ "cnoop.....c"
+ /* 7 */ "c...q..iklc"
+ /* 8 */ "arcccccccca"
+ /* 9 */ "mmsmmmmmmmm"
// Level 3
/* z\x* 1 */
/* * 01234567890 */
- /* 0 */ "...w...w..."
- /* 1 */ "...x...d..."
- /* 2 */ "cdddeygdddc"
- /* 3 */ "dzzzzzzzzzd"
- /* 4 */ "dzzzzzzzzzd"
- /* 5 */ "gzzzzzzzzze"
- /* 6 */ "dzzzzzzzzzd"
- /* 7 */ "dzzzzzzzzzd"
- /* 8 */ "cdddAAAdddc"
- /* 9 */ "..r........"
+ /* 0 */ "mmma...ammm"
+ /* 1 */ "mmm.....mmm"
+ /* 2 */ "accc...ccca"
+ /* 3 */ "c..t...t..c"
+ /* 4 */ "c.u.....u.c"
+ /* 5 */ "v.........v"
+ /* 6 */ "c.........c"
+ /* 7 */ "c.......u.c"
+ /* 8 */ "awccvvvccca"
+ /* 9 */ "mmsmmmmmmmm"
// Level 4
/* z\x* 1 */
/* * 01234567890 */
- /* 0 */ "..........."
- /* 1 */ "..........."
- /* 2 */ "dBBBBdBBBBd"
- /* 3 */ "BcdddddddcB"
- /* 4 */ "Bd.......dB"
- /* 5 */ "dd.......dd"
- /* 6 */ "Bd.......dB"
- /* 7 */ "BcCddddddcB"
- /* 8 */ "dB.BBdBBBBd"
- /* 9 */ "..........."
+ /* 0 */ "mmmx...xmmm"
+ /* 1 */ "mmmy...cmmm"
+ /* 2 */ "acccfzhccca"
+ /* 3 */ "cAAAAAAAAAc"
+ /* 4 */ "cAAAAAAAAAc"
+ /* 5 */ "hAAAAAAAAAf"
+ /* 6 */ "cAAAAAAAAAc"
+ /* 7 */ "cAAAAAAAAAc"
+ /* 8 */ "acccBBBccca"
+ /* 9 */ "mmsmmmmmmmm"
// Level 5
/* z\x* 1 */
/* * 01234567890 */
+ /* 0 */ "mmm.....mmm"
+ /* 1 */ "mmm.....mmm"
+ /* 2 */ "cCCCCcCCCCc"
+ /* 3 */ "CacccccccaC"
+ /* 4 */ "Cc.......cC"
+ /* 5 */ "cc.......cc"
+ /* 6 */ "Cc.......cC"
+ /* 7 */ "CaDccccccaC"
+ /* 8 */ "cC.CCcCCCCc"
+ /* 9 */ "mmmmmmmmmmm"
+
+ // Level 6
+ /* z\x* 1 */
+ /* * 01234567890 */
/* 0 */ "..........."
/* 1 */ "..........."
/* 2 */ "..........."
- /* 3 */ ".cdduuuddc."
- /* 4 */ ".d.......d."
- /* 5 */ ".u.......u."
- /* 6 */ ".d.......d."
- /* 7 */ ".cDduuuddc."
+ /* 3 */ ".accvvvcca."
+ /* 4 */ ".c.......c."
+ /* 5 */ ".v.......v."
+ /* 6 */ ".c.......c."
+ /* 7 */ ".awcvvvcca."
/* 8 */ "..........."
/* 9 */ "..........."
- // Level 6
+ // Level 7
/* z\x* 1 */
/* * 01234567890 */
/* 0 */ "..........."
/* 1 */ "..........."
/* 2 */ "..........."
- /* 3 */ ".cddEEEddc."
- /* 4 */ ".dzzzzzzzd."
- /* 5 */ ".gzzzzzzze."
- /* 6 */ ".dzzzzzzzd."
- /* 7 */ ".cddAAAddc."
+ /* 3 */ ".accEEEcca."
+ /* 4 */ ".cAAAAAAAc."
+ /* 5 */ ".hAAAAAAAf."
+ /* 6 */ ".cAAAAAAAc."
+ /* 7 */ ".accBBBcca."
/* 8 */ "..........."
/* 9 */ "..........."
- // Level 7
+ // Level 8
/* z\x* 1 */
/* * 01234567890 */
/* 0 */ "..........."
/* 1 */ "..........."
/* 2 */ "..........."
- /* 3 */ ".dBBBdBBBd."
- /* 4 */ ".B.......B."
- /* 5 */ ".d.......d."
- /* 6 */ ".B.......B."
- /* 7 */ ".dBBBdBBBd."
+ /* 3 */ ".cCCCcCCCc."
+ /* 4 */ ".C.......C."
+ /* 5 */ ".c.......c."
+ /* 6 */ ".C.......C."
+ /* 7 */ ".cCCCcCCCc."
/* 8 */ "..........."
/* 9 */ "...........",
// Connectors:
- "-1: 5, 1, 0: 2\n" /* Type -1, direction Z- */,
+ "-1: 5, 2, 0: 2\n" /* Type -1, direction Z- */,
// AllowedRotations:
7, /* 1, 2, 3 CCW rotation allowed */
@@ -447,132 +463,151 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// BlackSmith:
// The data has been exported from the gallery Desert, area index 97, ID 642, created by STR_Warrior
{
// Size:
- 11, 5, 13, // SizeX = 11, SizeY = 5, SizeZ = 13
+ 11, 6, 13, // SizeX = 11, SizeY = 6, SizeZ = 13
// Hitbox (relative to bounding box):
-1, 0, 0, // MinX, MinY, MinZ
- 11, 4, 13, // MaxX, MaxY, MaxZ
+ 11, 5, 13, // MaxX, MaxY, MaxZ
// Block definitions:
".: 0: 0\n" /* air */
- "a: 12: 0\n" /* sand */
- "b: 5: 0\n" /* wood */
+ "a: 24: 2\n" /* sandstone */
+ "b: 4: 0\n" /* cobblestone */
"c: 24: 0\n" /* sandstone */
- "d: 24: 2\n" /* sandstone */
- "e: 64: 7\n" /* wooddoorblock */
- "f: 43: 0\n" /* doubleslab */
- "g: 53: 5\n" /* woodstairs */
- "h: 53: 4\n" /* woodstairs */
- "i: 10: 0\n" /* lava */
- "j: 54: 5\n" /* chest */
- "k: 64:12\n" /* wooddoorblock */
- "l: 50: 3\n" /* torch */
+ "d: 13: 0\n" /* gravel */
+ "e: 5: 0\n" /* wood */
+ "f: 12: 0\n" /* sand */
+ "g: 64: 3\n" /* wooddoorblock */
+ "h: 43: 0\n" /* doubleslab */
+ "i: 53: 5\n" /* woodstairs */
+ "j: 53: 4\n" /* woodstairs */
+ "k: 10: 0\n" /* lava */
+ "l: 54: 5\n" /* chest */
"m: 19: 0\n" /* sponge */
- "n:101: 0\n" /* ironbars */
- "o: 50: 1\n" /* torch */
- "p: 50: 2\n" /* torch */
- "q:128: 2\n" /* sandstonestairs */
- "r: 44: 9\n" /* step */
- "s:126: 8\n" /* woodenslab */
- "t:128: 4\n" /* sandstonestairs */
- "u:128: 5\n" /* sandstonestairs */
- "v:128: 7\n" /* sandstonestairs */
- "w: 44: 1\n" /* step */
- "x: 43: 1\n" /* doubleslab */,
+ "n: 64: 8\n" /* wooddoorblock */
+ "o: 50: 3\n" /* torch */
+ "p:101: 0\n" /* ironbars */
+ "q: 50: 1\n" /* torch */
+ "r: 50: 2\n" /* torch */
+ "s:128: 2\n" /* sandstonestairs */
+ "t: 44: 9\n" /* step */
+ "u:126: 8\n" /* woodenslab */
+ "v:128: 4\n" /* sandstonestairs */
+ "w:128: 5\n" /* sandstonestairs */
+ "x:128: 7\n" /* sandstonestairs */
+ "y: 44: 1\n" /* step */
+ "z: 43: 1\n" /* doubleslab */,
// Block data:
// Level 0
/* z\x* 1 */
/* * 01234567890 */
- /* 0 */ "aaaaaaaaaaa"
- /* 1 */ "aaaaaaaaaaa"
- /* 2 */ "aaaaaaaabaa"
- /* 3 */ "acacacabbba"
- /* 4 */ "acaccaabbba"
- /* 5 */ "acccccabbba"
- /* 6 */ "acaadddbbba"
- /* 7 */ "aaacdddbbba"
- /* 8 */ "aaaadddbbba"
- /* 9 */ "abbbbbbbbba"
- /* 10 */ "abbbbbbbbba"
- /* 11 */ "abbbbbbbbba"
- /* 12 */ "aaaaaaaaaaa"
+ /* 0 */ "mmmmmmabbba"
+ /* 1 */ "mmmmmmbbbbm"
+ /* 2 */ "mmmmmmaccca"
+ /* 3 */ "maccccccccc"
+ /* 4 */ "mcccccccccc"
+ /* 5 */ "mcccccccccc"
+ /* 6 */ "mcccccacccc"
+ /* 7 */ "mcccccacccc"
+ /* 8 */ "acccaaacccc"
+ /* 9 */ "ccccccccccc"
+ /* 10 */ "ccccccccccc"
+ /* 11 */ "ccccccccccc"
+ /* 12 */ "accccccccca"
// Level 1
/* z\x* 1 */
/* * 01234567890 */
- /* 0 */ "......d...d"
- /* 1 */ "..........."
- /* 2 */ "......dcecd"
- /* 3 */ ".d....c...c"
- /* 4 */ "..f...c...c"
- /* 5 */ "......c...c"
- /* 6 */ "....ddc...c"
- /* 7 */ ".gh.dic...c"
- /* 8 */ "dcccccd...c"
- /* 9 */ "cj........c"
- /* 10 */ "c.........c"
- /* 11 */ "c.........c"
- /* 12 */ "dcccccccccd"
+ /* 0 */ "mmmmmmaddda"
+ /* 1 */ "mmmmmmddddm"
+ /* 2 */ "mmmmmmaceca"
+ /* 3 */ "mafcfcceeec"
+ /* 4 */ "mcfccfceeec"
+ /* 5 */ "mcccccceeec"
+ /* 6 */ "mcffaaaeeec"
+ /* 7 */ "mffcaaaeeec"
+ /* 8 */ "acccaaaeeec"
+ /* 9 */ "ceeeeeeeeec"
+ /* 10 */ "ceeeeeeeeec"
+ /* 11 */ "ceeeeeeeeec"
+ /* 12 */ "accccccccca"
// Level 2
/* z\x* 1 */
/* * 01234567890 */
- /* 0 */ "......d...d"
- /* 1 */ "..........."
- /* 2 */ "......dckcd"
- /* 3 */ ".d....c..lc"
- /* 4 */ "......n...c"
- /* 5 */ "......c...c"
- /* 6 */ "....nnc...n"
- /* 7 */ "....n.c...n"
- /* 8 */ "dcccccd...n"
- /* 9 */ "co........c"
- /* 10 */ "n.........c"
- /* 11 */ "c........pc"
- /* 12 */ "dcccnnncccd"
+ /* 0 */ "mmmmmma...a"
+ /* 1 */ "mmmmmm....."
+ /* 2 */ "mmmmmmacgca"
+ /* 3 */ "ma....c...c"
+ /* 4 */ "m.h...c...c"
+ /* 5 */ "m.....c...c"
+ /* 6 */ "m...aac...c"
+ /* 7 */ "mij.akc...c"
+ /* 8 */ "accccca...c"
+ /* 9 */ "cl........c"
+ /* 10 */ "c.........c"
+ /* 11 */ "c.........c"
+ /* 12 */ "accccccccca"
// Level 3
/* z\x* 1 */
/* * 01234567890 */
- /* 0 */ "......q...q"
- /* 1 */ "......c...c"
- /* 2 */ "......dcccd"
- /* 3 */ ".drrrrcsssc"
- /* 4 */ ".rsssstsssc"
- /* 5 */ ".rsssscsssc"
- /* 6 */ ".rssddcsssu"
- /* 7 */ ".rssd.csssu"
- /* 8 */ "dcccccdsssu"
- /* 9 */ "csssssssssc"
- /* 10 */ "tsssssssssc"
- /* 11 */ "csssssssssc"
- /* 12 */ "dcccvvvcccd"
+ /* 0 */ "mmmmmma...a"
+ /* 1 */ "mmmmmm....."
+ /* 2 */ "mmmmmmacnca"
+ /* 3 */ "ma....c..oc"
+ /* 4 */ "m.....p...c"
+ /* 5 */ "m.....c...c"
+ /* 6 */ "m...ppc...p"
+ /* 7 */ "m...p.c...p"
+ /* 8 */ "accccca...p"
+ /* 9 */ "cq........c"
+ /* 10 */ "p.........c"
+ /* 11 */ "c........rc"
+ /* 12 */ "acccpppccca"
// Level 4
/* z\x* 1 */
/* * 01234567890 */
- /* 0 */ "..........."
- /* 1 */ "..........."
- /* 2 */ "......cwwwc"
- /* 3 */ ".w.w.ww...w"
- /* 4 */ "......w...w"
- /* 5 */ ".w....w...w"
- /* 6 */ "....xwx...w"
- /* 7 */ ".w..w.w...c"
- /* 8 */ "cwwwxwc...w"
- /* 9 */ "w.........w"
- /* 10 */ "w.........w"
- /* 11 */ "w.........w"
- /* 12 */ "cwwwwcwwwwc",
+ /* 0 */ "mmmmmms...s"
+ /* 1 */ "mmmmmmc...c"
+ /* 2 */ "mmmmmmaccca"
+ /* 3 */ "mattttcuuuc"
+ /* 4 */ "mtuuuuvuuuc"
+ /* 5 */ "mtuuuucuuuc"
+ /* 6 */ "mtuuaacuuuw"
+ /* 7 */ "mtuua.cuuuw"
+ /* 8 */ "acccccauuuw"
+ /* 9 */ "cuuuuuuuuuc"
+ /* 10 */ "vuuuuuuuuuc"
+ /* 11 */ "cuuuuuuuuuc"
+ /* 12 */ "acccxxxccca"
+
+ // Level 5
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "mmmmmm....."
+ /* 1 */ "mmmmmm....."
+ /* 2 */ "mmmmmmcyyyc"
+ /* 3 */ "my.y.yy...y"
+ /* 4 */ "m.....y...y"
+ /* 5 */ "my....y...y"
+ /* 6 */ "m...zyz...y"
+ /* 7 */ "my..y.y...c"
+ /* 8 */ "cyyyzyc...y"
+ /* 9 */ "y.........y"
+ /* 10 */ "y.........y"
+ /* 11 */ "y.........y"
+ /* 12 */ "cyyyycyyyyc",
// Connectors:
- "-1: 8, 1, 0: 2\n" /* Type -1, direction Z- */,
+ "-1: 8, 2, 0: 2\n" /* Type -1, direction Z- */,
// AllowedRotations:
7, /* 1, 2, 3 CCW rotation allowed */
@@ -598,185 +633,201 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// LargeHouse1:
// The data has been exported from the gallery Desert, area index 77, ID 577, created by STR_Warrior
{
// Size:
- 15, 13, 11, // SizeX = 15, SizeY = 13, SizeZ = 11
+ 15, 14, 11, // SizeX = 15, SizeY = 14, SizeZ = 11
// Hitbox (relative to bounding box):
-1, 0, -1, // MinX, MinY, MinZ
- 14, 12, 11, // MaxX, MaxY, MaxZ
+ 14, 13, 11, // MaxX, MaxY, MaxZ
// Block definitions:
".: 0: 0\n" /* air */
- "A:128: 4\n" /* sandstonestairs */
- "B:128: 5\n" /* sandstonestairs */
- "C:128: 7\n" /* sandstonestairs */
- "D: 44: 1\n" /* step */
- "E:128: 2\n" /* sandstonestairs */
- "F:128: 0\n" /* sandstonestairs */
- "G: 87: 0\n" /* netherstone */
- "H:128: 3\n" /* sandstonestairs */
- "I: 51: 0\n" /* fire */
- "J: 44: 9\n" /* step */
- "a: 12: 0\n" /* sand */
- "b: 5: 0\n" /* wood */
- "c: 24: 2\n" /* sandstone */
- "d: 24: 0\n" /* sandstone */
- "e: 85: 0\n" /* fence */
- "f: 5: 1\n" /* wood */
- "g: 64: 6\n" /* wooddoorblock */
- "h: 64: 0\n" /* wooddoorblock */
- "i: 61: 2\n" /* furnace */
- "j:118: 0\n" /* cauldronblock */
- "k:134: 4\n" /* 134 */
- "l: 65: 2\n" /* ladder */
+ "A: 96:10\n" /* trapdoor */
+ "B:128: 4\n" /* sandstonestairs */
+ "C:128: 5\n" /* sandstonestairs */
+ "D:128: 7\n" /* sandstonestairs */
+ "E: 44: 1\n" /* step */
+ "F:128: 2\n" /* sandstonestairs */
+ "G:128: 0\n" /* sandstonestairs */
+ "H: 87: 0\n" /* netherstone */
+ "I:128: 3\n" /* sandstonestairs */
+ "J: 51: 0\n" /* fire */
+ "K: 44: 9\n" /* step */
+ "a: 24: 2\n" /* sandstone */
+ "b: 24: 0\n" /* sandstone */
+ "c: 12: 0\n" /* sand */
+ "d: 4: 0\n" /* cobblestone */
+ "e: 5: 0\n" /* wood */
+ "f: 13: 0\n" /* gravel */
+ "g: 85: 0\n" /* fence */
+ "h: 5: 1\n" /* wood */
+ "i: 64: 2\n" /* wooddoorblock */
+ "j: 64: 0\n" /* wooddoorblock */
+ "k: 61: 2\n" /* furnace */
+ "l:118: 0\n" /* cauldronblock */
"m: 19: 0\n" /* sponge */
- "n:101: 0\n" /* ironbars */
- "o: 50: 1\n" /* torch */
- "p:140: 0\n" /* flowerpotblock */
- "q: 64:12\n" /* wooddoorblock */
- "r: 50: 3\n" /* torch */
+ "n:134: 4\n" /* 134 */
+ "o: 65: 2\n" /* ladder */
+ "p:101: 0\n" /* ironbars */
+ "q: 50: 1\n" /* torch */
+ "r:140: 0\n" /* flowerpotblock */
"s: 64: 8\n" /* wooddoorblock */
- "t: 69:12\n" /* lever */
- "u: 50: 4\n" /* torch */
- "v:128: 6\n" /* sandstonestairs */
- "w: 44:10\n" /* step */
- "x:128: 1\n" /* sandstonestairs */
- "y: 47: 0\n" /* bookshelf */
- "z: 96:10\n" /* trapdoor */,
+ "t: 50: 3\n" /* torch */
+ "u: 69:12\n" /* lever */
+ "v: 50: 4\n" /* torch */
+ "w:128: 6\n" /* sandstonestairs */
+ "x: 44:10\n" /* step */
+ "y:128: 1\n" /* sandstonestairs */
+ "z: 47: 0\n" /* bookshelf */,
// Block data:
// Level 0
/* z\x* 11111 */
/* * 012345678901234 */
- /* 0 */ "aaaaaaaaaaaaaaa"
- /* 1 */ "aaaaabbbbbbbaaa"
- /* 2 */ "aaaabbbbbbbbaaa"
- /* 3 */ "aaaaabbbbbbbbaa"
- /* 4 */ "aaaaabbbbbbbaaa"
- /* 5 */ "aaaaabbbbbbbaaa"
- /* 6 */ "aaaaabbbbbbbaaa"
- /* 7 */ "aaaaabbbbbbbaaa"
- /* 8 */ "aaaaabbbbbbbaaa"
- /* 9 */ "aaaaabbbbbbbaaa"
- /* 10 */ "aaaaaaaaaaaaaaa"
+ /* 0 */ "mmmmabbbbbbbamm"
+ /* 1 */ "ccccbbbbbbbbbma"
+ /* 2 */ "ccccbbbbbbbbbdd"
+ /* 3 */ "ccccbbbbbbbbbdd"
+ /* 4 */ "ccccbbbbbbbbbdd"
+ /* 5 */ "ccccbbbbbbbbbma"
+ /* 6 */ "ccccbbbbbbbbbmm"
+ /* 7 */ "mmmmbbbbbbbbbmm"
+ /* 8 */ "mmmmbbbbbbbbbmm"
+ /* 9 */ "mmmmbbbbbbbbbmm"
+ /* 10 */ "mmmmabbbbbbbamm"
// Level 1
/* z\x* 11111 */
/* * 012345678901234 */
- /* 0 */ "....cdddddddc.."
- /* 1 */ "eeeed......fd.c"
- /* 2 */ "e...g.......d.."
- /* 3 */ "e...d.......h.."
- /* 4 */ "e...dijk..l.d.."
- /* 5 */ "e...dddd.dddd.c"
- /* 6 */ "eeeed.......d.."
- /* 7 */ "mmmmd.......d.."
- /* 8 */ "mmmmd.......d.."
- /* 9 */ "mmmmd.......d.."
- /* 10 */ "mmmmcdddddddc.."
+ /* 0 */ "mmmmabbbbbbbamm"
+ /* 1 */ "ccccbeeeeeeebma"
+ /* 2 */ "cccceeeeeeeebff"
+ /* 3 */ "ccccbeeeeeeeeff"
+ /* 4 */ "ccccbeeeeeeebff"
+ /* 5 */ "ccccbeeeeeeebma"
+ /* 6 */ "ccccbeeeeeeebmm"
+ /* 7 */ "mmmmbeeeeeeebmm"
+ /* 8 */ "mmmmbeeeeeeebmm"
+ /* 9 */ "mmmmbeeeeeeebmm"
+ /* 10 */ "mmmmabbbbbbbamm"
// Level 2
/* z\x* 11111 */
/* * 012345678901234 */
- /* 0 */ "....cddnnnddc.."
- /* 1 */ "....do.....pd.c"
- /* 2 */ "....q.......d.r"
- /* 3 */ "....d.......s.."
- /* 4 */ "....d.t...l.d.u"
- /* 5 */ "....dddd.dddd.c"
- /* 6 */ "....n..r.r..n.."
- /* 7 */ "mmmmn.......n.."
- /* 8 */ "mmmmn.......n.."
- /* 9 */ "mmmmd.......d.."
- /* 10 */ "mmmmcddnnnddc.."
+ /* 0 */ "mmmmabbbbbbbamm"
+ /* 1 */ "ggggb......hb.a"
+ /* 2 */ "g...i.......b.."
+ /* 3 */ "g...b.......j.."
+ /* 4 */ "g...bkln..o.b.."
+ /* 5 */ "g...bbbb.bbbb.a"
+ /* 6 */ "ggggb.......bmm"
+ /* 7 */ "mmmmb.......bmm"
+ /* 8 */ "mmmmb.......bmm"
+ /* 9 */ "mmmmb.......bmm"
+ /* 10 */ "mmmmabbbbbbbamm"
// Level 3
/* z\x* 11111 */
/* * 012345678901234 */
- /* 0 */ "....cddvvvddc.."
- /* 1 */ "....dwwwwwwwddx"
- /* 2 */ "....dwwwwwwwd.."
- /* 3 */ "....dwwwwwwwd.."
- /* 4 */ "....dyyywwzwd.."
- /* 5 */ "....ddddddddddx"
- /* 6 */ "....AwwwwwwwB.."
- /* 7 */ "mmmmAwwwwwwwB.."
- /* 8 */ "mmmmAwwwwwwwB.."
- /* 9 */ "mmmmdwwwwwwwd.."
- /* 10 */ "mmmmcddCCCddc.."
+ /* 0 */ "mmmmabbpppbbamm"
+ /* 1 */ "....bq.....rb.a"
+ /* 2 */ "....s.......b.t"
+ /* 3 */ "....b.......s.."
+ /* 4 */ "....b.u...o.b.v"
+ /* 5 */ "....bbbb.bbbb.a"
+ /* 6 */ "....p..t.t..pmm"
+ /* 7 */ "mmmmp.......pmm"
+ /* 8 */ "mmmmp.......pmm"
+ /* 9 */ "mmmmb.......bmm"
+ /* 10 */ "mmmmabbpppbbamm"
// Level 4
/* z\x* 11111 */
/* * 012345678901234 */
- /* 0 */ "....dDDDdDDDd.."
- /* 1 */ "....DcdddddcD.."
- /* 2 */ "....Dd.....dD.."
- /* 3 */ "....Dd.....dD.."
- /* 4 */ "....Dd.....dD.."
- /* 5 */ "....dcdd.ddcd.."
- /* 6 */ "....D.......D.."
- /* 7 */ "mmmmD.......D.."
- /* 8 */ "mmmmD.......D.."
- /* 9 */ "mmmmD.......D.."
- /* 10 */ "mmmmdDDDdDDDd.."
+ /* 0 */ "mmmmabbwwwbbamm"
+ /* 1 */ "....bxxxxxxxbby"
+ /* 2 */ "....bxxxxxxxb.."
+ /* 3 */ "....bxxxxxxxb.."
+ /* 4 */ "....bzzzxxAxb.."
+ /* 5 */ "....bbbbbbbbbby"
+ /* 6 */ "....BxxxxxxxCmm"
+ /* 7 */ "mmmmBxxxxxxxCmm"
+ /* 8 */ "mmmmBxxxxxxxCmm"
+ /* 9 */ "mmmmbxxxxxxxbmm"
+ /* 10 */ "mmmmabbDDDbbamm"
// Level 5
/* z\x* 11111 */
/* * 012345678901234 */
+ /* 0 */ "mmmmbEEEbEEEbmm"
+ /* 1 */ "....EabbbbbaE.."
+ /* 2 */ "....Eb.....bE.."
+ /* 3 */ "....Eb.....bE.."
+ /* 4 */ "....Eb.....bE.."
+ /* 5 */ "....babb.bbab.."
+ /* 6 */ "....E.......Emm"
+ /* 7 */ "mmmmE.......Emm"
+ /* 8 */ "mmmmE.......Emm"
+ /* 9 */ "mmmmE.......Emm"
+ /* 10 */ "mmmmbEEEbEEEbmm"
+
+ // Level 6
+ /* z\x* 11111 */
+ /* * 012345678901234 */
/* 0 */ "..............."
- /* 1 */ ".....cddnddc..."
- /* 2 */ ".....n.....n..."
- /* 3 */ ".....n.....n..."
- /* 4 */ ".....n.....n..."
- /* 5 */ ".....cdd.ddc..."
+ /* 1 */ ".....abbpbba..."
+ /* 2 */ ".....p.....p..."
+ /* 3 */ ".....p.....p..."
+ /* 4 */ ".....p.....p..."
+ /* 5 */ ".....abb.bba..."
/* 6 */ "..............."
/* 7 */ "..............."
/* 8 */ "..............."
/* 9 */ "..............."
/* 10 */ "..............."
- // Level 6
+ // Level 7
/* z\x* 11111 */
/* * 012345678901234 */
/* 0 */ "..............."
- /* 1 */ ".....cddvddc..."
- /* 2 */ ".....AwwwwwB..."
- /* 3 */ ".....AwwwwwB..."
- /* 4 */ ".....AwwwwwB..."
- /* 5 */ ".....cdddddc..."
+ /* 1 */ ".....abbwbba..."
+ /* 2 */ ".....BxxxxxC..."
+ /* 3 */ ".....BxxxxxC..."
+ /* 4 */ ".....BxxxxxC..."
+ /* 5 */ ".....abbbbba..."
/* 6 */ "..............."
/* 7 */ "..............."
/* 8 */ "..............."
/* 9 */ "..............."
/* 10 */ "..............."
- // Level 7
+ // Level 8
/* z\x* 11111 */
/* * 012345678901234 */
/* 0 */ "..............."
- /* 1 */ ".....dDDdDDd..."
- /* 2 */ ".....D.ddd.D..."
- /* 3 */ ".....d.ddd.d..."
- /* 4 */ ".....D.ddd.D..."
- /* 5 */ ".....dDDdDDd..."
+ /* 1 */ ".....bEEbEEb..."
+ /* 2 */ ".....E.bbb.E..."
+ /* 3 */ ".....b.bbb.b..."
+ /* 4 */ ".....E.bbb.E..."
+ /* 5 */ ".....bEEbEEb..."
/* 6 */ "..............."
/* 7 */ "..............."
/* 8 */ "..............."
/* 9 */ "..............."
/* 10 */ "..............."
- // Level 8
+ // Level 9
/* z\x* 11111 */
/* * 012345678901234 */
/* 0 */ "..............."
/* 1 */ "..............."
- /* 2 */ ".......cEc....."
- /* 3 */ ".......FGx....."
- /* 4 */ ".......cHc....."
+ /* 2 */ ".......aFa....."
+ /* 3 */ ".......GHy....."
+ /* 4 */ ".......aIa....."
/* 5 */ "..............."
/* 6 */ "..............."
/* 7 */ "..............."
@@ -784,14 +835,14 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
/* 9 */ "..............."
/* 10 */ "..............."
- // Level 9
+ // Level 10
/* z\x* 11111 */
/* * 012345678901234 */
/* 0 */ "..............."
/* 1 */ "..............."
- /* 2 */ ".......c.c....."
- /* 3 */ "........I......"
- /* 4 */ ".......c.c....."
+ /* 2 */ ".......a.a....."
+ /* 3 */ "........J......"
+ /* 4 */ ".......a.a....."
/* 5 */ "..............."
/* 6 */ "..............."
/* 7 */ "..............."
@@ -799,14 +850,14 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
/* 9 */ "..............."
/* 10 */ "..............."
- // Level 10
+ // Level 11
/* z\x* 11111 */
/* * 012345678901234 */
/* 0 */ "..............."
/* 1 */ "..............."
- /* 2 */ ".......cvc....."
- /* 3 */ ".......A.B....."
- /* 4 */ ".......cCc....."
+ /* 2 */ ".......awa....."
+ /* 3 */ ".......B.C....."
+ /* 4 */ ".......aDa....."
/* 5 */ "..............."
/* 6 */ "..............."
/* 7 */ "..............."
@@ -814,14 +865,14 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
/* 9 */ "..............."
/* 10 */ "..............."
- // Level 11
+ // Level 12
/* z\x* 11111 */
/* * 012345678901234 */
/* 0 */ "..............."
/* 1 */ "..............."
- /* 2 */ ".......ddd....."
- /* 3 */ ".......dJd....."
- /* 4 */ ".......ddd....."
+ /* 2 */ ".......bbb....."
+ /* 3 */ ".......bKb....."
+ /* 4 */ ".......bbb....."
/* 5 */ "..............."
/* 6 */ "..............."
/* 7 */ "..............."
@@ -829,14 +880,14 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
/* 9 */ "..............."
/* 10 */ "..............."
- // Level 12
+ // Level 13
/* z\x* 11111 */
/* * 012345678901234 */
/* 0 */ "..............."
/* 1 */ "..............."
- /* 2 */ ".......D.D....."
+ /* 2 */ ".......E.E....."
/* 3 */ "..............."
- /* 4 */ ".......D.D....."
+ /* 4 */ ".......E.E....."
/* 5 */ "..............."
/* 6 */ "..............."
/* 7 */ "..............."
@@ -845,7 +896,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
/* 10 */ "...............",
// Connectors:
- "-1: 14, 1, 3: 5\n" /* Type -1, direction X+ */,
+ "-1: 14, 2, 3: 5\n" /* Type -1, direction X+ */,
// AllowedRotations:
7, /* 1, 2, 3 CCW rotation allowed */
@@ -871,154 +922,167 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// LargeTower:
// The data has been exported from the gallery Desert, area index 80, ID 596, created by STR_Warrior
{
// Size:
- 7, 11, 7, // SizeX = 7, SizeY = 11, SizeZ = 7
+ 7, 12, 7, // SizeX = 7, SizeY = 12, SizeZ = 7
// Hitbox (relative to bounding box):
-1, 0, 0, // MinX, MinY, MinZ
- 7, 10, 7, // MaxX, MaxY, MaxZ
+ 7, 11, 7, // MaxX, MaxY, MaxZ
// Block definitions:
".: 0: 0\n" /* air */
- "a: 12: 0\n" /* sand */
- "b: 5: 0\n" /* wood */
- "c:128: 2\n" /* sandstonestairs */
- "d:128: 0\n" /* sandstonestairs */
- "e: 24: 2\n" /* sandstone */
- "f: 24: 0\n" /* sandstone */
- "g: 71: 3\n" /* irondoorblock */
- "h:128: 1\n" /* sandstonestairs */
- "i:128: 3\n" /* sandstonestairs */
- "j: 77: 4\n" /* stonebutton */
- "k: 71: 8\n" /* irondoorblock */
- "l:128: 6\n" /* sandstonestairs */
+ "a: 24: 0\n" /* sandstone */
+ "b: 4: 0\n" /* cobblestone */
+ "c: 12: 0\n" /* sand */
+ "d: 5: 0\n" /* wood */
+ "e: 13: 0\n" /* gravel */
+ "f:128: 2\n" /* sandstonestairs */
+ "g:128: 0\n" /* sandstonestairs */
+ "h: 24: 2\n" /* sandstone */
+ "i: 71: 3\n" /* irondoorblock */
+ "j:128: 1\n" /* sandstonestairs */
+ "k:128: 3\n" /* sandstonestairs */
+ "l: 77: 4\n" /* stonebutton */
"m: 19: 0\n" /* sponge */
- "n:128: 4\n" /* sandstonestairs */
- "o:128: 5\n" /* sandstonestairs */
- "p: 50: 4\n" /* torch */
- "q:128: 7\n" /* sandstonestairs */
- "r: 85: 0\n" /* fence */
- "s: 24: 1\n" /* sandstone */
- "t: 44: 1\n" /* step */
- "u: 89: 0\n" /* lightstone */,
+ "n: 71: 8\n" /* irondoorblock */
+ "o: 77: 3\n" /* stonebutton */
+ "p:128: 6\n" /* sandstonestairs */
+ "q:128: 4\n" /* sandstonestairs */
+ "r:128: 5\n" /* sandstonestairs */
+ "s: 50: 4\n" /* torch */
+ "t:128: 7\n" /* sandstonestairs */
+ "u: 85: 0\n" /* fence */
+ "v: 24: 1\n" /* sandstone */
+ "w: 44: 1\n" /* step */
+ "x: 89: 0\n" /* lightstone */,
// Block data:
// Level 0
/* z\x* 0123456 */
- /* 0 */ "aaaaaaa"
- /* 1 */ "aaabaaa"
- /* 2 */ "aabbbaa"
- /* 3 */ "aabbbaa"
- /* 4 */ "aabbbaa"
+ /* 0 */ "mabbbam"
+ /* 1 */ "aacdcaa"
+ /* 2 */ "madddam"
+ /* 3 */ "madddam"
+ /* 4 */ "madddam"
/* 5 */ "aaaaaaa"
- /* 6 */ "aaaaaaa"
+ /* 6 */ "mammmam"
// Level 1
/* z\x* 0123456 */
- /* 0 */ "mc...cm"
- /* 1 */ "defgfeh"
- /* 2 */ ".f...f."
- /* 3 */ ".f...f."
- /* 4 */ ".f...f."
- /* 5 */ "defffeh"
- /* 6 */ "mi...im"
+ /* 0 */ "maeeeam"
+ /* 1 */ "aacdcaa"
+ /* 2 */ "madddam"
+ /* 3 */ "madddam"
+ /* 4 */ "madddam"
+ /* 5 */ "aaaaaaa"
+ /* 6 */ "mammmam"
// Level 2
/* z\x* 0123456 */
- /* 0 */ "m.j...m"
- /* 1 */ ".efkfe."
- /* 2 */ ".f...f."
- /* 3 */ ".f...f."
- /* 4 */ ".f...f."
- /* 5 */ ".efffe."
- /* 6 */ "m.....m"
+ /* 0 */ "mf...fm"
+ /* 1 */ "ghaiahj"
+ /* 2 */ "ma...am"
+ /* 3 */ "ma...am"
+ /* 4 */ "ma...am"
+ /* 5 */ "ghaaahj"
+ /* 6 */ "mkmmmkm"
// Level 3
/* z\x* 0123456 */
- /* 0 */ "......."
- /* 1 */ "..lfl.."
- /* 2 */ ".n...o."
- /* 3 */ ".f...f."
- /* 4 */ ".n.p.o."
- /* 5 */ "..qfq.."
- /* 6 */ "......."
+ /* 0 */ "m.l...m"
+ /* 1 */ ".hanah."
+ /* 2 */ ".ao..a."
+ /* 3 */ ".a...a."
+ /* 4 */ ".a...a."
+ /* 5 */ ".haaah."
+ /* 6 */ "m.....m"
// Level 4
/* z\x* 0123456 */
/* 0 */ "......."
- /* 1 */ "..frf.."
- /* 2 */ ".f...f."
- /* 3 */ ".r...r."
- /* 4 */ ".f...f."
- /* 5 */ "..frf.."
+ /* 1 */ "..pap.."
+ /* 2 */ ".q...r."
+ /* 3 */ ".a...a."
+ /* 4 */ ".q.s.r."
+ /* 5 */ "..tat.."
/* 6 */ "......."
// Level 5
/* z\x* 0123456 */
/* 0 */ "......."
- /* 1 */ "..frf.."
- /* 2 */ ".f...f."
- /* 3 */ ".r...r."
- /* 4 */ ".f...f."
- /* 5 */ "..frf.."
+ /* 1 */ "..aua.."
+ /* 2 */ ".a...a."
+ /* 3 */ ".u...u."
+ /* 4 */ ".a...a."
+ /* 5 */ "..aua.."
/* 6 */ "......."
// Level 6
/* z\x* 0123456 */
/* 0 */ "......."
- /* 1 */ "..frf.."
- /* 2 */ ".f...f."
- /* 3 */ ".r...r."
- /* 4 */ ".f...f."
- /* 5 */ "..frf.."
+ /* 1 */ "..aua.."
+ /* 2 */ ".a...a."
+ /* 3 */ ".u...u."
+ /* 4 */ ".a...a."
+ /* 5 */ "..aua.."
/* 6 */ "......."
// Level 7
/* z\x* 0123456 */
/* 0 */ "......."
- /* 1 */ "..cfc.."
- /* 2 */ ".d...h."
- /* 3 */ ".f...f."
- /* 4 */ ".d...h."
- /* 5 */ "..ifi.."
+ /* 1 */ "..aua.."
+ /* 2 */ ".a...a."
+ /* 3 */ ".u...u."
+ /* 4 */ ".a...a."
+ /* 5 */ "..aua.."
/* 6 */ "......."
// Level 8
/* z\x* 0123456 */
/* 0 */ "......."
- /* 1 */ ".ffsff."
- /* 2 */ ".f...f."
- /* 3 */ ".s...s."
- /* 4 */ ".f...f."
- /* 5 */ ".ffsff."
+ /* 1 */ "..faf.."
+ /* 2 */ ".g...j."
+ /* 3 */ ".a...a."
+ /* 4 */ ".g...j."
+ /* 5 */ "..kak.."
/* 6 */ "......."
// Level 9
/* z\x* 0123456 */
- /* 0 */ "...l..."
- /* 1 */ ".efffe."
- /* 2 */ ".ftttf."
- /* 3 */ "nftftfo"
- /* 4 */ ".ftttf."
- /* 5 */ ".efffe."
- /* 6 */ "...q..."
+ /* 0 */ "......."
+ /* 1 */ ".aavaa."
+ /* 2 */ ".a...a."
+ /* 3 */ ".v...v."
+ /* 4 */ ".a...a."
+ /* 5 */ ".aavaa."
+ /* 6 */ "......."
// Level 10
/* z\x* 0123456 */
- /* 0 */ "...t..."
- /* 1 */ ".t...t."
+ /* 0 */ "...p..."
+ /* 1 */ ".haaah."
+ /* 2 */ ".awwwa."
+ /* 3 */ "qawawar"
+ /* 4 */ ".awwwa."
+ /* 5 */ ".haaah."
+ /* 6 */ "...t..."
+
+ // Level 11
+ /* z\x* 0123456 */
+ /* 0 */ "...w..."
+ /* 1 */ ".w...w."
/* 2 */ "......."
- /* 3 */ "t..u..t"
+ /* 3 */ "w..x..w"
/* 4 */ "......."
- /* 5 */ ".t...t."
- /* 6 */ "...t...",
+ /* 5 */ ".w...w."
+ /* 6 */ "...w...",
// Connectors:
- "-1: 3, 1, 0: 2\n" /* Type -1, direction Z- */,
+ "-1: 3, 2, 0: 2\n" /* Type -1, direction Z- */,
// AllowedRotations:
7, /* 1, 2, 3 CCW rotation allowed */
@@ -1044,91 +1108,102 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// LittleHouse:
// The data has been exported from the gallery Desert, area index 65, ID 551, created by STR_Warrior
{
// Size:
- 5, 5, 7, // SizeX = 5, SizeY = 5, SizeZ = 7
+ 5, 6, 7, // SizeX = 5, SizeY = 6, SizeZ = 7
// Hitbox (relative to bounding box):
-1, 0, 0, // MinX, MinY, MinZ
- 5, 4, 7, // MaxX, MaxY, MaxZ
+ 5, 5, 7, // MaxX, MaxY, MaxZ
// Block definitions:
".: 0: 0\n" /* air */
- "a: 12: 0\n" /* sand */
- "b: 5: 0\n" /* wood */
- "c: 24: 2\n" /* sandstone */
- "d: 24: 0\n" /* sandstone */
- "e: 64: 3\n" /* wooddoorblock */
- "f: 61: 2\n" /* furnace */
- "g: 65: 2\n" /* ladder */
- "h: 64: 8\n" /* wooddoorblock */
- "i:101: 0\n" /* ironbars */
- "j: 50: 4\n" /* torch */
- "k:128: 2\n" /* sandstonestairs */
- "l:126: 8\n" /* woodenslab */
+ "a: 24: 2\n" /* sandstone */
+ "b: 4: 0\n" /* cobblestone */
+ "c: 24: 0\n" /* sandstone */
+ "d: 13: 0\n" /* gravel */
+ "e: 5: 0\n" /* wood */
+ "f: 64: 3\n" /* wooddoorblock */
+ "g: 61: 2\n" /* furnace */
+ "h: 65: 2\n" /* ladder */
+ "i: 64: 8\n" /* wooddoorblock */
+ "j:101: 0\n" /* ironbars */
+ "k: 50: 4\n" /* torch */
+ "l:128: 2\n" /* sandstonestairs */
"m: 19: 0\n" /* sponge */
- "n:128: 4\n" /* sandstonestairs */
- "o:128: 5\n" /* sandstonestairs */
- "p:128: 7\n" /* sandstonestairs */
- "q: 44: 1\n" /* step */
- "r: 96: 6\n" /* trapdoor */,
+ "n:126: 8\n" /* woodenslab */
+ "o:128: 4\n" /* sandstonestairs */
+ "p:128: 5\n" /* sandstonestairs */
+ "q:128: 7\n" /* sandstonestairs */
+ "r: 44: 1\n" /* step */
+ "s: 96: 2\n" /* trapdoor */,
// Block data:
// Level 0
/* z\x* 01234 */
- /* 0 */ "aaaaa"
- /* 1 */ "aaaaa"
- /* 2 */ "aabaa"
- /* 3 */ "abbba"
- /* 4 */ "abbba"
- /* 5 */ "abbba"
- /* 6 */ "aaaaa"
+ /* 0 */ "abbba"
+ /* 1 */ "mbbbm"
+ /* 2 */ "accca"
+ /* 3 */ "ccccc"
+ /* 4 */ "ccccc"
+ /* 5 */ "ccccc"
+ /* 6 */ "accca"
// Level 1
/* z\x* 01234 */
- /* 0 */ "c...c"
- /* 1 */ "....."
- /* 2 */ "cdedc"
- /* 3 */ "d...d"
- /* 4 */ "d...d"
- /* 5 */ "df.gd"
- /* 6 */ "cdddc"
+ /* 0 */ "addda"
+ /* 1 */ "mdddm"
+ /* 2 */ "aceca"
+ /* 3 */ "ceeec"
+ /* 4 */ "ceeec"
+ /* 5 */ "ceeec"
+ /* 6 */ "accca"
// Level 2
/* z\x* 01234 */
- /* 0 */ "c...c"
+ /* 0 */ "a...a"
/* 1 */ "....."
- /* 2 */ "cdhdc"
- /* 3 */ "d...d"
- /* 4 */ "i...i"
- /* 5 */ "dj.gd"
- /* 6 */ "cdidc"
+ /* 2 */ "acfca"
+ /* 3 */ "c...c"
+ /* 4 */ "c...c"
+ /* 5 */ "cg.hc"
+ /* 6 */ "accca"
// Level 3
/* z\x* 01234 */
- /* 0 */ "k...k"
- /* 1 */ "d...d"
- /* 2 */ "cdddc"
- /* 3 */ "dllld"
- /* 4 */ "nlllo"
- /* 5 */ "dllgd"
- /* 6 */ "cdpdc"
+ /* 0 */ "a...a"
+ /* 1 */ "....."
+ /* 2 */ "acica"
+ /* 3 */ "c...c"
+ /* 4 */ "j...j"
+ /* 5 */ "ck.hc"
+ /* 6 */ "acjca"
// Level 4
/* z\x* 01234 */
+ /* 0 */ "l...l"
+ /* 1 */ "c...c"
+ /* 2 */ "accca"
+ /* 3 */ "cnnnc"
+ /* 4 */ "onnnp"
+ /* 5 */ "cnnhc"
+ /* 6 */ "acqca"
+
+ // Level 5
+ /* z\x* 01234 */
/* 0 */ "....."
/* 1 */ "....."
- /* 2 */ "dqdqd"
- /* 3 */ "q...q"
- /* 4 */ "d...d"
- /* 5 */ "q..rq"
- /* 6 */ "dqdqd",
+ /* 2 */ "crcrc"
+ /* 3 */ "r...r"
+ /* 4 */ "c...c"
+ /* 5 */ "r..sr"
+ /* 6 */ "crcrc",
// Connectors:
- "-1: 2, 1, 0: 2\n" /* Type -1, direction Z- */,
+ "-1: 2, 2, 0: 2\n" /* Type -1, direction Z- */,
// AllowedRotations:
7, /* 1, 2, 3 CCW rotation allowed */
@@ -1154,112 +1229,128 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// LittleHouse2:
// The data has been exported from the gallery Desert, area index 72, ID 562, created by STR_Warrior
{
// Size:
- 7, 5, 11, // SizeX = 7, SizeY = 5, SizeZ = 11
+ 7, 6, 11, // SizeX = 7, SizeY = 6, SizeZ = 11
// Hitbox (relative to bounding box):
-1, 0, 0, // MinX, MinY, MinZ
- 7, 4, 11, // MaxX, MaxY, MaxZ
+ 7, 5, 11, // MaxX, MaxY, MaxZ
// Block definitions:
".: 0: 0\n" /* air */
- "a: 12: 0\n" /* sand */
- "b: 5: 0\n" /* wood */
- "c: 24: 2\n" /* sandstone */
- "d: 24: 0\n" /* sandstone */
- "e: 64: 3\n" /* wooddoorblock */
- "f: 65: 5\n" /* ladder */
- "g: 85: 0\n" /* fence */
- "h:101: 0\n" /* ironbars */
- "i: 64: 8\n" /* wooddoorblock */
- "j: 50: 3\n" /* torch */
- "k:128: 2\n" /* sandstonestairs */
- "l:128: 6\n" /* sandstonestairs */
+ "a: 24: 2\n" /* sandstone */
+ "b: 4: 0\n" /* cobblestone */
+ "c: 24: 0\n" /* sandstone */
+ "d: 12: 0\n" /* sand */
+ "e: 13: 0\n" /* gravel */
+ "f: 5: 0\n" /* wood */
+ "g: 64: 3\n" /* wooddoorblock */
+ "h: 65: 5\n" /* ladder */
+ "i: 85: 0\n" /* fence */
+ "j:101: 0\n" /* ironbars */
+ "k: 64: 8\n" /* wooddoorblock */
+ "l: 50: 3\n" /* torch */
"m: 19: 0\n" /* sponge */
- "n:126: 8\n" /* woodenslab */
- "o:128: 4\n" /* sandstonestairs */
- "p:128: 5\n" /* sandstonestairs */
- "q:128: 7\n" /* sandstonestairs */
- "r: 44: 1\n" /* step */
- "s: 96: 0\n" /* trapdoor */,
+ "n:128: 2\n" /* sandstonestairs */
+ "o:128: 6\n" /* sandstonestairs */
+ "p:126: 8\n" /* woodenslab */
+ "q:128: 4\n" /* sandstonestairs */
+ "r:128: 5\n" /* sandstonestairs */
+ "s:128: 7\n" /* sandstonestairs */
+ "t: 44: 1\n" /* step */
+ "u: 96: 0\n" /* trapdoor */,
// Block data:
// Level 0
/* z\x* 0123456 */
- /* 0 */ "aaaaaaa"
- /* 1 */ "aaaaaaa"
- /* 2 */ "aaaabaa"
- /* 3 */ "abbbbba"
- /* 4 */ "abbbbba"
- /* 5 */ "abbbbba"
- /* 6 */ "aabaaaa"
- /* 7 */ "aaaaaaa"
- /* 8 */ "aaaaaaa"
- /* 9 */ "aaaaaaa"
- /* 10 */ "aaaaaaa"
+ /* 0 */ "mabbbam"
+ /* 1 */ "mmbbbmm"
+ /* 2 */ "accccca"
+ /* 3 */ "ccccccc"
+ /* 4 */ "ccccccc"
+ /* 5 */ "ccccccc"
+ /* 6 */ "accccca"
+ /* 7 */ "ddddddd"
+ /* 8 */ "ddddddd"
+ /* 9 */ "ddddddd"
+ /* 10 */ "ddddddd"
// Level 1
/* z\x* 0123456 */
- /* 0 */ ".c...c."
- /* 1 */ "......."
- /* 2 */ "cdddedc"
- /* 3 */ "d.....d"
- /* 4 */ "d.....d"
- /* 5 */ "df....d"
- /* 6 */ "cd.dddc"
- /* 7 */ "g.....g"
- /* 8 */ "g.....g"
- /* 9 */ "g.....g"
- /* 10 */ "ggggggg"
+ /* 0 */ "maeeeam"
+ /* 1 */ "mmeeemm"
+ /* 2 */ "acccfca"
+ /* 3 */ "cfffffc"
+ /* 4 */ "cfffffc"
+ /* 5 */ "cfffffc"
+ /* 6 */ "acfccca"
+ /* 7 */ "ddddddd"
+ /* 8 */ "ddddddd"
+ /* 9 */ "ddddddd"
+ /* 10 */ "ddddddd"
// Level 2
/* z\x* 0123456 */
- /* 0 */ ".c...c."
- /* 1 */ "......."
- /* 2 */ "cdhdidc"
- /* 3 */ "d..j..d"
- /* 4 */ "h.....h"
- /* 5 */ "df....d"
- /* 6 */ "cd.dhdc"
+ /* 0 */ "ma...am"
+ /* 1 */ "m.....m"
+ /* 2 */ "acccgca"
+ /* 3 */ "c.....c"
+ /* 4 */ "c.....c"
+ /* 5 */ "ch....c"
+ /* 6 */ "ac.ccca"
+ /* 7 */ "i.....i"
+ /* 8 */ "i.....i"
+ /* 9 */ "i.....i"
+ /* 10 */ "iiiiiii"
+
+ // Level 3
+ /* z\x* 0123456 */
+ /* 0 */ "ma...am"
+ /* 1 */ "m.....m"
+ /* 2 */ "acjckca"
+ /* 3 */ "c..l..c"
+ /* 4 */ "j.....j"
+ /* 5 */ "ch....c"
+ /* 6 */ "ac.cjca"
/* 7 */ "......."
/* 8 */ "......."
/* 9 */ "......."
/* 10 */ "......."
- // Level 3
+ // Level 4
/* z\x* 0123456 */
- /* 0 */ ".k...k."
- /* 1 */ ".d...d."
- /* 2 */ "cdldddc"
- /* 3 */ "dnnnnnd"
- /* 4 */ "onnnnnp"
- /* 5 */ "dfnnnnd"
- /* 6 */ "cdddqdc"
+ /* 0 */ "mn...nm"
+ /* 1 */ "mc...cm"
+ /* 2 */ "acoccca"
+ /* 3 */ "cpppppc"
+ /* 4 */ "qpppppr"
+ /* 5 */ "chppppc"
+ /* 6 */ "acccsca"
/* 7 */ "......."
/* 8 */ "......."
/* 9 */ "......."
/* 10 */ "......."
- // Level 4
+ // Level 5
/* z\x* 0123456 */
- /* 0 */ "......."
- /* 1 */ "......."
- /* 2 */ "drrdrrd"
- /* 3 */ "r.....r"
- /* 4 */ "d.....d"
- /* 5 */ "rs....r"
- /* 6 */ "drrdrrd"
+ /* 0 */ "m.....m"
+ /* 1 */ "m.....m"
+ /* 2 */ "cttcttc"
+ /* 3 */ "t.....t"
+ /* 4 */ "c.....c"
+ /* 5 */ "tu....t"
+ /* 6 */ "cttcttc"
/* 7 */ "......."
/* 8 */ "......."
/* 9 */ "......."
/* 10 */ ".......",
// Connectors:
- "-1: 3, 1, 0: 2\n" /* Type -1, direction Z- */,
+ "-1: 3, 2, 0: 2\n" /* Type -1, direction Z- */,
// AllowedRotations:
7, /* 1, 2, 3 CCW rotation allowed */
@@ -1285,90 +1376,101 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// LittleHouse3:
// The data has been exported from the gallery Desert, area index 66, ID 553, created by STR_Warrior
{
// Size:
- 9, 5, 7, // SizeX = 9, SizeY = 5, SizeZ = 7
+ 9, 6, 7, // SizeX = 9, SizeY = 6, SizeZ = 7
// Hitbox (relative to bounding box):
-1, 0, 0, // MinX, MinY, MinZ
- 9, 4, 7, // MaxX, MaxY, MaxZ
+ 9, 5, 7, // MaxX, MaxY, MaxZ
// Block definitions:
".: 0: 0\n" /* air */
- "a: 12: 0\n" /* sand */
- "b: 5: 0\n" /* wood */
- "c: 24: 2\n" /* sandstone */
- "d: 24: 0\n" /* sandstone */
- "e: 64: 7\n" /* wooddoorblock */
- "f: 65: 2\n" /* ladder */
- "g: 64:12\n" /* wooddoorblock */
- "h:101: 0\n" /* ironbars */
- "i: 50: 4\n" /* torch */
- "j:128: 2\n" /* sandstonestairs */
- "k:126: 8\n" /* woodenslab */
- "l:128: 4\n" /* sandstonestairs */
+ "a: 24: 2\n" /* sandstone */
+ "b: 4: 0\n" /* cobblestone */
+ "c: 24: 0\n" /* sandstone */
+ "d: 13: 0\n" /* gravel */
+ "e: 5: 0\n" /* wood */
+ "f: 64: 3\n" /* wooddoorblock */
+ "g: 65: 2\n" /* ladder */
+ "h: 64: 8\n" /* wooddoorblock */
+ "i:101: 0\n" /* ironbars */
+ "j: 50: 4\n" /* torch */
+ "k:128: 2\n" /* sandstonestairs */
+ "l:126: 8\n" /* woodenslab */
"m: 19: 0\n" /* sponge */
- "n:128: 5\n" /* sandstonestairs */
- "o:128: 7\n" /* sandstonestairs */
- "p: 44: 1\n" /* step */
- "q: 96: 2\n" /* trapdoor */,
+ "n:128: 4\n" /* sandstonestairs */
+ "o:128: 5\n" /* sandstonestairs */
+ "p:128: 7\n" /* sandstonestairs */
+ "q: 44: 1\n" /* step */
+ "r: 96: 2\n" /* trapdoor */,
// Block data:
// Level 0
/* z\x* 012345678 */
- /* 0 */ "aaaaaaaaa"
- /* 1 */ "aaaaaaaaa"
- /* 2 */ "aaaabaaaa"
- /* 3 */ "abbbbbbba"
- /* 4 */ "abbbbbbba"
- /* 5 */ "abbbbbbba"
- /* 6 */ "aaaaaaaaa"
+ /* 0 */ "mmabbbamm"
+ /* 1 */ "mmmbbbmmm"
+ /* 2 */ "accccccca"
+ /* 3 */ "ccccccccc"
+ /* 4 */ "ccccccccc"
+ /* 5 */ "ccccccccc"
+ /* 6 */ "accccccca"
// Level 1
/* z\x* 012345678 */
- /* 0 */ "..c...c.."
- /* 1 */ "........."
- /* 2 */ "cdddedddc"
- /* 3 */ "d.......d"
- /* 4 */ "d.......d"
- /* 5 */ "d......fd"
- /* 6 */ "cdddddddc"
+ /* 0 */ "mmadddamm"
+ /* 1 */ "mmmdddmmm"
+ /* 2 */ "accceccca"
+ /* 3 */ "ceeeeeeec"
+ /* 4 */ "ceeeeeeec"
+ /* 5 */ "ceeeeeeec"
+ /* 6 */ "accccccca"
// Level 2
/* z\x* 012345678 */
- /* 0 */ "..c...c.."
- /* 1 */ "........."
- /* 2 */ "cdddgdddc"
- /* 3 */ "d.......d"
- /* 4 */ "h.......h"
- /* 5 */ "d.i....fd"
- /* 6 */ "cddhhhddc"
+ /* 0 */ "mma...amm"
+ /* 1 */ "mm.....mm"
+ /* 2 */ "acccfccca"
+ /* 3 */ "c.......c"
+ /* 4 */ "c.......c"
+ /* 5 */ "c......gc"
+ /* 6 */ "accccccca"
// Level 3
/* z\x* 012345678 */
- /* 0 */ "..j...j.."
- /* 1 */ "..d...d.."
- /* 2 */ "cdddddddc"
- /* 3 */ "dkkkkkkkd"
- /* 4 */ "lkkkkkkkn"
- /* 5 */ "dkkkkkkfd"
- /* 6 */ "cddoooddc"
+ /* 0 */ "mma...amm"
+ /* 1 */ "mm.....mm"
+ /* 2 */ "accchccca"
+ /* 3 */ "c.......c"
+ /* 4 */ "i.......i"
+ /* 5 */ "c.j....gc"
+ /* 6 */ "acciiicca"
// Level 4
/* z\x* 012345678 */
- /* 0 */ "........."
- /* 1 */ "........."
- /* 2 */ "dpppdpppd"
- /* 3 */ "p.......p"
- /* 4 */ "d.......d"
- /* 5 */ "p......qp"
- /* 6 */ "dpppdpppd",
+ /* 0 */ "mmk...kmm"
+ /* 1 */ "mmc...cmm"
+ /* 2 */ "accccccca"
+ /* 3 */ "clllllllc"
+ /* 4 */ "nlllllllo"
+ /* 5 */ "cllllllgc"
+ /* 6 */ "accpppcca"
+
+ // Level 5
+ /* z\x* 012345678 */
+ /* 0 */ "mm.....mm"
+ /* 1 */ "mm.....mm"
+ /* 2 */ "cqqqcqqqc"
+ /* 3 */ "q.......q"
+ /* 4 */ "c.......c"
+ /* 5 */ "q......rq"
+ /* 6 */ "cqqqcqqqc",
// Connectors:
- "-1: 4, 1, 0: 2\n" /* Type -1, direction Z- */,
+ "-1: 4, 2, 0: 2\n" /* Type -1, direction Z- */,
// AllowedRotations:
7, /* 1, 2, 3 CCW rotation allowed */
@@ -1394,117 +1496,132 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// LittleHouse4:
// The data has been exported from the gallery Desert, area index 70, ID 560, created by STR_Warrior
{
// Size:
- 5, 5, 11, // SizeX = 5, SizeY = 5, SizeZ = 11
+ 5, 6, 11, // SizeX = 5, SizeY = 6, SizeZ = 11
// Hitbox (relative to bounding box):
-1, 0, 0, // MinX, MinY, MinZ
- 5, 4, 11, // MaxX, MaxY, MaxZ
+ 5, 5, 11, // MaxX, MaxY, MaxZ
// Block definitions:
".: 0: 0\n" /* air */
- "a: 12: 0\n" /* sand */
- "b: 5: 0\n" /* wood */
- "c: 24: 2\n" /* sandstone */
- "d: 24: 0\n" /* sandstone */
- "e: 64: 7\n" /* wooddoorblock */
- "f: 65: 5\n" /* ladder */
- "g:134: 3\n" /* 134 */
- "h: 85: 0\n" /* fence */
- "i:134: 2\n" /* 134 */
- "j: 61: 2\n" /* furnace */
- "k:134: 6\n" /* 134 */
- "l:134: 4\n" /* 134 */
+ "a: 24: 2\n" /* sandstone */
+ "b: 4: 0\n" /* cobblestone */
+ "c: 24: 0\n" /* sandstone */
+ "d: 13: 0\n" /* gravel */
+ "e: 5: 0\n" /* wood */
+ "f: 64: 3\n" /* wooddoorblock */
+ "g: 65: 5\n" /* ladder */
+ "h:134: 3\n" /* 134 */
+ "i: 85: 0\n" /* fence */
+ "j:134: 2\n" /* 134 */
+ "k: 61: 2\n" /* furnace */
+ "l:134: 6\n" /* 134 */
"m: 19: 0\n" /* sponge */
- "n: 64:12\n" /* wooddoorblock */
- "o: 50: 2\n" /* torch */
- "p:101: 0\n" /* ironbars */
- "q:171: 8\n" /* carpet */
- "r:128: 2\n" /* sandstonestairs */
- "s:126: 8\n" /* woodenslab */
- "t:128: 4\n" /* sandstonestairs */
- "u:128: 5\n" /* sandstonestairs */
- "v:128: 7\n" /* sandstonestairs */
- "w: 44: 1\n" /* step */
- "x: 96: 1\n" /* trapdoor */,
+ "n:134: 4\n" /* 134 */
+ "o: 64: 8\n" /* wooddoorblock */
+ "p: 50: 2\n" /* torch */
+ "q:101: 0\n" /* ironbars */
+ "r:171: 8\n" /* carpet */
+ "s:128: 2\n" /* sandstonestairs */
+ "t:126: 8\n" /* woodenslab */
+ "u:128: 4\n" /* sandstonestairs */
+ "v:128: 5\n" /* sandstonestairs */
+ "w:128: 7\n" /* sandstonestairs */
+ "x: 44: 1\n" /* step */
+ "y: 96: 1\n" /* trapdoor */,
// Block data:
// Level 0
/* z\x* 01234 */
- /* 0 */ "aaaaa"
- /* 1 */ "aaaaa"
- /* 2 */ "aabaa"
- /* 3 */ "abbba"
- /* 4 */ "abbba"
- /* 5 */ "abbba"
- /* 6 */ "abbba"
- /* 7 */ "abbba"
- /* 8 */ "abbba"
- /* 9 */ "abbba"
- /* 10 */ "aaaaa"
+ /* 0 */ "abbba"
+ /* 1 */ "mbbbm"
+ /* 2 */ "accca"
+ /* 3 */ "ccccc"
+ /* 4 */ "ccccc"
+ /* 5 */ "ccccc"
+ /* 6 */ "ccccc"
+ /* 7 */ "ccccc"
+ /* 8 */ "ccccc"
+ /* 9 */ "ccccc"
+ /* 10 */ "accca"
// Level 1
/* z\x* 01234 */
- /* 0 */ "c...c"
- /* 1 */ "....."
- /* 2 */ "cdedc"
- /* 3 */ "df..d"
- /* 4 */ "d...d"
- /* 5 */ "d..gd"
- /* 6 */ "d..hd"
- /* 7 */ "d..id"
- /* 8 */ "d...d"
- /* 9 */ "djkld"
- /* 10 */ "cdddc"
+ /* 0 */ "addda"
+ /* 1 */ "mdddm"
+ /* 2 */ "aceca"
+ /* 3 */ "ceeec"
+ /* 4 */ "ceeec"
+ /* 5 */ "ceeec"
+ /* 6 */ "ceeec"
+ /* 7 */ "ceeec"
+ /* 8 */ "ceeec"
+ /* 9 */ "ceeec"
+ /* 10 */ "accca"
// Level 2
/* z\x* 01234 */
- /* 0 */ "c...c"
+ /* 0 */ "a...a"
/* 1 */ "....."
- /* 2 */ "cdndc"
- /* 3 */ "df..d"
- /* 4 */ "d..od"
- /* 5 */ "p...p"
- /* 6 */ "p..qp"
- /* 7 */ "p...p"
- /* 8 */ "d...d"
- /* 9 */ "d...d"
- /* 10 */ "cdpdc"
+ /* 2 */ "acfca"
+ /* 3 */ "cg..c"
+ /* 4 */ "c...c"
+ /* 5 */ "c..hc"
+ /* 6 */ "c..ic"
+ /* 7 */ "c..jc"
+ /* 8 */ "c...c"
+ /* 9 */ "cklnc"
+ /* 10 */ "accca"
// Level 3
/* z\x* 01234 */
- /* 0 */ "r...r"
- /* 1 */ "d...d"
- /* 2 */ "cdddc"
- /* 3 */ "dfssd"
- /* 4 */ "dsssd"
- /* 5 */ "tsssu"
- /* 6 */ "tsssu"
- /* 7 */ "tsssu"
- /* 8 */ "dsssd"
- /* 9 */ "dsssd"
- /* 10 */ "cdvdc"
+ /* 0 */ "a...a"
+ /* 1 */ "....."
+ /* 2 */ "acoca"
+ /* 3 */ "cg..c"
+ /* 4 */ "c..pc"
+ /* 5 */ "q...q"
+ /* 6 */ "q..rq"
+ /* 7 */ "q...q"
+ /* 8 */ "c...c"
+ /* 9 */ "c...c"
+ /* 10 */ "acqca"
// Level 4
/* z\x* 01234 */
+ /* 0 */ "s...s"
+ /* 1 */ "c...c"
+ /* 2 */ "accca"
+ /* 3 */ "cgttc"
+ /* 4 */ "ctttc"
+ /* 5 */ "utttv"
+ /* 6 */ "utttv"
+ /* 7 */ "utttv"
+ /* 8 */ "ctttc"
+ /* 9 */ "ctttc"
+ /* 10 */ "acwca"
+
+ // Level 5
+ /* z\x* 01234 */
/* 0 */ "....."
/* 1 */ "....."
- /* 2 */ "dwdwd"
- /* 3 */ "wx..w"
- /* 4 */ "w...w"
- /* 5 */ "w...w"
- /* 6 */ "d...d"
- /* 7 */ "w...w"
- /* 8 */ "w...w"
- /* 9 */ "w...w"
- /* 10 */ "dwdwd",
+ /* 2 */ "cxcxc"
+ /* 3 */ "xy..x"
+ /* 4 */ "x...x"
+ /* 5 */ "x...x"
+ /* 6 */ "c...c"
+ /* 7 */ "x...x"
+ /* 8 */ "x...x"
+ /* 9 */ "x...x"
+ /* 10 */ "cxcxc",
// Connectors:
- "-1: 2, 1, 0: 2\n" /* Type -1, direction Z- */,
+ "-1: 2, 2, 0: 2\n" /* Type -1, direction Z- */,
// AllowedRotations:
7, /* 1, 2, 3 CCW rotation allowed */
@@ -1530,102 +1647,115 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// LittleHouse5:
// The data has been exported from the gallery Desert, area index 68, ID 558, created by STR_Warrior
{
// Size:
- 9, 5, 9, // SizeX = 9, SizeY = 5, SizeZ = 9
+ 9, 6, 9, // SizeX = 9, SizeY = 6, SizeZ = 9
// Hitbox (relative to bounding box):
-1, 0, 0, // MinX, MinY, MinZ
- 9, 4, 9, // MaxX, MaxY, MaxZ
+ 9, 5, 9, // MaxX, MaxY, MaxZ
// Block definitions:
".: 0: 0\n" /* air */
- "a: 12: 0\n" /* sand */
- "b: 5: 0\n" /* wood */
- "c: 24: 2\n" /* sandstone */
- "d: 24: 0\n" /* sandstone */
- "e: 64: 7\n" /* wooddoorblock */
- "f: 65: 2\n" /* ladder */
- "g: 64:12\n" /* wooddoorblock */
- "h:101: 0\n" /* ironbars */
- "i: 50: 1\n" /* torch */
- "j: 50: 4\n" /* torch */
- "k:128: 2\n" /* sandstonestairs */
- "l:126: 8\n" /* woodenslab */
+ "a: 24: 2\n" /* sandstone */
+ "b: 4: 0\n" /* cobblestone */
+ "c: 24: 0\n" /* sandstone */
+ "d: 13: 0\n" /* gravel */
+ "e: 5: 0\n" /* wood */
+ "f: 64: 3\n" /* wooddoorblock */
+ "g: 65: 2\n" /* ladder */
+ "h: 64: 8\n" /* wooddoorblock */
+ "i:101: 0\n" /* ironbars */
+ "j: 50: 1\n" /* torch */
+ "k: 50: 4\n" /* torch */
+ "l:128: 2\n" /* sandstonestairs */
"m: 19: 0\n" /* sponge */
- "n:128: 6\n" /* sandstonestairs */
- "o:128: 5\n" /* sandstonestairs */
- "p:128: 4\n" /* sandstonestairs */
- "q:128: 7\n" /* sandstonestairs */
- "r: 44: 1\n" /* step */
- "s: 96: 6\n" /* trapdoor */,
+ "n:126: 8\n" /* woodenslab */
+ "o:128: 6\n" /* sandstonestairs */
+ "p:128: 5\n" /* sandstonestairs */
+ "q:128: 4\n" /* sandstonestairs */
+ "r:128: 7\n" /* sandstonestairs */
+ "s: 44: 1\n" /* step */
+ "t: 96: 2\n" /* trapdoor */,
// Block data:
// Level 0
/* z\x* 012345678 */
- /* 0 */ "aaaaaaaaa"
- /* 1 */ "aaaaaaaaa"
- /* 2 */ "aaaaaabaa"
- /* 3 */ "aaaaabbba"
- /* 4 */ "aaaaabbba"
- /* 5 */ "abbbbbbba"
- /* 6 */ "abbbbbbba"
- /* 7 */ "abbbbbbba"
- /* 8 */ "aaaaaaaaa"
+ /* 0 */ "mmmmabbba"
+ /* 1 */ "mmmmmbbbm"
+ /* 2 */ "mmmmaccca"
+ /* 3 */ "mmmmccccc"
+ /* 4 */ "acccacccc"
+ /* 5 */ "ccccccccc"
+ /* 6 */ "ccccccccc"
+ /* 7 */ "ccccccccc"
+ /* 8 */ "accccccca"
// Level 1
/* z\x* 012345678 */
- /* 0 */ "mmmmc...c"
- /* 1 */ "mmmm....."
- /* 2 */ "mmmmcdedc"
- /* 3 */ "mmmmd...d"
- /* 4 */ "cdddd...d"
- /* 5 */ "d.......d"
- /* 6 */ "d.......d"
- /* 7 */ "d......fd"
- /* 8 */ "cdddddddc"
+ /* 0 */ "mmmmaddda"
+ /* 1 */ "mmmmmdddm"
+ /* 2 */ "mmmmaceca"
+ /* 3 */ "mmmmceeec"
+ /* 4 */ "acccaeeec"
+ /* 5 */ "ceeeeeeec"
+ /* 6 */ "ceeeeeeec"
+ /* 7 */ "ceeeeeeec"
+ /* 8 */ "accccccca"
// Level 2
/* z\x* 012345678 */
- /* 0 */ "mmmmc...c"
+ /* 0 */ "mmmma...a"
/* 1 */ "mmmm....."
- /* 2 */ "mmmmcdgdc"
- /* 3 */ "mmmmd...d"
- /* 4 */ "cdhdd...h"
- /* 5 */ "d.......h"
- /* 6 */ "h.......d"
- /* 7 */ "di....jfd"
- /* 8 */ "cddhhhddc"
+ /* 2 */ "mmmmacfca"
+ /* 3 */ "mmmmc...c"
+ /* 4 */ "accca...c"
+ /* 5 */ "c.......c"
+ /* 6 */ "c.......c"
+ /* 7 */ "c......gc"
+ /* 8 */ "accccccca"
// Level 3
/* z\x* 012345678 */
- /* 0 */ "mmmmk...k"
- /* 1 */ "mmmmd...d"
- /* 2 */ "mmmmcdddc"
- /* 3 */ "mmmmdllld"
- /* 4 */ "cdnddlllo"
- /* 5 */ "dlllllllo"
- /* 6 */ "pllllllld"
- /* 7 */ "dllllllfd"
- /* 8 */ "cddqqqddc"
+ /* 0 */ "mmmma...a"
+ /* 1 */ "mmmm....."
+ /* 2 */ "mmmmachca"
+ /* 3 */ "mmmmc...c"
+ /* 4 */ "acica...i"
+ /* 5 */ "c.......i"
+ /* 6 */ "i.......i"
+ /* 7 */ "cj....kgc"
+ /* 8 */ "acciiicca"
// Level 4
/* z\x* 012345678 */
+ /* 0 */ "mmmml...l"
+ /* 1 */ "mmmmc...c"
+ /* 2 */ "mmmmaccca"
+ /* 3 */ "mmmmcnnnc"
+ /* 4 */ "acocannnp"
+ /* 5 */ "cnnnnnnnp"
+ /* 6 */ "qnnnnnnnp"
+ /* 7 */ "cnnnnnngc"
+ /* 8 */ "accrrrcca"
+
+ // Level 5
+ /* z\x* 012345678 */
/* 0 */ "mmmm....."
/* 1 */ "mmmm....."
- /* 2 */ "mmmmcrdrd"
- /* 3 */ "mmmmr...r"
- /* 4 */ "drrrd...d"
- /* 5 */ "r.......r"
- /* 6 */ "r.......r"
- /* 7 */ "r......sr"
- /* 8 */ "drrrdrrrd",
+ /* 2 */ "mmmmcscsc"
+ /* 3 */ "mmmms...s"
+ /* 4 */ "csssc...c"
+ /* 5 */ "s.......s"
+ /* 6 */ "s.......s"
+ /* 7 */ "s......ts"
+ /* 8 */ "cssscsssc",
// Connectors:
- "-1: 6, 1, 0: 2\n" /* Type -1, direction Z- */,
+ "-1: 6, 2, 0: 2\n" /* Type -1, direction Z- */,
// AllowedRotations:
7, /* 1, 2, 3 CCW rotation allowed */
@@ -1651,107 +1781,122 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// LittleHouse6:
// The data has been exported from the gallery Desert, area index 69, ID 559, created by STR_Warrior
{
// Size:
- 9, 5, 9, // SizeX = 9, SizeY = 5, SizeZ = 9
+ 9, 6, 9, // SizeX = 9, SizeY = 6, SizeZ = 9
// Hitbox (relative to bounding box):
-1, 0, 0, // MinX, MinY, MinZ
- 9, 4, 9, // MaxX, MaxY, MaxZ
+ 9, 5, 9, // MaxX, MaxY, MaxZ
// Block definitions:
".: 0: 0\n" /* air */
+ "A: 96: 2\n" /* trapdoor */
"a: 12: 0\n" /* sand */
- "b: 2: 0\n" /* grass */
- "c: 5: 0\n" /* wood */
- "d: 85: 0\n" /* fence */
- "e: 24: 2\n" /* sandstone */
- "f: 24: 0\n" /* sandstone */
- "g: 64: 7\n" /* wooddoorblock */
- "h: 38: 1\n" /* rose */
- "i: 38: 2\n" /* rose */
- "j: 38: 5\n" /* rose */
- "k: 65: 2\n" /* ladder */
- "l: 64:12\n" /* wooddoorblock */
+ "b: 24: 2\n" /* sandstone */
+ "c: 4: 0\n" /* cobblestone */
+ "d: 3: 0\n" /* dirt */
+ "e: 24: 0\n" /* sandstone */
+ "f: 13: 0\n" /* gravel */
+ "g: 2: 0\n" /* grass */
+ "h: 5: 0\n" /* wood */
+ "i: 85: 0\n" /* fence */
+ "j: 64: 3\n" /* wooddoorblock */
+ "k: 38: 1\n" /* rose */
+ "l: 38: 2\n" /* rose */
"m: 19: 0\n" /* sponge */
- "n:101: 0\n" /* ironbars */
- "o: 50: 1\n" /* torch */
- "p: 50: 4\n" /* torch */
- "q:128: 2\n" /* sandstonestairs */
- "r:126: 8\n" /* woodenslab */
- "s:128: 6\n" /* sandstonestairs */
- "t:128: 5\n" /* sandstonestairs */
- "u:128: 4\n" /* sandstonestairs */
- "v:128: 7\n" /* sandstonestairs */
- "w: 44: 1\n" /* step */
- "x: 96: 6\n" /* trapdoor */,
+ "n: 38: 5\n" /* rose */
+ "o: 65: 2\n" /* ladder */
+ "p: 64: 8\n" /* wooddoorblock */
+ "q:101: 0\n" /* ironbars */
+ "r: 50: 1\n" /* torch */
+ "s: 50: 4\n" /* torch */
+ "t:128: 2\n" /* sandstonestairs */
+ "u:126: 8\n" /* woodenslab */
+ "v:128: 6\n" /* sandstonestairs */
+ "w:128: 5\n" /* sandstonestairs */
+ "x:128: 4\n" /* sandstonestairs */
+ "y:128: 7\n" /* sandstonestairs */
+ "z: 44: 1\n" /* step */,
// Block data:
// Level 0
/* z\x* 012345678 */
- /* 0 */ "aaaaaaaaa"
- /* 1 */ "abbbaaaaa"
- /* 2 */ "abbbaacaa"
- /* 3 */ "abbbaccca"
- /* 4 */ "aaaaaccca"
- /* 5 */ "accccccca"
- /* 6 */ "accccccca"
- /* 7 */ "accccccca"
- /* 8 */ "aaaaaaaaa"
+ /* 0 */ "aaaabcccb"
+ /* 1 */ "adddccccm"
+ /* 2 */ "adddbeeeb"
+ /* 3 */ "adddeeeee"
+ /* 4 */ "beeebeeee"
+ /* 5 */ "eeeeeeeee"
+ /* 6 */ "eeeeeeeee"
+ /* 7 */ "eeeeeeeee"
+ /* 8 */ "beeeeeeeb"
// Level 1
/* z\x* 012345678 */
- /* 0 */ "dddde...e"
- /* 1 */ "d........"
- /* 2 */ "d...efgfe"
- /* 3 */ "dhijf...f"
- /* 4 */ "effff...f"
- /* 5 */ "f.......f"
- /* 6 */ "f.......f"
- /* 7 */ "f......kf"
- /* 8 */ "efffffffe"
+ /* 0 */ "aaaabfffb"
+ /* 1 */ "agggffffm"
+ /* 2 */ "agggbeheb"
+ /* 3 */ "agggehhhe"
+ /* 4 */ "beeebhhhe"
+ /* 5 */ "ehhhhhhhe"
+ /* 6 */ "ehhhhhhhe"
+ /* 7 */ "ehhhhhhhe"
+ /* 8 */ "beeeeeeeb"
// Level 2
/* z\x* 012345678 */
- /* 0 */ "....e...e"
- /* 1 */ "........."
- /* 2 */ "....eflfe"
- /* 3 */ "....f...f"
- /* 4 */ "efnff...n"
- /* 5 */ "f.......n"
- /* 6 */ "n.......f"
- /* 7 */ "fo....pkf"
- /* 8 */ "effnnnffe"
+ /* 0 */ "iiiib...b"
+ /* 1 */ "i........"
+ /* 2 */ "i...bejeb"
+ /* 3 */ "iklne...e"
+ /* 4 */ "beeeb...e"
+ /* 5 */ "e.......e"
+ /* 6 */ "e.......e"
+ /* 7 */ "e......oe"
+ /* 8 */ "beeeeeeeb"
// Level 3
/* z\x* 012345678 */
- /* 0 */ "....q...q"
- /* 1 */ "....f...f"
- /* 2 */ "....efffe"
- /* 3 */ "....frrrf"
- /* 4 */ "efsffrrrt"
- /* 5 */ "frrrrrrrt"
- /* 6 */ "urrrrrrrf"
- /* 7 */ "frrrrrrkf"
- /* 8 */ "effvvvffe"
+ /* 0 */ "....b...b"
+ /* 1 */ "........."
+ /* 2 */ "....bepeb"
+ /* 3 */ "....e...e"
+ /* 4 */ "beqeb...q"
+ /* 5 */ "e.......q"
+ /* 6 */ "q.......q"
+ /* 7 */ "er....soe"
+ /* 8 */ "beeqqqeeb"
// Level 4
/* z\x* 012345678 */
+ /* 0 */ "....t...t"
+ /* 1 */ "....e...e"
+ /* 2 */ "....beeeb"
+ /* 3 */ "....euuue"
+ /* 4 */ "bevebuuuw"
+ /* 5 */ "euuuuuuuw"
+ /* 6 */ "xuuuuuuuw"
+ /* 7 */ "euuuuuuoe"
+ /* 8 */ "beeyyyeeb"
+
+ // Level 5
+ /* z\x* 012345678 */
/* 0 */ "........."
/* 1 */ "........."
- /* 2 */ "....ewfwf"
- /* 3 */ "....w...w"
- /* 4 */ "fwwwf...f"
- /* 5 */ "w.......w"
- /* 6 */ "w.......w"
- /* 7 */ "w......xw"
- /* 8 */ "fwwwfwwwf",
+ /* 2 */ "....ezeze"
+ /* 3 */ "....z...z"
+ /* 4 */ "ezzze...e"
+ /* 5 */ "z.......z"
+ /* 6 */ "z.......z"
+ /* 7 */ "z......Az"
+ /* 8 */ "ezzzezzze",
// Connectors:
- "-1: 6, 1, 0: 2\n" /* Type -1, direction Z- */,
+ "-1: 6, 2, 0: 2\n" /* Type -1, direction Z- */,
// AllowedRotations:
7, /* 1, 2, 3 CCW rotation allowed */
@@ -1777,112 +1922,127 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// LittleHouse7:
// The data has been exported from the gallery Desert, area index 73, ID 563, created by xoft
{
// Size:
- 9, 5, 11, // SizeX = 9, SizeY = 5, SizeZ = 11
+ 9, 6, 11, // SizeX = 9, SizeY = 6, SizeZ = 11
// Hitbox (relative to bounding box):
-1, 0, 0, // MinX, MinY, MinZ
- 9, 4, 11, // MaxX, MaxY, MaxZ
+ 9, 5, 11, // MaxX, MaxY, MaxZ
// Block definitions:
".: 0: 0\n" /* air */
- "a: 12: 0\n" /* sand */
- "b: 5: 0\n" /* wood */
- "c: 24: 2\n" /* sandstone */
- "d: 24: 0\n" /* sandstone */
- "e: 64: 7\n" /* wooddoorblock */
- "f: 65: 2\n" /* ladder */
- "g:101: 0\n" /* ironbars */
- "h: 64:12\n" /* wooddoorblock */
- "i: 50: 1\n" /* torch */
- "j: 50: 2\n" /* torch */
- "k:128: 2\n" /* sandstonestairs */
- "l:128: 6\n" /* sandstonestairs */
+ "a: 24: 2\n" /* sandstone */
+ "b: 4: 0\n" /* cobblestone */
+ "c: 24: 0\n" /* sandstone */
+ "d: 13: 0\n" /* gravel */
+ "e: 5: 0\n" /* wood */
+ "f: 64: 3\n" /* wooddoorblock */
+ "g: 65: 2\n" /* ladder */
+ "h:101: 0\n" /* ironbars */
+ "i: 64: 8\n" /* wooddoorblock */
+ "j: 50: 1\n" /* torch */
+ "k: 50: 2\n" /* torch */
+ "l:128: 2\n" /* sandstonestairs */
"m: 19: 0\n" /* sponge */
- "n:126: 8\n" /* woodenslab */
- "o:128: 4\n" /* sandstonestairs */
- "p:128: 5\n" /* sandstonestairs */
- "q:128: 7\n" /* sandstonestairs */
- "r: 44: 1\n" /* step */
- "s: 96: 6\n" /* trapdoor */,
+ "n:128: 6\n" /* sandstonestairs */
+ "o:126: 8\n" /* woodenslab */
+ "p:128: 4\n" /* sandstonestairs */
+ "q:128: 5\n" /* sandstonestairs */
+ "r:128: 7\n" /* sandstonestairs */
+ "s: 44: 1\n" /* step */
+ "t: 96: 2\n" /* trapdoor */,
// Block data:
// Level 0
/* z\x* 012345678 */
- /* 0 */ "aaaaaaaaa"
- /* 1 */ "aaaaaaaaa"
- /* 2 */ "aaaaaabaa"
- /* 3 */ "abbbbbbba"
- /* 4 */ "abbbbbbba"
- /* 5 */ "abbbbbbba"
- /* 6 */ "aaaaabbba"
- /* 7 */ "aaaaabbba"
- /* 8 */ "aaaaabbba"
- /* 9 */ "aaaaabbba"
- /* 10 */ "aaaaaaaaa"
+ /* 0 */ "mmmmabbba"
+ /* 1 */ "mmmmmbbbm"
+ /* 2 */ "accccccca"
+ /* 3 */ "ccccccccc"
+ /* 4 */ "ccccccccc"
+ /* 5 */ "ccccccccc"
+ /* 6 */ "acccacccc"
+ /* 7 */ "mmmmccccc"
+ /* 8 */ "mmmmccccc"
+ /* 9 */ "mmmmccccc"
+ /* 10 */ "mmmmaccca"
// Level 1
/* z\x* 012345678 */
- /* 0 */ "....c...c"
- /* 1 */ "........."
- /* 2 */ "cdddddedc"
- /* 3 */ "d.......d"
- /* 4 */ "d.......d"
- /* 5 */ "d.......d"
- /* 6 */ "cdddd...d"
- /* 7 */ "mmmmd...d"
- /* 8 */ "mmmmd...d"
- /* 9 */ "mmmmd..fd"
- /* 10 */ "mmmmddddc"
+ /* 0 */ "mmmmaddda"
+ /* 1 */ "mmmmmdddm"
+ /* 2 */ "accccceca"
+ /* 3 */ "ceeeeeeec"
+ /* 4 */ "ceeeeeeec"
+ /* 5 */ "ceeeeeeec"
+ /* 6 */ "acccaeeec"
+ /* 7 */ "mmmmceeec"
+ /* 8 */ "mmmmceeec"
+ /* 9 */ "mmmmceeec"
+ /* 10 */ "mmmmaccca"
// Level 2
/* z\x* 012345678 */
- /* 0 */ "....c...c"
- /* 1 */ "........."
- /* 2 */ "cdgdddhdc"
- /* 3 */ "d.......d"
- /* 4 */ "g.......d"
- /* 5 */ "di......g"
- /* 6 */ "cdgdd...g"
- /* 7 */ "mmmmd...g"
- /* 8 */ "mmmmg..jd"
- /* 9 */ "mmmmd..fd"
- /* 10 */ "mmmmddgdc"
+ /* 0 */ "mmmma...a"
+ /* 1 */ "mmmm....."
+ /* 2 */ "acccccfca"
+ /* 3 */ "c.......c"
+ /* 4 */ "c.......c"
+ /* 5 */ "c.......c"
+ /* 6 */ "accca...c"
+ /* 7 */ "mmmmc...c"
+ /* 8 */ "mmmmc...c"
+ /* 9 */ "mmmmc..gc"
+ /* 10 */ "mmmmaccca"
// Level 3
/* z\x* 012345678 */
- /* 0 */ "....k...k"
- /* 1 */ "....d...d"
- /* 2 */ "cdldddddc"
- /* 3 */ "dnnnnnnnd"
- /* 4 */ "onnnnnnnd"
- /* 5 */ "dnnnnnnnp"
- /* 6 */ "cdqddnnnp"
- /* 7 */ "mmmmdnnnp"
- /* 8 */ "mmmmonnnd"
- /* 9 */ "mmmmdnnfd"
- /* 10 */ "mmmmddqdc"
+ /* 0 */ "mmmma...a"
+ /* 1 */ "mmmm....."
+ /* 2 */ "achcccica"
+ /* 3 */ "c.......c"
+ /* 4 */ "h.......c"
+ /* 5 */ "cj......h"
+ /* 6 */ "achca...h"
+ /* 7 */ "mmmmc...h"
+ /* 8 */ "mmmmh..kc"
+ /* 9 */ "mmmmc..gc"
+ /* 10 */ "mmmmachca"
// Level 4
/* z\x* 012345678 */
- /* 0 */ "........."
- /* 1 */ "........."
- /* 2 */ "drrrdrdrd"
- /* 3 */ "r.......r"
- /* 4 */ "r.......r"
- /* 5 */ "r.......r"
- /* 6 */ "drrrd...d"
- /* 7 */ "mmmmr...r"
- /* 8 */ "mmmmr...r"
- /* 9 */ "mmmmr..sr"
- /* 10 */ "mmmmdrrrd",
+ /* 0 */ "mmmml...l"
+ /* 1 */ "mmmmc...c"
+ /* 2 */ "acnccccca"
+ /* 3 */ "coooooooc"
+ /* 4 */ "poooooooc"
+ /* 5 */ "coooooooq"
+ /* 6 */ "acrcaoooq"
+ /* 7 */ "mmmmcoooq"
+ /* 8 */ "mmmmpoooc"
+ /* 9 */ "mmmmcoogc"
+ /* 10 */ "mmmmacrca"
+
+ // Level 5
+ /* z\x* 012345678 */
+ /* 0 */ "mmmm....."
+ /* 1 */ "mmmm....."
+ /* 2 */ "cssscscsc"
+ /* 3 */ "s.......s"
+ /* 4 */ "s.......s"
+ /* 5 */ "s.......s"
+ /* 6 */ "csssc...c"
+ /* 7 */ "mmmms...s"
+ /* 8 */ "mmmms...s"
+ /* 9 */ "mmmms..ts"
+ /* 10 */ "mmmmcsssc",
// Connectors:
- "-1: 6, 1, 0: 2\n" /* Type -1, direction Z- */,
+ "-1: 6, 2, 0: 2\n" /* Type -1, direction Z- */,
// AllowedRotations:
7, /* 1, 2, 3 CCW rotation allowed */
@@ -1908,121 +2068,264 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- // LittleTower:
- // The data has been exported from the gallery Desert, area index 79, ID 595, created by STR_Warrior
+ ////////////////////////////////////////////////////////////////////////////////
+ // LittleHouse8:
+ // The data has been exported from the gallery Desert, area index 99, ID 739, created by STR_Warrior
{
// Size:
- 5, 8, 7, // SizeX = 5, SizeY = 8, SizeZ = 7
+ 9, 6, 9, // SizeX = 9, SizeY = 6, SizeZ = 9
// Hitbox (relative to bounding box):
- -1, 0, 0, // MinX, MinY, MinZ
- 5, 7, 7, // MaxX, MaxY, MaxZ
+ 0, 0, -1, // MinX, MinY, MinZ
+ 9, 5, 9, // MaxX, MaxY, MaxZ
// Block definitions:
".: 0: 0\n" /* air */
- "a: 12: 0\n" /* sand */
- "b: 5: 0\n" /* wood */
- "c: 24: 2\n" /* sandstone */
- "d: 24: 0\n" /* sandstone */
- "e: 64: 7\n" /* wooddoorblock */
- "f: 65: 5\n" /* ladder */
- "g: 64:12\n" /* wooddoorblock */
+ "a: 24: 2\n" /* sandstone */
+ "b: 24: 0\n" /* sandstone */
+ "c: 4: 0\n" /* cobblestone */
+ "d: 13: 0\n" /* gravel */
+ "e: 5: 0\n" /* wood */
+ "f: 64: 2\n" /* wooddoorblock */
+ "g: 65: 2\n" /* ladder */
"h:101: 0\n" /* ironbars */
- "i: 50: 4\n" /* torch */
- "j:128: 2\n" /* sandstonestairs */
- "k:126: 8\n" /* woodenslab */
- "l:128: 4\n" /* sandstonestairs */
+ "i: 64: 8\n" /* wooddoorblock */
+ "j: 50: 1\n" /* torch */
+ "k:128: 6\n" /* sandstonestairs */
+ "l:126: 8\n" /* woodenslab */
"m: 19: 0\n" /* sponge */
"n:128: 5\n" /* sandstonestairs */
- "o:128: 7\n" /* sandstonestairs */
- "p:128: 6\n" /* sandstonestairs */
+ "o:128: 4\n" /* sandstonestairs */
+ "p:128: 7\n" /* sandstonestairs */
"q: 44: 1\n" /* step */
- "r: 96: 5\n" /* trapdoor */,
+ "r: 96: 2\n" /* trapdoor */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 012345678 */
+ /* 0 */ "mmmmabbba"
+ /* 1 */ "ccccbbbbb"
+ /* 2 */ "ccccbbbbb"
+ /* 3 */ "ccccbbbbb"
+ /* 4 */ "abbbabbbb"
+ /* 5 */ "bbbbbbbbb"
+ /* 6 */ "bbbbbbbbb"
+ /* 7 */ "bbbbbbbbb"
+ /* 8 */ "abbbbbbba"
+
+ // Level 1
+ /* z\x* 012345678 */
+ /* 0 */ "mmmmabbba"
+ /* 1 */ "ddddbeeeb"
+ /* 2 */ "ddddeeeeb"
+ /* 3 */ "ddddbeeeb"
+ /* 4 */ "abbbaeeeb"
+ /* 5 */ "beeeeeeeb"
+ /* 6 */ "beeeeeeeb"
+ /* 7 */ "beeeeeeeb"
+ /* 8 */ "abbbbbbba"
+
+ // Level 2
+ /* z\x* 012345678 */
+ /* 0 */ "mmmmabbba"
+ /* 1 */ "....b...b"
+ /* 2 */ "....f...b"
+ /* 3 */ "....b...b"
+ /* 4 */ "abbba...b"
+ /* 5 */ "b.......b"
+ /* 6 */ "b.......b"
+ /* 7 */ "b......gb"
+ /* 8 */ "abbbbbbba"
+
+ // Level 3
+ /* z\x* 012345678 */
+ /* 0 */ "mmmmabhba"
+ /* 1 */ "....b...b"
+ /* 2 */ "....i...b"
+ /* 3 */ "....b...h"
+ /* 4 */ "abhbaj..h"
+ /* 5 */ "b.......h"
+ /* 6 */ "h.......b"
+ /* 7 */ "b......gb"
+ /* 8 */ "abbhhhbba"
+
+ // Level 4
+ /* z\x* 012345678 */
+ /* 0 */ "mmmmabkba"
+ /* 1 */ "....blllb"
+ /* 2 */ "....blllb"
+ /* 3 */ "....bllln"
+ /* 4 */ "abkballln"
+ /* 5 */ "bllllllln"
+ /* 6 */ "olllllllb"
+ /* 7 */ "bllllllgb"
+ /* 8 */ "abbpppbba"
+
+ // Level 5
+ /* z\x* 012345678 */
+ /* 0 */ "mmmmbqbqb"
+ /* 1 */ "....q...q"
+ /* 2 */ "....q...q"
+ /* 3 */ "....q...q"
+ /* 4 */ "bqqqb...b"
+ /* 5 */ "q.......q"
+ /* 6 */ "b.......q"
+ /* 7 */ "q......rq"
+ /* 8 */ "bqqqbqqqb",
+
+ // Connectors:
+ "-1: 0, 2, 2: 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,
+
+ // MoveToGround:
+ true,
+ }, // LittleHouse8
+
+
+
+ ////////////////////////////////////////////////////////////////////////////////
+ // LittleTower:
+ // The data has been exported from the gallery Desert, area index 79, ID 595, created by STR_Warrior
+ {
+ // Size:
+ 5, 9, 7, // SizeX = 5, SizeY = 9, SizeZ = 7
+
+ // Hitbox (relative to bounding box):
+ -1, 0, 0, // MinX, MinY, MinZ
+ 5, 8, 7, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a: 24: 2\n" /* sandstone */
+ "b: 4: 0\n" /* cobblestone */
+ "c: 24: 0\n" /* sandstone */
+ "d: 13: 0\n" /* gravel */
+ "e: 5: 0\n" /* wood */
+ "f: 64: 3\n" /* wooddoorblock */
+ "g: 65: 5\n" /* ladder */
+ "h: 64: 8\n" /* wooddoorblock */
+ "i:101: 0\n" /* ironbars */
+ "j: 50: 4\n" /* torch */
+ "k:128: 2\n" /* sandstonestairs */
+ "l:126: 8\n" /* woodenslab */
+ "m: 19: 0\n" /* sponge */
+ "n:128: 4\n" /* sandstonestairs */
+ "o:128: 5\n" /* sandstonestairs */
+ "p:128: 7\n" /* sandstonestairs */
+ "q:128: 6\n" /* sandstonestairs */
+ "r: 44: 1\n" /* step */
+ "s: 96: 1\n" /* trapdoor */,
// Block data:
// Level 0
/* z\x* 01234 */
- /* 0 */ "aaaaa"
- /* 1 */ "aaaaa"
- /* 2 */ "aabaa"
- /* 3 */ "abbba"
- /* 4 */ "abbba"
- /* 5 */ "abbba"
- /* 6 */ "aaaaa"
+ /* 0 */ "abbba"
+ /* 1 */ "mbbbm"
+ /* 2 */ "accca"
+ /* 3 */ "ccccc"
+ /* 4 */ "ccccc"
+ /* 5 */ "ccccc"
+ /* 6 */ "accca"
// Level 1
/* z\x* 01234 */
- /* 0 */ "c...c"
- /* 1 */ "....."
- /* 2 */ "cdedc"
- /* 3 */ "df..d"
- /* 4 */ "d...d"
- /* 5 */ "d...d"
- /* 6 */ "cdddc"
+ /* 0 */ "addda"
+ /* 1 */ "mdddm"
+ /* 2 */ "aceca"
+ /* 3 */ "ceeec"
+ /* 4 */ "ceeec"
+ /* 5 */ "ceeec"
+ /* 6 */ "accca"
// Level 2
/* z\x* 01234 */
- /* 0 */ "c...c"
+ /* 0 */ "a...a"
/* 1 */ "....."
- /* 2 */ "cdgdc"
- /* 3 */ "df..d"
- /* 4 */ "h...h"
- /* 5 */ "d..id"
- /* 6 */ "cdhdc"
+ /* 2 */ "acfca"
+ /* 3 */ "cg..c"
+ /* 4 */ "c...c"
+ /* 5 */ "c...c"
+ /* 6 */ "accca"
// Level 3
/* z\x* 01234 */
- /* 0 */ "j...j"
- /* 1 */ "d...d"
- /* 2 */ "cdddc"
- /* 3 */ "dfkkd"
- /* 4 */ "lkkkn"
- /* 5 */ "dkkkd"
- /* 6 */ "cdodc"
+ /* 0 */ "a...a"
+ /* 1 */ "....."
+ /* 2 */ "achca"
+ /* 3 */ "cg..c"
+ /* 4 */ "i...i"
+ /* 5 */ "c..jc"
+ /* 6 */ "acica"
// Level 4
/* z\x* 01234 */
- /* 0 */ "....."
- /* 1 */ "....."
- /* 2 */ "cdddc"
- /* 3 */ "df..d"
- /* 4 */ "d...d"
- /* 5 */ "d...d"
- /* 6 */ "cdddc"
+ /* 0 */ "k...k"
+ /* 1 */ "c...c"
+ /* 2 */ "accca"
+ /* 3 */ "cgllc"
+ /* 4 */ "nlllo"
+ /* 5 */ "clllc"
+ /* 6 */ "acpca"
// Level 5
/* z\x* 01234 */
/* 0 */ "....."
/* 1 */ "....."
- /* 2 */ "cdhdc"
- /* 3 */ "df..d"
- /* 4 */ "h...h"
- /* 5 */ "d..id"
- /* 6 */ "cdhdc"
+ /* 2 */ "accca"
+ /* 3 */ "cg..c"
+ /* 4 */ "c...c"
+ /* 5 */ "c...c"
+ /* 6 */ "accca"
// Level 6
/* z\x* 01234 */
/* 0 */ "....."
/* 1 */ "....."
- /* 2 */ "cdpdc"
- /* 3 */ "dfkkd"
- /* 4 */ "lkkkn"
- /* 5 */ "dkkkd"
- /* 6 */ "cdodc"
+ /* 2 */ "acica"
+ /* 3 */ "cg..c"
+ /* 4 */ "i...i"
+ /* 5 */ "c..jc"
+ /* 6 */ "acica"
// Level 7
/* z\x* 01234 */
/* 0 */ "....."
/* 1 */ "....."
- /* 2 */ "dqdqd"
- /* 3 */ "qr..q"
- /* 4 */ "d...d"
- /* 5 */ "q...q"
- /* 6 */ "dqdqd",
+ /* 2 */ "acqca"
+ /* 3 */ "cgllc"
+ /* 4 */ "nlllo"
+ /* 5 */ "clllc"
+ /* 6 */ "acpca"
+
+ // Level 8
+ /* z\x* 01234 */
+ /* 0 */ "....."
+ /* 1 */ "....."
+ /* 2 */ "crcrc"
+ /* 3 */ "rs..r"
+ /* 4 */ "c...c"
+ /* 5 */ "r...r"
+ /* 6 */ "crcrc",
// Connectors:
- "-1: 2, 1, 0: 2\n" /* Type -1, direction Z- */,
+ "-1: 2, 2, 0: 2\n" /* Type -1, direction Z- */,
// AllowedRotations:
7, /* 1, 2, 3 CCW rotation allowed */
@@ -2048,146 +2351,161 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// MediumHouse1:
// The data has been exported from the gallery Desert, area index 71, ID 561, created by STR_Warrior
{
// Size:
- 15, 8, 9, // SizeX = 15, SizeY = 8, SizeZ = 9
+ 15, 9, 9, // SizeX = 15, SizeY = 9, SizeZ = 9
// Hitbox (relative to bounding box):
-1, 0, 0, // MinX, MinY, MinZ
- 15, 7, 9, // MaxX, MaxY, MaxZ
+ 15, 8, 9, // MaxX, MaxY, MaxZ
// Block definitions:
".: 0: 0\n" /* air */
- "a: 12: 0\n" /* sand */
- "b: 5: 0\n" /* wood */
- "c: 24: 2\n" /* sandstone */
- "d: 24: 0\n" /* sandstone */
- "e: 64: 3\n" /* wooddoorblock */
- "f: 85: 0\n" /* fence */
- "g: 64: 0\n" /* wooddoorblock */
- "h: 65: 5\n" /* ladder */
- "i: 64: 8\n" /* wooddoorblock */
- "j:101: 0\n" /* ironbars */
- "k: 50: 4\n" /* torch */
- "l:128: 2\n" /* sandstonestairs */
+ "a: 24: 2\n" /* sandstone */
+ "b: 4: 0\n" /* cobblestone */
+ "c: 24: 0\n" /* sandstone */
+ "d: 13: 0\n" /* gravel */
+ "e: 5: 0\n" /* wood */
+ "f: 12: 0\n" /* sand */
+ "g: 64: 3\n" /* wooddoorblock */
+ "h: 85: 0\n" /* fence */
+ "i: 64: 0\n" /* wooddoorblock */
+ "j: 65: 5\n" /* ladder */
+ "k: 64: 8\n" /* wooddoorblock */
+ "l:101: 0\n" /* ironbars */
"m: 19: 0\n" /* sponge */
- "n:126: 8\n" /* woodenslab */
- "o:128: 4\n" /* sandstonestairs */
- "p:128: 7\n" /* sandstonestairs */
- "q: 44: 1\n" /* step */
- "r: 50: 3\n" /* torch */
- "s:128: 6\n" /* sandstonestairs */,
+ "n: 50: 4\n" /* torch */
+ "o:128: 2\n" /* sandstonestairs */
+ "p:126: 8\n" /* woodenslab */
+ "q:128: 4\n" /* sandstonestairs */
+ "r:128: 7\n" /* sandstonestairs */
+ "s: 44: 1\n" /* step */
+ "t: 50: 3\n" /* torch */
+ "u:128: 6\n" /* sandstonestairs */,
// Block data:
// Level 0
/* z\x* 11111 */
/* * 012345678901234 */
- /* 0 */ "aaaaaaaaaaaaaaa"
- /* 1 */ "aaaaaaaaaaaaaaa"
- /* 2 */ "aaaaabaaaaaaaaa"
- /* 3 */ "abbbbbbbbbaaaaa"
- /* 4 */ "abbbbbbbbbaaaaa"
- /* 5 */ "abbbbbbbbbbaaaa"
- /* 6 */ "abbbbbbbbbaaaaa"
- /* 7 */ "abbbbbbbbbaaaaa"
- /* 8 */ "aaaaaaaaaaaaaaa"
+ /* 0 */ "mmmabbbammmmmmm"
+ /* 1 */ "mmmmbbbmmmmmmmm"
+ /* 2 */ "acccccccccacccc"
+ /* 3 */ "ccccccccccccccc"
+ /* 4 */ "ccccccccccccccc"
+ /* 5 */ "ccccccccccccccc"
+ /* 6 */ "ccccccccccccccc"
+ /* 7 */ "ccccccccccccccc"
+ /* 8 */ "acccccccccacccc"
// Level 1
/* z\x* 11111 */
/* * 012345678901234 */
- /* 0 */ "...c...c......."
- /* 1 */ "..............."
- /* 2 */ "cddddeddddcffff"
- /* 3 */ "d.........d...f"
- /* 4 */ "d.........d...f"
- /* 5 */ "d.........g...f"
- /* 6 */ "d.........d...f"
- /* 7 */ "d.........dh..f"
- /* 8 */ "cdddddddddcffff"
+ /* 0 */ "mmmadddammmmmmm"
+ /* 1 */ "mmmmdddmmmmmmmm"
+ /* 2 */ "acccceccccaffff"
+ /* 3 */ "ceeeeeeeeecffff"
+ /* 4 */ "ceeeeeeeeecffff"
+ /* 5 */ "ceeeeeeeeeeffff"
+ /* 6 */ "ceeeeeeeeecffff"
+ /* 7 */ "ceeeeeeeeecffff"
+ /* 8 */ "acccccccccaffff"
// Level 2
/* z\x* 11111 */
/* * 012345678901234 */
- /* 0 */ "...c...c......."
- /* 1 */ "..............."
- /* 2 */ "cddddiddddc...."
- /* 3 */ "d.........d...."
- /* 4 */ "j.........d...."
- /* 5 */ "j.........i...."
- /* 6 */ "j.........d...."
- /* 7 */ "d..k...k..dh..."
- /* 8 */ "cdddjjjdddc...."
+ /* 0 */ "mmma...ammmmmmm"
+ /* 1 */ "mmm.....mmmmmmm"
+ /* 2 */ "accccgccccahhhh"
+ /* 3 */ "c.........c...h"
+ /* 4 */ "c.........c...h"
+ /* 5 */ "c.........i...h"
+ /* 6 */ "c.........c...h"
+ /* 7 */ "c.........cj..h"
+ /* 8 */ "acccccccccahhhh"
// Level 3
/* z\x* 11111 */
/* * 012345678901234 */
- /* 0 */ "...l...l......."
- /* 1 */ "...d...d......."
- /* 2 */ "cdddddddddc...."
- /* 3 */ "dnnnnnnnnnd...."
- /* 4 */ "onnnnnnnnnd...."
- /* 5 */ "onnnnnnnnnd...."
- /* 6 */ "onnnnnnnnnd...."
- /* 7 */ "dnnnnnnnnndh..."
- /* 8 */ "cdddpppdddc...."
+ /* 0 */ "mmma...ammmmmmm"
+ /* 1 */ "mmm.....mmmmmmm"
+ /* 2 */ "acccckcccca...."
+ /* 3 */ "c.........c...."
+ /* 4 */ "l.........c...."
+ /* 5 */ "l.........k...."
+ /* 6 */ "l.........c...."
+ /* 7 */ "c..n...n..cj..."
+ /* 8 */ "accclllccca...."
// Level 4
/* z\x* 11111 */
/* * 012345678901234 */
- /* 0 */ "..............."
- /* 1 */ "..............."
- /* 2 */ "dqqqqdqqqqd...."
- /* 3 */ "q..cdddc..q...."
- /* 4 */ "q..d...d..q...."
- /* 5 */ "d.........d...."
- /* 6 */ "q..d...d..q...."
- /* 7 */ "q..cdddc..q...."
- /* 8 */ "dqqqqdqqqqd...."
+ /* 0 */ "mmmo...ommmmmmm"
+ /* 1 */ "mmmc...cmmmmmmm"
+ /* 2 */ "accccccccca...."
+ /* 3 */ "cpppppppppc...."
+ /* 4 */ "qpppppppppc...."
+ /* 5 */ "qpppppppppc...."
+ /* 6 */ "qpppppppppc...."
+ /* 7 */ "cpppppppppcj..."
+ /* 8 */ "acccrrrccca...."
// Level 5
/* z\x* 11111 */
/* * 012345678901234 */
+ /* 0 */ "mmm.....mmmmmmm"
+ /* 1 */ "mmm.....mmmmmmm"
+ /* 2 */ "csssscssssc...."
+ /* 3 */ "s..accca..s...."
+ /* 4 */ "s..c...c..s...."
+ /* 5 */ "c.........c...."
+ /* 6 */ "s..c...c..s...."
+ /* 7 */ "s..accca..s...."
+ /* 8 */ "csssscssssc...."
+
+ // Level 6
+ /* z\x* 11111 */
+ /* * 012345678901234 */
/* 0 */ "..............."
/* 1 */ "..............."
/* 2 */ "..............."
- /* 3 */ "...cdjdc......."
- /* 4 */ "...dr..d......."
+ /* 3 */ "...aclca......."
+ /* 4 */ "...ct..c......."
/* 5 */ "..............."
- /* 6 */ "...d...d......."
- /* 7 */ "...cdjdc......."
+ /* 6 */ "...c...c......."
+ /* 7 */ "...aclca......."
/* 8 */ "..............."
- // Level 6
+ // Level 7
/* z\x* 11111 */
/* * 012345678901234 */
/* 0 */ "..............."
/* 1 */ "..............."
/* 2 */ "..............."
- /* 3 */ "...cdsdc......."
- /* 4 */ "...dnnnd......."
- /* 5 */ "...dnnnd......."
- /* 6 */ "...dnnnd......."
- /* 7 */ "...cdpdc......."
+ /* 3 */ "...acuca......."
+ /* 4 */ "...cpppc......."
+ /* 5 */ "...cpppc......."
+ /* 6 */ "...cpppc......."
+ /* 7 */ "...acrca......."
/* 8 */ "..............."
- // Level 7
+ // Level 8
/* z\x* 11111 */
/* * 012345678901234 */
/* 0 */ "..............."
/* 1 */ "..............."
/* 2 */ "..............."
- /* 3 */ "...dqdqd......."
- /* 4 */ "...q...q......."
- /* 5 */ "...d...d......."
- /* 6 */ "...q...q......."
- /* 7 */ "...dqdqd......."
+ /* 3 */ "...cscsc......."
+ /* 4 */ "...s...s......."
+ /* 5 */ "...c...c......."
+ /* 6 */ "...s...s......."
+ /* 7 */ "...cscsc......."
/* 8 */ "...............",
// Connectors:
- "-1: 5, 1, 0: 2\n" /* Type -1, direction Z- */,
+ "-1: 5, 2, 0: 2\n" /* Type -1, direction Z- */,
// AllowedRotations:
7, /* 1, 2, 3 CCW rotation allowed */
@@ -2213,135 +2531,150 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// MediumHouse2:
// The data has been exported from the gallery Desert, area index 74, ID 573, created by STR_Warrior
{
// Size:
- 11, 9, 9, // SizeX = 11, SizeY = 9, SizeZ = 9
+ 11, 10, 9, // SizeX = 11, SizeY = 10, SizeZ = 9
// Hitbox (relative to bounding box):
-1, 0, 0, // MinX, MinY, MinZ
- 11, 8, 9, // MaxX, MaxY, MaxZ
+ 11, 9, 9, // MaxX, MaxY, MaxZ
// Block definitions:
".: 0: 0\n" /* air */
- "A: 96: 3\n" /* trapdoor */
- "B: 96: 6\n" /* trapdoor */
- "C:128: 2\n" /* sandstonestairs */
- "D:128: 0\n" /* sandstonestairs */
- "E: 87: 0\n" /* netherstone */
- "F:128: 1\n" /* sandstonestairs */
- "G:128: 3\n" /* sandstonestairs */
- "H: 51: 0\n" /* fire */
- "I: 44: 9\n" /* step */
- "a: 12: 0\n" /* sand */
- "b: 5: 0\n" /* wood */
- "c: 24: 2\n" /* sandstone */
- "d: 24: 0\n" /* sandstone */
- "e: 65: 3\n" /* ladder */
- "f: 85: 0\n" /* fence */
- "g: 64: 7\n" /* wooddoorblock */
- "h:134: 1\n" /* 134 */
- "i:134: 2\n" /* 134 */
- "j: 61: 2\n" /* furnace */
- "k:134: 6\n" /* 134 */
- "l:134: 4\n" /* 134 */
+ "A:128: 7\n" /* sandstonestairs */
+ "B: 44: 1\n" /* step */
+ "C: 96: 3\n" /* trapdoor */
+ "D: 96: 2\n" /* trapdoor */
+ "E:128: 2\n" /* sandstonestairs */
+ "F:128: 0\n" /* sandstonestairs */
+ "G: 87: 0\n" /* netherstone */
+ "H:128: 1\n" /* sandstonestairs */
+ "I:128: 3\n" /* sandstonestairs */
+ "J: 51: 0\n" /* fire */
+ "K: 44: 9\n" /* step */
+ "a: 24: 2\n" /* sandstone */
+ "b: 24: 0\n" /* sandstone */
+ "c: 4: 0\n" /* cobblestone */
+ "d: 12: 0\n" /* sand */
+ "e: 13: 0\n" /* gravel */
+ "f: 5: 0\n" /* wood */
+ "g: 65: 3\n" /* ladder */
+ "h: 85: 0\n" /* fence */
+ "i: 64: 3\n" /* wooddoorblock */
+ "j:134: 1\n" /* 134 */
+ "k:134: 2\n" /* 134 */
+ "l: 61: 2\n" /* furnace */
"m: 19: 0\n" /* sponge */
- "n: 65: 2\n" /* ladder */
- "o:101: 0\n" /* ironbars */
- "p: 50: 2\n" /* torch */
- "q: 47: 0\n" /* bookshelf */
- "r: 64:12\n" /* wooddoorblock */
- "s: 50: 3\n" /* torch */
- "t:171: 8\n" /* carpet */
- "u:128: 6\n" /* sandstonestairs */
- "v:126: 8\n" /* woodenslab */
- "w:128: 5\n" /* sandstonestairs */
- "x:128: 4\n" /* sandstonestairs */
- "y:128: 7\n" /* sandstonestairs */
- "z: 44: 1\n" /* step */,
+ "n:134: 6\n" /* 134 */
+ "o:134: 4\n" /* 134 */
+ "p: 65: 2\n" /* ladder */
+ "q:101: 0\n" /* ironbars */
+ "r: 50: 2\n" /* torch */
+ "s: 47: 0\n" /* bookshelf */
+ "t: 64: 8\n" /* wooddoorblock */
+ "u: 50: 3\n" /* torch */
+ "v:171: 8\n" /* carpet */
+ "w:128: 6\n" /* sandstonestairs */
+ "x:126: 8\n" /* woodenslab */
+ "y:128: 5\n" /* sandstonestairs */
+ "z:128: 4\n" /* sandstonestairs */,
// Block data:
// Level 0
/* z\x* 1 */
/* * 01234567890 */
- /* 0 */ "aaaaaaaaaaa"
- /* 1 */ "abbbaaaaaaa"
- /* 2 */ "abbbaaaaaaa"
- /* 3 */ "abbbaaaaaaa"
- /* 4 */ "abbbaaaabaa"
- /* 5 */ "abbbbbbbbba"
- /* 6 */ "abbbbbbbbba"
- /* 7 */ "abbbbbbbbba"
- /* 8 */ "aaaaaaaaaaa"
+ /* 0 */ "abbbammmcmm"
+ /* 1 */ "bbbbbdddcdm"
+ /* 2 */ "bbbbbmmmcdm"
+ /* 3 */ "bbbbbmmmcdm"
+ /* 4 */ "bbbbabbbbba"
+ /* 5 */ "bbbbbbbbbbb"
+ /* 6 */ "bbbbbbbbbbb"
+ /* 7 */ "bbbbbbbbbbb"
+ /* 8 */ "abbbbbbbbba"
// Level 1
/* z\x* 1 */
/* * 01234567890 */
- /* 0 */ "cdddc......"
- /* 1 */ "de..dfff.f."
- /* 2 */ "d...d....f."
- /* 3 */ "d...d....f."
- /* 4 */ "d...ddddgdc"
- /* 5 */ "d.........d"
- /* 6 */ "dhf.......d"
- /* 7 */ "dhi.jkl..nd"
- /* 8 */ "cdddddddddc"
+ /* 0 */ "abbbammmemm"
+ /* 1 */ "bfffbdddedm"
+ /* 2 */ "bfffbmmmedm"
+ /* 3 */ "bfffbmmmedm"
+ /* 4 */ "bfffabbbfba"
+ /* 5 */ "bfffffffffb"
+ /* 6 */ "bfffffffffb"
+ /* 7 */ "bfffffffffb"
+ /* 8 */ "abbbbbbbbba"
// Level 2
/* z\x* 1 */
/* * 01234567890 */
- /* 0 */ "cdodc......"
- /* 1 */ "de..o......"
- /* 2 */ "d...o......"
- /* 3 */ "o..pd......"
- /* 4 */ "o...qdodrdc"
- /* 5 */ "o......s..d"
- /* 6 */ "d.t.......o"
- /* 7 */ "d........nd"
- /* 8 */ "cdddooodddc"
+ /* 0 */ "abbba......"
+ /* 1 */ "bg..bhhh.h."
+ /* 2 */ "b...b....h."
+ /* 3 */ "b...b....h."
+ /* 4 */ "b...abbbiba"
+ /* 5 */ "b.........b"
+ /* 6 */ "bjh.......b"
+ /* 7 */ "bjk.lno..pb"
+ /* 8 */ "abbbbbbbbba"
// Level 3
/* z\x* 1 */
/* * 01234567890 */
- /* 0 */ "cdudc......"
- /* 1 */ "devvw......"
- /* 2 */ "dvvvw......"
- /* 3 */ "xvvvd......"
- /* 4 */ "xvvvddudddc"
- /* 5 */ "xvvvvvvvvvd"
- /* 6 */ "dvvvvvvvvvw"
- /* 7 */ "dvvvqqqvvnd"
- /* 8 */ "cdddyyydddc"
+ /* 0 */ "abqba......"
+ /* 1 */ "bg..q......"
+ /* 2 */ "b...q......"
+ /* 3 */ "q..rb......"
+ /* 4 */ "q...sbqbtba"
+ /* 5 */ "q......u..b"
+ /* 6 */ "b.v.......q"
+ /* 7 */ "b........pb"
+ /* 8 */ "abbbqqqbbba"
// Level 4
/* z\x* 1 */
/* * 01234567890 */
- /* 0 */ "dzzzd......"
- /* 1 */ "zA..z......"
- /* 2 */ "z...z......"
- /* 3 */ "z...z......"
- /* 4 */ "d...dzzzzzd"
- /* 5 */ "zddd......z"
- /* 6 */ "zddd......z"
- /* 7 */ "zddd.....Bz"
- /* 8 */ "dzzzzdzzzzd"
+ /* 0 */ "abwba......"
+ /* 1 */ "bgxxy......"
+ /* 2 */ "bxxxy......"
+ /* 3 */ "zxxxb......"
+ /* 4 */ "zxxxabwbbba"
+ /* 5 */ "zxxxxxxxxxb"
+ /* 6 */ "bxxxxxxxxxy"
+ /* 7 */ "bxxxsssxxpb"
+ /* 8 */ "abbbAAAbbba"
// Level 5
/* z\x* 1 */
/* * 01234567890 */
+ /* 0 */ "bBBBb......"
+ /* 1 */ "BC..B......"
+ /* 2 */ "B...B......"
+ /* 3 */ "B...B......"
+ /* 4 */ "b...bBBBBBb"
+ /* 5 */ "Bbbb......B"
+ /* 6 */ "Bbbb......B"
+ /* 7 */ "Bbbb.....DB"
+ /* 8 */ "bBBBBbBBBBb"
+
+ // Level 6
+ /* z\x* 1 */
+ /* * 01234567890 */
/* 0 */ "..........."
/* 1 */ "..........."
/* 2 */ "..........."
/* 3 */ "..........."
/* 4 */ "..........."
- /* 5 */ ".cCc......."
- /* 6 */ ".DEF......."
- /* 7 */ ".cGc......."
+ /* 5 */ ".aEa......."
+ /* 6 */ ".FGH......."
+ /* 7 */ ".aIa......."
/* 8 */ "..........."
- // Level 6
+ // Level 7
/* z\x* 1 */
/* * 01234567890 */
/* 0 */ "..........."
@@ -2349,12 +2682,12 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
/* 2 */ "..........."
/* 3 */ "..........."
/* 4 */ "..........."
- /* 5 */ ".c.c......."
- /* 6 */ "..H........"
- /* 7 */ ".c.c......."
+ /* 5 */ ".a.a......."
+ /* 6 */ "..J........"
+ /* 7 */ ".a.a......."
/* 8 */ "..........."
- // Level 7
+ // Level 8
/* z\x* 1 */
/* * 01234567890 */
/* 0 */ "..........."
@@ -2362,12 +2695,12 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
/* 2 */ "..........."
/* 3 */ "..........."
/* 4 */ "..........."
- /* 5 */ ".ddd......."
- /* 6 */ ".dId......."
- /* 7 */ ".ddd......."
+ /* 5 */ ".bbb......."
+ /* 6 */ ".bKb......."
+ /* 7 */ ".bbb......."
/* 8 */ "..........."
- // Level 8
+ // Level 9
/* z\x* 1 */
/* * 01234567890 */
/* 0 */ "..........."
@@ -2375,13 +2708,13 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
/* 2 */ "..........."
/* 3 */ "..........."
/* 4 */ "..........."
- /* 5 */ ".z.z......."
+ /* 5 */ ".B.B......."
/* 6 */ "..........."
- /* 7 */ ".z.z......."
+ /* 7 */ ".B.B......."
/* 8 */ "...........",
// Connectors:
- "-1: 8, 1, 0: 2\n" /* Type -1, direction Z- */,
+ "-1: 8, 2, 0: 2\n" /* Type -1, direction Z- */,
// AllowedRotations:
7, /* 1, 2, 3 CCW rotation allowed */
@@ -2407,7 +2740,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// MediumHouse3:
// The data has been exported from the gallery Desert, area index 76, ID 575, created by STR_Warrior
{
@@ -2420,30 +2753,30 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
// Block definitions:
".: 0: 0\n" /* air */
- "a: 12: 0\n" /* sand */
- "b: 3: 0\n" /* dirt */
- "c: 2: 0\n" /* grass */
- "d: 5: 0\n" /* wood */
- "e: 24: 0\n" /* sandstone */
- "f: 24: 2\n" /* sandstone */
- "g: 85: 0\n" /* fence */
- "h: 64: 3\n" /* wooddoorblock */
- "i: 64: 6\n" /* wooddoorblock */
- "j: 65: 4\n" /* ladder */
- "k: 65: 2\n" /* ladder */
- "l: 50: 1\n" /* torch */
+ "a: 24: 2\n" /* sandstone */
+ "b: 4: 0\n" /* cobblestone */
+ "c: 3: 0\n" /* dirt */
+ "d: 24: 0\n" /* sandstone */
+ "e: 13: 0\n" /* gravel */
+ "f: 2: 0\n" /* grass */
+ "g: 5: 0\n" /* wood */
+ "h: 85: 0\n" /* fence */
+ "i: 64: 3\n" /* wooddoorblock */
+ "j: 64: 2\n" /* wooddoorblock */
+ "k: 65: 4\n" /* ladder */
+ "l: 65: 2\n" /* ladder */
"m: 19: 0\n" /* sponge */
- "n: 50: 2\n" /* torch */
- "o:101: 0\n" /* ironbars */
- "p: 64: 8\n" /* wooddoorblock */
- "q: 64:12\n" /* wooddoorblock */
+ "n: 50: 1\n" /* torch */
+ "o: 50: 2\n" /* torch */
+ "p:101: 0\n" /* ironbars */
+ "q: 64: 8\n" /* wooddoorblock */
"r:128: 2\n" /* sandstonestairs */
"s:128: 6\n" /* sandstonestairs */
"t:126: 8\n" /* woodenslab */
"u:128: 5\n" /* sandstonestairs */
"v:128: 7\n" /* sandstonestairs */
"w: 44: 1\n" /* step */
- "x: 96: 4\n" /* trapdoor */
+ "x: 96: 0\n" /* trapdoor */
"y:126: 0\n" /* woodenslab */
"z:128: 4\n" /* sandstonestairs */,
@@ -2451,92 +2784,92 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
// Level 0
/* z\x* 11 */
/* * 012345678901 */
- /* 0 */ "aaaaaaaaaaaa"
- /* 1 */ "aaaaaaaaaaaa"
- /* 2 */ "bbbbbaaaaaaa"
- /* 3 */ "bbbbbaaaaaaa"
- /* 4 */ "bbbbbaaaaaaa"
- /* 5 */ "bbbbbaaaaaaa"
- /* 6 */ "bbbaaaaaaaaa"
- /* 7 */ "aaaaaaaaaaaa"
- /* 8 */ "aaaaaaaaaaaa"
- /* 9 */ "aaaaaaaaaaaa"
- /* 10 */ "aaaaaaaaaaaa"
+ /* 0 */ "mmmmmammbbba"
+ /* 1 */ "mmmmmmmmbbbm"
+ /* 2 */ "cccccaddddda"
+ /* 3 */ "cccccddddddd"
+ /* 4 */ "cccccddddddd"
+ /* 5 */ "cccccddddddd"
+ /* 6 */ "cccddddddddd"
+ /* 7 */ "mmmddddddddd"
+ /* 8 */ "mmmdddddddda"
+ /* 9 */ "mmmdddddmmmm"
+ /* 10 */ "mmmadddammmm"
// Level 1
/* z\x* 11 */
/* * 012345678901 */
- /* 0 */ "aaaaaaaaaaaa"
- /* 1 */ "aaaaaaaaaaaa"
- /* 2 */ "cccccaaaadaa"
- /* 3 */ "cccccaddddda"
- /* 4 */ "cccccdddddda"
- /* 5 */ "cccccaddddda"
- /* 6 */ "cccaadddddda"
- /* 7 */ "aaaaddddddda"
- /* 8 */ "aaaadddaaaaa"
- /* 9 */ "aaaadddaaaaa"
- /* 10 */ "aaaaaaaaaaaa"
+ /* 0 */ "mmmmmammeeea"
+ /* 1 */ "mmmmmmmmeeem"
+ /* 2 */ "fffffadddgda"
+ /* 3 */ "fffffdgggggd"
+ /* 4 */ "fffffggggggd"
+ /* 5 */ "fffffdgggggd"
+ /* 6 */ "fffddggggggd"
+ /* 7 */ "mmmdgggggggd"
+ /* 8 */ "mmmdggggddda"
+ /* 9 */ "mmmdgggdmmmm"
+ /* 10 */ "mmmadddammmm"
// Level 2
/* z\x* 11 */
/* * 012345678901 */
- /* 0 */ ".....e.....f"
- /* 1 */ "............"
- /* 2 */ "gggggfeeehef"
- /* 3 */ "g....e.....e"
- /* 4 */ "g....i.....e"
- /* 5 */ "g....e.....e"
- /* 6 */ "gggfe......e"
- /* 7 */ "mmme......je"
- /* 8 */ "mmme...eeeef"
- /* 9 */ "mmme..kemmmm"
- /* 10 */ "mmmfeeefmmmm"
+ /* 0 */ "mmmmma.....a"
+ /* 1 */ "mmmmm......."
+ /* 2 */ "hhhhhadddida"
+ /* 3 */ "h....d.....d"
+ /* 4 */ "h....j.....d"
+ /* 5 */ "h....d.....d"
+ /* 6 */ "hhhad......d"
+ /* 7 */ "mmmd......kd"
+ /* 8 */ "mmmd....ddda"
+ /* 9 */ "mmmd..ldmmmm"
+ /* 10 */ "mmmadddammmm"
// Level 3
/* z\x* 11 */
/* * 012345678901 */
- /* 0 */ ".....el...nf"
- /* 1 */ "............"
- /* 2 */ ".....fooepef"
- /* 3 */ ".....e.....e"
- /* 4 */ ".....q.....e"
- /* 5 */ ".....e.....o"
- /* 6 */ "...ge......e"
- /* 7 */ "mmme......je"
- /* 8 */ "mmme...eeoof"
- /* 9 */ "mmme..kemmmm"
- /* 10 */ "mmmgeeegmmmm"
+ /* 0 */ "mmmmman...oa"
+ /* 1 */ "mmmmm......."
+ /* 2 */ ".....appdqda"
+ /* 3 */ ".....d.....d"
+ /* 4 */ ".....q.....d"
+ /* 5 */ ".....d.....p"
+ /* 6 */ "...hd......d"
+ /* 7 */ "mmmd......kd"
+ /* 8 */ "mmmd....dppa"
+ /* 9 */ "mmmd..ldmmmm"
+ /* 10 */ "mmmhdddhmmmm"
// Level 4
/* z\x* 11 */
/* * 012345678901 */
- /* 0 */ ".....r.....r"
- /* 1 */ ".....e.....e"
- /* 2 */ ".....fsseeef"
- /* 3 */ ".....ettttte"
- /* 4 */ ".....ettttte"
- /* 5 */ ".....etttttu"
- /* 6 */ "...getttttte"
- /* 7 */ "mmmettttttje"
- /* 8 */ "mmmettteevvf"
- /* 9 */ "mmmettkemmmm"
- /* 10 */ "mmmgeeegmmmm"
+ /* 0 */ "mmmmmr.....r"
+ /* 1 */ "mmmmmd.....d"
+ /* 2 */ ".....assddda"
+ /* 3 */ ".....dtttttd"
+ /* 4 */ ".....dtttttd"
+ /* 5 */ ".....dtttttu"
+ /* 6 */ "...hdatttttd"
+ /* 7 */ "mmmdttttttkd"
+ /* 8 */ "mmmdtttadvva"
+ /* 9 */ "mmmdttldmmmm"
+ /* 10 */ "mmmhdddhmmmm"
// Level 5
/* z\x* 11 */
/* * 012345678901 */
/* 0 */ "............"
/* 1 */ "............"
- /* 2 */ ".....ewwewwe"
+ /* 2 */ ".....dwwdwwd"
/* 3 */ ".....w.....w"
/* 4 */ ".....w.....w"
- /* 5 */ ".....w.....e"
- /* 6 */ "...geeeg...w"
- /* 7 */ "mmme...e..xw"
- /* 8 */ "mmme...ewwwe"
- /* 9 */ "mmme..kemmmm"
- /* 10 */ "mmmgeeegmmmm"
+ /* 5 */ ".....w.....d"
+ /* 6 */ "...hdadh...w"
+ /* 7 */ "mmmd...d..xw"
+ /* 8 */ "mmmd...awwwd"
+ /* 9 */ "mmmd..ldmmmm"
+ /* 10 */ "mmmhdddhmmmm"
// Level 6
/* z\x* 11 */
@@ -2547,11 +2880,11 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
/* 3 */ "............"
/* 4 */ "............"
/* 5 */ "............"
- /* 6 */ "...ge.eg...."
- /* 7 */ "mmme...e...."
- /* 8 */ "mmmo........"
- /* 9 */ "mmme..kemmmm"
- /* 10 */ "mmmgeoegmmmm"
+ /* 6 */ "...hd.dh...."
+ /* 7 */ "mmmd...d...."
+ /* 8 */ "mmmp........"
+ /* 9 */ "mmmd..ldmmmm"
+ /* 10 */ "mmmhdpdhmmmm"
// Level 7
/* z\x* 11 */
@@ -2562,11 +2895,11 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
/* 3 */ "............"
/* 4 */ "............"
/* 5 */ "............"
- /* 6 */ "...ge.eg...."
- /* 7 */ "mmme...e...."
- /* 8 */ "mmmo........"
- /* 9 */ "mmmel.kemmmm"
- /* 10 */ "mmmgeoegmmmm"
+ /* 6 */ "...hd.dh...."
+ /* 7 */ "mmmd...d...."
+ /* 8 */ "mmmp........"
+ /* 9 */ "mmmdn.ldmmmm"
+ /* 10 */ "mmmhdpdhmmmm"
// Level 8
/* z\x* 11 */
@@ -2577,11 +2910,11 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
/* 3 */ "............"
/* 4 */ "............"
/* 5 */ "............"
- /* 6 */ "...fesef...."
- /* 7 */ "mmmeyyye...."
+ /* 6 */ "...adsda...."
+ /* 7 */ "mmmdyyyd...."
/* 8 */ "mmmzyyyu...."
- /* 9 */ "mmmeyykemmmm"
- /* 10 */ "mmmfevefmmmm"
+ /* 9 */ "mmmdyyldmmmm"
+ /* 10 */ "mmmadvdammmm"
// Level 9
/* z\x* 11 */
@@ -2625,112 +2958,127 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// SmallHouse9:
// The data has been exported from the gallery Desert, area index 67, ID 556, created by STR_Warrior
{
// Size:
- 9, 5, 11, // SizeX = 9, SizeY = 5, SizeZ = 11
+ 9, 6, 11, // SizeX = 9, SizeY = 6, SizeZ = 11
// Hitbox (relative to bounding box):
-1, 0, 0, // MinX, MinY, MinZ
- 9, 4, 11, // MaxX, MaxY, MaxZ
+ 9, 5, 11, // MaxX, MaxY, MaxZ
// Block definitions:
".: 0: 0\n" /* air */
- "a: 12: 0\n" /* sand */
- "b: 5: 0\n" /* wood */
- "c: 24: 2\n" /* sandstone */
- "d: 24: 0\n" /* sandstone */
- "e: 64: 7\n" /* wooddoorblock */
- "f: 65: 2\n" /* ladder */
- "g: 64:12\n" /* wooddoorblock */
- "h:101: 0\n" /* ironbars */
- "i: 50: 2\n" /* torch */
- "j: 50: 1\n" /* torch */
- "k:128: 2\n" /* sandstonestairs */
- "l:126: 8\n" /* woodenslab */
+ "a: 24: 2\n" /* sandstone */
+ "b: 4: 0\n" /* cobblestone */
+ "c: 24: 0\n" /* sandstone */
+ "d: 13: 0\n" /* gravel */
+ "e: 5: 0\n" /* wood */
+ "f: 64: 3\n" /* wooddoorblock */
+ "g: 65: 2\n" /* ladder */
+ "h: 64: 8\n" /* wooddoorblock */
+ "i:101: 0\n" /* ironbars */
+ "j: 50: 2\n" /* torch */
+ "k: 50: 1\n" /* torch */
+ "l:128: 2\n" /* sandstonestairs */
"m: 19: 0\n" /* sponge */
- "n:128: 5\n" /* sandstonestairs */
- "o:128: 6\n" /* sandstonestairs */
- "p:128: 4\n" /* sandstonestairs */
- "q:128: 7\n" /* sandstonestairs */
- "r: 44: 1\n" /* step */
- "s: 96: 6\n" /* trapdoor */,
+ "n:126: 8\n" /* woodenslab */
+ "o:128: 5\n" /* sandstonestairs */
+ "p:128: 6\n" /* sandstonestairs */
+ "q:128: 4\n" /* sandstonestairs */
+ "r:128: 7\n" /* sandstonestairs */
+ "s: 44: 1\n" /* step */
+ "t: 96: 2\n" /* trapdoor */,
// Block data:
// Level 0
/* z\x* 012345678 */
- /* 0 */ "aaaaaaaaa"
- /* 1 */ "aaaaaaaaa"
- /* 2 */ "aaaaaabaa"
- /* 3 */ "aaaaabbba"
- /* 4 */ "aaaaabbba"
- /* 5 */ "aaaaabbba"
- /* 6 */ "aaaaabbba"
- /* 7 */ "abbbbbbba"
- /* 8 */ "abbbbbbba"
- /* 9 */ "abbbbbbba"
- /* 10 */ "aaaaaaaaa"
+ /* 0 */ "mmmmabbba"
+ /* 1 */ "mmmmmbbbm"
+ /* 2 */ "mmmmaccca"
+ /* 3 */ "mmmmccccc"
+ /* 4 */ "mmmmccccc"
+ /* 5 */ "mmmmccccc"
+ /* 6 */ "acccacccc"
+ /* 7 */ "ccccccccc"
+ /* 8 */ "ccccccccc"
+ /* 9 */ "ccccccccc"
+ /* 10 */ "accccccca"
// Level 1
/* z\x* 012345678 */
- /* 0 */ "mmmmc...c"
- /* 1 */ "mmmm....."
- /* 2 */ "mmmmcdedc"
- /* 3 */ "mmmmd...d"
- /* 4 */ "mmmmd...d"
- /* 5 */ "mmmmd...d"
- /* 6 */ "cdddd...d"
- /* 7 */ "d.......d"
- /* 8 */ "d.......d"
- /* 9 */ "d......fd"
- /* 10 */ "cdddddddc"
+ /* 0 */ "mmmmaddda"
+ /* 1 */ "mmmmmdddm"
+ /* 2 */ "mmmmaceca"
+ /* 3 */ "mmmmceeec"
+ /* 4 */ "mmmmceeec"
+ /* 5 */ "mmmmceeec"
+ /* 6 */ "acccaeeec"
+ /* 7 */ "ceeeeeeec"
+ /* 8 */ "ceeeeeeec"
+ /* 9 */ "ceeeeeeec"
+ /* 10 */ "accccccca"
// Level 2
/* z\x* 012345678 */
- /* 0 */ "mmmmc...c"
+ /* 0 */ "mmmma...a"
/* 1 */ "mmmm....."
- /* 2 */ "mmmmcdgdc"
- /* 3 */ "mmmmd...d"
- /* 4 */ "mmmmd...d"
- /* 5 */ "mmmmd...h"
- /* 6 */ "cdhdd...h"
- /* 7 */ "d.......h"
- /* 8 */ "h......id"
- /* 9 */ "dj.....fd"
- /* 10 */ "cddhhhddc"
+ /* 2 */ "mmmmacfca"
+ /* 3 */ "mmmmc...c"
+ /* 4 */ "mmmmc...c"
+ /* 5 */ "mmmmc...c"
+ /* 6 */ "accca...c"
+ /* 7 */ "c.......c"
+ /* 8 */ "c.......c"
+ /* 9 */ "c......gc"
+ /* 10 */ "accccccca"
// Level 3
/* z\x* 012345678 */
- /* 0 */ "mmmmk...k"
- /* 1 */ "mmmmd...d"
- /* 2 */ "mmmmcdddc"
- /* 3 */ "mmmmdllld"
- /* 4 */ "mmmmdllld"
- /* 5 */ "mmmmdllln"
- /* 6 */ "cdoddllln"
- /* 7 */ "dllllllln"
- /* 8 */ "pllllllld"
- /* 9 */ "dllllllfd"
- /* 10 */ "cddqqqddc"
+ /* 0 */ "mmmma...a"
+ /* 1 */ "mmmm....."
+ /* 2 */ "mmmmachca"
+ /* 3 */ "mmmmc...c"
+ /* 4 */ "mmmmc...c"
+ /* 5 */ "mmmmc...i"
+ /* 6 */ "acica...i"
+ /* 7 */ "c.......i"
+ /* 8 */ "i......jc"
+ /* 9 */ "ck.....gc"
+ /* 10 */ "acciiicca"
// Level 4
/* z\x* 012345678 */
+ /* 0 */ "mmmml...l"
+ /* 1 */ "mmmmc...c"
+ /* 2 */ "mmmmaccca"
+ /* 3 */ "mmmmcnnnc"
+ /* 4 */ "mmmmcnnnc"
+ /* 5 */ "mmmmcnnno"
+ /* 6 */ "acpcannno"
+ /* 7 */ "cnnnnnnno"
+ /* 8 */ "qnnnnnnnc"
+ /* 9 */ "cnnnnnngc"
+ /* 10 */ "accrrrcca"
+
+ // Level 5
+ /* z\x* 012345678 */
/* 0 */ "mmmm....."
/* 1 */ "mmmm....."
- /* 2 */ "mmmmdrdrd"
- /* 3 */ "mmmmr...r"
- /* 4 */ "mmmmr...r"
- /* 5 */ "mmmmr...r"
- /* 6 */ "drrrd...d"
- /* 7 */ "r.......r"
- /* 8 */ "r.......r"
- /* 9 */ "r......sr"
- /* 10 */ "drrrdrrrd",
+ /* 2 */ "mmmmcscsc"
+ /* 3 */ "mmmms...s"
+ /* 4 */ "mmmms...s"
+ /* 5 */ "mmmms...s"
+ /* 6 */ "csssc...c"
+ /* 7 */ "s.......s"
+ /* 8 */ "s.......s"
+ /* 9 */ "s......ts"
+ /* 10 */ "cssscsssc",
// Connectors:
- "-1: 6, 1, 0: 2\n" /* Type -1, direction Z- */,
+ "-1: 6, 2, 0: 2\n" /* Type -1, direction Z- */,
// AllowedRotations:
7, /* 1, 2, 3 CCW rotation allowed */
@@ -2756,167 +3104,181 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// Temple:
// The data has been exported from the gallery Desert, area index 83, ID 599, created by STR_Warrior
{
// Size:
- 13, 9, 9, // SizeX = 13, SizeY = 9, SizeZ = 9
+ 13, 10, 9, // SizeX = 13, SizeY = 10, SizeZ = 9
// Hitbox (relative to bounding box):
-1, 0, 0, // MinX, MinY, MinZ
- 13, 8, 9, // MaxX, MaxY, MaxZ
+ 13, 9, 9, // MaxX, MaxY, MaxZ
// Block definitions:
".: 0: 0\n" /* air */
- "A: 44: 9\n" /* step */
- "a: 12: 0\n" /* sand */
- "b: 5: 0\n" /* wood */
- "c: 24: 2\n" /* sandstone */
- "d: 24: 0\n" /* sandstone */
- "e: 64: 7\n" /* wooddoorblock */
- "f: 17: 0\n" /* tree */
- "g:128: 5\n" /* sandstonestairs */
- "h:128: 4\n" /* sandstonestairs */
- "i:128: 7\n" /* sandstonestairs */
- "j:128: 6\n" /* sandstonestairs */
- "k:118: 3\n" /* cauldronblock */
- "l:155: 1\n" /* quartzblock */
+ "A: 51: 0\n" /* fire */
+ "B: 44: 9\n" /* step */
+ "a: 24: 2\n" /* sandstone */
+ "b: 4: 0\n" /* cobblestone */
+ "c: 24: 0\n" /* sandstone */
+ "d: 13: 0\n" /* gravel */
+ "e: 5: 0\n" /* wood */
+ "f: 64: 3\n" /* wooddoorblock */
+ "g: 17: 0\n" /* tree */
+ "h:128: 5\n" /* sandstonestairs */
+ "i:128: 4\n" /* sandstonestairs */
+ "j:128: 7\n" /* sandstonestairs */
+ "k:128: 6\n" /* sandstonestairs */
+ "l:118: 3\n" /* cauldronblock */
"m: 19: 0\n" /* sponge */
- "n: 64:12\n" /* wooddoorblock */
- "o: 50: 3\n" /* torch */
- "p:101: 0\n" /* ironbars */
- "q:140: 0\n" /* flowerpotblock */
- "r: 24: 1\n" /* sandstone */
- "s:128: 2\n" /* sandstonestairs */
- "t:126: 8\n" /* woodenslab */
- "u: 44: 1\n" /* step */
- "v:128: 0\n" /* sandstonestairs */
- "w: 87: 0\n" /* netherstone */
- "x:128: 1\n" /* sandstonestairs */
- "y:128: 3\n" /* sandstonestairs */
- "z: 51: 0\n" /* fire */,
+ "n:155: 1\n" /* quartzblock */
+ "o: 64: 8\n" /* wooddoorblock */
+ "p: 50: 3\n" /* torch */
+ "q:101: 0\n" /* ironbars */
+ "r:140: 0\n" /* flowerpotblock */
+ "s: 24: 1\n" /* sandstone */
+ "t:128: 2\n" /* sandstonestairs */
+ "u:126: 8\n" /* woodenslab */
+ "v: 44: 1\n" /* step */
+ "w:128: 0\n" /* sandstonestairs */
+ "x: 87: 0\n" /* netherstone */
+ "y:128: 1\n" /* sandstonestairs */
+ "z:128: 3\n" /* sandstonestairs */,
// Block data:
// Level 0
/* z\x* 111 */
/* * 0123456789012 */
- /* 0 */ "aaaaaaaaaaaaa"
- /* 1 */ "aaaaaaaaaaaaa"
- /* 2 */ "aaabbababbaaa"
- /* 3 */ "abbbbbbbbbbba"
- /* 4 */ "abbbbbbbbbbba"
- /* 5 */ "abbbbbbbbbbba"
- /* 6 */ "abbbbbbbbbbba"
- /* 7 */ "abbbbbbbbbbba"
- /* 8 */ "aaaaaaaaaaaaa"
+ /* 0 */ "mmmmabbbammmm"
+ /* 1 */ "mmmmmbbbmmmmm"
+ /* 2 */ "accccccccccca"
+ /* 3 */ "ccccccccccccc"
+ /* 4 */ "ccccccccccccc"
+ /* 5 */ "ccccccccccccc"
+ /* 6 */ "ccccccccccccc"
+ /* 7 */ "ccccccccccccc"
+ /* 8 */ "accccccccccca"
// Level 1
/* z\x* 111 */
/* * 0123456789012 */
- /* 0 */ "....c...c...."
- /* 1 */ "............."
- /* 2 */ "cdddddedddddc"
- /* 3 */ "dfg.......hfd"
- /* 4 */ "di.........id"
- /* 5 */ "d...........d"
- /* 6 */ "dj.........jd"
- /* 7 */ "dfg.khlgk.hfd"
- /* 8 */ "cdddddddddddc"
+ /* 0 */ "mmmmadddammmm"
+ /* 1 */ "mmmmmdddmmmmm"
+ /* 2 */ "accccceccccca"
+ /* 3 */ "ceeeeeeeeeeec"
+ /* 4 */ "ceeeeeeeeeeec"
+ /* 5 */ "ceeeeeeeeeeec"
+ /* 6 */ "ceeeeeeeeeeec"
+ /* 7 */ "ceeeeeeeeeeec"
+ /* 8 */ "accccccccccca"
// Level 2
/* z\x* 111 */
/* * 0123456789012 */
- /* 0 */ "....c...c...."
- /* 1 */ "............."
- /* 2 */ "cdddddndddddc"
- /* 3 */ "df...o.o...fd"
- /* 4 */ "d...........d"
- /* 5 */ "p...........p"
- /* 6 */ "d...........d"
- /* 7 */ "df...qrq...fd"
- /* 8 */ "cdpppdddpppdc"
+ /* 0 */ "mmmma...ammmm"
+ /* 1 */ "mmmm.....mmmm"
+ /* 2 */ "acccccfccccca"
+ /* 3 */ "cgh.......igc"
+ /* 4 */ "cj.........jc"
+ /* 5 */ "c...........c"
+ /* 6 */ "ck.........kc"
+ /* 7 */ "cgh.linhl.igc"
+ /* 8 */ "accccccccccca"
// Level 3
/* z\x* 111 */
/* * 0123456789012 */
- /* 0 */ "....s...s...."
- /* 1 */ "....r...d...."
- /* 2 */ "cdddddddddddc"
- /* 3 */ "dftttttttttfd"
- /* 4 */ "dtttttttttttd"
- /* 5 */ "htttttttttttg"
- /* 6 */ "dtttttttttttd"
- /* 7 */ "dftttttttttfd"
- /* 8 */ "cdiiidddiiidc"
+ /* 0 */ "mmmma...ammmm"
+ /* 1 */ "mmmm.....mmmm"
+ /* 2 */ "acccccoccccca"
+ /* 3 */ "cg...p.p...gc"
+ /* 4 */ "c...........c"
+ /* 5 */ "q...........q"
+ /* 6 */ "c...........c"
+ /* 7 */ "cg...rsr...gc"
+ /* 8 */ "acqqqcccqqqca"
// Level 4
/* z\x* 111 */
/* * 0123456789012 */
- /* 0 */ "............."
- /* 1 */ "............."
- /* 2 */ "duuuuuduuuuud"
- /* 3 */ "u...........u"
- /* 4 */ "u.ddd...ddd.u"
- /* 5 */ "d.ddd...ddd.d"
- /* 6 */ "u.ddd...ddd.u"
- /* 7 */ "u...........u"
- /* 8 */ "duuuuuduuuuud"
+ /* 0 */ "mmmmt...tmmmm"
+ /* 1 */ "mmmms...cmmmm"
+ /* 2 */ "accccccccccca"
+ /* 3 */ "cguuuuuuuuugc"
+ /* 4 */ "cuuuuuuuuuuuc"
+ /* 5 */ "iuuuuuuuuuuuh"
+ /* 6 */ "cuuuuuuuuuuuc"
+ /* 7 */ "cguuuuuuuuugc"
+ /* 8 */ "acjjjcccjjjca"
// Level 5
/* z\x* 111 */
/* * 0123456789012 */
+ /* 0 */ "mmmm.....mmmm"
+ /* 1 */ "mmmm.....mmmm"
+ /* 2 */ "cvvvvvcvvvvvc"
+ /* 3 */ "v...........v"
+ /* 4 */ "v.ccc...ccc.v"
+ /* 5 */ "c.ccc...ccc.c"
+ /* 6 */ "v.ccc...ccc.v"
+ /* 7 */ "v...........v"
+ /* 8 */ "cvvvvvcvvvvvc"
+
+ // Level 6
+ /* z\x* 111 */
+ /* * 0123456789012 */
/* 0 */ "............."
/* 1 */ "............."
/* 2 */ "............."
/* 3 */ "............."
- /* 4 */ "..csc...csc.."
- /* 5 */ "..vwx...vwx.."
- /* 6 */ "..cyc...cyc.."
+ /* 4 */ "..ata...ata.."
+ /* 5 */ "..wxy...wxy.."
+ /* 6 */ "..aza...aza.."
/* 7 */ "............."
/* 8 */ "............."
- // Level 6
+ // Level 7
/* z\x* 111 */
/* * 0123456789012 */
/* 0 */ "............."
/* 1 */ "............."
/* 2 */ "............."
/* 3 */ "............."
- /* 4 */ "..c.c...c.c.."
- /* 5 */ "...z.....z..."
- /* 6 */ "..c.c...c.c.."
+ /* 4 */ "..a.a...a.a.."
+ /* 5 */ "...A.....A..."
+ /* 6 */ "..a.a...a.a.."
/* 7 */ "............."
/* 8 */ "............."
- // Level 7
+ // Level 8
/* z\x* 111 */
/* * 0123456789012 */
/* 0 */ "............."
/* 1 */ "............."
/* 2 */ "............."
/* 3 */ "............."
- /* 4 */ "..ddd...ddd.."
- /* 5 */ "..dAd...dAd.."
- /* 6 */ "..ddd...ddd.."
+ /* 4 */ "..ccc...ccc.."
+ /* 5 */ "..cBc...cBc.."
+ /* 6 */ "..ccc...ccc.."
/* 7 */ "............."
/* 8 */ "............."
- // Level 8
+ // Level 9
/* z\x* 111 */
/* * 0123456789012 */
/* 0 */ "............."
/* 1 */ "............."
/* 2 */ "............."
/* 3 */ "............."
- /* 4 */ "..u.u...u.u.."
+ /* 4 */ "..v.v...v.v.."
/* 5 */ "............."
- /* 6 */ "..u.u...u.u.."
+ /* 6 */ "..v.v...v.v.."
/* 7 */ "............."
/* 8 */ ".............",
// Connectors:
- "-1: 6, 1, 0: 2\n" /* Type -1, direction Z- */,
+ "-1: 6, 2, 0: 2\n" /* Type -1, direction Z- */,
// AllowedRotations:
7, /* 1, 2, 3 CCW rotation allowed */
@@ -2948,206 +3310,250 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
const cPrefab::sDef g_AlchemistVillageStartingPrefabs[] =
{
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// Well:
// The data has been exported from the gallery Desert, area index 90, ID 631, created by STR_Warrior
{
// Size:
- 5, 21, 5, // SizeX = 5, SizeY = 21, SizeZ = 5
+ 7, 21, 7, // SizeX = 7, SizeY = 21, SizeZ = 7
// Hitbox (relative to bounding box):
0, 0, 0, // MinX, MinY, MinZ
- 4, 20, 4, // MaxX, MaxY, MaxZ
+ 6, 20, 6, // 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: 24: 2\n" /* sandstone */
- "e:128: 1\n" /* sandstonestairs */
- "f: 44: 1\n" /* step */
- "g:128: 0\n" /* sandstonestairs */
- "h:128: 3\n" /* sandstonestairs */
- "i:128: 2\n" /* sandstonestairs */
- "j: 44: 9\n" /* step */
- "k:126: 0\n" /* woodenslab */
- "m: 19: 0\n" /* sponge */,
+ "b: 24: 2\n" /* sandstone */
+ "c: 24: 0\n" /* sandstone */
+ "d: 8: 0\n" /* water */
+ "e: 4: 0\n" /* cobblestone */
+ "f: 13: 0\n" /* gravel */
+ "g:128: 1\n" /* sandstonestairs */
+ "h: 44: 1\n" /* step */
+ "i:128: 0\n" /* sandstonestairs */
+ "j:128: 3\n" /* sandstonestairs */
+ "k:128: 2\n" /* sandstonestairs */
+ "l: 44: 9\n" /* step */
+ "m: 19: 0\n" /* sponge */
+ "n:126: 0\n" /* woodenslab */,
// Block data:
// Level 0
- /* z\x* 01234 */
- /* 0 */ "aaaaa"
- /* 1 */ "aaaaa"
- /* 2 */ "aaaaa"
- /* 3 */ "aaaaa"
- /* 4 */ "aaaaa"
+ /* z\x* 0123456 */
+ /* 0 */ "mmmmmmm"
+ /* 1 */ "maaaaam"
+ /* 2 */ "maaaaam"
+ /* 3 */ "maaaaam"
+ /* 4 */ "maaaaam"
+ /* 5 */ "maaaaam"
+ /* 6 */ "mmmmmmm"
// Level 1
- /* z\x* 01234 */
- /* 0 */ "bbbbb"
- /* 1 */ "bcccb"
- /* 2 */ "bcccb"
- /* 3 */ "bcccb"
- /* 4 */ "bbbbb"
+ /* z\x* 0123456 */
+ /* 0 */ "mmmmmmm"
+ /* 1 */ "mbcccbm"
+ /* 2 */ "mcdddcm"
+ /* 3 */ "mcdddcm"
+ /* 4 */ "mcdddcm"
+ /* 5 */ "mbcccbm"
+ /* 6 */ "mmmmmmm"
// Level 2
- /* z\x* 01234 */
- /* 0 */ "bbbbb"
- /* 1 */ "bcccb"
- /* 2 */ "bcccb"
- /* 3 */ "bcccb"
- /* 4 */ "bbbbb"
+ /* z\x* 0123456 */
+ /* 0 */ "mmmmmmm"
+ /* 1 */ "mbcccbm"
+ /* 2 */ "mcdddcm"
+ /* 3 */ "mcdddcm"
+ /* 4 */ "mcdddcm"
+ /* 5 */ "mbcccbm"
+ /* 6 */ "mmmmmmm"
// Level 3
- /* z\x* 01234 */
- /* 0 */ "bbbbb"
- /* 1 */ "bcccb"
- /* 2 */ "bcccb"
- /* 3 */ "bcccb"
- /* 4 */ "bbbbb"
+ /* z\x* 0123456 */
+ /* 0 */ "mmmmmmm"
+ /* 1 */ "mbcccbm"
+ /* 2 */ "mcdddcm"
+ /* 3 */ "mcdddcm"
+ /* 4 */ "mcdddcm"
+ /* 5 */ "mbcccbm"
+ /* 6 */ "mmmmmmm"
// Level 4
- /* z\x* 01234 */
- /* 0 */ "bbbbb"
- /* 1 */ "bcccb"
- /* 2 */ "bcccb"
- /* 3 */ "bcccb"
- /* 4 */ "bbbbb"
+ /* z\x* 0123456 */
+ /* 0 */ "mmmmmmm"
+ /* 1 */ "mbcccbm"
+ /* 2 */ "mcdddcm"
+ /* 3 */ "mcdddcm"
+ /* 4 */ "mcdddcm"
+ /* 5 */ "mbcccbm"
+ /* 6 */ "mmmmmmm"
// Level 5
- /* z\x* 01234 */
- /* 0 */ "bbbbb"
- /* 1 */ "bcccb"
- /* 2 */ "bcccb"
- /* 3 */ "bcccb"
- /* 4 */ "bbbbb"
+ /* z\x* 0123456 */
+ /* 0 */ "mmmmmmm"
+ /* 1 */ "mbcccbm"
+ /* 2 */ "mcdddcm"
+ /* 3 */ "mcdddcm"
+ /* 4 */ "mcdddcm"
+ /* 5 */ "mbcccbm"
+ /* 6 */ "mmmmmmm"
// Level 6
- /* z\x* 01234 */
- /* 0 */ "bbbbb"
- /* 1 */ "bcccb"
- /* 2 */ "bcccb"
- /* 3 */ "bcccb"
- /* 4 */ "bbbbb"
+ /* z\x* 0123456 */
+ /* 0 */ "mmmmmmm"
+ /* 1 */ "mbcccbm"
+ /* 2 */ "mcdddcm"
+ /* 3 */ "mcdddcm"
+ /* 4 */ "mcdddcm"
+ /* 5 */ "mbcccbm"
+ /* 6 */ "mmmmmmm"
// Level 7
- /* z\x* 01234 */
- /* 0 */ "bbbbb"
- /* 1 */ "bcccb"
- /* 2 */ "bcccb"
- /* 3 */ "bcccb"
- /* 4 */ "bbbbb"
+ /* z\x* 0123456 */
+ /* 0 */ "mmmmmmm"
+ /* 1 */ "mbcccbm"
+ /* 2 */ "mcdddcm"
+ /* 3 */ "mcdddcm"
+ /* 4 */ "mcdddcm"
+ /* 5 */ "mbcccbm"
+ /* 6 */ "mmmmmmm"
// Level 8
- /* z\x* 01234 */
- /* 0 */ "bbbbb"
- /* 1 */ "bcccb"
- /* 2 */ "bcccb"
- /* 3 */ "bcccb"
- /* 4 */ "bbbbb"
+ /* z\x* 0123456 */
+ /* 0 */ "mmmmmmm"
+ /* 1 */ "mbcccbm"
+ /* 2 */ "mcdddcm"
+ /* 3 */ "mcdddcm"
+ /* 4 */ "mcdddcm"
+ /* 5 */ "mbcccbm"
+ /* 6 */ "mmmmmmm"
// Level 9
- /* z\x* 01234 */
- /* 0 */ "bbbbb"
- /* 1 */ "bcccb"
- /* 2 */ "bcccb"
- /* 3 */ "bcccb"
- /* 4 */ "bbbbb"
+ /* z\x* 0123456 */
+ /* 0 */ "mmmmmmm"
+ /* 1 */ "mbcccbm"
+ /* 2 */ "mcdddcm"
+ /* 3 */ "mcdddcm"
+ /* 4 */ "mcdddcm"
+ /* 5 */ "mbcccbm"
+ /* 6 */ "mmmmmmm"
// Level 10
- /* z\x* 01234 */
- /* 0 */ "bbbbb"
- /* 1 */ "bcccb"
- /* 2 */ "bcccb"
- /* 3 */ "bcccb"
- /* 4 */ "bbbbb"
+ /* z\x* 0123456 */
+ /* 0 */ "mmmmmmm"
+ /* 1 */ "mbcccbm"
+ /* 2 */ "mcdddcm"
+ /* 3 */ "mcdddcm"
+ /* 4 */ "mcdddcm"
+ /* 5 */ "mbcccbm"
+ /* 6 */ "mmmmmmm"
// Level 11
- /* z\x* 01234 */
- /* 0 */ "bbbbb"
- /* 1 */ "bcccb"
- /* 2 */ "bcccb"
- /* 3 */ "bcccb"
- /* 4 */ "bbbbb"
+ /* z\x* 0123456 */
+ /* 0 */ "mmmmmmm"
+ /* 1 */ "mbcccbm"
+ /* 2 */ "mcdddcm"
+ /* 3 */ "mcdddcm"
+ /* 4 */ "mcdddcm"
+ /* 5 */ "mbcccbm"
+ /* 6 */ "mmmmmmm"
// Level 12
- /* z\x* 01234 */
- /* 0 */ "bbbbb"
- /* 1 */ "bcccb"
- /* 2 */ "bcccb"
- /* 3 */ "bcccb"
- /* 4 */ "bbbbb"
+ /* z\x* 0123456 */
+ /* 0 */ "mmmmmmm"
+ /* 1 */ "mbcccbm"
+ /* 2 */ "mcdddcm"
+ /* 3 */ "mcdddcm"
+ /* 4 */ "mcdddcm"
+ /* 5 */ "mbcccbm"
+ /* 6 */ "mmmmmmm"
// Level 13
- /* z\x* 01234 */
- /* 0 */ "bbbbb"
- /* 1 */ "bcccb"
- /* 2 */ "bcccb"
- /* 3 */ "bcccb"
- /* 4 */ "bbbbb"
+ /* z\x* 0123456 */
+ /* 0 */ "mmmmmmm"
+ /* 1 */ "mbcccbm"
+ /* 2 */ "mcdddcm"
+ /* 3 */ "mcdddcm"
+ /* 4 */ "mcdddcm"
+ /* 5 */ "mbcccbm"
+ /* 6 */ "mmmmmmm"
// Level 14
- /* z\x* 01234 */
- /* 0 */ "bbbbb"
- /* 1 */ "bcccb"
- /* 2 */ "bcccb"
- /* 3 */ "bcccb"
- /* 4 */ "bbbbb"
+ /* z\x* 0123456 */
+ /* 0 */ "mmeeemm"
+ /* 1 */ "mbcccbm"
+ /* 2 */ "ecdddce"
+ /* 3 */ "ecdddce"
+ /* 4 */ "ecdddce"
+ /* 5 */ "mbcccbm"
+ /* 6 */ "mmeeemm"
// Level 15
- /* z\x* 01234 */
- /* 0 */ "bbbbb"
- /* 1 */ "bcccb"
- /* 2 */ "bcccb"
- /* 3 */ "bcccb"
- /* 4 */ "bbbbb"
+ /* z\x* 0123456 */
+ /* 0 */ "mmfffmm"
+ /* 1 */ "mbcccbm"
+ /* 2 */ "fcdddcf"
+ /* 3 */ "fcdddcf"
+ /* 4 */ "fcdddcf"
+ /* 5 */ "mbcccbm"
+ /* 6 */ "mmfffmm"
// Level 16
- /* z\x* 01234 */
- /* 0 */ "defgd"
- /* 1 */ "h...h"
- /* 2 */ "f...f"
- /* 3 */ "i...i"
- /* 4 */ "defgd"
+ /* z\x* 0123456 */
+ /* 0 */ "mm...mm"
+ /* 1 */ "mbghibm"
+ /* 2 */ ".j...j."
+ /* 3 */ ".h...h."
+ /* 4 */ ".k...k."
+ /* 5 */ "mbghibm"
+ /* 6 */ "mm...mm"
// Level 17
- /* z\x* 01234 */
- /* 0 */ "d...d"
- /* 1 */ "....."
- /* 2 */ "....."
- /* 3 */ "....."
- /* 4 */ "d...d"
+ /* z\x* 0123456 */
+ /* 0 */ "mm...mm"
+ /* 1 */ "mb...bm"
+ /* 2 */ "......."
+ /* 3 */ "......."
+ /* 4 */ "......."
+ /* 5 */ "mb...bm"
+ /* 6 */ "mm...mm"
// Level 18
- /* z\x* 01234 */
- /* 0 */ "djjjd"
- /* 1 */ "j...j"
- /* 2 */ "j...j"
- /* 3 */ "j...j"
- /* 4 */ "djjjd"
+ /* z\x* 0123456 */
+ /* 0 */ "mm...mm"
+ /* 1 */ "mblllbm"
+ /* 2 */ ".l...l."
+ /* 3 */ ".l...l."
+ /* 4 */ ".l...l."
+ /* 5 */ "mblllbm"
+ /* 6 */ "mm...mm"
// Level 19
- /* z\x* 01234 */
- /* 0 */ "bbbbb"
- /* 1 */ "bkkkb"
- /* 2 */ "bkkkb"
- /* 3 */ "bkkkb"
- /* 4 */ "bbbbb"
+ /* z\x* 0123456 */
+ /* 0 */ "mm...mm"
+ /* 1 */ "mcccccm"
+ /* 2 */ ".cnnnc."
+ /* 3 */ ".cnnnc."
+ /* 4 */ ".cnnnc."
+ /* 5 */ "mcccccm"
+ /* 6 */ "mm...mm"
// Level 20
- /* z\x* 01234 */
- /* 0 */ "f.f.f"
- /* 1 */ "....."
- /* 2 */ "f...f"
- /* 3 */ "....."
- /* 4 */ "f.f.f",
+ /* z\x* 0123456 */
+ /* 0 */ "mm...mm"
+ /* 1 */ "mh.h.hm"
+ /* 2 */ "......."
+ /* 3 */ ".h...h."
+ /* 4 */ "......."
+ /* 5 */ "mh.h.hm"
+ /* 6 */ "mm...mm",
// Connectors:
- "2: 2, 16, 4: 3\n" /* Type 2, direction Z+ */
- "2: 0, 16, 2: 4\n" /* Type 2, direction X- */
- "2: 2, 16, 0: 2\n" /* Type 2, direction Z- */
- "2: 4, 16, 2: 5\n" /* Type 2, direction X+ */,
+ "2: 3, 16, 6: 3\n" /* Type 2, direction Z+ */
+ "2: 0, 16, 3: 4\n" /* Type 2, direction X- */
+ "2: 3, 16, 0: 2\n" /* Type 2, direction Z- */
+ "2: 6, 16, 3: 5\n" /* Type 2, direction X+ */,
// AllowedRotations:
7, /* 1, 2, 3 CCW rotation allowed */
diff --git a/src/Generating/Prefabs/CMakeLists.txt b/src/Generating/Prefabs/CMakeLists.txt
index a1f09112d..2c62aa73d 100644
--- a/src/Generating/Prefabs/CMakeLists.txt
+++ b/src/Generating/Prefabs/CMakeLists.txt
@@ -4,11 +4,30 @@ project (MCServer)
include_directories ("${PROJECT_SOURCE_DIR}/../../")
-file(GLOB SOURCE
- "*.cpp"
- "*.h"
-)
+SET (SRCS
+ AlchemistVillagePrefabs.cpp
+ JapaneseVillagePrefabs.cpp
+ NetherFortPrefabs.cpp
+ PlainsVillagePrefabs.cpp
+ RainbowRoadPrefabs.cpp
+ SandFlatRoofVillagePrefabs.cpp
+ SandVillagePrefabs.cpp
+ TestRailsPrefabs.cpp
+ UnderwaterBasePrefabs.cpp)
-add_library(Generating_Prefabs ${SOURCE})
+SET (HDRS
+ AlchemistVillagePrefabs.h
+ JapaneseVillagePrefabs.h
+ NetherFortPrefabs.h
+ PlainsVillagePrefabs.h
+ RainbowRoadPrefabs.h
+ SandFlatRoofVillagePrefabs.h
+ SandVillagePrefabs.h
+ TestRailsPrefabs.h
+ UnderwaterBasePrefabs.h)
-target_link_libraries(Generating_Prefabs OSSupport iniFile Blocks)
+if(NOT MSVC)
+ add_library(Generating_Prefabs ${SRCS} ${HDRS})
+
+ target_link_libraries(Generating_Prefabs OSSupport iniFile Blocks)
+endif()
diff --git a/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp b/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp
index 5ec222f84..0362c9406 100644
--- a/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp
+++ b/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp
@@ -15,7 +15,7 @@
const cPrefab::sDef g_JapaneseVillagePrefabs[] =
{
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// Arch:
// The data has been exported from the gallery Plains, area index 144, ID 488, created by Aloe_vera
{
@@ -129,7 +129,195 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ // Farm:
+ // The data has been exported from the gallery Plains, area index 166, ID 554, created by Aloe_vera
+ {
+ // Size:
+ 11, 8, 13, // SizeX = 11, SizeY = 8, SizeZ = 13
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 10, 7, 12, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a: 3: 0\n" /* dirt */
+ "b: 60: 7\n" /* tilleddirt */
+ "c: 8: 0\n" /* water */
+ "d: 43: 0\n" /* doubleslab */
+ "e: 44: 0\n" /* step */
+ "f: 59: 7\n" /* crops */
+ "g: 83: 0\n" /* reedblock */
+ "h:113: 0\n" /* netherbrickfence */
+ "i: 50: 5\n" /* torch */
+ "m: 19: 0\n" /* sponge */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "mmmmmmmmmmm"
+ /* 1 */ "maaaaaaaaam"
+ /* 2 */ "maaaaaaaaam"
+ /* 3 */ "maaaaaaaaam"
+ /* 4 */ "maaaaaaaaam"
+ /* 5 */ "maaaaaaaaam"
+ /* 6 */ "maaaaaaaaam"
+ /* 7 */ "maaaaaaaaam"
+ /* 8 */ "maaaaaaaaam"
+ /* 9 */ "maaaaaaaaam"
+ /* 10 */ "maaaaaaaaam"
+ /* 11 */ "maaaaaaaaam"
+ /* 12 */ "mmmmmmmmmmm"
+
+ // Level 1
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "mmmmmmmmmmm"
+ /* 1 */ "maaaaaaaaam"
+ /* 2 */ "mabbbbbbbam"
+ /* 3 */ "mabbbbbbbam"
+ /* 4 */ "mabbbbbbbam"
+ /* 5 */ "mabbbbbbbam"
+ /* 6 */ "mabcccccaam"
+ /* 7 */ "mabbbbbbbam"
+ /* 8 */ "mabbbbbbbam"
+ /* 9 */ "mabbbbbbbam"
+ /* 10 */ "mabbbbbbbam"
+ /* 11 */ "maaaaaaaaam"
+ /* 12 */ "mmmmmmmmmmm"
+
+ // Level 2
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ ".deeeeeeed."
+ /* 2 */ ".efffffffe."
+ /* 3 */ ".efffffffe."
+ /* 4 */ ".efffffffe."
+ /* 5 */ ".efgggggfe."
+ /* 6 */ ".eg.....ge."
+ /* 7 */ ".efgggggfe."
+ /* 8 */ ".efffffffe."
+ /* 9 */ ".efffffffe."
+ /* 10 */ ".efffffffe."
+ /* 11 */ ".deeeeeeed."
+ /* 12 */ "..........."
+
+ // Level 3
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ ".h.......h."
+ /* 2 */ "..........."
+ /* 3 */ "..........."
+ /* 4 */ "..........."
+ /* 5 */ "...ggggg..."
+ /* 6 */ "..g.....g.."
+ /* 7 */ "...ggggg..."
+ /* 8 */ "..........."
+ /* 9 */ "..........."
+ /* 10 */ "..........."
+ /* 11 */ ".h.......h."
+ /* 12 */ "..........."
+
+ // Level 4
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ ".h.......h."
+ /* 2 */ "..........."
+ /* 3 */ "..........."
+ /* 4 */ "..........."
+ /* 5 */ "...ggggg..."
+ /* 6 */ "..g.....g.."
+ /* 7 */ "...ggggg..."
+ /* 8 */ "..........."
+ /* 9 */ "..........."
+ /* 10 */ "..........."
+ /* 11 */ ".h.......h."
+ /* 12 */ "..........."
+
+ // Level 5
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ ".h.......h."
+ /* 2 */ "..........."
+ /* 3 */ "..........."
+ /* 4 */ "..........."
+ /* 5 */ "..........."
+ /* 6 */ "..........."
+ /* 7 */ "..........."
+ /* 8 */ "..........."
+ /* 9 */ "..........."
+ /* 10 */ "..........."
+ /* 11 */ ".h.......h."
+ /* 12 */ "..........."
+
+ // Level 6
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ ".h.......h."
+ /* 1 */ "hhh.....hhh"
+ /* 2 */ ".h.......h."
+ /* 3 */ "..........."
+ /* 4 */ "..........."
+ /* 5 */ "..........."
+ /* 6 */ "..........."
+ /* 7 */ "..........."
+ /* 8 */ "..........."
+ /* 9 */ "..........."
+ /* 10 */ ".h.......h."
+ /* 11 */ "hhh.....hhh"
+ /* 12 */ ".h.......h."
+
+ // Level 7
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ ".i.......i."
+ /* 1 */ "i.i.....i.i"
+ /* 2 */ ".i.......i."
+ /* 3 */ "..........."
+ /* 4 */ "..........."
+ /* 5 */ "..........."
+ /* 6 */ "..........."
+ /* 7 */ "..........."
+ /* 8 */ "..........."
+ /* 9 */ "..........."
+ /* 10 */ ".i.......i."
+ /* 11 */ "i.i.....i.i"
+ /* 12 */ ".i.......i.",
+
+ // Connectors:
+ "-1: 10, 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,
+
+ // MoveToGround:
+ true,
+ }, // Farm
+
+
+
+ ////////////////////////////////////////////////////////////////////////////////
// Forge:
// The data has been exported from the gallery Plains, area index 79, ID 145, created by Aloe_vera
{
@@ -395,7 +583,7 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// Garden2:
// The data has been exported from the gallery Plains, area index 147, ID 491, created by Aloe_vera
{
@@ -547,7 +735,7 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// HouseMid:
// The data has been exported from the gallery Plains, area index 62, ID 119, created by Aloe_vera
{
@@ -723,7 +911,7 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// HouseSmall:
// The data has been exported from the gallery Plains, area index 68, ID 131, created by Aloe_vera
{
@@ -834,7 +1022,7 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// HouseSmallDblWithDoor:
// The data has been exported from the gallery Plains, area index 113, ID 265, created by Aloe_vera
{
@@ -958,7 +1146,7 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// HouseSmallDouble:
// The data has been exported from the gallery Plains, area index 72, ID 135, created by Aloe_vera
{
@@ -1079,7 +1267,7 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// HouseSmallWithDoor:
// The data has been exported from the gallery Plains, area index 112, ID 264, created by Aloe_vera
{
@@ -1192,7 +1380,7 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// HouseWide:
// The data has been exported from the gallery Plains, area index 64, ID 121, created by STR_Warrior
{
@@ -1340,7 +1528,7 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// HouseWithGarden:
// The data has been exported from the gallery Plains, area index 67, ID 130, created by Aloe_vera
{
@@ -1586,7 +1774,7 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// HouseWithSakura1:
// The data has been exported from the gallery Plains, area index 75, ID 141, created by Aloe_vera
{
@@ -1780,7 +1968,7 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// HouseWithSpa:
// The data has been exported from the gallery Plains, area index 73, ID 139, created by Aloe_vera
{
@@ -1988,7 +2176,7 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// MediumSakuraTree:
// The data has been exported from the gallery Plains, area index 146, ID 490, created by STR_Warrior
{
@@ -2035,23 +2223,23 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] =
// Level 2
/* z\x* 0123456 */
- /* 0 */ "......."
- /* 1 */ "..c.c.."
+ /* 0 */ "mm...mm"
+ /* 1 */ "m.c...m"
/* 2 */ ".dccdc."
/* 3 */ "..cefc."
/* 4 */ ".ccfgh."
- /* 5 */ "..ccc.."
- /* 6 */ "......."
+ /* 5 */ "m.ccc.m"
+ /* 6 */ "mm...mm"
// Level 3
/* z\x* 0123456 */
- /* 0 */ "......."
+ /* 0 */ "m.....m"
/* 1 */ "......."
/* 2 */ "......."
/* 3 */ "...e..."
/* 4 */ "......."
/* 5 */ "......."
- /* 6 */ "......."
+ /* 6 */ "m.....m"
// Level 4
/* z\x* 0123456 */
@@ -2142,7 +2330,7 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// Restaurant:
// The data has been exported from the gallery Plains, area index 61, ID 117, created by Aloe_vera
{
@@ -2396,7 +2584,7 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// SakuraDouble:
// The data has been exported from the gallery Plains, area index 76, ID 142, created by Aloe_vera
{
@@ -2527,7 +2715,7 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// SakuraSmall:
// The data has been exported from the gallery Plains, area index 145, ID 489, created by Aloe_vera
{
@@ -2638,7 +2826,7 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] =
const cPrefab::sDef g_JapaneseVillageStartingPrefabs[] =
{
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// HighTemple:
// The data has been exported from the gallery Plains, area index 70, ID 133, created by Aloe_vera
{
@@ -2989,7 +3177,7 @@ const cPrefab::sDef g_JapaneseVillageStartingPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// Well:
// The data has been exported from the gallery Plains, area index 143, ID 487, created by STR_Warrior
{
@@ -3005,159 +3193,157 @@ const cPrefab::sDef g_JapaneseVillageStartingPrefabs[] =
"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: 67: 1\n" /* stairs */
- "h: 67: 2\n" /* stairs */
- "i: 67: 0\n" /* stairs */
- "j: 67: 3\n" /* stairs */
- "k: 85: 0\n" /* fence */
- "l: 44: 8\n" /* step */
- "m: 19: 0\n" /* sponge */
- "n: 44: 0\n" /* step */
- "o: 43: 0\n" /* doubleslab */,
+ "d: 13: 0\n" /* gravel */
+ "e: 67: 1\n" /* stairs */
+ "f: 67: 2\n" /* stairs */
+ "g: 67: 0\n" /* stairs */
+ "h: 67: 3\n" /* stairs */
+ "i: 85: 0\n" /* fence */
+ "j: 44: 8\n" /* step */
+ "k: 44: 0\n" /* step */
+ "l: 43: 0\n" /* doubleslab */
+ "m: 19: 0\n" /* sponge */,
// Block data:
// Level 0
/* z\x* 0123456 */
- /* 0 */ "aaaaaaa"
- /* 1 */ "aaaaaaa"
- /* 2 */ "aaaaaaa"
- /* 3 */ "aaaaaaa"
- /* 4 */ "aaaaaaa"
- /* 5 */ "aaaaaaa"
- /* 6 */ "aaaaaaa"
+ /* 0 */ "mmmmmmm"
+ /* 1 */ "maaaaam"
+ /* 2 */ "maaaaam"
+ /* 3 */ "maaaaam"
+ /* 4 */ "maaaaam"
+ /* 5 */ "maaaaam"
+ /* 6 */ "mmmmmmm"
// Level 1
/* z\x* 0123456 */
- /* 0 */ "aaaaaaa"
- /* 1 */ "abbbbba"
- /* 2 */ "abcc.ba"
- /* 3 */ "abcccba"
- /* 4 */ "abcccba"
- /* 5 */ "abbbbba"
- /* 6 */ "aaaaaaa"
+ /* 0 */ "mmmmmmm"
+ /* 1 */ "mbbbbbm"
+ /* 2 */ "mbcc.bm"
+ /* 3 */ "mbcccbm"
+ /* 4 */ "mbcccbm"
+ /* 5 */ "mbbbbbm"
+ /* 6 */ "mmmmmmm"
// Level 2
/* z\x* 0123456 */
- /* 0 */ "aaaaaaa"
- /* 1 */ "abbbbba"
- /* 2 */ "abcccba"
- /* 3 */ "abcccba"
- /* 4 */ "abcccba"
- /* 5 */ "abbbbba"
- /* 6 */ "aaaaaaa"
+ /* 0 */ "mmmmmmm"
+ /* 1 */ "mbbbbbm"
+ /* 2 */ "mbcccbm"
+ /* 3 */ "mbcccbm"
+ /* 4 */ "mbcccbm"
+ /* 5 */ "mbbbbbm"
+ /* 6 */ "mmmmmmm"
// Level 3
/* z\x* 0123456 */
- /* 0 */ "aaaaaaa"
- /* 1 */ "abbbbba"
- /* 2 */ "abcccba"
- /* 3 */ "abcccba"
- /* 4 */ "abcccba"
- /* 5 */ "abbbbba"
- /* 6 */ "aaaaaaa"
+ /* 0 */ "mmmmmmm"
+ /* 1 */ "mbbbbbm"
+ /* 2 */ "mbcccbm"
+ /* 3 */ "mbcccbm"
+ /* 4 */ "mbcccbm"
+ /* 5 */ "mbbbbbm"
+ /* 6 */ "mmmmmmm"
// Level 4
/* z\x* 0123456 */
- /* 0 */ "aaaaaaa"
- /* 1 */ "abbbbba"
- /* 2 */ "abcccba"
- /* 3 */ "abcccba"
- /* 4 */ "abcccba"
- /* 5 */ "abbbbba"
- /* 6 */ "aaaaaaa"
+ /* 0 */ "mmmmmmm"
+ /* 1 */ "mbbbbbm"
+ /* 2 */ "mbcccbm"
+ /* 3 */ "mbcccbm"
+ /* 4 */ "mbcccbm"
+ /* 5 */ "mbbbbbm"
+ /* 6 */ "mmmmmmm"
// Level 5
/* z\x* 0123456 */
- /* 0 */ "ddddddd"
- /* 1 */ "dbbbbbd"
- /* 2 */ "dbcccbd"
- /* 3 */ "dbcccbd"
- /* 4 */ "dbcccbd"
- /* 5 */ "dbbbbbd"
- /* 6 */ "ddddddd"
+ /* 0 */ "mmmmmmm"
+ /* 1 */ "mbbbbbm"
+ /* 2 */ "mbcccbm"
+ /* 3 */ "mbcccbm"
+ /* 4 */ "mbcccbm"
+ /* 5 */ "mbbbbbm"
+ /* 6 */ "mmmmmmm"
// Level 6
/* z\x* 0123456 */
- /* 0 */ "ddddddd"
- /* 1 */ "dbbbbbd"
- /* 2 */ "dbcccbd"
- /* 3 */ "dbcccbd"
- /* 4 */ "dbcccbd"
- /* 5 */ "dbbbbbd"
- /* 6 */ "ddddddd"
+ /* 0 */ "mmmmmmm"
+ /* 1 */ "mbbbbbm"
+ /* 2 */ "mbcccbm"
+ /* 3 */ "mbcccbm"
+ /* 4 */ "mbcccbm"
+ /* 5 */ "mbbbbbm"
+ /* 6 */ "mmmmmmm"
// Level 7
/* z\x* 0123456 */
- /* 0 */ "ddddddd"
- /* 1 */ "dbbbbbd"
- /* 2 */ "dbcccbd"
- /* 3 */ "dbcccbd"
- /* 4 */ "dbcccbd"
- /* 5 */ "dbbbbbd"
- /* 6 */ "ddddddd"
+ /* 0 */ "mmbbbmm"
+ /* 1 */ "mbbbbbm"
+ /* 2 */ "bbcccbb"
+ /* 3 */ "bbcccbb"
+ /* 4 */ "bbcccbb"
+ /* 5 */ "mbbbbbm"
+ /* 6 */ "mmbbbmm"
// Level 8
/* z\x* 0123456 */
- /* 0 */ "eefffee"
- /* 1 */ "ebbbbbe"
- /* 2 */ "fbcccbf"
- /* 3 */ "fbcccbf"
- /* 4 */ "fbcccbf"
- /* 5 */ "ebbbbbe"
- /* 6 */ "eefffee"
+ /* 0 */ "mmdddmm"
+ /* 1 */ "mbbbbbm"
+ /* 2 */ "dbcccbd"
+ /* 3 */ "dbcccbd"
+ /* 4 */ "dbcccbd"
+ /* 5 */ "mbbbbbm"
+ /* 6 */ "mmdddmm"
// Level 9
/* z\x* 0123456 */
- /* 0 */ "......."
- /* 1 */ ".bghib."
- /* 2 */ ".j...j."
- /* 3 */ ".i...g."
- /* 4 */ ".h...h."
- /* 5 */ ".bgjib."
- /* 6 */ "......."
+ /* 0 */ "mm...mm"
+ /* 1 */ "mbefgbm"
+ /* 2 */ ".h...h."
+ /* 3 */ ".g...e."
+ /* 4 */ ".f...f."
+ /* 5 */ "mbehgbm"
+ /* 6 */ "mm...mm"
// Level 10
/* z\x* 0123456 */
- /* 0 */ "......."
- /* 1 */ ".k...k."
+ /* 0 */ "mm...mm"
+ /* 1 */ "mi...im"
/* 2 */ "......."
/* 3 */ "......."
/* 4 */ "......."
- /* 5 */ ".k...k."
- /* 6 */ "......."
+ /* 5 */ "mi...im"
+ /* 6 */ "mm...mm"
// Level 11
/* z\x* 0123456 */
- /* 0 */ "......."
- /* 1 */ ".k...k."
+ /* 0 */ "mm...mm"
+ /* 1 */ "mi...im"
/* 2 */ "......."
/* 3 */ "......."
/* 4 */ "......."
- /* 5 */ ".k...k."
- /* 6 */ "......."
+ /* 5 */ "mi...im"
+ /* 6 */ "mm...mm"
// Level 12
/* z\x* 0123456 */
- /* 0 */ ".lnnnl."
- /* 1 */ "loooool"
- /* 2 */ "nooooon"
- /* 3 */ "nooooon"
- /* 4 */ "nooooon"
- /* 5 */ "loooool"
- /* 6 */ ".lnnnl."
+ /* 0 */ "mjkkkjm"
+ /* 1 */ "jlllllj"
+ /* 2 */ "klllllk"
+ /* 3 */ "klllllk"
+ /* 4 */ "klllllk"
+ /* 5 */ "jlllllj"
+ /* 6 */ "mjkkkjm"
// Level 13
/* z\x* 0123456 */
- /* 0 */ "n.....n"
+ /* 0 */ "k.....k"
/* 1 */ "......."
- /* 2 */ "..nnn.."
- /* 3 */ "..non.."
- /* 4 */ "..nnn.."
+ /* 2 */ "..kkk.."
+ /* 3 */ "..klk.."
+ /* 4 */ "..kkk.."
/* 5 */ "......."
- /* 6 */ "n.....n",
+ /* 6 */ "k.....k",
// Connectors:
"2: 0, 9, 3: 4\n" /* Type 2, direction X- */
diff --git a/src/Generating/Prefabs/NetherFortPrefabs.cpp b/src/Generating/Prefabs/NetherFortPrefabs.cpp
index 2c97f28ea..a3e3da158 100644
--- a/src/Generating/Prefabs/NetherFortPrefabs.cpp
+++ b/src/Generating/Prefabs/NetherFortPrefabs.cpp
@@ -15,7 +15,7 @@
const cPrefab::sDef g_NetherFortPrefabs[] =
{
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// BalconyCorridor:
// The data has been exported from the gallery Nether, area index 37, ID 288, created by Aloe_vera
{
@@ -162,7 +162,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// BalconyTee2:
// The data has been exported from the gallery Nether, area index 38, ID 289, created by Aloe_vera
{
@@ -325,7 +325,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// BlazePlatform:
// The data has been exported from the gallery Nether, area index 26, ID 276, created by tonibm1999
{
@@ -448,7 +448,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// BlazePlatformOverhang:
// The data has been exported from the gallery Nether, area index 20, ID 162, created by STR_Warrior
{
@@ -621,7 +621,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// BridgeCircleCrossing:
// The data has been exported from the gallery Nether, area index 49, ID 308, created by Aloe_vera
{
@@ -824,7 +824,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// BridgeCrossing:
// The data has been exported from the gallery Nether, area index 17, ID 159, created by Aloe_vera
{
@@ -1028,7 +1028,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// BridgeCrumble1:
// The data has been exported from the gallery Nether, area index 19, ID 161, created by Aloe_vera
{
@@ -1125,7 +1125,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// BridgeCrumble2:
// The data has been exported from the gallery Nether, area index 18, ID 160, created by Aloe_vera
{
@@ -1228,7 +1228,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// BridgeDoubleCrumble:
// The data has been exported from the gallery Nether, area index 46, ID 305, created by STR_Warrior
{
@@ -1410,7 +1410,384 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ // BridgeDoubleStairs:
+ // The data has been exported from the gallery Nether, area index 115, ID 810, created by STR_Warrior
+ {
+ // Size:
+ 15, 16, 16, // SizeX = 15, SizeY = 16, SizeZ = 16
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 14, 15, 15, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a:112: 0\n" /* netherbrick */
+ "b:114: 7\n" /* netherbrickstairs */
+ "c:114: 6\n" /* netherbrickstairs */
+ "d:114: 4\n" /* netherbrickstairs */
+ "e:114: 5\n" /* netherbrickstairs */
+ "f:114: 2\n" /* netherbrickstairs */
+ "g:114: 3\n" /* netherbrickstairs */
+ "h:114: 1\n" /* netherbrickstairs */
+ "i: 44:14\n" /* step */
+ "m: 19: 0\n" /* sponge */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "mmmmmmmmmmmaaam"
+ /* 1 */ "aammmmmmmmmaaaa"
+ /* 2 */ "aammmmmmmmmmmma"
+ /* 3 */ "aammmmmmmmmmmma"
+ /* 4 */ "mmmmmmmmmmmmmmm"
+ /* 5 */ "mmmmmmmmmmmmmmm"
+ /* 6 */ "mmmmmmmmmmmmmmm"
+ /* 7 */ "mmmmmmmmmmmmmmm"
+ /* 8 */ "mmmmmmmmmmmmmmm"
+ /* 9 */ "mmmmmmmmmmmmmmm"
+ /* 10 */ "mmmmmmmmmmmmmmm"
+ /* 11 */ "mmmmmmmmmmmmmmm"
+ /* 12 */ "aammmmmmmmmmmma"
+ /* 13 */ "aammmmmmmmmmmma"
+ /* 14 */ "aammmmmmmmmaaaa"
+ /* 15 */ "mmmmmmmmmmmaaam"
+
+ // Level 1
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "mmmmmmmmmmmaaam"
+ /* 1 */ "aammmmmmmmmaaaa"
+ /* 2 */ "aammmmmmmmmmmma"
+ /* 3 */ "aammmmmmmmmmmma"
+ /* 4 */ "mmmmmmmmmmmmmmm"
+ /* 5 */ "mmmmmmmmmmmmmmm"
+ /* 6 */ "mmmmmmmmmmmmmmm"
+ /* 7 */ "mmmmmmmmmmmmmmm"
+ /* 8 */ "mmmmmmmmmmmmmmm"
+ /* 9 */ "mmmmmmmmmmmmmmm"
+ /* 10 */ "mmmmmmmmmmmmmmm"
+ /* 11 */ "mmmmmmmmmmmmmmm"
+ /* 12 */ "aammmmmmmmmmmma"
+ /* 13 */ "aammmmmmmmmmmma"
+ /* 14 */ "aammmmmmmmmaaaa"
+ /* 15 */ "mmmmmmmmmmmaaam"
+
+ // Level 2
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "mmmmmmmmmmmaaam"
+ /* 1 */ "aammmmmmmmmaaaa"
+ /* 2 */ "aammmmmmmmmmmma"
+ /* 3 */ "aammmmmmmmmmmma"
+ /* 4 */ "mmmmmmmmmmmmmmm"
+ /* 5 */ "mmmmmmmmmmmmmmm"
+ /* 6 */ "mmmmmmmmmmmmmmm"
+ /* 7 */ "mmmmmmmmmmmmmmm"
+ /* 8 */ "mmmmmmmmmmmmmmm"
+ /* 9 */ "mmmmmmmmmmmmmmm"
+ /* 10 */ "mmmmmmmmmmmmmmm"
+ /* 11 */ "mmmmmmmmmmmmmmm"
+ /* 12 */ "aammmmmmmmmmmma"
+ /* 13 */ "aammmmmmmmmmmma"
+ /* 14 */ "aammmmmmmmmaaaa"
+ /* 15 */ "mmmmmmmmmmmaaam"
+
+ // Level 3
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "mmmmmmmmmmmaaam"
+ /* 1 */ "aammmmmmmmmaaaa"
+ /* 2 */ "aammmmmmmmmbbba"
+ /* 3 */ "aammmmmmmmmmmma"
+ /* 4 */ "mmmmmmmmmmmmmmm"
+ /* 5 */ "mmmmmmmmmmmmmmm"
+ /* 6 */ "mmmmmmmmmmmmmmm"
+ /* 7 */ "mmmmmmmmmmmmmmm"
+ /* 8 */ "mmmmmmmmmmmmmmm"
+ /* 9 */ "mmmmmmmmmmmmmmm"
+ /* 10 */ "mmmmmmmmmmmmmmm"
+ /* 11 */ "mmmmmmmmmmmmmmm"
+ /* 12 */ "aammmmmmmmmmmma"
+ /* 13 */ "aammmmmmmmmccca"
+ /* 14 */ "aammmmmmmmmaaaa"
+ /* 15 */ "mmmmmmmmmmmaaam"
+
+ // Level 4
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "mmmmmmmmmmmaaam"
+ /* 1 */ "aammmmmmmmmaaaa"
+ /* 2 */ "aammmmmmmmmaaaa"
+ /* 3 */ "aammmmmmmmmbbba"
+ /* 4 */ "mmmmmmmmmmmmmmm"
+ /* 5 */ "mmmmmmmmmmmmmmm"
+ /* 6 */ "mmmmmmmmmmmmmmm"
+ /* 7 */ "mmmmmmmmmmmmmmm"
+ /* 8 */ "mmmmmmmmmmmmmmm"
+ /* 9 */ "mmmmmmmmmmmmmmm"
+ /* 10 */ "mmmmmmmmmmmmmmm"
+ /* 11 */ "mmmmmmmmmmmmmmm"
+ /* 12 */ "aammmmmmmmmccca"
+ /* 13 */ "aammmmmmmmmaaaa"
+ /* 14 */ "aammmmmmmmmaaaa"
+ /* 15 */ "mmmmmmmmmmmaaam"
+
+ // Level 5
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "mmmmmmmmmmdaaae"
+ /* 1 */ "aammmmmmmmdaaaa"
+ /* 2 */ "aammmmmmmmdaaaa"
+ /* 3 */ "aammmmmmmmdaaaa"
+ /* 4 */ "mmmmmmmmmmdaaae"
+ /* 5 */ "mmmmmmmmmmmmmmm"
+ /* 6 */ "mmmmmmmmmmmmmmm"
+ /* 7 */ "mmmmmmmmmmmmmmm"
+ /* 8 */ "mmmmmmmmmmmmmmm"
+ /* 9 */ "mmmmmmmmmmmmmmm"
+ /* 10 */ "mmmmmmmmmmmmmmm"
+ /* 11 */ "mmmmmmmmmmdaaae"
+ /* 12 */ "aammmmmmmmdaaaa"
+ /* 13 */ "aammmmmmmmdaaaa"
+ /* 14 */ "aammmmmmmmdaaaa"
+ /* 15 */ "mmmmmmmmmmdaaae"
+
+ // Level 6
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "mmmmmmmmmmaaaaa"
+ /* 1 */ "aammmmmmmmaaaaa"
+ /* 2 */ "aammmmmmmmaaaaa"
+ /* 3 */ "aammmmmmmmaaaaa"
+ /* 4 */ "mmmmmmmmmmaaaaa"
+ /* 5 */ "mmmmmmmmmmdaaae"
+ /* 6 */ "mmmmmmmmmmmmmmm"
+ /* 7 */ "mmmmmmmmmmmmmmm"
+ /* 8 */ "mmmmmmmmmmmmmmm"
+ /* 9 */ "mmmmmmmmmmmmmmm"
+ /* 10 */ "mmmmmmmmmmdaaae"
+ /* 11 */ "mmmmmmmmmmaaaaa"
+ /* 12 */ "aammmmmmmmaaaaa"
+ /* 13 */ "aammmmmmmmaaaaa"
+ /* 14 */ "aammmmmmmmaaaaa"
+ /* 15 */ "mmmmmmmmmmaaaaa"
+
+ // Level 7
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "mmmmmmmmmma...a"
+ /* 1 */ "aammmmmmmma...a"
+ /* 2 */ "aammmmmmmma...a"
+ /* 3 */ "aammmmmmmma...a"
+ /* 4 */ "mmmmmmmmmmafffa"
+ /* 5 */ "mmmmmmmmmaaaaaa"
+ /* 6 */ "mmmmmmmmmaaaaae"
+ /* 7 */ "mmmmmmmmmaaaaae"
+ /* 8 */ "mmmmmmmmmaaaaae"
+ /* 9 */ "mmmmmmmmmaaaaae"
+ /* 10 */ "mmmmmmmmmaaaaaa"
+ /* 11 */ "mmmmmmmmmmaggga"
+ /* 12 */ "aammmmmmmma...a"
+ /* 13 */ "aammmmmmmma...a"
+ /* 14 */ "aammmmmmmma...a"
+ /* 15 */ "mmmmmmmmmma...a"
+
+ // Level 8
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "mmmmmmmmmmm...m"
+ /* 1 */ "aammmmmmmma...a"
+ /* 2 */ "aammmmmmmma...a"
+ /* 3 */ "aammmmmmmma...a"
+ /* 4 */ "mmmmmmmmmma...a"
+ /* 5 */ "mmmmmmmmmaafffa"
+ /* 6 */ "mmmmmmmmaaaaaaa"
+ /* 7 */ "mmmmmmmmaaaaaaa"
+ /* 8 */ "mmmmmmmmaaaaaaa"
+ /* 9 */ "mmmmmmmmaaaaaaa"
+ /* 10 */ "mmmmmmmmmaaggga"
+ /* 11 */ "mmmmmmmmmma...a"
+ /* 12 */ "aammmmmmmma...a"
+ /* 13 */ "aammmmmmmma...a"
+ /* 14 */ "aammmmmmmma...a"
+ /* 15 */ "mmmmmmmmmmm...m"
+
+ // Level 9
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "mmmmmmmmmmm...m"
+ /* 1 */ "aaemmmmmmma...a"
+ /* 2 */ "aaemmmmmmma...a"
+ /* 3 */ "aaemmmmmmma...a"
+ /* 4 */ "mmmmmmmmmma...a"
+ /* 5 */ "mmmmmmmmmaa...a"
+ /* 6 */ "mmmmaaaaah....a"
+ /* 7 */ "mmmmaaaaah....a"
+ /* 8 */ "mmmmaaaaah....a"
+ /* 9 */ "mmmmaaaaah....a"
+ /* 10 */ "mmmmmmmmmaa...a"
+ /* 11 */ "mmmmmmmmmma...a"
+ /* 12 */ "aaemmmmmmma...a"
+ /* 13 */ "aaemmmmmmma...a"
+ /* 14 */ "aaemmmmmmma...a"
+ /* 15 */ "mmmmmmmmmmm...m"
+
+ // Level 10
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "mmmmmmmmmmmmmmm"
+ /* 1 */ "aaaeimmmmmammma"
+ /* 2 */ "aaaeimmmmmammma"
+ /* 3 */ "aaaeimmmmma...a"
+ /* 4 */ "mmmmmmmmmmm...m"
+ /* 5 */ "mmmmaaaaaam...m"
+ /* 6 */ "mmmmaaaah.....m"
+ /* 7 */ "mmmmaaaah.....m"
+ /* 8 */ "mmmmaaaah.....m"
+ /* 9 */ "mmmmaaaah.....m"
+ /* 10 */ "mmmmaaaaaam...m"
+ /* 11 */ "mmmmmmmmmmm...m"
+ /* 12 */ "aaaeimmmmma...a"
+ /* 13 */ "aaaeimmmmmammma"
+ /* 14 */ "aaaeimmmmmammma"
+ /* 15 */ "mmmmmmmmmmmmmmm"
+
+ // Level 11
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "ccccccccccccccc"
+ /* 1 */ "aaaaaaaaaaaaaaa"
+ /* 2 */ "aaaaaaaaaaaaaaa"
+ /* 3 */ "aaaaaaaaaaaaaaa"
+ /* 4 */ "bbbbaaaaabbbbbb"
+ /* 5 */ "mmmmagggamm...m"
+ /* 6 */ "mmmma.........m"
+ /* 7 */ "mmmma.........m"
+ /* 8 */ "mmmma.........m"
+ /* 9 */ "mmmma.........m"
+ /* 10 */ "mmmmafffamm...m"
+ /* 11 */ "ccccaaaahcccccc"
+ /* 12 */ "aaaaaaaaaaaaaaa"
+ /* 13 */ "aaaaaaaaaaaaaaa"
+ /* 14 */ "aaaaaaaaaaaaaaa"
+ /* 15 */ "bbbbbbbbbbbbbbb"
+
+ // Level 12
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "aaaaaaaaaaaaaaa"
+ /* 1 */ "aaaaaaaaaaaaaaa"
+ /* 2 */ "aaaaaaaaaaaaaaa"
+ /* 3 */ "aaaaaaaaaaaaaaa"
+ /* 4 */ "aaaaagggaaaaaaa"
+ /* 5 */ "mmmma...ammmmmm"
+ /* 6 */ "mmmma.........m"
+ /* 7 */ "mmmmm.........m"
+ /* 8 */ "mmmmm.........m"
+ /* 9 */ "mmmma.........m"
+ /* 10 */ "mmmma...ammmmmm"
+ /* 11 */ "aaaaafffaaaaaaa"
+ /* 12 */ "aaaaaaaaaaaaaaa"
+ /* 13 */ "aaaaaaaaaaaaaaa"
+ /* 14 */ "aaaaaaaaaaaaaaa"
+ /* 15 */ "aaaaaaaaaaaaaaa"
+
+ // Level 13
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "aaaaaaaaaaaaaaa"
+ /* 1 */ "..............."
+ /* 2 */ "..............."
+ /* 3 */ "..............."
+ /* 4 */ "aaaaa...aaaaaaa"
+ /* 5 */ "mmmma...ammmmmm"
+ /* 6 */ "mmmmm.....mmmmm"
+ /* 7 */ "mmmmm.....mmmmm"
+ /* 8 */ "mmmmm.....mmmmm"
+ /* 9 */ "mmmmm.....mmmmm"
+ /* 10 */ "mmmma...ammmmmm"
+ /* 11 */ "aaaaa...aaaaaaa"
+ /* 12 */ "..............."
+ /* 13 */ "..............."
+ /* 14 */ "..............."
+ /* 15 */ "aaaaaaaaaaaaaaa"
+
+ // Level 14
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "mmmmmmmmmmmmmmm"
+ /* 1 */ "..............."
+ /* 2 */ "..............."
+ /* 3 */ "..............."
+ /* 4 */ "mmmmm...mmmmmmm"
+ /* 5 */ "mmmmm...mmmmmmm"
+ /* 6 */ "mmmmm...mmmmmmm"
+ /* 7 */ "mmmmm...mmmmmmm"
+ /* 8 */ "mmmmm...mmmmmmm"
+ /* 9 */ "mmmmm...mmmmmmm"
+ /* 10 */ "mmmmm...mmmmmmm"
+ /* 11 */ "mmmmm...mmmmmmm"
+ /* 12 */ "..............."
+ /* 13 */ "..............."
+ /* 14 */ "..............."
+ /* 15 */ "mmmmmmmmmmmmmmm"
+
+ // Level 15
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "mmmmmmmmmmmmmmm"
+ /* 1 */ "..............."
+ /* 2 */ "..............."
+ /* 3 */ "..............."
+ /* 4 */ "mmmmm...mmmmmmm"
+ /* 5 */ "mmmmm...mmmmmmm"
+ /* 6 */ "mmmmmmmmmmmmmmm"
+ /* 7 */ "mmmmmmmmmmmmmmm"
+ /* 8 */ "mmmmmmmmmmmmmmm"
+ /* 9 */ "mmmmmmmmmmmmmmm"
+ /* 10 */ "mmmmm...mmmmmmm"
+ /* 11 */ "mmmmm...mmmmmmm"
+ /* 12 */ "..............."
+ /* 13 */ "..............."
+ /* 14 */ "..............."
+ /* 15 */ "mmmmmmmmmmmmmmm",
+
+ // Connectors:
+ "0: 0, 13, 13: 4\n" /* Type 0, direction X- */
+ "0: 14, 13, 13: 5\n" /* Type 0, direction X+ */
+ "0: 0, 13, 2: 4\n" /* Type 0, direction X- */
+ "0: 14, 13, 2: 5\n" /* Type 0, direction X+ */
+ "0: 12, 7, 15: 3\n" /* Type 0, direction Z+ */
+ "0: 12, 7, 0: 2\n" /* Type 0, direction Z- */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 20,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+
+ // MoveToGround:
+ false,
+ }, // BridgeDoubleStairs
+
+
+
+ ////////////////////////////////////////////////////////////////////////////////
// BridgeFunnelDown:
// The data has been exported from the gallery Nether, area index 0, ID 2, created by Aloe_vera
{
@@ -1653,7 +2030,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// BridgeLevelCrossing:
// The data has been exported from the gallery Nether, area index 61, ID 321, created by Aloe_vera
{
@@ -1985,7 +2362,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// BridgeSegment:
// The data has been exported from the gallery Nether, area index 16, ID 158, created by Aloe_vera
{
@@ -2107,7 +2484,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// BridgeTee:
// The data has been exported from the gallery Nether, area index 39, ID 290, created by STR_Warrior
{
@@ -2270,7 +2647,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// Corridor11:
// The data has been exported from the gallery Nether, area index 36, ID 287, created by Aloe_vera
{
@@ -2374,7 +2751,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// Corridor13:
// The data has been exported from the gallery Nether, area index 35, ID 286, created by Aloe_vera
{
@@ -2478,7 +2855,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// Corridor5:
// The data has been exported from the gallery Nether, area index 65, ID 330, created by xoft
{
@@ -2576,7 +2953,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// CorridorCorner5:
// The data has been exported from the gallery Nether, area index 10, ID 40, created by xoft
{
@@ -2606,12 +2983,12 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
/* 2 */ "aaaaaaaaaaa"
/* 3 */ "aaaaaaaaaaa"
/* 4 */ "aaaaaaaaaaa"
- /* 5 */ "aaaaa......"
- /* 6 */ "aaaaa......"
- /* 7 */ "aaaaa......"
- /* 8 */ "aaaaa......"
- /* 9 */ "aaaaa......"
- /* 10 */ "aaaaa......"
+ /* 5 */ "aaaaammmmmm"
+ /* 6 */ "aaaaammmmmm"
+ /* 7 */ "aaaaammmmmm"
+ /* 8 */ "aaaaammmmmm"
+ /* 9 */ "aaaaammmmmm"
+ /* 10 */ "aaaaammmmmm"
// Level 1
/* z\x* 1 */
@@ -2621,12 +2998,12 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
/* 2 */ "a.........."
/* 3 */ "a.........."
/* 4 */ "a...aaaaaaa"
- /* 5 */ "a...a......"
- /* 6 */ "a...a......"
- /* 7 */ "a...a......"
- /* 8 */ "a...a......"
- /* 9 */ "a...a......"
- /* 10 */ "a...a......"
+ /* 5 */ "a...ammmmmm"
+ /* 6 */ "a...ammmmmm"
+ /* 7 */ "a...ammmmmm"
+ /* 8 */ "a...ammmmmm"
+ /* 9 */ "a...ammmmmm"
+ /* 10 */ "a...ammmmmm"
// Level 2
/* z\x* 1 */
@@ -2636,12 +3013,12 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
/* 2 */ "a.........."
/* 3 */ "b.........."
/* 4 */ "a...abababa"
- /* 5 */ "b...b......"
- /* 6 */ "a...a......"
- /* 7 */ "b...b......"
- /* 8 */ "a...a......"
- /* 9 */ "b...b......"
- /* 10 */ "a...a......"
+ /* 5 */ "b...bmmmmmm"
+ /* 6 */ "a...ammmmmm"
+ /* 7 */ "b...bmmmmmm"
+ /* 8 */ "a...ammmmmm"
+ /* 9 */ "b...bmmmmmm"
+ /* 10 */ "a...ammmmmm"
// Level 3
/* z\x* 1 */
@@ -2651,12 +3028,12 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
/* 2 */ "a.........."
/* 3 */ "b.........."
/* 4 */ "a...abababa"
- /* 5 */ "b...b......"
- /* 6 */ "a...a......"
- /* 7 */ "b...b......"
- /* 8 */ "a...a......"
- /* 9 */ "b...b......"
- /* 10 */ "a...a......"
+ /* 5 */ "b...bmmmmmm"
+ /* 6 */ "a...ammmmmm"
+ /* 7 */ "b...bmmmmmm"
+ /* 8 */ "a...ammmmmm"
+ /* 9 */ "b...bmmmmmm"
+ /* 10 */ "a...ammmmmm"
// Level 4
/* z\x* 1 */
@@ -2666,12 +3043,12 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
/* 2 */ "a.........."
/* 3 */ "b.........."
/* 4 */ "a...abababa"
- /* 5 */ "b...b......"
- /* 6 */ "a...a......"
- /* 7 */ "b...b......"
- /* 8 */ "a...a......"
- /* 9 */ "b...b......"
- /* 10 */ "a...a......"
+ /* 5 */ "b...bmmmmmm"
+ /* 6 */ "a...ammmmmm"
+ /* 7 */ "b...bmmmmmm"
+ /* 8 */ "a...ammmmmm"
+ /* 9 */ "b...bmmmmmm"
+ /* 10 */ "a...ammmmmm"
// Level 5
/* z\x* 1 */
@@ -2681,12 +3058,12 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
/* 2 */ "daaaaaaaaaa"
/* 3 */ "daaaaaaaaaa"
/* 4 */ "daaaeeeeeee"
- /* 5 */ "daaaf......"
- /* 6 */ "daaaf......"
- /* 7 */ "daaaf......"
- /* 8 */ "daaaf......"
- /* 9 */ "daaaf......"
- /* 10 */ "daaaf......",
+ /* 5 */ "daaafmmmmmm"
+ /* 6 */ "daaafmmmmmm"
+ /* 7 */ "daaafmmmmmm"
+ /* 8 */ "daaafmmmmmm"
+ /* 9 */ "daaafmmmmmm"
+ /* 10 */ "daaafmmmmmm",
// Connectors:
"1: 2, 1, 10: 3\n" /* Type 1, direction Z+ */
@@ -2718,7 +3095,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// CorridorCornerChest5:
// The data has been exported from the gallery Nether, area index 42, ID 293, created by STR_Warrior
{
@@ -2861,7 +3238,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// CorridorCrossing:
// The data has been exported from the gallery Nether, area index 63, ID 328, created by xoft
{
@@ -2989,7 +3366,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// CorridorStairs:
// The data has been exported from the gallery Nether, area index 12, ID 42, created by xoft
{
@@ -3144,7 +3521,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// DarkCorridor:
// The data has been exported from the gallery Nether, area index 3, ID 30, created by STR_Warrior
{
@@ -3248,7 +3625,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// LavaStaircase:
// The data has been exported from the gallery Nether, area index 28, ID 278, created by Aloe_vera
{
@@ -3508,7 +3885,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// LavaStaircaseBig:
// The data has been exported from the gallery Nether, area index 31, ID 282, created by STR_Warrior
{
@@ -3842,7 +4219,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// LavaStairsBridge:
// The data has been exported from the gallery Nether, area index 30, ID 281, created by STR_Warrior
{
@@ -4097,7 +4474,12 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
/* 14 */ "abbaabbaabbaabba",
// Connectors:
- "",
+ "1: 0, 6, 7: 4\n" /* Type 1, direction X- */
+ "-1: 0, 6, 7: 4\n" /* Type -1, direction X- */
+ "1: 9, 1, 0: 2\n" /* Type 1, direction Z- */
+ "-1: 9, 1, 0: 2\n" /* Type -1, direction Z- */
+ "1: 9, 1, 14: 3\n" /* Type 1, direction Z+ */
+ "-1: 9, 1, 14: 3\n" /* Type -1, direction Z+ */,
// AllowedRotations:
7, /* 1, 2, 3 CCW rotation allowed */
@@ -4123,7 +4505,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// MidStaircase:
// The data has been exported from the gallery Nether, area index 23, ID 165, created by Aloe_vera
{
@@ -4314,7 +4696,340 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ // SlabbedBridgeStairs:
+ // The data has been exported from the gallery Nether, area index 116, ID 811, created by Aloe_vera
+ {
+ // Size:
+ 16, 14, 16, // SizeX = 16, SizeY = 14, SizeZ = 16
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 15, 13, 15, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a:112: 0\n" /* netherbrick */
+ "b:114: 5\n" /* netherbrickstairs */
+ "c:114: 4\n" /* netherbrickstairs */
+ "d: 44:14\n" /* step */
+ "e:114: 6\n" /* netherbrickstairs */
+ "f:114: 7\n" /* netherbrickstairs */
+ "g: 44: 6\n" /* step */
+ "m: 19: 0\n" /* sponge */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 111111 */
+ /* * 0123456789012345 */
+ /* 0 */ "mmmmmmmmmmmmmmmm"
+ /* 1 */ "aammmmmmmmmmmmaa"
+ /* 2 */ "aammmmmmmmmmmmaa"
+ /* 3 */ "aammmmmmmmmmmmaa"
+ /* 4 */ "mmmmmmmmmmmmmmmm"
+ /* 5 */ "mmmmmmmmmmmmmmmm"
+ /* 6 */ "mmmmmmmmmmmmmmmm"
+ /* 7 */ "mmmmmmmmmmmmmmmm"
+ /* 8 */ "mmmmmmmmmmmmmmmm"
+ /* 9 */ "mmmmmmmmmmmmmmmm"
+ /* 10 */ "mmmmmmmmmmmmmmmm"
+ /* 11 */ "mmmmmmmmmmmmmmmm"
+ /* 12 */ "maaammmmmmmmmmmm"
+ /* 13 */ "maaammmmmmmmmmmm"
+ /* 14 */ "maaammmmmmmmaaam"
+ /* 15 */ "mmmmmmmmmmmmaaam"
+
+ // Level 1
+ /* z\x* 111111 */
+ /* * 0123456789012345 */
+ /* 0 */ "mmmmmmmmmmmmmmmm"
+ /* 1 */ "aabmmmmmmmmmmcaa"
+ /* 2 */ "aabmmmmmmmmmmcaa"
+ /* 3 */ "aabmmmmmmmmmmcaa"
+ /* 4 */ "mmmmmmmmmmmmmmmm"
+ /* 5 */ "mmmmmmmmmmmmmmmm"
+ /* 6 */ "mmmmmmmmmmmmmmmm"
+ /* 7 */ "mmmmmmmmmmmmmmmm"
+ /* 8 */ "mmmmmmmmmmmmmmmm"
+ /* 9 */ "mmmmmmmmmmmmmmmm"
+ /* 10 */ "mmmmmmmmmmmmmmmm"
+ /* 11 */ "mmmmmmmmmmmmmmmm"
+ /* 12 */ "maaammmmmmmmmmmm"
+ /* 13 */ "maaammmmmmmmmmmm"
+ /* 14 */ "maaammmmmmmmaaam"
+ /* 15 */ "mmmmmmmmmmmmaaam"
+
+ // Level 2
+ /* z\x* 111111 */
+ /* * 0123456789012345 */
+ /* 0 */ "mmmmmmmmmmmmmmmm"
+ /* 1 */ "aaabdmmmmmmdcaaa"
+ /* 2 */ "aaabdmmmmmmdcaaa"
+ /* 3 */ "aaabdmmmmmmdcaaa"
+ /* 4 */ "mmmmmmmmmmmmmmmm"
+ /* 5 */ "mmmmmmmmmmmmmmmm"
+ /* 6 */ "mmmmmmmmmmmmmmmm"
+ /* 7 */ "mmmmmmmmmmmmmmmm"
+ /* 8 */ "mmmmmmmmmmmmmmmm"
+ /* 9 */ "mmmmmmmmmmmmmmmm"
+ /* 10 */ "mmmmmmmmmmmmmmmm"
+ /* 11 */ "mmmmmmmmmmmmmmmm"
+ /* 12 */ "maaammmmmmmmmmmm"
+ /* 13 */ "maaammmmmmmmmmmm"
+ /* 14 */ "maaammmmmmmmaaam"
+ /* 15 */ "mmmmmmmmmmmmaaam"
+
+ // Level 3
+ /* z\x* 111111 */
+ /* * 0123456789012345 */
+ /* 0 */ "eeeeeeeeeeeeeeee"
+ /* 1 */ "aaaaaaaaaaaaaaaa"
+ /* 2 */ "aaaaaaaaaaaaaaaa"
+ /* 3 */ "aaaaaaaaaaaaaaaa"
+ /* 4 */ "ffffffffffffffff"
+ /* 5 */ "mmmmmmmmmmmmmmmm"
+ /* 6 */ "mmmmmmmmmmmmmmmm"
+ /* 7 */ "mmmmmmmmmmmmmmmm"
+ /* 8 */ "mmmmmmmmmmmmmmmm"
+ /* 9 */ "mmmmmmmmmmmmmmmm"
+ /* 10 */ "mmmmmmmmmmmmmmmm"
+ /* 11 */ "mmmmmmmmmmmmmmmm"
+ /* 12 */ "maaammmmmmmmmmmm"
+ /* 13 */ "maaammmmmmmmmmmm"
+ /* 14 */ "maaammmmmmmmaaam"
+ /* 15 */ "mmmmmmmmmmmmaaam"
+
+ // Level 4
+ /* z\x* 111111 */
+ /* * 0123456789012345 */
+ /* 0 */ "aaaaaaaaaaaaaaaa"
+ /* 1 */ "aaaaaaaaaaaaaaaa"
+ /* 2 */ "aaaaaaaaaaaaaaaa"
+ /* 3 */ "aaaaaaaaaaaaaaaa"
+ /* 4 */ "aaaaaaaaaaaaaaaa"
+ /* 5 */ "faaabmmmmmmmmmmm"
+ /* 6 */ "caaabmmmmmmmmmmm"
+ /* 7 */ "caaabmmmmmmmmmmm"
+ /* 8 */ "mmmmmmmmmmmmmmmm"
+ /* 9 */ "mmmmmmmmmmmmmmmm"
+ /* 10 */ "mmmmmmmmmmmmmmmm"
+ /* 11 */ "mmmmmmmmmmmmmmmm"
+ /* 12 */ "maaammmmmmmmmmmm"
+ /* 13 */ "maaammmmmmmmmmmm"
+ /* 14 */ "maaammmmmmmmaaam"
+ /* 15 */ "mmmmmmmmmmmmaaam"
+
+ // Level 5
+ /* z\x* 111111 */
+ /* * 0123456789012345 */
+ /* 0 */ "aaaaaaaaaaaaaaaa"
+ /* 1 */ "................"
+ /* 2 */ "................"
+ /* 3 */ "................"
+ /* 4 */ "a...aaaaaaaaaaaa"
+ /* 5 */ "agggammmmmmmmmmm"
+ /* 6 */ "aaaaammmmmmmmmmm"
+ /* 7 */ "aaaaammmmmmmmmmm"
+ /* 8 */ "caaabmmmmmmmmmmm"
+ /* 9 */ "caaabmmmmmmmmmmm"
+ /* 10 */ "mmmmmmmmmmmmmmmm"
+ /* 11 */ "mmmmmmmmmmmmmmmm"
+ /* 12 */ "maaammmmmmmmmmmm"
+ /* 13 */ "maaammmmmmmmmmmm"
+ /* 14 */ "maaammmmmmmmaaam"
+ /* 15 */ "mmmmmmmmmmmmaaam"
+
+ // Level 6
+ /* z\x* 111111 */
+ /* * 0123456789012345 */
+ /* 0 */ "mmmmmmmmmmmmaaam"
+ /* 1 */ "................"
+ /* 2 */ "................"
+ /* 3 */ "................"
+ /* 4 */ "m...mmmmmmmmaaam"
+ /* 5 */ "a...ammmmmmmmmmm"
+ /* 6 */ "a...ammmmmmmmmmm"
+ /* 7 */ "agggammmmmmmmmmm"
+ /* 8 */ "aaaaammmmmmmmmmm"
+ /* 9 */ "aaaaammmmmmmmmmm"
+ /* 10 */ "caaabmmmmmmmmmmm"
+ /* 11 */ "caaabmmmmmmmmmmm"
+ /* 12 */ "maaabmmmmmmmmmmm"
+ /* 13 */ "maaabmmmmmmmmmmm"
+ /* 14 */ "maaafmmmmmmmaaam"
+ /* 15 */ "mmmmmmmmmmmmaaam"
+
+ // Level 7
+ /* z\x* 111111 */
+ /* * 0123456789012345 */
+ /* 0 */ "mmmmmmmmmmmmaaam"
+ /* 1 */ "................"
+ /* 2 */ "................"
+ /* 3 */ "................"
+ /* 4 */ "m...mmmmmmmmaaam"
+ /* 5 */ "m...mmmmmmmmmmmm"
+ /* 6 */ "m...mmmmmmmmmmmm"
+ /* 7 */ "a...ammmmmmmmmmm"
+ /* 8 */ "a...ammmmmmmmmmm"
+ /* 9 */ "agggammmmmmmmmmm"
+ /* 10 */ "aaaaammmmmmmmmmm"
+ /* 11 */ "aaaaaeemmmmmmmmm"
+ /* 12 */ "caaaaaammmmmmmmm"
+ /* 13 */ "caaaaaammmmmmmmm"
+ /* 14 */ "caaaaaammmmmaaam"
+ /* 15 */ "fffffffmmmmmaaam"
+
+ // Level 8
+ /* z\x* 111111 */
+ /* * 0123456789012345 */
+ /* 0 */ "mmmmmmmmmmmmaaam"
+ /* 1 */ "mmmmmmmmmmmmmmmm"
+ /* 2 */ "mmmmmmmmmmmmmmmm"
+ /* 3 */ "mmmmmmmmmmmmmmmm"
+ /* 4 */ "m...mmmmmmmmaaam"
+ /* 5 */ "m...mmmmmmmmmmmm"
+ /* 6 */ "m...mmmmmmmmmmmm"
+ /* 7 */ "m...mmmmmmmmmmmm"
+ /* 8 */ "m...mmmmmmmmmmmm"
+ /* 9 */ "a...ammmmmmmmmmm"
+ /* 10 */ "a...ammmmmmmmmmm"
+ /* 11 */ "a...aaaeemmmmmmm"
+ /* 12 */ "a....gaaammmmmmm"
+ /* 13 */ "a....gaaammmmmmm"
+ /* 14 */ "a....gaaammmaaam"
+ /* 15 */ "aaaaaaaffmmmaaam"
+
+ // Level 9
+ /* z\x* 111111 */
+ /* * 0123456789012345 */
+ /* 0 */ "mmmmmmmmmmmcaaab"
+ /* 1 */ "mmmmmmmmmmmcaaab"
+ /* 2 */ "mmmmmmmmmmmcaaab"
+ /* 3 */ "mmmmmmmmmmmcaaab"
+ /* 4 */ "mmmmmmmmmmmcaaab"
+ /* 5 */ "mmmmmmmmmmmcaaab"
+ /* 6 */ "m...mmmmmmmcaaab"
+ /* 7 */ "m...mmmmmmmcaaab"
+ /* 8 */ "m...mmmmmmmcaaab"
+ /* 9 */ "m...mmmmmmmcaaab"
+ /* 10 */ "m...mmmmmmmcaaab"
+ /* 11 */ "m...maaaaeecaaab"
+ /* 12 */ "m......gaaaaaaab"
+ /* 13 */ "m......gaaaaaaab"
+ /* 14 */ "m......gaaaaaaab"
+ /* 15 */ "mmmmmaaaafffaaab"
+
+ // Level 10
+ /* z\x* 111111 */
+ /* * 0123456789012345 */
+ /* 0 */ "mmmmmmmmmmmaaaaa"
+ /* 1 */ "mmmmmmmmmmmaaaaa"
+ /* 2 */ "mmmmmmmmmmmaaaaa"
+ /* 3 */ "mmmmmmmmmmmaaaaa"
+ /* 4 */ "mmmmmmmmmmmaaaaa"
+ /* 5 */ "mmmmmmmmmmmaaaaa"
+ /* 6 */ "mmmmmmmmmmmaaaaa"
+ /* 7 */ "mmmmmmmmmmmaaaaa"
+ /* 8 */ "m...mmmmmmmaaaaa"
+ /* 9 */ "m...mmmmmmmaaaaa"
+ /* 10 */ "m...mmmmmmmaaaaa"
+ /* 11 */ "m...mmmaaaaaaaaa"
+ /* 12 */ "m........gaaaaaa"
+ /* 13 */ "m........gaaaaaa"
+ /* 14 */ "m........gaaaaaa"
+ /* 15 */ "mmmmmmmaaaaaaaaa"
+
+ // Level 11
+ /* z\x* 111111 */
+ /* * 0123456789012345 */
+ /* 0 */ "mmmmmmmmmmma...a"
+ /* 1 */ "mmmmmmmmmmma...a"
+ /* 2 */ "mmmmmmmmmmma...a"
+ /* 3 */ "mmmmmmmmmmma...a"
+ /* 4 */ "mmmmmmmmmmma...a"
+ /* 5 */ "mmmmmmmmmmma...a"
+ /* 6 */ "mmmmmmmmmmma...a"
+ /* 7 */ "mmmmmmmmmmma...a"
+ /* 8 */ "mmmmmmmmmmma...a"
+ /* 9 */ "mmmmmmmmmmma...a"
+ /* 10 */ "mmmmmmmmmmma...a"
+ /* 11 */ "mmmmmmmmmaaa...a"
+ /* 12 */ "mmmm...........a"
+ /* 13 */ "mmmm...........a"
+ /* 14 */ "mmmm...........a"
+ /* 15 */ "mmmmmmmmmaaa...a"
+
+ // Level 12
+ /* z\x* 111111 */
+ /* * 0123456789012345 */
+ /* 0 */ "mmmmmmmmmmmm...m"
+ /* 1 */ "mmmmmmmmmmmm...m"
+ /* 2 */ "mmmmmmmmmmmm...m"
+ /* 3 */ "mmmmmmmmmmmm...m"
+ /* 4 */ "mmmmmmmmmmmm...m"
+ /* 5 */ "mmmmmmmmmmmm...m"
+ /* 6 */ "mmmmmmmmmmmm...m"
+ /* 7 */ "mmmmmmmmmmmm...m"
+ /* 8 */ "mmmmmmmmmmmm...m"
+ /* 9 */ "mmmmmmmmmmmm...m"
+ /* 10 */ "mmmmmmmmmmmm...m"
+ /* 11 */ "mmmmmmmmmmmm...m"
+ /* 12 */ "mmmmmm.........m"
+ /* 13 */ "mmmmmm.........m"
+ /* 14 */ "mmmmmm.........m"
+ /* 15 */ "mmmmmmmmmmmm...m"
+
+ // Level 13
+ /* z\x* 111111 */
+ /* * 0123456789012345 */
+ /* 0 */ "mmmmmmmmmmmm...m"
+ /* 1 */ "mmmmmmmmmmmm...m"
+ /* 2 */ "mmmmmmmmmmmm...m"
+ /* 3 */ "mmmmmmmmmmmm...m"
+ /* 4 */ "mmmmmmmmmmmm...m"
+ /* 5 */ "mmmmmmmmmmmm...m"
+ /* 6 */ "mmmmmmmmmmmm...m"
+ /* 7 */ "mmmmmmmmmmmm...m"
+ /* 8 */ "mmmmmmmmmmmm...m"
+ /* 9 */ "mmmmmmmmmmmm...m"
+ /* 10 */ "mmmmmmmmmmmm...m"
+ /* 11 */ "mmmmmmmmmmmm...m"
+ /* 12 */ "mmmmmmmm.......m"
+ /* 13 */ "mmmmmmmm.......m"
+ /* 14 */ "mmmmmmmm.......m"
+ /* 15 */ "mmmmmmmmmmmm...m",
+
+ // Connectors:
+ "0: 13, 11, 0: 2\n" /* Type 0, direction Z- */
+ "0: 13, 11, 15: 3\n" /* Type 0, direction Z+ */
+ "0: 0, 5, 2: 4\n" /* Type 0, direction X- */
+ "0: 15, 5, 2: 5\n" /* Type 0, direction X+ */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ true,
+
+ // DefaultWeight:
+ 20,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+
+ // MoveToGround:
+ false,
+ }, // SlabbedBridgeStairs
+
+
+
+ ////////////////////////////////////////////////////////////////////////////////
// StairsToOpen1:
// The data has been exported from the gallery Nether, area index 27, ID 277, created by Aloe_vera
{
@@ -4460,7 +5175,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// StairsToOpen2:
// The data has been exported from the gallery Nether, area index 8, ID 35, created by xoft
{
@@ -4606,7 +5321,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// Tee2x4:
// The data has been exported from the gallery Nether, area index 40, ID 291, created by Aloe_vera
{
@@ -4726,7 +5441,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// Tee4x4:
// The data has been exported from the gallery Nether, area index 41, ID 292, created by Aloe_vera
{
@@ -4858,7 +5573,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// TinyCorridorCorner:
// The data has been exported from the gallery Nether, area index 66, ID 331, created by xoft
{
@@ -4957,7 +5672,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// TinyCorridorCornerChest:
// The data has been exported from the gallery Nether, area index 67, ID 332, created by Aloe_vera
{
@@ -5057,7 +5772,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// TinyCorridorCrossing:
// The data has been exported from the gallery Nether, area index 64, ID 329, created by xoft
{
@@ -5159,7 +5874,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// Turret:
// The data has been exported from the gallery Nether, area index 7, ID 34, created by xoft
{
@@ -5283,7 +5998,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] =
const cPrefab::sDef g_NetherFortStartingPrefabs[] =
{
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// CentralRoom:
// The data has been exported from the gallery Nether, area index 22, ID 164, created by Aloe_vera
{
diff --git a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp
index f5c5b7a20..4613f76e2 100644
--- a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp
+++ b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp
@@ -15,7 +15,7 @@
const cPrefab::sDef g_PlainsVillagePrefabs[] =
{
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// BigPlantBed:
// The data has been exported from the gallery Plains, area index 26, ID 70, created by Taugrammaton
{
@@ -195,7 +195,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// CobbleHouse10x5Library:
// The data has been exported from the gallery Plains, area index 23, ID 66, created by xoft
{
@@ -336,7 +336,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// DoublePlantBed:
// The data has been exported from the gallery Plains, area index 5, ID 20, created by tonibm1999
{
@@ -356,35 +356,37 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
"e: 8: 0\n" /* water */
"f: 50: 5\n" /* torch */
"g: 59: 7\n" /* crops */
+ "h: 59: 3\n" /* crops */
+ "i: 59: 5\n" /* crops */
"m: 19: 0\n" /* sponge */,
// Block data:
// Level 0
/* z\x* 11111 */
/* * 012345678901234 */
- /* 0 */ "aaaaaaaaaaaaaaa"
+ /* 0 */ "aaaaaaabaaaaaaa"
/* 1 */ "aaaaaaaaaaaaaaa"
/* 2 */ "aaaaaaaaaaaaaaa"
/* 3 */ "aaaaaaaaaaaaaaa"
- /* 4 */ "aaaaaaaaaaaaaaa"
- /* 5 */ "aaaaaaaaaaaaaaa"
- /* 6 */ "aaaaaaaaaaaaaaa"
- /* 7 */ "aaaaaaaaaaaaaaa"
- /* 8 */ "aaaaaaaaaaaaaaa"
-
- // Level 1
- /* z\x* 11111 */
- /* * 012345678901234 */
- /* 0 */ "aaaaaaabaaaaaaa"
- /* 1 */ "aaaaaaabaaaaaaa"
- /* 2 */ "aaaaaaabaaaaaaa"
- /* 3 */ "aaaaaaabaaaaaaa"
/* 4 */ "aaaaaaabaaaaaaa"
/* 5 */ "aaaaaaabaaaaaaa"
/* 6 */ "aaaaaaabaaaaaaa"
/* 7 */ "aaaaaaabaaaaaaa"
/* 8 */ "aaaaaaabaaaaaaa"
+ // Level 1
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "aaaaaaamaaaaaaa"
+ /* 1 */ "aaaaaaamaaaaaaa"
+ /* 2 */ "aaaaaaamaaaaaaa"
+ /* 3 */ "aaaaaaamaaaaaaa"
+ /* 4 */ "aaaaaaamaaaaaaa"
+ /* 5 */ "aaaaaaamaaaaaaa"
+ /* 6 */ "aaaaaaamaaaaaaa"
+ /* 7 */ "aaaaaaamaaaaaaa"
+ /* 8 */ "aaaaaaamaaaaaaa"
+
// Level 2
/* z\x* 11111 */
/* * 012345678901234 */
@@ -403,12 +405,12 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* * 012345678901234 */
/* 0 */ "f.....f.f.....f"
/* 1 */ ".gg.gg...gg.gg."
- /* 2 */ ".g...g...gg.gg."
- /* 3 */ ".g.......gg.gg."
- /* 4 */ ".gg..g...gg.gg."
- /* 5 */ ".gg..g...gg.gg."
- /* 6 */ "..g..g...gg.gg."
- /* 7 */ "..g.g....gg.gg."
+ /* 2 */ ".gg.hg...gg.gg."
+ /* 3 */ ".gg.gi...gg.gg."
+ /* 4 */ ".gg.gg...gg.gg."
+ /* 5 */ ".gg.gg...gg.gg."
+ /* 6 */ ".gg.gg...gg.gg."
+ /* 7 */ ".gg.gg...gg.gg."
/* 8 */ "f.....f.f.....f"
// Level 4
@@ -490,7 +492,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// Forge:
// The data has been exported from the gallery Plains, area index 51, ID 102, created by Aloe_vera
{
@@ -509,12 +511,12 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
"d: 67: 1\n" /* stairs */
"e: 17: 0\n" /* tree */
"f: 5: 0\n" /* wood */
- "g: 64: 6\n" /* wooddoorblock */
+ "g: 64: 2\n" /* wooddoorblock */
"h: 10: 0\n" /* lava */
"i: 54: 2\n" /* chest */
"j: 61: 2\n" /* furnace */
"k:102: 0\n" /* glasspane */
- "l: 64:12\n" /* wooddoorblock */
+ "l: 64: 8\n" /* wooddoorblock */
"m: 19: 0\n" /* sponge */
"n:139: 0\n" /* cobblestonewall */
"o:101: 0\n" /* ironbars */
@@ -690,7 +692,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// LampPost:
// The data has been exported from the gallery Plains, area index 28, ID 73, created by STR_Warrior
{
@@ -782,7 +784,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// MineshaftCorridor:
// The data has been exported from the gallery Plains, area index 139, ID 447, created by STR_Warrior
{
@@ -859,7 +861,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// MineshaftCrossing:
// The data has been exported from the gallery Plains, area index 171, ID 578, created by Aloe_vera
{
@@ -944,7 +946,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// MineshaftCrossing:
// The data has been exported from the gallery Plains, area index 193, ID 657, created by Aloe_vera
{
@@ -1062,7 +1064,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// MineshaftDoubleCrossing:
// The data has been exported from the gallery Plains, area index 172, ID 579, created by Aloe_vera
{
@@ -1187,7 +1189,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// MineshaftSpiral:
// The data has been exported from the gallery Plains, area index 198, ID 662, created by Aloe_vera
{
@@ -1368,7 +1370,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// MineshaftStairs:
// The data has been exported from the gallery Plains, area index 195, ID 659, created by Aloe_vera
{
@@ -1467,7 +1469,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// MineshaftStairsCrossing:
// The data has been exported from the gallery Plains, area index 199, ID 663, created by Aloe_vera
{
@@ -1717,7 +1719,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// MineshaftTee:
// The data has been exported from the gallery Plains, area index 194, ID 658, created by Aloe_vera
{
@@ -1817,7 +1819,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// MineshaftsCorridor5:
// The data has been exported from the gallery Plains, area index 200, ID 664, created by Aloe_vera
{
@@ -1896,7 +1898,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// Scarecrow:
// The data has been exported from the gallery Plains, area index 150, ID 494, created by STR_Warrior
{
@@ -1981,7 +1983,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// SinglePlantBed:
// The data has been exported from the gallery Plains, area index 17, ID 60, created by Aloe_vera
{
@@ -2106,7 +2108,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// WoodenChurchMid:
// The data has been exported from the gallery Plains, area index 58, ID 109, created by Aloe_vera
{
@@ -2416,7 +2418,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// WoodenGranary:
// The data has been exported from the gallery Plains, area index 54, ID 105, created by Aloe_vera
{
@@ -2544,7 +2546,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
true,
// DefaultWeight:
- 100,
+ 20,
// DepthWeight:
"",
@@ -2558,7 +2560,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// WoodenHouse10x7Library:
// The data has been exported from the gallery Plains, area index 47, ID 98, created by Aloe_vera
{
@@ -2727,7 +2729,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// WoodenHouse5x5:
// The data has been exported from the gallery Plains, area index 49, ID 100, created by Aloe_vera
{
@@ -2746,8 +2748,8 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
"d: 67: 1\n" /* stairs */
"e: 17: 0\n" /* tree */
"f: 5: 0\n" /* wood */
- "g: 64: 7\n" /* wooddoorblock */
- "h: 64:12\n" /* wooddoorblock */
+ "g: 64: 3\n" /* wooddoorblock */
+ "h: 64: 8\n" /* wooddoorblock */
"i:102: 0\n" /* glasspane */
"j: 53: 2\n" /* woodstairs */
"k: 53: 7\n" /* woodstairs */
@@ -2854,7 +2856,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// WoodenHouse7x5:
// The data has been exported from the gallery Plains, area index 40, ID 91, created by xoft
{
@@ -2981,7 +2983,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// WoodenHouse9x5:
// The data has been exported from the gallery Plains, area index 41, ID 92, created by xoft
{
@@ -3000,9 +3002,9 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
"d: 67: 1\n" /* stairs */
"e: 17: 0\n" /* tree */
"f: 5: 0\n" /* wood */
- "g: 64: 7\n" /* wooddoorblock */
+ "g: 64: 3\n" /* wooddoorblock */
"h:102: 0\n" /* glasspane */
- "i: 64:12\n" /* wooddoorblock */
+ "i: 64: 8\n" /* wooddoorblock */
"j: 53: 2\n" /* woodstairs */
"k: 53: 7\n" /* woodstairs */
"l: 50: 3\n" /* torch */
@@ -3115,7 +3117,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// WoodenHouse9x5Fence:
// The data has been exported from the gallery Plains, area index 9, ID 26, created by Aloe_vera
{
@@ -3141,31 +3143,32 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
"k: 85: 0\n" /* fence */
"l: 53: 0\n" /* woodstairs */
"m: 19: 0\n" /* sponge */
- "n: 64: 6\n" /* wooddoorblock */
+ "n: 64: 2\n" /* wooddoorblock */
"o: 64: 4\n" /* wooddoorblock */
"p:102: 0\n" /* glasspane */
"q: 72: 0\n" /* woodplate */
- "r: 64:12\n" /* wooddoorblock */
- "s: 53: 5\n" /* woodstairs */
- "t: 53: 4\n" /* woodstairs */
- "u: 50: 1\n" /* torch */
- "v: 50: 2\n" /* torch */,
+ "r: 64: 8\n" /* wooddoorblock */
+ "s: 64:12\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 */ ".........."
- /* 1 */ ".aaaaa...."
- /* 2 */ ".aaaaa...."
- /* 3 */ ".aaaaabbbb"
+ /* 0 */ "mmmmmmmmmm"
+ /* 1 */ "maaaaammmm"
+ /* 2 */ "maaaaammmm"
+ /* 3 */ "maaaaabbbb"
/* 4 */ "aaaaaabbbb"
/* 5 */ "aaaaaabbbb"
/* 6 */ "aaaaaabbbb"
- /* 7 */ ".aaaaabbbb"
- /* 8 */ ".aaaaabbbb"
- /* 9 */ ".aaaaa...."
- /* 10 */ ".........."
+ /* 7 */ "maaaaabbbb"
+ /* 8 */ "maaaaabbbb"
+ /* 9 */ "maaaaammmm"
+ /* 10 */ "mmmmmmmmmm"
// Level 1
/* z\x* */
@@ -3205,7 +3208,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 2 */ ".p.q.pmmmm"
/* 3 */ ".p...p...."
/* 4 */ ".c...c...."
- /* 5 */ ".r...r...."
+ /* 5 */ ".r...s...."
/* 6 */ ".c...c...."
/* 7 */ ".p...p...."
/* 8 */ ".p...p...."
@@ -3215,47 +3218,47 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
// Level 4
/* z\x* */
/* * 0123456789 */
- /* 0 */ "ls...tjmmm"
+ /* 0 */ "lt...ujmmm"
/* 1 */ "licccijmmm"
/* 2 */ "lc...cjmmm"
/* 3 */ "lc...cj..."
- /* 4 */ "lcu.vcj..."
+ /* 4 */ "lcv.wcj..."
/* 5 */ "lc...cj..."
- /* 6 */ "lcu.vcj..."
+ /* 6 */ "lcv.wcj..."
/* 7 */ "lc...cj..."
/* 8 */ "lc...cj..."
/* 9 */ "licccijmmm"
- /* 10 */ "ls...tjmmm"
+ /* 10 */ "lt...ujmmm"
// Level 5
/* z\x* */
/* * 0123456789 */
- /* 0 */ "mls.tjmmmm"
- /* 1 */ "mlcccjmmmm"
- /* 2 */ "mlc.cjmmmm"
- /* 3 */ "mlc.cjm..."
- /* 4 */ "mlc.cjm..."
- /* 5 */ "mlc.cjm..."
- /* 6 */ "mlc.cjm..."
- /* 7 */ "mlc.cjm..."
- /* 8 */ "mlc.cjm..."
- /* 9 */ "mlcccjmmmm"
- /* 10 */ "mls.tjmmmm"
+ /* 0 */ ".lt.uj.mmm"
+ /* 1 */ ".lcccj.mmm"
+ /* 2 */ ".lc.cj.mmm"
+ /* 3 */ ".lc.cj...."
+ /* 4 */ ".lc.cj...."
+ /* 5 */ ".lc.cj...."
+ /* 6 */ ".lc.cj...."
+ /* 7 */ ".lc.cj...."
+ /* 8 */ ".lc.cj...."
+ /* 9 */ ".lcccj.mmm"
+ /* 10 */ ".lt.uj.mmm"
// Level 6
/* z\x* */
/* * 0123456789 */
- /* 0 */ "mmlcjmmmmm"
- /* 1 */ "mmlcjmmmmm"
- /* 2 */ "mmlcjmmmmm"
- /* 3 */ "mmlcjmm..."
- /* 4 */ "mmlcjmm..."
- /* 5 */ "mmlcjmm..."
- /* 6 */ "mmlcjmm..."
- /* 7 */ "mmlcjmm..."
- /* 8 */ "mmlcjmm..."
- /* 9 */ "mmlcjmmmmm"
- /* 10 */ "mmlcjmmmmm",
+ /* 0 */ "..lcj..mmm"
+ /* 1 */ "..lcj..mmm"
+ /* 2 */ "..lcj..mmm"
+ /* 3 */ "..lcj....."
+ /* 4 */ "..lcj....."
+ /* 5 */ "..lcj....."
+ /* 6 */ "..lcj....."
+ /* 7 */ "..lcj....."
+ /* 8 */ "..lcj....."
+ /* 9 */ "..lcj..mmm"
+ /* 10 */ "..lcj..mmm",
// Connectors:
"-1: 0, 1, 5: 4\n" /* Type -1, direction X- */,
@@ -3284,7 +3287,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// WoodenHouse9x5Library:
// The data has been exported from the gallery Plains, area index 46, ID 97, created by Aloe_vera
{
@@ -3425,7 +3428,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// WoodenHouse9x7:
// The data has been exported from the gallery Plains, area index 52, ID 103, created by Aloe_vera
{
@@ -3587,7 +3590,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// WoodenHouse9x7Butcher:
// The data has been exported from the gallery Plains, area index 48, ID 99, created by Aloe_vera
{
@@ -3600,8 +3603,8 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
// Block definitions:
".: 0: 0\n" /* air */
- "a: 2: 0\n" /* grass */
- "b: 3: 0\n" /* dirt */
+ "a: 3: 0\n" /* dirt */
+ "b: 2: 0\n" /* grass */
"c: 4: 0\n" /* cobblestone */
"d: 67: 0\n" /* stairs */
"e: 67: 2\n" /* stairs */
@@ -3626,19 +3629,19 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
// Level 0
/* z\x* 1 */
/* * 01234567890 */
- /* 0 */ "aaabbbbaaaa"
- /* 1 */ "abbbbbbbbba"
- /* 2 */ "abbbbbbbbba"
- /* 3 */ "abbbbbbbbba"
- /* 4 */ "abbbbbbbbba"
- /* 5 */ "abbbbbbbbba"
- /* 6 */ "abbbbbbbbba"
- /* 7 */ "abbbbbbbbba"
- /* 8 */ "aabbbbbbbaa"
- /* 9 */ "aabbbbbbbaa"
- /* 10 */ "aabbbbbbbaa"
- /* 11 */ "aabbbbbbbaa"
- /* 12 */ "aabbbbbbbaa"
+ /* 0 */ "aaaaaaaaaaa"
+ /* 1 */ "aaaaaaaaaaa"
+ /* 2 */ "aaaaaaaaaaa"
+ /* 3 */ "aaaaaaaaaaa"
+ /* 4 */ "aaaaaaaaaab"
+ /* 5 */ "baaaaaaaaab"
+ /* 6 */ "aaaaaaaaaaa"
+ /* 7 */ "baaaaaaaaaa"
+ /* 8 */ "baaaaaaaaaa"
+ /* 9 */ "baaaaaaaaab"
+ /* 10 */ "aaaaaaaaaaa"
+ /* 11 */ "aaaaaaaaaba"
+ /* 12 */ "aaaaaaaaaba"
// Level 1
/* z\x* 1 */
@@ -3651,11 +3654,11 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 5 */ "mcccccccccm"
/* 6 */ "mcccccccccm"
/* 7 */ "mcccccccccm"
- /* 8 */ "mmbbbbbbbmm"
- /* 9 */ "mmbbbbbbbmm"
- /* 10 */ "mmbbbbbbbmm"
- /* 11 */ "mmbbbbbbbmm"
- /* 12 */ "mmbbbbbbbmm"
+ /* 8 */ "mmaaaaaaamm"
+ /* 9 */ "mmaaaaaaamm"
+ /* 10 */ "mmaaaaaaamm"
+ /* 11 */ "mmaaaaaaamm"
+ /* 12 */ "mmaaaaaaamm"
// Level 2
/* z\x* 1 */
@@ -3668,11 +3671,11 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 5 */ ".cggggcccc."
/* 6 */ ".cggggcccc."
/* 7 */ ".ccccccccc."
- /* 8 */ "..aaaaaaa.."
- /* 9 */ "..aaaaaaa.."
- /* 10 */ "..aaaaaaa.."
- /* 11 */ "..aaaaaaa.."
- /* 12 */ "..aaaaaaa.."
+ /* 8 */ "..bbbbbbb.."
+ /* 9 */ "mmbbbbbbbmm"
+ /* 10 */ "mmbbbbbbbmm"
+ /* 11 */ "mmbbbbbbbmm"
+ /* 12 */ "mmbbbbbbbmm"
// Level 3
/* z\x* 1 */
@@ -3686,10 +3689,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 6 */ ".i.......i."
/* 7 */ ".hiiijiiih."
/* 8 */ "..l.....l.."
- /* 9 */ "..l.....l.."
- /* 10 */ "..l.....l.."
- /* 11 */ "..l.....l.."
- /* 12 */ "..lllllll.."
+ /* 9 */ "mml.....lmm"
+ /* 10 */ "mml.....lmm"
+ /* 11 */ "mml.....lmm"
+ /* 12 */ "mmlllllllmm"
// Level 4
/* z\x* 1 */
@@ -3703,10 +3706,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 6 */ ".o.......o."
/* 7 */ ".hooipiooh."
/* 8 */ "..........."
- /* 9 */ "..........."
- /* 10 */ "..........."
- /* 11 */ "..........."
- /* 12 */ "..........."
+ /* 9 */ "mm.......mm"
+ /* 10 */ "mm.......mm"
+ /* 11 */ "mm.......mm"
+ /* 12 */ "mm.......mm"
// Level 5
/* z\x* 1 */
@@ -3720,10 +3723,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 6 */ ".i.......i."
/* 7 */ "uiiiiiiiiiu"
/* 8 */ "kkkkkkkkkkk"
- /* 9 */ "..........."
- /* 10 */ "..........."
- /* 11 */ "..........."
- /* 12 */ "..........."
+ /* 9 */ "mm.......mm"
+ /* 10 */ "mm.......mm"
+ /* 11 */ "mm.......mm"
+ /* 12 */ "mm.......mm"
// Level 6
/* z\x* 1 */
@@ -3737,10 +3740,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 6 */ "uiiiiiiiiiu"
/* 7 */ "kkkkkkkkkkk"
/* 8 */ "..........."
- /* 9 */ "..........."
- /* 10 */ "..........."
- /* 11 */ "..........."
- /* 12 */ "..........."
+ /* 9 */ "mm.......mm"
+ /* 10 */ "mm.......mm"
+ /* 11 */ "mm.......mm"
+ /* 12 */ "mm.......mm"
// Level 7
/* z\x* 1 */
@@ -3754,10 +3757,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 6 */ "kkkkkkkkkkk"
/* 7 */ "..........."
/* 8 */ "..........."
- /* 9 */ "..........."
- /* 10 */ "..........."
- /* 11 */ "..........."
- /* 12 */ "..........."
+ /* 9 */ "mm.......mm"
+ /* 10 */ "mm.......mm"
+ /* 11 */ "mm.......mm"
+ /* 12 */ "mm.......mm"
// Level 8
/* z\x* 1 */
@@ -3771,10 +3774,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 6 */ "..........."
/* 7 */ "..........."
/* 8 */ "..........."
- /* 9 */ "..........."
- /* 10 */ "..........."
- /* 11 */ "..........."
- /* 12 */ "...........",
+ /* 9 */ "mm.......mm"
+ /* 10 */ "mm.......mm"
+ /* 11 */ "mm.......mm"
+ /* 12 */ "mm.......mm",
// Connectors:
"-1: 5, 2, 0: 2\n" /* Type -1, direction Z- */,
@@ -3803,7 +3806,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// WoodenHouse9x7DoubleDoor:
// The data has been exported from the gallery Plains, area index 38, ID 87, created by Aloe_vera
{
@@ -3968,7 +3971,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// WoodenHouseL13x14:
// The data has been exported from the gallery Plains, area index 39, ID 90, created by STR_Warrior
{
@@ -4220,7 +4223,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// WoodenHouseL14x14:
// The data has been exported from the gallery Plains, area index 0, ID 4, created by Aloe_vera
{
@@ -4234,30 +4237,29 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
// Block definitions:
".: 0: 0\n" /* air */
"a: 4: 0\n" /* cobblestone */
- "b: 2: 0\n" /* grass */
- "c: 67: 0\n" /* stairs */
- "d: 67: 2\n" /* stairs */
- "e: 67: 1\n" /* stairs */
- "f: 5: 0\n" /* wood */
- "g: 67: 3\n" /* stairs */
- "h: 17: 0\n" /* tree */
- "i: 64: 7\n" /* wooddoorblock */
- "j: 64: 5\n" /* wooddoorblock */
- "k:102: 0\n" /* glasspane */
- "l: 64:12\n" /* wooddoorblock */
+ "b: 67: 0\n" /* stairs */
+ "c: 67: 2\n" /* stairs */
+ "d: 67: 1\n" /* stairs */
+ "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: 2\n" /* woodstairs */
- "o: 53: 1\n" /* woodstairs */
- "p: 53: 7\n" /* woodstairs */
- "q: 53: 6\n" /* woodstairs */
- "r: 53: 3\n" /* woodstairs */
- "s: 53: 0\n" /* woodstairs */
- "t: 53: 5\n" /* woodstairs */
- "u: 53: 4\n" /* woodstairs */
- "v: 50: 3\n" /* torch */
- "w: 50: 2\n" /* torch */
- "x: 50: 4\n" /* torch */
- "y: 50: 1\n" /* torch */,
+ "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
@@ -4271,134 +4273,134 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 5 */ "maaaaaaaaaaaaaam"
/* 6 */ "maaaaaaaaaaaaaam"
/* 7 */ "maaaaaaaaaaaaaam"
- /* 8 */ "bbbbbaaaaaaaaaam"
- /* 9 */ "bbbbbbbbaaaaaaam"
- /* 10 */ "bbbbbbbbaaaaaaam"
- /* 11 */ "bbbbbbbbaaaaaaam"
- /* 12 */ "bbbbbbbbaaaaaaam"
- /* 13 */ "bbbbbbbbaaaaaaam"
- /* 14 */ "bbbbbbbbaaaaaaam"
- /* 15 */ "bbbbbbbbmmmmmmmm"
+ /* 8 */ "mmmmmaaaaaaaaaam"
+ /* 9 */ "mmmmmmmmaaaaaaam"
+ /* 10 */ "mmmmmmmmaaaaaaam"
+ /* 11 */ "mmmmmmmmaaaaaaam"
+ /* 12 */ "mmmmmmmmaaaaaaam"
+ /* 13 */ "mmmmmmmmaaaaaaam"
+ /* 14 */ "mmmmmmmmaaaaaaam"
+ /* 15 */ "mmmmmmmmmmmmmmmm"
// Level 1
/* z\x* 111111 */
/* * 0123456789012345 */
- /* 0 */ "........cde....."
+ /* 0 */ "........bcd....."
/* 1 */ ".aaaaaaaaaaaaaa."
- /* 2 */ ".affffffffffffa."
- /* 3 */ ".affffffffffffa."
- /* 4 */ ".affffffffffffa."
- /* 5 */ ".affffffffffffa."
- /* 6 */ ".affffffffffffa."
- /* 7 */ ".aaaaaaaafffffa."
- /* 8 */ ".....cgeafffffa."
- /* 9 */ "........afffffa."
- /* 10 */ "........afffffa."
- /* 11 */ "........afffffa."
- /* 12 */ "........afffffa."
- /* 13 */ "........afffffa."
- /* 14 */ "........aaaaaaa."
- /* 15 */ "................"
+ /* 2 */ ".aeeeeeeeeeeeea."
+ /* 3 */ ".aeeeeeeeeeeeea."
+ /* 4 */ ".aeeeeeeeeeeeea."
+ /* 5 */ ".aeeeeeeeeeeeea."
+ /* 6 */ ".aeeeeeeeeeeeea."
+ /* 7 */ ".aaaaaaaaeeeeea."
+ /* 8 */ ".....bfdaeeeeea."
+ /* 9 */ "mmmm....aeeeeea."
+ /* 10 */ "mmmmmmm.aeeeeea."
+ /* 11 */ "mmmmmmm.aeeeeea."
+ /* 12 */ "mmmmmmm.aeeeeea."
+ /* 13 */ "mmmmmmm.aeeeeea."
+ /* 14 */ "mmmmmmm.aaaaaaa."
+ /* 15 */ "mmmmmmm........."
// Level 2
/* z\x* 111111 */
/* * 0123456789012345 */
/* 0 */ "................"
- /* 1 */ ".hffffffhihfffh."
- /* 2 */ ".f............f."
- /* 3 */ ".f............f."
- /* 4 */ ".f............f."
- /* 5 */ ".f............f."
- /* 6 */ ".f............f."
- /* 7 */ ".hffffjfh.....f."
- /* 8 */ "........f.....f."
- /* 9 */ "........f.....f."
- /* 10 */ "........f.....f."
- /* 11 */ "........f.....f."
- /* 12 */ "........f.....f."
- /* 13 */ "........f.....f."
- /* 14 */ "........hfffffh."
- /* 15 */ "................"
+ /* 1 */ ".geeeeeeghgeeeg."
+ /* 2 */ ".e............e."
+ /* 3 */ ".e............e."
+ /* 4 */ ".e............e."
+ /* 5 */ ".e............e."
+ /* 6 */ ".e............e."
+ /* 7 */ ".geeeeieg.....e."
+ /* 8 */ "........e.....e."
+ /* 9 */ "mmmm....e.....e."
+ /* 10 */ "mmmmmmm.e.....e."
+ /* 11 */ "mmmmmmm.e.....e."
+ /* 12 */ "mmmmmmm.e.....e."
+ /* 13 */ "mmmmmmm.e.....e."
+ /* 14 */ "mmmmmmm.geeeeeg."
+ /* 15 */ "mmmmmmm........."
// Level 3
/* z\x* 111111 */
/* * 0123456789012345 */
/* 0 */ "................"
- /* 1 */ ".hfkkfkkhlhkkfh."
- /* 2 */ ".k............f."
- /* 3 */ ".k............k."
- /* 4 */ ".k............k."
- /* 5 */ ".k............f."
- /* 6 */ ".k............k."
- /* 7 */ ".hfkkflfh.....k."
- /* 8 */ "........f.....f."
- /* 9 */ "........k.....k."
- /* 10 */ "........k.....k."
- /* 11 */ "........f.....f."
- /* 12 */ "........k.....k."
- /* 13 */ "........k.....k."
- /* 14 */ "........hkkkkkh."
- /* 15 */ "................"
+ /* 1 */ ".gejjejjgkgjjeg."
+ /* 2 */ ".j............e."
+ /* 3 */ ".j............j."
+ /* 4 */ ".j............j."
+ /* 5 */ ".j............e."
+ /* 6 */ ".j............j."
+ /* 7 */ ".gejjekeg.....j."
+ /* 8 */ "........e.....e."
+ /* 9 */ "mmmm....j.....j."
+ /* 10 */ "mmmmmmm.j.....j."
+ /* 11 */ "mmmmmmm.e.....e."
+ /* 12 */ "mmmmmmm.j.....j."
+ /* 13 */ "mmmmmmm.j.....j."
+ /* 14 */ "mmmmmmm.gjjjjjg."
+ /* 15 */ "mmmmmmm........."
// Level 4
/* z\x* 111111 */
/* * 0123456789012345 */
- /* 0 */ "nnnnnnnnnnnnnnno"
- /* 1 */ "phffffffhfhfffho"
- /* 2 */ ".f............fo"
- /* 3 */ ".f............fo"
- /* 4 */ ".f............fo"
- /* 5 */ ".f............fo"
- /* 6 */ ".f............fo"
- /* 7 */ "qhffffffh.....fo"
- /* 8 */ "rrrrrrrsf.....fo"
- /* 9 */ ".......sf.....fo"
- /* 10 */ ".......sf.....fo"
- /* 11 */ ".......sf.....fo"
- /* 12 */ ".......sf.....fo"
- /* 13 */ ".......sf.....fo"
- /* 14 */ ".......shfffffho"
- /* 15 */ ".......st.....uo"
+ /* 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 */ "mmmm...re.....en"
+ /* 10 */ "mmmmmmmre.....en"
+ /* 11 */ "mmmmmmmre.....en"
+ /* 12 */ "mmmmmmmre.....en"
+ /* 13 */ "mmmmmmmre.....en"
+ /* 14 */ "mmmmmmmrgeeeeegn"
+ /* 15 */ "mmmmmmmrs.....tn"
// Level 5
/* z\x* 111111 */
/* * 0123456789012345 */
/* 0 */ "................"
- /* 1 */ "nnnnnnnnnnnnnnn."
- /* 2 */ "pfffffffffffffo."
- /* 3 */ ".f.........v.fo."
- /* 4 */ ".f..........wfo."
- /* 5 */ ".f......x....fo."
- /* 6 */ "qfffffffff...fo."
- /* 7 */ "rrrrrrrrsfy..fo."
- /* 8 */ "........sf...fo."
- /* 9 */ "........sf...fo."
- /* 10 */ "........sf...fo."
- /* 11 */ "........sf...fo."
- /* 12 */ "........sf...fo."
- /* 13 */ "........sf...fo."
- /* 14 */ "........sfffffo."
- /* 15 */ "........st...uo."
+ /* 1 */ "lllllllllllllll."
+ /* 2 */ "oeeeeeeeeeeeeen."
+ /* 3 */ ".e.........u.en."
+ /* 4 */ ".e..........ven."
+ /* 5 */ ".e......w....en."
+ /* 6 */ "peeeeeeeee...en."
+ /* 7 */ "qqqqqqqqrex..en."
+ /* 8 */ "........re...en."
+ /* 9 */ "mmmm....re...en."
+ /* 10 */ "mmmmmmm.re...en."
+ /* 11 */ "mmmmmmm.re...en."
+ /* 12 */ "mmmmmmm.re...en."
+ /* 13 */ "mmmmmmm.re...en."
+ /* 14 */ "mmmmmmm.reeeeen."
+ /* 15 */ "mmmmmmm.rs...tn."
// Level 6
/* z\x* 111111 */
/* * 0123456789012345 */
/* 0 */ "................"
/* 1 */ "................"
- /* 2 */ "nnnnnnnnnnnnno.."
- /* 3 */ "pffffffffffffo.."
- /* 4 */ ".fy.........fo.."
- /* 5 */ "qffffffffff.fo.."
- /* 6 */ "rrrrrrrrrsf.fo.."
- /* 7 */ ".........sf.fo.."
- /* 8 */ ".........sf.fo.."
- /* 9 */ ".........sf.fo.."
- /* 10 */ ".........sf.fo.."
- /* 11 */ ".........sf.fo.."
- /* 12 */ ".........sf.fo.."
- /* 13 */ ".........sfxfo.."
- /* 14 */ ".........sfffo.."
- /* 15 */ ".........st.uo.."
+ /* 2 */ "llllllllllllln.."
+ /* 3 */ "oeeeeeeeeeeeen.."
+ /* 4 */ ".ex.........en.."
+ /* 5 */ "peeeeeeeeee.en.."
+ /* 6 */ "qqqqqqqqqre.en.."
+ /* 7 */ ".........re.en.."
+ /* 8 */ ".........re.en.."
+ /* 9 */ "mmmm.....re.en.."
+ /* 10 */ "mmmmmmm..re.en.."
+ /* 11 */ "mmmmmmm..re.en.."
+ /* 12 */ "mmmmmmm..re.en.."
+ /* 13 */ "mmmmmmm..rewen.."
+ /* 14 */ "mmmmmmm..reeen.."
+ /* 15 */ "mmmmmmm..rs.tn.."
// Level 7
/* z\x* 111111 */
@@ -4406,19 +4408,19 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 0 */ "................"
/* 1 */ "................"
/* 2 */ "................"
- /* 3 */ "nnnnnnnnnnnnn..."
- /* 4 */ "ffffffffffffo..."
- /* 5 */ "rrrrrrrrrrsfo..."
- /* 6 */ "..........sfo..."
- /* 7 */ "..........sfo..."
- /* 8 */ "..........sfo..."
- /* 9 */ "..........sfo..."
- /* 10 */ "..........sfo..."
- /* 11 */ "..........sfo..."
- /* 12 */ "..........sfo..."
- /* 13 */ "..........sfo..."
- /* 14 */ "..........sfo..."
- /* 15 */ "..........sfo...",
+ /* 3 */ "lllllllllllll..."
+ /* 4 */ "eeeeeeeeeeeen..."
+ /* 5 */ "qqqqqqqqqqren..."
+ /* 6 */ "..........ren..."
+ /* 7 */ "..........ren..."
+ /* 8 */ "..........ren..."
+ /* 9 */ "mmmm......ren..."
+ /* 10 */ "mmmmmmm...ren..."
+ /* 11 */ "mmmmmmm...ren..."
+ /* 12 */ "mmmmmmm...ren..."
+ /* 13 */ "mmmmmmm...ren..."
+ /* 14 */ "mmmmmmm...ren..."
+ /* 15 */ "mmmmmmm...ren...",
// Connectors:
"-1: 9, 1, 0: 2\n" /* Type -1, direction Z- */,
@@ -4447,7 +4449,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// WoodenHouseL9x9:
// The data has been exported from the gallery Plains, area index 42, ID 93, created by xoft
{
@@ -4509,10 +4511,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 4 */ ".aaaaaaaaa."
/* 5 */ ".aaaaaaaaa."
/* 6 */ ".....aaaaa."
- /* 7 */ ".....aaaaa."
- /* 8 */ ".....aaaaa."
- /* 9 */ ".....aaaaa."
- /* 10 */ "..........."
+ /* 7 */ "mmmm.aaaaa."
+ /* 8 */ "mmmm.aaaaa."
+ /* 9 */ "mmmm.aaaaa."
+ /* 10 */ "mmmm......."
// Level 2
/* z\x* 1 */
@@ -4524,10 +4526,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 4 */ ".f.......f."
/* 5 */ ".efffe...f."
/* 6 */ ".....f...f."
- /* 7 */ ".....f...f."
- /* 8 */ ".....f...f."
- /* 9 */ ".....efffe."
- /* 10 */ "..........."
+ /* 7 */ "mmmm.f...f."
+ /* 8 */ "mmmm.f...f."
+ /* 9 */ "mmmm.efffe."
+ /* 10 */ "mmmm......."
// Level 3
/* z\x* 1 */
@@ -4539,10 +4541,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 4 */ ".h.......h."
/* 5 */ ".ehhhe...f."
/* 6 */ ".....h...h."
- /* 7 */ ".....h...h."
- /* 8 */ ".....h...h."
- /* 9 */ ".....ehhhe."
- /* 10 */ "..........."
+ /* 7 */ "mmmm.h...h."
+ /* 8 */ "mmmm.h...h."
+ /* 9 */ "mmmm.ehhhe."
+ /* 10 */ "mmmm......."
// Level 4
/* z\x* 1 */
@@ -4554,10 +4556,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 4 */ ".f...o...fl"
/* 5 */ "pfffffq.rfl"
/* 6 */ "sssssf...fl"
- /* 7 */ "....tf...fl"
- /* 8 */ "....tf...fl"
- /* 9 */ "....tfffffl"
- /* 10 */ "....tu...vl"
+ /* 7 */ "mmmmtf...fl"
+ /* 8 */ "mmmmtf...fl"
+ /* 9 */ "mmmmtfffffl"
+ /* 10 */ "mmmmtu...vl"
// Level 5
/* z\x* 1 */
@@ -4569,10 +4571,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 4 */ "pffffff.fl."
/* 5 */ "ssssssf.fl."
/* 6 */ ".....tf.fl."
- /* 7 */ ".....tf.fl."
- /* 8 */ ".....tf.fl."
- /* 9 */ ".....tfffl."
- /* 10 */ ".....tu.vl."
+ /* 7 */ "mmmm.tf.fl."
+ /* 8 */ "mmmm.tf.fl."
+ /* 9 */ "mmmm.tfffl."
+ /* 10 */ "mmmm.tu.vl."
// Level 6
/* z\x* 1 */
@@ -4584,10 +4586,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 4 */ "sssssstfl.."
/* 5 */ "......tfl.."
/* 6 */ "......tfl.."
- /* 7 */ "......tfl.."
- /* 8 */ "......tfl.."
- /* 9 */ "......tfl.."
- /* 10 */ "......tfl..",
+ /* 7 */ "mmmm..tfl.."
+ /* 8 */ "mmmm..tfl.."
+ /* 9 */ "mmmm..tfl.."
+ /* 10 */ "mmmm..tfl..",
// Connectors:
"-1: 5, 1, 0: 2\n" /* Type -1, direction Z- */,
@@ -4616,7 +4618,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// WoodenHouseU13x9:
// The data has been exported from the gallery Plains, area index 43, ID 94, created by xoft
{
@@ -4783,7 +4785,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// WoodenMill5x5:
// The data has been exported from the gallery Plains, area index 60, ID 111, created by Aloe_vera
{
@@ -4837,9 +4839,9 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
// Level 1
/* z\x* 012345678 */
- /* 0 */ "........."
- /* 1 */ "........."
- /* 2 */ "........."
+ /* 0 */ "mmmmmmm.."
+ /* 1 */ "mmmmmmm.."
+ /* 2 */ "mmmmmmm.."
/* 3 */ "........."
/* 4 */ ".aaaaa..."
/* 5 */ ".aaaaab.."
@@ -4847,15 +4849,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 7 */ ".aaaaad.."
/* 8 */ ".aaaaa..."
/* 9 */ "........."
- /* 10 */ "........."
- /* 11 */ "........."
- /* 12 */ "........."
+ /* 10 */ "mmmmmmm.."
+ /* 11 */ "mmmmmmm.."
+ /* 12 */ "mmmmmmm.."
// Level 2
/* z\x* 012345678 */
- /* 0 */ "........."
- /* 1 */ "........."
- /* 2 */ "........."
+ /* 0 */ "mmmmmmm.."
+ /* 1 */ "mmmmmmm.."
+ /* 2 */ "mmmmmmm.."
/* 3 */ "........."
/* 4 */ ".efffe..."
/* 5 */ ".f...f..."
@@ -4863,15 +4865,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 7 */ ".f...f..."
/* 8 */ ".efffe..."
/* 9 */ "........."
- /* 10 */ "........."
- /* 11 */ "........."
- /* 12 */ "........."
+ /* 10 */ "mmmmmmm.."
+ /* 11 */ "mmmmmmm.."
+ /* 12 */ "mmmmmmm.."
// Level 3
/* z\x* 012345678 */
- /* 0 */ "........."
- /* 1 */ "........."
- /* 2 */ "........."
+ /* 0 */ "mmmmmmm.."
+ /* 1 */ "mmmmmmm.."
+ /* 2 */ "mmmmmmm.."
/* 3 */ "........."
/* 4 */ ".ejjje..."
/* 5 */ ".j...f..."
@@ -4879,15 +4881,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 7 */ ".j...f..."
/* 8 */ ".ejjje..."
/* 9 */ "........."
- /* 10 */ "........."
- /* 11 */ "........."
- /* 12 */ "........."
+ /* 10 */ "mmmmmmm.."
+ /* 11 */ "mmmmmmm.."
+ /* 12 */ "mmmmmmm.."
// Level 4
/* z\x* 012345678 */
- /* 0 */ "........."
- /* 1 */ "........."
- /* 2 */ "........."
+ /* 0 */ "mmmmmmm.."
+ /* 1 */ "mmmmmmm.."
+ /* 2 */ "mmmmmmm.."
/* 3 */ "........."
/* 4 */ ".efffe..."
/* 5 */ ".f..nf..."
@@ -4895,15 +4897,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 7 */ ".f..nf..k"
/* 8 */ ".efffe..o"
/* 9 */ "........."
- /* 10 */ "........."
- /* 11 */ "........."
- /* 12 */ "........."
+ /* 10 */ "mmmmmmm.."
+ /* 11 */ "mmmmmmm.."
+ /* 12 */ "mmmmmmm.."
// Level 5
/* z\x* 012345678 */
- /* 0 */ "........."
- /* 1 */ "........."
- /* 2 */ "........."
+ /* 0 */ "mmmmmmm.."
+ /* 1 */ "mmmmmmm.."
+ /* 2 */ "mmmmmmm.."
/* 3 */ "........."
/* 4 */ ".epppe..."
/* 5 */ ".q...q..."
@@ -4911,15 +4913,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 7 */ ".q...q..k"
/* 8 */ ".epppe..o"
/* 9 */ "........."
- /* 10 */ "........."
- /* 11 */ "........."
- /* 12 */ "........."
+ /* 10 */ "mmmmmmm.."
+ /* 11 */ "mmmmmmm.."
+ /* 12 */ "mmmmmmm.."
// Level 6
/* z\x* 012345678 */
- /* 0 */ "........."
- /* 1 */ "........."
- /* 2 */ "........."
+ /* 0 */ "mmmmmmm.."
+ /* 1 */ "mmmmmmm.."
+ /* 2 */ "mmmmmmm.."
/* 3 */ "........."
/* 4 */ ".efffe..."
/* 5 */ ".f...f..."
@@ -4927,15 +4929,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 7 */ ".f...f..o"
/* 8 */ ".efffe..o"
/* 9 */ "........."
- /* 10 */ "........."
- /* 11 */ "........."
- /* 12 */ "........."
+ /* 10 */ "mmmmmmm.."
+ /* 11 */ "mmmmmmm.."
+ /* 12 */ "mmmmmmm.."
// Level 7
/* z\x* 012345678 */
- /* 0 */ "........."
- /* 1 */ "........."
- /* 2 */ "........."
+ /* 0 */ "mmmmmmm.."
+ /* 1 */ "mmmmmmm.."
+ /* 2 */ "mmmmmmm.."
/* 3 */ "........."
/* 4 */ ".ejjje..."
/* 5 */ ".j...j..."
@@ -4943,15 +4945,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 7 */ ".j...j..o"
/* 8 */ ".ejjje..."
/* 9 */ "........."
- /* 10 */ "........."
- /* 11 */ "........."
- /* 12 */ "........."
+ /* 10 */ "mmmmmmm.."
+ /* 11 */ "mmmmmmm.."
+ /* 12 */ "mmmmmmm.."
// Level 8
/* z\x* 012345678 */
- /* 0 */ "........o"
- /* 1 */ "........o"
- /* 2 */ "........o"
+ /* 0 */ "mmmmmmm.o"
+ /* 1 */ "mmmmmmm.o"
+ /* 2 */ "mmmmmmm.o"
/* 3 */ "........."
/* 4 */ ".efffe..."
/* 5 */ ".f...f..k"
@@ -4959,15 +4961,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 7 */ ".f...f..o"
/* 8 */ ".efffe..."
/* 9 */ "........."
- /* 10 */ "........."
- /* 11 */ "........."
- /* 12 */ "........."
+ /* 10 */ "mmmmmmm.."
+ /* 11 */ "mmmmmmm.."
+ /* 12 */ "mmmmmmm.."
// Level 9
/* z\x* 012345678 */
- /* 0 */ "........k"
- /* 1 */ "........k"
- /* 2 */ "........o"
+ /* 0 */ "mmmmmmm.k"
+ /* 1 */ "mmmmmmm.k"
+ /* 2 */ "mmmmmmm.o"
/* 3 */ "........o"
/* 4 */ ".epppe..o"
/* 5 */ ".q...q..k"
@@ -4975,15 +4977,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 7 */ ".q...q..k"
/* 8 */ ".epppe..k"
/* 9 */ "........."
- /* 10 */ "........."
- /* 11 */ "........."
- /* 12 */ "........."
+ /* 10 */ "mmmmmmm.."
+ /* 11 */ "mmmmmmm.."
+ /* 12 */ "mmmmmmm.."
// Level 10
/* z\x* 012345678 */
- /* 0 */ "........."
- /* 1 */ "........."
- /* 2 */ "........k"
+ /* 0 */ "mmmmmmm.."
+ /* 1 */ "mmmmmmm.."
+ /* 2 */ "mmmmmmm.k"
/* 3 */ "rrrrrrr.k"
/* 4 */ "sfffffs.o"
/* 5 */ ".f...f..o"
@@ -4991,15 +4993,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 7 */ ".f...f..o"
/* 8 */ "tffffft.o"
/* 9 */ "uuuuuuu.k"
- /* 10 */ "........k"
- /* 11 */ "........."
- /* 12 */ "........."
+ /* 10 */ "mmmmmmm.k"
+ /* 11 */ "mmmmmmm.."
+ /* 12 */ "mmmmmmm.."
// Level 11
/* z\x* 012345678 */
- /* 0 */ "........."
- /* 1 */ "........."
- /* 2 */ "........."
+ /* 0 */ "mmmmmmm.."
+ /* 1 */ "mmmmmmm.."
+ /* 2 */ "mmmmmmm.."
/* 3 */ "........."
/* 4 */ "rrrrrrr.k"
/* 5 */ "sfffffs.k"
@@ -5007,15 +5009,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 7 */ "tffffft.k"
/* 8 */ "uuuuuuu.o"
/* 9 */ "........o"
- /* 10 */ "........o"
- /* 11 */ "........k"
- /* 12 */ "........k"
+ /* 10 */ "mmmmmmm.o"
+ /* 11 */ "mmmmmmm.k"
+ /* 12 */ "mmmmmmm.k"
// Level 12
/* z\x* 012345678 */
- /* 0 */ "........."
- /* 1 */ "........."
- /* 2 */ "........."
+ /* 0 */ "mmmmmmm.."
+ /* 1 */ "mmmmmmm.."
+ /* 2 */ "mmmmmmm.."
/* 3 */ "........."
/* 4 */ "........."
/* 5 */ "rrrrrrr.o"
@@ -5023,15 +5025,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 7 */ "uuuuuuu.k"
/* 8 */ "........."
/* 9 */ "........."
- /* 10 */ "........o"
- /* 11 */ "........o"
- /* 12 */ "........o"
+ /* 10 */ "mmmmmmm.o"
+ /* 11 */ "mmmmmmm.o"
+ /* 12 */ "mmmmmmm.o"
// Level 13
/* z\x* 012345678 */
- /* 0 */ "........."
- /* 1 */ "........."
- /* 2 */ "........."
+ /* 0 */ "mmmmmmm.."
+ /* 1 */ "mmmmmmm.."
+ /* 2 */ "mmmmmmm.."
/* 3 */ "........."
/* 4 */ "........."
/* 5 */ "........o"
@@ -5039,15 +5041,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 7 */ "........."
/* 8 */ "........."
/* 9 */ "........."
- /* 10 */ "........."
- /* 11 */ "........."
- /* 12 */ "........."
+ /* 10 */ "mmmmmmm.."
+ /* 11 */ "mmmmmmm.."
+ /* 12 */ "mmmmmmm.."
// Level 14
/* z\x* 012345678 */
- /* 0 */ "........."
- /* 1 */ "........."
- /* 2 */ "........."
+ /* 0 */ "mmmmmmm.."
+ /* 1 */ "mmmmmmm.."
+ /* 2 */ "mmmmmmm.."
/* 3 */ "........."
/* 4 */ "........o"
/* 5 */ "........o"
@@ -5055,15 +5057,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 7 */ "........."
/* 8 */ "........."
/* 9 */ "........."
- /* 10 */ "........."
- /* 11 */ "........."
- /* 12 */ "........."
+ /* 10 */ "mmmmmmm.."
+ /* 11 */ "mmmmmmm.."
+ /* 12 */ "mmmmmmm.."
// Level 15
/* z\x* 012345678 */
- /* 0 */ "........."
- /* 1 */ "........."
- /* 2 */ "........."
+ /* 0 */ "mmmmmmm.."
+ /* 1 */ "mmmmmmm.."
+ /* 2 */ "mmmmmmm.."
/* 3 */ "........."
/* 4 */ "........o"
/* 5 */ "........k"
@@ -5071,15 +5073,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 7 */ "........."
/* 8 */ "........."
/* 9 */ "........."
- /* 10 */ "........."
- /* 11 */ "........."
- /* 12 */ "........."
+ /* 10 */ "mmmmmmm.."
+ /* 11 */ "mmmmmmm.."
+ /* 12 */ "mmmmmmm.."
// Level 16
/* z\x* 012345678 */
- /* 0 */ "........."
- /* 1 */ "........."
- /* 2 */ "........."
+ /* 0 */ "mmmmmmm.."
+ /* 1 */ "mmmmmmm.."
+ /* 2 */ "mmmmmmm.."
/* 3 */ "........."
/* 4 */ "........o"
/* 5 */ "........k"
@@ -5087,9 +5089,9 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 7 */ "........."
/* 8 */ "........."
/* 9 */ "........."
- /* 10 */ "........."
- /* 11 */ "........."
- /* 12 */ ".........",
+ /* 10 */ "mmmmmmm.."
+ /* 11 */ "mmmmmmm.."
+ /* 12 */ "mmmmmmm..",
// Connectors:
"-1: 8, 1, 6: 5\n" /* Type -1, direction X+ */,
@@ -5118,7 +5120,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// WoodenStables:
// The data has been exported from the gallery Plains, area index 55, ID 106, created by Aloe_vera
{
@@ -5304,7 +5306,7 @@ const cPrefab::sDef 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
{
@@ -5445,7 +5447,7 @@ const cPrefab::sDef g_PlainsVillageStartingPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// MineEntrance:
// The data has been exported from the gallery Plains, area index 138, ID 446, created by STR_Warrior
{
@@ -5472,13 +5474,15 @@ const cPrefab::sDef g_PlainsVillageStartingPrefabs[] =
"l: 66: 7\n" /* tracks */
"m: 19: 0\n" /* sponge */
"n: 50: 2\n" /* torch */
- "o: 2: 0\n" /* grass */
- "p: 53: 2\n" /* woodstairs */
- "q: 77: 1\n" /* stonebutton */
- "r: 27: 0\n" /* poweredrail */
- "s: 53: 7\n" /* woodstairs */
- "t: 53: 6\n" /* woodstairs */
- "u: 53: 3\n" /* woodstairs */,
+ "o: 4: 0\n" /* cobblestone */
+ "p: 2: 0\n" /* grass */
+ "q: 13: 0\n" /* gravel */
+ "r: 53: 2\n" /* woodstairs */
+ "s: 77: 1\n" /* stonebutton */
+ "t: 27: 0\n" /* poweredrail */
+ "u: 53: 7\n" /* woodstairs */
+ "v: 53: 6\n" /* woodstairs */
+ "w: 53: 3\n" /* woodstairs */,
// Block data:
// Level 0
@@ -5783,28 +5787,28 @@ const cPrefab::sDef g_PlainsVillageStartingPrefabs[] =
// Level 30
/* z\x* 0123456 */
- /* 0 */ "mmmmmmm"
+ /* 0 */ "mmooomm"
/* 1 */ "mmmammm"
- /* 2 */ "mm...mm"
- /* 3 */ "ma..aam"
- /* 4 */ "mmfgamm"
+ /* 2 */ "om...mo"
+ /* 3 */ "oa..aao"
+ /* 4 */ "omfgamo"
/* 5 */ "mmmammm"
- /* 6 */ "mmmmmmm"
+ /* 6 */ "mmooomm"
// Level 31
/* z\x* 0123456 */
- /* 0 */ "ooomooo"
- /* 1 */ "oaaaaao"
- /* 2 */ "oa.aaao"
- /* 3 */ "oa..iao"
- /* 4 */ "oa..jao"
- /* 5 */ "oaaaaao"
- /* 6 */ "ooooooo"
+ /* 0 */ "ppqqqpp"
+ /* 1 */ "paaaaap"
+ /* 2 */ "qa.aaaq"
+ /* 3 */ "qa..iaq"
+ /* 4 */ "qa..jaq"
+ /* 5 */ "paaaaap"
+ /* 6 */ "ppqqqpp"
// Level 32
/* z\x* 0123456 */
- /* 0 */ "...p..."
- /* 1 */ ".aqrba."
+ /* 0 */ "...r..."
+ /* 1 */ ".astba."
/* 2 */ "...fl.."
/* 3 */ "......."
/* 4 */ "......."
@@ -5833,31 +5837,31 @@ const cPrefab::sDef g_PlainsVillageStartingPrefabs[] =
// Level 35
/* z\x* 0123456 */
- /* 0 */ "ppppppp"
- /* 1 */ "saaaaas"
+ /* 0 */ "rrrrrrr"
+ /* 1 */ "uaaaaau"
/* 2 */ ".a...a."
/* 3 */ ".a...a."
/* 4 */ ".a...a."
- /* 5 */ "taaaaat"
- /* 6 */ "uuuuuuu"
+ /* 5 */ "vaaaaav"
+ /* 6 */ "wwwwwww"
// Level 36
/* z\x* 0123456 */
/* 0 */ "......."
- /* 1 */ "ppppppp"
- /* 2 */ "saaaaas"
+ /* 1 */ "rrrrrrr"
+ /* 2 */ "uaaaaau"
/* 3 */ ".aaaaa."
- /* 4 */ "taaaaat"
- /* 5 */ "uuuuuuu"
+ /* 4 */ "vaaaaav"
+ /* 5 */ "wwwwwww"
/* 6 */ "......."
// Level 37
/* z\x* 0123456 */
/* 0 */ "......."
/* 1 */ "......."
- /* 2 */ "ppppppp"
+ /* 2 */ "rrrrrrr"
/* 3 */ "aaaaaaa"
- /* 4 */ "uuuuuuu"
+ /* 4 */ "wwwwwww"
/* 5 */ "......."
/* 6 */ ".......",
@@ -5892,7 +5896,7 @@ const cPrefab::sDef g_PlainsVillageStartingPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// RoofedWell:
// The data has been exported from the gallery Plains, area index 119, ID 271, created by STR_Warrior
{
diff --git a/src/Generating/Prefabs/RainbowRoadPrefabs.cpp b/src/Generating/Prefabs/RainbowRoadPrefabs.cpp
index 1a3765c5a..bf7b1b096 100644
--- a/src/Generating/Prefabs/RainbowRoadPrefabs.cpp
+++ b/src/Generating/Prefabs/RainbowRoadPrefabs.cpp
@@ -15,7 +15,7 @@
const cPrefab::sDef g_RainbowRoadPrefabs[] =
{
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// CurveDouble:
// The data has been exported from the gallery Cube, area index 89, ID 467, created by Aloe_vera
{
@@ -85,7 +85,7 @@ const cPrefab::sDef g_RainbowRoadPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// CurveDownFromTopSingle:
// The data has been exported from the gallery Cube, area index 100, ID 478, created by Aloe_vera
{
@@ -255,7 +255,7 @@ const cPrefab::sDef g_RainbowRoadPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// CurveSingle:
// The data has been exported from the gallery Cube, area index 84, ID 462, created by Aloe_vera
{
@@ -320,7 +320,7 @@ const cPrefab::sDef g_RainbowRoadPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// CurveSingleLeft:
// The data has been exported from the gallery Cube, area index 97, ID 475, created by Aloe_vera
{
@@ -385,7 +385,7 @@ const cPrefab::sDef g_RainbowRoadPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// CurveUpDouble:
// The data has been exported from the gallery Cube, area index 92, ID 470, created by Aloe_vera
{
@@ -581,7 +581,7 @@ const cPrefab::sDef g_RainbowRoadPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// CurveUpSingle:
// The data has been exported from the gallery Cube, area index 87, ID 465, created by Aloe_vera
{
@@ -751,7 +751,7 @@ const cPrefab::sDef g_RainbowRoadPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// SlopeDownFromTopSingle:
// The data has been exported from the gallery Cube, area index 98, ID 476, created by Aloe_vera
{
@@ -881,7 +881,7 @@ const cPrefab::sDef g_RainbowRoadPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// SlopeUpDouble:
// The data has been exported from the gallery Cube, area index 90, ID 468, created by Aloe_vera
{
@@ -1061,7 +1061,7 @@ const cPrefab::sDef g_RainbowRoadPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// SlopeUpSingle:
// The data has been exported from the gallery Cube, area index 85, ID 463, created by Aloe_vera
{
@@ -1191,7 +1191,7 @@ const cPrefab::sDef g_RainbowRoadPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// SplitTee:
// The data has been exported from the gallery Cube, area index 93, ID 471, created by Aloe_vera
{
@@ -1261,7 +1261,7 @@ const cPrefab::sDef g_RainbowRoadPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// StraightDouble:
// The data has been exported from the gallery Cube, area index 88, ID 466, created by Aloe_vera
{
@@ -1335,7 +1335,7 @@ const cPrefab::sDef g_RainbowRoadPrefabs[] =
const cPrefab::sDef g_RainbowRoadStartingPrefabs[] =
{
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// StraightSingle:
// The data has been exported from the gallery Cube, area index 83, ID 461, created by Aloe_vera
{
diff --git a/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.cpp b/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.cpp
index eb01cf59e..3328ee210 100644
--- a/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.cpp
+++ b/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.cpp
@@ -15,7 +15,7 @@
const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] =
{
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// Forge:
// The data has been exported from the gallery Desert, area index 32, ID 173, created by Aloe_vera
{
@@ -23,8 +23,8 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] =
12, 6, 10, // SizeX = 12, SizeY = 6, SizeZ = 10
// Hitbox (relative to bounding box):
- 0, 0, 0, // MinX, MinY, MinZ
- 11, 5, 9, // MaxX, MaxY, MaxZ
+ -1, 0, 0, // MinX, MinY, MinZ
+ 12, 5, 10, // MaxX, MaxY, MaxZ
// Block definitions:
".: 0: 0\n" /* air */
@@ -162,7 +162,7 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// House11x7:
// The data has been exported from the gallery Desert, area index 31, ID 172, created by Aloe_vera
{
@@ -170,8 +170,8 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] =
13, 6, 9, // SizeX = 13, SizeY = 6, SizeZ = 9
// Hitbox (relative to bounding box):
- 0, 0, 0, // MinX, MinY, MinZ
- 12, 5, 8, // MaxX, MaxY, MaxZ
+ -1, 0, 0, // MinX, MinY, MinZ
+ 13, 5, 9, // MaxX, MaxY, MaxZ
// Block definitions:
".: 0: 0\n" /* air */
@@ -301,7 +301,7 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// House5x4:
// The data has been exported from the gallery Desert, area index 25, ID 166, created by Aloe_vera
{
@@ -309,8 +309,8 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] =
7, 6, 6, // SizeX = 7, SizeY = 6, SizeZ = 6
// Hitbox (relative to bounding box):
- 0, 0, 0, // MinX, MinY, MinZ
- 6, 5, 5, // MaxX, MaxY, MaxZ
+ -1, 0, 0, // MinX, MinY, MinZ
+ 7, 5, 6, // MaxX, MaxY, MaxZ
// Block definitions:
".: 0: 0\n" /* air */
@@ -412,7 +412,7 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// House5x5:
// The data has been exported from the gallery Desert, area index 26, ID 167, created by Aloe_vera
{
@@ -420,8 +420,8 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] =
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
+ -1, 0, 0, // MinX, MinY, MinZ
+ 7, 5, 7, // MaxX, MaxY, MaxZ
// Block definitions:
".: 0: 0\n" /* air */
@@ -530,7 +530,7 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// House7x5:
// The data has been exported from the gallery Desert, area index 27, ID 168, created by Aloe_vera
{
@@ -538,8 +538,8 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] =
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
+ -1, 0, 0, // MinX, MinY, MinZ
+ 9, 5, 7, // MaxX, MaxY, MaxZ
// Block definitions:
".: 0: 0\n" /* air */
@@ -648,7 +648,7 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// House8x5:
// The data has been exported from the gallery Desert, area index 28, ID 169, created by Aloe_vera
{
@@ -656,8 +656,8 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] =
10, 6, 7, // SizeX = 10, SizeY = 6, SizeZ = 7
// Hitbox (relative to bounding box):
- 0, 0, 0, // MinX, MinY, MinZ
- 9, 5, 6, // MaxX, MaxY, MaxZ
+ -1, 0, 0, // MinX, MinY, MinZ
+ 10, 5, 7, // MaxX, MaxY, MaxZ
// Block definitions:
".: 0: 0\n" /* air */
@@ -772,7 +772,7 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// House8x7:
// The data has been exported from the gallery Desert, area index 29, ID 170, created by Aloe_vera
{
@@ -780,8 +780,8 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] =
10, 6, 9, // SizeX = 10, SizeY = 6, SizeZ = 9
// Hitbox (relative to bounding box):
- 0, 0, 0, // MinX, MinY, MinZ
- 9, 5, 8, // MaxX, MaxY, MaxZ
+ -1, 0, 0, // MinX, MinY, MinZ
+ 10, 5, 9, // MaxX, MaxY, MaxZ
// Block definitions:
".: 0: 0\n" /* air */
@@ -910,7 +910,7 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// House9x7:
// The data has been exported from the gallery Desert, area index 30, ID 171, created by Aloe_vera
{
@@ -918,8 +918,8 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] =
11, 6, 9, // SizeX = 11, SizeY = 6, SizeZ = 9
// Hitbox (relative to bounding box):
- 0, 0, 0, // MinX, MinY, MinZ
- 10, 5, 8, // MaxX, MaxY, MaxZ
+ -1, 0, 0, // MinX, MinY, MinZ
+ 11, 5, 9, // MaxX, MaxY, MaxZ
// Block definitions:
".: 0: 0\n" /* air */
@@ -1049,23 +1049,23 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// HouseL13x12:
// The data has been exported from the gallery Desert, area index 53, ID 345, created by jakibaki
{
// Size:
- 15, 5, 14, // SizeX = 15, SizeY = 5, SizeZ = 14
+ 15, 6, 14, // SizeX = 15, SizeY = 6, SizeZ = 14
// Hitbox (relative to bounding box):
- 0, 0, 0, // MinX, MinY, MinZ
- 14, 4, 13, // MaxX, MaxY, MaxZ
+ -1, 0, 0, // MinX, MinY, MinZ
+ 15, 5, 14, // 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 */
+ "a: 24: 0\n" /* sandstone */
+ "b:128: 0\n" /* sandstonestairs */
+ "c:128: 2\n" /* sandstonestairs */
+ "d:128: 1\n" /* sandstonestairs */
"e: 43: 1\n" /* doubleslab */
"f: 64: 7\n" /* wooddoorblock */
"g:171: 0\n" /* carpet */
@@ -1088,43 +1088,61 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] =
// Level 0
/* z\x* 11111 */
/* * 012345678901234 */
- /* 0 */ "...abc........."
- /* 1 */ ".ddddddddddddd."
- /* 2 */ ".ddddddddddddd."
- /* 3 */ ".ddddddddddddd."
- /* 4 */ ".ddddddddddddd."
- /* 5 */ ".ddddddddddded."
- /* 6 */ ".ddddddddddddd."
- /* 7 */ ".ddddddddddddd."
- /* 8 */ ".......deddddd."
- /* 9 */ "mmmmmm.ddddddd."
- /* 10 */ "mmmmmm.ddddddd."
- /* 11 */ "mmmmmm.ddddddd."
- /* 12 */ "mmmmmm.ddddddd."
- /* 13 */ "..............."
+ /* 0 */ "mmmaaammmmmmmmm"
+ /* 1 */ "maaaaaaaaaaaaam"
+ /* 2 */ "maaaaaaaaaaaaam"
+ /* 3 */ "maaaaaaaaaaaaam"
+ /* 4 */ "maaaaaaaaaaaaam"
+ /* 5 */ "maaaaaaaaaaaaam"
+ /* 6 */ "maaaaaaaaaaaaam"
+ /* 7 */ "maaaaaaaaaaaaam"
+ /* 8 */ "mmmmmmmaaaaaaam"
+ /* 9 */ "mmmmmmmaaaaaaam"
+ /* 10 */ "mmmmmmmaaaaaaam"
+ /* 11 */ "mmmmmmmaaaaaaam"
+ /* 12 */ "mmmmmmmaaaaaaam"
+ /* 13 */ "mmmmmmmmmmmmmmm"
// Level 1
/* z\x* 11111 */
/* * 012345678901234 */
- /* 0 */ "..............."
- /* 1 */ ".dddfddddddddd."
- /* 2 */ ".dgghhhhhhhhgd."
- /* 3 */ ".dghiiiiiiiihd."
- /* 4 */ ".dghiggggggihd."
- /* 5 */ ".dghiiiiiigihd."
- /* 6 */ ".dgghhhhhigihd."
- /* 7 */ ".dddddddhigihd."
- /* 8 */ ".......dhigihd."
- /* 9 */ "mmmmmm.dhiiihd."
- /* 10 */ "mmmmmm.dghhhgd."
- /* 11 */ "mmmmmm.dggggjd."
- /* 12 */ "mmmmmm.ddddddd."
+ /* 0 */ "...bcd........."
+ /* 1 */ ".aaaaaaaaaaaaa."
+ /* 2 */ ".aaaaaaaaaaaaa."
+ /* 3 */ ".aaaaaaaaaaaaa."
+ /* 4 */ ".aaaaaaaaaaaaa."
+ /* 5 */ ".aaaaaaaaaaaea."
+ /* 6 */ ".aaaaaaaaaaaaa."
+ /* 7 */ ".aaaaaaaaaaaaa."
+ /* 8 */ ".......aeaaaaa."
+ /* 9 */ "mmmmmm.aaaaaaa."
+ /* 10 */ "mmmmmm.aaaaaaa."
+ /* 11 */ "mmmmmm.aaaaaaa."
+ /* 12 */ "mmmmmm.aaaaaaa."
/* 13 */ "..............."
// Level 2
/* z\x* 11111 */
/* * 012345678901234 */
/* 0 */ "..............."
+ /* 1 */ ".aaafaaaaaaaaa."
+ /* 2 */ ".agghhhhhhhhga."
+ /* 3 */ ".aghiiiiiiiiha."
+ /* 4 */ ".aghiggggggiha."
+ /* 5 */ ".aghiiiiiigiha."
+ /* 6 */ ".agghhhhhigiha."
+ /* 7 */ ".aaaaaaahigiha."
+ /* 8 */ ".......ahigiha."
+ /* 9 */ "mmmmmm.ahiiiha."
+ /* 10 */ "mmmmmm.aghhhga."
+ /* 11 */ "mmmmmm.aggggja."
+ /* 12 */ "mmmmmm.aaaaaaa."
+ /* 13 */ "..............."
+
+ // Level 3
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "..............."
/* 1 */ ".kkklkkkk.kkkk."
/* 2 */ ".k...........k."
/* 3 */ ".k...........k."
@@ -1139,44 +1157,44 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] =
/* 12 */ "mmmmmm.kkk.kkk."
/* 13 */ "..............."
- // Level 3
+ // Level 4
/* z\x* 11111 */
/* * 012345678901234 */
/* 0 */ "..............."
- /* 1 */ ".ddddddddddddd."
- /* 2 */ ".d......n....d."
- /* 3 */ ".d...........d."
- /* 4 */ ".do..........d."
- /* 5 */ ".d...........d."
- /* 6 */ ".d..........pd."
- /* 7 */ ".ddddddd.....d."
- /* 8 */ ".......d.....d."
- /* 9 */ "mmmmmm.d.....d."
- /* 10 */ "mmmmmm.d.....d."
- /* 11 */ "mmmmmm.d..q..d."
- /* 12 */ "mmmmmm.ddddddd."
+ /* 1 */ ".aaaaaaaaaaaaa."
+ /* 2 */ ".a......n....a."
+ /* 3 */ ".a...........a."
+ /* 4 */ ".ao..........a."
+ /* 5 */ ".a...........a."
+ /* 6 */ ".a..........pa."
+ /* 7 */ ".aaaaaaa.....a."
+ /* 8 */ ".......a.....a."
+ /* 9 */ "mmmmmm.a.....a."
+ /* 10 */ "mmmmmm.a.....a."
+ /* 11 */ "mmmmmm.a..q..a."
+ /* 12 */ "mmmmmm.aaaaaaa."
/* 13 */ "..............."
- // Level 4
+ // Level 5
/* z\x* 11111 */
/* * 012345678901234 */
/* 0 */ "rrrrrrrrrrrrrrs"
- /* 1 */ "tddddddddddddds"
- /* 2 */ "tddddddddddddds"
- /* 3 */ "tddddddddddddds"
- /* 4 */ "tddddddddddddds"
- /* 5 */ "tddddddddddddds"
- /* 6 */ "tddddddddddddds"
- /* 7 */ "tddddddddddddds"
- /* 8 */ "tuuuuutddddddds"
- /* 9 */ "mmmmmmtddddddds"
- /* 10 */ "mmmmmmtddddddds"
- /* 11 */ "mmmmmmtddddddds"
- /* 12 */ "mmmmmmtddddddds"
+ /* 1 */ "taaaaaaaaaaaaas"
+ /* 2 */ "taaaaaaaaaaaaas"
+ /* 3 */ "taaaaaaaaaaaaas"
+ /* 4 */ "taaaaaaaaaaaaas"
+ /* 5 */ "taaaaaaaaaaaaas"
+ /* 6 */ "taaaaaaaaaaaaas"
+ /* 7 */ "taaaaaaaaaaaaas"
+ /* 8 */ "tuuuuutaaaaaaas"
+ /* 9 */ "mmmmmmtaaaaaaas"
+ /* 10 */ "mmmmmmtaaaaaaas"
+ /* 11 */ "mmmmmmtaaaaaaas"
+ /* 12 */ "mmmmmmtaaaaaaas"
/* 13 */ "......tuuuuuuuu",
// Connectors:
- "-1: 4, 0, 0: 2\n" /* Type -1, direction Z- */,
+ "-1: 4, 1, 0: 2\n" /* Type -1, direction Z- */,
// AllowedRotations:
7, /* 1, 2, 3 CCW rotation allowed */
@@ -1202,7 +1220,7 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// MarketStall:
// The data has been exported from the gallery Desert, area index 34, ID 175, created by Aloe_vera
{
@@ -1210,8 +1228,8 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] =
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
+ -1, 0, 0, // MinX, MinY, MinZ
+ 7, 5, 7, // MaxX, MaxY, MaxZ
// Block definitions:
".: 0: 0\n" /* air */
@@ -1312,7 +1330,7 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// Marketplace:
// The data has been exported from the gallery Desert, area index 38, ID 261, created by Aloe_vera
{
@@ -1320,8 +1338,8 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] =
14, 4, 16, // SizeX = 14, SizeY = 4, SizeZ = 16
// Hitbox (relative to bounding box):
- 0, 0, 0, // MinX, MinY, MinZ
- 13, 3, 15, // MaxX, MaxY, MaxZ
+ -1, 0, 0, // MinX, MinY, MinZ
+ 14, 3, 16, // MaxX, MaxY, MaxZ
// Block definitions:
".: 0: 0\n" /* air */
@@ -1454,7 +1472,7 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] =
const cPrefab::sDef g_SandFlatRoofVillageStartingPrefabs[] =
{
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// Well:
// The data has been exported from the gallery Desert, area index 44, ID 275, created by Aloe_vera
{
diff --git a/src/Generating/Prefabs/SandVillagePrefabs.cpp b/src/Generating/Prefabs/SandVillagePrefabs.cpp
index a062f8cd4..c63f8161b 100644
--- a/src/Generating/Prefabs/SandVillagePrefabs.cpp
+++ b/src/Generating/Prefabs/SandVillagePrefabs.cpp
@@ -15,16 +15,16 @@
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
+ 13, 3, 9, // SizeX = 13, SizeY = 3, SizeZ = 9
// Hitbox (relative to bounding box):
- 0, 0, 0, // MinX, MinY, MinZ
- 12, 1, 8, // MaxX, MaxY, MaxZ
+ -1, 0, -1, // MinX, MinY, MinZ
+ 13, 2, 8, // MaxX, MaxY, MaxZ
// Block definitions:
".: 0: 0\n" /* air */
@@ -40,6 +40,19 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
/* z\x* 111 */
/* * 0123456789012 */
/* 0 */ "aaaaaaaaaaaaa"
+ /* 1 */ "aaaaaaaaaaaaa"
+ /* 2 */ "aaaaaaaaaaaaa"
+ /* 3 */ "aaaaaaaaaaaaa"
+ /* 4 */ "aaaaaaaaaaaaa"
+ /* 5 */ "aaaaaaaaaaaaa"
+ /* 6 */ "aaaaaaaaaaaaa"
+ /* 7 */ "aaaaaaaaaaaaa"
+ /* 8 */ "aaaaaaaaaaaaa"
+
+ // Level 1
+ /* z\x* 111 */
+ /* * 0123456789012 */
+ /* 0 */ "aaaaaaaaaaaaa"
/* 1 */ "abbcbbabbcbba"
/* 2 */ "abbcbbabbcbba"
/* 3 */ "abbcbbabbcbba"
@@ -49,21 +62,21 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
/* 7 */ "abbcbbabbcbba"
/* 8 */ "aaaaaaaaaaaaa"
- // Level 1
+ // Level 2
/* 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."
+ /* 1 */ ".ee.ee.ee.ee."
+ /* 2 */ ".ee.ee.ee.ee."
+ /* 3 */ ".ee.ee.ee.ee."
+ /* 4 */ ".ee.ee.ee.ee."
+ /* 5 */ ".ee.ee.ee.ee."
+ /* 6 */ ".ee.ee.ee.ee."
+ /* 7 */ ".ee.ee.ee.ee."
/* 8 */ "d.....d.....d",
// Connectors:
- "-1: 6, 0, 8: 3\n" /* Type -1, direction Z+ */,
+ "-1: 6, 1, 8: 3\n" /* Type -1, direction Z+ */,
// AllowedRotations:
7, /* 1, 2, 3 CCW rotation allowed */
@@ -89,23 +102,23 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// 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
+ 11, 7, 7, // SizeX = 11, SizeY = 7, SizeZ = 7
// Hitbox (relative to bounding box):
- 0, 0, 0, // MinX, MinY, MinZ
- 10, 5, 6, // MaxX, MaxY, MaxZ
+ -1, 0, 0, // MinX, MinY, MinZ
+ 11, 6, 7, // 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 */
+ "a: 24: 0\n" /* sandstone */
+ "b:128: 0\n" /* sandstonestairs */
+ "c:128: 2\n" /* sandstonestairs */
+ "d:128: 1\n" /* sandstonestairs */
"e: 64: 7\n" /* wooddoorblock */
"f:102: 0\n" /* glasspane */
"g: 64:12\n" /* wooddoorblock */
@@ -122,71 +135,82 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
// Level 0
/* z\x* 1 */
/* * 01234567890 */
- /* 0 */ "....abc...."
- /* 1 */ ".ddddddddd."
- /* 2 */ ".ddddddddd."
- /* 3 */ ".ddddddddd."
- /* 4 */ ".ddddddddd."
- /* 5 */ ".ddddddddd."
- /* 6 */ "..........."
+ /* 0 */ "mmmmaaammmm"
+ /* 1 */ "maaaaaaaaam"
+ /* 2 */ "maaaaaaaaam"
+ /* 3 */ "maaaaaaaaam"
+ /* 4 */ "maaaaaaaaam"
+ /* 5 */ "maaaaaaaaam"
+ /* 6 */ "mmmmmmmmmmm"
// Level 1
/* z\x* 1 */
/* * 01234567890 */
- /* 0 */ "..........."
- /* 1 */ ".ddddedddd."
- /* 2 */ ".d.......d."
- /* 3 */ ".d.......d."
- /* 4 */ ".d.......d."
- /* 5 */ ".ddddddddd."
+ /* 0 */ "....bcd...."
+ /* 1 */ ".aaaaaaaaa."
+ /* 2 */ ".aaaaaaaaa."
+ /* 3 */ ".aaaaaaaaa."
+ /* 4 */ ".aaaaaaaaa."
+ /* 5 */ ".aaaaaaaaa."
/* 6 */ "..........."
// Level 2
/* z\x* 1 */
/* * 01234567890 */
/* 0 */ "..........."
- /* 1 */ ".dffdgdffd."
+ /* 1 */ ".aaaaeaaaa."
+ /* 2 */ ".a.......a."
+ /* 3 */ ".a.......a."
+ /* 4 */ ".a.......a."
+ /* 5 */ ".aaaaaaaaa."
+ /* 6 */ "..........."
+
+ // Level 3
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ ".affagaffa."
/* 2 */ ".f.......f."
/* 3 */ ".f.......f."
/* 4 */ ".f.......f."
- /* 5 */ ".dffdfdffd."
+ /* 5 */ ".affafaffa."
/* 6 */ "..........."
- // Level 3
+ // Level 4
/* z\x* 1 */
/* * 01234567890 */
- /* 0 */ "bbbbbbbbbbb"
- /* 1 */ "hdddddddddh"
- /* 2 */ ".d..i.i..d."
- /* 3 */ ".d.......d."
- /* 4 */ ".d..j.j..d."
- /* 5 */ "kdddddddddk"
+ /* 0 */ "ccccccccccc"
+ /* 1 */ "haaaaaaaaah"
+ /* 2 */ ".a..i.i..a."
+ /* 3 */ ".a.......a."
+ /* 4 */ ".a..j.j..a."
+ /* 5 */ "kaaaaaaaaak"
/* 6 */ "lllllllllll"
- // Level 4
+ // Level 5
/* z\x* 1 */
/* * 01234567890 */
/* 0 */ "..........."
- /* 1 */ "bbbbbbbbbbb"
- /* 2 */ "hdddddddddh"
- /* 3 */ ".dn.....od."
- /* 4 */ "kdddddddddk"
+ /* 1 */ "ccccccccccc"
+ /* 2 */ "haaaaaaaaah"
+ /* 3 */ ".an.....oa."
+ /* 4 */ "kaaaaaaaaak"
/* 5 */ "lllllllllll"
/* 6 */ "..........."
- // Level 5
+ // Level 6
/* z\x* 1 */
/* * 01234567890 */
/* 0 */ "..........."
/* 1 */ "..........."
- /* 2 */ "bbbbbbbbbbb"
- /* 3 */ "ddddddddddd"
+ /* 2 */ "ccccccccccc"
+ /* 3 */ "aaaaaaaaaaa"
/* 4 */ "lllllllllll"
/* 5 */ "..........."
/* 6 */ "...........",
// Connectors:
- "-1: 5, 0, 0: 2\n" /* Type -1, direction Z- */,
+ "-1: 5, 1, 0: 2\n" /* Type -1, direction Z- */,
// AllowedRotations:
7, /* 1, 2, 3 CCW rotation allowed */
@@ -212,23 +236,23 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// 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
+ 11, 8, 9, // SizeX = 11, SizeY = 8, SizeZ = 9
// Hitbox (relative to bounding box):
- 0, 0, 0, // MinX, MinY, MinZ
- 10, 6, 8, // MaxX, MaxY, MaxZ
+ -1, 0, 0, // MinX, MinY, MinZ
+ 11, 7, 9, // 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 */
+ "a: 24: 0\n" /* sandstone */
+ "b:128: 0\n" /* sandstonestairs */
+ "c:128: 2\n" /* sandstonestairs */
+ "d:128: 1\n" /* sandstonestairs */
"e: 64: 7\n" /* wooddoorblock */
"f:102: 0\n" /* glasspane */
"g: 64:12\n" /* wooddoorblock */
@@ -243,96 +267,109 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
// Level 0
/* z\x* 1 */
/* * 01234567890 */
- /* 0 */ "....abc...."
- /* 1 */ ".ddddddddd."
- /* 2 */ ".ddddddddd."
- /* 3 */ ".ddddddddd."
- /* 4 */ ".ddddddddd."
- /* 5 */ ".ddddddddd."
- /* 6 */ ".ddddddddd."
- /* 7 */ ".ddddddddd."
- /* 8 */ "..........."
+ /* 0 */ "mmmmaaammmm"
+ /* 1 */ "maaaaaaaaam"
+ /* 2 */ "maaaaaaaaam"
+ /* 3 */ "maaaaaaaaam"
+ /* 4 */ "maaaaaaaaam"
+ /* 5 */ "maaaaaaaaam"
+ /* 6 */ "maaaaaaaaam"
+ /* 7 */ "maaaaaaaaam"
+ /* 8 */ "mmmmmmmmmmm"
// 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."
+ /* 0 */ "....bcd...."
+ /* 1 */ ".aaaaaaaaa."
+ /* 2 */ ".aaaaaaaaa."
+ /* 3 */ ".aaaaaaaaa."
+ /* 4 */ ".aaaaaaaaa."
+ /* 5 */ ".aaaaaaaaa."
+ /* 6 */ ".aaaaaaaaa."
+ /* 7 */ ".aaaaaaaaa."
/* 8 */ "..........."
// Level 2
/* z\x* 1 */
/* * 01234567890 */
/* 0 */ "..........."
- /* 1 */ ".dffdgdffd."
+ /* 1 */ ".aaaaeaaaa."
+ /* 2 */ ".a.......a."
+ /* 3 */ ".a.......a."
+ /* 4 */ ".a.......a."
+ /* 5 */ ".a.......a."
+ /* 6 */ ".a.......a."
+ /* 7 */ ".aaaaaaaaa."
+ /* 8 */ "..........."
+
+ // Level 3
+ /* z\x* 1 */
+ /* * 01234567890 */
+ /* 0 */ "..........."
+ /* 1 */ ".affagaffa."
/* 2 */ ".f.......f."
/* 3 */ ".f.......f."
- /* 4 */ ".d.......d."
+ /* 4 */ ".a.......a."
/* 5 */ ".f.......f."
/* 6 */ ".f.......f."
- /* 7 */ ".dfffdfffd."
+ /* 7 */ ".afffafffa."
/* 8 */ "..........."
- // Level 3
+ // Level 4
/* 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"
+ /* 0 */ "ccccccccccc"
+ /* 1 */ "haaaaaaaaah"
+ /* 2 */ ".a..i.i..a."
+ /* 3 */ ".a.......a."
+ /* 4 */ ".a.......a."
+ /* 5 */ ".a.......a."
+ /* 6 */ ".a...j...a."
+ /* 7 */ "kaaaaaaaaak"
/* 8 */ "lllllllllll"
- // Level 4
+ // Level 5
/* z\x* 1 */
/* * 01234567890 */
/* 0 */ "..........."
- /* 1 */ "bbbbbbbbbbb"
- /* 2 */ "hdddddddddh"
- /* 3 */ ".d.......d."
- /* 4 */ ".d.......d."
- /* 5 */ ".d.......d."
- /* 6 */ "kdddddddddk"
+ /* 1 */ "ccccccccccc"
+ /* 2 */ "haaaaaaaaah"
+ /* 3 */ ".a.......a."
+ /* 4 */ ".a.......a."
+ /* 5 */ ".a.......a."
+ /* 6 */ "kaaaaaaaaak"
/* 7 */ "lllllllllll"
/* 8 */ "..........."
- // Level 5
+ // Level 6
/* z\x* 1 */
/* * 01234567890 */
/* 0 */ "..........."
/* 1 */ "..........."
- /* 2 */ "bbbbbbbbbbb"
- /* 3 */ "hdddddddddh"
- /* 4 */ ".d.......d."
- /* 5 */ "kdddddddddk"
+ /* 2 */ "ccccccccccc"
+ /* 3 */ "haaaaaaaaah"
+ /* 4 */ ".a.......a."
+ /* 5 */ "kaaaaaaaaak"
/* 6 */ "lllllllllll"
/* 7 */ "..........."
/* 8 */ "..........."
- // Level 6
+ // Level 7
/* z\x* 1 */
/* * 01234567890 */
/* 0 */ "..........."
/* 1 */ "..........."
/* 2 */ "..........."
- /* 3 */ "bbbbbbbbbbb"
- /* 4 */ "ddddddddddd"
+ /* 3 */ "ccccccccccc"
+ /* 4 */ "aaaaaaaaaaa"
/* 5 */ "lllllllllll"
/* 6 */ "..........."
/* 7 */ "..........."
/* 8 */ "...........",
// Connectors:
- "-1: 5, 0, 0: 2\n" /* Type -1, direction Z- */,
+ "-1: 5, 1, 0: 2\n" /* Type -1, direction Z- */,
// AllowedRotations:
7, /* 1, 2, 3 CCW rotation allowed */
@@ -358,23 +395,23 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// 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
+ 13, 7, 7, // SizeX = 13, SizeY = 7, SizeZ = 7
// Hitbox (relative to bounding box):
- 0, 0, 0, // MinX, MinY, MinZ
- 12, 5, 6, // MaxX, MaxY, MaxZ
+ -1, 0, 0, // MinX, MinY, MinZ
+ 13, 6, 7, // 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 */
+ "a: 24: 0\n" /* sandstone */
+ "b:128: 0\n" /* sandstonestairs */
+ "c:128: 2\n" /* sandstonestairs */
+ "d:128: 1\n" /* sandstonestairs */
"e: 64: 7\n" /* wooddoorblock */
"f:102: 0\n" /* glasspane */
"g: 64:12\n" /* wooddoorblock */
@@ -389,71 +426,82 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
// Level 0
/* z\x* 111 */
/* * 0123456789012 */
- /* 0 */ ".....abc....."
- /* 1 */ ".ddddddddddd."
- /* 2 */ ".ddddddddddd."
- /* 3 */ ".ddddddddddd."
- /* 4 */ ".ddddddddddd."
- /* 5 */ ".ddddddddddd."
- /* 6 */ "............."
+ /* 0 */ "mmmmmaaammmmm"
+ /* 1 */ "maaaaaaaaaaam"
+ /* 2 */ "maaaaaaaaaaam"
+ /* 3 */ "maaaaaaaaaaam"
+ /* 4 */ "maaaaaaaaaaam"
+ /* 5 */ "maaaaaaaaaaam"
+ /* 6 */ "mmmmmmmmmmmmm"
// Level 1
/* z\x* 111 */
/* * 0123456789012 */
- /* 0 */ "............."
- /* 1 */ ".dddddeddddd."
- /* 2 */ ".d.........d."
- /* 3 */ ".d.........d."
- /* 4 */ ".d.........d."
- /* 5 */ ".ddddddddddd."
+ /* 0 */ ".....bcd....."
+ /* 1 */ ".aaaaaaaaaaa."
+ /* 2 */ ".aaaaaaaaaaa."
+ /* 3 */ ".aaaaaaaaaaa."
+ /* 4 */ ".aaaaaaaaaaa."
+ /* 5 */ ".aaaaaaaaaaa."
/* 6 */ "............."
// Level 2
/* z\x* 111 */
/* * 0123456789012 */
/* 0 */ "............."
- /* 1 */ ".dfffdgdfffd."
+ /* 1 */ ".aaaaaeaaaaa."
+ /* 2 */ ".a.........a."
+ /* 3 */ ".a.........a."
+ /* 4 */ ".a.........a."
+ /* 5 */ ".aaaaaaaaaaa."
+ /* 6 */ "............."
+
+ // Level 3
+ /* z\x* 111 */
+ /* * 0123456789012 */
+ /* 0 */ "............."
+ /* 1 */ ".afffagafffa."
/* 2 */ ".f.........f."
/* 3 */ ".f.........f."
/* 4 */ ".f.........f."
- /* 5 */ ".dffdfffdffd."
+ /* 5 */ ".affafffaffa."
/* 6 */ "............."
- // Level 3
+ // Level 4
/* z\x* 111 */
/* * 0123456789012 */
- /* 0 */ "bbbbbbbbbbbbb"
- /* 1 */ "hdddddddddddh"
- /* 2 */ ".d...i.i...d."
- /* 3 */ ".d.........d."
- /* 4 */ ".d..j...j..d."
- /* 5 */ "kdddddddddddk"
+ /* 0 */ "ccccccccccccc"
+ /* 1 */ "haaaaaaaaaaah"
+ /* 2 */ ".a...i.i...a."
+ /* 3 */ ".a.........a."
+ /* 4 */ ".a..j...j..a."
+ /* 5 */ "kaaaaaaaaaaak"
/* 6 */ "lllllllllllll"
- // Level 4
+ // Level 5
/* z\x* 111 */
/* * 0123456789012 */
/* 0 */ "............."
- /* 1 */ "bbbbbbbbbbbbb"
- /* 2 */ "hdddddddddddh"
- /* 3 */ ".d.........d."
- /* 4 */ "kdddddddddddk"
+ /* 1 */ "ccccccccccccc"
+ /* 2 */ "haaaaaaaaaaah"
+ /* 3 */ ".a.........a."
+ /* 4 */ "kaaaaaaaaaaak"
/* 5 */ "lllllllllllll"
/* 6 */ "............."
- // Level 5
+ // Level 6
/* z\x* 111 */
/* * 0123456789012 */
/* 0 */ "............."
/* 1 */ "............."
- /* 2 */ "bbbbbbbbbbbbb"
- /* 3 */ "ddddddddddddd"
+ /* 2 */ "ccccccccccccc"
+ /* 3 */ "aaaaaaaaaaaaa"
/* 4 */ "lllllllllllll"
/* 5 */ "............."
/* 6 */ ".............",
// Connectors:
- "-1: 6, 0, 0: 2\n" /* Type -1, direction Z- */,
+ "-1: 6, 1, 0: 2\n" /* Type -1, direction Z- */,
// AllowedRotations:
7, /* 1, 2, 3 CCW rotation allowed */
@@ -479,23 +527,23 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// 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
+ 13, 8, 9, // SizeX = 13, SizeY = 8, SizeZ = 9
// Hitbox (relative to bounding box):
- 0, 0, 0, // MinX, MinY, MinZ
- 12, 6, 8, // MaxX, MaxY, MaxZ
+ -1, 0, 0, // MinX, MinY, MinZ
+ 13, 7, 9, // 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 */
+ "a: 24: 0\n" /* sandstone */
+ "b:128: 0\n" /* sandstonestairs */
+ "c:128: 2\n" /* sandstonestairs */
+ "d:128: 1\n" /* sandstonestairs */
"e: 64: 7\n" /* wooddoorblock */
"f:102: 0\n" /* glasspane */
"g: 64:12\n" /* wooddoorblock */
@@ -510,96 +558,109 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
// Level 0
/* z\x* 111 */
/* * 0123456789012 */
- /* 0 */ ".....abc....."
- /* 1 */ ".ddddddddddd."
- /* 2 */ ".ddddddddddd."
- /* 3 */ ".ddddddddddd."
- /* 4 */ ".ddddddddddd."
- /* 5 */ ".ddddddddddd."
- /* 6 */ ".ddddddddddd."
- /* 7 */ ".ddddddddddd."
- /* 8 */ "............."
+ /* 0 */ "mmmmmaaammmmm"
+ /* 1 */ "maaaaaaaaaaam"
+ /* 2 */ "maaaaaaaaaaam"
+ /* 3 */ "maaaaaaaaaaam"
+ /* 4 */ "maaaaaaaaaaam"
+ /* 5 */ "maaaaaaaaaaam"
+ /* 6 */ "maaaaaaaaaaam"
+ /* 7 */ "maaaaaaaaaaam"
+ /* 8 */ "mmmmmmmmmmmmm"
// 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."
+ /* 0 */ ".....bcd....."
+ /* 1 */ ".aaaaaaaaaaa."
+ /* 2 */ ".aaaaaaaaaaa."
+ /* 3 */ ".aaaaaaaaaaa."
+ /* 4 */ ".aaaaaaaaaaa."
+ /* 5 */ ".aaaaaaaaaaa."
+ /* 6 */ ".aaaaaaaaaaa."
+ /* 7 */ ".aaaaaaaaaaa."
/* 8 */ "............."
// Level 2
/* z\x* 111 */
/* * 0123456789012 */
/* 0 */ "............."
- /* 1 */ ".dfffdgdfffd."
+ /* 1 */ ".aaaaaeaaaaa."
+ /* 2 */ ".a.........a."
+ /* 3 */ ".a.........a."
+ /* 4 */ ".a.........a."
+ /* 5 */ ".a.........a."
+ /* 6 */ ".a.........a."
+ /* 7 */ ".aaaaaaaaaaa."
+ /* 8 */ "............."
+
+ // Level 3
+ /* z\x* 111 */
+ /* * 0123456789012 */
+ /* 0 */ "............."
+ /* 1 */ ".afffagafffa."
/* 2 */ ".f.........f."
/* 3 */ ".f.........f."
- /* 4 */ ".d.........d."
+ /* 4 */ ".a.........a."
/* 5 */ ".f.........f."
/* 6 */ ".f.........f."
- /* 7 */ ".dffdffdfffd."
+ /* 7 */ ".affaffafffa."
/* 8 */ "............."
- // Level 3
+ // Level 4
/* 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"
+ /* 0 */ "ccccccccccccc"
+ /* 1 */ "haaaaaaaaaaah"
+ /* 2 */ ".a...i.i...a."
+ /* 3 */ ".a.........a."
+ /* 4 */ ".a.........a."
+ /* 5 */ ".a.........a."
+ /* 6 */ ".a..j..j...a."
+ /* 7 */ "kaaaaaaaaaaak"
/* 8 */ "lllllllllllll"
- // Level 4
+ // Level 5
/* z\x* 111 */
/* * 0123456789012 */
/* 0 */ "............."
- /* 1 */ "bbbbbbbbbbbbb"
- /* 2 */ "hdddddddddddh"
- /* 3 */ ".d.........d."
- /* 4 */ ".d.........d."
- /* 5 */ ".d.........d."
- /* 6 */ "kdddddddddddk"
+ /* 1 */ "ccccccccccccc"
+ /* 2 */ "haaaaaaaaaaah"
+ /* 3 */ ".a.........a."
+ /* 4 */ ".a.........a."
+ /* 5 */ ".a.........a."
+ /* 6 */ "kaaaaaaaaaaak"
/* 7 */ "lllllllllllll"
/* 8 */ "............."
- // Level 5
+ // Level 6
/* z\x* 111 */
/* * 0123456789012 */
/* 0 */ "............."
/* 1 */ "............."
- /* 2 */ "bbbbbbbbbbbbb"
- /* 3 */ "hdddddddddddh"
- /* 4 */ ".d.........d."
- /* 5 */ "kdddddddddddk"
+ /* 2 */ "ccccccccccccc"
+ /* 3 */ "haaaaaaaaaaah"
+ /* 4 */ ".a.........a."
+ /* 5 */ "kaaaaaaaaaaak"
/* 6 */ "lllllllllllll"
/* 7 */ "............."
/* 8 */ "............."
- // Level 6
+ // Level 7
/* z\x* 111 */
/* * 0123456789012 */
/* 0 */ "............."
/* 1 */ "............."
/* 2 */ "............."
- /* 3 */ "bbbbbbbbbbbbb"
- /* 4 */ "ddddddddddddd"
+ /* 3 */ "ccccccccccccc"
+ /* 4 */ "aaaaaaaaaaaaa"
/* 5 */ "lllllllllllll"
/* 6 */ "............."
/* 7 */ "............."
/* 8 */ ".............",
// Connectors:
- "-1: 6, 0, 0: 2\n" /* Type -1, direction Z- */,
+ "-1: 6, 1, 0: 2\n" /* Type -1, direction Z- */,
// AllowedRotations:
7, /* 1, 2, 3 CCW rotation allowed */
@@ -625,23 +686,23 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// 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
+ 15, 8, 9, // SizeX = 15, SizeY = 8, SizeZ = 9
// Hitbox (relative to bounding box):
- 0, 0, 0, // MinX, MinY, MinZ
- 14, 6, 8, // MaxX, MaxY, MaxZ
+ -1, 0, 0, // MinX, MinY, MinZ
+ 15, 7, 9, // 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 */
+ "a: 24: 0\n" /* sandstone */
+ "b:128: 0\n" /* sandstonestairs */
+ "c:128: 2\n" /* sandstonestairs */
+ "d:128: 1\n" /* sandstonestairs */
"e: 64: 7\n" /* wooddoorblock */
"f:102: 0\n" /* glasspane */
"g: 64:12\n" /* wooddoorblock */
@@ -656,96 +717,109 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
// Level 0
/* z\x* 11111 */
/* * 012345678901234 */
- /* 0 */ ".....abc......."
- /* 1 */ ".ddddddddddddd."
- /* 2 */ ".ddddddddddddd."
- /* 3 */ ".ddddddddddddd."
- /* 4 */ ".ddddddddddddd."
- /* 5 */ ".ddddddddddddd."
- /* 6 */ ".ddddddddddddd."
- /* 7 */ ".ddddddddddddd."
- /* 8 */ "..............."
+ /* 0 */ "mmmmmaaammmmmmm"
+ /* 1 */ "maaaaaaaaaaaaam"
+ /* 2 */ "maaaaaaaaaaaaam"
+ /* 3 */ "maaaaaaaaaaaaam"
+ /* 4 */ "maaaaaaaaaaaaam"
+ /* 5 */ "maaaaaaaaaaaaam"
+ /* 6 */ "maaaaaaaaaaaaam"
+ /* 7 */ "maaaaaaaaaaaaam"
+ /* 8 */ "mmmmmmmmmmmmmmm"
// 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."
+ /* 0 */ ".....bcd......."
+ /* 1 */ ".aaaaaaaaaaaaa."
+ /* 2 */ ".aaaaaaaaaaaaa."
+ /* 3 */ ".aaaaaaaaaaaaa."
+ /* 4 */ ".aaaaaaaaaaaaa."
+ /* 5 */ ".aaaaaaaaaaaaa."
+ /* 6 */ ".aaaaaaaaaaaaa."
+ /* 7 */ ".aaaaaaaaaaaaa."
/* 8 */ "..............."
// Level 2
/* z\x* 11111 */
/* * 012345678901234 */
/* 0 */ "..............."
- /* 1 */ ".dfffdgdffdffd."
+ /* 1 */ ".aaaaaeaaaaaaa."
+ /* 2 */ ".a...........a."
+ /* 3 */ ".a...........a."
+ /* 4 */ ".a...........a."
+ /* 5 */ ".a...........a."
+ /* 6 */ ".a...........a."
+ /* 7 */ ".aaaaaaaaaaaaa."
+ /* 8 */ "..............."
+
+ // Level 3
+ /* z\x* 11111 */
+ /* * 012345678901234 */
+ /* 0 */ "..............."
+ /* 1 */ ".afffagaffaffa."
/* 2 */ ".f...........f."
/* 3 */ ".f...........f."
- /* 4 */ ".d...........d."
+ /* 4 */ ".a...........a."
/* 5 */ ".f...........f."
/* 6 */ ".f...........f."
- /* 7 */ ".dffdffdffdffd."
+ /* 7 */ ".affaffaffaffa."
/* 8 */ "..............."
- // Level 3
+ // Level 4
/* 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"
+ /* 0 */ "ccccccccccccccc"
+ /* 1 */ "haaaaaaaaaaaaah"
+ /* 2 */ ".a...i.i..i..a."
+ /* 3 */ ".a...........a."
+ /* 4 */ ".a...........a."
+ /* 5 */ ".a...........a."
+ /* 6 */ ".a..j..j..j..a."
+ /* 7 */ "kaaaaaaaaaaaaak"
/* 8 */ "lllllllllllllll"
- // Level 4
+ // Level 5
/* z\x* 11111 */
/* * 012345678901234 */
/* 0 */ "..............."
- /* 1 */ "bbbbbbbbbbbbbbb"
- /* 2 */ "hdddddddddddddh"
- /* 3 */ ".d...........d."
- /* 4 */ ".d...........d."
- /* 5 */ ".d...........d."
- /* 6 */ "kdddddddddddddk"
+ /* 1 */ "ccccccccccccccc"
+ /* 2 */ "haaaaaaaaaaaaah"
+ /* 3 */ ".a...........a."
+ /* 4 */ ".a...........a."
+ /* 5 */ ".a...........a."
+ /* 6 */ "kaaaaaaaaaaaaak"
/* 7 */ "lllllllllllllll"
/* 8 */ "..............."
- // Level 5
+ // Level 6
/* z\x* 11111 */
/* * 012345678901234 */
/* 0 */ "..............."
/* 1 */ "..............."
- /* 2 */ "bbbbbbbbbbbbbbb"
- /* 3 */ "hdddddddddddddh"
- /* 4 */ ".d...........d."
- /* 5 */ "kdddddddddddddk"
+ /* 2 */ "ccccccccccccccc"
+ /* 3 */ "haaaaaaaaaaaaah"
+ /* 4 */ ".a...........a."
+ /* 5 */ "kaaaaaaaaaaaaak"
/* 6 */ "lllllllllllllll"
/* 7 */ "..............."
/* 8 */ "..............."
- // Level 6
+ // Level 7
/* z\x* 11111 */
/* * 012345678901234 */
/* 0 */ "..............."
/* 1 */ "..............."
/* 2 */ "..............."
- /* 3 */ "bbbbbbbbbbbbbbb"
- /* 4 */ "ddddddddddddddd"
+ /* 3 */ "ccccccccccccccc"
+ /* 4 */ "aaaaaaaaaaaaaaa"
/* 5 */ "lllllllllllllll"
/* 6 */ "..............."
/* 7 */ "..............."
/* 8 */ "...............",
// Connectors:
- "-1: 6, 0, 0: 2\n" /* Type -1, direction Z- */,
+ "-1: 6, 1, 0: 2\n" /* Type -1, direction Z- */,
// AllowedRotations:
7, /* 1, 2, 3 CCW rotation allowed */
@@ -771,23 +845,23 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// 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
+ 16, 8, 9, // SizeX = 16, SizeY = 8, SizeZ = 9
// Hitbox (relative to bounding box):
- 0, 0, 0, // MinX, MinY, MinZ
- 15, 6, 8, // MaxX, MaxY, MaxZ
+ -1, 0, 0, // MinX, MinY, MinZ
+ 16, 7, 9, // 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 */
+ "a: 24: 0\n" /* sandstone */
+ "b:128: 0\n" /* sandstonestairs */
+ "c:128: 2\n" /* sandstonestairs */
+ "d:128: 1\n" /* sandstonestairs */
"e: 64: 7\n" /* wooddoorblock */
"f:102: 0\n" /* glasspane */
"g: 64:12\n" /* wooddoorblock */
@@ -802,96 +876,109 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
// Level 0
/* z\x* 111111 */
/* * 0123456789012345 */
- /* 0 */ "........abc....."
- /* 1 */ ".dddddddddddddd."
- /* 2 */ ".dddddddddddddd."
- /* 3 */ ".dddddddddddddd."
- /* 4 */ ".dddddddddddddd."
- /* 5 */ ".dddddddddddddd."
- /* 6 */ ".dddddddddddddd."
- /* 7 */ ".dddddddddddddd."
- /* 8 */ "................"
+ /* 0 */ "mmmmmmmmaaammmmm"
+ /* 1 */ "maaaaaaaaaaaaaam"
+ /* 2 */ "maaaaaaaaaaaaaam"
+ /* 3 */ "maaaaaaaaaaaaaam"
+ /* 4 */ "maaaaaaaaaaaaaam"
+ /* 5 */ "maaaaaaaaaaaaaam"
+ /* 6 */ "maaaaaaaaaaaaaam"
+ /* 7 */ "maaaaaaaaaaaaaam"
+ /* 8 */ "mmmmmmmmmmmmmmmm"
// 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."
+ /* 0 */ "........bcd....."
+ /* 1 */ ".aaaaaaaaaaaaaa."
+ /* 2 */ ".aaaaaaaaaaaaaa."
+ /* 3 */ ".aaaaaaaaaaaaaa."
+ /* 4 */ ".aaaaaaaaaaaaaa."
+ /* 5 */ ".aaaaaaaaaaaaaa."
+ /* 6 */ ".aaaaaaaaaaaaaa."
+ /* 7 */ ".aaaaaaaaaaaaaa."
/* 8 */ "................"
// Level 2
/* z\x* 111111 */
/* * 0123456789012345 */
/* 0 */ "................"
- /* 1 */ ".dffdfffdgdfffd."
+ /* 1 */ ".aaaaaaaaeaaaaa."
+ /* 2 */ ".a............a."
+ /* 3 */ ".a............a."
+ /* 4 */ ".a............a."
+ /* 5 */ ".a............a."
+ /* 6 */ ".a............a."
+ /* 7 */ ".aaaaaaaaaaaaaa."
+ /* 8 */ "................"
+
+ // Level 3
+ /* z\x* 111111 */
+ /* * 0123456789012345 */
+ /* 0 */ "................"
+ /* 1 */ ".affafffagafffa."
/* 2 */ ".f............f."
/* 3 */ ".f............f."
- /* 4 */ ".d............d."
+ /* 4 */ ".a............a."
/* 5 */ ".f............f."
/* 6 */ ".f............f."
- /* 7 */ ".dffdffdfffdffd."
+ /* 7 */ ".affaffafffaffa."
/* 8 */ "................"
- // Level 3
+ // Level 4
/* 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"
+ /* 0 */ "cccccccccccccccc"
+ /* 1 */ "haaaaaaaaaaaaaah"
+ /* 2 */ ".a..i...i.i...a."
+ /* 3 */ ".a............a."
+ /* 4 */ ".a............a."
+ /* 5 */ ".a............a."
+ /* 6 */ ".a..j..j...j..a."
+ /* 7 */ "kaaaaaaaaaaaaaak"
/* 8 */ "llllllllllllllll"
- // Level 4
+ // Level 5
/* z\x* 111111 */
/* * 0123456789012345 */
/* 0 */ "................"
- /* 1 */ "bbbbbbbbbbbbbbbb"
- /* 2 */ "hddddddddddddddh"
- /* 3 */ ".d............d."
- /* 4 */ ".d............d."
- /* 5 */ ".d............d."
- /* 6 */ "kddddddddddddddk"
+ /* 1 */ "cccccccccccccccc"
+ /* 2 */ "haaaaaaaaaaaaaah"
+ /* 3 */ ".a............a."
+ /* 4 */ ".a............a."
+ /* 5 */ ".a............a."
+ /* 6 */ "kaaaaaaaaaaaaaak"
/* 7 */ "llllllllllllllll"
/* 8 */ "................"
- // Level 5
+ // Level 6
/* z\x* 111111 */
/* * 0123456789012345 */
/* 0 */ "................"
/* 1 */ "................"
- /* 2 */ "bbbbbbbbbbbbbbbb"
- /* 3 */ "hddddddddddddddh"
- /* 4 */ ".d............d."
- /* 5 */ "kddddddddddddddk"
+ /* 2 */ "cccccccccccccccc"
+ /* 3 */ "haaaaaaaaaaaaaah"
+ /* 4 */ ".a............a."
+ /* 5 */ "kaaaaaaaaaaaaaak"
/* 6 */ "llllllllllllllll"
/* 7 */ "................"
/* 8 */ "................"
- // Level 6
+ // Level 7
/* z\x* 111111 */
/* * 0123456789012345 */
/* 0 */ "................"
/* 1 */ "................"
/* 2 */ "................"
- /* 3 */ "bbbbbbbbbbbbbbbb"
- /* 4 */ "dddddddddddddddd"
+ /* 3 */ "cccccccccccccccc"
+ /* 4 */ "aaaaaaaaaaaaaaaa"
/* 5 */ "llllllllllllllll"
/* 6 */ "................"
/* 7 */ "................"
/* 8 */ "................",
// Connectors:
- "-1: 9, 0, 0: 2\n" /* Type -1, direction Z- */,
+ "-1: 9, 1, 0: 2\n" /* Type -1, direction Z- */,
// AllowedRotations:
7, /* 1, 2, 3 CCW rotation allowed */
@@ -917,23 +1004,23 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// 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
+ 7, 7, 7, // SizeX = 7, SizeY = 7, SizeZ = 7
// Hitbox (relative to bounding box):
- 0, 0, 0, // MinX, MinY, MinZ
- 6, 5, 6, // MaxX, MaxY, MaxZ
+ -1, 0, 0, // MinX, MinY, MinZ
+ 7, 6, 7, // 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 */
+ "a: 24: 0\n" /* sandstone */
+ "b:128: 0\n" /* sandstonestairs */
+ "c:128: 2\n" /* sandstonestairs */
+ "d:128: 1\n" /* sandstonestairs */
"e: 64: 7\n" /* wooddoorblock */
"f:102: 0\n" /* glasspane */
"g: 64:12\n" /* wooddoorblock */
@@ -946,66 +1033,76 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
// Block data:
// Level 0
/* z\x* 0123456 */
- /* 0 */ "...abc."
- /* 1 */ ".ddddd."
- /* 2 */ ".ddddd."
- /* 3 */ ".ddddd."
- /* 4 */ ".ddddd."
- /* 5 */ ".ddddd."
- /* 6 */ "......."
+ /* 0 */ "mmmaaam"
+ /* 1 */ "maaaaam"
+ /* 2 */ "maaaaam"
+ /* 3 */ "maaaaam"
+ /* 4 */ "maaaaam"
+ /* 5 */ "maaaaam"
+ /* 6 */ "mmmmmmm"
// Level 1
/* z\x* 0123456 */
- /* 0 */ "......."
- /* 1 */ ".ddded."
- /* 2 */ ".d...d."
- /* 3 */ ".d...d."
- /* 4 */ ".d...d."
- /* 5 */ ".ddddd."
+ /* 0 */ "...bcd."
+ /* 1 */ ".aaaaa."
+ /* 2 */ ".aaaaa."
+ /* 3 */ ".aaaaa."
+ /* 4 */ ".aaaaa."
+ /* 5 */ ".aaaaa."
/* 6 */ "......."
// Level 2
/* z\x* 0123456 */
/* 0 */ "......."
- /* 1 */ ".dfdgd."
+ /* 1 */ ".aaaea."
+ /* 2 */ ".a...a."
+ /* 3 */ ".a...a."
+ /* 4 */ ".a...a."
+ /* 5 */ ".aaaaa."
+ /* 6 */ "......."
+
+ // Level 3
+ /* z\x* 0123456 */
+ /* 0 */ "......."
+ /* 1 */ ".afaga."
/* 2 */ ".f...f."
/* 3 */ ".f...f."
/* 4 */ ".f...f."
- /* 5 */ ".dfffd."
+ /* 5 */ ".afffa."
/* 6 */ "......."
- // Level 3
+ // Level 4
/* z\x* 0123456 */
- /* 0 */ "bbbbbbb"
- /* 1 */ "hdddddh"
- /* 2 */ ".d.i.d."
- /* 3 */ ".d...d."
- /* 4 */ ".d...d."
- /* 5 */ "jdddddj"
+ /* 0 */ "ccccccc"
+ /* 1 */ "haaaaah"
+ /* 2 */ ".a.i.a."
+ /* 3 */ ".a...a."
+ /* 4 */ ".a...a."
+ /* 5 */ "jaaaaaj"
/* 6 */ "kkkkkkk"
- // Level 4
+ // Level 5
/* z\x* 0123456 */
/* 0 */ "......."
- /* 1 */ "bbbbbbb"
- /* 2 */ "hdddddh"
- /* 3 */ ".d...d."
- /* 4 */ "jdddddj"
+ /* 1 */ "ccccccc"
+ /* 2 */ "haaaaah"
+ /* 3 */ ".a...a."
+ /* 4 */ "jaaaaaj"
/* 5 */ "kkkkkkk"
/* 6 */ "......."
- // Level 5
+ // Level 6
/* z\x* 0123456 */
/* 0 */ "......."
/* 1 */ "......."
- /* 2 */ "bbbbbbb"
- /* 3 */ "ddddddd"
+ /* 2 */ "ccccccc"
+ /* 3 */ "aaaaaaa"
/* 4 */ "kkkkkkk"
/* 5 */ "......."
/* 6 */ ".......",
// Connectors:
- "-1: 4, 0, 0: 2\n" /* Type -1, direction Z- */,
+ "-1: 4, 1, 0: 2\n" /* Type -1, direction Z- */,
// AllowedRotations:
7, /* 1, 2, 3 CCW rotation allowed */
@@ -1031,23 +1128,23 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// 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
+ 9, 7, 7, // SizeX = 9, SizeY = 7, SizeZ = 7
// Hitbox (relative to bounding box):
- 0, 0, 0, // MinX, MinY, MinZ
- 8, 5, 6, // MaxX, MaxY, MaxZ
+ -1, 0, 0, // MinX, MinY, MinZ
+ 9, 6, 7, // 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 */
+ "a: 24: 0\n" /* sandstone */
+ "b:128: 0\n" /* sandstonestairs */
+ "c:128: 2\n" /* sandstonestairs */
+ "d:128: 1\n" /* sandstonestairs */
"e: 64: 7\n" /* wooddoorblock */
"f:102: 0\n" /* glasspane */
"g: 64:12\n" /* wooddoorblock */
@@ -1061,66 +1158,76 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
// Block data:
// Level 0
/* z\x* 012345678 */
- /* 0 */ "...abc..."
- /* 1 */ ".ddddddd."
- /* 2 */ ".ddddddd."
- /* 3 */ ".ddddddd."
- /* 4 */ ".ddddddd."
- /* 5 */ ".ddddddd."
- /* 6 */ "........."
+ /* 0 */ "mmmaaammm"
+ /* 1 */ "maaaaaaam"
+ /* 2 */ "maaaaaaam"
+ /* 3 */ "maaaaaaam"
+ /* 4 */ "maaaaaaam"
+ /* 5 */ "maaaaaaam"
+ /* 6 */ "mmmmmmmmm"
// Level 1
/* z\x* 012345678 */
- /* 0 */ "........."
- /* 1 */ ".dddeddd."
- /* 2 */ ".d.....d."
- /* 3 */ ".d.....d."
- /* 4 */ ".d.....d."
- /* 5 */ ".ddddddd."
+ /* 0 */ "...bcd..."
+ /* 1 */ ".aaaaaaa."
+ /* 2 */ ".aaaaaaa."
+ /* 3 */ ".aaaaaaa."
+ /* 4 */ ".aaaaaaa."
+ /* 5 */ ".aaaaaaa."
/* 6 */ "........."
// Level 2
/* z\x* 012345678 */
/* 0 */ "........."
- /* 1 */ ".dfdgdfd."
+ /* 1 */ ".aaaeaaa."
+ /* 2 */ ".a.....a."
+ /* 3 */ ".a.....a."
+ /* 4 */ ".a.....a."
+ /* 5 */ ".aaaaaaa."
+ /* 6 */ "........."
+
+ // Level 3
+ /* z\x* 012345678 */
+ /* 0 */ "........."
+ /* 1 */ ".afagafa."
/* 2 */ ".f.....f."
/* 3 */ ".f.....f."
/* 4 */ ".f.....f."
- /* 5 */ ".dffdffd."
+ /* 5 */ ".affaffa."
/* 6 */ "........."
- // Level 3
+ // Level 4
/* z\x* 012345678 */
- /* 0 */ "bbbbbbbbb"
- /* 1 */ "hdddddddh"
- /* 2 */ ".d.i.i.d."
- /* 3 */ ".d.....d."
- /* 4 */ ".d..j..d."
- /* 5 */ "kdddddddk"
+ /* 0 */ "ccccccccc"
+ /* 1 */ "haaaaaaah"
+ /* 2 */ ".a.i.i.a."
+ /* 3 */ ".a.....a."
+ /* 4 */ ".a..j..a."
+ /* 5 */ "kaaaaaaak"
/* 6 */ "lllllllll"
- // Level 4
+ // Level 5
/* z\x* 012345678 */
/* 0 */ "........."
- /* 1 */ "bbbbbbbbb"
- /* 2 */ "hdddddddh"
- /* 3 */ ".d.....d."
- /* 4 */ "kdddddddk"
+ /* 1 */ "ccccccccc"
+ /* 2 */ "haaaaaaah"
+ /* 3 */ ".a.....a."
+ /* 4 */ "kaaaaaaak"
/* 5 */ "lllllllll"
/* 6 */ "........."
- // Level 5
+ // Level 6
/* z\x* 012345678 */
/* 0 */ "........."
/* 1 */ "........."
- /* 2 */ "bbbbbbbbb"
- /* 3 */ "ddddddddd"
+ /* 2 */ "ccccccccc"
+ /* 3 */ "aaaaaaaaa"
/* 4 */ "lllllllll"
/* 5 */ "........."
/* 6 */ ".........",
// Connectors:
- "-1: 4, 0, 0: 2\n" /* Type -1, direction Z- */,
+ "-1: 4, 1, 0: 2\n" /* Type -1, direction Z- */,
// AllowedRotations:
7, /* 1, 2, 3 CCW rotation allowed */
@@ -1146,23 +1253,23 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// 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
+ 9, 8, 9, // SizeX = 9, SizeY = 8, SizeZ = 9
// Hitbox (relative to bounding box):
- 0, 0, 0, // MinX, MinY, MinZ
- 8, 6, 8, // MaxX, MaxY, MaxZ
+ -1, 0, 0, // MinX, MinY, MinZ
+ 9, 7, 9, // 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 */
+ "a: 24: 0\n" /* sandstone */
+ "b:128: 0\n" /* sandstonestairs */
+ "c:128: 2\n" /* sandstonestairs */
+ "d:128: 1\n" /* sandstonestairs */
"e: 64: 7\n" /* wooddoorblock */
"f:102: 0\n" /* glasspane */
"g: 64:12\n" /* wooddoorblock */
@@ -1176,90 +1283,102 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
// Block data:
// Level 0
/* z\x* 012345678 */
- /* 0 */ "...abc..."
- /* 1 */ ".ddddddd."
- /* 2 */ ".ddddddd."
- /* 3 */ ".ddddddd."
- /* 4 */ ".ddddddd."
- /* 5 */ ".ddddddd."
- /* 6 */ ".ddddddd."
- /* 7 */ ".ddddddd."
- /* 8 */ "........."
+ /* 0 */ "mmmaaammm"
+ /* 1 */ "maaaaaaam"
+ /* 2 */ "maaaaaaam"
+ /* 3 */ "maaaaaaam"
+ /* 4 */ "maaaaaaam"
+ /* 5 */ "maaaaaaam"
+ /* 6 */ "maaaaaaam"
+ /* 7 */ "maaaaaaam"
+ /* 8 */ "mmmmmmmmm"
// 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."
+ /* 0 */ "...bcd..."
+ /* 1 */ ".aaaaaaa."
+ /* 2 */ ".aaaaaaa."
+ /* 3 */ ".aaaaaaa."
+ /* 4 */ ".aaaaaaa."
+ /* 5 */ ".aaaaaaa."
+ /* 6 */ ".aaaaaaa."
+ /* 7 */ ".aaaaaaa."
/* 8 */ "........."
// Level 2
/* z\x* 012345678 */
/* 0 */ "........."
- /* 1 */ ".dfdgdfd."
+ /* 1 */ ".aaaeaaa."
+ /* 2 */ ".a.....a."
+ /* 3 */ ".a.....a."
+ /* 4 */ ".a.....a."
+ /* 5 */ ".a.....a."
+ /* 6 */ ".a.....a."
+ /* 7 */ ".aaaaaaa."
+ /* 8 */ "........."
+
+ // Level 3
+ /* z\x* 012345678 */
+ /* 0 */ "........."
+ /* 1 */ ".afagafa."
/* 2 */ ".f.....f."
/* 3 */ ".f.....f."
- /* 4 */ ".d.....d."
+ /* 4 */ ".a.....a."
/* 5 */ ".f.....f."
/* 6 */ ".f.....f."
- /* 7 */ ".dffdffd."
+ /* 7 */ ".affaffa."
/* 8 */ "........."
- // Level 3
+ // Level 4
/* 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"
+ /* 0 */ "ccccccccc"
+ /* 1 */ "haaaaaaah"
+ /* 2 */ ".a.i.i.a."
+ /* 3 */ ".a.....a."
+ /* 4 */ ".a.....a."
+ /* 5 */ ".a.....a."
+ /* 6 */ ".a..j..a."
+ /* 7 */ "kaaaaaaak"
/* 8 */ "lllllllll"
- // Level 4
+ // Level 5
/* z\x* 012345678 */
/* 0 */ "........."
- /* 1 */ "bbbbbbbbb"
- /* 2 */ "hdddddddh"
- /* 3 */ ".d.....d."
- /* 4 */ ".d.....d."
- /* 5 */ ".d.....d."
- /* 6 */ "kdddddddk"
+ /* 1 */ "ccccccccc"
+ /* 2 */ "haaaaaaah"
+ /* 3 */ ".a.....a."
+ /* 4 */ ".a.....a."
+ /* 5 */ ".a.....a."
+ /* 6 */ "kaaaaaaak"
/* 7 */ "lllllllll"
/* 8 */ "........."
- // Level 5
+ // Level 6
/* z\x* 012345678 */
/* 0 */ "........."
/* 1 */ "........."
- /* 2 */ "bbbbbbbbb"
- /* 3 */ "hdddddddh"
- /* 4 */ ".d.....d."
- /* 5 */ "kdddddddk"
+ /* 2 */ "ccccccccc"
+ /* 3 */ "haaaaaaah"
+ /* 4 */ ".a.....a."
+ /* 5 */ "kaaaaaaak"
/* 6 */ "lllllllll"
/* 7 */ "........."
/* 8 */ "........."
- // Level 6
+ // Level 7
/* z\x* 012345678 */
/* 0 */ "........."
/* 1 */ "........."
/* 2 */ "........."
- /* 3 */ "bbbbbbbbb"
- /* 4 */ "ddddddddd"
+ /* 3 */ "ccccccccc"
+ /* 4 */ "aaaaaaaaa"
/* 5 */ "lllllllll"
/* 6 */ "........."
/* 7 */ "........."
/* 8 */ ".........",
// Connectors:
- "-1: 4, 0, 0: 2\n" /* Type -1, direction Z- */,
+ "-1: 4, 1, 0: 2\n" /* Type -1, direction Z- */,
// AllowedRotations:
7, /* 1, 2, 3 CCW rotation allowed */
@@ -1285,152 +1404,169 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// 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
+ 14, 8, 12, // SizeX = 14, SizeY = 8, SizeZ = 12
// Hitbox (relative to bounding box):
- 0, 0, 0, // MinX, MinY, MinZ
- 13, 6, 11, // MaxX, MaxY, MaxZ
+ -1, 0, 0, // MinX, MinY, MinZ
+ 14, 7, 12, // 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 */
+ "a: 24: 0\n" /* sandstone */
+ "b:128: 0\n" /* sandstonestairs */
+ "c:128: 2\n" /* sandstonestairs */
+ "d:128: 1\n" /* sandstonestairs */
"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 */
+ "f: 64: 3\n" /* wooddoorblock */
+ "g: 64: 1\n" /* wooddoorblock */
+ "h:102: 0\n" /* glasspane */
+ "i: 64: 8\n" /* wooddoorblock */
+ "j:128: 7\n" /* sandstonestairs */
+ "k: 50: 3\n" /* torch */
+ "l: 50: 2\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 */,
+ "n: 50: 4\n" /* torch */
+ "o:128: 6\n" /* sandstonestairs */
+ "p: 50: 1\n" /* torch */
+ "q:128: 5\n" /* sandstonestairs */
+ "r: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........."
+ /* 0 */ "mmmmaaammmmmmm"
+ /* 1 */ "maaaaaaaaaaaam"
+ /* 2 */ "maaaaaaaaaaaam"
+ /* 3 */ "maaaaaaaaaaaam"
+ /* 4 */ "maaaaaaaaaaaam"
+ /* 5 */ "maaaaaaaaaaaam"
+ /* 6 */ "maaaaaaaaaaaam"
+ /* 7 */ "maaaaaaaaaaaam"
+ /* 8 */ "mmmmaaaaaaaaam"
+ /* 9 */ "mmmmmmaaaaaaam"
+ /* 10 */ "mmmmmmaaaaaaam"
+ /* 11 */ "mmmmmmmmmmmmmm"
// 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."
+ /* 0 */ "....bcd......."
+ /* 1 */ ".aaaaaaaaaaaa."
+ /* 2 */ ".aaaaaaaaaaaa."
+ /* 3 */ ".aaaaaaaaaaaa."
+ /* 4 */ ".aaaaaaaaaaaa."
+ /* 5 */ ".aaaaaaaaaaaa."
+ /* 6 */ ".aaaaaaaaaaaa."
+ /* 7 */ ".aaaaaaaaaaaa."
+ /* 8 */ "....beaaaaaaa."
+ /* 9 */ "mmmmm.aaaaaaa."
+ /* 10 */ "mmmmm.aaaaaaa."
/* 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."
+ /* 1 */ ".aaaafaaaaaaa."
+ /* 2 */ ".a..........a."
+ /* 3 */ ".a..........a."
+ /* 4 */ ".a..........a."
+ /* 5 */ ".a..........a."
+ /* 6 */ ".a..........a."
+ /* 7 */ ".aaaaga.....a."
+ /* 8 */ "......a.....a."
+ /* 9 */ "mmmmm.a.....a."
+ /* 10 */ "mmmmm.aaaaaaa."
/* 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"
+ /* 0 */ ".............."
+ /* 1 */ ".ahhaiahhahha."
+ /* 2 */ ".h..........h."
+ /* 3 */ ".h..........h."
+ /* 4 */ ".a..........a."
+ /* 5 */ ".h..........h."
+ /* 6 */ ".h..........h."
+ /* 7 */ ".ahhaia.....a."
+ /* 8 */ "......h.....h."
+ /* 9 */ "mmmmm.h.....h."
+ /* 10 */ "mmmmm.ahhahha."
+ /* 11 */ "mmmmm........."
// 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."
+ /* 0 */ "cccccccccccccc"
+ /* 1 */ "jaaaaaaaaaaaad"
+ /* 2 */ ".a..k.k.....ad"
+ /* 3 */ ".a..........ad"
+ /* 4 */ ".a.........lad"
+ /* 5 */ ".a..........ad"
+ /* 6 */ ".a..n.n.....ad"
+ /* 7 */ "oaaaaaap...lad"
+ /* 8 */ "eeeeeba.....ad"
+ /* 9 */ "mmmmmba.....ad"
+ /* 10 */ "mmmmmbaaaaaaad"
+ /* 11 */ "mmmmmbq.....rd"
// 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.."
+ /* 1 */ "ccccccccccccd."
+ /* 2 */ "jaaaaaaaaaaad."
+ /* 3 */ ".a.........ad."
+ /* 4 */ ".a.........ad."
+ /* 5 */ ".a.........ad."
+ /* 6 */ "oaaaaaaa...ad."
+ /* 7 */ "eeeeeeba...ad."
+ /* 8 */ "......ba...ad."
+ /* 9 */ "mmmmm.ba...ad."
+ /* 10 */ "mmmmm.baaaaad."
+ /* 11 */ "mmmmm.bq...rd."
// Level 6
/* z\x* 1111 */
/* * 01234567890123 */
/* 0 */ ".............."
/* 1 */ ".............."
+ /* 2 */ "cccccccccccc.."
+ /* 3 */ "jaaaaaaaaaad.."
+ /* 4 */ ".a........ad.."
+ /* 5 */ "oaaaaaaaa.ad.."
+ /* 6 */ "eeeeeeeea.ad.."
+ /* 7 */ ".......ba.ad.."
+ /* 8 */ ".......ba.ad.."
+ /* 9 */ "mmmmm..ba.ad.."
+ /* 10 */ "mmmmm..baaad.."
+ /* 11 */ "mmmmm..bq.rd.."
+
+ // Level 7
+ /* 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...",
+ /* 3 */ "ccccccccccc..."
+ /* 4 */ "aaaaaaaaaad..."
+ /* 5 */ "eeeeeeeebad..."
+ /* 6 */ "........bad..."
+ /* 7 */ "........bad..."
+ /* 8 */ "........bad..."
+ /* 9 */ "mmmmm...bad..."
+ /* 10 */ "mmmmm...bad..."
+ /* 11 */ "mmmmm...bad...",
// Connectors:
- "-1: 5, 0, 0: 2\n" /* Type -1, direction Z- */,
+ "-1: 5, 1, 0: 2\n" /* Type -1, direction Z- */,
// AllowedRotations:
7, /* 1, 2, 3 CCW rotation allowed */
@@ -1456,23 +1592,23 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// 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
+ 14, 7, 12, // SizeX = 14, SizeY = 7, SizeZ = 12
// Hitbox (relative to bounding box):
- 0, 0, 0, // MinX, MinY, MinZ
- 13, 5, 11, // MaxX, MaxY, MaxZ
+ -1, 0, 0, // MinX, MinY, MinZ
+ 14, 6, 12, // 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 */
+ "a: 24: 0\n" /* sandstone */
+ "b:128: 0\n" /* sandstonestairs */
+ "c:128: 2\n" /* sandstonestairs */
+ "d:128: 1\n" /* sandstonestairs */
"e:128: 3\n" /* sandstonestairs */
"f: 64: 7\n" /* wooddoorblock */
"g: 64: 5\n" /* wooddoorblock */
@@ -1491,101 +1627,117 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
// 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......."
+ /* 0 */ "mmmmmmmaaammmm"
+ /* 1 */ "maaaaaaaaaaaam"
+ /* 2 */ "maaaaaaaaaaaam"
+ /* 3 */ "maaaaaaaaaaaam"
+ /* 4 */ "maaaaaaaaaaaam"
+ /* 5 */ "maaaaaaaaaaaam"
+ /* 6 */ "mmmmaaamaaaaam"
+ /* 7 */ "mmmmmmmmaaaaam"
+ /* 8 */ "mmmmmmmmaaaaam"
+ /* 9 */ "mmmmmmmmaaaaam"
+ /* 10 */ "mmmmmmmmaaaaam"
+ /* 11 */ "mmmmmmmmmmmmmm"
// 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......."
+ /* 0 */ ".......bcd...."
+ /* 1 */ ".aaaaaaaaaaaa."
+ /* 2 */ ".aaaaaaaaaaaa."
+ /* 3 */ ".aaaaaaaaaaaa."
+ /* 4 */ ".aaaaaaaaaaaa."
+ /* 5 */ ".aaaaaaaaaaaa."
+ /* 6 */ "....bed.aaaaa."
+ /* 7 */ "........aaaaa."
+ /* 8 */ "........aaaaa."
+ /* 9 */ "........aaaaa."
+ /* 10 */ "........aaaaa."
+ /* 11 */ ".............."
// Level 2
/* z\x* 1111 */
/* * 01234567890123 */
/* 0 */ ".............."
- /* 1 */ ".dhhdhhdidhhd."
+ /* 1 */ ".aaaaaaafaaaa."
+ /* 2 */ ".a..........a."
+ /* 3 */ ".a..........a."
+ /* 4 */ ".a..........a."
+ /* 5 */ ".aaaagaaa...a."
+ /* 6 */ "........a...a."
+ /* 7 */ "........a...a."
+ /* 8 */ "........a...a."
+ /* 9 */ "........a...a."
+ /* 10 */ "........aaaaa."
+ /* 11 */ ".............."
+
+ // Level 3
+ /* z\x* 1111 */
+ /* * 01234567890123 */
+ /* 0 */ ".............."
+ /* 1 */ ".ahhahhaiahha."
/* 2 */ ".h..........h."
/* 3 */ ".h..........h."
- /* 4 */ ".h..........d."
- /* 5 */ ".dhhdidhh...h."
+ /* 4 */ ".h..........a."
+ /* 5 */ ".ahhaiahh...h."
/* 6 */ "........h...h."
- /* 7 */ "mmmmmmm.d...d."
- /* 8 */ "mmmmmmm.h...h."
- /* 9 */ "mmmmmmm.h...h."
- /* 10 */ "mmmmmmm.dhhhd."
- /* 11 */ "mmmmmmm......."
+ /* 7 */ "........a...a."
+ /* 8 */ "........h...h."
+ /* 9 */ "........h...h."
+ /* 10 */ "........ahhha."
+ /* 11 */ ".............."
- // Level 3
+ // Level 4
/* 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"
+ /* 0 */ "cccccccccccccc"
+ /* 1 */ "jaaaaaaaaaaaad"
+ /* 2 */ ".a.....k.k..ad"
+ /* 3 */ ".a..........ad"
+ /* 4 */ ".a..l.l.....ad"
+ /* 5 */ "naaaaaaaa...ad"
+ /* 6 */ "eeeeeeeba...ad"
+ /* 7 */ ".......ba...ad"
+ /* 8 */ ".......ba...ad"
+ /* 9 */ ".......ba...ad"
+ /* 10 */ ".......baaaaad"
+ /* 11 */ ".......bo...pd"
- // Level 4
+ // Level 5
/* 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."
+ /* 1 */ "ccccccccccccc."
+ /* 2 */ "jaaaaaaaaaaad."
+ /* 3 */ ".aq........ad."
+ /* 4 */ "naaaaaaaaa.ad."
+ /* 5 */ "eeeeeeeeba.ad."
+ /* 6 */ "........ba.ad."
+ /* 7 */ "........ba.ad."
+ /* 8 */ "........ba.ad."
+ /* 9 */ "........balad."
+ /* 10 */ "........baaad."
+ /* 11 */ "........bo.pd."
- // Level 5
+ // Level 6
/* 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..",
+ /* 2 */ "cccccccccccc.."
+ /* 3 */ "aaaaaaaaaaad.."
+ /* 4 */ "eeeeeeeeebad.."
+ /* 5 */ ".........bad.."
+ /* 6 */ ".........bad.."
+ /* 7 */ ".........bad.."
+ /* 8 */ ".........bad.."
+ /* 9 */ ".........bad.."
+ /* 10 */ ".........bad.."
+ /* 11 */ ".........bad..",
// Connectors:
- "-1: 8, 0, 0: 2\n" /* Type -1, direction Z- */,
+ "-1: 8, 1, 0: 2\n" /* Type -1, direction Z- */,
// AllowedRotations:
7, /* 1, 2, 3 CCW rotation allowed */
@@ -1611,16 +1763,16 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// 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
+ 10, 3, 7, // SizeX = 10, SizeY = 3, SizeZ = 7
// Hitbox (relative to bounding box):
- 0, 0, 0, // MinX, MinY, MinZ
- 9, 1, 6, // MaxX, MaxY, MaxZ
+ 0, 0, -1, // MinX, MinY, MinZ
+ 10, 2, 7, // MaxX, MaxY, MaxZ
// Block definitions:
".: 0: 0\n" /* air */
@@ -1636,6 +1788,17 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
/* z\x* */
/* * 0123456789 */
/* 0 */ "aaaaaaaaaa"
+ /* 1 */ "aaaaaaaaaa"
+ /* 2 */ "aaaaaaaaaa"
+ /* 3 */ "aaaaaaaaaa"
+ /* 4 */ "aaaaaaaaaa"
+ /* 5 */ "aaaaaaaaaa"
+ /* 6 */ "aaaaaaaaaa"
+
+ // Level 1
+ /* z\x* */
+ /* * 0123456789 */
+ /* 0 */ "aaaaaaaaaa"
/* 1 */ "abbbbbbbba"
/* 2 */ "abbbbbbbba"
/* 3 */ "acccccccca"
@@ -1643,7 +1806,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
/* 5 */ "abbbbbbbba"
/* 6 */ "aaaaaaaaaa"
- // Level 1
+ // Level 2
/* z\x* */
/* * 0123456789 */
/* 0 */ "d........d"
@@ -1655,7 +1818,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
/* 6 */ "d........d",
// Connectors:
- "-1: 0, 0, 3: 4\n" /* Type -1, direction X- */,
+ "-1: 0, 1, 3: 4\n" /* Type -1, direction X- */,
// AllowedRotations:
7, /* 1, 2, 3 CCW rotation allowed */
@@ -1681,16 +1844,16 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// 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
+ 5, 6, 6, // SizeX = 5, SizeY = 6, SizeZ = 6
// Hitbox (relative to bounding box):
- 0, 0, 0, // MinX, MinY, MinZ
- 4, 4, 5, // MaxX, MaxY, MaxZ
+ -1, 0, -1, // MinX, MinY, MinZ
+ 5, 5, 5, // MaxX, MaxY, MaxZ
// Block definitions:
".: 0: 0\n" /* air */
@@ -1712,10 +1875,19 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
/* 2 */ "aaaaa"
/* 3 */ "aaaaa"
/* 4 */ "aaaaa"
- /* 5 */ "..b.."
+ /* 5 */ "mmamm"
// Level 1
/* z\x* 01234 */
+ /* 0 */ "aaaaa"
+ /* 1 */ "aaaaa"
+ /* 2 */ "aaaaa"
+ /* 3 */ "aaaaa"
+ /* 4 */ "aaaaa"
+ /* 5 */ "..b.."
+
+ // Level 2
+ /* z\x* 01234 */
/* 0 */ "accca"
/* 1 */ "cdedc"
/* 2 */ "c.f.c"
@@ -1723,7 +1895,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
/* 4 */ "acgca"
/* 5 */ "....."
- // Level 2
+ // Level 3
/* z\x* 01234 */
/* 0 */ "ac.ca"
/* 1 */ "c...c"
@@ -1732,7 +1904,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
/* 4 */ "achca"
/* 5 */ "....."
- // Level 3
+ // Level 4
/* z\x* 01234 */
/* 0 */ "accca"
/* 1 */ "c...c"
@@ -1741,7 +1913,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
/* 4 */ "accca"
/* 5 */ "....."
- // Level 4
+ // Level 5
/* z\x* 01234 */
/* 0 */ ".aaa."
/* 1 */ "aaaaa"
@@ -1751,7 +1923,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
/* 5 */ ".....",
// Connectors:
- "-1: 2, 0, 5: 3\n" /* Type -1, direction Z+ */,
+ "-1: 2, 1, 5: 3\n" /* Type -1, direction Z+ */,
// AllowedRotations:
7, /* 1, 2, 3 CCW rotation allowed */
@@ -1783,7 +1955,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
const cPrefab::sDef g_SandVillageStartingPrefabs[] =
{
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// RoofedWell:
// The data has been exported from the gallery Desert, area index 43, ID 274, created by Aloe_vera
{
@@ -1800,15 +1972,17 @@ const cPrefab::sDef g_SandVillageStartingPrefabs[] =
"b: 24: 0\n" /* sandstone */
"c: 8: 0\n" /* water */
"d: 12: 0\n" /* sand */
- "e:118: 3\n" /* cauldronblock */
- "f: 85: 0\n" /* fence */
- "g:128: 2\n" /* sandstonestairs */
- "h:128: 7\n" /* sandstonestairs */
- "i:128: 4\n" /* sandstonestairs */
- "j:128: 5\n" /* sandstonestairs */
- "k:128: 6\n" /* sandstonestairs */
- "l:128: 3\n" /* sandstonestairs */
- "m: 19: 0\n" /* sponge */,
+ "e: 4: 0\n" /* cobblestone */
+ "f: 13: 0\n" /* gravel */
+ "g:118: 3\n" /* cauldronblock */
+ "h: 85: 0\n" /* fence */
+ "i:128: 2\n" /* sandstonestairs */
+ "j:128: 7\n" /* sandstonestairs */
+ "k:128: 4\n" /* sandstonestairs */
+ "l:128: 5\n" /* sandstonestairs */
+ "m: 19: 0\n" /* sponge */
+ "n:128: 6\n" /* sandstonestairs */
+ "o:128: 3\n" /* sandstonestairs */,
// Block data:
// Level 0
@@ -1873,30 +2047,30 @@ const cPrefab::sDef g_SandVillageStartingPrefabs[] =
// Level 6
/* z\x* 0123456 */
- /* 0 */ "ddddddd"
+ /* 0 */ "ddeeedd"
/* 1 */ "dbbbbbd"
- /* 2 */ "dbcccbd"
- /* 3 */ "dbcccbd"
- /* 4 */ "dbcccbd"
+ /* 2 */ "ebcccbe"
+ /* 3 */ "ebcccbe"
+ /* 4 */ "ebcccbe"
/* 5 */ "dbbbbbd"
- /* 6 */ "ddddddd"
+ /* 6 */ "ddeeedd"
// Level 7
/* z\x* 0123456 */
- /* 0 */ "ddbbbdd"
+ /* 0 */ "ddfffdd"
/* 1 */ "dbbbbbd"
- /* 2 */ "bbcccbb"
- /* 3 */ "bbcccbb"
- /* 4 */ "bbcccbb"
+ /* 2 */ "fbcccbf"
+ /* 3 */ "fbcccbf"
+ /* 4 */ "fbcccbf"
/* 5 */ "dbbbbbd"
- /* 6 */ "ddbbbdd"
+ /* 6 */ "ddfffdd"
// Level 8
/* z\x* 0123456 */
/* 0 */ "......."
/* 1 */ ".bbbbb."
/* 2 */ ".b...b."
- /* 3 */ ".b.e.b."
+ /* 3 */ ".b.g.b."
/* 4 */ ".b...b."
/* 5 */ ".bbbbb."
/* 6 */ "......."
@@ -1904,50 +2078,50 @@ const cPrefab::sDef g_SandVillageStartingPrefabs[] =
// Level 9
/* z\x* 0123456 */
/* 0 */ "......."
- /* 1 */ ".f...f."
+ /* 1 */ ".h...h."
/* 2 */ "......."
- /* 3 */ "...f..."
+ /* 3 */ "...h..."
/* 4 */ "......."
- /* 5 */ ".f...f."
+ /* 5 */ ".h...h."
/* 6 */ "......."
// Level 10
/* z\x* 0123456 */
/* 0 */ "......."
- /* 1 */ ".f...f."
+ /* 1 */ ".h...h."
/* 2 */ "......."
- /* 3 */ "...f..."
+ /* 3 */ "...h..."
/* 4 */ "......."
- /* 5 */ ".f...f."
+ /* 5 */ ".h...h."
/* 6 */ "......."
// Level 11
/* z\x* 0123456 */
- /* 0 */ "ggggggg"
- /* 1 */ "hbhhhbh"
- /* 2 */ ".i...j."
- /* 3 */ ".i.f.j."
- /* 4 */ ".i...j."
- /* 5 */ "kbkkkbk"
- /* 6 */ "lllllll"
+ /* 0 */ "iiiiiii"
+ /* 1 */ "jbjjjbj"
+ /* 2 */ ".k...l."
+ /* 3 */ ".k.h.l."
+ /* 4 */ ".k...l."
+ /* 5 */ "nbnnnbn"
+ /* 6 */ "ooooooo"
// Level 12
/* z\x* 0123456 */
/* 0 */ "......."
- /* 1 */ "ggggggg"
- /* 2 */ "hb...bh"
- /* 3 */ ".b.f.b."
- /* 4 */ "kb...bk"
- /* 5 */ "lllllll"
+ /* 1 */ "iiiiiii"
+ /* 2 */ "jb...bj"
+ /* 3 */ ".b.h.b."
+ /* 4 */ "nb...bn"
+ /* 5 */ "ooooooo"
/* 6 */ "......."
// Level 13
/* z\x* 0123456 */
/* 0 */ "......."
/* 1 */ "......."
- /* 2 */ "ggggggg"
+ /* 2 */ "iiiiiii"
/* 3 */ "bbbbbbb"
- /* 4 */ "lllllll"
+ /* 4 */ "ooooooo"
/* 5 */ "......."
/* 6 */ ".......",
@@ -1981,7 +2155,7 @@ const cPrefab::sDef g_SandVillageStartingPrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// Well:
// The data has been exported from the gallery Desert, area index 0, ID 1, created by Aloe_vera
{
diff --git a/src/Generating/Prefabs/TestRailsPrefabs.cpp b/src/Generating/Prefabs/TestRailsPrefabs.cpp
new file mode 100644
index 000000000..f58b95225
--- /dev/null
+++ b/src/Generating/Prefabs/TestRailsPrefabs.cpp
@@ -0,0 +1,484 @@
+
+// TestRailsPrefabs.cpp
+
+// Defines the prefabs in the group TestRails
+
+// NOTE: This file has been generated automatically by GalExport!
+// Any manual changes will be overwritten by the next automatic export!
+
+#include "Globals.h"
+#include "TestRailsPrefabs.h"
+
+
+
+
+
+const cPrefab::sDef g_TestRailsPrefabs[] =
+{
+ ////////////////////////////////////////////////////////////////////////////////
+ // ActivatorRail:
+ // The data has been exported from the gallery Plains, area index 251, ID 746, created by Aloe_vera
+ {
+ // Size:
+ 7, 3, 7, // SizeX = 7, SizeY = 3, SizeZ = 7
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 6, 2, 6, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a: 1: 0\n" /* stone */
+ "b: 5: 0\n" /* wood */
+ "c:157: 0\n" /* activatorrail */
+ "d:157: 2\n" /* activatorrail */
+ "e:157: 3\n" /* activatorrail */
+ "f:157: 5\n" /* activatorrail */
+ "g: 50: 5\n" /* torch */
+ "h:157: 4\n" /* activatorrail */
+ "i:157: 1\n" /* activatorrail */
+ "m: 19: 0\n" /* sponge */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 0123456 */
+ /* 0 */ "aaab..."
+ /* 1 */ "abbbbb."
+ /* 2 */ "abbb.b."
+ /* 3 */ "bbbb.bb"
+ /* 4 */ ".b...b."
+ /* 5 */ ".bbbbb."
+ /* 6 */ "...b..."
+
+ // Level 1
+ /* z\x* 0123456 */
+ /* 0 */ "......."
+ /* 1 */ ".cdbec."
+ /* 2 */ ".fg..f."
+ /* 3 */ ".b.g.b."
+ /* 4 */ ".h...h."
+ /* 5 */ ".cdbec."
+ /* 6 */ "......."
+
+ // Level 2
+ /* z\x* 0123456 */
+ /* 0 */ "......."
+ /* 1 */ "...i..."
+ /* 2 */ "......."
+ /* 3 */ ".c...c."
+ /* 4 */ "......."
+ /* 5 */ "...i..."
+ /* 6 */ ".......",
+
+ // Connectors:
+ "1: 6, 1, 3: 5\n" /* Type 1, direction X+ */
+ "-1: 6, 1, 3: 5\n" /* Type -1, direction X+ */
+ "1: 3, 1, 6: 3\n" /* Type 1, direction Z+ */
+ "-1: 3, 1, 6: 3\n" /* Type -1, direction Z+ */
+ "1: 0, 1, 3: 4\n" /* Type 1, direction X- */
+ "-1: 0, 1, 3: 4\n" /* Type -1, direction X- */
+ "1: 3, 1, 0: 2\n" /* Type 1, direction Z- */
+ "-1: 3, 1, 0: 2\n" /* Type -1, direction Z- */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ false,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+
+ // MoveToGround:
+ false,
+ }, // ActivatorRail
+
+
+
+ ////////////////////////////////////////////////////////////////////////////////
+ // DetectorRail:
+ // The data has been exported from the gallery Plains, area index 250, ID 745, created by Aloe_vera
+ {
+ // Size:
+ 7, 3, 7, // SizeX = 7, SizeY = 3, SizeZ = 7
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 6, 2, 6, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a: 1: 0\n" /* stone */
+ "b: 5: 0\n" /* wood */
+ "c: 28: 0\n" /* detectorrail */
+ "d: 28: 2\n" /* detectorrail */
+ "e: 28: 3\n" /* detectorrail */
+ "f: 28: 5\n" /* detectorrail */
+ "g: 50: 5\n" /* torch */
+ "h: 28: 4\n" /* detectorrail */
+ "i: 28: 1\n" /* detectorrail */
+ "m: 19: 0\n" /* sponge */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 0123456 */
+ /* 0 */ "aaab..."
+ /* 1 */ "abbbbb."
+ /* 2 */ "abbb.b."
+ /* 3 */ "bbbb.bb"
+ /* 4 */ ".b...b."
+ /* 5 */ ".bbbbb."
+ /* 6 */ "...b..."
+
+ // Level 1
+ /* z\x* 0123456 */
+ /* 0 */ "......."
+ /* 1 */ ".cdbec."
+ /* 2 */ ".fg..f."
+ /* 3 */ ".b.g.b."
+ /* 4 */ ".h...h."
+ /* 5 */ ".cdbec."
+ /* 6 */ "......."
+
+ // Level 2
+ /* z\x* 0123456 */
+ /* 0 */ "......."
+ /* 1 */ "...i..."
+ /* 2 */ "......."
+ /* 3 */ ".c...c."
+ /* 4 */ "......."
+ /* 5 */ "...i..."
+ /* 6 */ ".......",
+
+ // Connectors:
+ "1: 6, 1, 3: 5\n" /* Type 1, direction X+ */
+ "-1: 6, 1, 3: 5\n" /* Type -1, direction X+ */
+ "1: 3, 1, 0: 2\n" /* Type 1, direction Z- */
+ "-1: 3, 1, 0: 2\n" /* Type -1, direction Z- */
+ "1: 0, 1, 3: 4\n" /* Type 1, direction X- */
+ "-1: 0, 1, 3: 4\n" /* Type -1, direction X- */
+ "1: 3, 1, 6: 3\n" /* Type 1, direction Z+ */
+ "-1: 3, 1, 6: 3\n" /* Type -1, direction Z+ */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ false,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+
+ // MoveToGround:
+ false,
+ }, // DetectorRail
+
+
+
+ ////////////////////////////////////////////////////////////////////////////////
+ // PowerRail:
+ // The data has been exported from the gallery Plains, area index 248, ID 743, created by Aloe_vera
+ {
+ // Size:
+ 7, 3, 7, // SizeX = 7, SizeY = 3, SizeZ = 7
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 6, 2, 6, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a: 1: 0\n" /* stone */
+ "b: 5: 0\n" /* wood */
+ "c: 27: 0\n" /* poweredrail */
+ "d: 27: 2\n" /* poweredrail */
+ "e: 27: 3\n" /* poweredrail */
+ "f: 27: 5\n" /* poweredrail */
+ "g: 50: 5\n" /* torch */
+ "h: 27: 4\n" /* poweredrail */
+ "i: 27: 1\n" /* poweredrail */
+ "m: 19: 0\n" /* sponge */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 0123456 */
+ /* 0 */ "aaab..."
+ /* 1 */ "abbbbb."
+ /* 2 */ "abbb.b."
+ /* 3 */ "bbbb.bb"
+ /* 4 */ ".b...b."
+ /* 5 */ ".bbbbb."
+ /* 6 */ "...b..."
+
+ // Level 1
+ /* z\x* 0123456 */
+ /* 0 */ "......."
+ /* 1 */ ".cdbec."
+ /* 2 */ ".fg..f."
+ /* 3 */ ".b.g.b."
+ /* 4 */ ".h...h."
+ /* 5 */ ".cdbec."
+ /* 6 */ "......."
+
+ // Level 2
+ /* z\x* 0123456 */
+ /* 0 */ "......."
+ /* 1 */ "...i..."
+ /* 2 */ "......."
+ /* 3 */ ".c...c."
+ /* 4 */ "......."
+ /* 5 */ "...i..."
+ /* 6 */ ".......",
+
+ // Connectors:
+ "1: 6, 1, 3: 5\n" /* Type 1, direction X+ */
+ "-1: 6, 1, 3: 5\n" /* Type -1, direction X+ */
+ "1: 3, 1, 6: 3\n" /* Type 1, direction Z+ */
+ "-1: 3, 1, 6: 3\n" /* Type -1, direction Z+ */
+ "1: 0, 1, 3: 4\n" /* Type 1, direction X- */
+ "-1: 0, 1, 3: 4\n" /* Type -1, direction X- */
+ "1: 3, 1, 0: 2\n" /* Type 1, direction Z- */
+ "-1: 3, 1, 0: 2\n" /* Type -1, direction Z- */
+ "1: 6, 1, 3: 5\n" /* Type 1, direction X+ */
+ "-1: 6, 1, 3: 5\n" /* Type -1, direction X+ */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ false,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+
+ // MoveToGround:
+ false,
+ }, // PowerRail
+
+
+
+ ////////////////////////////////////////////////////////////////////////////////
+ // RegularRail:
+ // The data has been exported from the gallery Plains, area index 247, ID 742, created by Aloe_vera
+ {
+ // Size:
+ 7, 3, 7, // SizeX = 7, SizeY = 3, SizeZ = 7
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 6, 2, 6, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a: 1: 0\n" /* stone */
+ "b: 5: 0\n" /* wood */
+ "c: 66: 6\n" /* tracks */
+ "d: 66: 2\n" /* tracks */
+ "e: 66: 3\n" /* tracks */
+ "f: 66: 7\n" /* tracks */
+ "g: 66: 5\n" /* tracks */
+ "h: 50: 5\n" /* torch */
+ "i: 66: 4\n" /* tracks */
+ "j: 66: 9\n" /* tracks */
+ "k: 66: 8\n" /* tracks */
+ "l: 66: 1\n" /* tracks */
+ "m: 19: 0\n" /* sponge */
+ "n: 66: 0\n" /* tracks */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 0123456 */
+ /* 0 */ "aaab..."
+ /* 1 */ "abbbbb."
+ /* 2 */ "abbb.b."
+ /* 3 */ "bbbb.bb"
+ /* 4 */ ".b...b."
+ /* 5 */ ".bbbbb."
+ /* 6 */ "...b..."
+
+ // Level 1
+ /* z\x* 0123456 */
+ /* 0 */ "......."
+ /* 1 */ ".cdbef."
+ /* 2 */ ".gh..g."
+ /* 3 */ ".b.h.b."
+ /* 4 */ ".i...i."
+ /* 5 */ ".jdbek."
+ /* 6 */ "......."
+
+ // Level 2
+ /* z\x* 0123456 */
+ /* 0 */ "......."
+ /* 1 */ "...l..."
+ /* 2 */ "......."
+ /* 3 */ ".n...n."
+ /* 4 */ "......."
+ /* 5 */ "...l..."
+ /* 6 */ ".......",
+
+ // Connectors:
+ "1: 6, 1, 3: 5\n" /* Type 1, direction X+ */
+ "-1: 6, 1, 3: 5\n" /* Type -1, direction X+ */
+ "1: 3, 1, 6: 3\n" /* Type 1, direction Z+ */
+ "-1: 3, 1, 6: 3\n" /* Type -1, direction Z+ */
+ "1: 0, 1, 3: 4\n" /* Type 1, direction X- */
+ "-1: 0, 1, 3: 4\n" /* Type -1, direction X- */
+ "1: 3, 1, 0: 2\n" /* Type 1, direction Z- */
+ "-1: 3, 1, 0: 2\n" /* Type -1, direction Z- */,
+
+ // AllowedRotations:
+ 7, /* 1, 2, 3 CCW rotation allowed */
+
+ // Merge strategy:
+ cBlockArea::msSpongePrint,
+
+ // ShouldExtendFloor:
+ false,
+
+ // DefaultWeight:
+ 100,
+
+ // DepthWeight:
+ "",
+
+ // AddWeightIfSame:
+ 0,
+
+ // MoveToGround:
+ false,
+ }, // RegularRail
+}; // g_TestRailsPrefabs
+
+
+
+
+
+
+const cPrefab::sDef g_TestRailsStartingPrefabs[] =
+{
+ ////////////////////////////////////////////////////////////////////////////////
+ // CentralPiece:
+ // The data has been exported from the gallery Plains, area index 249, ID 744, created by Aloe_vera
+ {
+ // Size:
+ 6, 3, 6, // SizeX = 6, SizeY = 3, SizeZ = 6
+
+ // Hitbox (relative to bounding box):
+ 0, 0, 0, // MinX, MinY, MinZ
+ 5, 2, 5, // MaxX, MaxY, MaxZ
+
+ // Block definitions:
+ ".: 0: 0\n" /* air */
+ "a: 1: 0\n" /* stone */
+ "b: 5: 0\n" /* wood */
+ "c: 66: 6\n" /* tracks */
+ "d: 66: 2\n" /* tracks */
+ "e: 66: 3\n" /* tracks */
+ "f: 66: 7\n" /* tracks */
+ "g: 66: 5\n" /* tracks */
+ "h: 50: 5\n" /* torch */
+ "i: 66: 4\n" /* tracks */
+ "j: 66: 9\n" /* tracks */
+ "k: 66: 8\n" /* tracks */
+ "l: 66: 1\n" /* tracks */
+ "m: 19: 0\n" /* sponge */
+ "n: 66: 0\n" /* tracks */,
+
+ // Block data:
+ // Level 0
+ /* z\x* 012345 */
+ /* 0 */ "aaab.."
+ /* 1 */ "abbbbb"
+ /* 2 */ "abbb.b"
+ /* 3 */ "bbbb.b"
+ /* 4 */ ".b...b"
+ /* 5 */ ".bbbbb"
+
+ // Level 1
+ /* z\x* 012345 */
+ /* 0 */ "......"
+ /* 1 */ ".cdbef"
+ /* 2 */ ".gh..g"
+ /* 3 */ ".b.h.b"
+ /* 4 */ ".i...i"
+ /* 5 */ ".jdbek"
+
+ // Level 2
+ /* z\x* 012345 */
+ /* 0 */ "......"
+ /* 1 */ "...l.."
+ /* 2 */ "......"
+ /* 3 */ ".n...n"
+ /* 4 */ "......"
+ /* 5 */ "...l..",
+
+ // Connectors:
+ "1: 3, 1, 6: 3\n" /* Type 1, direction Z+ */
+ "1: 0, 1, 3: 4\n" /* Type 1, direction X- */
+ "-1: 0, 1, 3: 4\n" /* Type -1, direction X- */
+ "-1: 3, 1, 6: 3\n" /* Type -1, direction Z+ */
+ "1: 6, 1, 3: 5\n" /* Type 1, direction X+ */
+ "-1: 6, 1, 3: 5\n" /* Type -1, direction X+ */
+ "1: 3, 1, 0: 2\n" /* Type 1, direction Z- */
+ "-1: 3, 1, 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,
+
+ // MoveToGround:
+ false,
+ }, // CentralPiece
+};
+
+
+
+
+
+// The prefab counts:
+
+const size_t g_TestRailsPrefabsCount = ARRAYCOUNT(g_TestRailsPrefabs);
+
+const size_t g_TestRailsStartingPrefabsCount = ARRAYCOUNT(g_TestRailsStartingPrefabs);
+
diff --git a/src/Generating/Prefabs/TestRailsPrefabs.h b/src/Generating/Prefabs/TestRailsPrefabs.h
new file mode 100644
index 000000000..24b84de74
--- /dev/null
+++ b/src/Generating/Prefabs/TestRailsPrefabs.h
@@ -0,0 +1,15 @@
+
+// TestRailsPrefabs.h
+
+// Declares the prefabs in the group TestRails
+
+#include "../Prefab.h"
+
+
+
+
+
+extern const cPrefab::sDef g_TestRailsPrefabs[];
+extern const cPrefab::sDef g_TestRailsStartingPrefabs[];
+extern const size_t g_TestRailsPrefabsCount;
+extern const size_t g_TestRailsStartingPrefabsCount;
diff --git a/src/Generating/Prefabs/UnderwaterBasePrefabs.cpp b/src/Generating/Prefabs/UnderwaterBasePrefabs.cpp
index 39748a223..1655f50b9 100644
--- a/src/Generating/Prefabs/UnderwaterBasePrefabs.cpp
+++ b/src/Generating/Prefabs/UnderwaterBasePrefabs.cpp
@@ -15,7 +15,7 @@
const cPrefab::sDef g_UnderwaterBasePrefabs[] =
{
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// BrokenRoom:
// The data has been exported from the gallery Water, area index 49, ID 680, created by STR_Warrior
{
@@ -178,7 +178,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// Corridor16:
// The data has been exported from the gallery Water, area index 25, ID 566, created by xoft
{
@@ -265,7 +265,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// CorridorCorner:
// The data has been exported from the gallery Water, area index 26, ID 569, created by xoft
{
@@ -366,7 +366,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] =
true,
// DefaultWeight:
- 100,
+ 200,
// DepthWeight:
"",
@@ -380,7 +380,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// CorridorCrossing:
// The data has been exported from the gallery Water, area index 31, ID 581, created by LO1ZB
{
@@ -526,7 +526,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// CorridorStairs:
// The data has been exported from the gallery Water, area index 32, ID 582, created by LO1ZB
{
@@ -656,7 +656,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// CorridorTee:
// The data has been exported from the gallery Water, area index 29, ID 576, created by LO1ZB
{
@@ -775,7 +775,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// ViewingCorner:
// The data has been exported from the gallery Water, area index 40, ID 613, created by LO1ZB
{
@@ -958,7 +958,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// ViewingCorridor:
// The data has been exported from the gallery Water, area index 27, ID 571, created by LO1ZB
{
@@ -1065,7 +1065,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// ViewingCorridorBulge:
// The data has been exported from the gallery Water, area index 42, ID 615, created by LO1ZB
{
@@ -1280,7 +1280,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// ViewingCrossing:
// The data has been exported from the gallery Water, area index 38, ID 611, created by LO1ZB
{
@@ -1483,7 +1483,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// ViewingEnd:
// The data has been exported from the gallery Water, area index 41, ID 614, created by LO1ZB
{
@@ -1648,7 +1648,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// ViewingTee:
// The data has been exported from the gallery Water, area index 39, ID 612, created by LO1ZB
{
@@ -1850,7 +1850,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] =
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// WaterfallRoom:
// The data has been exported from the gallery Water, area index 50, ID 681, created by Aloe_vera
{
@@ -2059,7 +2059,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] =
const cPrefab::sDef g_UnderwaterBaseStartingPrefabs[] =
{
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
// CentralRoom:
// The data has been exported from the gallery Water, area index 24, ID 564, created by xoft
{
diff --git a/src/Generating/RainbowRoadsGen.cpp b/src/Generating/RainbowRoadsGen.cpp
index 3b0ff7df8..c3c07cdec 100644
--- a/src/Generating/RainbowRoadsGen.cpp
+++ b/src/Generating/RainbowRoadsGen.cpp
@@ -18,7 +18,7 @@ static cPrefabPiecePool g_RainbowRoads(g_RainbowRoadPrefabs, g_RainbowRoadPrefab
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cRainbowRoadsGen::cRainbowRoads:
class cRainbowRoadsGen::cRainbowRoads :
@@ -86,7 +86,7 @@ protected:
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cRainbowRoadsGen:
diff --git a/src/Generating/Ravines.cpp b/src/Generating/Ravines.cpp
index 24f2cc3ab..70b9d0b62 100644
--- a/src/Generating/Ravines.cpp
+++ b/src/Generating/Ravines.cpp
@@ -77,7 +77,7 @@ protected:
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cStructGenRavines:
cStructGenRavines::cStructGenRavines(int a_Seed, int a_Size) :
@@ -101,7 +101,7 @@ cGridStructGen::cStructurePtr cStructGenRavines::CreateStructure(int a_GridX, in
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cStructGenRavines::cRavine
cStructGenRavines::cRavine::cRavine(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ, int a_Size, cNoise & a_Noise) :
@@ -283,38 +283,38 @@ void cStructGenRavines::cRavine::FinishLinear(void)
AString cStructGenRavines::cRavine::ExportAsSVG(int a_Color, int a_OffsetX, int a_OffsetZ) const
{
AString SVG;
- AppendPrintf(SVG, "<path style=\"fill:none;stroke:#%06x;stroke-width:1px;\"\nd=\"", a_Color);
- char Prefix = 'M'; // The first point needs "M" prefix, all the others need "L"
- for (cRavDefPoints::const_iterator itr = m_Points.begin(); itr != m_Points.end(); ++itr)
- {
- AppendPrintf(SVG, "%c %d,%d ", Prefix, a_OffsetX + itr->m_BlockX, a_OffsetZ + itr->m_BlockZ);
+ AppendPrintf(SVG, "<path style=\"fill:none;stroke:#%06x;stroke-width:1px;\"\nd=\"", a_Color);
+ char Prefix = 'M'; // The first point needs "M" prefix, all the others need "L"
+ for (cRavDefPoints::const_iterator itr = m_Points.begin(); itr != m_Points.end(); ++itr)
+ {
+ AppendPrintf(SVG, "%c %d, %d ", Prefix, a_OffsetX + itr->m_BlockX, a_OffsetZ + itr->m_BlockZ);
Prefix = 'L';
- }
- SVG.append("\"/>\n");
-
- // Base point highlight:
- AppendPrintf(SVG, "<path style=\"fill:none;stroke:#ff0000;stroke-width:1px;\"\nd=\"M %d,%d L %d,%d\"/>\n",
+ }
+ SVG.append("\"/>\n");
+
+ // Base point highlight:
+ AppendPrintf(SVG, "<path style=\"fill:none;stroke:#ff0000;stroke-width:1px;\"\nd=\"M %d, %d L %d, %d\"/>\n",
a_OffsetX + m_OriginX - 5, a_OffsetZ + m_OriginZ, a_OffsetX + m_OriginX + 5, a_OffsetZ + m_OriginZ
);
- AppendPrintf(SVG, "<path style=\"fill:none;stroke:#ff0000;stroke-width:1px;\"\nd=\"M %d,%d L %d,%d\"/>\n",
+ AppendPrintf(SVG, "<path style=\"fill:none;stroke:#ff0000;stroke-width:1px;\"\nd=\"M %d, %d L %d, %d\"/>\n",
a_OffsetX + m_OriginX, a_OffsetZ + m_OriginZ - 5, a_OffsetX + m_OriginX, a_OffsetZ + m_OriginZ + 5
);
// A gray line from the base point to the first point of the ravine, for identification:
- AppendPrintf(SVG, "<path style=\"fill:none;stroke:#cfcfcf;stroke-width:1px;\"\nd=\"M %d,%d L %d,%d\"/>\n",
+ AppendPrintf(SVG, "<path style=\"fill:none;stroke:#cfcfcf;stroke-width:1px;\"\nd=\"M %d, %d L %d, %d\"/>\n",
a_OffsetX + m_OriginX, a_OffsetZ + m_OriginZ, a_OffsetX + m_Points.front().m_BlockX, a_OffsetZ + m_Points.front().m_BlockZ
);
// Offset guides:
if (a_OffsetX > 0)
{
- AppendPrintf(SVG, "<path style=\"fill:none;stroke:#0000ff;stroke-width:1px;\"\nd=\"M %d,0 L %d,1024\"/>\n",
+ AppendPrintf(SVG, "<path style=\"fill:none;stroke:#0000ff;stroke-width:1px;\"\nd=\"M %d, 0 L %d, 1024\"/>\n",
a_OffsetX, a_OffsetX
);
}
if (a_OffsetZ > 0)
{
- AppendPrintf(SVG, "<path style=\"fill:none;stroke:#0000ff;stroke-width:1px;\"\nd=\"M 0,%d L 1024,%d\"/>\n",
+ AppendPrintf(SVG, "<path style=\"fill:none;stroke:#0000ff;stroke-width:1px;\"\nd=\"M 0, %d L 1024, %d\"/>\n",
a_OffsetZ, a_OffsetZ
);
}
diff --git a/src/Generating/RoughRavines.cpp b/src/Generating/RoughRavines.cpp
new file mode 100644
index 000000000..2ee3704b3
--- /dev/null
+++ b/src/Generating/RoughRavines.cpp
@@ -0,0 +1,300 @@
+
+// RoughRavines.cpp
+
+// Implements the cRoughRavines class representing the rough ravine generator
+
+#include "Globals.h"
+
+#include "RoughRavines.h"
+
+
+
+
+
+////////////////////////////////////////////////////////////////////////////////
+// cRoughRavine:
+
+class cRoughRavine :
+ public cGridStructGen::cStructure
+{
+ typedef cGridStructGen::cStructure super;
+
+public:
+ cRoughRavine(
+ int a_Seed, int a_Size,
+ float a_CenterWidth, float a_Roughness,
+ float a_FloorHeightEdge1, float a_FloorHeightEdge2, float a_FloorHeightCenter,
+ float a_CeilingHeightEdge1, float a_CeilingHeightEdge2, float a_CeilingHeightCenter,
+ int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ
+ ) :
+ super(a_GridX, a_GridZ, a_OriginX, a_OriginZ),
+ m_Seed(a_Seed + 100),
+ m_Noise(a_Seed + 100),
+ m_Roughness(a_Roughness)
+ {
+ // Create the basic structure - 2 lines meeting at the centerpoint:
+ int Max = 2 * a_Size;
+ int Half = a_Size; // m_DefPoints[Half] will be the centerpoint
+ m_DefPoints.resize(Max + 1);
+ int rnd = m_Noise.IntNoise2DInt(a_OriginX, a_OriginZ) / 7;
+ float Len = (float)a_Size;
+ float Angle = (float)rnd; // Angle is in radians, will be wrapped in the "sin" and "cos" operations
+ float OfsX = sin(Angle) * Len;
+ float OfsZ = cos(Angle) * Len;
+ m_DefPoints[0].Set (a_OriginX - OfsX, a_OriginZ - OfsZ, 1, a_CeilingHeightEdge1, a_FloorHeightEdge1);
+ m_DefPoints[Half].Set((float)a_OriginX, (float)a_OriginZ, a_CenterWidth, a_CeilingHeightCenter, a_FloorHeightCenter);
+ m_DefPoints[Max].Set (a_OriginX + OfsX, a_OriginZ + OfsZ, 1, a_CeilingHeightEdge2, a_FloorHeightEdge2);
+
+ // Calculate the points in between, recursively:
+ SubdivideLine(0, Half);
+ SubdivideLine(Half, Max);
+
+ // Initialize the per-height radius modifiers:
+ InitPerHeightRadius(a_GridX, a_GridZ);
+ }
+
+protected:
+ struct sRavineDefPoint
+ {
+ float m_X;
+ float m_Z;
+ float m_Radius;
+ float m_Top;
+ float m_Bottom;
+
+ void Set(float a_X, float a_Z, float a_Radius, float a_Top, float a_Bottom)
+ {
+ m_X = a_X;
+ m_Z = a_Z;
+ m_Radius = a_Radius;
+ m_Top = a_Top;
+ m_Bottom = a_Bottom;
+ }
+ };
+ typedef std::vector<sRavineDefPoint> sRavineDefPoints;
+
+ int m_Seed;
+
+ cNoise m_Noise;
+
+ int m_MaxSize;
+
+ sRavineDefPoints m_DefPoints;
+
+ float m_Roughness;
+
+ /** Number to add to the radius based on the height. This creates the "ledges" in the ravine walls. */
+ float m_PerHeightRadius[cChunkDef::Height];
+
+
+ /** Recursively subdivides the line between the points of the specified index.
+ Sets the midpoint to the center of the line plus or minus a random offset, then calls itself for each half
+ of the new line. */
+ void SubdivideLine(int a_Idx1, int a_Idx2)
+ {
+ // Calculate the midpoint:
+ const sRavineDefPoint & p1 = m_DefPoints[a_Idx1];
+ const sRavineDefPoint & p2 = m_DefPoints[a_Idx2];
+ float MidX = (p1.m_X + p2.m_X) / 2;
+ float MidZ = (p1.m_Z + p2.m_Z) / 2;
+ float MidR = (p1.m_Radius + p2.m_Radius) / 2 + 0.1f;
+ float MidT = (p1.m_Top + p2.m_Top) / 2;
+ float MidB = (p1.m_Bottom + p2.m_Bottom) / 2;
+
+ // Adjust the midpoint by a small amount of perpendicular vector in a random one of its two directions:
+ float dx = p2.m_X - p1.m_X;
+ float dz = p2.m_Z - p1.m_Z;
+ if ((m_Noise.IntNoise2DInt((int)MidX, (int)MidZ) / 11) % 2 == 0)
+ {
+ MidX += dz * m_Roughness;
+ MidZ -= dx * m_Roughness;
+ }
+ else
+ {
+ MidX -= dz * m_Roughness;
+ MidZ += dx * m_Roughness;
+ }
+ int MidIdx = (a_Idx1 + a_Idx2) / 2;
+ m_DefPoints[MidIdx].Set(MidX, MidZ, MidR, MidT, MidB);
+
+ // Recurse the two halves, if they are worth recursing:
+ if (MidIdx - a_Idx1 > 1)
+ {
+ SubdivideLine(a_Idx1, MidIdx);
+ }
+ if (a_Idx2 - MidIdx > 1)
+ {
+ SubdivideLine(MidIdx, a_Idx2);
+ }
+ }
+
+
+ void InitPerHeightRadius(int a_GridX, int a_GridZ)
+ {
+ int h = 0;
+ while (h < cChunkDef::Height)
+ {
+ m_Noise.SetSeed(m_Seed + h);
+ int rnd = m_Noise.IntNoise2DInt(a_GridX, a_GridZ) / 13;
+ int NumBlocks = (rnd % 3) + 2;
+ rnd = rnd / 4;
+ float Val = (float)(rnd % 256) / 128 - 1; // Random float in range [-1, +1]
+ if (h + NumBlocks > cChunkDef::Height)
+ {
+ NumBlocks = cChunkDef::Height - h;
+ }
+ for (int i = 0; i < NumBlocks; i++)
+ {
+ m_PerHeightRadius[h + i] = Val;
+ }
+ h += NumBlocks;
+ }
+ }
+
+
+ virtual void DrawIntoChunk(cChunkDesc & a_ChunkDesc) override
+ {
+ int BlockStartX = a_ChunkDesc.GetChunkX() * cChunkDef::Width;
+ int BlockStartZ = a_ChunkDesc.GetChunkZ() * cChunkDef::Width;
+ int BlockEndX = BlockStartX + cChunkDef::Width;
+ int BlockEndZ = BlockStartZ + cChunkDef::Width;
+ for (sRavineDefPoints::const_iterator itr = m_DefPoints.begin(), end = m_DefPoints.end(); itr != end; ++itr)
+ {
+ if (
+ (ceilf (itr->m_X + itr->m_Radius + 2) < BlockStartX) ||
+ (floorf(itr->m_X - itr->m_Radius - 2) > BlockEndX) ||
+ (ceilf (itr->m_Z + itr->m_Radius + 2) < BlockStartZ) ||
+ (floorf(itr->m_Z - itr->m_Radius - 2) > BlockEndZ)
+ )
+ {
+ // Cannot intersect, bail out early
+ continue;
+ }
+
+ // Carve out a cylinder around the xz point, up to (m_Radius + 2) in diameter, from Bottom to Top:
+ // On each height level, use m_PerHeightRadius[] to modify the actual radius used
+ // EnlargedRadiusSq is the square of the radius enlarged by the maximum m_PerHeightRadius offset - anything outside it will never be touched.
+ float RadiusSq = (itr->m_Radius + 2) * (itr->m_Radius + 2);
+ float DifX = BlockStartX - itr->m_X; // substitution for faster calc
+ float DifZ = BlockStartZ - itr->m_Z; // substitution for faster calc
+ for (int x = 0; x < cChunkDef::Width; x++) for (int z = 0; z < cChunkDef::Width; z++)
+ {
+ #ifdef _DEBUG
+ // DEBUG: Make the roughravine shapepoints visible on a single layer (so that we can see with Minutor what's going on)
+ if ((DifX + x == 0) && (DifZ + z == 0))
+ {
+ a_ChunkDesc.SetBlockType(x, 4, z, E_BLOCK_LAPIS_ORE);
+ }
+ #endif // _DEBUG
+
+ // If the column is outside the enlarged radius, bail out completely
+ float DistSq = (DifX + x) * (DifX + x) + (DifZ + z) * (DifZ + z);
+ if (DistSq > RadiusSq)
+ {
+ continue;
+ }
+
+ int Top = std::min((int)ceilf(itr->m_Top), +cChunkDef::Height);
+ for (int y = std::max((int)floorf(itr->m_Bottom), 1); y <= Top; y++)
+ {
+ if ((itr->m_Radius + m_PerHeightRadius[y]) * (itr->m_Radius + m_PerHeightRadius[y]) < DistSq)
+ {
+ continue;
+ }
+
+ if (cBlockInfo::CanBeTerraformed(a_ChunkDesc.GetBlockType(x, y, z)))
+ {
+ a_ChunkDesc.SetBlockType(x, y, z, E_BLOCK_AIR);
+ }
+ } // for y
+ } // for x, z - a_BlockTypes
+ } // for itr - m_Points[]
+ }
+};
+
+
+
+
+
+////////////////////////////////////////////////////////////////////////////////
+// cRoughRavines:
+
+cRoughRavines::cRoughRavines(
+ int a_Seed,
+ int a_MaxSize, int a_MinSize,
+ float a_MaxCenterWidth, float a_MinCenterWidth,
+ float a_MaxRoughness, float a_MinRoughness,
+ float a_MaxFloorHeightEdge, float a_MinFloorHeightEdge,
+ float a_MaxFloorHeightCenter, float a_MinFloorHeightCenter,
+ float a_MaxCeilingHeightEdge, float a_MinCeilingHeightEdge,
+ float a_MaxCeilingHeightCenter, float a_MinCeilingHeightCenter,
+ int a_GridSize, int a_MaxOffset
+) :
+ super(a_Seed, a_GridSize, a_GridSize, a_MaxOffset, a_MaxOffset, a_MaxSize, a_MaxSize, 64),
+ m_Seed(a_Seed),
+ m_MaxSize(a_MaxSize),
+ m_MinSize(a_MinSize),
+ m_MaxCenterWidth(a_MaxCenterWidth),
+ m_MinCenterWidth(a_MinCenterWidth),
+ m_MaxRoughness(a_MaxRoughness),
+ m_MinRoughness(a_MinRoughness),
+ m_MaxFloorHeightEdge(a_MaxFloorHeightEdge),
+ m_MinFloorHeightEdge(a_MinFloorHeightEdge),
+ m_MaxFloorHeightCenter(a_MaxFloorHeightCenter),
+ m_MinFloorHeightCenter(a_MinFloorHeightCenter),
+ m_MaxCeilingHeightEdge(a_MaxCeilingHeightEdge),
+ m_MinCeilingHeightEdge(a_MinCeilingHeightEdge),
+ m_MaxCeilingHeightCenter(a_MaxCeilingHeightCenter),
+ m_MinCeilingHeightCenter(a_MinCeilingHeightCenter)
+{
+ if (m_MinSize > m_MaxSize)
+ {
+ std::swap(m_MinSize, m_MaxSize);
+ std::swap(a_MinSize, a_MaxSize);
+ }
+ if (m_MaxSize < 16)
+ {
+ m_MaxSize = 16;
+ LOGWARNING("RoughRavines: MaxSize too small, adjusting request from %d to %d", a_MaxSize, m_MaxSize);
+ }
+ if (m_MinSize < 16)
+ {
+ m_MinSize = 16;
+ LOGWARNING("RoughRavines: MinSize too small, adjusting request from %d to %d", a_MinSize, m_MinSize);
+ }
+ if (m_MinSize == m_MaxSize)
+ {
+ m_MaxSize = m_MinSize + 1;
+ }
+}
+
+
+
+
+
+cGridStructGen::cStructurePtr cRoughRavines::CreateStructure(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ)
+{
+ // Pick a random value for each of the ravine's parameters:
+ int Size = m_MinSize + (m_Noise.IntNoise2DInt(a_GridX, a_GridZ) / 7) % (m_MaxSize - m_MinSize); // Random int from m_MinSize to m_MaxSize
+ float CenterWidth = m_Noise.IntNoise2DInRange(a_GridX + 10, a_GridZ, m_MinCenterWidth, m_MaxCenterWidth);
+ float Roughness = m_Noise.IntNoise2DInRange(a_GridX + 20, a_GridZ, m_MinRoughness, m_MaxRoughness);
+ float FloorHeightEdge1 = m_Noise.IntNoise2DInRange(a_GridX + 30, a_GridZ, m_MinFloorHeightEdge, m_MaxFloorHeightEdge);
+ float FloorHeightEdge2 = m_Noise.IntNoise2DInRange(a_GridX + 40, a_GridZ, m_MinFloorHeightEdge, m_MaxFloorHeightEdge);
+ float FloorHeightCenter = m_Noise.IntNoise2DInRange(a_GridX + 50, a_GridZ, m_MinFloorHeightCenter, m_MaxFloorHeightCenter);
+ float CeilingHeightEdge1 = m_Noise.IntNoise2DInRange(a_GridX + 60, a_GridZ, m_MinCeilingHeightEdge, m_MaxCeilingHeightEdge);
+ float CeilingHeightEdge2 = m_Noise.IntNoise2DInRange(a_GridX + 70, a_GridZ, m_MinCeilingHeightEdge, m_MaxCeilingHeightEdge);
+ float CeilingHeightCenter = m_Noise.IntNoise2DInRange(a_GridX + 80, a_GridZ, m_MinCeilingHeightCenter, m_MaxCeilingHeightCenter);
+
+ // Create a ravine:
+ return cStructurePtr(new cRoughRavine(
+ m_Seed,
+ Size, CenterWidth, Roughness,
+ FloorHeightEdge1, FloorHeightEdge2, FloorHeightCenter,
+ CeilingHeightEdge1, CeilingHeightEdge2, CeilingHeightCenter,
+ a_GridX, a_GridZ, a_OriginX, a_OriginZ
+ ));
+}
+
+
+
+
diff --git a/src/Generating/RoughRavines.h b/src/Generating/RoughRavines.h
new file mode 100644
index 000000000..4c905b641
--- /dev/null
+++ b/src/Generating/RoughRavines.h
@@ -0,0 +1,86 @@
+
+// RoughRavines.h
+
+// Declares the cRoughRavines class representing the rough ravine generator
+
+
+
+
+#pragma once
+
+#include "GridStructGen.h"
+
+
+
+
+
+class cRoughRavines :
+ public cGridStructGen
+{
+ typedef cGridStructGen super;
+
+public:
+ cRoughRavines(
+ int a_Seed,
+ int a_MaxSize, int a_MinSize,
+ float a_MaxCenterWidth, float a_MinCenterWidth,
+ float a_MaxRoughness, float a_MinRoughness,
+ float a_MaxFloorHeightEdge, float a_MinFloorHeightEdge,
+ float a_MaxFloorHeightCenter, float a_MinFloorHeightCenter,
+ float a_MaxCeilingHeightEdge, float a_MinCeilingHeightEdge,
+ float a_MaxCeilingHeightCenter, float a_MinCeilingHeightCenter,
+ int a_GridSize, int a_MaxOffset
+ );
+
+protected:
+ int m_Seed;
+
+ /** Maximum size of the ravine, in each of the X / Z axis */
+ int m_MaxSize;
+
+ /** Minimum size of the ravine */
+ int m_MinSize;
+
+ /** Maximum width of the ravine's center, in blocks */
+ float m_MaxCenterWidth;
+
+ /** Minimum width of the ravine's center, in blocks */
+ float m_MinCenterWidth;
+
+ /** Maximum roughness of the ravine */
+ float m_MaxRoughness;
+
+ /** Minimum roughness of the ravine */
+ float m_MinRoughness;
+
+ /** Maximum floor height at the ravine's edge */
+ float m_MaxFloorHeightEdge;
+
+ /** Minimum floor height at the ravine's edge */
+ float m_MinFloorHeightEdge;
+
+ /** Maximum floor height at the ravine's center */
+ float m_MaxFloorHeightCenter;
+
+ /** Minimum floor height at the ravine's center */
+ float m_MinFloorHeightCenter;
+
+ /** Maximum ceiling height at the ravine's edge */
+ float m_MaxCeilingHeightEdge;
+
+ /** Minimum ceiling height at the ravine's edge */
+ float m_MinCeilingHeightEdge;
+
+ /** Maximum ceiling height at the ravine's center */
+ float m_MaxCeilingHeightCenter;
+
+ /** Minimum ceiling height at the ravine's center */
+ float m_MinCeilingHeightCenter;
+
+ // cGridStructGen overrides:
+ virtual cStructurePtr CreateStructure(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ) override;
+};
+
+
+
+
diff --git a/src/Generating/StructGen.cpp b/src/Generating/StructGen.cpp
index 636364e17..054eec345 100644
--- a/src/Generating/StructGen.cpp
+++ b/src/Generating/StructGen.cpp
@@ -12,7 +12,7 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cStructGenOreNests configuration:
const int MAX_HEIGHT_COAL = 127;
@@ -51,7 +51,7 @@ const int NEST_SIZE_GRAVEL = 32;
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cStructGenTrees:
void cStructGenTrees::GenFinish(cChunkDesc & a_ChunkDesc)
@@ -151,7 +151,7 @@ void cStructGenTrees::GenerateSingleTree(
sSetBlockVector TreeLogs, TreeOther;
GetTreeImageByBiome(
a_ChunkX * cChunkDef::Width + x, Height + 1, a_ChunkZ * cChunkDef::Width + z,
- m_Noise, a_Seq,
+ m_Noise, a_Seq,
a_ChunkDesc.GetBiome(x, z),
TreeLogs, TreeOther
);
@@ -181,7 +181,7 @@ void cStructGenTrees::GenerateSingleTree(
}
ApplyTreeImage(a_ChunkX, a_ChunkZ, a_ChunkDesc, TreeOther, a_OutsideOther);
- ApplyTreeImage(a_ChunkX, a_ChunkZ, a_ChunkDesc, TreeLogs, a_OutsideLogs);
+ ApplyTreeImage(a_ChunkX, a_ChunkZ, a_ChunkDesc, TreeLogs, a_OutsideLogs);
}
@@ -303,7 +303,7 @@ int cStructGenTrees::GetNumTrees(
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cStructGenOreNests:
void cStructGenOreNests::GenFinish(cChunkDesc & a_ChunkDesc)
@@ -410,7 +410,7 @@ void cStructGenOreNests::GenerateOre(int a_ChunkX, int a_ChunkZ, BLOCKTYPE a_Ore
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cStructGenLakes:
void cStructGenLakes::GenFinish(cChunkDesc & a_ChunkDesc)
@@ -484,7 +484,6 @@ void cStructGenLakes::CreateLakeImage(int a_ChunkX, int a_ChunkZ, cBlockArea & a
const int BubbleY = 4 + (Rnd & 0x01); // 4 .. 5
Rnd >>= 1;
const int BubbleZ = BubbleR + (Rnd % Range);
- Rnd >>= 4;
const int HalfR = BubbleR / 2; // 1 .. 2
const int RSquared = BubbleR * BubbleR;
for (int y = -HalfR; y <= HalfR; y++)
@@ -500,7 +499,7 @@ void cStructGenLakes::CreateLakeImage(int a_ChunkX, int a_ChunkZ, cBlockArea & a
continue;
}
int IdxYZ = BubbleX + IdxY + (BubbleZ + z) * 16;
- for (int x = -BubbleR; x <= BubbleR; x++)
+ for (int x = -BubbleR; x <= BubbleR; x++)
{
if (x * x + DistYZ < RSquared)
{
@@ -511,10 +510,10 @@ void cStructGenLakes::CreateLakeImage(int a_ChunkX, int a_ChunkZ, cBlockArea & a
} // for y
} // for i - bubbles
- // Turn air in the bottom half into liquid:
+ // Turn air in the bottom half into liquid:
for (int y = 0; y < 4; y++)
{
- for (int z = 0; z < 16; z++) for (int x = 0; x < 16; x++)
+ for (int z = 0; z < 16; z++) for (int x = 0; x < 16; x++)
{
if (BlockTypes[x + z * 16 + y * 16 * 16] == E_BLOCK_AIR)
{
@@ -532,7 +531,7 @@ void cStructGenLakes::CreateLakeImage(int a_ChunkX, int a_ChunkZ, cBlockArea & a
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cStructGenDirectOverhangs:
cStructGenDirectOverhangs::cStructGenDirectOverhangs(int a_Seed) :
@@ -573,8 +572,8 @@ void cStructGenDirectOverhangs::GenFinish(cChunkDesc & a_ChunkDesc)
// Interpolate the lowest floor:
for (int z = 0; z <= 16 / INTERPOL_Z; z++) for (int x = 0; x <= 16 / INTERPOL_X; x++)
{
- FloorLo[INTERPOL_X * x + 17 * INTERPOL_Z * z] =
- m_Noise1.IntNoise3DInt(BaseX + INTERPOL_X * x, BaseY, BaseZ + INTERPOL_Z * z) *
+ FloorLo[INTERPOL_X * x + 17 * INTERPOL_Z * z] =
+ m_Noise1.IntNoise3DInt(BaseX + INTERPOL_X * x, BaseY, BaseZ + INTERPOL_Z * z) *
m_Noise2.IntNoise3DInt(BaseX + INTERPOL_X * x, BaseY, BaseZ + INTERPOL_Z * z) /
256;
} // for x, z - FloorLo[]
@@ -648,7 +647,7 @@ bool cStructGenDirectOverhangs::HasWantedBiome(cChunkDesc & a_ChunkDesc) const
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cStructGenDistortedMembraneOverhangs:
cStructGenDistortedMembraneOverhangs::cStructGenDistortedMembraneOverhangs(int a_Seed) :
diff --git a/src/Generating/TestRailsGen.cpp b/src/Generating/TestRailsGen.cpp
new file mode 100644
index 000000000..66ab8b33f
--- /dev/null
+++ b/src/Generating/TestRailsGen.cpp
@@ -0,0 +1,116 @@
+
+// TestRailsGen.cpp
+
+// Implements the cTestRailsGen class representing the testing rails generator
+
+#include "Globals.h"
+#include "TestRailsGen.h"
+#include "Prefabs/TestRailsPrefabs.h"
+#include "PieceGenerator.h"
+
+
+
+
+
+static cPrefabPiecePool g_TestRails(g_TestRailsPrefabs, g_TestRailsPrefabsCount, g_TestRailsStartingPrefabs, g_TestRailsStartingPrefabsCount);
+
+
+
+
+
+////////////////////////////////////////////////////////////////////////////////
+// cTestRailsGen::cTestRails:
+
+class cTestRailsGen::cTestRails :
+ public cGridStructGen::cStructure
+{
+ typedef cGridStructGen::cStructure super;
+
+public:
+ cTestRails(
+ int a_Seed,
+ int a_GridX, int a_GridZ,
+ int a_OriginX, int a_OriginZ,
+ int a_MaxDepth,
+ int a_MaxSize
+ ) :
+ super(a_GridX, a_GridZ, 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)
+ {
+ // Generate the pieces for this test:
+ cBFSPieceGenerator pg(g_TestRails, a_Seed);
+ pg.PlacePieces(a_OriginX, 150, a_OriginZ, a_MaxDepth, m_Pieces);
+ if (m_Pieces.empty())
+ {
+ return;
+ }
+ }
+
+ ~cTestRails()
+ {
+ cPieceGenerator::FreePieces(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 structure (radius from the origin) */
+ int m_MaxSize;
+
+ /** Borders of the structure - no item may reach out of this cuboid. */
+ cCuboid m_Borders;
+
+ /** The rails pieces, placed by the generator. */
+ cPlacedPieces m_Pieces;
+
+
+ // cGridStructGen::cStructure overrides:
+ virtual void DrawIntoChunk(cChunkDesc & a_Chunk) override
+ {
+ for (cPlacedPieces::iterator itr = m_Pieces.begin(), end = m_Pieces.end(); itr != end; ++itr)
+ {
+ cPrefab & Prefab = (cPrefab &)((*itr)->GetPiece());
+ Prefab.Draw(a_Chunk, *itr);
+ } // for itr - m_PlacedPieces[]
+ }
+} ;
+
+
+
+
+
+////////////////////////////////////////////////////////////////////////////////
+// cTestRailsGen:
+
+
+
+
+
+cTestRailsGen::cTestRailsGen(int a_Seed, int a_GridSize, int a_MaxOffset, int a_MaxDepth, int a_MaxSize) :
+ super(a_Seed, a_GridSize, a_GridSize, a_MaxOffset, a_MaxOffset, a_MaxSize, a_MaxSize, 100),
+ m_Noise(a_Seed + 1000),
+ m_MaxDepth(a_MaxDepth),
+ m_MaxSize(a_MaxSize)
+{
+}
+
+
+
+
+
+cGridStructGen::cStructurePtr cTestRailsGen::CreateStructure(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ)
+{
+ // Create a base based on the chosen prefabs:
+ return cStructurePtr(new cTestRails(m_Seed, a_GridX, a_GridZ, a_OriginX, a_OriginZ, m_MaxDepth, m_MaxSize));
+}
+
+
+
+
diff --git a/src/Generating/TestRailsGen.h b/src/Generating/TestRailsGen.h
new file mode 100644
index 000000000..5b0ce95f4
--- /dev/null
+++ b/src/Generating/TestRailsGen.h
@@ -0,0 +1,47 @@
+
+// TestRailsGen.h
+
+// Declares the cTestRailsGen class representing the testing rails generator
+
+
+
+
+
+#pragma once
+
+#include "GridStructGen.h"
+#include "PrefabPiecePool.h"
+
+
+
+
+
+class cTestRailsGen :
+ public cGridStructGen
+{
+ typedef cGridStructGen super;
+
+public:
+ cTestRailsGen(int a_Seed, int a_GridSize, int a_MaxOffset, int a_MaxDepth, int a_MaxSize);
+
+protected:
+ class cTestRails; // fwd: TestRailsGen.cpp
+
+
+ /** The noise used for generating random numbers */
+ cNoise m_Noise;
+
+ /** Maximum depth of the generator tree*/
+ int m_MaxDepth;
+
+ /** Maximum size, in X/Z blocks, of the base (radius from the origin) */
+ int m_MaxSize;
+
+
+ // cGridStructGen overrides:
+ virtual cStructurePtr CreateStructure(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ) override;
+} ;
+
+
+
+
diff --git a/src/Generating/Trees.cpp b/src/Generating/Trees.cpp
index 522f45148..32594d0b4 100644
--- a/src/Generating/Trees.cpp
+++ b/src/Generating/Trees.cpp
@@ -10,13 +10,6 @@
-// DEBUG:
-int gTotalLargeJungleTrees = 0;
-int gOversizeLargeJungleTrees = 0;
-
-
-
-
typedef struct
{
@@ -41,49 +34,49 @@ static const sCoords Corners[] =
static const sCoords BigO1[] =
{
- {0, -1},
- {-1, 0}, {1, 0},
- {0, 1},
+ /* -1 */ {0, -1},
+ /* 0 */ {-1, 0}, {1, 0},
+ /* 1 */ {0, 1},
} ;
static const sCoords BigO2[] =
{
- {-1, -2}, {0, -2}, {1, -2},
- {-2, -1}, {-1, -1}, {0, -1}, {1, -1}, {2, -1},
- {-2, 0}, {-1, 0}, {1, 0}, {2, 0},
- {-2, 1}, {-1, 1}, {0, 1}, {1, 1}, {2, 1},
- {-1, 2}, {0, 2}, {1, 2},
+ /* -2 */ {-1, -2}, {0, -2}, {1, -2},
+ /* -1 */ {-2, -1}, {-1, -1}, {0, -1}, {1, -1}, {2, -1},
+ /* 0 */ {-2, 0}, {-1, 0}, {1, 0}, {2, 0},
+ /* 1 */ {-2, 1}, {-1, 1}, {0, 1}, {1, 1}, {2, 1},
+ /* 2 */ {-1, 2}, {0, 2}, {1, 2},
} ;
static const sCoords BigO3[] =
{
- {-2, -3}, {-1, -3}, {0, -3}, {1, -3}, {2, -3},
- {-3, -2}, {-2, -2}, {-1, -2}, {0, -2}, {1, -2}, {2, -2}, {3, -2},
- {-3, -1}, {-2, -1}, {-1, -1}, {0, -1}, {1, -1}, {2, -1}, {3, -1},
- {-3, 0}, {-2, 0}, {-1, 0}, {1, 0}, {2, 0}, {3, 0},
- {-3, 1}, {-2, 1}, {-1, 1}, {0, 1}, {1, 1}, {2, 1}, {3, 1},
- {-3, 2}, {-2, 2}, {-1, 2}, {0, 2}, {1, 2}, {2, 2}, {3, 2},
- {-2, 3}, {-1, 3}, {0, 3}, {1, 3}, {2, 3},
+ /* -3 */ {-2, -3}, {-1, -3}, {0, -3}, {1, -3}, {2, -3},
+ /* -2 */ {-3, -2}, {-2, -2}, {-1, -2}, {0, -2}, {1, -2}, {2, -2}, {3, -2},
+ /* -1 */ {-3, -1}, {-2, -1}, {-1, -1}, {0, -1}, {1, -1}, {2, -1}, {3, -1},
+ /* 0 */ {-3, 0}, {-2, 0}, {-1, 0}, {1, 0}, {2, 0}, {3, 0},
+ /* 1 */ {-3, 1}, {-2, 1}, {-1, 1}, {0, 1}, {1, 1}, {2, 1}, {3, 1},
+ /* 2 */ {-3, 2}, {-2, 2}, {-1, 2}, {0, 2}, {1, 2}, {2, 2}, {3, 2},
+ /* 3 */ {-2, 3}, {-1, 3}, {0, 3}, {1, 3}, {2, 3},
} ;
-static const sCoords BigO4[] = // Part of Big Jungle tree
+static const sCoords BigO4[] = // Part of Big Jungle tree
{
- {-2, -4}, {-1, -4}, {0, -4}, {1, -4}, {2, -4},
- {-3, -3}, {-2, -3}, {-1, -3}, {0, -3}, {1, -3}, {2, -3}, {3, -3},
- {-4, -2}, {-3, -2}, {-2, -2}, {-1, -2}, {0, -2}, {1, -2}, {2, -2}, {3, -2}, {4, -2},
- {-4, -1}, {-3, -1}, {-2, -1}, {-1, -1}, {0, -1}, {1, -1}, {2, -1}, {3, -1}, {4, -1},
- {-4, 0}, {-3, 0}, {-2, 0}, {-1, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0},
- {-4, 1}, {-3, 1}, {-2, 1}, {-1, 1}, {0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1},
- {-4, 2}, {-3, 2}, {-2, 2}, {-1, 2}, {0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2},
- {-3, 3}, {-2, 3}, {-1, 3}, {0, 3}, {1, 3}, {2, 3}, {3, 3},
- {-2, 4}, {-1, 4}, {0, 4}, {1, 4}, {2, 4},
+ /* -4 */ {-2, -4}, {-1, -4}, {0, -4}, {1, -4}, {2, -4},
+ /* -3 */ {-3, -3}, {-2, -3}, {-1, -3}, {0, -3}, {1, -3}, {2, -3}, {3, -3},
+ /* -2 */ {-4, -2}, {-3, -2}, {-2, -2}, {-1, -2}, {0, -2}, {1, -2}, {2, -2}, {3, -2}, {4, -2},
+ /* -1 */ {-4, -1}, {-3, -1}, {-2, -1}, {-1, -1}, {0, -1}, {1, -1}, {2, -1}, {3, -1}, {4, -1},
+ /* 0 */ {-4, 0}, {-3, 0}, {-2, 0}, {-1, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0},
+ /* 1 */ {-4, 1}, {-3, 1}, {-2, 1}, {-1, 1}, {0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1},
+ /* 2 */ {-4, 2}, {-3, 2}, {-2, 2}, {-1, 2}, {0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2},
+ /* 3 */ {-3, 3}, {-2, 3}, {-1, 3}, {0, 3}, {1, 3}, {2, 3}, {3, 3},
+ /* 4 */ {-2, 4}, {-1, 4}, {0, 4}, {1, 4}, {2, 4},
} ;
-typedef struct
+typedef struct
{
const sCoords * Coords;
size_t Count;
@@ -113,6 +106,7 @@ inline void PushCoordBlocks(int a_BlockX, int a_Height, int a_BlockZ, sSetBlockV
+
inline void PushCornerBlocks(int a_BlockX, int a_Height, int a_BlockZ, int a_Seq, cNoise & a_Noise, int a_Chance, sSetBlockVector & a_Blocks, int a_CornersDist, BLOCKTYPE a_BlockType, NIBBLETYPE a_Meta)
{
for (size_t i = 0; i < ARRAYCOUNT(Corners); i++)
@@ -203,7 +197,7 @@ void GetTreeImageByBiome(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_No
{
GetAppleBushImage(a_BlockX, a_BlockY, a_BlockZ, a_Noise, a_Seq, a_LogBlocks, a_OtherBlocks);
}
- else
+ else
{
GetJungleTreeImage(a_BlockX, a_BlockY, a_BlockZ, a_Noise, a_Seq, a_LogBlocks, a_OtherBlocks);
}
@@ -224,7 +218,6 @@ void GetTreeImageByBiome(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_No
return;
}
- case biRoofedForest:
case biColdTaiga:
case biColdTaigaHills:
case biMegaTaiga:
@@ -244,7 +237,6 @@ void GetTreeImageByBiome(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_No
case biIcePlainsSpikes:
case biJungleM:
case biJungleEdgeM:
- case biRoofedForestM:
case biColdTaigaM:
case biMegaSpruceTaiga:
case biMegaSpruceTaigaHills:
@@ -259,6 +251,13 @@ void GetTreeImageByBiome(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_No
GetBirchTreeImage(a_BlockX, a_BlockY, a_BlockZ, a_Noise, a_Seq, a_LogBlocks, a_OtherBlocks);
return;
}
+
+ case biRoofedForest:
+ case biRoofedForestM:
+ {
+ GetDarkoakTreeImage(a_BlockX, a_BlockY, a_BlockZ, a_Noise, a_Seq, a_LogBlocks, a_OtherBlocks);
+ return;
+ }
case biDesert:
case biDesertHills:
@@ -413,7 +412,60 @@ void GetAcaciaTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_Noi
void GetDarkoakTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_Noise, int a_Seq, sSetBlockVector & a_LogBlocks, sSetBlockVector & a_OtherBlocks)
{
- // TODO
+ // Pick a height
+ int Height = 5 + (a_Noise.IntNoise3DInt(a_BlockX + 32 * a_Seq, a_BlockY, a_BlockZ + 32 * a_Seq) / 11) % 4;
+
+ // Create the trunk
+ for (int i = 0; i < Height; i++)
+ {
+ a_LogBlocks.push_back(sSetBlock(a_BlockX, a_BlockY + i, a_BlockZ, E_BLOCK_NEW_LOG, E_META_NEW_LOG_DARK_OAK_WOOD));
+ a_LogBlocks.push_back(sSetBlock(a_BlockX + 1, a_BlockY + i, a_BlockZ, E_BLOCK_NEW_LOG, E_META_NEW_LOG_DARK_OAK_WOOD));
+ a_LogBlocks.push_back(sSetBlock(a_BlockX, a_BlockY + i, a_BlockZ + 1, E_BLOCK_NEW_LOG, E_META_NEW_LOG_DARK_OAK_WOOD));
+ a_LogBlocks.push_back(sSetBlock(a_BlockX + 1, a_BlockY + i, a_BlockZ + 1, E_BLOCK_NEW_LOG, E_META_NEW_LOG_DARK_OAK_WOOD));
+ }
+
+ // Create branches
+ for (int i = 0; i < 3; i++)
+ {
+ int x = (a_Noise.IntNoise3DInt(a_BlockX + 32 * a_Seq, a_BlockY * i, a_BlockZ + 32 * a_Seq) % 3) - 1;
+ int z = (a_Noise.IntNoise3DInt(a_BlockX - 32 * a_Seq, a_BlockY * i, a_BlockZ - 32 * a_Seq) % 3) - 1;
+
+ // The branches would end up in the trunk.
+ if ((x >= a_BlockX) && (x <= a_BlockX + 1) && (z >= a_BlockZ) && (z <= a_BlockZ + 1))
+ {
+ NOISE_DATATYPE Val1 = a_Noise.IntNoise2D(x, z);
+ if (Val1 < 0)
+ {
+ x = a_BlockX + ((Val1 < -0.5) ? -1 : 3);
+ }
+ else
+ {
+ z = a_BlockZ + ((Val1 < 0.5) ? -1 : 3);
+ }
+ }
+
+ int y = Height - (a_Noise.IntNoise3DInt(a_BlockX + x, a_BlockY * i, a_BlockZ - z) % (Height - (Height / 4)));
+
+ for (int Y = y; Y < Height; Y++)
+ {
+ a_LogBlocks.push_back(sSetBlock(a_BlockX + x, a_BlockY + Y, a_BlockZ + z, E_BLOCK_NEW_LOG, E_META_NEW_LOG_DARK_OAK_WOOD));
+ }
+ }
+
+ int hei = a_BlockY + Height - 2;
+
+ // The lower two leaves layers are BigO4 with log in the middle and possibly corners:
+ for (int i = 0; i < 2; i++)
+ {
+ PushCoordBlocks(a_BlockX, hei, a_BlockZ, a_OtherBlocks, BigO4, ARRAYCOUNT(BigO4), E_BLOCK_NEW_LEAVES, E_META_NEW_LEAVES_DARK_OAK_WOOD);
+ PushCornerBlocks(a_BlockX, hei, a_BlockZ, a_Seq, a_Noise, 0x5fffffff, a_OtherBlocks, 3, E_BLOCK_NEW_LEAVES, E_META_NEW_LEAVES_DARK_OAK_WOOD);
+ hei++;
+ } // for i < 2
+
+ // The top leaves layer is a BigO3 with leaves in the middle and possibly corners:
+ PushCoordBlocks(a_BlockX, hei, a_BlockZ, a_OtherBlocks, BigO3, ARRAYCOUNT(BigO3), E_BLOCK_NEW_LEAVES, E_META_NEW_LEAVES_DARK_OAK_WOOD);
+ PushCornerBlocks(a_BlockX, hei, a_BlockZ, a_Seq, a_Noise, 0x5fffffff, a_OtherBlocks, 3, E_BLOCK_NEW_LEAVES, E_META_NEW_LEAVES_DARK_OAK_WOOD);
+ a_OtherBlocks.push_back(sSetBlock(a_BlockX, hei, a_BlockZ, E_BLOCK_NEW_LEAVES, E_META_NEW_LEAVES_DARK_OAK_WOOD));
}
@@ -598,11 +650,11 @@ void GetPineTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_Noise
}
int h = a_BlockY + TrunkHeight + 2;
- // Top layer - just a single leaves block:
+ // Top layer - just a single leaves block:
a_OtherBlocks.push_back(sSetBlock(a_BlockX, h, a_BlockZ, E_BLOCK_LEAVES, E_META_LEAVES_CONIFER));
h--;
- // One more layer is above the trunk, push the central leaves:
+ // One more layer is above the trunk, push the central leaves:
a_OtherBlocks.push_back(sSetBlock(a_BlockX, h, a_BlockZ, E_BLOCK_LEAVES, E_META_LEAVES_CONIFER));
// Layers expanding in size, then collapsing again:
@@ -773,10 +825,10 @@ void GetSmallJungleTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise &
a_LogBlocks.reserve(Height);
a_OtherBlocks.reserve(
- 2 * ARRAYCOUNT(BigO3) + // O3 layer, 2x
- 2 * ARRAYCOUNT(BigO2) + // O2 layer, 2x
- ARRAYCOUNT(BigO1) + 1 + // Plus on the top
- Height * ARRAYCOUNT(Vines) + // Vines
+ 2 * ARRAYCOUNT(BigO3) + // O3 layer, 2x
+ 2 * ARRAYCOUNT(BigO2) + // O2 layer, 2x
+ ARRAYCOUNT(BigO1) + 1 + // Plus on the top
+ Height * ARRAYCOUNT(Vines) + // Vines
50 // some safety
);
diff --git a/src/Generating/Trees.h b/src/Generating/Trees.h
index 00f343a3d..1f6ac4dff 100644
--- a/src/Generating/Trees.h
+++ b/src/Generating/Trees.h
@@ -70,7 +70,7 @@ void GetAcaciaTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_Noi
void GetDarkoakTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_Noise, int a_Seq, sSetBlockVector & a_LogBlocks, sSetBlockVector & a_OtherBlocks);
/// Generates an image of a random large birch tree
-void GetTallBirchTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_Noise, int a_Seq, sSetBlockVector & a_LogBlocks,sSetBlockVector & a_OtherBlocks);
+void GetTallBirchTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_Noise, int a_Seq, sSetBlockVector & a_LogBlocks, sSetBlockVector & a_OtherBlocks);
/// Generates an image of a random conifer tree
void GetConiferTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_Noise, int a_Seq, sSetBlockVector & a_LogBlocks, sSetBlockVector & a_OtherBlocks);
diff --git a/src/Generating/UnderwaterBaseGen.cpp b/src/Generating/UnderwaterBaseGen.cpp
index d3abae9b7..9278ea546 100644
--- a/src/Generating/UnderwaterBaseGen.cpp
+++ b/src/Generating/UnderwaterBaseGen.cpp
@@ -18,7 +18,7 @@ static cPrefabPiecePool g_UnderwaterBase(g_UnderwaterBasePrefabs, g_UnderwaterBa
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cUnderwaterBaseGen::cUnderwaterBase:
class cUnderwaterBaseGen::cUnderwaterBase :
@@ -86,7 +86,7 @@ protected:
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cUnderwaterBaseGen:
diff --git a/src/Generating/VillageGen.cpp b/src/Generating/VillageGen.cpp
index 2b7ecc837..cade923c9 100644
--- a/src/Generating/VillageGen.cpp
+++ b/src/Generating/VillageGen.cpp
@@ -95,7 +95,7 @@ public:
return ((const cPrefab &)a_NewPiece).GetPieceWeight(a_PlacedPiece, a_ExistingConnector);
}
-} ;
+};
@@ -333,7 +333,7 @@ protected:
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
// cVillageGen:
static cVillagePiecePool g_SandVillage(g_SandVillagePrefabs, g_SandVillagePrefabsCount, g_SandVillageStartingPrefabs, g_SandVillageStartingPrefabsCount);