diff options
Diffstat (limited to 'src/Generating')
47 files changed, 1418 insertions, 17746 deletions
diff --git a/src/Generating/BioGen.cpp b/src/Generating/BioGen.cpp index 867155ad2..ff8827511 100644 --- a/src/Generating/BioGen.cpp +++ b/src/Generating/BioGen.cpp @@ -49,16 +49,16 @@ void cBioGenConstant::InitializeBiomeGen(cIniFile & a_IniFile) //////////////////////////////////////////////////////////////////////////////// // cBioGenCache: -cBioGenCache::cBioGenCache(cBiomeGenPtr a_BioGenToCache, int a_CacheSize) : +cBioGenCache::cBioGenCache(cBiomeGenPtr a_BioGenToCache, size_t a_CacheSize) : m_BioGenToCache(a_BioGenToCache), m_CacheSize(a_CacheSize), - m_CacheOrder(new int[a_CacheSize]), + m_CacheOrder(new size_t[a_CacheSize]), m_CacheData(new sCacheData[a_CacheSize]), m_NumHits(0), m_NumMisses(0), m_TotalChain(0) { - for (int i = 0; i < m_CacheSize; i++) + for (size_t i = 0; i < m_CacheSize; i++) { m_CacheOrder[i] = i; m_CacheData[i].m_ChunkX = 0x7fffffff; @@ -86,11 +86,11 @@ void cBioGenCache::GenBiomes(int a_ChunkX, int a_ChunkZ, cChunkDef::BiomeMap & a { if (((m_NumHits + m_NumMisses) % 1024) == 10) { - LOGD("BioGenCache: %d hits, %d misses, saved %.2f %%", m_NumHits, m_NumMisses, 100.0 * m_NumHits / (m_NumHits + m_NumMisses)); - LOGD("BioGenCache: Avg cache chain length: %.2f", (float)m_TotalChain / m_NumHits); + LOGD("BioGenCache: %u hits, %u misses, saved %.2f %%", static_cast<unsigned>(m_NumHits), static_cast<unsigned>(m_NumMisses), 100.0 * m_NumHits / (m_NumHits + m_NumMisses)); + LOGD("BioGenCache: Avg cache chain length: %.2f", static_cast<double>(m_TotalChain) / m_NumHits); } - for (int i = 0; i < m_CacheSize; i++) + for (size_t i = 0; i < m_CacheSize; i++) { if ( (m_CacheData[m_CacheOrder[i]].m_ChunkX != a_ChunkX) || @@ -100,10 +100,10 @@ void cBioGenCache::GenBiomes(int a_ChunkX, int a_ChunkZ, cChunkDef::BiomeMap & a continue; } // Found it in the cache - int Idx = m_CacheOrder[i]; + size_t Idx = m_CacheOrder[i]; // Move to front: - for (int j = i; j > 0; j--) + for (size_t j = i; j > 0; j--) { m_CacheOrder[j] = m_CacheOrder[j - 1]; } @@ -122,8 +122,8 @@ void cBioGenCache::GenBiomes(int a_ChunkX, int a_ChunkZ, cChunkDef::BiomeMap & a m_BioGenToCache->GenBiomes(a_ChunkX, a_ChunkZ, a_BiomeMap); // Insert it as the first item in the MRU order: - int Idx = m_CacheOrder[m_CacheSize - 1]; - for (int i = m_CacheSize - 1; i > 0; i--) + size_t Idx = m_CacheOrder[m_CacheSize - 1]; + for (size_t i = m_CacheSize - 1; i > 0; i--) { m_CacheOrder[i] = m_CacheOrder[i - 1]; } // for i - m_CacheOrder[] @@ -166,7 +166,7 @@ cBioGenMulticache::cBioGenMulticache(cBiomeGenPtr a_BioGenToCache, size_t a_SubC void cBioGenMulticache::GenBiomes(int a_ChunkX, int a_ChunkZ, cChunkDef::BiomeMap & a_BiomeMap) { const size_t coefficient = 3; - const size_t cacheIdx = ((size_t)a_ChunkX + coefficient * (size_t)a_ChunkZ) % m_NumSubCaches; + const size_t cacheIdx = (static_cast<size_t>(a_ChunkX) + coefficient * static_cast<size_t>(a_ChunkZ)) % m_NumSubCaches; m_Caches[cacheIdx]->GenBiomes(a_ChunkX, a_ChunkZ, a_BiomeMap); } @@ -226,7 +226,7 @@ void cBiomeGenList::InitializeBiomes(const AString & a_Biomes) } // for itr - Split[] if (!m_Biomes.empty()) { - m_BiomesCount = (int)m_Biomes.size(); + m_BiomesCount = static_cast<int>(m_Biomes.size()); return; } @@ -260,7 +260,7 @@ void cBiomeGenList::InitializeBiomes(const AString & a_Biomes) { m_Biomes.push_back(Biomes[i]); } - m_BiomesCount = (int)m_Biomes.size(); + m_BiomesCount = static_cast<int>(m_Biomes.size()); } @@ -278,7 +278,7 @@ void cBioGenCheckerboard::GenBiomes(int a_ChunkX, int a_ChunkZ, cChunkDef::Biome for (int x = 0; x < cChunkDef::Width; x++) { int Add = cChunkDef::Width * a_ChunkX + x; - int BiomeIdx = (((Base + Add / m_BiomeSize) % m_BiomesCount) + m_BiomesCount) % m_BiomesCount; // Need to add and modulo twice because of negative numbers + size_t BiomeIdx = static_cast<size_t>((((Base + Add / m_BiomeSize) % m_BiomesCount) + m_BiomesCount) % m_BiomesCount); // Need to add and modulo twice because of negative numbers a_BiomeMap[x + cChunkDef::Width * z] = m_Biomes[BiomeIdx]; } } @@ -314,7 +314,7 @@ void cBioGenVoronoi::GenBiomes(int a_ChunkX, int a_ChunkZ, cChunkDef::BiomeMap & for (int x = 0; x < cChunkDef::Width; x++) { int VoronoiCellValue = m_Voronoi.GetValueAt(BaseX + x, AbsoluteZ) / 8; - cChunkDef::SetBiome(a_BiomeMap, x, z, m_Biomes[VoronoiCellValue % m_BiomesCount]); + cChunkDef::SetBiome(a_BiomeMap, x, z, m_Biomes[static_cast<size_t>(VoronoiCellValue % m_BiomesCount)]); } // for x } // for z } @@ -363,7 +363,7 @@ void cBioGenDistortedVoronoi::GenBiomes(int a_ChunkX, int a_ChunkZ, cChunkDef::B for (int x = 0; x < cChunkDef::Width; x++) { int VoronoiCellValue = m_Voronoi.GetValueAt(DistortX[x][z], DistortZ[x][z]) / 8; - cChunkDef::SetBiome(a_BiomeMap, x, z, m_Biomes[VoronoiCellValue % m_BiomesCount]); + cChunkDef::SetBiome(a_BiomeMap, x, z, m_Biomes[static_cast<size_t>(VoronoiCellValue % m_BiomesCount)]); } // for x } // for z } @@ -385,15 +385,15 @@ void cBioGenDistortedVoronoi::InitializeBiomeGen(cIniFile & a_IniFile) void cBioGenDistortedVoronoi::Distort(int a_BlockX, int a_BlockZ, int & a_DistortedX, int & a_DistortedZ) { - double NoiseX = m_Noise.CubicNoise3D((float)a_BlockX / m_CellSize, (float)a_BlockZ / m_CellSize, 1000); - NoiseX += 0.5 * m_Noise.CubicNoise3D(2 * (float)a_BlockX / m_CellSize, 2 * (float)a_BlockZ / m_CellSize, 2000); - NoiseX += 0.08 * m_Noise.CubicNoise3D(16 * (float)a_BlockX / m_CellSize, 16 * (float)a_BlockZ / m_CellSize, 3000); - double NoiseZ = m_Noise.CubicNoise3D((float)a_BlockX / m_CellSize, (float)a_BlockZ / m_CellSize, 4000); - NoiseZ += 0.5 * m_Noise.CubicNoise3D(2 * (float)a_BlockX / m_CellSize, 2 * (float)a_BlockZ / m_CellSize, 5000); - NoiseZ += 0.08 * m_Noise.CubicNoise3D(16 * (float)a_BlockX / m_CellSize, 16 * (float)a_BlockZ / m_CellSize, 6000); + double NoiseX = m_Noise.CubicNoise3D(static_cast<float>(a_BlockX / m_CellSize), static_cast<float>(a_BlockZ / m_CellSize), 1000); + NoiseX += 0.5 * m_Noise.CubicNoise3D(2 * static_cast<float>(a_BlockX / m_CellSize), 2 * static_cast<float>(a_BlockZ / m_CellSize), 2000); + NoiseX += 0.08 * m_Noise.CubicNoise3D(16 * static_cast<float>(a_BlockX / m_CellSize), 16 * static_cast<float>(a_BlockZ / m_CellSize), 3000); + double NoiseZ = m_Noise.CubicNoise3D(static_cast<float>(a_BlockX / m_CellSize), static_cast<float>(a_BlockZ / m_CellSize), 4000); + NoiseZ += 0.5 * m_Noise.CubicNoise3D(2 * static_cast<float>(a_BlockX / m_CellSize), 2 * static_cast<float>(a_BlockZ / m_CellSize), 5000); + NoiseZ += 0.08 * m_Noise.CubicNoise3D(16 * static_cast<float>(a_BlockX / m_CellSize), 16 * static_cast<float>(a_BlockZ / m_CellSize), 6000); - a_DistortedX = a_BlockX + (int)(m_CellSize * 0.5 * NoiseX); - a_DistortedZ = a_BlockZ + (int)(m_CellSize * 0.5 * NoiseZ); + a_DistortedX = a_BlockX + static_cast<int>(m_CellSize * 0.5 * NoiseX); + a_DistortedZ = a_BlockZ + static_cast<int>(m_CellSize * 0.5 * NoiseZ); } @@ -429,7 +429,7 @@ void cBioGenMultiStepMap::InitializeBiomeGen(cIniFile & a_IniFile) m_MushroomIslandSize = a_IniFile.GetValueSetI("Generator", "MultiStepMapMushroomIslandSize", m_MushroomIslandSize); m_RiverCellSize = a_IniFile.GetValueSetI("Generator", "MultiStepMapRiverCellSize", m_RiverCellSize); m_RiverWidthThreshold = a_IniFile.GetValueSetF("Generator", "MultiStepMapRiverWidth", m_RiverWidthThreshold); - m_LandBiomesSize = (float)a_IniFile.GetValueSetI("Generator", "MultiStepMapLandBiomeSize", (int)m_LandBiomesSize); + m_LandBiomesSize = static_cast<float>(a_IniFile.GetValueSetI("Generator", "MultiStepMapLandBiomeSize", static_cast<int>(m_LandBiomesSize))); } @@ -554,7 +554,7 @@ void cBioGenMultiStepMap::AddRivers(int a_ChunkX, int a_ChunkZ, cChunkDef::Biome { for (int z = 0; z < cChunkDef::Width; z++) { - float NoiseCoordZ = (float)(a_ChunkZ * cChunkDef::Width + z) / m_RiverCellSize; + float NoiseCoordZ = static_cast<float>(a_ChunkZ * cChunkDef::Width + z) / m_RiverCellSize; for (int x = 0; x < cChunkDef::Width; x++) { if (cChunkDef::GetBiome(a_BiomeMap, x, z) != biInvalidBiome) @@ -563,7 +563,7 @@ void cBioGenMultiStepMap::AddRivers(int a_ChunkX, int a_ChunkZ, cChunkDef::Biome continue; } - float NoiseCoordX = (float)(a_ChunkX * cChunkDef::Width + x) / m_RiverCellSize; + float NoiseCoordX = static_cast<float>(a_ChunkX * cChunkDef::Width + x) / m_RiverCellSize; double Noise = m_Noise1.CubicNoise2D( NoiseCoordX, NoiseCoordZ); Noise += 0.5 * m_Noise3.CubicNoise2D(2 * NoiseCoordX, 2 * NoiseCoordZ); @@ -597,15 +597,15 @@ void cBioGenMultiStepMap::ApplyTemperatureHumidity(int a_ChunkX, int a_ChunkZ, c void cBioGenMultiStepMap::Distort(int a_BlockX, int a_BlockZ, int & a_DistortedX, int & a_DistortedZ, int a_CellSize) { - double NoiseX = m_Noise3.CubicNoise2D( (float)a_BlockX / a_CellSize, (float)a_BlockZ / a_CellSize); - NoiseX += 0.5 * m_Noise2.CubicNoise2D(2 * (float)a_BlockX / a_CellSize, 2 * (float)a_BlockZ / a_CellSize); - NoiseX += 0.1 * m_Noise1.CubicNoise2D(16 * (float)a_BlockX / a_CellSize, 16 * (float)a_BlockZ / a_CellSize); - double NoiseZ = m_Noise6.CubicNoise2D( (float)a_BlockX / a_CellSize, (float)a_BlockZ / a_CellSize); - NoiseZ += 0.5 * m_Noise5.CubicNoise2D(2 * (float)a_BlockX / a_CellSize, 2 * (float)a_BlockZ / a_CellSize); - NoiseZ += 0.1 * m_Noise4.CubicNoise2D(16 * (float)a_BlockX / a_CellSize, 16 * (float)a_BlockZ / a_CellSize); + double NoiseX = m_Noise3.CubicNoise2D( static_cast<float>(a_BlockX / a_CellSize), static_cast<float>(a_BlockZ / a_CellSize)); + NoiseX += 0.5 * m_Noise2.CubicNoise2D(2 * static_cast<float>(a_BlockX / a_CellSize), 2 * static_cast<float>(a_BlockZ / a_CellSize)); + NoiseX += 0.1 * m_Noise1.CubicNoise2D(16 * static_cast<float>(a_BlockX / a_CellSize), 16 * static_cast<float>(a_BlockZ / a_CellSize)); + double NoiseZ = m_Noise6.CubicNoise2D( static_cast<float>(a_BlockX / a_CellSize), static_cast<float>(a_BlockZ / a_CellSize)); + NoiseZ += 0.5 * m_Noise5.CubicNoise2D(2 * static_cast<float>(a_BlockX / a_CellSize), 2 * static_cast<float>(a_BlockZ / a_CellSize)); + NoiseZ += 0.1 * m_Noise4.CubicNoise2D(16 * static_cast<float>(a_BlockX / a_CellSize), 16 * static_cast<float>(a_BlockZ / a_CellSize)); - a_DistortedX = a_BlockX + (int)(a_CellSize * 0.5 * NoiseX); - a_DistortedZ = a_BlockZ + (int)(a_CellSize * 0.5 * NoiseZ); + a_DistortedX = a_BlockX + static_cast<int>(a_CellSize * 0.5 * NoiseX); + a_DistortedZ = a_BlockZ + static_cast<int>(a_CellSize * 0.5 * NoiseZ); } @@ -619,10 +619,10 @@ void cBioGenMultiStepMap::BuildTemperatureHumidityMaps(int a_ChunkX, int a_Chunk DblMap HumidityMap; for (int z = 0; z < 17; z += 8) { - float NoiseCoordZ = (float)(a_ChunkZ * cChunkDef::Width + z) / m_LandBiomesSize; + float NoiseCoordZ = static_cast<float>(a_ChunkZ * cChunkDef::Width + z) / m_LandBiomesSize; for (int x = 0; x < 17; x += 8) { - float NoiseCoordX = (float)(a_ChunkX * cChunkDef::Width + x) / m_LandBiomesSize; + float NoiseCoordX = static_cast<float>(a_ChunkX * cChunkDef::Width + x) / m_LandBiomesSize; double NoiseT = m_Noise1.CubicNoise2D( NoiseCoordX, NoiseCoordZ); NoiseT += 0.5 * m_Noise2.CubicNoise2D(2 * NoiseCoordX, 2 * NoiseCoordZ); @@ -641,8 +641,8 @@ void cBioGenMultiStepMap::BuildTemperatureHumidityMaps(int a_ChunkX, int a_Chunk // Re-map into integral values in [0 .. 255] range: for (size_t idx = 0; idx < ARRAYCOUNT(a_TemperatureMap); idx++) { - a_TemperatureMap[idx] = std::max(0, std::min(255, (int)(128 + TemperatureMap[idx] * 128))); - a_HumidityMap[idx] = std::max(0, std::min(255, (int)(128 + HumidityMap[idx] * 128))); + a_TemperatureMap[idx] = Clamp(static_cast<int>(128 + TemperatureMap[idx] * 128), 0, 255); + a_HumidityMap[idx] = Clamp(static_cast<int>(128 + HumidityMap[idx] * 128), 0, 255); } } @@ -771,8 +771,8 @@ void cBioGenTwoLevel::GenBiomes(int a_ChunkX, int a_ChunkZ, cChunkDef::BiomeMap NoiseZ += m_AmpZ2 * m_Noise5.CubicNoise2D(BlockX * m_FreqZ2, BlockZ * m_FreqZ2); NoiseZ += m_AmpZ3 * m_Noise6.CubicNoise2D(BlockX * m_FreqZ3, BlockZ * m_FreqZ3); - DistortX[4 * x][4 * z] = (int)(BlockX + NoiseX); - DistortZ[4 * x][4 * z] = (int)(BlockZ + NoiseZ); + DistortX[4 * x][4 * z] = static_cast<int>(BlockX + NoiseX); + DistortZ[4 * x][4 * z] = static_cast<int>(BlockZ + NoiseZ); } LinearUpscale2DArrayInPlace<cChunkDef::Width + 1, cChunkDef::Width + 1, 4, 4>(&DistortX[0][0]); @@ -785,7 +785,7 @@ void cBioGenTwoLevel::GenBiomes(int a_ChunkX, int a_ChunkZ, cChunkDef::BiomeMap { int SeedX, SeedZ, MinDist2; int BiomeGroup = m_VoronoiLarge.GetValueAt(DistortX[x][z], DistortZ[x][z], SeedX, SeedZ, MinDist2) / 7; - int BiomeIdx = m_VoronoiSmall.GetValueAt(DistortX[x][z], DistortZ[x][z], SeedX, SeedZ, MinDist2) / 11; + size_t BiomeIdx = static_cast<size_t>(m_VoronoiSmall.GetValueAt(DistortX[x][z], DistortZ[x][z], SeedX, SeedZ, MinDist2) / 11); int MinDist1 = (DistortX[x][z] - SeedX) * (DistortX[x][z] - SeedX) + (DistortZ[x][z] - SeedZ) * (DistortZ[x][z] - SeedZ); cChunkDef::SetBiome(a_BiomeMap, x, z, SelectBiome(BiomeGroup, BiomeIdx, (MinDist1 < MinDist2 / 4) ? 1 : 0)); } @@ -796,7 +796,7 @@ void cBioGenTwoLevel::GenBiomes(int a_ChunkX, int a_ChunkZ, cChunkDef::BiomeMap -EMCSBiome cBioGenTwoLevel::SelectBiome(int a_BiomeGroup, int a_BiomeIdx, int a_DistLevel) +EMCSBiome cBioGenTwoLevel::SelectBiome(int a_BiomeGroup, size_t a_BiomeIdx, int a_DistLevel) { // TODO: Move this into settings struct BiomeLevels @@ -900,7 +900,7 @@ EMCSBiome cBioGenTwoLevel::SelectBiome(int a_BiomeGroup, int a_BiomeIdx, int a_D { bgMesa, ARRAYCOUNT(bgMesa), }, { bgDenseTrees, ARRAYCOUNT(bgDenseTrees), }, } ; - size_t Group = a_BiomeGroup % ARRAYCOUNT(BiomeGroups); + size_t Group = static_cast<size_t>(a_BiomeGroup) % ARRAYCOUNT(BiomeGroups); size_t Index = a_BiomeIdx % BiomeGroups[Group].Count; return (a_DistLevel > 0) ? BiomeGroups[Group].Biomes[Index].InnerBiome : BiomeGroups[Group].Biomes[Index].OuterBiome; } @@ -913,18 +913,18 @@ void cBioGenTwoLevel::InitializeBiomeGen(cIniFile & a_IniFile) { m_VoronoiLarge.SetCellSize(a_IniFile.GetValueSetI("Generator", "TwoLevelLargeCellSize", 1024)); m_VoronoiSmall.SetCellSize(a_IniFile.GetValueSetI("Generator", "TwoLevelSmallCellSize", 128)); - m_FreqX1 = (float)a_IniFile.GetValueSetF("Generator", "TwoLevelDistortXOctave1Freq", 0.01); - m_AmpX1 = (float)a_IniFile.GetValueSetF("Generator", "TwoLevelDistortXOctave1Amp", 80); - m_FreqX2 = (float)a_IniFile.GetValueSetF("Generator", "TwoLevelDistortXOctave2Freq", 0.05); - m_AmpX2 = (float)a_IniFile.GetValueSetF("Generator", "TwoLevelDistortXOctave2Amp", 20); - m_FreqX3 = (float)a_IniFile.GetValueSetF("Generator", "TwoLevelDistortXOctave3Freq", 0.1), - m_AmpX3 = (float)a_IniFile.GetValueSetF("Generator", "TwoLevelDistortXOctave3Amp", 8); - m_FreqZ1 = (float)a_IniFile.GetValueSetF("Generator", "TwoLevelDistortZOctave1Freq", 0.01); - m_AmpZ1 = (float)a_IniFile.GetValueSetF("Generator", "TwoLevelDistortZOctave1Amp", 80); - m_FreqZ2 = (float)a_IniFile.GetValueSetF("Generator", "TwoLevelDistortZOctave2Freq", 0.05); - m_AmpZ2 = (float)a_IniFile.GetValueSetF("Generator", "TwoLevelDistortZOctave2Amp", 20); - m_FreqZ3 = (float)a_IniFile.GetValueSetF("Generator", "TwoLevelDistortZOctave3Freq", 0.1); - m_AmpZ3 = (float)a_IniFile.GetValueSetF("Generator", "TwoLevelDistortZOctave3Amp", 8); + m_FreqX1 = static_cast<float>(a_IniFile.GetValueSetF("Generator", "TwoLevelDistortXOctave1Freq", 0.01)); + m_AmpX1 = static_cast<float>(a_IniFile.GetValueSetF("Generator", "TwoLevelDistortXOctave1Amp", 80)); + m_FreqX2 = static_cast<float>(a_IniFile.GetValueSetF("Generator", "TwoLevelDistortXOctave2Freq", 0.05)); + m_AmpX2 = static_cast<float>(a_IniFile.GetValueSetF("Generator", "TwoLevelDistortXOctave2Amp", 20)); + m_FreqX3 = static_cast<float>(a_IniFile.GetValueSetF("Generator", "TwoLevelDistortXOctave3Freq", 0.1)), + m_AmpX3 = static_cast<float>(a_IniFile.GetValueSetF("Generator", "TwoLevelDistortXOctave3Amp", 8)); + m_FreqZ1 = static_cast<float>(a_IniFile.GetValueSetF("Generator", "TwoLevelDistortZOctave1Freq", 0.01)); + m_AmpZ1 = static_cast<float>(a_IniFile.GetValueSetF("Generator", "TwoLevelDistortZOctave1Amp", 80)); + m_FreqZ2 = static_cast<float>(a_IniFile.GetValueSetF("Generator", "TwoLevelDistortZOctave2Freq", 0.05)); + m_AmpZ2 = static_cast<float>(a_IniFile.GetValueSetF("Generator", "TwoLevelDistortZOctave2Amp", 20)); + m_FreqZ3 = static_cast<float>(a_IniFile.GetValueSetF("Generator", "TwoLevelDistortZOctave3Freq", 0.1)); + m_AmpZ3 = static_cast<float>(a_IniFile.GetValueSetF("Generator", "TwoLevelDistortZOctave3Amp", 8)); } @@ -1022,7 +1022,7 @@ public: { for (int x = 0; x < cChunkDef::Width; x++) { - cChunkDef::SetBiome(a_Biomes, x, z, (EMCSBiome)vals[x + cChunkDef::Width * z]); + cChunkDef::SetBiome(a_Biomes, x, z, static_cast<EMCSBiome>(vals[x + cChunkDef::Width * z])); } } } @@ -1126,7 +1126,7 @@ public: { for (int x = 0; x < cChunkDef::Width; x++) { - cChunkDef::SetBiome(a_Biomes, x, z, (EMCSBiome)vals[x + cChunkDef::Width * z]); + cChunkDef::SetBiome(a_Biomes, x, z, static_cast<EMCSBiome>(vals[x + cChunkDef::Width * z])); } } } diff --git a/src/Generating/BioGen.h b/src/Generating/BioGen.h index 13fb40c5f..44f1dfd2a 100644 --- a/src/Generating/BioGen.h +++ b/src/Generating/BioGen.h @@ -48,7 +48,7 @@ class cBioGenCache : typedef cBiomeGen super; public: - cBioGenCache(cBiomeGenPtr a_BioGenToCache, int a_CacheSize); + cBioGenCache(cBiomeGenPtr a_BioGenToCache, size_t a_CacheSize); virtual ~cBioGenCache(); protected: @@ -63,14 +63,14 @@ protected: } ; // To avoid moving large amounts of data for the MRU behavior, we MRU-ize indices to an array of the actual data - int m_CacheSize; - int * m_CacheOrder; // MRU-ized order, indices into m_CacheData array + size_t m_CacheSize; + size_t * m_CacheOrder; // MRU-ized order, indices into m_CacheData array sCacheData * m_CacheData; // m_CacheData[m_CacheOrder[0]] is the most recently used // Cache statistics - int m_NumHits; - int m_NumMisses; - int m_TotalChain; // Number of cache items walked to get to a hit (only added for hits) + size_t m_NumHits; + size_t m_NumMisses; + size_t m_TotalChain; // Number of cache items walked to get to a hit (only added for hits) virtual void GenBiomes(int a_ChunkX, int a_ChunkZ, cChunkDef::BiomeMap & a_BiomeMap) override; virtual void InitializeBiomeGen(cIniFile & a_IniFile) override; @@ -311,7 +311,7 @@ protected: /// Selects biome from the specified biome group, based on the specified index. /// Note that both params may overflow /// a_DistLevel is either 0 or 1; zero when it is at the edge of the small Voronoi cell, 1 near the center - EMCSBiome SelectBiome(int a_BiomeGroup, int a_BiomeIdx, int a_DistLevel); + EMCSBiome SelectBiome(int a_BiomeGroup, size_t a_BiomeIdx, int a_DistLevel); } ; diff --git a/src/Generating/CMakeLists.txt b/src/Generating/CMakeLists.txt index a28510d40..de74f8734 100644 --- a/src/Generating/CMakeLists.txt +++ b/src/Generating/CMakeLists.txt @@ -72,8 +72,34 @@ SET (HDRS VillageGen.h ) +if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + set_source_files_properties(BioGen.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=switch-enum") + set_source_files_properties(Caves.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=old-style-cast") + set_source_files_properties(ChunkGenerator.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=old-style-cast") + set_source_files_properties(CompoGen.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=old-style-cast") + set_source_files_properties(CompoGenBiomal.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=global-constructors -Wno-error=old-style-cast") + set_source_files_properties(ComposableGenerator.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=switch-enum -Wno-error=old-style-cast") + set_source_files_properties(DistortedHeightmap.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=old-style-cast") + set_source_files_properties(EndGen.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=old-style-cast") + set_source_files_properties(FinishGen.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=switch-enum -Wno-error=switch") + set_source_files_properties(HeiGen.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=old-style-cast") + set_source_files_properties(NetherFortGen.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=global-constructors") + set_source_files_properties(Noise3DGenerator.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=old-style-cast") + set_source_files_properties(PieceGenerator.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=global-constructors") + set_source_files_properties(Prefab.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=global-constructors") + set_source_files_properties(RainbowRoadsGen.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=global-constructors") + set_source_files_properties(Ravines.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=old-style-cast") + set_source_files_properties(RoughRavines.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=float-equal -Wno-error=old-style-cast") + set_source_files_properties(StructGen.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=switch-enum -Wno-error=switch -Wno-error=old-style-cast") + set_source_files_properties(ShapeGen.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=old-style-cast") + set_source_files_properties(TestRailsGen.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=global-constructors") + set_source_files_properties(TwoHeights.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=old-style-cast") + set_source_files_properties(UnderwaterBaseGen.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=global-constructors -Wno-error=switch-enum") + set_source_files_properties(VillageGen.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=global-constructors -Wno-error=switch-enum") +endif() + if(NOT MSVC) add_library(Generating ${SRCS} ${HDRS}) - target_link_libraries(Generating OSSupport Blocks) + target_link_libraries(Generating OSSupport Blocks Bindings) endif() diff --git a/src/Generating/ChunkDesc.cpp b/src/Generating/ChunkDesc.cpp index 4a5ac5a18..07855b1d0 100644 --- a/src/Generating/ChunkDesc.cpp +++ b/src/Generating/ChunkDesc.cpp @@ -134,7 +134,7 @@ EMCSBiome cChunkDesc::GetBiome(int a_RelX, int a_RelZ) -void cChunkDesc::SetHeight(int a_RelX, int a_RelZ, int a_Height) +void cChunkDesc::SetHeight(int a_RelX, int a_RelZ, HEIGHTTYPE a_Height) { cChunkDef::SetHeight(m_HeightMap, a_RelX, a_RelZ, a_Height); } @@ -143,7 +143,7 @@ void cChunkDesc::SetHeight(int a_RelX, int a_RelZ, int a_Height) -int cChunkDesc::GetHeight(int a_RelX, int a_RelZ) +HEIGHTTYPE cChunkDesc::GetHeight(int a_RelX, int a_RelZ) { return cChunkDef::GetHeight(m_HeightMap, a_RelX, a_RelZ); } @@ -158,7 +158,7 @@ void cChunkDesc::SetHeightFromShape(const Shape & a_Shape) { for (int x = 0; x < cChunkDef::Width; x++) { - for (int y = cChunkDef::Height - 1; y > 0; y--) + for (HEIGHTTYPE y = cChunkDef::Height - 1; y > 0; y--) { if (a_Shape[y + x * 256 + z * 16 * 256] != 0) { @@ -612,8 +612,8 @@ void cChunkDesc::UpdateHeightmap(void) { for (int z = 0; z < cChunkDef::Width; z++) { - int Height = 0; - for (int y = cChunkDef::Height - 1; y > 0; y--) + HEIGHTTYPE Height = 0; + for (HEIGHTTYPE y = cChunkDef::Height - 1; y > 0; y--) { BLOCKTYPE BlockType = GetBlockType(x, y, z); if (BlockType != E_BLOCK_AIR) @@ -636,7 +636,7 @@ void cChunkDesc::CompressBlockMetas(cChunkDef::BlockNibbles & a_DestMetas) const NIBBLETYPE * AreaMetas = m_BlockArea.GetBlockMetas(); for (size_t i = 0; i < ARRAYCOUNT(a_DestMetas); i++) { - a_DestMetas[i] = AreaMetas[2 * i] | (AreaMetas[2 * i + 1] << 4); + a_DestMetas[i] = static_cast<NIBBLETYPE>(AreaMetas[2 * i] | (AreaMetas[2 * i + 1] << 4)); } } diff --git a/src/Generating/ChunkDesc.h b/src/Generating/ChunkDesc.h index 480106fb5..1033242f8 100644 --- a/src/Generating/ChunkDesc.h +++ b/src/Generating/ChunkDesc.h @@ -65,8 +65,8 @@ public: // These operate on the heightmap, so they could get out of sync with the data // Use UpdateHeightmap() to re-calculate heightmap from the block data - void SetHeight(int a_RelX, int a_RelZ, int a_Height); - int GetHeight(int a_RelX, int a_RelZ); + void SetHeight(int a_RelX, int a_RelZ, HEIGHTTYPE a_Height); + HEIGHTTYPE GetHeight(int a_RelX, int a_RelZ); // tolua_end @@ -204,10 +204,10 @@ 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()); } + inline cChunkDef::BlockTypes & GetBlockTypes (void) { return *(reinterpret_cast<cChunkDef::BlockTypes *>(m_BlockArea.GetBlockTypes())); } // CANNOT, different compression! // inline cChunkDef::BlockNibbles & GetBlockMetas (void) { return *((cChunkDef::BlockNibbles *)m_BlockArea.GetBlockMetas()); } - inline BlockNibbleBytes & GetBlockMetasUncompressed(void) { return *((BlockNibbleBytes *)m_BlockArea.GetBlockMetas()); } + inline BlockNibbleBytes & GetBlockMetasUncompressed(void) { return *(reinterpret_cast<BlockNibbleBytes *>(m_BlockArea.GetBlockMetas())); } inline cChunkDef::HeightMap & GetHeightMap (void) { return m_HeightMap; } inline cEntityList & GetEntities (void) { return m_Entities; } inline cBlockEntityList & GetBlockEntities (void) { return m_BlockEntities; } diff --git a/src/Generating/CompoGenBiomal.cpp b/src/Generating/CompoGenBiomal.cpp index 3140bd754..60f7e7520 100644 --- a/src/Generating/CompoGenBiomal.cpp +++ b/src/Generating/CompoGenBiomal.cpp @@ -4,6 +4,9 @@ // Implements the cCompoGenBiomal class representing the biome-aware composition generator #include "Globals.h" + +#include "CompoGenBiomal.h" + #include "ComposableGenerator.h" #include "../IniFile.h" #include "../Noise/Noise.h" @@ -192,7 +195,7 @@ public: protected: /** The block height at which water is generated instead of air. */ - int m_SeaLevel; + HEIGHTTYPE m_SeaLevel; /** The pattern used for mesa biomes. Initialized by seed on generator creation. */ cPattern::BlockInfo m_MesaPattern[2 * cChunkDef::Height]; @@ -221,7 +224,7 @@ protected: virtual void InitializeCompoGen(cIniFile & a_IniFile) override { - m_SeaLevel = a_IniFile.GetValueSetI("Generator", "SeaLevel", m_SeaLevel); + m_SeaLevel = static_cast<HEIGHTTYPE>(a_IniFile.GetValueSetI("Generator", "SeaLevel", m_SeaLevel)); } @@ -231,7 +234,7 @@ protected: { // In a loop, choose whether to use one, two or three layers of stained clay, then choose a color and width for each layer // Separate each group with another layer of hardened clay - cNoise patternNoise((unsigned)a_Seed); + cNoise patternNoise(a_Seed); static NIBBLETYPE allowedColors[] = { E_META_STAINED_CLAY_YELLOW, @@ -265,8 +268,8 @@ protected: rnd /= 2; for (int lay = 0; lay < numLayers; lay++) { - int numBlocks = layerSizes[(rnd % ARRAYCOUNT(layerSizes))]; - NIBBLETYPE Color = allowedColors[(rnd / 4) % ARRAYCOUNT(allowedColors)]; + int numBlocks = layerSizes[(static_cast<size_t>(rnd) % ARRAYCOUNT(layerSizes))]; + NIBBLETYPE Color = allowedColors[static_cast<size_t>(rnd / 4) % ARRAYCOUNT(allowedColors)]; if ( ((numBlocks == 3) && (numLayers == 2)) || // In two-layer mode disallow the 3-high layers: (Color == E_META_STAINED_CLAY_WHITE)) // White stained clay can ever be only 1 block high @@ -411,7 +414,12 @@ protected: FillColumnPattern(a_ChunkDesc, a_RelX, a_RelZ, Pattern, a_ShapeColumn); return; } - default: + case biInvalidBiome: + case biHell: + case biSky: + case biNumBiomes: + case biVariant: + case biNumVariantBiomes: { ASSERT(!"Unhandled biome"); return; @@ -427,7 +435,7 @@ protected: { bool HasHadWater = false; int PatternIdx = 0; - int top = std::max(m_SeaLevel, a_ChunkDesc.GetHeight(a_RelX, a_RelZ)); + HEIGHTTYPE top = std::max(m_SeaLevel, a_ChunkDesc.GetHeight(a_RelX, a_RelZ)); for (int y = top; y > 0; y--) { if (a_ShapeColumn[y] > 0) diff --git a/src/Generating/ComposableGenerator.cpp b/src/Generating/ComposableGenerator.cpp index 6b7643ddb..4eee8b707 100644 --- a/src/Generating/ComposableGenerator.cpp +++ b/src/Generating/ComposableGenerator.cpp @@ -221,11 +221,11 @@ void cComposableGenerator::InitBiomeGen(cIniFile & a_IniFile) if (MultiCacheLength > 0) { LOGD("Enabling multicache for biomegen of length %d.", MultiCacheLength); - m_BiomeGen = cBiomeGenPtr(new cBioGenMulticache(m_BiomeGen, CacheSize, MultiCacheLength)); + m_BiomeGen = cBiomeGenPtr(new cBioGenMulticache(m_BiomeGen, static_cast<size_t>(CacheSize), static_cast<size_t>(MultiCacheLength))); } else { - m_BiomeGen = cBiomeGenPtr(new cBioGenCache(m_BiomeGen, CacheSize)); + m_BiomeGen = cBiomeGenPtr(new cBioGenCache(m_BiomeGen, static_cast<size_t>(CacheSize))); } } @@ -274,7 +274,7 @@ void cComposableGenerator::InitCompositionGen(cIniFile & a_IniFile) } // Create a cache of the composited heightmaps, so that finishers may use it: - m_CompositedHeightCache = std::make_shared<cHeiGenMultiCache>(std::make_shared<cCompositedHeiGen>(m_ShapeGen, m_CompositionGen), 16, 24); + m_CompositedHeightCache = std::make_shared<cHeiGenMultiCache>(std::make_shared<cCompositedHeiGen>(m_BiomeGen, m_ShapeGen, m_CompositionGen), 16, 24); // 24 subcaches of depth 16 each = 96 KiB of RAM. Acceptable, for the amount of work this saves. } @@ -618,7 +618,9 @@ void cComposableGenerator::InitFinishGens(cIniFile & a_IniFile) int MaxSize = a_IniFile.GetValueSetI("Generator", "VillageMaxSize", 128); int MinDensity = a_IniFile.GetValueSetI("Generator", "VillageMinDensity", 50); int MaxDensity = a_IniFile.GetValueSetI("Generator", "VillageMaxDensity", 80); - m_FinishGens.push_back(std::make_shared<cVillageGen>(Seed, GridSize, MaxOffset, MaxDepth, MaxSize, MinDensity, MaxDensity, m_BiomeGen, m_CompositedHeightCache)); + AString PrefabList = a_IniFile.GetValueSet("Generator", "VillagePrefabs", "PlainsVillage, SandVillage"); + auto Prefabs = StringSplitAndTrim(PrefabList, ","); + m_FinishGens.push_back(std::make_shared<cVillageGen>(Seed, GridSize, MaxOffset, MaxDepth, MaxSize, MinDensity, MaxDensity, m_BiomeGen, m_CompositedHeightCache, Prefabs)); } else if (NoCaseCompare(*itr, "Vines") == 0) { diff --git a/src/Generating/CompositedHeiGen.h b/src/Generating/CompositedHeiGen.h index fa33a7861..c4e6ce77d 100644 --- a/src/Generating/CompositedHeiGen.h +++ b/src/Generating/CompositedHeiGen.h @@ -20,7 +20,8 @@ class cCompositedHeiGen: public cTerrainHeightGen { public: - cCompositedHeiGen(cTerrainShapeGenPtr a_ShapeGen, cTerrainCompositionGenPtr a_CompositionGen): + cCompositedHeiGen(cBiomeGenPtr a_BiomeGen, cTerrainShapeGenPtr a_ShapeGen, cTerrainCompositionGenPtr a_CompositionGen): + m_BiomeGen(a_BiomeGen), m_ShapeGen(a_ShapeGen), m_CompositionGen(a_CompositionGen) { @@ -28,18 +29,20 @@ public: - // cTerrainheightGen overrides: + // cTerrainHeightGen overrides: virtual void GenHeightMap(int a_ChunkX, int a_ChunkZ, cChunkDef::HeightMap & a_HeightMap) override { cChunkDesc::Shape shape; m_ShapeGen->GenShape(a_ChunkX, a_ChunkZ, shape); cChunkDesc desc(a_ChunkX, a_ChunkZ); + m_BiomeGen->GenBiomes(a_ChunkX, a_ChunkZ, desc.GetBiomeMap()); // Need to initialize biomes for the composition gen desc.SetHeightFromShape(shape); m_CompositionGen->ComposeTerrain(desc, shape); memcpy(a_HeightMap, desc.GetHeightMap(), sizeof(a_HeightMap)); } protected: + cBiomeGenPtr m_BiomeGen; cTerrainShapeGenPtr m_ShapeGen; cTerrainCompositionGenPtr m_CompositionGen; }; diff --git a/src/Generating/DungeonRoomsFinisher.cpp b/src/Generating/DungeonRoomsFinisher.cpp index c4bf8839e..c62da7492 100644 --- a/src/Generating/DungeonRoomsFinisher.cpp +++ b/src/Generating/DungeonRoomsFinisher.cpp @@ -194,7 +194,7 @@ protected: { return; } - a_ChunkDesc.SetBlockTypeMeta(RelX, m_FloorHeight + 1, RelZ, E_BLOCK_CHEST, (NIBBLETYPE)a_Chest.y); + a_ChunkDesc.SetBlockTypeMeta(RelX, m_FloorHeight + 1, RelZ, E_BLOCK_CHEST, static_cast<NIBBLETYPE>(a_Chest.y)); // Fill the chest with random loot static const cLootProbab LootProbab[] = @@ -217,7 +217,7 @@ protected: { cItem(E_ITEM_NAME_TAG), 1, 1, 10 }, } ; - cChestEntity * ChestEntity = (cChestEntity *)a_ChunkDesc.GetBlockEntity(RelX, m_FloorHeight + 1, RelZ); + cChestEntity * ChestEntity = static_cast<cChestEntity *>(a_ChunkDesc.GetBlockEntity(RelX, m_FloorHeight + 1, RelZ)); ASSERT((ChestEntity != nullptr) && (ChestEntity->GetBlockType() == E_BLOCK_CHEST)); cNoise Noise(a_ChunkDesc.GetChunkX() ^ a_ChunkDesc.GetChunkZ()); int NumSlots = 3 + ((Noise.IntNoise3DInt(a_Chest.x, a_Chest.y, a_Chest.z) / 11) % 4); diff --git a/src/Generating/FinishGen.cpp b/src/Generating/FinishGen.cpp index 00b34bddd..59af0fd63 100644 --- a/src/Generating/FinishGen.cpp +++ b/src/Generating/FinishGen.cpp @@ -69,7 +69,7 @@ void cFinishGenNetherClumpFoliage::GenFinish(cChunkDesc & a_ChunkDesc) } // Choose what block to use. - NOISE_DATATYPE BlockType = m_Noise.IntNoise3D((int) ChunkX, y, (int) ChunkZ); + NOISE_DATATYPE BlockType = m_Noise.IntNoise3D(static_cast<int>(ChunkX), y, static_cast<int>(ChunkZ)); if (BlockType < -0.7) { TryPlaceClump(a_ChunkDesc, PosX, y, PosZ, E_BLOCK_BROWN_MUSHROOM); @@ -260,13 +260,13 @@ void cFinishGenGlowStone::TryPlaceGlowstone(cChunkDesc & a_ChunkDesc, int a_RelX for (int j = 0; j < a_Size; j++) { - Vector3i Direction = AvailableDirections[m_Noise.IntNoise3DInt(CurrentPos.x, CurrentPos.y * i, CurrentPos.z) % ARRAYCOUNT(AvailableDirections)]; + Vector3i Direction = AvailableDirections[static_cast<size_t>(m_Noise.IntNoise3DInt(CurrentPos.x, CurrentPos.y * i, CurrentPos.z)) % ARRAYCOUNT(AvailableDirections)]; int Attempts = 2; // multiply by 1 would make no difference, so multiply by 2 instead while (Direction.Equals(PreviousDirection)) { // To make the glowstone branches look better we want to make the direction change every time. - Direction = AvailableDirections[m_Noise.IntNoise3DInt(CurrentPos.x, CurrentPos.y * i * Attempts, CurrentPos.z) % ARRAYCOUNT(AvailableDirections)]; + Direction = AvailableDirections[static_cast<size_t>(m_Noise.IntNoise3DInt(CurrentPos.x, CurrentPos.y * i * Attempts, CurrentPos.z)) % ARRAYCOUNT(AvailableDirections)]; Attempts++; } @@ -438,7 +438,7 @@ void cFinishGenVines::GenFinish(cChunkDesc & a_ChunkDesc) continue; } - NIBBLETYPE Meta = Places[m_Noise.IntNoise3DInt(xx, y, zz) % Places.size()]; + NIBBLETYPE Meta = Places[static_cast<size_t>(m_Noise.IntNoise3DInt(xx, y, zz)) % Places.size()]; a_ChunkDesc.SetBlockTypeMeta(x, y, z, E_BLOCK_VINES, Meta); } } @@ -507,7 +507,7 @@ void cFinishGenSprinkleFoliage::GenFinish(cChunkDesc & a_ChunkDesc) for (int z = 0; z < cChunkDef::Width; z++) { int BlockZ = a_ChunkDesc.GetChunkZ() * cChunkDef::Width + z; - const float zz = (float)BlockZ; + const float zz = static_cast<float>(BlockZ); for (int x = 0; x < cChunkDef::Width; x++) { int BlockX = a_ChunkDesc.GetChunkX() * cChunkDef::Width + x; @@ -515,7 +515,7 @@ void cFinishGenSprinkleFoliage::GenFinish(cChunkDesc & a_ChunkDesc) { continue; } - int Top = a_ChunkDesc.GetHeight(x, z); + HEIGHTTYPE Top = a_ChunkDesc.GetHeight(x, z); if (Top > 250) { // Nothing grows above Y=250 @@ -528,7 +528,7 @@ void cFinishGenSprinkleFoliage::GenFinish(cChunkDesc & a_ChunkDesc) continue; } - const float xx = (float)BlockX; + const float xx = static_cast<float>(BlockX); 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)) @@ -563,7 +563,7 @@ void cFinishGenSprinkleFoliage::GenFinish(cChunkDesc & a_ChunkDesc) } else if ((val1 > 0.5) && (val2 < -0.5)) { - a_ChunkDesc.SetBlockTypeMeta(x, ++Top, z, E_BLOCK_PUMPKIN, (int)(val3 * 8) % 4); + a_ChunkDesc.SetBlockTypeMeta(x, ++Top, z, E_BLOCK_PUMPKIN, static_cast<int>(val3 * 8) % 4); } break; } // case E_BLOCK_GRASS @@ -650,9 +650,9 @@ void cFinishGenSoulsandRims::GenFinish(cChunkDesc & a_ChunkDesc) continue; } - NOISE_DATATYPE NoiseX = ((NOISE_DATATYPE)(xx)) / 32; - NOISE_DATATYPE NoiseY = ((NOISE_DATATYPE)(zz)) / 32; - NOISE_DATATYPE CompBlock = m_Noise.CubicNoise3D(NoiseX, (float) (y) / 4, NoiseY); + NOISE_DATATYPE NoiseX = (static_cast<NOISE_DATATYPE>(xx)) / 32; + NOISE_DATATYPE NoiseY = (static_cast<NOISE_DATATYPE>(zz)) / 32; + NOISE_DATATYPE CompBlock = m_Noise.CubicNoise3D(NoiseX, static_cast<float>(y) / 4, NoiseY); if (CompBlock < 0) { a_ChunkDesc.SetBlockType(x, y, z, E_BLOCK_SOULSAND); @@ -676,7 +676,7 @@ void cFinishGenSnow::GenFinish(cChunkDesc & a_ChunkDesc) { for (int x = 0; x < cChunkDef::Width; x++) { - int Height = a_ChunkDesc.GetHeight(x, z); + HEIGHTTYPE Height = a_ChunkDesc.GetHeight(x, z); if (GetSnowStartHeight(a_ChunkDesc.GetBiome(x, z)) > Height) { // Height isn't high enough for snow to start forming. @@ -775,7 +775,7 @@ void cFinishGenSingleTopBlock::GenFinish(cChunkDesc & a_ChunkDesc) continue; } - int Height = a_ChunkDesc.GetHeight(x, z); + HEIGHTTYPE Height = a_ChunkDesc.GetHeight(x, z); if (Height >= cChunkDef::Height - 1) { // Too high up @@ -918,7 +918,7 @@ void cFinishGenPreSimulator::CollapseSandGravel( } } // switch (GetBlock) } // for y - cChunkDef::SetHeight(a_HeightMap, x, z, HeightY); + cChunkDef::SetHeight(a_HeightMap, x, z, static_cast<HEIGHTTYPE>(HeightY)); } // for x } // for z } @@ -1259,7 +1259,7 @@ bool cFinishGenPassiveMobs::TrySpawnAnimals(cChunkDesc & a_ChunkDesc, int a_RelX } if ( (BlockUnderFeet != E_BLOCK_GRASS) && - ((AnimalToSpawn == mtSheep) || (AnimalToSpawn == mtChicken) || (AnimalToSpawn == mtPig)) + ((AnimalToSpawn == mtWolf) || (AnimalToSpawn == mtRabbit) || (AnimalToSpawn == mtCow) || (AnimalToSpawn == mtSheep) || (AnimalToSpawn == mtChicken) || (AnimalToSpawn == mtPig)) ) { return false; @@ -1274,6 +1274,7 @@ bool cFinishGenPassiveMobs::TrySpawnAnimals(cChunkDesc & a_ChunkDesc, int a_RelX double AnimalZ = static_cast<double>(a_ChunkDesc.GetChunkZ() * cChunkDef::Width + a_RelZ + 0.5); cMonster * NewMob = cMonster::NewMonsterFromType(AnimalToSpawn); + NewMob->SetHealth(NewMob->GetMaxHealth()); NewMob->SetPosition(AnimalX, AnimalY, AnimalZ); a_ChunkDesc.GetEntities().push_back(NewMob); LOGD("Spawning %s #%i at {%.02f, %.02f, %.02f}", NewMob->GetClass(), NewMob->GetUniqueID(), AnimalX, AnimalY, AnimalZ); @@ -1374,8 +1375,12 @@ eMonsterType cFinishGenPassiveMobs::GetRandomMob(cChunkDesc & a_ChunkDesc) return mtInvalidType; } - int RandMob = (m_Noise.IntNoise2DInt(chunkX - chunkZ + 2, chunkX + 5) / 7) % ListOfSpawnables.size(); auto MobIter = ListOfSpawnables.begin(); + using diff_type = + std::iterator_traits<decltype(MobIter)>::difference_type; + diff_type RandMob = static_cast<diff_type> + (static_cast<size_t>(m_Noise.IntNoise2DInt(chunkX - chunkZ + 2, chunkX + 5) / 7) + % ListOfSpawnables.size()); std::advance(MobIter, RandMob); return *MobIter; diff --git a/src/Generating/GridStructGen.cpp b/src/Generating/GridStructGen.cpp index 3c08c1a39..5adc60c4f 100644 --- a/src/Generating/GridStructGen.cpp +++ b/src/Generating/GridStructGen.cpp @@ -64,13 +64,13 @@ cGridStructGen::cGridStructGen( 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)); + size_t NumStructuresPerQuery = static_cast<size_t>(((m_MaxStructureSizeX + m_MaxOffsetX) / m_GridSizeX + 1) * ((m_MaxStructureSizeZ + m_MaxOffsetZ) / m_GridSizeZ + 1)); if (NumStructuresPerQuery > m_MaxCacheSize) { m_MaxCacheSize = NumStructuresPerQuery * 4; LOGINFO( "cGridStructGen: The cache size is too small (%u), increasing the cache size to %u to avoid inefficiency.", - (unsigned)a_MaxCacheSize, (unsigned)m_MaxCacheSize + static_cast<unsigned>(a_MaxCacheSize), static_cast<unsigned>(m_MaxCacheSize) ); } } diff --git a/src/Generating/HeiGen.cpp b/src/Generating/HeiGen.cpp index e34ffc57c..6cfd53837 100644 --- a/src/Generating/HeiGen.cpp +++ b/src/Generating/HeiGen.cpp @@ -58,7 +58,7 @@ public: virtual void GenHeightMap(int a_ChunkX, int a_ChunkZ, cChunkDef::HeightMap & a_HeightMap) override { int heights[cChunkDef::Width * cChunkDef::Width]; - m_Gen->GetInts(a_ChunkX * cChunkDef::Width, a_ChunkZ * cChunkDef::Width, cChunkDef::Width, cChunkDef::Width, heights); + m_Gen->GetInts(a_ChunkX * cChunkDef::Width, a_ChunkZ * cChunkDef::Width, static_cast<size_t>(cChunkDef::Width), static_cast<size_t>(cChunkDef::Width), heights); for (size_t i = 0; i < ARRAYCOUNT(heights); i++) { a_HeightMap[i] = static_cast<HEIGHTTYPE>(std::max(std::min(60 + heights[i], cChunkDef::Height - 60), 40)); @@ -92,7 +92,7 @@ void cHeiGenFlat::GenHeightMap(int a_ChunkX, int a_ChunkZ, cChunkDef::HeightMap void cHeiGenFlat::InitializeHeightGen(cIniFile & a_IniFile) { - m_Height = a_IniFile.GetValueSetI("Generator", "FlatHeight", m_Height); + m_Height = static_cast<HEIGHTTYPE>(a_IniFile.GetValueSetI("Generator", "FlatHeight", m_Height)); } @@ -102,16 +102,16 @@ void cHeiGenFlat::InitializeHeightGen(cIniFile & a_IniFile) //////////////////////////////////////////////////////////////////////////////// // cHeiGenCache: -cHeiGenCache::cHeiGenCache(cTerrainHeightGenPtr a_HeiGenToCache, int a_CacheSize) : +cHeiGenCache::cHeiGenCache(cTerrainHeightGenPtr a_HeiGenToCache, size_t a_CacheSize) : m_HeiGenToCache(a_HeiGenToCache), m_CacheSize(a_CacheSize), - m_CacheOrder(new int[a_CacheSize]), + m_CacheOrder(new size_t[a_CacheSize]), m_CacheData(new sCacheData[a_CacheSize]), m_NumHits(0), m_NumMisses(0), m_TotalChain(0) { - for (int i = 0; i < m_CacheSize; i++) + for (size_t i = 0; i < m_CacheSize; i++) { m_CacheOrder[i] = i; m_CacheData[i].m_ChunkX = 0x7fffffff; @@ -141,11 +141,11 @@ void cHeiGenCache::GenHeightMap(int a_ChunkX, int a_ChunkZ, cChunkDef::HeightMap if (((m_NumHits + m_NumMisses) % 1024) == 10) { LOGD("HeiGenCache: %d hits, %d misses, saved %.2f %%", m_NumHits, m_NumMisses, 100.0 * m_NumHits / (m_NumHits + m_NumMisses)); - LOGD("HeiGenCache: Avg cache chain length: %.2f", (float)m_TotalChain / m_NumHits); + LOGD("HeiGenCache: Avg cache chain length: %.2f", static_cast<double>(m_TotalChain) / m_NumHits); } //*/ - for (int i = 0; i < m_CacheSize; i++) + for (size_t i = 0; i < m_CacheSize; i++) { if ( (m_CacheData[m_CacheOrder[i]].m_ChunkX != a_ChunkX) || @@ -155,10 +155,10 @@ void cHeiGenCache::GenHeightMap(int a_ChunkX, int a_ChunkZ, cChunkDef::HeightMap continue; } // Found it in the cache - int Idx = m_CacheOrder[i]; + auto Idx = m_CacheOrder[i]; // Move to front: - for (int j = i; j > 0; j--) + for (size_t j = i; j > 0; j--) { m_CacheOrder[j] = m_CacheOrder[j - 1]; } @@ -177,8 +177,8 @@ void cHeiGenCache::GenHeightMap(int a_ChunkX, int a_ChunkZ, cChunkDef::HeightMap m_HeiGenToCache->GenHeightMap(a_ChunkX, a_ChunkZ, a_HeightMap); // Insert it as the first item in the MRU order: - int Idx = m_CacheOrder[m_CacheSize - 1]; - for (int i = m_CacheSize - 1; i > 0; i--) + auto Idx = m_CacheOrder[m_CacheSize - 1]; + for (auto i = m_CacheSize - 1; i > 0; i--) { m_CacheOrder[i] = m_CacheOrder[i - 1]; } // for i - m_CacheOrder[] @@ -194,7 +194,7 @@ void cHeiGenCache::GenHeightMap(int a_ChunkX, int a_ChunkZ, cChunkDef::HeightMap bool cHeiGenCache::GetHeightAt(int a_ChunkX, int a_ChunkZ, int a_RelX, int a_RelZ, HEIGHTTYPE & a_Height) { - for (int i = 0; i < m_CacheSize; i++) + for (size_t i = 0; i < m_CacheSize; i++) { if ((m_CacheData[i].m_ChunkX == a_ChunkX) && (m_CacheData[i].m_ChunkZ == a_ChunkZ)) { @@ -300,15 +300,7 @@ void cHeiGenClassic::GenHeightMap(int a_ChunkX, int a_ChunkZ, cChunkDef::HeightM { const float xx = (float)(a_ChunkX * cChunkDef::Width + x); - int hei = 64 + (int)(GetNoise(xx * 0.05f, zz * 0.05f) * 16); - if (hei < 10) - { - hei = 10; - } - if (hei > 250) - { - hei = 250; - } + HEIGHTTYPE hei = static_cast<HEIGHTTYPE>(Clamp(static_cast<int>(64 + (GetNoise(xx * 0.05f, zz * 0.05f) * 16)), 10, 250)); cChunkDef::SetHeight(a_HeightMap, x, z, hei); } // for x } // for z @@ -366,15 +358,7 @@ void cHeiGenMountains::GenHeightMap(int a_ChunkX, int a_ChunkZ, cChunkDef::Heigh for (int x = 0; x < cChunkDef::Width; x++) { int idx = IdxZ + x; - int hei = 100 - (int)((MountainNoise[idx] - DitchNoise[idx] + PerlinNoise[idx]) * 15); - if (hei < 10) - { - hei = 10; - } - if (hei > 250) - { - hei = 250; - } + HEIGHTTYPE hei = static_cast<HEIGHTTYPE>(Clamp(100 - static_cast<int>((MountainNoise[idx] - DitchNoise[idx] + PerlinNoise[idx]) * 15), 10, 250)); cChunkDef::SetHeight(a_HeightMap, x, z, hei); } // for x } // for z @@ -536,7 +520,7 @@ void cHeiGenBiomal::GenHeightMap(int a_ChunkX, int a_ChunkZ, cChunkDef::HeightMa { for (int x = 0; x < cChunkDef::Width; x++) { - cChunkDef::SetHeight(a_HeightMap, x, z, (int)Height[x + 17 * z]); + cChunkDef::SetHeight(a_HeightMap, x, z, static_cast<HEIGHTTYPE>(Height[x + 17 * z])); } } //*/ @@ -817,7 +801,10 @@ protected: case biTaiga: a_Min = 63; a_Max = 75; break; case biTaigaHills: a_Min = 63; a_Max = 90; break; case biTaigaM: a_Min = 63; a_Max = 80; break; - default: + case biInvalidBiome: + case biNumBiomes: + case biVariant: + case biNumVariantBiomes: { ASSERT(!"Unknown biome"); a_Min = 10; diff --git a/src/Generating/HeiGen.h b/src/Generating/HeiGen.h index 62bb227c6..0dc9c814b 100644 --- a/src/Generating/HeiGen.h +++ b/src/Generating/HeiGen.h @@ -28,7 +28,7 @@ class cHeiGenCache : public cTerrainHeightGen { public: - cHeiGenCache(cTerrainHeightGenPtr a_HeiGenToCache, int a_CacheSize); + cHeiGenCache(cTerrainHeightGenPtr a_HeiGenToCache, size_t a_CacheSize); ~cHeiGenCache(); // cTerrainHeightGen overrides: @@ -49,14 +49,14 @@ protected: cTerrainHeightGenPtr m_HeiGenToCache; // To avoid moving large amounts of data for the MRU behavior, we MRU-ize indices to an array of the actual data - int m_CacheSize; - int * m_CacheOrder; // MRU-ized order, indices into m_CacheData array + size_t m_CacheSize; + size_t * m_CacheOrder; // MRU-ized order, indices into m_CacheData array sCacheData * m_CacheData; // m_CacheData[m_CacheOrder[0]] is the most recently used // Cache statistics - int m_NumHits; - int m_NumMisses; - int m_TotalChain; // Number of cache items walked to get to a hit (only added for hits) + size_t m_NumHits; + size_t m_NumMisses; + size_t m_TotalChain; // Number of cache items walked to get to a hit (only added for hits) } ; @@ -103,7 +103,7 @@ public: protected: - int m_Height; + HEIGHTTYPE m_Height; // cTerrainHeightGen overrides: virtual void GenHeightMap(int a_ChunkX, int a_ChunkZ, cChunkDef::HeightMap & a_HeightMap) override; diff --git a/src/Generating/IntGen.h b/src/Generating/IntGen.h index 9cc881639..3f94ec3d0 100644 --- a/src/Generating/IntGen.h +++ b/src/Generating/IntGen.h @@ -754,7 +754,7 @@ public: int IdxZ = z * SizeX; for (int x = 0; x < SizeX; x++) { - size_t val = (size_t)a_Values[x + IdxZ]; + size_t val = static_cast<size_t>(a_Values[x + IdxZ]); const cBiomesInGroups & Biomes = (val > bgfRare) ? rareBiomesInGroups[(val & (bgfRare - 1)) % ARRAYCOUNT(rareBiomesInGroups)] : biomesInGroups[val % ARRAYCOUNT(biomesInGroups)]; @@ -891,7 +891,7 @@ public: } // There's a river, change the output to a river or a frozen river, based on the original biome: - if (IsBiomeVeryCold((EMCSBiome)a_Values[idx])) + if (IsBiomeVeryCold(static_cast<EMCSBiome>(a_Values[idx]))) { a_Values[idx] = biFrozenRiver; } diff --git a/src/Generating/MineShafts.cpp b/src/Generating/MineShafts.cpp index 65588ce4b..4ba896ef6 100644 --- a/src/Generating/MineShafts.cpp +++ b/src/Generating/MineShafts.cpp @@ -542,7 +542,7 @@ cMineShaft * cMineShaftCorridor::CreateAndFit( { cCuboid BoundingBox(a_PivotX, a_PivotY - 1, a_PivotZ); BoundingBox.p2.y += 3; - int rnd = a_Noise.IntNoise3DInt(a_PivotX, a_PivotY + (int)a_ParentSystem.m_MineShafts.size(), a_PivotZ) / 7; + int rnd = a_Noise.IntNoise3DInt(a_PivotX, a_PivotY + static_cast<int>(a_ParentSystem.m_MineShafts.size()), a_PivotZ) / 7; int NumSegments = 2 + (rnd) % (MAX_SEGMENTS - 1); // 2 .. MAX_SEGMENTS switch (a_Direction) { @@ -564,14 +564,14 @@ cMineShaft * cMineShaftCorridor::CreateAndFit( void cMineShaftCorridor::AppendBranches(int a_RecursionLevel, cNoise & a_Noise) { - int rnd = a_Noise.IntNoise3DInt(m_BoundingBox.p1.x, m_BoundingBox.p1.y + a_RecursionLevel, m_BoundingBox.p1.z) / 7; + int Outerrnd = a_Noise.IntNoise3DInt(m_BoundingBox.p1.x, m_BoundingBox.p1.y + a_RecursionLevel, m_BoundingBox.p1.z) / 7; // Prefer the same height, but allow for up to one block height displacement: - int Height = m_BoundingBox.p1.y + ((rnd % 4) + ((rnd >> 3) % 3)) / 2; + int OuterHeight = m_BoundingBox.p1.y + ((Outerrnd % 4) + ((Outerrnd >> 3) % 3)) / 2; switch (m_Direction) { case dirXM: { - m_ParentSystem.AppendBranch(m_BoundingBox.p1.x - 1, Height, m_BoundingBox.p1.z + 1, dirXM, a_Noise, a_RecursionLevel); + m_ParentSystem.AppendBranch(m_BoundingBox.p1.x - 1, OuterHeight, m_BoundingBox.p1.z + 1, dirXM, a_Noise, a_RecursionLevel); for (int i = m_NumSegments; i >= 0; i--) { int rnd = a_Noise.IntNoise3DInt(m_BoundingBox.p1.x + i + 10, m_BoundingBox.p1.y + a_RecursionLevel, m_BoundingBox.p1.z) / 11; @@ -586,7 +586,7 @@ void cMineShaftCorridor::AppendBranches(int a_RecursionLevel, cNoise & a_Noise) case dirXP: { - m_ParentSystem.AppendBranch(m_BoundingBox.p2.x + 1, Height, m_BoundingBox.p1.z + 1, dirXP, a_Noise, a_RecursionLevel); + m_ParentSystem.AppendBranch(m_BoundingBox.p2.x + 1, OuterHeight, m_BoundingBox.p1.z + 1, dirXP, a_Noise, a_RecursionLevel); for (int i = m_NumSegments; i >= 0; i--) { int rnd = a_Noise.IntNoise3DInt(m_BoundingBox.p1.x + i + 10, m_BoundingBox.p1.y + a_RecursionLevel, m_BoundingBox.p1.z) / 11; @@ -601,7 +601,7 @@ void cMineShaftCorridor::AppendBranches(int a_RecursionLevel, cNoise & a_Noise) case dirZM: { - m_ParentSystem.AppendBranch(m_BoundingBox.p1.x + 1, Height, m_BoundingBox.p1.z - 1, dirZM, a_Noise, a_RecursionLevel); + m_ParentSystem.AppendBranch(m_BoundingBox.p1.x + 1, OuterHeight, m_BoundingBox.p1.z - 1, dirZM, a_Noise, a_RecursionLevel); for (int i = m_NumSegments; i >= 0; i--) { int rnd = a_Noise.IntNoise3DInt(m_BoundingBox.p1.x + i + 10, m_BoundingBox.p1.y + a_RecursionLevel, m_BoundingBox.p1.z) / 11; @@ -616,7 +616,7 @@ void cMineShaftCorridor::AppendBranches(int a_RecursionLevel, cNoise & a_Noise) case dirZP: { - m_ParentSystem.AppendBranch(m_BoundingBox.p1.x + 1, Height, m_BoundingBox.p2.z + 1, dirZP, a_Noise, a_RecursionLevel); + m_ParentSystem.AppendBranch(m_BoundingBox.p1.x + 1, OuterHeight, m_BoundingBox.p2.z + 1, dirZP, a_Noise, a_RecursionLevel); for (int i = m_NumSegments; i >= 0; i--) { int rnd = a_Noise.IntNoise3DInt(m_BoundingBox.p1.x + i + 10, m_BoundingBox.p1.y + a_RecursionLevel, m_BoundingBox.p1.z) / 11; @@ -781,13 +781,19 @@ void cMineShaftCorridor::PlaceChest(cChunkDesc & a_ChunkDesc) case dirZM: case dirZP: - default: { x = m_BoundingBox.p1.x - BlockX; z = m_BoundingBox.p1.z + m_ChestPosition - BlockZ; Meta = E_META_CHEST_FACING_XP; break; } + #if !defined(__clang__) + default: + { + ASSERT(!"Unknown direction"); + return; + } + #endif } // switch (Dir) if ( @@ -796,7 +802,7 @@ void cMineShaftCorridor::PlaceChest(cChunkDesc & a_ChunkDesc) ) { a_ChunkDesc.SetBlockTypeMeta(x, m_BoundingBox.p1.y + 1, z, E_BLOCK_CHEST, Meta); - cChestEntity * ChestEntity = (cChestEntity *)a_ChunkDesc.GetBlockEntity(x, m_BoundingBox.p1.y + 1, z); + cChestEntity * ChestEntity = static_cast<cChestEntity *>(a_ChunkDesc.GetBlockEntity(x, m_BoundingBox.p1.y + 1, z)); ASSERT((ChestEntity != nullptr) && (ChestEntity->GetBlockType() == E_BLOCK_CHEST)); cNoise Noise(a_ChunkDesc.GetChunkX() ^ a_ChunkDesc.GetChunkZ()); int NumSlots = 3 + ((Noise.IntNoise3DInt(x, m_BoundingBox.p1.y, z) / 11) % 4); @@ -986,7 +992,7 @@ cMineShaft * cMineShaftCrossing::CreateAndFit( ) { cCuboid BoundingBox(a_PivotX, a_PivotY - 1, a_PivotZ); - int rnd = a_Noise.IntNoise3DInt(a_PivotX, a_PivotY + (int)a_ParentSystem.m_MineShafts.size(), a_PivotZ) / 7; + int rnd = a_Noise.IntNoise3DInt(a_PivotX, a_PivotY + static_cast<int>(a_ParentSystem.m_MineShafts.size()), a_PivotZ) / 7; BoundingBox.p2.y += 3; if ((rnd % 4) < 2) { @@ -1127,7 +1133,7 @@ cMineShaft * cMineShaftStaircase::CreateAndFit( cNoise & a_Noise ) { - int rnd = a_Noise.IntNoise3DInt(a_PivotX, a_PivotY + (int)a_ParentSystem.m_MineShafts.size(), a_PivotZ) / 7; + int rnd = a_Noise.IntNoise3DInt(a_PivotX, a_PivotY + static_cast<int>(a_ParentSystem.m_MineShafts.size()), a_PivotZ) / 7; cCuboid Box; switch (a_Direction) { diff --git a/src/Generating/NetherFortGen.cpp b/src/Generating/NetherFortGen.cpp index f35555efd..d29ab8cd1 100644 --- a/src/Generating/NetherFortGen.cpp +++ b/src/Generating/NetherFortGen.cpp @@ -36,7 +36,7 @@ public: int BlockY = 64; // Generate pieces: - for (int i = 0; m_Pieces.size() < (size_t)(a_MaxDepth * a_MaxDepth / 8 + a_MaxDepth); i++) + for (int i = 0; m_Pieces.size() < static_cast<size_t>(a_MaxDepth * a_MaxDepth / 8 + a_MaxDepth); i++) { cBFSPieceGenerator pg(cNetherFortGen::m_PiecePool, a_Seed + i); pg.PlacePieces(a_OriginX, BlockY, a_OriginZ, a_MaxDepth, m_Pieces); @@ -55,7 +55,7 @@ public: { for (cPlacedPieces::const_iterator itr = m_Pieces.begin(), end = m_Pieces.end(); itr != end; ++itr) { - const cPrefab & Prefab = (const cPrefab &)((*itr)->GetPiece()); + const cPrefab & Prefab = static_cast<const cPrefab &>((*itr)->GetPiece()); Prefab.Draw(a_Chunk, *itr); } // for itr - m_PlacedPieces[] } diff --git a/src/Generating/Noise3DGenerator.cpp b/src/Generating/Noise3DGenerator.cpp index 63e88c2a8..8163746f8 100644 --- a/src/Generating/Noise3DGenerator.cpp +++ b/src/Generating/Noise3DGenerator.cpp @@ -305,7 +305,7 @@ void cNoise3DGenerator::UpdateHeightmap(cChunkDesc & a_ChunkDesc) { for (int x = 0; x < cChunkDef::Width; x++) { - for (int y = cChunkDef::Height - 1; y > 0; y--) + for (HEIGHTTYPE y = cChunkDef::Height - 1; y > 0; y--) { if (a_ChunkDesc.GetBlockType(x, y, z) != E_BLOCK_AIR) { @@ -790,7 +790,10 @@ void cBiomalNoise3DComposable::GetBiomeParams(EMCSBiome a_Biome, NOISE_DATATYPE case biTaiga: a_HeightAmp = 0.1f; a_MidPoint = 64; break; case biTaigaM: a_HeightAmp = 0.1f; a_MidPoint = 70; break; case biTaigaHills: a_HeightAmp = 0.075f; a_MidPoint = 68; break; - default: + case biInvalidBiome: + case biNumBiomes: + case biVariant: + case biNumVariantBiomes: { // Make a crazy terrain so that it stands out a_HeightAmp = 0.001f; diff --git a/src/Generating/POCPieceGenerator.cpp b/src/Generating/POCPieceGenerator.cpp index 6e7e74d7a..834e3887f 100644 --- a/src/Generating/POCPieceGenerator.cpp +++ b/src/Generating/POCPieceGenerator.cpp @@ -32,7 +32,7 @@ public: /** Imprints the piece in the specified chunk. Assumes they intersect. */ - void ImprintInChunk(cChunkDesc & a_ChunkDesc, const Vector3i & a_Pos, int a_NumCCWRotations) + void ImprintInChunk(cChunkDesc & a_ChunkDesc, const Vector3i & a_Pos, int a_NumCCWRotations) const { int BlockX = a_ChunkDesc.GetChunkX() * cChunkDef::Width; int BlockZ = a_ChunkDesc.GetChunkZ() * cChunkDef::Width; @@ -227,7 +227,7 @@ void cPOCPieceGenerator::GenFinish(cChunkDesc & a_ChunkDesc) continue; } - ((cPOCPiece &)(*itr)->GetPiece()).ImprintInChunk(a_ChunkDesc, Pos, (*itr)->GetNumCCWRotations()); + (static_cast<const cPOCPiece &>((*itr)->GetPiece())).ImprintInChunk(a_ChunkDesc, Pos, (*itr)->GetNumCCWRotations()); } // for itr - m_Pieces[] a_ChunkDesc.UpdateHeightmap(); } diff --git a/src/Generating/PieceGenerator.cpp b/src/Generating/PieceGenerator.cpp index 97aa646fc..93e7179e2 100644 --- a/src/Generating/PieceGenerator.cpp +++ b/src/Generating/PieceGenerator.cpp @@ -6,6 +6,7 @@ #include "Globals.h" #include "PieceGenerator.h" +#include "../SelfTests.h" @@ -22,6 +23,11 @@ static class cPieceGeneratorSelfTest : public: cPieceGeneratorSelfTest(void) { + cSelfTests::Get().Register(std::bind(&cPieceGeneratorSelfTest::Test, this), "PieceGenerator"); + } + + void Test(void) + { // Prepare the internal state: InitializePieces(); @@ -31,14 +37,14 @@ public: Gen.PlacePieces(500, 50, 500, 3, OutPieces); // Print out the pieces: - printf("OutPieces.size() = " SIZE_T_FMT "\n", OutPieces.size()); + LOG("OutPieces.size() = " SIZE_T_FMT, OutPieces.size()); size_t idx = 0; for (cPlacedPieces::const_iterator itr = OutPieces.begin(), end = OutPieces.end(); itr != end; ++itr, ++idx) { const Vector3i & Coords = (*itr)->GetCoords(); cCuboid Hitbox = (*itr)->GetHitBox(); Hitbox.Sort(); - printf(SIZE_T_FMT ": {%d, %d, %d}, rot %d, hitbox {%d, %d, %d} - {%d, %d, %d} (%d * %d * %d)\n", idx, + LOG(SIZE_T_FMT ": {%d, %d, %d}, rot %d, hitbox {%d, %d, %d} - {%d, %d, %d} (%d * %d * %d)", idx, Coords.x, Coords.y, Coords.z, (*itr)->GetNumCCWRotations(), Hitbox.p1.x, Hitbox.p1.y, Hitbox.p1.z, @@ -46,7 +52,7 @@ public: Hitbox.DifX() + 1, Hitbox.DifY() + 1, Hitbox.DifZ() + 1 ); } // itr - OutPieces[] - printf("Done.\n"); + LOG("Done."); // Free the placed pieces properly: Gen.FreePieces(OutPieces); @@ -385,7 +391,7 @@ cPlacedPiece * cPieceGenerator::PlaceStartingPiece(int a_BlockX, int a_BlockY, i else { // All pieces returned zero weight, but we need one to start. Choose with equal chance: - StartingPiece = StartingPieces[rnd % StartingPieces.size()]; + StartingPiece = StartingPieces[static_cast<size_t>(rnd) % StartingPieces.size()]; } rnd = rnd >> 16; @@ -394,9 +400,9 @@ cPlacedPiece * cPieceGenerator::PlaceStartingPiece(int a_BlockX, int a_BlockY, i int NumRotations = 1; for (size_t i = 1; i < ARRAYCOUNT(Rotations); i++) { - if (StartingPiece->CanRotateCCW((int)i)) + if (StartingPiece->CanRotateCCW(static_cast<int>(i))) { - Rotations[NumRotations] = (int)i; + Rotations[NumRotations] = static_cast<int>(i); NumRotations += 1; } } @@ -561,7 +567,10 @@ void cPieceGenerator::DebugConnectorPool(const cPieceGenerator::cFreeConnectors { printf(" Connector pool: " SIZE_T_FMT " items\n", a_ConnectorPool.size() - a_NumProcessed); size_t idx = 0; - for (cPieceGenerator::cFreeConnectors::const_iterator itr = a_ConnectorPool.begin() + a_NumProcessed, end = a_ConnectorPool.end(); itr != end; ++itr, ++idx) + + typedef cPieceGenerator::cFreeConnectors::difference_type difType; + + for (auto itr = a_ConnectorPool.cbegin() + static_cast<difType>(a_NumProcessed), end = a_ConnectorPool.cend(); itr != end; ++itr, ++idx) { printf(" " SIZE_T_FMT ": {%d, %d, %d}, type %d, direction %s, depth %d\n", idx, @@ -672,7 +681,10 @@ void cBFSPieceGenerator::PlacePieces(int a_BlockX, int a_BlockY, int a_BlockZ, i NumProcessed++; if (NumProcessed > 1000) { - ConnectorPool.erase(ConnectorPool.begin(), ConnectorPool.begin() + NumProcessed); + + typedef cPieceGenerator::cFreeConnectors::difference_type difType; + + ConnectorPool.erase(ConnectorPool.begin(), ConnectorPool.begin() + static_cast<difType>(NumProcessed)); NumProcessed = 0; } } diff --git a/src/Generating/Prefab.cpp b/src/Generating/Prefab.cpp index 761986690..e5e6a1e06 100644 --- a/src/Generating/Prefab.cpp +++ b/src/Generating/Prefab.cpp @@ -166,6 +166,45 @@ cPrefab::cPrefab(const cBlockArea & a_Image, int a_AllowedRotations) : +cPrefab::cPrefab(const cBlockArea & a_Image) : + m_Size(a_Image.GetSize()), + m_AllowedRotations(0), + m_MergeStrategy(cBlockArea::msOverwrite), + m_ShouldExtendFloor(false), + m_DefaultWeight(1), + m_AddWeightIfSame(0), + m_MoveToGround(false) +{ + m_HitBox.p1.Set(0, 0, 0); + m_HitBox.p2.Set(m_Size.x - 1, m_Size.y - 1, m_Size.z - 1); + m_BlockArea[0].CopyFrom(a_Image); +} + + + + + +cPrefab::cPrefab(const AString & a_BlockDefinitions, const AString & a_BlockData, int a_SizeX, int a_SizeY, int a_SizeZ) : + m_Size(a_SizeX, a_SizeY, a_SizeZ), + m_AllowedRotations(0), + m_MergeStrategy(cBlockArea::msOverwrite), + m_ShouldExtendFloor(false), + m_DefaultWeight(1), + m_AddWeightIfSame(0), + m_MoveToGround(false) +{ + m_HitBox.p1.Set(0, 0, 0); + m_HitBox.p2.Set(m_Size.x - 1, m_Size.y - 1, m_Size.z - 1); + m_BlockArea[0].Create(m_Size); + CharMap cm; + ParseCharMap(cm, a_BlockDefinitions.c_str()); + ParseBlockImage(cm, a_BlockData.c_str()); +} + + + + + void cPrefab::AddRotatedBlockAreas(void) { // 1 CCW rotation: @@ -326,6 +365,16 @@ void cPrefab::AddConnector(int a_RelX, int a_RelY, int a_RelZ, eBlockFace a_Dire +void cPrefab::SetAllowedRotations(int a_AllowedRotations) +{ + m_AllowedRotations = a_AllowedRotations; + AddRotatedBlockAreas(); +} + + + + + void cPrefab::ParseCharMap(CharMap & a_CharMapOut, const char * a_CharMapDef) { ASSERT(a_CharMapDef != nullptr); @@ -348,13 +397,13 @@ void cPrefab::ParseCharMap(CharMap & a_CharMapOut, const char * a_CharMapDef) LOGWARNING("Bad prefab CharMap definition line: \"%s\", skipping.", itr->c_str()); continue; } - unsigned char Src = (unsigned char)CharDef[0][0]; + unsigned char Src = static_cast<unsigned char>(CharDef[0][0]); ASSERT(a_CharMapOut[Src].m_BlockMeta == 16); // This letter has not been assigned yet? - a_CharMapOut[Src].m_BlockType = (BLOCKTYPE)atoi(CharDef[1].c_str()); + a_CharMapOut[Src].m_BlockType = static_cast<BLOCKTYPE>(atoi(CharDef[1].c_str())); NIBBLETYPE BlockMeta = 0; if ((NumElements >= 3) && !CharDef[2].empty()) { - BlockMeta = (NIBBLETYPE)atoi(CharDef[2].c_str()); + BlockMeta = static_cast<NIBBLETYPE>(atoi(CharDef[2].c_str())); ASSERT((BlockMeta <= 15)); } a_CharMapOut[Src].m_BlockMeta = BlockMeta; @@ -372,7 +421,7 @@ void cPrefab::ParseBlockImage(const CharMap & a_CharMap, const char * a_BlockIma { for (int z = 0; z < m_Size.z; z++) { - const unsigned char * BlockImage = (const unsigned char *)a_BlockImage + y * m_Size.x * m_Size.z + z * m_Size.x; + const unsigned char * BlockImage = reinterpret_cast<const unsigned char *>(a_BlockImage + y * m_Size.x * m_Size.z + z * m_Size.x); for (int x = 0; x < m_Size.x; x++) { const sBlockTypeDef & MappedValue = a_CharMap[BlockImage[x]]; @@ -424,7 +473,7 @@ void cPrefab::ParseConnectors(const char * a_ConnectorsDef) m_Connectors.push_back(cPiece::cConnector( atoi(Coords[0].c_str()), atoi(Coords[1].c_str()), atoi(Coords[2].c_str()), // Connector pos atoi(Defs[0].c_str()), // Connector type - (eBlockFace)BlockFace + static_cast<eBlockFace>(BlockFace) )); } // for itr - Lines[] } diff --git a/src/Generating/Prefab.h b/src/Generating/Prefab.h index eb905e78e..45af4b282 100644 --- a/src/Generating/Prefab.h +++ b/src/Generating/Prefab.h @@ -95,6 +95,13 @@ public: /** Creates a prefab based on the given BlockArea and allowed rotations. */ cPrefab(const cBlockArea & a_Image, int a_AllowedRotations); + /** Creates a prefab based on the given BlockArea. Allowed rotations can be added later on using SetAllowedRotations(). */ + cPrefab(const cBlockArea & a_Image); + + /** Creates a prefab based on the specified block data, using the char-to-block map in a_BlockDefinitions. + Allowed rotations can be added later on using SetAllowedRotations(). */ + cPrefab(const AString & a_BlockDefinitions, const AString & a_BlockData, int a_SizeX, int a_SizeY, int a_SizeZ); + /** Draws the prefab into the specified chunk, according to the placement stored in the PlacedPiece. */ void Draw(cChunkDesc & a_Dest, const cPlacedPiece * a_Placement) const; @@ -124,6 +131,21 @@ public: at the coords governed by the connectors. */ bool ShouldMoveToGround(void) const { return m_MoveToGround; } + /** Sets the m_AllowedRotations bitmask and fills the m_BlockArea[] with rotated versions of m_BlockArea[0]. */ + void SetAllowedRotations(int a_AllowedRotations); + + /** Parses the per-depth weight into m_DepthWeight member. */ + void ParseDepthWeight(const char * a_DepthWeightDef); + + /** Sets the merge strategy to be used when drawing the piece. */ + void SetMergeStrategy(cBlockArea::eMergeStrategy a_MergeStrategy) { m_MergeStrategy = a_MergeStrategy; } + + /** Sets the flag whether the prefab should be moved to ground level before being drawn. */ + void SetMoveToGround(bool a_MoveToGround) { m_MoveToGround = a_MoveToGround; } + + /** Sets the flag whether the lowest layer of the prefab should be repeated downwards until it hits a solid block. */ + void SetExtendFloor(bool a_ShouldExtendFloor) { m_ShouldExtendFloor = a_ShouldExtendFloor; } + protected: /** Packs complete definition of a single block, for per-letter assignment. */ struct sBlockTypeDef @@ -201,9 +223,6 @@ protected: /** Parses the connectors definition text into m_Connectors member. */ void ParseConnectors(const char * a_ConnectorsDef); - - /** Parses the per-depth weight into m_DepthWeight member. */ - void ParseDepthWeight(const char * a_DepthWeightDef); }; diff --git a/src/Generating/PrefabPiecePool.cpp b/src/Generating/PrefabPiecePool.cpp index 895555ef8..e2273aed3 100644 --- a/src/Generating/PrefabPiecePool.cpp +++ b/src/Generating/PrefabPiecePool.cpp @@ -5,6 +5,54 @@ #include "Globals.h" #include "PrefabPiecePool.h" +#include "../Bindings/LuaState.h" +#include "SelfTests.h" +#include "WorldStorage/SchematicFileSerializer.h" + + + + + +// Conditionally log a warning +#define CONDWARNING(ShouldLog, ...) \ + if (ShouldLog) \ + { \ + LOGWARNING(__VA_ARGS__); \ + } + + + + + +/** Returns the map of string => eMergeStrategy used when translating cubeset file merge strategies. */ +static std::map<AString, cBlockArea::eMergeStrategy> & GetMergeStrategyMap(void) +{ + static std::map<AString, cBlockArea::eMergeStrategy> msmap; + if (msmap.empty()) + { + // This is the first use, initialize the map: + msmap["msOverwrite"] = cBlockArea::msOverwrite; + msmap["msFillAir"] = cBlockArea::msFillAir; + msmap["msImprint"] = cBlockArea::msImprint; + msmap["msLake"] = cBlockArea::msLake; + msmap["msSpongePrint"] = cBlockArea::msSpongePrint; + msmap["msDifference"] = cBlockArea::msDifference; + msmap["msSimpleCompare"] = cBlockArea::msSimpleCompare; + msmap["msMask"] = cBlockArea::msMask; + } + return msmap; +} + + + + + +//////////////////////////////////////////////////////////////////////////////// +// cPrefabPiecePool: + +cPrefabPiecePool::cPrefabPiecePool(void) +{ +} @@ -26,6 +74,15 @@ cPrefabPiecePool::cPrefabPiecePool( +cPrefabPiecePool::cPrefabPiecePool(const AString & a_FileName, bool a_LogWarnings) +{ + LoadFromFile(a_FileName, a_LogWarnings); +} + + + + + cPrefabPiecePool::~cPrefabPiecePool() { Clear(); @@ -83,9 +140,69 @@ void cPrefabPiecePool::AddStartingPieceDefs(const cPrefab::sDef * a_StartingPiec +bool cPrefabPiecePool::LoadFromFile(const AString & a_FileName, bool a_LogWarnings) +{ + // Read the first 4 KiB of the file in order to auto-detect format: + cFile f; + if (!f.Open(a_FileName, cFile::fmRead)) + { + CONDWARNING(a_LogWarnings, "Cannot open file %s for reading", a_FileName.c_str()); + return false; + } + char buf[4096]; + auto len = f.Read(buf, sizeof(buf)); + f.Close(); + AString Header(buf, static_cast<size_t>(len)); + + if (Header.find("CubesetFormatVersion =") != AString::npos) + { + return LoadFromCubesetFile(a_FileName, a_LogWarnings); + } + CONDWARNING(a_LogWarnings, "Cannot load prefabs from file %s, unknown file format", a_FileName.c_str()); + return false; +} + + + + + +bool cPrefabPiecePool::LoadFromCubesetFile(const AString & a_FileName, bool a_LogWarnings) +{ + // Load the file in the Lua interpreter: + cLuaState Lua(Printf("LoadablePiecePool %s", a_FileName.c_str())); + Lua.Create(); + if (!Lua.LoadFile(a_FileName, a_LogWarnings)) + { + // Reason for failure has already been logged in LoadFile() + return false; + } + + // Check the version: + int Version = 0; + if (!Lua.GetNamedGlobal("Cubeset.Metadata.CubesetFormatVersion", Version)) + { + CONDWARNING(a_LogWarnings, "Cannot load cubeset %s, it doesn't contain version information.", a_FileName.c_str()); + return false; + } + + // Load the data, using the correct version loader: + if (Version == 1) + { + return LoadFromCubesetFileVer1(a_FileName, Lua, a_LogWarnings); + } + + // Unknown version: + CONDWARNING(a_LogWarnings, "Cannot load cubeset %s, version (%d) not supported.", a_FileName.c_str(), Version); + return false; +} + + + + + void cPrefabPiecePool::AddToPerConnectorMap(cPrefab * a_Prefab) { - cPiece::cConnectors Connectors = ((const cPiece *)a_Prefab)->GetConnectors(); + cPiece::cConnectors Connectors = (static_cast<const cPiece *>(a_Prefab))->GetConnectors(); for (cPiece::cConnectors::const_iterator itr = Connectors.begin(), end = Connectors.end(); itr != end; ++itr) { m_PiecesByConnector[itr->m_Type].push_back(a_Prefab); @@ -95,6 +212,377 @@ void cPrefabPiecePool::AddToPerConnectorMap(cPrefab * a_Prefab) + +bool cPrefabPiecePool::LoadFromCubesetFileVer1(const AString & a_FileName, cLuaState & a_LuaState, bool a_LogWarnings) +{ + // Load the metadata: + ApplyPoolMetadataCubesetVer1(a_FileName, a_LuaState, a_LogWarnings); + + // Push the Cubeset.Pieces global value on the stack: + lua_getglobal(a_LuaState, "_G"); + cLuaState::cStackValue stk(a_LuaState); + auto pieces = a_LuaState.WalkToValue("Cubeset.Pieces"); + if (!pieces.IsValid() || !lua_istable(a_LuaState, -1)) + { + CONDWARNING(a_LogWarnings, "The cubeset file %s doesn't contain any pieces", a_FileName.c_str()); + return false; + } + + // Iterate over all items in the Cubeset.Pieces value: + int idx = 1; + bool res = true; + while (true) + { + lua_pushinteger(a_LuaState, idx); // stk: [Pieces] [idx] + lua_gettable(a_LuaState, -2); // stk: [Pieces] [PieceItem] + if (!lua_istable(a_LuaState, -1)) + { + // The PieceItem is not present, we've iterated over all items + lua_pop(a_LuaState, 1); // stk: [Pieces] + break; + } + if (!LoadCubesetPieceVer1(a_FileName, a_LuaState, idx, a_LogWarnings)) + { + res = false; + } + lua_pop(a_LuaState, 1); // stk: [Pieces] + idx += 1; + } + return res; +} + + + + + +bool cPrefabPiecePool::LoadCubesetPieceVer1(const AString & a_FileName, cLuaState & a_LuaState, int a_PieceIndex, bool a_LogWarnings) +{ + ASSERT(lua_istable(a_LuaState, -1)); + + // The piece name is optional, but useful for debugging messages: + AString PieceName; + if (!a_LuaState.GetNamedValue("OriginData.ExportName", PieceName)) + { + Printf(PieceName, "Piece #%d", a_PieceIndex); + } + + // Read the hitbox dimensions: + cCuboid Hitbox; + if ( + !a_LuaState.GetNamedValue("Hitbox.MinX", Hitbox.p1.x) || + !a_LuaState.GetNamedValue("Hitbox.MinY", Hitbox.p1.y) || + !a_LuaState.GetNamedValue("Hitbox.MinZ", Hitbox.p1.z) || + !a_LuaState.GetNamedValue("Hitbox.MaxX", Hitbox.p2.x) || + !a_LuaState.GetNamedValue("Hitbox.MaxY", Hitbox.p2.y) || + !a_LuaState.GetNamedValue("Hitbox.MaxZ", Hitbox.p2.z) + ) + { + CONDWARNING(a_LogWarnings, "Cannot load piece %s from file %s, it's missing hitbox information", PieceName.c_str(), a_FileName.c_str()); + return false; + } + + // Load the prefab data: + auto prefab = LoadPrefabFromCubesetVer1(a_FileName, a_LuaState, PieceName, a_LogWarnings); + if (prefab == nullptr) + { + return false; + } + + // Read the connectors + if (!ReadConnectorsCubesetVer1(a_FileName, a_LuaState, PieceName, prefab.get(), a_LogWarnings)) + { + return false; + } + + // Read the allowed rotations. It is an optional metadata value, default to 0: + int AllowedRotations = 0; + a_LuaState.GetNamedValue("Metadata.AllowedRotations", AllowedRotations); + prefab->SetAllowedRotations(AllowedRotations); + + // Apply the relevant metadata: + if (!ApplyPieceMetadataCubesetVer1(a_FileName, a_LuaState, PieceName, prefab.get(), a_LogWarnings)) + { + return false; + } + + // Add the prefab into the list of pieces: + int IsStartingPiece = 0; + a_LuaState.GetNamedValue("Metadata.IsStarting", IsStartingPiece); + if (IsStartingPiece != 0) + { + m_StartingPieces.push_back(prefab.release()); + } + else + { + auto p = prefab.release(); + m_AllPieces.push_back(p); + AddToPerConnectorMap(p); + } + return true; +} + + + + + +UniquePtr<cPrefab> cPrefabPiecePool::LoadPrefabFromCubesetVer1( + const AString & a_FileName, + cLuaState & a_LuaState, + const AString & a_PieceName, + bool a_LogWarnings +) +{ + // First try loading a referenced schematic file, if any: + AString SchematicFileName; + if (a_LuaState.GetNamedValue("SchematicFileName", SchematicFileName)) + { + auto PathEnd = a_FileName.find_last_of("/\\"); // Find the last path separator + if (PathEnd != AString::npos) + { + SchematicFileName = a_FileName.substr(0, PathEnd) + SchematicFileName; + } + cBlockArea area; + if (!cSchematicFileSerializer::LoadFromSchematicFile(area, SchematicFileName)) + { + CONDWARNING(a_LogWarnings, "Cannot load schematic file \"%s\" for piece %s in cubeset %s.", + SchematicFileName.c_str(), a_PieceName.c_str(), a_FileName.c_str() + ); + return nullptr; + } + return cpp14::make_unique<cPrefab>(area); + } // if (SchematicFileName) + + // There's no referenced schematic file, load from BlockDefinitions / BlockData. + // Get references to the data and the table.concat function: + cLuaState::cRef TableConcat, BlockDefinitions, BlockData; + if ( + !a_LuaState.GetNamedGlobal("table.concat", TableConcat) || + !a_LuaState.GetNamedValue("BlockDefinitions", BlockDefinitions) || + !a_LuaState.GetNamedValue("BlockData", BlockData) + ) + { + CONDWARNING(a_LogWarnings, "Cannot parse block data for piece %s in cubeset %s", a_PieceName.c_str(), a_FileName.c_str()); + return nullptr; + } + + // Call table.concat() on the BlockDefinitions: + AString BlockDefStr; + if (!a_LuaState.Call(TableConcat, BlockDefinitions, "\n", cLuaState::Return, BlockDefStr)) + { + CONDWARNING(a_LogWarnings, "Cannot concat block definitions for piece %s in cubeset %s", a_PieceName.c_str(), a_FileName.c_str()); + return nullptr; + } + + // Call table.concat() on the BlockData: + AString BlockDataStr; + if (!a_LuaState.Call(TableConcat, BlockData, "", cLuaState::Return, BlockDataStr)) + { + CONDWARNING(a_LogWarnings, "Cannot concat block data for piece %s in cubeset %s", a_PieceName.c_str(), a_FileName.c_str()); + return nullptr; + } + + // Read the size: + int SizeX = 0, SizeY = 0, SizeZ = 0; + if ( + !a_LuaState.GetNamedValue("Size.x", SizeX) || + !a_LuaState.GetNamedValue("Size.y", SizeY) || + !a_LuaState.GetNamedValue("Size.z", SizeZ) + ) + { + CONDWARNING(a_LogWarnings, "Cannot load piece %s from file %s, its size information is missing", a_PieceName.c_str(), a_FileName.c_str()); + return nullptr; + } + + // Check that the size matches the data length: + if (static_cast<size_t>(SizeX * SizeY * SizeZ) != BlockDataStr.size()) + { + CONDWARNING(a_LogWarnings, "Cannot create piece %s from file %s, its size (%d) doesn't match the blockdata length (%u)", + a_PieceName.c_str(), a_FileName.c_str(), + SizeX * SizeY * SizeZ, static_cast<unsigned>(BlockDataStr.size()) + ); + return nullptr; + } + + return cpp14::make_unique<cPrefab>(BlockDefStr, BlockDataStr, SizeX, SizeY, SizeZ); +} + + + + + +bool cPrefabPiecePool::ReadConnectorsCubesetVer1( + const AString & a_FileName, + cLuaState & a_LuaState, + const AString & a_PieceName, + cPrefab * a_Prefab, + bool a_LogWarnings +) +{ + // Get the Connectors subtable: + auto conns = a_LuaState.WalkToValue("Connectors"); + if (!conns.IsValid()) + { + CONDWARNING(a_LogWarnings, "Cannot load piece %s from file %s, it has no connectors definition.", a_PieceName.c_str(), a_FileName.c_str()); + return false; + } + + // Iterate over all items in the Connectors table: + int idx = 1; + bool res = true; + while (true) + { + lua_pushinteger(a_LuaState, idx); // stk: [Connectors] [idx] + lua_gettable(a_LuaState, -2); // stk: [Connectors] [conn] + if (!lua_istable(a_LuaState, -1)) + { + // The connector is not present, we've iterated over all items + lua_pop(a_LuaState, 1); // stk: [Connectors] + break; + } + int Type = 0, RelX = 0, RelY = 0, RelZ = 0; + eBlockFace Direction = BLOCK_FACE_NONE; + if ( + !a_LuaState.GetNamedValue("Type", Type) || + !a_LuaState.GetNamedValue("RelX", RelX) || + !a_LuaState.GetNamedValue("RelY", RelY) || + !a_LuaState.GetNamedValue("RelZ", RelZ) || + !a_LuaState.GetNamedValue("Direction", Direction) + ) + { + CONDWARNING(a_LogWarnings, "Piece %s in file %s has a malformed Connector at index %d. Skipping the connector.", a_PieceName.c_str(), a_FileName.c_str(), idx); + res = false; + continue; + } + a_Prefab->AddConnector(RelX, RelY, RelZ, Direction, Type); + lua_pop(a_LuaState, 1); // stk: [Connectors] + idx += 1; + } + return res; +} + + + + + +bool cPrefabPiecePool::ApplyPieceMetadataCubesetVer1( + const AString & a_FileName, + cLuaState & a_LuaState, + const AString & a_PieceName, + cPrefab * a_Prefab, + bool a_LogWarnings +) +{ + // Push the Metadata table on top of the Lua stack: + auto md = a_LuaState.WalkToValue("Metadata"); + if (!md.IsValid()) + { + return false; + } + + // Get the values: + int AddWeightIfSame = 0, DefaultWeight = 100, MoveToGround = 0, ShouldExpandFloor = 0; + AString DepthWeight, MergeStrategy; + a_LuaState.GetNamedValue("AddWeightIfSame", AddWeightIfSame); + a_LuaState.GetNamedValue("DefaultWeight", DefaultWeight); + a_LuaState.GetNamedValue("DepthWeight", DepthWeight); + a_LuaState.GetNamedValue("MergeStrategy", MergeStrategy); + a_LuaState.GetNamedValue("MoveToGround", MoveToGround); + a_LuaState.GetNamedValue("ShouldExpandFloor", ShouldExpandFloor); + + // Apply the values: + a_Prefab->SetAddWeightIfSame(AddWeightIfSame); + a_Prefab->SetDefaultWeight(DefaultWeight); + a_Prefab->ParseDepthWeight(DepthWeight.c_str()); + auto msmap = GetMergeStrategyMap(); + auto strategy = msmap.find(MergeStrategy); + if (strategy == msmap.end()) + { + CONDWARNING(a_LogWarnings, "Unknown merge strategy (\"%s\") specified for piece %s in file %s. Using msSpongePrint instead.", + MergeStrategy.c_str(), a_PieceName.c_str(), a_FileName.c_str() + ); + a_Prefab->SetMergeStrategy(cBlockArea::msSpongePrint); + } + else + { + a_Prefab->SetMergeStrategy(strategy->second); + } + a_Prefab->SetMoveToGround(MoveToGround != 0); + a_Prefab->SetExtendFloor(ShouldExpandFloor != 0); + + return true; +} + + + + + +bool cPrefabPiecePool::ApplyPoolMetadataCubesetVer1( + const AString & a_FileName, + cLuaState & a_LuaState, + bool a_LogWarnings +) +{ + // Push the Cubeset.Metadata table on top of the Lua stack: + lua_getglobal(a_LuaState, "_G"); + auto md = a_LuaState.WalkToValue("Cubeset.Metadata"); + if (!md.IsValid()) + { + CONDWARNING(a_LogWarnings, "Cannot load cubeset from file %s: Cubeset.Metadata table is missing", a_FileName.c_str()); + return false; + } + + // Set the metadata values to defaults: + m_MinDensity = 100; + m_MaxDensity = 100; + m_VillageRoadBlockType = E_BLOCK_GRAVEL; + m_VillageRoadBlockMeta = 0; + m_VillageWaterRoadBlockType = E_BLOCK_PLANKS; + m_VillageWaterRoadBlockMeta = 0; + + // Read the metadata values: + a_LuaState.GetNamedValue("IntendedUse", m_IntendedUse); + a_LuaState.GetNamedValue("MaxDensity", m_MaxDensity); + a_LuaState.GetNamedValue("MinDensity", m_MinDensity); + a_LuaState.GetNamedValue("VillageRoadBlockType", m_VillageRoadBlockType); + a_LuaState.GetNamedValue("VillageRoadBlockMeta", m_VillageRoadBlockMeta); + a_LuaState.GetNamedValue("VillageWaterRoadBlockType", m_VillageWaterRoadBlockType); + a_LuaState.GetNamedValue("VillageWaterRoadBlockMeta", m_VillageWaterRoadBlockMeta); + AString allowedBiomes; + if (a_LuaState.GetNamedValue("AllowedBiomes", allowedBiomes)) + { + auto biomes = StringSplitAndTrim(allowedBiomes, ","); + for (const auto & biome: biomes) + { + EMCSBiome b = StringToBiome(biome); + if (b == biInvalidBiome) + { + CONDWARNING(a_LogWarnings, "Invalid biome (\"%s\") specified in AllowedBiomes in cubeset file %s. Skipping the biome.", + biome.c_str(), a_FileName.c_str() + ); + continue; + } + m_AllowedBiomes.insert(b); + } + } + else + { + // All biomes are allowed: + for (int b = biFirstBiome; b <= biMaxBiome; b++) + { + m_AllowedBiomes.insert(static_cast<EMCSBiome>(b)); + } + for (int b = biFirstVariantBiome; b <= biMaxVariantBiome; b++) + { + m_AllowedBiomes.insert(static_cast<EMCSBiome>(b)); + } + } + return true; +} + + + + + cPieces cPrefabPiecePool::GetPiecesWithConnector(int a_ConnectorType) { return m_PiecesByConnector[a_ConnectorType]; @@ -122,7 +610,7 @@ cPieces cPrefabPiecePool::GetStartingPieces(void) int cPrefabPiecePool::GetPieceWeight(const cPlacedPiece & a_PlacedPiece, const cPiece::cConnector & a_ExistingConnector, const cPiece & a_NewPiece) { - return ((const cPrefab &)a_NewPiece).GetPieceWeight(a_PlacedPiece, a_ExistingConnector); + return (static_cast<const cPrefab &>(a_NewPiece)).GetPieceWeight(a_PlacedPiece, a_ExistingConnector); } @@ -131,7 +619,7 @@ int cPrefabPiecePool::GetPieceWeight(const cPlacedPiece & a_PlacedPiece, const c int cPrefabPiecePool::GetStartingPieceWeight(const cPiece & a_NewPiece) { - return ((const cPrefab &)a_NewPiece).GetDefaultWeight(); + return (static_cast<const cPrefab &>(a_NewPiece)).GetDefaultWeight(); } diff --git a/src/Generating/PrefabPiecePool.h b/src/Generating/PrefabPiecePool.h index b9c1f0483..f7bf41994 100644 --- a/src/Generating/PrefabPiecePool.h +++ b/src/Generating/PrefabPiecePool.h @@ -9,6 +9,7 @@ #pragma once +#include <unordered_set> #include "PieceGenerator.h" #include "Prefab.h" @@ -16,6 +17,13 @@ +// fwd: +class cLuaState; + + + + + class cPrefabPiecePool : public cPiecePool { @@ -34,6 +42,10 @@ public: const cPrefab::sDef * a_StartingPieceDefs, size_t a_NumStartingPieceDefs ); + /** Creates a pool and loads the contents of the specified file into it. + If a_LogWarnings is true, logs a warning to console when loading fails. */ + cPrefabPiecePool(const AString & a_FileName, bool a_LogWarnings); + /** Destroys the pool, freeing all pieces. */ ~cPrefabPiecePool(); @@ -50,6 +62,40 @@ public: May be called multiple times with different PieceDefs, will add all such pieces. */ void AddStartingPieceDefs(const cPrefab::sDef * a_StartingPieceDefs, size_t a_NumStartingPieceDefs); + /** Loads the pieces from the specified file. Returns true if successful, false on error. + If a_LogWarnings is true, logs a warning to console when loading fails. */ + bool LoadFromFile(const AString & a_FileName, bool a_LogWarnings); + + /** Loads the pieces from the specified Cubeset file. Returns true if successful, false on error. + If a_LogWarnings is true, logs a warning to console when loading fails. */ + bool LoadFromCubesetFile(const AString & a_FileName, bool a_LogWarnings); + + /** Returns the number of regular (non-starting) pieces. */ + size_t GetAllPiecesCount(void) const { return m_AllPieces.size(); } + + /** Returns the number of starting pieces. */ + size_t GetStartingPiecesCount(void) const { return m_StartingPieces.size(); } + + // Metadata accessors: + const AString & GetIntendedUse(void) const { return m_IntendedUse; } + int GetMinDensity(void) const { return m_MinDensity; } + int GetMaxDensity(void) const { return m_MaxDensity; } + BLOCKTYPE GetVillageRoadBlockType (void) const { return m_VillageRoadBlockType; } + NIBBLETYPE GetVillageRoadBlockMeta (void) const { return m_VillageRoadBlockMeta; } + BLOCKTYPE GetVillageWaterRoadBlockType(void) const { return m_VillageWaterRoadBlockType; } + NIBBLETYPE GetVillageWaterRoadBlockMeta(void) const { return m_VillageWaterRoadBlockMeta; } + + /** Returns true if a_Biome is among the accepted biomes in the m_AcceptedBiomes metadata member. */ + bool IsBiomeAllowed(EMCSBiome a_Biome) const { return (m_AllowedBiomes.find(a_Biome) != m_AllowedBiomes.end()); } + + // cPiecePool overrides: + virtual cPieces GetPiecesWithConnector(int a_ConnectorType) override; + virtual cPieces GetStartingPieces(void) override; + virtual int GetPieceWeight(const cPlacedPiece & a_PlacedPiece, const cPiece::cConnector & a_ExistingConnector, const cPiece & a_NewPiece) override; + virtual int GetStartingPieceWeight(const cPiece & a_NewPiece) override; + virtual void PiecePlaced(const cPiece & a_Piece) override; + virtual void Reset(void) override; + protected: /** The type used to map a connector type to the list of pieces with that connector */ @@ -67,17 +113,97 @@ protected: The pieces are copies out of m_AllPieces and shouldn't be ever delete-d. */ cPiecesMap m_PiecesByConnector; + /** The intended use of this piece pool, as specified by the pool's metadata. */ + AString m_IntendedUse; + + /** The minimum density, as read from the metadata. */ + int m_MinDensity; + + /** The maximum density, as read from the metadata. */ + int m_MaxDensity; + + /** The block type to use for the village roads. */ + BLOCKTYPE m_VillageRoadBlockType; + + /** The block meta to use for the village roads. */ + NIBBLETYPE m_VillageRoadBlockMeta; + + /** The block type used for the village roads if the road is on water. */ + BLOCKTYPE m_VillageWaterRoadBlockType; + + /** The block meta used for the village roads if the road is on water. */ + NIBBLETYPE m_VillageWaterRoadBlockMeta; + + /** A set of allowed biomes for the pool. The pool will only be used within the specified biomes. */ + std::unordered_set<EMCSBiome, BiomeHasher> m_AllowedBiomes; + /** Adds the prefab to the m_PiecesByConnector map for all its connectors. */ void AddToPerConnectorMap(cPrefab * a_Prefab); + + /** Loads the pieces from the cubeset file parsed into the specified Lua state. + Returns true on success, false on error. + If a_LogWarnings is true, logs a warning to console when loading fails. */ + bool LoadFromCubesetFileVer1(const AString & a_FileName, cLuaState & a_LuaState, bool a_LogWarnings); + + /** Loads a single piece from the cubeset file parsed into the specified Lua state. + The piece's definition table is expected to be at the top of the Lua stack. + Returns true on success, false on error. + a_PieceIndex is the index of the piece, in the Pieces table. It is used for logging only. + If a_LogWarnings is true, logs a warning to console when loading fails. */ + bool LoadCubesetPieceVer1(const AString & a_FileName, cLuaState & a_LuaState, int a_PieceIndex, bool a_LogWarnings); + + /** Loads a single piece's prefab from the cubeset file parsed into the specified Lua state. + The piece's definition table is expected to be at the top of the Lua stack. + Returns the prefab on success, nullptr on failure. + a_PieceName is the identification of the piece, used for logging only. + If a_LogWarnings is true, logs a warning to console when loading fails. */ + UniquePtr<cPrefab> LoadPrefabFromCubesetVer1( + const AString & a_FileName, + cLuaState & a_LuaState, + const AString & a_PieceName, + bool a_LogWarnings + ); - // cPiecePool overrides: - virtual cPieces GetPiecesWithConnector(int a_ConnectorType) override; - virtual cPieces GetStartingPieces(void) override; - virtual int GetPieceWeight(const cPlacedPiece & a_PlacedPiece, const cPiece::cConnector & a_ExistingConnector, const cPiece & a_NewPiece) override; - virtual int GetStartingPieceWeight(const cPiece & a_NewPiece) override; - virtual void PiecePlaced(const cPiece & a_Piece) override; - virtual void Reset(void) override; + /** Reads a single piece's connectors from the cubeset file parsed into the specified Lua state. + The piece's definition table is expected to be at the top of the Lua stack. + Returns true on success, false on failure. + The connectors are added into the a_Prefab object. + No Connectors table is considered a failure, empty Connectors table is considered a success. + If any of the connectors are malformed, it is considered a failure, although the rest of the connectors will still load. + a_PieceName is the identification of the piece, used for logging only. + If a_LogWarnings is true, logs a warning to console when loading fails. */ + bool ReadConnectorsCubesetVer1( + const AString & a_FileName, + cLuaState & a_LuaState, + const AString & a_PieceName, + cPrefab * a_Prefab, + bool a_LogWarnings + ); + + /** Reads a single piece's metadata from the cubeset file parsed into the specified Lua state. + The piece's definition table is expected to be at the top of the Lua stack. + Returns true on success, false on failure. + The metadata is applied into the a_Prefab object. + a_PieceName is the identification of the piece, used for logging only. + If a_LogWarnings is true, logs a warning to console when loading fails. */ + bool ApplyPieceMetadataCubesetVer1( + const AString & a_FileName, + cLuaState & a_LuaState, + const AString & a_PieceName, + cPrefab * a_Prefab, + bool a_LogWarnings + ); + + /** Reads the metadata for the entire pool from the cubeset file parsed into the specified Lua state. + Returns true on success, false on failure. + The metadata is applied into "this". + If a_LogWarnings is true, logs a warning to console when loading fails. */ + bool ApplyPoolMetadataCubesetVer1( + const AString & a_FileName, + cLuaState & a_LuaState, + bool a_LogWarnings + ); } ; diff --git a/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp b/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp deleted file mode 100644 index c08e53ef6..000000000 --- a/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp +++ /dev/null @@ -1,3590 +0,0 @@ - -// AlchemistVillagePrefabs.cpp - -// Defines the prefabs in the group AlchemistVillage - -// NOTE: This file has been generated automatically by GalExport! -// Any manual changes will be overwritten by the next automatic export! - -#include "Globals.h" -#include "AlchemistVillagePrefabs.h" - - - - - -const cPrefab::sDef g_AlchemistVillagePrefabs[] = -{ - //////////////////////////////////////////////////////////////////////////////// - // BarWithBasement: - // The data has been exported from the gallery Desert, area index 82, ID 598, created by STR_Warrior - { - // Size: - 11, 12, 10, // SizeX = 11, SizeY = 12, SizeZ = 10 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 11, 11, 10, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "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: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 */ "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 */ "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 */ "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 */ "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 */ "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 */ "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 */ "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 */ "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 */ "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 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ ".accDDDcca." - /* 4 */ ".c.......c." - /* 5 */ ".D.......D." - /* 6 */ ".c.......c." - /* 7 */ ".aEcDDDcca." - /* 8 */ "..........." - /* 9 */ "..........." - - // Level 10 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ ".accMMMcca." - /* 4 */ ".cIIIIIIIc." - /* 5 */ ".uIIIIIIIs." - /* 6 */ ".cIIIIIIIc." - /* 7 */ ".accJJJcca." - /* 8 */ "..........." - /* 9 */ "..........." - - // Level 11 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ ".cKKKcKKKc." - /* 4 */ ".K.......K." - /* 5 */ ".c.......c." - /* 6 */ ".K.......K." - /* 7 */ ".cKKKcKKKc." - /* 8 */ "..........." - /* 9 */ "...........", - - // Connectors: - "-1: 5, 5, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 70, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // BarWithBasement - - - - //////////////////////////////////////////////////////////////////////////////// - // BarWithoutBasement: - // The data has been exported from the gallery Desert, area index 81, ID 597, created by STR_Warrior - { - // Size: - 11, 9, 10, // SizeX = 11, SizeY = 9, SizeZ = 10 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 11, 8, 10, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "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: 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: 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 */ "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 */ "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 */ "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 */ "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 */ "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 */ ".accvvvcca." - /* 4 */ ".c.......c." - /* 5 */ ".v.......v." - /* 6 */ ".c.......c." - /* 7 */ ".awcvvvcca." - /* 8 */ "..........." - /* 9 */ "..........." - - // Level 7 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ ".accEEEcca." - /* 4 */ ".cAAAAAAAc." - /* 5 */ ".hAAAAAAAf." - /* 6 */ ".cAAAAAAAc." - /* 7 */ ".accBBBcca." - /* 8 */ "..........." - /* 9 */ "..........." - - // Level 8 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ ".cCCCcCCCc." - /* 4 */ ".C.......C." - /* 5 */ ".c.......c." - /* 6 */ ".C.......C." - /* 7 */ ".cCCCcCCCc." - /* 8 */ "..........." - /* 9 */ "...........", - - // Connectors: - "-1: 5, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 80, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // BarWithoutBasement - - - - //////////////////////////////////////////////////////////////////////////////// - // BlackSmith: - // The data has been exported from the gallery Desert, area index 97, ID 642, created by STR_Warrior - { - // Size: - 11, 6, 13, // SizeX = 11, SizeY = 6, SizeZ = 13 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 11, 5, 13, // 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: 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: 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 */ "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 */ "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 */ "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 */ "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 */ "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, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 50, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - false, - }, // BlackSmith - - - - //////////////////////////////////////////////////////////////////////////////// - // LargeHouse1: - // The data has been exported from the gallery Desert, area index 77, ID 577, created by STR_Warrior - { - // Size: - 15, 14, 11, // SizeX = 15, SizeY = 14, SizeZ = 11 - - // Hitbox (relative to bounding box): - -1, 0, -1, // MinX, MinY, MinZ - 14, 13, 11, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "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: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: 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 */ "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 */ "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 */ "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 */ "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 */ "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 */ ".....abbpbba..." - /* 2 */ ".....p.....p..." - /* 3 */ ".....p.....p..." - /* 4 */ ".....p.....p..." - /* 5 */ ".....abb.bba..." - /* 6 */ "..............." - /* 7 */ "..............." - /* 8 */ "..............." - /* 9 */ "..............." - /* 10 */ "..............." - - // Level 7 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".....abbwbba..." - /* 2 */ ".....BxxxxxC..." - /* 3 */ ".....BxxxxxC..." - /* 4 */ ".....BxxxxxC..." - /* 5 */ ".....abbbbba..." - /* 6 */ "..............." - /* 7 */ "..............." - /* 8 */ "..............." - /* 9 */ "..............." - /* 10 */ "..............." - - // Level 8 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".....bEEbEEb..." - /* 2 */ ".....E.bbb.E..." - /* 3 */ ".....b.bbb.b..." - /* 4 */ ".....E.bbb.E..." - /* 5 */ ".....bEEbEEb..." - /* 6 */ "..............." - /* 7 */ "..............." - /* 8 */ "..............." - /* 9 */ "..............." - /* 10 */ "..............." - - // Level 9 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ ".......aFa....." - /* 3 */ ".......GHy....." - /* 4 */ ".......aIa....." - /* 5 */ "..............." - /* 6 */ "..............." - /* 7 */ "..............." - /* 8 */ "..............." - /* 9 */ "..............." - /* 10 */ "..............." - - // Level 10 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ ".......a.a....." - /* 3 */ "........J......" - /* 4 */ ".......a.a....." - /* 5 */ "..............." - /* 6 */ "..............." - /* 7 */ "..............." - /* 8 */ "..............." - /* 9 */ "..............." - /* 10 */ "..............." - - // Level 11 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ ".......awa....." - /* 3 */ ".......B.C....." - /* 4 */ ".......aDa....." - /* 5 */ "..............." - /* 6 */ "..............." - /* 7 */ "..............." - /* 8 */ "..............." - /* 9 */ "..............." - /* 10 */ "..............." - - // Level 12 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ ".......bbb....." - /* 3 */ ".......bKb....." - /* 4 */ ".......bbb....." - /* 5 */ "..............." - /* 6 */ "..............." - /* 7 */ "..............." - /* 8 */ "..............." - /* 9 */ "..............." - /* 10 */ "..............." - - // Level 13 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ ".......E.E....." - /* 3 */ "..............." - /* 4 */ ".......E.E....." - /* 5 */ "..............." - /* 6 */ "..............." - /* 7 */ "..............." - /* 8 */ "..............." - /* 9 */ "..............." - /* 10 */ "...............", - - // Connectors: - "-1: 14, 2, 3: 5\n" /* Type -1, direction X+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 60, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // LargeHouse1 - - - - //////////////////////////////////////////////////////////////////////////////// - // LargeTower: - // The data has been exported from the gallery Desert, area index 80, ID 596, created by STR_Warrior - { - // Size: - 7, 12, 7, // SizeX = 7, SizeY = 12, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 7, 11, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "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: 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 */ "mabbbam" - /* 1 */ "aacdcaa" - /* 2 */ "madddam" - /* 3 */ "madddam" - /* 4 */ "madddam" - /* 5 */ "aaaaaaa" - /* 6 */ "mammmam" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "maeeeam" - /* 1 */ "aacdcaa" - /* 2 */ "madddam" - /* 3 */ "madddam" - /* 4 */ "madddam" - /* 5 */ "aaaaaaa" - /* 6 */ "mammmam" - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ "mf...fm" - /* 1 */ "ghaiahj" - /* 2 */ "ma...am" - /* 3 */ "ma...am" - /* 4 */ "ma...am" - /* 5 */ "ghaaahj" - /* 6 */ "mkmmmkm" - - // Level 3 - /* z\x* 0123456 */ - /* 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 */ "..pap.." - /* 2 */ ".q...r." - /* 3 */ ".a...a." - /* 4 */ ".q.s.r." - /* 5 */ "..tat.." - /* 6 */ "......." - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "..aua.." - /* 2 */ ".a...a." - /* 3 */ ".u...u." - /* 4 */ ".a...a." - /* 5 */ "..aua.." - /* 6 */ "......." - - // Level 6 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "..aua.." - /* 2 */ ".a...a." - /* 3 */ ".u...u." - /* 4 */ ".a...a." - /* 5 */ "..aua.." - /* 6 */ "......." - - // Level 7 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "..aua.." - /* 2 */ ".a...a." - /* 3 */ ".u...u." - /* 4 */ ".a...a." - /* 5 */ "..aua.." - /* 6 */ "......." - - // Level 8 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "..faf.." - /* 2 */ ".g...j." - /* 3 */ ".a...a." - /* 4 */ ".g...j." - /* 5 */ "..kak.." - /* 6 */ "......." - - // Level 9 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".aavaa." - /* 2 */ ".a...a." - /* 3 */ ".v...v." - /* 4 */ ".a...a." - /* 5 */ ".aavaa." - /* 6 */ "......." - - // Level 10 - /* z\x* 0123456 */ - /* 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 */ "w..x..w" - /* 4 */ "......." - /* 5 */ ".w...w." - /* 6 */ "...w...", - - // Connectors: - "-1: 3, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // LargeTower - - - - //////////////////////////////////////////////////////////////////////////////// - // LittleHouse: - // The data has been exported from the gallery Desert, area index 65, ID 551, created by STR_Warrior - { - // Size: - 5, 6, 7, // SizeX = 5, SizeY = 6, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 5, 5, 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: 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: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 */ "abbba" - /* 1 */ "mbbbm" - /* 2 */ "accca" - /* 3 */ "ccccc" - /* 4 */ "ccccc" - /* 5 */ "ccccc" - /* 6 */ "accca" - - // Level 1 - /* z\x* 01234 */ - /* 0 */ "addda" - /* 1 */ "mdddm" - /* 2 */ "aceca" - /* 3 */ "ceeec" - /* 4 */ "ceeec" - /* 5 */ "ceeec" - /* 6 */ "accca" - - // Level 2 - /* z\x* 01234 */ - /* 0 */ "a...a" - /* 1 */ "....." - /* 2 */ "acfca" - /* 3 */ "c...c" - /* 4 */ "c...c" - /* 5 */ "cg.hc" - /* 6 */ "accca" - - // Level 3 - /* z\x* 01234 */ - /* 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 */ "crcrc" - /* 3 */ "r...r" - /* 4 */ "c...c" - /* 5 */ "r..sr" - /* 6 */ "crcrc", - - // Connectors: - "-1: 2, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // LittleHouse - - - - //////////////////////////////////////////////////////////////////////////////// - // LittleHouse2: - // The data has been exported from the gallery Desert, area index 72, ID 562, created by STR_Warrior - { - // Size: - 7, 6, 11, // SizeX = 7, SizeY = 6, SizeZ = 11 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 7, 5, 11, // 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: 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: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 */ "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 */ "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 */ "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 4 - /* z\x* 0123456 */ - /* 0 */ "mn...nm" - /* 1 */ "mc...cm" - /* 2 */ "acoccca" - /* 3 */ "cpppppc" - /* 4 */ "qpppppr" - /* 5 */ "chppppc" - /* 6 */ "acccsca" - /* 7 */ "......." - /* 8 */ "......." - /* 9 */ "......." - /* 10 */ "......." - - // Level 5 - /* z\x* 0123456 */ - /* 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, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // LittleHouse2 - - - - //////////////////////////////////////////////////////////////////////////////// - // LittleHouse3: - // The data has been exported from the gallery Desert, area index 66, ID 553, created by STR_Warrior - { - // Size: - 9, 6, 7, // SizeX = 9, SizeY = 6, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 9, 5, 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: 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: 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 */ "mmabbbamm" - /* 1 */ "mmmbbbmmm" - /* 2 */ "accccccca" - /* 3 */ "ccccccccc" - /* 4 */ "ccccccccc" - /* 5 */ "ccccccccc" - /* 6 */ "accccccca" - - // Level 1 - /* z\x* 012345678 */ - /* 0 */ "mmadddamm" - /* 1 */ "mmmdddmmm" - /* 2 */ "accceccca" - /* 3 */ "ceeeeeeec" - /* 4 */ "ceeeeeeec" - /* 5 */ "ceeeeeeec" - /* 6 */ "accccccca" - - // Level 2 - /* z\x* 012345678 */ - /* 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 */ "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 */ "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, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // LittleHouse3 - - - - //////////////////////////////////////////////////////////////////////////////// - // LittleHouse4: - // The data has been exported from the gallery Desert, area index 70, ID 560, created by STR_Warrior - { - // Size: - 5, 6, 11, // SizeX = 5, SizeY = 6, SizeZ = 11 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 5, 5, 11, // 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: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: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 */ "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 */ "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 */ "a...a" - /* 1 */ "....." - /* 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 */ "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 */ "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, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // LittleHouse4 - - - - //////////////////////////////////////////////////////////////////////////////// - // LittleHouse5: - // The data has been exported from the gallery Desert, area index 68, ID 558, created by STR_Warrior - { - // Size: - 9, 6, 9, // SizeX = 9, SizeY = 6, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 9, 5, 9, // 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: 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: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 */ "mmmmabbba" - /* 1 */ "mmmmmbbbm" - /* 2 */ "mmmmaccca" - /* 3 */ "mmmmccccc" - /* 4 */ "acccacccc" - /* 5 */ "ccccccccc" - /* 6 */ "ccccccccc" - /* 7 */ "ccccccccc" - /* 8 */ "accccccca" - - // Level 1 - /* z\x* 012345678 */ - /* 0 */ "mmmmaddda" - /* 1 */ "mmmmmdddm" - /* 2 */ "mmmmaceca" - /* 3 */ "mmmmceeec" - /* 4 */ "acccaeeec" - /* 5 */ "ceeeeeeec" - /* 6 */ "ceeeeeeec" - /* 7 */ "ceeeeeeec" - /* 8 */ "accccccca" - - // Level 2 - /* z\x* 012345678 */ - /* 0 */ "mmmma...a" - /* 1 */ "mmmm....." - /* 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 */ "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 */ "mmmmcscsc" - /* 3 */ "mmmms...s" - /* 4 */ "csssc...c" - /* 5 */ "s.......s" - /* 6 */ "s.......s" - /* 7 */ "s......ts" - /* 8 */ "cssscsssc", - - // Connectors: - "-1: 6, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // LittleHouse5 - - - - //////////////////////////////////////////////////////////////////////////////// - // LittleHouse6: - // The data has been exported from the gallery Desert, area index 69, ID 559, created by STR_Warrior - { - // Size: - 9, 6, 9, // SizeX = 9, SizeY = 6, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 9, 5, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "A: 96: 2\n" /* trapdoor */ - "a: 12: 0\n" /* sand */ - "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: 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 */ "aaaabcccb" - /* 1 */ "adddccccm" - /* 2 */ "adddbeeeb" - /* 3 */ "adddeeeee" - /* 4 */ "beeebeeee" - /* 5 */ "eeeeeeeee" - /* 6 */ "eeeeeeeee" - /* 7 */ "eeeeeeeee" - /* 8 */ "beeeeeeeb" - - // Level 1 - /* z\x* 012345678 */ - /* 0 */ "aaaabfffb" - /* 1 */ "agggffffm" - /* 2 */ "agggbeheb" - /* 3 */ "agggehhhe" - /* 4 */ "beeebhhhe" - /* 5 */ "ehhhhhhhe" - /* 6 */ "ehhhhhhhe" - /* 7 */ "ehhhhhhhe" - /* 8 */ "beeeeeeeb" - - // Level 2 - /* z\x* 012345678 */ - /* 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 */ "....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 */ "....ezeze" - /* 3 */ "....z...z" - /* 4 */ "ezzze...e" - /* 5 */ "z.......z" - /* 6 */ "z.......z" - /* 7 */ "z......Az" - /* 8 */ "ezzzezzze", - - // Connectors: - "-1: 6, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // LittleHouse6 - - - - //////////////////////////////////////////////////////////////////////////////// - // LittleHouse7: - // The data has been exported from the gallery Desert, area index 73, ID 563, created by xoft - { - // Size: - 9, 6, 11, // SizeX = 9, SizeY = 6, SizeZ = 11 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 9, 5, 11, // 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: 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: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 */ "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 */ "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 */ "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 */ "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 */ "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, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // LittleHouse7 - - - - //////////////////////////////////////////////////////////////////////////////// - // LittleHouse8: - // The data has been exported from the gallery Desert, area index 99, ID 739, created by STR_Warrior - { - // Size: - 9, 6, 9, // SizeX = 9, SizeY = 6, SizeZ = 9 - - // Hitbox (relative to bounding box): - 0, 0, -1, // MinX, MinY, MinZ - 9, 5, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "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: 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: 4\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 */ "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 */ "abbba" - /* 1 */ "mbbbm" - /* 2 */ "accca" - /* 3 */ "ccccc" - /* 4 */ "ccccc" - /* 5 */ "ccccc" - /* 6 */ "accca" - - // Level 1 - /* z\x* 01234 */ - /* 0 */ "addda" - /* 1 */ "mdddm" - /* 2 */ "aceca" - /* 3 */ "ceeec" - /* 4 */ "ceeec" - /* 5 */ "ceeec" - /* 6 */ "accca" - - // Level 2 - /* z\x* 01234 */ - /* 0 */ "a...a" - /* 1 */ "....." - /* 2 */ "acfca" - /* 3 */ "cg..c" - /* 4 */ "c...c" - /* 5 */ "c...c" - /* 6 */ "accca" - - // Level 3 - /* z\x* 01234 */ - /* 0 */ "a...a" - /* 1 */ "....." - /* 2 */ "achca" - /* 3 */ "cg..c" - /* 4 */ "i...i" - /* 5 */ "c..jc" - /* 6 */ "acica" - - // Level 4 - /* z\x* 01234 */ - /* 0 */ "k...k" - /* 1 */ "c...c" - /* 2 */ "accca" - /* 3 */ "cgllc" - /* 4 */ "nlllo" - /* 5 */ "clllc" - /* 6 */ "acpca" - - // Level 5 - /* z\x* 01234 */ - /* 0 */ "....." - /* 1 */ "....." - /* 2 */ "accca" - /* 3 */ "cg..c" - /* 4 */ "c...c" - /* 5 */ "c...c" - /* 6 */ "accca" - - // Level 6 - /* z\x* 01234 */ - /* 0 */ "....." - /* 1 */ "....." - /* 2 */ "acica" - /* 3 */ "cg..c" - /* 4 */ "i...i" - /* 5 */ "c..jc" - /* 6 */ "acica" - - // Level 7 - /* z\x* 01234 */ - /* 0 */ "....." - /* 1 */ "....." - /* 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, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // LittleTower - - - - //////////////////////////////////////////////////////////////////////////////// - // MediumHouse1: - // The data has been exported from the gallery Desert, area index 71, ID 561, created by STR_Warrior - { - // Size: - 15, 9, 9, // SizeX = 15, SizeY = 9, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 15, 8, 9, // 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: 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: 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 */ "mmmabbbammmmmmm" - /* 1 */ "mmmmbbbmmmmmmmm" - /* 2 */ "acccccccccacccc" - /* 3 */ "ccccccccccccccc" - /* 4 */ "ccccccccccccccc" - /* 5 */ "ccccccccccccccc" - /* 6 */ "ccccccccccccccc" - /* 7 */ "ccccccccccccccc" - /* 8 */ "acccccccccacccc" - - // Level 1 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 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 */ "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 */ "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 */ "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 */ "...aclca......." - /* 4 */ "...ct..c......." - /* 5 */ "..............." - /* 6 */ "...c...c......." - /* 7 */ "...aclca......." - /* 8 */ "..............." - - // Level 7 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ "..............." - /* 3 */ "...acuca......." - /* 4 */ "...cpppc......." - /* 5 */ "...cpppc......." - /* 6 */ "...cpppc......." - /* 7 */ "...acrca......." - /* 8 */ "..............." - - // Level 8 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ "..............." - /* 3 */ "...cscsc......." - /* 4 */ "...s...s......." - /* 5 */ "...c...c......." - /* 6 */ "...s...s......." - /* 7 */ "...cscsc......." - /* 8 */ "...............", - - // Connectors: - "-1: 5, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 80, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // MediumHouse1 - - - - //////////////////////////////////////////////////////////////////////////////// - // MediumHouse2: - // The data has been exported from the gallery Desert, area index 74, ID 573, created by STR_Warrior - { - // Size: - 11, 10, 9, // SizeX = 11, SizeY = 10, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 11, 9, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "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: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 */ "abbbammmcmm" - /* 1 */ "bbbbbdddcdm" - /* 2 */ "bbbbbmmmcdm" - /* 3 */ "bbbbbmmmcdm" - /* 4 */ "bbbbabbbbba" - /* 5 */ "bbbbbbbbbbb" - /* 6 */ "bbbbbbbbbbb" - /* 7 */ "bbbbbbbbbbb" - /* 8 */ "abbbbbbbbba" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 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 */ "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 */ "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 */ "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 */ ".aEa......." - /* 6 */ ".FGH......." - /* 7 */ ".aIa......." - /* 8 */ "..........." - - // Level 7 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ "..........." - /* 4 */ "..........." - /* 5 */ ".a.a......." - /* 6 */ "..J........" - /* 7 */ ".a.a......." - /* 8 */ "..........." - - // Level 8 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ "..........." - /* 4 */ "..........." - /* 5 */ ".bbb......." - /* 6 */ ".bKb......." - /* 7 */ ".bbb......." - /* 8 */ "..........." - - // Level 9 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ "..........." - /* 4 */ "..........." - /* 5 */ ".B.B......." - /* 6 */ "..........." - /* 7 */ ".B.B......." - /* 8 */ "...........", - - // Connectors: - "-1: 8, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 80, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // MediumHouse2 - - - - //////////////////////////////////////////////////////////////////////////////// - // MediumHouse3: - // The data has been exported from the gallery Desert, area index 76, ID 575, created by STR_Warrior - { - // Size: - 12, 10, 11, // SizeX = 12, SizeY = 10, SizeZ = 11 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 12, 9, 11, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "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: 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: 0\n" /* trapdoor */ - "y:126: 0\n" /* woodenslab */ - "z:128: 4\n" /* sandstonestairs */, - - // Block data: - // Level 0 - /* z\x* 11 */ - /* * 012345678901 */ - /* 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 */ "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 */ "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 */ "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 */ "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 */ ".....dwwdwwd" - /* 3 */ ".....w.....w" - /* 4 */ ".....w.....w" - /* 5 */ ".....w.....d" - /* 6 */ "...hdadh...w" - /* 7 */ "mmmd...d..xw" - /* 8 */ "mmmd...awwwd" - /* 9 */ "mmmd..ldmmmm" - /* 10 */ "mmmhdddhmmmm" - - // Level 6 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "............" - /* 2 */ "............" - /* 3 */ "............" - /* 4 */ "............" - /* 5 */ "............" - /* 6 */ "...hd.dh...." - /* 7 */ "mmmd...d...." - /* 8 */ "mmmp........" - /* 9 */ "mmmd..ldmmmm" - /* 10 */ "mmmhdpdhmmmm" - - // Level 7 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "............" - /* 2 */ "............" - /* 3 */ "............" - /* 4 */ "............" - /* 5 */ "............" - /* 6 */ "...hd.dh...." - /* 7 */ "mmmd...d...." - /* 8 */ "mmmp........" - /* 9 */ "mmmdn.ldmmmm" - /* 10 */ "mmmhdpdhmmmm" - - // Level 8 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "............" - /* 2 */ "............" - /* 3 */ "............" - /* 4 */ "............" - /* 5 */ "............" - /* 6 */ "...adsda...." - /* 7 */ "mmmdyyyd...." - /* 8 */ "mmmzyyyu...." - /* 9 */ "mmmdyyldmmmm" - /* 10 */ "mmmadvdammmm" - - // Level 9 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "............" - /* 2 */ "............" - /* 3 */ "............" - /* 4 */ "............" - /* 5 */ "............" - /* 6 */ "...w.w.w...." - /* 7 */ "mmm........." - /* 8 */ "mmmw...w...." - /* 9 */ "mmm.....mmmm" - /* 10 */ "mmmw.w.wmmmm", - - // Connectors: - "-1: 9, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 80, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // MediumHouse3 - - - - //////////////////////////////////////////////////////////////////////////////// - // SmallHouse9: - // The data has been exported from the gallery Desert, area index 67, ID 556, created by STR_Warrior - { - // Size: - 9, 6, 11, // SizeX = 9, SizeY = 6, SizeZ = 11 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 9, 5, 11, // 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: 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: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 */ "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 */ "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 */ "mmmma...a" - /* 1 */ "mmmm....." - /* 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 */ "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 */ "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, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // SmallHouse9 - - - - //////////////////////////////////////////////////////////////////////////////// - // Temple: - // The data has been exported from the gallery Desert, area index 83, ID 599, created by STR_Warrior - { - // Size: - 13, 10, 9, // SizeX = 13, SizeY = 10, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 13, 9, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "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: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 */ "mmmmabbbammmm" - /* 1 */ "mmmmmbbbmmmmm" - /* 2 */ "accccccccccca" - /* 3 */ "ccccccccccccc" - /* 4 */ "ccccccccccccc" - /* 5 */ "ccccccccccccc" - /* 6 */ "ccccccccccccc" - /* 7 */ "ccccccccccccc" - /* 8 */ "accccccccccca" - - // Level 1 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 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 */ "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 */ "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 */ "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 */ "..ata...ata.." - /* 5 */ "..wxy...wxy.." - /* 6 */ "..aza...aza.." - /* 7 */ "............." - /* 8 */ "............." - - // Level 7 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ "............." - /* 2 */ "............." - /* 3 */ "............." - /* 4 */ "..a.a...a.a.." - /* 5 */ "...A.....A..." - /* 6 */ "..a.a...a.a.." - /* 7 */ "............." - /* 8 */ "............." - - // Level 8 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ "............." - /* 2 */ "............." - /* 3 */ "............." - /* 4 */ "..ccc...ccc.." - /* 5 */ "..cBc...cBc.." - /* 6 */ "..ccc...ccc.." - /* 7 */ "............." - /* 8 */ "............." - - // Level 9 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ "............." - /* 2 */ "............." - /* 3 */ "............." - /* 4 */ "..v.v...v.v.." - /* 5 */ "............." - /* 6 */ "..v.v...v.v.." - /* 7 */ "............." - /* 8 */ ".............", - - // Connectors: - "-1: 6, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 50, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // Temple -}; // 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: - 7, 21, 7, // SizeX = 7, SizeY = 21, SizeZ = 7 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 6, 20, 6, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 1: 0\n" /* stone */ - "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* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "maaaaam" - /* 2 */ "maaaaam" - /* 3 */ "maaaaam" - /* 4 */ "maaaaam" - /* 5 */ "maaaaam" - /* 6 */ "mmmmmmm" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbcccbm" - /* 2 */ "mcdddcm" - /* 3 */ "mcdddcm" - /* 4 */ "mcdddcm" - /* 5 */ "mbcccbm" - /* 6 */ "mmmmmmm" - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbcccbm" - /* 2 */ "mcdddcm" - /* 3 */ "mcdddcm" - /* 4 */ "mcdddcm" - /* 5 */ "mbcccbm" - /* 6 */ "mmmmmmm" - - // Level 3 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbcccbm" - /* 2 */ "mcdddcm" - /* 3 */ "mcdddcm" - /* 4 */ "mcdddcm" - /* 5 */ "mbcccbm" - /* 6 */ "mmmmmmm" - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbcccbm" - /* 2 */ "mcdddcm" - /* 3 */ "mcdddcm" - /* 4 */ "mcdddcm" - /* 5 */ "mbcccbm" - /* 6 */ "mmmmmmm" - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbcccbm" - /* 2 */ "mcdddcm" - /* 3 */ "mcdddcm" - /* 4 */ "mcdddcm" - /* 5 */ "mbcccbm" - /* 6 */ "mmmmmmm" - - // Level 6 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbcccbm" - /* 2 */ "mcdddcm" - /* 3 */ "mcdddcm" - /* 4 */ "mcdddcm" - /* 5 */ "mbcccbm" - /* 6 */ "mmmmmmm" - - // Level 7 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbcccbm" - /* 2 */ "mcdddcm" - /* 3 */ "mcdddcm" - /* 4 */ "mcdddcm" - /* 5 */ "mbcccbm" - /* 6 */ "mmmmmmm" - - // Level 8 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbcccbm" - /* 2 */ "mcdddcm" - /* 3 */ "mcdddcm" - /* 4 */ "mcdddcm" - /* 5 */ "mbcccbm" - /* 6 */ "mmmmmmm" - - // Level 9 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbcccbm" - /* 2 */ "mcdddcm" - /* 3 */ "mcdddcm" - /* 4 */ "mcdddcm" - /* 5 */ "mbcccbm" - /* 6 */ "mmmmmmm" - - // Level 10 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbcccbm" - /* 2 */ "mcdddcm" - /* 3 */ "mcdddcm" - /* 4 */ "mcdddcm" - /* 5 */ "mbcccbm" - /* 6 */ "mmmmmmm" - - // Level 11 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbcccbm" - /* 2 */ "mcdddcm" - /* 3 */ "mcdddcm" - /* 4 */ "mcdddcm" - /* 5 */ "mbcccbm" - /* 6 */ "mmmmmmm" - - // Level 12 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbcccbm" - /* 2 */ "mcdddcm" - /* 3 */ "mcdddcm" - /* 4 */ "mcdddcm" - /* 5 */ "mbcccbm" - /* 6 */ "mmmmmmm" - - // Level 13 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbcccbm" - /* 2 */ "mcdddcm" - /* 3 */ "mcdddcm" - /* 4 */ "mcdddcm" - /* 5 */ "mbcccbm" - /* 6 */ "mmmmmmm" - - // Level 14 - /* z\x* 0123456 */ - /* 0 */ "mmeeemm" - /* 1 */ "mbcccbm" - /* 2 */ "ecdddce" - /* 3 */ "ecdddce" - /* 4 */ "ecdddce" - /* 5 */ "mbcccbm" - /* 6 */ "mmeeemm" - - // Level 15 - /* z\x* 0123456 */ - /* 0 */ "mmfffmm" - /* 1 */ "mbcccbm" - /* 2 */ "fcdddcf" - /* 3 */ "fcdddcf" - /* 4 */ "fcdddcf" - /* 5 */ "mbcccbm" - /* 6 */ "mmfffmm" - - // Level 16 - /* 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* 0123456 */ - /* 0 */ "mm...mm" - /* 1 */ "mb...bm" - /* 2 */ "......." - /* 3 */ "......." - /* 4 */ "......." - /* 5 */ "mb...bm" - /* 6 */ "mm...mm" - - // Level 18 - /* 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* 0123456 */ - /* 0 */ "mm...mm" - /* 1 */ "mcccccm" - /* 2 */ ".cnnnc." - /* 3 */ ".cnnnc." - /* 4 */ ".cnnnc." - /* 5 */ "mcccccm" - /* 6 */ "mm...mm" - - // Level 20 - /* z\x* 0123456 */ - /* 0 */ "mm...mm" - /* 1 */ "mh.h.hm" - /* 2 */ "......." - /* 3 */ ".h...h." - /* 4 */ "......." - /* 5 */ "mh.h.hm" - /* 6 */ "mm...mm", - - // Connectors: - "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 */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // Well -}; - - - - - -// The prefab counts: - -const size_t g_AlchemistVillagePrefabsCount = ARRAYCOUNT(g_AlchemistVillagePrefabs); - -const size_t g_AlchemistVillageStartingPrefabsCount = ARRAYCOUNT(g_AlchemistVillageStartingPrefabs); - diff --git a/src/Generating/Prefabs/AlchemistVillagePrefabs.h b/src/Generating/Prefabs/AlchemistVillagePrefabs.h deleted file mode 100644 index dddc5530a..000000000 --- a/src/Generating/Prefabs/AlchemistVillagePrefabs.h +++ /dev/null @@ -1,15 +0,0 @@ - -// AlchemistVillagePrefabs.h - -// Declares the prefabs in the group AlchemistVillage - -#include "../Prefab.h" - - - - - -extern const cPrefab::sDef g_AlchemistVillagePrefabs[]; -extern const cPrefab::sDef g_AlchemistVillageStartingPrefabs[]; -extern const size_t g_AlchemistVillagePrefabsCount; -extern const size_t g_AlchemistVillageStartingPrefabsCount; diff --git a/src/Generating/Prefabs/CMakeLists.txt b/src/Generating/Prefabs/CMakeLists.txt index 68f6491c4..1b130636f 100644 --- a/src/Generating/Prefabs/CMakeLists.txt +++ b/src/Generating/Prefabs/CMakeLists.txt @@ -5,26 +5,18 @@ project (MCServer) include_directories ("${PROJECT_SOURCE_DIR}/../../") SET (SRCS - AlchemistVillagePrefabs.cpp - JapaneseVillagePrefabs.cpp NetherFortPrefabs.cpp - PlainsVillagePrefabs.cpp RainbowRoadPrefabs.cpp - SandFlatRoofVillagePrefabs.cpp - SandVillagePrefabs.cpp TestRailsPrefabs.cpp - UnderwaterBasePrefabs.cpp) + UnderwaterBasePrefabs.cpp +) SET (HDRS - AlchemistVillagePrefabs.h - JapaneseVillagePrefabs.h NetherFortPrefabs.h - PlainsVillagePrefabs.h RainbowRoadPrefabs.h - SandFlatRoofVillagePrefabs.h - SandVillagePrefabs.h TestRailsPrefabs.h - UnderwaterBasePrefabs.h) + UnderwaterBasePrefabs.h +) if(NOT MSVC) add_library(Generating_Prefabs ${SRCS} ${HDRS}) diff --git a/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp b/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp deleted file mode 100644 index 0362c9406..000000000 --- a/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp +++ /dev/null @@ -1,3386 +0,0 @@ - -// JapaneseVillagePrefabs.cpp - -// Defines the prefabs in the group JapaneseVillage - -// NOTE: This file has been generated automatically by GalExport! -// Any manual changes will be overwritten by the next automatic export! - -#include "Globals.h" -#include "JapaneseVillagePrefabs.h" - - - - - -const cPrefab::sDef g_JapaneseVillagePrefabs[] = -{ - //////////////////////////////////////////////////////////////////////////////// - // Arch: - // The data has been exported from the gallery Plains, area index 144, ID 488, created by Aloe_vera - { - // Size: - 11, 7, 5, // SizeX = 11, SizeY = 7, SizeZ = 5 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 11, 6, 4, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 2: 0\n" /* grass */ - "b: 13: 0\n" /* gravel */ - "c:113: 0\n" /* netherbrickfence */ - "d: 50: 5\n" /* torch */ - "e: 44: 8\n" /* step */ - "f: 44: 0\n" /* step */ - "g: 43: 0\n" /* doubleslab */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "aaaabbbaaaa" - /* 1 */ "aaaabbbaaaa" - /* 2 */ "aaaabbbaaaa" - /* 3 */ "aaaabbbaaaa" - /* 4 */ "aaaabbbaaaa" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..c.....c.." - /* 1 */ "..c.....c.." - /* 2 */ "..c.....c.." - /* 3 */ "..c.....c.." - /* 4 */ "..c.....c.." - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..c.....c.." - /* 1 */ "..........." - /* 2 */ "..c.....c.." - /* 3 */ "..........." - /* 4 */ "..c.....c.." - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..d.....d.." - /* 1 */ "..........." - /* 2 */ "..c.....c.." - /* 3 */ "..........." - /* 4 */ "..d.....d.." - - // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "...eeeee..." - /* 1 */ "..........." - /* 2 */ "..c.....c.." - /* 3 */ "..........." - /* 4 */ "...eeeee..." - - // Level 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..f.....f.." - /* 1 */ ".egfffffge." - /* 2 */ ".egeeeeege." - /* 3 */ ".egfffffge." - /* 4 */ "..f.....f.." - - // Level 6 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "gf.......fg" - /* 3 */ "..........." - /* 4 */ "...........", - - // Connectors: - "2: 5, 1, 4: 3\n" /* Type 2, direction Z+ */ - "2: 5, 1, 0: 2\n" /* Type 2, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // Arch - - - - //////////////////////////////////////////////////////////////////////////////// - // 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 - { - // Size: - 16, 11, 14, // SizeX = 16, SizeY = 11, SizeZ = 14 - - // Hitbox (relative to bounding box): - 0, 0, -1, // MinX, MinY, MinZ - 16, 10, 14, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 4: 0\n" /* cobblestone */ - "b: 17: 1\n" /* tree */ - "c: 67: 0\n" /* stairs */ - "d: 5: 2\n" /* wood */ - "e: 67: 2\n" /* stairs */ - "f:113: 0\n" /* netherbrickfence */ - "g:118: 2\n" /* cauldronblock */ - "h: 67: 6\n" /* stairs */ - "i: 67: 4\n" /* stairs */ - "j: 87: 0\n" /* netherstone */ - "k: 67: 7\n" /* stairs */ - "l: 54: 5\n" /* chest */ - "m: 19: 0\n" /* sponge */ - "n: 61: 2\n" /* furnace */ - "o:101: 0\n" /* ironbars */ - "p: 51: 0\n" /* fire */ - "q: 50: 4\n" /* torch */ - "r: 50: 2\n" /* torch */ - "s: 35: 0\n" /* wool */ - "t: 67: 3\n" /* stairs */ - "u: 50: 3\n" /* torch */ - "v: 44: 8\n" /* step */ - "w: 43: 0\n" /* doubleslab */ - "x: 44: 0\n" /* step */ - "y: 17: 5\n" /* tree */ - "z: 17: 9\n" /* tree */, - - // Block data: - // Level 0 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "mmmmmmmmmmmmmmmm" - /* 1 */ "mmmmmmmmmmmmmmmm" - /* 2 */ "mmaaaaaaaaaaaamm" - /* 3 */ "mmaaaaaaaaaaaamm" - /* 4 */ "mmaaaaaaaaaaaamm" - /* 5 */ "mmaaaaaaaaaaaamm" - /* 6 */ "mmaaaaaaaaaaaamm" - /* 7 */ "mmaaaaaaaaaaaamm" - /* 8 */ "mmaaaaaaaaaaaamm" - /* 9 */ "mmaaaaaaaaaaaamm" - /* 10 */ "mmaaaaaaaaaaaamm" - /* 11 */ "mmaaaaaaaaaaaamm" - /* 12 */ "mmmmmmmmmmmmmmmm" - /* 13 */ "mmmmmmmmmmmmmmmm" - - // Level 1 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "................" - /* 2 */ ".....bbbbbbbbb.." - /* 3 */ ".....cdddddddb.." - /* 4 */ ".....cddaaaadb.." - /* 5 */ "..beeedaaaaadb.." - /* 6 */ "..bddddaaaaadb.." - /* 7 */ "..bddddaaaaadb.." - /* 8 */ "..bddddaaaaadb.." - /* 9 */ "..bddddaaaaadb.." - /* 10 */ "..bddddddddddb.." - /* 11 */ "..bbbbbbbbbbbb.." - /* 12 */ "................" - /* 13 */ "................" - - // Level 2 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "................" - /* 2 */ ".....bfffbfffb.." - /* 3 */ ".............a.." - /* 4 */ ".............a.." - /* 5 */ "..b.....ghh..a.." - /* 6 */ "..f.....haa..b.." - /* 7 */ "..f.....ija..b.." - /* 8 */ "..f.....kaa..a.." - /* 9 */ "..f..........a.." - /* 10 */ "..fl.........a.." - /* 11 */ "..bffffbbffffb.." - /* 12 */ "................" - /* 13 */ "................" - - // Level 3 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "................" - /* 2 */ ".....bfffbfffb.." - /* 3 */ ".............a.." - /* 4 */ ".............a.." - /* 5 */ "..b......nn..a.." - /* 6 */ "..f.....oaa..b.." - /* 7 */ "..f.....opa..b.." - /* 8 */ "..f.....oaa..a.." - /* 9 */ "..f..........a.." - /* 10 */ "..f..........a.." - /* 11 */ "..bffffbbffffb.." - /* 12 */ "................" - /* 13 */ "................" - - // Level 4 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ ".........q...q.." - /* 2 */ "....rbsssbsssb.." - /* 3 */ ".............a.." - /* 4 */ "..q..........a.." - /* 5 */ "..b......ce..a.." - /* 6 */ "..s......ea..b.." - /* 7 */ "..s......aa..b.." - /* 8 */ "..s......ta..a.." - /* 9 */ "..s..........a.." - /* 10 */ "..s..........a.." - /* 11 */ ".rbssssbbssssb.." - /* 12 */ "..u....uu....u.." - /* 13 */ "................" - - // Level 5 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ ".vwxxxxxxxxxxwv." - /* 1 */ "vvvvvvvvvvvvvvvv" - /* 2 */ "wvbyybyyybbyybvw" - /* 3 */ "xvz..........zvx" - /* 4 */ "xvz..........zvx" - /* 5 */ "xvb..........zvx" - /* 6 */ "xvz.......a..bvx" - /* 7 */ "xvz......ca..bvx" - /* 8 */ "xvz.......a..zvx" - /* 9 */ "xvz..........zvx" - /* 10 */ "xvz..........zvx" - /* 11 */ "wvbyyyyyyyyyybvw" - /* 12 */ "vvvvvvvvvvvvvvvv" - /* 13 */ ".vwxxxxxxxxxxwv." - - // Level 6 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "wx............xw" - /* 1 */ "x..............x" - /* 2 */ "..xxxxxxxxxxxx.." - /* 3 */ "..xwwwwwwwwwwx.." - /* 4 */ "..xwvvvvvvvvvx.." - /* 5 */ "..xwv.......vx.." - /* 6 */ "..xwv.....a.vx.." - /* 7 */ "..xwv.....a.vx.." - /* 8 */ "..xwv.....a.vx.." - /* 9 */ "..xwvvvvvvvvvx.." - /* 10 */ "..xwwwwwwwwwwx.." - /* 11 */ "..xxxxxxxxxxxx.." - /* 12 */ "x..............x" - /* 13 */ "wx............xw" - - // Level 7 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "................" - /* 2 */ "................" - /* 3 */ "................" - /* 4 */ "....xxxxxxxx...." - /* 5 */ "....xxxxxxxx...." - /* 6 */ "....xwwwwwax...." - /* 7 */ "....xwvvvvax...." - /* 8 */ "....xwwwwwax...." - /* 9 */ "....xxxxxxxx...." - /* 10 */ "................" - /* 11 */ "................" - /* 12 */ "................" - /* 13 */ "................" - - // Level 8 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "................" - /* 2 */ "................" - /* 3 */ "................" - /* 4 */ "................" - /* 5 */ "................" - /* 6 */ "..........a....." - /* 7 */ ".......xx.a....." - /* 8 */ "..........a....." - /* 9 */ "................" - /* 10 */ "................" - /* 11 */ "................" - /* 12 */ "................" - /* 13 */ "................" - - // Level 9 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "................" - /* 2 */ "................" - /* 3 */ "................" - /* 4 */ "................" - /* 5 */ "................" - /* 6 */ "..........a....." - /* 7 */ "..........a....." - /* 8 */ "..........a....." - /* 9 */ "................" - /* 10 */ "................" - /* 11 */ "................" - /* 12 */ "................" - /* 13 */ "................" - - // Level 10 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "................" - /* 2 */ "................" - /* 3 */ "................" - /* 4 */ "................" - /* 5 */ "................" - /* 6 */ "..........a....." - /* 7 */ "..........a....." - /* 8 */ "..........a....." - /* 9 */ "................" - /* 10 */ "................" - /* 11 */ "................" - /* 12 */ "................" - /* 13 */ "................", - - // Connectors: - "-1: 0, 1, 3: 4\n" /* Type -1, direction X- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // Forge - - - - //////////////////////////////////////////////////////////////////////////////// - // Garden2: - // The data has been exported from the gallery Plains, area index 147, ID 491, created by Aloe_vera - { - // Size: - 16, 5, 16, // SizeX = 16, SizeY = 5, SizeZ = 16 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 15, 4, 15, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 8: 0\n" /* water */ - "c: 2: 0\n" /* grass */ - "d: 17: 1\n" /* tree */ - "e: 13: 0\n" /* gravel */ - "f: 31: 2\n" /* tallgrass */ - "g: 18: 5\n" /* leaves */ - "h: 38: 7\n" /* rose */ - "i: 17: 9\n" /* tree */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "aaaaaaaaaaaaaaaa" - /* 1 */ "aaaaaaaaaaaaaaaa" - /* 2 */ "aaaaaaaaaaaaaaaa" - /* 3 */ "aaaaaaaaaaaaaaaa" - /* 4 */ "aaaaaaaaaaaaaaaa" - /* 5 */ "aaaaaaaaaaaaaaaa" - /* 6 */ "aaaaaaaaaaaaaaaa" - /* 7 */ "aaaaaaaaaaaaaaaa" - /* 8 */ "aaaaaaaaaaaaaaaa" - /* 9 */ "aaaaaaaaaaaaaaaa" - /* 10 */ "aaaaaaaaaaaaaaaa" - /* 11 */ "aaaaaaaaaaaaaaaa" - /* 12 */ "aaaaaaaaaaaaaaaa" - /* 13 */ "aaaaaaaaaaaaaaaa" - /* 14 */ "aaaaaaaaaaaaaaaa" - /* 15 */ "aaaaaaaaaaaaaaaa" - - // Level 1 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "aaaaaaaaaaaaaaaa" - /* 1 */ "aaaaaaaaaaaaaaaa" - /* 2 */ "aaaaaaaaaaaaaaaa" - /* 3 */ "aaaaaaaaaaaaaaaa" - /* 4 */ "aaaaaaaaaaaaaaaa" - /* 5 */ "aaaaaaaaaaaaaaaa" - /* 6 */ "aaaabbaaaaaaaaaa" - /* 7 */ "aaabbbaaaaaaaaaa" - /* 8 */ "aaabbaaaaaaaaaaa" - /* 9 */ "aaaabaaaaaaaaaaa" - /* 10 */ "aaaaaaaaaaaaaaaa" - /* 11 */ "aaaaaaaaaaaaaaaa" - /* 12 */ "aaaaaaaaaaaaaaaa" - /* 13 */ "aaaaaaaaaaaaaaaa" - /* 14 */ "aaaaaaaaaaaaaaaa" - /* 15 */ "aaaaaaaaaaaaaaaa" - - // Level 2 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "cccccccccccccccc" - /* 1 */ "ccdccccccccdcccc" - /* 2 */ "cccccceecccccdcc" - /* 3 */ "ccccccceeccccccc" - /* 4 */ "cccccccceccccccc" - /* 5 */ "cccbbbbceccccccc" - /* 6 */ "cccbbbbceecccccc" - /* 7 */ "ccbbbbbcceeeeccc" - /* 8 */ "ccbbbbbccccceecc" - /* 9 */ "ccbbbbcccccccecc" - /* 10 */ "ccccbcccccccceec" - /* 11 */ "ccccccccccccccec" - /* 12 */ "ccccccccaaacccec" - /* 13 */ "cccccccccaccccec" - /* 14 */ "ccccccccccccceec" - /* 15 */ "cccccccccccceecc" - - // Level 3 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "......f...gg.g.." - /* 1 */ "..gg.....gggggg." - /* 2 */ "ffgg......ghgggg" - /* 3 */ ".............gg." - /* 4 */ "...........f...." - /* 5 */ "...........h.ff." - /* 6 */ ".............fh." - /* 7 */ "...............f" - /* 8 */ "................" - /* 9 */ ".......ff.f....." - /* 10 */ ".f.....ffggf...." - /* 11 */ ".......gggg.f..." - /* 12 */ ".f......iddg...." - /* 13 */ ".....f..gdgg...." - /* 14 */ "....ff...gg....." - /* 15 */ "................" - - // Level 4 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "...........g.g.." - /* 2 */ ".............gg." - /* 3 */ "................" - /* 4 */ "................" - /* 5 */ "................" - /* 6 */ "................" - /* 7 */ "................" - /* 8 */ "................" - /* 9 */ "................" - /* 10 */ ".........g......" - /* 11 */ "........ggg....." - /* 12 */ "........ggg....." - /* 13 */ ".........g......" - /* 14 */ "................" - /* 15 */ "................", - - // Connectors: - "-1: 12, 3, 15: 3\n" /* Type -1, direction Z+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // Garden2 - - - - //////////////////////////////////////////////////////////////////////////////// - // HouseMid: - // The data has been exported from the gallery Plains, area index 62, ID 119, created by Aloe_vera - { - // Size: - 10, 9, 9, // SizeX = 10, SizeY = 9, SizeZ = 9 - - // Hitbox (relative to bounding box): - 0, 0, -1, // MinX, MinY, MinZ - 10, 8, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 2\n" /* wood */ - "b:135: 2\n" /* 135 */ - "c:135: 0\n" /* 135 */ - "d: 17: 9\n" /* tree */ - "e:135: 3\n" /* 135 */ - "f: 85: 0\n" /* fence */ - "g: 17: 1\n" /* tree */ - "h:171: 0\n" /* carpet */ - "i: 50: 5\n" /* torch */ - "j: 35: 0\n" /* wool */ - "k: 17: 5\n" /* tree */ - "l:124: 0\n" /* redstonelampon */ - "m: 19: 0\n" /* sponge */ - "n: 69: 9\n" /* lever */ - "o: 44: 8\n" /* step */ - "p: 43: 0\n" /* doubleslab */ - "q: 44: 0\n" /* step */, - - // Block data: - // Level 0 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "maaaaaaaaa" - /* 1 */ "maaaaaaaaa" - /* 2 */ "aaaaaaaaaa" - /* 3 */ "aaaaaaaaaa" - /* 4 */ "aaaaaaaaaa" - /* 5 */ "aaaaaaaaaa" - /* 6 */ "aaaaaaaaaa" - /* 7 */ "maaaaaaaaa" - /* 8 */ "maaaaaaaaa" - - // Level 1 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".aaaaaaaaa" - /* 1 */ ".aaaaaaaaa" - /* 2 */ "baaaaaaaaa" - /* 3 */ "caaaaaaaaa" - /* 4 */ "caadaaaaaa" - /* 5 */ "caaaaaaaaa" - /* 6 */ "eaaaaaaaaa" - /* 7 */ ".aaaaaaaaa" - /* 8 */ ".aaaaaaaaa" - - // Level 2 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".fffffffff" - /* 1 */ ".f.......f" - /* 2 */ ".f.ggggg.f" - /* 3 */ "...ghhhg.f" - /* 4 */ "....hhhg.f" - /* 5 */ "...ghhhg.f" - /* 6 */ ".f.ggggg.f" - /* 7 */ ".f.......f" - /* 8 */ ".fffffffff" - - // Level 3 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".....i...i" - /* 1 */ ".........." - /* 2 */ ".i.jjgjj.." - /* 3 */ "...g...j.." - /* 4 */ ".......g.i" - /* 5 */ "...g...j.." - /* 6 */ ".i.jjgjj.." - /* 7 */ ".........." - /* 8 */ ".....i...i" - - // Level 4 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".........." - /* 1 */ ".........." - /* 2 */ "...jjgjj.." - /* 3 */ "...g...j.." - /* 4 */ "...j...g.." - /* 5 */ "...g...j.." - /* 6 */ "...jjgjj.." - /* 7 */ ".........." - /* 8 */ ".........." - - // Level 5 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".........." - /* 1 */ "...f...f.." - /* 2 */ "..fgkgkgf." - /* 3 */ "..fd...d.." - /* 4 */ "...d.lng.." - /* 5 */ "..fd...d.." - /* 6 */ "..fgkgkgf." - /* 7 */ "...f...f.." - /* 8 */ ".........." - - // Level 6 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "...ooooo.." - /* 1 */ "..opppppo." - /* 2 */ ".opgjjjgpo" - /* 3 */ ".opjgggjpo" - /* 4 */ ".opjgggjpo" - /* 5 */ ".opjgggjpo" - /* 6 */ ".opgjjjgpo" - /* 7 */ "..opppppo." - /* 8 */ "...ooooo.." - - // Level 7 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".opq...qpo" - /* 1 */ ".pq.....qp" - /* 2 */ ".q.qqqqq.q" - /* 3 */ "...qpppq.." - /* 4 */ "...qpppq.." - /* 5 */ "...qpppq.." - /* 6 */ ".q.qqqqq.q" - /* 7 */ ".pq.....qp" - /* 8 */ ".opq...qpo" - - // Level 8 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".q.......q" - /* 1 */ ".........." - /* 2 */ ".........." - /* 3 */ ".........." - /* 4 */ ".....q...." - /* 5 */ ".........." - /* 6 */ ".........." - /* 7 */ ".........." - /* 8 */ ".q.......q", - - // Connectors: - "-1: 0, 1, 4: 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, - }, // HouseMid - - - - //////////////////////////////////////////////////////////////////////////////// - // HouseSmall: - // The data has been exported from the gallery Plains, area index 68, ID 131, created by Aloe_vera - { - // Size: - 7, 6, 7, // SizeX = 7, SizeY = 6, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 7, 5, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 2\n" /* wood */ - "b: 17: 1\n" /* tree */ - "c: 35: 0\n" /* wool */ - "d: 50: 4\n" /* torch */ - "e: 85: 0\n" /* fence */ - "f: 44: 8\n" /* step */ - "g: 43: 0\n" /* doubleslab */ - "h: 44: 0\n" /* step */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "maaaaam" - /* 2 */ "maaaaam" - /* 3 */ "maaaaam" - /* 4 */ "maaaaam" - /* 5 */ "maaaaam" - /* 6 */ "mmmmmmm" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".bcc.b." - /* 2 */ ".c...c." - /* 3 */ ".c...c." - /* 4 */ ".c...c." - /* 5 */ ".bcccb." - /* 6 */ "......." - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ ".....d." - /* 1 */ ".bee.b." - /* 2 */ ".c...c." - /* 3 */ ".e...e." - /* 4 */ ".c...c." - /* 5 */ ".beeeb." - /* 6 */ "......." - - // Level 3 - /* z\x* 0123456 */ - /* 0 */ ".fffff." - /* 1 */ "fbcccbf" - /* 2 */ "fc...cf" - /* 3 */ "fc...cf" - /* 4 */ "fc...cf" - /* 5 */ "fbcccbf" - /* 6 */ ".fffff." - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "gh...hg" - /* 1 */ "hhhhhhh" - /* 2 */ ".hgggh." - /* 3 */ ".hgggh." - /* 4 */ ".hgggh." - /* 5 */ "hhhhhhh" - /* 6 */ "gh...hg" - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "......." - /* 2 */ "......." - /* 3 */ "...h..." - /* 4 */ "......." - /* 5 */ "......." - /* 6 */ ".......", - - // Connectors: - "-1: 4, 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: - true, - }, // HouseSmall - - - - //////////////////////////////////////////////////////////////////////////////// - // HouseSmallDblWithDoor: - // The data has been exported from the gallery Plains, area index 113, ID 265, created by Aloe_vera - { - // Size: - 11, 6, 7, // SizeX = 11, SizeY = 6, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 11, 5, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 2\n" /* wood */ - "b: 17: 9\n" /* tree */ - "c: 17: 1\n" /* tree */ - "d: 35: 0\n" /* wool */ - "e: 64: 7\n" /* wooddoorblock */ - "f:171:12\n" /* carpet */ - "g:135: 1\n" /* 135 */ - "h:126: 2\n" /* woodenslab */ - "i:135: 2\n" /* 135 */ - "j: 50: 4\n" /* torch */ - "k: 64:12\n" /* wooddoorblock */ - "l: 85: 0\n" /* fence */ - "m: 19: 0\n" /* sponge */ - "n: 44: 8\n" /* step */ - "o: 43: 0\n" /* doubleslab */ - "p: 44: 0\n" /* step */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmmmmmmmm" - /* 1 */ "maaaaaaaaam" - /* 2 */ "maaaabaaaam" - /* 3 */ "maaaabaaaam" - /* 4 */ "maaaabaaaam" - /* 5 */ "maaaaaaaaam" - /* 6 */ "mmmmmmmmmmm" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".cdedcdddc." - /* 2 */ ".dfff.fffd." - /* 3 */ ".dgffdfhfd." - /* 4 */ ".diifdfffd." - /* 5 */ ".cdddcdddc." - /* 6 */ "..........." - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ ".j...j...j." - /* 1 */ ".cdkdclllc." - /* 2 */ ".d.......l." - /* 3 */ ".l...l...l." - /* 4 */ ".d...l...l." - /* 5 */ ".clllclllc." - /* 6 */ "..........." - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ ".nnnnnnnnn." - /* 1 */ "ncdddcdddcn" - /* 2 */ "nd...d...dn" - /* 3 */ "nd...d...dn" - /* 4 */ "nd...d...dn" - /* 5 */ "ncdddcdddcn" - /* 6 */ ".nnnnnnnnn." - - // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "op.......po" - /* 1 */ "ppppppppppp" - /* 2 */ ".pooooooop." - /* 3 */ ".ponndnnop." - /* 4 */ ".pooooooop." - /* 5 */ "ppppppppppp" - /* 6 */ "op.......po" - - // Level 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ "...ppppp..." - /* 4 */ "..........." - /* 5 */ "..........." - /* 6 */ "...........", - - // Connectors: - "-1: 3, 1, -1: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // HouseSmallDblWithDoor - - - - //////////////////////////////////////////////////////////////////////////////// - // HouseSmallDouble: - // The data has been exported from the gallery Plains, area index 72, ID 135, created by Aloe_vera - { - // Size: - 11, 6, 7, // SizeX = 11, SizeY = 6, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 11, 5, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 2\n" /* wood */ - "b: 17: 1\n" /* tree */ - "c: 35: 0\n" /* wool */ - "d:171:12\n" /* carpet */ - "e:135: 1\n" /* 135 */ - "f:126: 2\n" /* woodenslab */ - "g:135: 2\n" /* 135 */ - "h: 50: 4\n" /* torch */ - "i: 85: 0\n" /* fence */ - "j: 44: 8\n" /* step */ - "k: 43: 0\n" /* doubleslab */ - "l: 44: 0\n" /* step */ - "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 */ "mmmmmmmmmmm" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".bcc.bcccb." - /* 2 */ ".cddd.dddc." - /* 3 */ ".ceddcdfdc." - /* 4 */ ".cggdcdddc." - /* 5 */ ".bcccbcccb." - /* 6 */ "..........." - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ ".h...h...h." - /* 1 */ ".bii.biiib." - /* 2 */ ".c.......c." - /* 3 */ ".i...i...i." - /* 4 */ ".c...i...c." - /* 5 */ ".biiibiiib." - /* 6 */ "..........." - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ ".jjjjjjjjj." - /* 1 */ "jbiiibiiibj" - /* 2 */ "jc.......cj" - /* 3 */ "jc...c...cj" - /* 4 */ "jc...c...cj" - /* 5 */ "jbcccbcccbj" - /* 6 */ ".jjjjjjjjj." - - // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "kl...l...lk" - /* 1 */ "lllllllllll" - /* 2 */ ".lkkklkkkl." - /* 3 */ ".lkjklkkkl." - /* 4 */ ".lkkklkkkl." - /* 5 */ "lllllllllll" - /* 6 */ "kl...l...lk" - - // Level 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ "...l...l..." - /* 4 */ "..........." - /* 5 */ "..........." - /* 6 */ "...........", - - // Connectors: - "-1: 4, 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: - true, - }, // HouseSmallDouble - - - - //////////////////////////////////////////////////////////////////////////////// - // HouseSmallWithDoor: - // The data has been exported from the gallery Plains, area index 112, ID 264, created by Aloe_vera - { - // Size: - 7, 6, 7, // SizeX = 7, SizeY = 6, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 7, 5, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 2\n" /* wood */ - "b: 17: 1\n" /* tree */ - "c: 35: 0\n" /* wool */ - "d: 64: 7\n" /* wooddoorblock */ - "e: 50: 4\n" /* torch */ - "f: 64:12\n" /* wooddoorblock */ - "g: 85: 0\n" /* fence */ - "h: 44: 8\n" /* step */ - "i: 43: 0\n" /* doubleslab */ - "j: 44: 0\n" /* step */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "maaaaam" - /* 2 */ "maaaaam" - /* 3 */ "maaaaam" - /* 4 */ "maaaaam" - /* 5 */ "maaaaam" - /* 6 */ "mmmmmmm" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".bcdcb." - /* 2 */ ".c...c." - /* 3 */ ".c...c." - /* 4 */ ".c...c." - /* 5 */ ".bcccb." - /* 6 */ "......." - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ ".....e." - /* 1 */ ".bcfcb." - /* 2 */ ".g...g." - /* 3 */ ".g...g." - /* 4 */ ".g...g." - /* 5 */ ".bgggb." - /* 6 */ "......." - - // Level 3 - /* z\x* 0123456 */ - /* 0 */ ".hhhhh." - /* 1 */ "hbcccbh" - /* 2 */ "hc...ch" - /* 3 */ "hc...ch" - /* 4 */ "hc...ch" - /* 5 */ "hbcccbh" - /* 6 */ ".hhhhh." - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "ij...ji" - /* 1 */ "jjjjjjj" - /* 2 */ ".jiiij." - /* 3 */ ".jiiij." - /* 4 */ ".jiiij." - /* 5 */ "jjjjjjj" - /* 6 */ "ij...ji" - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "......." - /* 2 */ "......." - /* 3 */ "...j..." - /* 4 */ "......." - /* 5 */ "......." - /* 6 */ ".......", - - // Connectors: - "-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: - true, - }, // HouseSmallWithDoor - - - - //////////////////////////////////////////////////////////////////////////////// - // HouseWide: - // The data has been exported from the gallery Plains, area index 64, ID 121, created by STR_Warrior - { - // Size: - 11, 6, 11, // SizeX = 11, SizeY = 6, SizeZ = 11 - - // Hitbox (relative to bounding box): - -1, 0, -1, // MinX, MinY, MinZ - 11, 5, 10, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 2\n" /* wood */ - "b: 17: 1\n" /* tree */ - "c: 35: 0\n" /* wool */ - "d:171: 0\n" /* carpet */ - "e:126: 1\n" /* woodenslab */ - "f: 64: 5\n" /* wooddoorblock */ - "g: 85: 0\n" /* fence */ - "h: 50: 1\n" /* torch */ - "i: 50: 2\n" /* torch */ - "j: 64:12\n" /* wooddoorblock */ - "k:126:11\n" /* woodenslab */ - "l: 17: 5\n" /* tree */ - "m: 19: 0\n" /* sponge */ - "n:126: 3\n" /* woodenslab */ - "o:125: 3\n" /* woodendoubleslab */ - "p: 5: 3\n" /* wood */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmmmmmmmm" - /* 1 */ "mmaaaaaaamm" - /* 2 */ "maaaaaaaaam" - /* 3 */ "maaaaaaaaam" - /* 4 */ "maaaaaaaaam" - /* 5 */ "maaaaaaaaam" - /* 6 */ "maaaaaaaaam" - /* 7 */ "maaaaaaaaam" - /* 8 */ "maaaaaaaaam" - /* 9 */ "mmaaaaaaamm" - /* 10 */ "mmmmmmmmmmm" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..bcbcbcb.." - /* 2 */ ".b.d.....b." - /* 3 */ ".cded....c." - /* 4 */ ".bded....b." - /* 5 */ ".c.d.....c." - /* 6 */ ".b.......b." - /* 7 */ ".c.......c." - /* 8 */ ".b.......b." - /* 9 */ "..bcbfbcb.." - /* 10 */ "..........." - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..bgbgbgb.." - /* 2 */ ".b.......b." - /* 3 */ ".g.......g." - /* 4 */ ".bh.....ib." - /* 5 */ ".g.......g." - /* 6 */ ".b.......b." - /* 7 */ ".g.......g." - /* 8 */ ".b.......b." - /* 9 */ "..bgbjbgb.." - /* 10 */ "..........." - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "...kkkkk..." - /* 1 */ "..bcbcbcb.." - /* 2 */ ".b.......b." - /* 3 */ "kc.......ck" - /* 4 */ "kb.......bk" - /* 5 */ "kc.......ck" - /* 6 */ "kb.......bk" - /* 7 */ "kc.......ck" - /* 8 */ ".b.......b." - /* 9 */ "..bcblbcb.." - /* 10 */ "...kkkkk..." - - // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ ".kn.....nk." - /* 1 */ "konnnnnnnok" - /* 2 */ "nnnnnnnnnnn" - /* 3 */ ".nnpppppnn." - /* 4 */ ".nnpkkkpnn." - /* 5 */ ".nnpkkkpnn." - /* 6 */ ".nnpkkkpnn." - /* 7 */ ".nnpppppnn." - /* 8 */ "nnnnnnnnnnn" - /* 9 */ "kknnnnnnnok" - /* 10 */ ".kn.....nk." - - // Level 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "n.........n" - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ "..........." - /* 4 */ "....nnn...." - /* 5 */ "....non...." - /* 6 */ "....nnn...." - /* 7 */ "..........." - /* 8 */ "..........." - /* 9 */ "..........." - /* 10 */ "n.........n", - - // Connectors: - "-1: 5, 1, 10: 3\n" /* Type -1, direction Z+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // HouseWide - - - - //////////////////////////////////////////////////////////////////////////////// - // HouseWithGarden: - // The data has been exported from the gallery Plains, area index 67, ID 130, created by Aloe_vera - { - // Size: - 16, 9, 16, // SizeX = 16, SizeY = 9, SizeZ = 16 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 16, 8, 16, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 5: 2\n" /* wood */ - "c: 2: 0\n" /* grass */ - "d:113: 0\n" /* netherbrickfence */ - "e: 17: 1\n" /* tree */ - "f: 35: 0\n" /* wool */ - "g:126: 2\n" /* woodenslab */ - "h: 31: 2\n" /* tallgrass */ - "i:125: 2\n" /* woodendoubleslab */ - "j: 38: 3\n" /* rose */ - "k: 38: 2\n" /* rose */ - "l: 38: 1\n" /* rose */ - "m: 19: 0\n" /* sponge */ - "n: 17: 2\n" /* tree */ - "o: 50: 4\n" /* torch */ - "p: 85: 0\n" /* fence */ - "q:140: 0\n" /* flowerpotblock */ - "r: 50: 3\n" /* torch */ - "s: 44: 8\n" /* step */ - "t: 50: 1\n" /* torch */ - "u: 50: 2\n" /* torch */ - "v: 43: 0\n" /* doubleslab */ - "w: 44: 0\n" /* step */ - "x: 18:10\n" /* leaves */, - - // Block data: - // Level 0 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "mmmmmmmmmaammmmm" - /* 1 */ "aabbbbbbbbbbaaam" - /* 2 */ "aabbbbbbbbbbaaam" - /* 3 */ "aabbbbbbbbbbaaam" - /* 4 */ "aabbbbbbbbbbaaam" - /* 5 */ "aabbbbbbbbbbaaam" - /* 6 */ "aabbbbbbbbbbaaam" - /* 7 */ "aabbbbbbbbbbaaam" - /* 8 */ "aabbbbbbbbbbaaam" - /* 9 */ "aabbbbbbbbbbaaam" - /* 10 */ "aaaaaaaaaaaaaaam" - /* 11 */ "aaaaaaaaaaaaaaam" - /* 12 */ "aaaaaaaaaaaaaaam" - /* 13 */ "aaaaaaaaaaaaaaam" - /* 14 */ "aaaaaaaaaaaaaaam" - /* 15 */ "mmmmmmmmmmmmmmmm" - - // Level 1 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "mmmmmmmmmccmmmmm" - /* 1 */ "ccbbbbbbbbbbcccm" - /* 2 */ "ccbbbbbbbbbbcccm" - /* 3 */ "ccbbbbbbbbbbcccm" - /* 4 */ "ccbbbbbbbbbbcccm" - /* 5 */ "ccbbbbbbbbbbcccm" - /* 6 */ "ccbbbbbbbbbbcccm" - /* 7 */ "ccbbbbbbbbbbcccm" - /* 8 */ "ccbbbbbbbbbbcccm" - /* 9 */ "ccbbbbbbbbbbcccm" - /* 10 */ "cccccccccccccccm" - /* 11 */ "cccccccccccccccm" - /* 12 */ "cccccccccccccccm" - /* 13 */ "cccccccccccccacm" - /* 14 */ "cccccccccccccccm" - /* 15 */ "mmmmmmmmmmmmmmmm" - - // Level 2 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "ddeffeffe..eddd." - /* 2 */ "d.fbbgggg..f..d." - /* 3 */ "d.fbgggggggf.hd." - /* 4 */ "d.fbgggggggf..d." - /* 5 */ "d.eggggggggehhd." - /* 6 */ "d.fgiiggiigf.hd." - /* 7 */ "d.fgiiggiigf..d." - /* 8 */ "d.fggggggggf..d." - /* 9 */ "d.efffeefffe.hd." - /* 10 */ "d.............d." - /* 11 */ "djhhk.jhh..hh.d." - /* 12 */ "d.jlk.hj.h....d." - /* 13 */ "d..jh.hh..h..nd." - /* 14 */ "ddddddddddddddd." - /* 15 */ "................" - - // Level 3 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "........o..o...." - /* 1 */ "..eppeffe..e...." - /* 2 */ "..pqq......p...." - /* 3 */ "..pq.......p...." - /* 4 */ "..pq.......p...." - /* 5 */ "..e........e...." - /* 6 */ "..p........p...." - /* 7 */ "..p........p...." - /* 8 */ "..p........p...." - /* 9 */ "..epppeepppe...." - /* 10 */ "......rr........" - /* 11 */ "................" - /* 12 */ "................" - /* 13 */ ".............n.." - /* 14 */ "................" - /* 15 */ "................" - - // Level 4 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "..ssssssssss...." - /* 1 */ ".seffeffeffes..." - /* 2 */ ".sf..r.....fs..." - /* 3 */ ".sf........fs..." - /* 4 */ ".sf........fs..." - /* 5 */ ".set......ues..." - /* 6 */ ".sf........fs..." - /* 7 */ ".sf........fs..." - /* 8 */ ".sf........fs..." - /* 9 */ ".sefffeefffes..." - /* 10 */ "..ssssssssss...." - /* 11 */ "................" - /* 12 */ "................" - /* 13 */ ".............n.." - /* 14 */ "................" - /* 15 */ "................" - - // Level 5 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ ".vw........wv..." - /* 1 */ ".wwwwwwwwwwww..." - /* 2 */ "..wvvvvvvvvw...." - /* 3 */ "..wvvvvvvvvw...." - /* 4 */ "..wvvvvvvvvw...." - /* 5 */ "..wvvvvvvvvw...." - /* 6 */ "..wvvvvvvvvw...." - /* 7 */ "..wvvvvvvvvw...." - /* 8 */ "..wvvvvvvvvw...." - /* 9 */ ".wwwwwwwwwwww..." - /* 10 */ ".vw........wv..." - /* 11 */ "............xxx." - /* 12 */ "...........xxxxx" - /* 13 */ "...........xxnxx" - /* 14 */ "...........xxxxx" - /* 15 */ "............xxx." - - // Level 6 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "................" - /* 2 */ "................" - /* 3 */ "....wwwwww......" - /* 4 */ "....wvvvvw......" - /* 5 */ "....wvvvvw......" - /* 6 */ "....wvvvvw......" - /* 7 */ "....wwwwww......" - /* 8 */ "................" - /* 9 */ "................" - /* 10 */ "................" - /* 11 */ "............xxx." - /* 12 */ "...........xxxxx" - /* 13 */ "...........xxnxx" - /* 14 */ "...........xxxxx" - /* 15 */ "............xxx." - - // Level 7 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "................" - /* 2 */ "................" - /* 3 */ "................" - /* 4 */ "................" - /* 5 */ "......ww........" - /* 6 */ "................" - /* 7 */ "................" - /* 8 */ "................" - /* 9 */ "................" - /* 10 */ "................" - /* 11 */ "................" - /* 12 */ "............xxx." - /* 13 */ "............xnx." - /* 14 */ "............xx.." - /* 15 */ "................" - - // Level 8 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "................" - /* 2 */ "................" - /* 3 */ "................" - /* 4 */ "................" - /* 5 */ "................" - /* 6 */ "................" - /* 7 */ "................" - /* 8 */ "................" - /* 9 */ "................" - /* 10 */ "................" - /* 11 */ "................" - /* 12 */ ".............x.." - /* 13 */ "............xxx." - /* 14 */ ".............x.." - /* 15 */ "................", - - // Connectors: - "-1: 9, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // HouseWithGarden - - - - //////////////////////////////////////////////////////////////////////////////// - // HouseWithSakura1: - // The data has been exported from the gallery Plains, area index 75, ID 141, created by Aloe_vera - { - // Size: - 13, 7, 15, // SizeX = 13, SizeY = 7, SizeZ = 15 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 13, 6, 15, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 2: 0\n" /* grass */ - "c: 17: 5\n" /* tree */ - "d: 5: 2\n" /* wood */ - "e: 17: 9\n" /* tree */ - "f:113: 0\n" /* netherbrickfence */ - "g: 17: 1\n" /* tree */ - "h: 35: 0\n" /* wool */ - "i: 31: 2\n" /* tallgrass */ - "j: 54: 2\n" /* chest */ - "k: 38: 6\n" /* rose */ - "l: 38: 2\n" /* rose */ - "m: 19: 0\n" /* sponge */ - "n: 50: 4\n" /* torch */ - "o: 85: 0\n" /* fence */ - "p: 44: 8\n" /* step */ - "q: 35: 6\n" /* wool */ - "r: 43: 0\n" /* doubleslab */ - "s: 44: 0\n" /* step */, - - // Block data: - // Level 0 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "aaaaaaaaaaaaa" - /* 1 */ "aaaaaaaaaaaaa" - /* 2 */ "aaaaaaaaaaaaa" - /* 3 */ "aaaaaaaaaaaaa" - /* 4 */ "aaaaaaaaaaaaa" - /* 5 */ "aaaaaaaaaaaaa" - /* 6 */ "aaaaaaaaaaaaa" - /* 7 */ "aaaaaaaaaaaaa" - /* 8 */ "aaaaaaaaaaaaa" - /* 9 */ "aaaaaaaaaaaaa" - /* 10 */ "aaaaaaaaaaaaa" - /* 11 */ "aaaaaaaaaaaaa" - /* 12 */ "aaaaaaaaaaaaa" - /* 13 */ "aaaaaaaaaaaaa" - /* 14 */ "aaaaaaaaaaaaa" - - // Level 1 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "bbbbbbbbbbbbb" - /* 1 */ "bbbbbbbbbbbbb" - /* 2 */ "bbbaccdabbbbb" - /* 3 */ "bbbedddebbbbb" - /* 4 */ "bbbedddebbbbb" - /* 5 */ "bbbedddebbbbb" - /* 6 */ "bbbacccabbbbb" - /* 7 */ "bbbbbbbbbbbbb" - /* 8 */ "bbbbbbbbbbbbb" - /* 9 */ "bbbbbbbbbbbbb" - /* 10 */ "bbbbbbbbbbabb" - /* 11 */ "bbbbbbbbbbbbb" - /* 12 */ "bbbbbbbbbbbbb" - /* 13 */ "bbbbbbbbbbbbb" - /* 14 */ "bbbbbbbbbbbbb" - - // Level 2 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "ffff...ffffff" - /* 1 */ "f...........f" - /* 2 */ "f..ghh.g..i.f" - /* 3 */ "f..h...h..i.f" - /* 4 */ "f..h...h....f" - /* 5 */ "fi.h..jh..i.f" - /* 6 */ "f..ghhhg....f" - /* 7 */ "f.........i.f" - /* 8 */ "fii.........f" - /* 9 */ "f.k..k.i....f" - /* 10 */ "fl.i..i...g.f" - /* 11 */ "f.i..i.k....f" - /* 12 */ "f.l.k.......f" - /* 13 */ "f.....l.....f" - /* 14 */ "fffffffffffff" - - // Level 3 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ ".......n....." - /* 2 */ "...goo.g....." - /* 3 */ "...h...h....." - /* 4 */ "...o...o....." - /* 5 */ "...h...h....." - /* 6 */ "...gooog....." - /* 7 */ "............." - /* 8 */ "............." - /* 9 */ "............." - /* 10 */ "..........g.." - /* 11 */ "............." - /* 12 */ "............." - /* 13 */ "............." - /* 14 */ "............." - - // Level 4 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ "...ppppp....." - /* 2 */ "..pghhhgp...." - /* 3 */ "..ph...hp...." - /* 4 */ "..ph...hp...." - /* 5 */ "..ph...hp...." - /* 6 */ "..pghhhgp...." - /* 7 */ "...ppppp....." - /* 8 */ "............." - /* 9 */ "..........q.." - /* 10 */ ".........qgq." - /* 11 */ "..........q.." - /* 12 */ "............." - /* 13 */ "............." - /* 14 */ "............." - - // Level 5 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ "..rs...sr...." - /* 2 */ "..sssssss...." - /* 3 */ "...srrrs....." - /* 4 */ "...srrrs....." - /* 5 */ "...srrrs....." - /* 6 */ "..sssssss...." - /* 7 */ "..rs...sr...." - /* 8 */ "............." - /* 9 */ ".........qqq." - /* 10 */ ".........qqq." - /* 11 */ ".........qqq." - /* 12 */ "............." - /* 13 */ "............." - /* 14 */ "............." - - // Level 6 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ "............." - /* 2 */ "............." - /* 3 */ "............." - /* 4 */ ".....s......." - /* 5 */ "............." - /* 6 */ "............." - /* 7 */ "............." - /* 8 */ "............." - /* 9 */ "............." - /* 10 */ "..........q.." - /* 11 */ "............." - /* 12 */ "............." - /* 13 */ "............." - /* 14 */ ".............", - - // Connectors: - "-1: 5, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // HouseWithSakura1 - - - - //////////////////////////////////////////////////////////////////////////////// - // HouseWithSpa: - // The data has been exported from the gallery Plains, area index 73, ID 139, created by Aloe_vera - { - // Size: - 16, 8, 14, // SizeX = 16, SizeY = 8, SizeZ = 14 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 15, 7, 13, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 2\n" /* wood */ - "b: 3: 0\n" /* dirt */ - "c: 2: 0\n" /* grass */ - "d: 8: 0\n" /* water */ - "e:135: 3\n" /* 135 */ - "f:135: 1\n" /* 135 */ - "g:113: 0\n" /* netherbrickfence */ - "h: 17: 1\n" /* tree */ - "i: 35: 0\n" /* wool */ - "j:171:12\n" /* carpet */ - "k: 64: 6\n" /* wooddoorblock */ - "l:126: 2\n" /* woodenslab */ - "m: 19: 0\n" /* sponge */ - "n:135: 2\n" /* 135 */ - "o: 64: 7\n" /* wooddoorblock */ - "p: 50: 4\n" /* torch */ - "q: 85: 0\n" /* fence */ - "r: 64:12\n" /* wooddoorblock */ - "s: 50: 3\n" /* torch */ - "t: 44: 8\n" /* step */ - "u: 43: 0\n" /* doubleslab */ - "v: 44: 0\n" /* step */, - - // Block data: - // Level 0 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ ".aaaaaaaaaaaaaa." - /* 2 */ ".aaaaaaaaaaaaaa." - /* 3 */ ".aaaaaaaaaaaaaa." - /* 4 */ ".aaaaaaaaaaaaaa." - /* 5 */ ".aaaaaaaaaaaaaa." - /* 6 */ ".aaaaaaaaaaaaaa." - /* 7 */ ".aaaaaabbbbbbbbb" - /* 8 */ ".aaaaaabbbbbbbbb" - /* 9 */ ".aaaaaabbbbbbbbb" - /* 10 */ ".aaaaaabbbbbbbbb" - /* 11 */ ".aaaaaabbbbbbbbb" - /* 12 */ ".aaaaaabbbbbbbbb" - /* 13 */ ".......bbbbbbbbb" - - // Level 1 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "mmmmmmmmmmmmmmmm" - /* 1 */ "maaaaaaaaaaaaaam" - /* 2 */ "maaaaaaaaaaaaaam" - /* 3 */ "maaaaaaaaaaaaaam" - /* 4 */ "maaaaaaaaaaaaaam" - /* 5 */ "maaaaaaaaaaaaaam" - /* 6 */ "maaaaaaaaaaaaaam" - /* 7 */ "maaaaaaaaaaccccc" - /* 8 */ "maaaaaaacccccccc" - /* 9 */ "maaaaaaacccccccc" - /* 10 */ "maaaaaaacccccccc" - /* 11 */ "maaaaaaccccccccc" - /* 12 */ "maaaaaaccccccccc" - /* 13 */ "mmmmmmmccccccccc" - - // Level 2 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ ".aaaaaaaaaaaaaa." - /* 2 */ ".aaaaaaaaaaaaaa." - /* 3 */ ".aaaaaaaaaaaaaa." - /* 4 */ ".aaaaaaaaaaaaaa." - /* 5 */ ".aaaaaaaaaaaaaa." - /* 6 */ ".aaddaaaaaaaaaa." - /* 7 */ ".aaddaaeeef....." - /* 8 */ ".aaddaaf........" - /* 9 */ ".aaddaaf........" - /* 10 */ ".aaddaae........" - /* 11 */ ".aaddaa........." - /* 12 */ ".aaaaaa........." - /* 13 */ "................" - - // Level 3 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ ".ggggghiiihiiih." - /* 2 */ ".geee.ijjjjjjji." - /* 3 */ ".gf...kjjjijlji." - /* 4 */ ".gf...innjijjji." - /* 5 */ ".g....hiiohiiih." - /* 6 */ ".g....g........." - /* 7 */ ".g.............." - /* 8 */ ".g.............." - /* 9 */ ".g.............." - /* 10 */ ".g....g........." - /* 11 */ ".g....g........." - /* 12 */ ".gggggg........." - /* 13 */ "................" - - // Level 4 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "......p...p...p." - /* 1 */ ".g....hqqqhqqqh." - /* 2 */ "......i.......i." - /* 3 */ "......r...q...q." - /* 4 */ "......i...q...i." - /* 5 */ "......hqqrhqqqh." - /* 6 */ "......g...s....." - /* 7 */ "................" - /* 8 */ "................" - /* 9 */ "................" - /* 10 */ "................" - /* 11 */ "................" - /* 12 */ ".g....g........." - /* 13 */ "................" - - // Level 5 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ ".tttttttttttttt." - /* 1 */ "tggggghqqqhqqqht" - /* 2 */ "tg....i.......it" - /* 3 */ "tg....i...i...it" - /* 4 */ "tg....i...i...it" - /* 5 */ "tg....hiiihiiiht" - /* 6 */ "tg....gtttttttt." - /* 7 */ "tg....gt........" - /* 8 */ "tg....gt........" - /* 9 */ "tg....gt........" - /* 10 */ "tg....gt........" - /* 11 */ "tg....gt........" - /* 12 */ "tggggggt........" - /* 13 */ ".tttttt........." - - // Level 6 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "uv............vu" - /* 1 */ "vvvvvvvvvvvvvvvv" - /* 2 */ ".vuuuuuuuuuuuuv." - /* 3 */ ".vuuuuuutuuuuuv." - /* 4 */ ".vuuuuuuuuuuuuv." - /* 5 */ ".vuuuuvvvvvvvvvv" - /* 6 */ ".vuuuuv.......vu" - /* 7 */ ".vuuuuv........." - /* 8 */ ".vuuuuv........." - /* 9 */ ".vuuuuv........." - /* 10 */ ".vuuuuv........." - /* 11 */ ".vuuuuv........." - /* 12 */ "vvvvvvvv........" - /* 13 */ "uv....vu........" - - // Level 7 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "................" - /* 2 */ "................" - /* 3 */ "...vvvvvvvvvv..." - /* 4 */ "...vv..........." - /* 5 */ "...vv..........." - /* 6 */ "...vv..........." - /* 7 */ "...vv..........." - /* 8 */ "...vv..........." - /* 9 */ "...vv..........." - /* 10 */ "...vv..........." - /* 11 */ "................" - /* 12 */ "................" - /* 13 */ "................", - - // Connectors: - "", - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // HouseWithSpa - - - - //////////////////////////////////////////////////////////////////////////////// - // MediumSakuraTree: - // The data has been exported from the gallery Plains, area index 146, ID 490, created by STR_Warrior - { - // Size: - 7, 10, 7, // SizeX = 7, SizeY = 10, SizeZ = 7 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 6, 9, 6, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 2: 0\n" /* grass */ - "c: 31: 1\n" /* tallgrass */ - "d: 38: 7\n" /* rose */ - "e: 17: 1\n" /* tree */ - "f: 38: 0\n" /* rose */ - "g: 38: 8\n" /* rose */ - "h: 38: 5\n" /* rose */ - "i: 35: 6\n" /* wool */ - "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" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "bbbbbbb" - /* 1 */ "bbbbbbb" - /* 2 */ "bbbbbbb" - /* 3 */ "bbbabbb" - /* 4 */ "bbbbbbb" - /* 5 */ "bbbbbbb" - /* 6 */ "bbbbbbb" - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ "mm...mm" - /* 1 */ "m.c...m" - /* 2 */ ".dccdc." - /* 3 */ "..cefc." - /* 4 */ ".ccfgh." - /* 5 */ "m.ccc.m" - /* 6 */ "mm...mm" - - // Level 3 - /* z\x* 0123456 */ - /* 0 */ "m.....m" - /* 1 */ "......." - /* 2 */ "......." - /* 3 */ "...e..." - /* 4 */ "......." - /* 5 */ "......." - /* 6 */ "m.....m" - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "..i...." - /* 2 */ "......." - /* 3 */ "...e.i." - /* 4 */ ".i....." - /* 5 */ "......." - /* 6 */ "......." - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "..i...." - /* 2 */ "...i..." - /* 3 */ "..ieii." - /* 4 */ ".i.ii.." - /* 5 */ "...i..." - /* 6 */ "......." - - // Level 6 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "..ii..." - /* 2 */ "..iii.." - /* 3 */ ".iieii." - /* 4 */ ".iiii.." - /* 5 */ "..iii.." - /* 6 */ "......." - - // Level 7 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "..iii.." - /* 2 */ ".iiiii." - /* 3 */ ".iieii." - /* 4 */ ".iiiii." - /* 5 */ "..iii.." - /* 6 */ "......." - - // Level 8 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "...i..." - /* 2 */ "..iiii." - /* 3 */ ".iiiii." - /* 4 */ "..iii.." - /* 5 */ "...i..." - /* 6 */ "......." - - // Level 9 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "......." - /* 2 */ "...i..." - /* 3 */ "..iii.." - /* 4 */ "...i..." - /* 5 */ "......." - /* 6 */ ".......", - - // Connectors: - "-1: 3, 2, 0: 2\n" /* Type -1, direction Z- */ - "3: 6, 2, 3: 5\n" /* Type 3, direction X+ */ - "-3: 0, 2, 3: 4\n" /* Type -3, direction X- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // MediumSakuraTree - - - - //////////////////////////////////////////////////////////////////////////////// - // Restaurant: - // The data has been exported from the gallery Plains, area index 61, ID 117, created by Aloe_vera - { - // Size: - 15, 10, 15, // SizeX = 15, SizeY = 10, SizeZ = 15 - - // Hitbox (relative to bounding box): - -1, 0, -1, // MinX, MinY, MinZ - 14, 9, 15, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 2\n" /* wood */ - "b:135: 0\n" /* 135 */ - "c:135: 2\n" /* 135 */ - "d:135: 1\n" /* 135 */ - "e: 17: 9\n" /* tree */ - "f:135: 3\n" /* 135 */ - "g: 85: 0\n" /* fence */ - "h: 17: 1\n" /* tree */ - "i:171: 0\n" /* carpet */ - "j:171:12\n" /* carpet */ - "k:126: 1\n" /* woodenslab */ - "l: 50: 5\n" /* torch */ - "m: 19: 0\n" /* sponge */ - "n: 35: 0\n" /* wool */ - "o: 50: 3\n" /* torch */ - "p: 50: 1\n" /* torch */ - "q: 50: 4\n" /* torch */ - "r: 35:14\n" /* wool */ - "s: 44: 8\n" /* step */ - "t: 43: 0\n" /* doubleslab */ - "u: 44: 0\n" /* step */ - "v: 17: 5\n" /* tree */, - - // Block data: - // Level 0 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "mmmmaaaaaaammmm" - /* 1 */ "maaaaaaaaaaaaam" - /* 2 */ "maaaaaaaaaaaaam" - /* 3 */ "maaaaaaaaaaaaam" - /* 4 */ "aaaaaaaaaaaaaaa" - /* 5 */ "aaaaaaaaaaaaaaa" - /* 6 */ "aaaaaaaaaaaaaaa" - /* 7 */ "aaaaaaaaaaaaaaa" - /* 8 */ "aaaaaaaaaaaaaaa" - /* 9 */ "aaaaaaaaaaaaaaa" - /* 10 */ "aaaaaaaaaaaaaaa" - /* 11 */ "maaaaaaaaaaaaam" - /* 12 */ "maaaaaaaaaaaaam" - /* 13 */ "maaaaaaaaaaaaam" - /* 14 */ "mmmmaaaaaaammmm" - - // Level 1 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "....bcccccd...." - /* 1 */ ".aaaaaaaaaaaaa." - /* 2 */ ".aaaaaaaaaaaaa." - /* 3 */ ".aaaaaaaaaaaaa." - /* 4 */ "caaaaaaaaaaaaac" - /* 5 */ "baaaaaaaaaaaaad" - /* 6 */ "baaaaaaaaaaaaad" - /* 7 */ "baaaaaaaaaaeaad" - /* 8 */ "baaaaaaaaaaaaad" - /* 9 */ "baaaaaaaaaaaaad" - /* 10 */ "faaaaaaaaaaaaaf" - /* 11 */ ".aaaaaaaaaaaaa." - /* 12 */ ".aaaaaaaaaaaaa." - /* 13 */ ".aaaaaaaaaaaaa." - /* 14 */ "....bfffffd...." - - // Level 2 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".gggg.....gggg." - /* 2 */ ".g...........g." - /* 3 */ ".g.hhhhhhhhh.g." - /* 4 */ ".g.hiiijiiih.g." - /* 5 */ "...hikijikih..." - /* 6 */ "...hiiijiiihg.." - /* 7 */ "...hjjjjjjj...." - /* 8 */ "...hiiijiiihg.." - /* 9 */ "...hikijikih..." - /* 10 */ ".g.hiiijiiih.g." - /* 11 */ ".g.hhhhhhhhh.g." - /* 12 */ ".g...........g." - /* 13 */ ".gggg.....gggg." - /* 14 */ "..............." - - // Level 3 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".l..g.....g..l." - /* 2 */ "..............." - /* 3 */ "...hnnnhnnnh..." - /* 4 */ ".g.n.......n.g." - /* 5 */ "...n.......n..." - /* 6 */ "...n.......hl.." - /* 7 */ "...h..........." - /* 8 */ "...n.......hl.." - /* 9 */ "...n.......n..." - /* 10 */ ".g.n.......n.g." - /* 11 */ "...hnnnhnnnh..." - /* 12 */ "..............." - /* 13 */ ".l..g.....g..l." - /* 14 */ "..............." - - // Level 4 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "....g.....g...." - /* 2 */ "..............." - /* 3 */ "...hn.nhn.nh..." - /* 4 */ ".g.n...o...n.g." - /* 5 */ "...n.......n..." - /* 6 */ "...n.......h..." - /* 7 */ "...hp......e..." - /* 8 */ "...n.......h..." - /* 9 */ "...n.......n..." - /* 10 */ ".g.n...q...n.g." - /* 11 */ "...hn.nhn.nh..." - /* 12 */ "..............." - /* 13 */ "....g.....g...." - /* 14 */ "..............." - - // Level 5 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "....g.....g...." - /* 2 */ "....ggggggg...." - /* 3 */ "...hnnnhnnnh..." - /* 4 */ ".ggn.......ngg." - /* 5 */ "..gn.......ng.." - /* 6 */ "..gn.......hg.." - /* 7 */ "..gh..r.r..ng.." - /* 8 */ "..gn.......hg.." - /* 9 */ "..gn.......ng.." - /* 10 */ ".ggn.......ngg." - /* 11 */ "...hnnnhnnnh..." - /* 12 */ "....ggggggg...." - /* 13 */ "....g.....g...." - /* 14 */ "..............." - - // Level 6 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "...stuuuuuts..." - /* 2 */ "..sttttttttts.." - /* 3 */ ".sthvvvhvvvhts." - /* 4 */ ".tte.......ett." - /* 5 */ ".ute.......etu." - /* 6 */ ".ute.......htu." - /* 7 */ ".uth..g.g..etu." - /* 8 */ ".ute.......htu." - /* 9 */ ".ute.......etu." - /* 10 */ ".tte.......ett." - /* 11 */ ".sthvvvhvvvhts." - /* 12 */ "..sttttttttts.." - /* 13 */ "...stuuuuuts..." - /* 14 */ "..............." - - // Level 7 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".stu.......uts." - /* 2 */ ".tu.........ut." - /* 3 */ ".u.uuuuuuuuu.u." - /* 4 */ "...utttttttu..." - /* 5 */ "...utttttttu..." - /* 6 */ "...utttttttu..." - /* 7 */ "...utttttttu..." - /* 8 */ "...utttttttu..." - /* 9 */ "...utttttttu..." - /* 10 */ "...utttttttu..." - /* 11 */ ".u.uuuuuuuuu.u." - /* 12 */ ".tu.........ut." - /* 13 */ ".stu.......uts." - /* 14 */ "..............." - - // Level 8 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".u...........u." - /* 2 */ "..............." - /* 3 */ "..............." - /* 4 */ "..............." - /* 5 */ ".....uuuuu....." - /* 6 */ ".....utttu....." - /* 7 */ ".....utttu....." - /* 8 */ ".....utttu....." - /* 9 */ ".....uuuuu....." - /* 10 */ "..............." - /* 11 */ "..............." - /* 12 */ "..............." - /* 13 */ ".u...........u." - /* 14 */ "..............." - - // Level 9 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ "..............." - /* 3 */ "..............." - /* 4 */ "..............." - /* 5 */ "..............." - /* 6 */ "..............." - /* 7 */ ".......u......." - /* 8 */ "..............." - /* 9 */ "..............." - /* 10 */ "..............." - /* 11 */ "..............." - /* 12 */ "..............." - /* 13 */ "..............." - /* 14 */ "...............", - - // Connectors: - "-1: 14, 1, 7: 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, - }, // Restaurant - - - - //////////////////////////////////////////////////////////////////////////////// - // SakuraDouble: - // The data has been exported from the gallery Plains, area index 76, ID 142, created by Aloe_vera - { - // Size: - 12, 8, 6, // SizeX = 12, SizeY = 8, SizeZ = 6 - - // Hitbox (relative to bounding box): - -1, 0, -1, // MinX, MinY, MinZ - 12, 7, 6, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 2: 0\n" /* grass */ - "c: 17: 1\n" /* tree */ - "d: 35: 6\n" /* wool */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "aaaaaaaaaaaa" - /* 1 */ "aaaaaaaaaaaa" - /* 2 */ "aaaaaaaaaaaa" - /* 3 */ "aaaaaaaaaaaa" - /* 4 */ "aaaaaaaaaaaa" - /* 5 */ "aaaaaaaaaaaa" - - // Level 1 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "bbbbbbbbbbbb" - /* 1 */ "bbbbbbbbbbbb" - /* 2 */ "bbabbbbbbbbb" - /* 3 */ "bbbbbbbbbabb" - /* 4 */ "bbbbbbbbbbbb" - /* 5 */ "bbbbbbbbbbbb" - - // Level 2 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "............" - /* 2 */ "..c........." - /* 3 */ ".........c.." - /* 4 */ "............" - /* 5 */ "............" - - // Level 3 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "............" - /* 2 */ "..c........." - /* 3 */ ".........c.." - /* 4 */ "............" - /* 5 */ "............" - - // Level 4 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "..d........." - /* 1 */ "ddddd......." - /* 2 */ "ddcdd...ddd." - /* 3 */ "ddddd...dcd." - /* 4 */ "..d.....ddd." - /* 5 */ "............" - - // Level 5 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ ".ddd........" - /* 1 */ ".ddd....ddd." - /* 2 */ "ddddd..ddddd" - /* 3 */ ".ddd...ddcdd" - /* 4 */ ".ddd...ddddd" - /* 5 */ "........ddd." - - // Level 6 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "..d......d.." - /* 2 */ ".ddd....ddd." - /* 3 */ "..d....ddddd" - /* 4 */ "........ddd." - /* 5 */ ".........d.." - - // Level 7 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "............" - /* 2 */ "............" - /* 3 */ ".........d.." - /* 4 */ "............" - /* 5 */ "............", - - // Connectors: - "-1: -1, 2, 2: 4\n" /* Type -1, direction X- */ - "3: 5, 2, 6: 3\n" /* Type 3, direction Z+ */ - "-3: 6, 2, -1: 2\n" /* Type -3, direction Z- */ - "-3: 12, 2, 2: 5\n" /* Type -3, direction X+ */ - "3: 12, 2, 2: 5\n" /* Type 3, direction X+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // SakuraDouble - - - - //////////////////////////////////////////////////////////////////////////////// - // SakuraSmall: - // The data has been exported from the gallery Plains, area index 145, ID 489, created by Aloe_vera - { - // Size: - 5, 7, 5, // SizeX = 5, SizeY = 7, SizeZ = 5 - - // Hitbox (relative to bounding box): - -1, 0, -1, // MinX, MinY, MinZ - 5, 6, 5, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 2: 0\n" /* grass */ - "c: 17: 1\n" /* tree */ - "d: 35: 6\n" /* wool */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 01234 */ - /* 0 */ "aaaaa" - /* 1 */ "aaaaa" - /* 2 */ "aaaaa" - /* 3 */ "aaaaa" - /* 4 */ "aaaaa" - - // Level 1 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bbbbb" - /* 2 */ "bbabb" - /* 3 */ "bbbbb" - /* 4 */ "bbbbb" - - // Level 2 - /* z\x* 01234 */ - /* 0 */ "....." - /* 1 */ "....." - /* 2 */ "..c.." - /* 3 */ "....." - /* 4 */ "....." - - // Level 3 - /* z\x* 01234 */ - /* 0 */ "....." - /* 1 */ "....." - /* 2 */ "..c.." - /* 3 */ "....." - /* 4 */ "....." - - // Level 4 - /* z\x* 01234 */ - /* 0 */ "..d.." - /* 1 */ "ddddd" - /* 2 */ "ddcdd" - /* 3 */ "ddddd" - /* 4 */ "..d.." - - // Level 5 - /* z\x* 01234 */ - /* 0 */ ".ddd." - /* 1 */ ".ddd." - /* 2 */ "ddddd" - /* 3 */ ".ddd." - /* 4 */ ".ddd." - - // Level 6 - /* z\x* 01234 */ - /* 0 */ "....." - /* 1 */ "..d.." - /* 2 */ ".ddd." - /* 3 */ "..d.." - /* 4 */ ".....", - - // Connectors: - "-1: 2, 2, -1: 2\n" /* Type -1, direction Z- */ - "3: 5, 2, 2: 5\n" /* Type 3, direction X+ */ - "-3: -1, 2, 2: 4\n" /* Type -3, direction X- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // SakuraSmall -}; // 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 - { - // Size: - 11, 19, 11, // SizeX = 11, SizeY = 19, SizeZ = 11 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 10, 18, 10, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 2\n" /* wood */ - "b:135: 0\n" /* 135 */ - "c:135: 2\n" /* 135 */ - "d:135: 1\n" /* 135 */ - "e: 17: 9\n" /* tree */ - "f:135: 3\n" /* 135 */ - "g: 85: 0\n" /* fence */ - "h: 17: 1\n" /* tree */ - "i:171: 0\n" /* carpet */ - "j: 50: 5\n" /* torch */ - "k: 35: 0\n" /* wool */ - "l: 17: 5\n" /* tree */ - "m: 19: 0\n" /* sponge */ - "n:124: 0\n" /* redstonelampon */ - "o: 69: 9\n" /* lever */ - "p: 44: 8\n" /* step */ - "q: 43: 0\n" /* doubleslab */ - "r: 44: 0\n" /* step */ - "s: 50: 4\n" /* torch */ - "t: 50: 1\n" /* torch */ - "u: 50: 3\n" /* torch */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmaaaaammm" - /* 1 */ "maaaaaaaaam" - /* 2 */ "maaaaaaaaam" - /* 3 */ "aaaaaaaaaaa" - /* 4 */ "aaaaaaaaaaa" - /* 5 */ "aaaaaaaaaaa" - /* 6 */ "aaaaaaaaaaa" - /* 7 */ "aaaaaaaaaaa" - /* 8 */ "maaaaaaaaam" - /* 9 */ "maaaaaaaaam" - /* 10 */ "mmmaaaaammm" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "...bcccd..." - /* 1 */ ".aaaaaaaaa." - /* 2 */ ".aaaaaaaaa." - /* 3 */ "caaaaaaaaac" - /* 4 */ "baaaaaaaaad" - /* 5 */ "baaeaaaaaad" - /* 6 */ "baaaaaaaaad" - /* 7 */ "faaaaaaaaaf" - /* 8 */ ".aaaaaaaaa." - /* 9 */ ".aaaaaaaaa." - /* 10 */ "...bfffd..." - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".ggg...ggg." - /* 2 */ ".g.......g." - /* 3 */ ".g.hhhhh.g." - /* 4 */ "...hiiih..." - /* 5 */ "....iiih..." - /* 6 */ "...hiiih..." - /* 7 */ ".g.hhhhh.g." - /* 8 */ ".g.......g." - /* 9 */ ".ggg...ggg." - /* 10 */ "..........." - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".j.g...g.j." - /* 2 */ "..........." - /* 3 */ ".g.kkhkk.g." - /* 4 */ "...h...k..." - /* 5 */ ".......h..." - /* 6 */ "...h...k..." - /* 7 */ ".g.kkhkk.g." - /* 8 */ "..........." - /* 9 */ ".j.g...g.j." - /* 10 */ "..........." - - // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "...g...g..." - /* 2 */ "..........." - /* 3 */ ".g.kkhkk.g." - /* 4 */ "...h...k..." - /* 5 */ "...k...h..." - /* 6 */ "...h...k..." - /* 7 */ ".g.kkhkk.g." - /* 8 */ "..........." - /* 9 */ "...g...g..." - /* 10 */ "..........." - - // Level 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "...g...g..." - /* 2 */ "...ggggg..." - /* 3 */ ".gghlhlhgg." - /* 4 */ "..ge...eg.." - /* 5 */ "..ge.nohg.." - /* 6 */ "..ge...eg.." - /* 7 */ ".gghlhlhgg." - /* 8 */ "...ggggg..." - /* 9 */ "...g...g..." - /* 10 */ "..........." - - // Level 6 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..pqrrrqp.." - /* 2 */ ".pqqqqqqqp." - /* 3 */ ".qqhkkkhqq." - /* 4 */ ".rqkhhhkqr." - /* 5 */ ".rqkhhhkqr." - /* 6 */ ".rqkhhhkqr." - /* 7 */ ".qqhkkkhqq." - /* 8 */ ".pqqqqqqqp." - /* 9 */ "..pqrrrqp.." - /* 10 */ "..........." - - // Level 7 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".qr.....rq." - /* 2 */ ".........r." - /* 3 */ "...hhhhh..." - /* 4 */ "...hiiih..." - /* 5 */ "....iiih..." - /* 6 */ "...hiiih..." - /* 7 */ "...hhhhh..." - /* 8 */ ".r.......r." - /* 9 */ ".qr.....rq." - /* 10 */ "..........." - - // Level 8 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ "...kkhkk..." - /* 4 */ "...h...k..." - /* 5 */ ".......h..." - /* 6 */ "...h...k..." - /* 7 */ "...kkhkk..." - /* 8 */ "..........." - /* 9 */ "..........." - /* 10 */ "..........." - - // Level 9 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ ".....s....." - /* 3 */ "...kkhkk..." - /* 4 */ "...h...k..." - /* 5 */ "...k...ht.." - /* 6 */ "...h...k..." - /* 7 */ "...kkhkk..." - /* 8 */ ".....u....." - /* 9 */ "..........." - /* 10 */ "..........." - - // Level 10 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "...ggggg..." - /* 3 */ "..ghlhlhg.." - /* 4 */ "..ge...eg.." - /* 5 */ "..ge.nohg.." - /* 6 */ "..ge...eg.." - /* 7 */ "..ghlhlhg.." - /* 8 */ "...ggggg..." - /* 9 */ "..........." - /* 10 */ "..........." - - // Level 11 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..prrrrrp.." - /* 2 */ ".pqqqqqqqp." - /* 3 */ ".qqhkkkhqq." - /* 4 */ ".rqkhhhkqr." - /* 5 */ ".rqkhhhkqr." - /* 6 */ ".rqkhhhkqr." - /* 7 */ ".qqhkkkhqr." - /* 8 */ ".pqqqqqqqp." - /* 9 */ "..pqrrrqp.." - /* 10 */ "..........." - - // Level 12 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".qr.....rq." - /* 2 */ ".r.......r." - /* 3 */ "...hhhhh..." - /* 4 */ "...hiiih..." - /* 5 */ "....iiih..." - /* 6 */ "...hiiih..." - /* 7 */ "...hhhhh..." - /* 8 */ ".r.......r." - /* 9 */ ".qr.....rq." - /* 10 */ "..........." - - // Level 13 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ "...kkhkk..." - /* 4 */ "...h...k..." - /* 5 */ ".......h..." - /* 6 */ "...h...k..." - /* 7 */ "...kkhkk..." - /* 8 */ "..........." - /* 9 */ "..........." - /* 10 */ "..........." - - // Level 14 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ ".....s....." - /* 3 */ "...kkhkk..." - /* 4 */ "...h...k..." - /* 5 */ "...k...ht.." - /* 6 */ "...h...k..." - /* 7 */ "...kkhkk..." - /* 8 */ ".....u....." - /* 9 */ "..........." - /* 10 */ "..........." - - // Level 15 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "...ggggg..." - /* 3 */ "..ghlhlhg.." - /* 4 */ "..ge...eg.." - /* 5 */ "..ge.nohg.." - /* 6 */ "..ge...eg.." - /* 7 */ "..ghlhlhg.." - /* 8 */ "...ggggg..." - /* 9 */ "..........." - /* 10 */ "..........." - - // Level 16 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..pqrrrqp.." - /* 2 */ ".pqqqqqqqp." - /* 3 */ ".qqrrrrrqq." - /* 4 */ ".rqrrrrrqr." - /* 5 */ ".rqrrrrrqr." - /* 6 */ ".rqrrrrrqr." - /* 7 */ ".qqrrrrrqq." - /* 8 */ ".pqqqqqqqp." - /* 9 */ "..pqrrrqp.." - /* 10 */ "..........." - - // Level 17 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".qr.....rq." - /* 2 */ ".rr.....rr." - /* 3 */ "...rrrrr..." - /* 4 */ "...rqqqr..." - /* 5 */ "...rqqqr..." - /* 6 */ "...rqqqr..." - /* 7 */ "...rrrrr..." - /* 8 */ ".rr.....rr." - /* 9 */ ".qr.....rq." - /* 10 */ "..........." - - // Level 18 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ "..........." - /* 4 */ "..........." - /* 5 */ ".....r....." - /* 6 */ "..........." - /* 7 */ "..........." - /* 8 */ "..........." - /* 9 */ "..........." - /* 10 */ "...........", - - // Connectors: - "2: 0, 1, 5: 4\n" /* Type 2, direction X- */ - "2: 5, 1, 0: 2\n" /* Type 2, direction Z- */ - "2: 10, 1, 5: 5\n" /* Type 2, direction X+ */ - "2: 5, 1, 10: 3\n" /* Type 2, direction Z+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // HighTemple - - - - //////////////////////////////////////////////////////////////////////////////// - // Well: - // The data has been exported from the gallery Plains, area index 143, ID 487, created by STR_Warrior - { - // Size: - 7, 14, 7, // SizeX = 7, SizeY = 14, SizeZ = 7 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 6, 13, 6, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 1: 0\n" /* stone */ - "b: 4: 0\n" /* cobblestone */ - "c: 8: 0\n" /* water */ - "d: 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 */ "mmmmmmm" - /* 1 */ "maaaaam" - /* 2 */ "maaaaam" - /* 3 */ "maaaaam" - /* 4 */ "maaaaam" - /* 5 */ "maaaaam" - /* 6 */ "mmmmmmm" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbbbbbm" - /* 2 */ "mbcc.bm" - /* 3 */ "mbcccbm" - /* 4 */ "mbcccbm" - /* 5 */ "mbbbbbm" - /* 6 */ "mmmmmmm" - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbbbbbm" - /* 2 */ "mbcccbm" - /* 3 */ "mbcccbm" - /* 4 */ "mbcccbm" - /* 5 */ "mbbbbbm" - /* 6 */ "mmmmmmm" - - // Level 3 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbbbbbm" - /* 2 */ "mbcccbm" - /* 3 */ "mbcccbm" - /* 4 */ "mbcccbm" - /* 5 */ "mbbbbbm" - /* 6 */ "mmmmmmm" - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbbbbbm" - /* 2 */ "mbcccbm" - /* 3 */ "mbcccbm" - /* 4 */ "mbcccbm" - /* 5 */ "mbbbbbm" - /* 6 */ "mmmmmmm" - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbbbbbm" - /* 2 */ "mbcccbm" - /* 3 */ "mbcccbm" - /* 4 */ "mbcccbm" - /* 5 */ "mbbbbbm" - /* 6 */ "mmmmmmm" - - // Level 6 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mbbbbbm" - /* 2 */ "mbcccbm" - /* 3 */ "mbcccbm" - /* 4 */ "mbcccbm" - /* 5 */ "mbbbbbm" - /* 6 */ "mmmmmmm" - - // Level 7 - /* z\x* 0123456 */ - /* 0 */ "mmbbbmm" - /* 1 */ "mbbbbbm" - /* 2 */ "bbcccbb" - /* 3 */ "bbcccbb" - /* 4 */ "bbcccbb" - /* 5 */ "mbbbbbm" - /* 6 */ "mmbbbmm" - - // Level 8 - /* z\x* 0123456 */ - /* 0 */ "mmdddmm" - /* 1 */ "mbbbbbm" - /* 2 */ "dbcccbd" - /* 3 */ "dbcccbd" - /* 4 */ "dbcccbd" - /* 5 */ "mbbbbbm" - /* 6 */ "mmdddmm" - - // Level 9 - /* z\x* 0123456 */ - /* 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 */ "mm...mm" - /* 1 */ "mi...im" - /* 2 */ "......." - /* 3 */ "......." - /* 4 */ "......." - /* 5 */ "mi...im" - /* 6 */ "mm...mm" - - // Level 11 - /* z\x* 0123456 */ - /* 0 */ "mm...mm" - /* 1 */ "mi...im" - /* 2 */ "......." - /* 3 */ "......." - /* 4 */ "......." - /* 5 */ "mi...im" - /* 6 */ "mm...mm" - - // Level 12 - /* z\x* 0123456 */ - /* 0 */ "mjkkkjm" - /* 1 */ "jlllllj" - /* 2 */ "klllllk" - /* 3 */ "klllllk" - /* 4 */ "klllllk" - /* 5 */ "jlllllj" - /* 6 */ "mjkkkjm" - - // Level 13 - /* z\x* 0123456 */ - /* 0 */ "k.....k" - /* 1 */ "......." - /* 2 */ "..kkk.." - /* 3 */ "..klk.." - /* 4 */ "..kkk.." - /* 5 */ "......." - /* 6 */ "k.....k", - - // Connectors: - "2: 0, 9, 3: 4\n" /* Type 2, direction X- */ - "2: 3, 9, 0: 2\n" /* Type 2, direction Z- */ - "2: 6, 9, 3: 5\n" /* Type 2, direction X+ */ - "2: 3, 9, 6: 3\n" /* Type 2, direction Z+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // Well -}; - - - - - -// The prefab counts: - -const size_t g_JapaneseVillagePrefabsCount = ARRAYCOUNT(g_JapaneseVillagePrefabs); - -const size_t g_JapaneseVillageStartingPrefabsCount = ARRAYCOUNT(g_JapaneseVillageStartingPrefabs); - diff --git a/src/Generating/Prefabs/JapaneseVillagePrefabs.h b/src/Generating/Prefabs/JapaneseVillagePrefabs.h deleted file mode 100644 index 501b6c1cd..000000000 --- a/src/Generating/Prefabs/JapaneseVillagePrefabs.h +++ /dev/null @@ -1,15 +0,0 @@ - -// JapaneseVillagePrefabs.h - -// Declares the prefabs in the group JapaneseVillage - -#include "../Prefab.h" - - - - - -extern const cPrefab::sDef g_JapaneseVillagePrefabs[]; -extern const cPrefab::sDef g_JapaneseVillageStartingPrefabs[]; -extern const size_t g_JapaneseVillagePrefabsCount; -extern const size_t g_JapaneseVillageStartingPrefabsCount; diff --git a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp deleted file mode 100644 index 4613f76e2..000000000 --- a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp +++ /dev/null @@ -1,6118 +0,0 @@ - -// PlainsVillagePrefabs.cpp - -// Defines the prefabs in the group PlainsVillage - -// NOTE: This file has been generated automatically by GalExport! -// Any manual changes will be overwritten by the next automatic export! - -#include "Globals.h" -#include "PlainsVillagePrefabs.h" - - - - - -const cPrefab::sDef g_PlainsVillagePrefabs[] = -{ - //////////////////////////////////////////////////////////////////////////////// - // BigPlantBed: - // The data has been exported from the gallery Plains, area index 26, ID 70, created by Taugrammaton - { - // Size: - 13, 8, 12, // SizeX = 13, SizeY = 8, SizeZ = 12 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 12, 7, 11, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 5: 0\n" /* wood */ - "c: 13: 0\n" /* gravel */ - "d: 17: 0\n" /* tree */ - "e: 60: 7\n" /* tilleddirt */ - "f: 8: 0\n" /* water */ - "g: 85: 0\n" /* fence */ - "h: 59: 7\n" /* crops */ - "i: 50: 5\n" /* torch */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "aaaaaaaaaaaaa" - /* 1 */ "aaaaaaaaaaaaa" - /* 2 */ "aaaaaaaaaaaaa" - /* 3 */ "aaaaaaaaaaaaa" - /* 4 */ "aaaaaaaaaaaaa" - /* 5 */ "aaaaaaaaaaaaa" - /* 6 */ "aaaaaaaaaaaaa" - /* 7 */ "aaaaaaaaaaaaa" - /* 8 */ "aaaaaaaaaaaaa" - /* 9 */ "aaaaaaaaaaaaa" - /* 10 */ "aaaaaaaaaaaaa" - /* 11 */ "aaaaaaaaaaaaa" - - // Level 1 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "bbbbbbbbbbbbb" - /* 1 */ "bcccccccccccb" - /* 2 */ "bcccccccccccb" - /* 3 */ "bcccccccccccb" - /* 4 */ "bcccccccccccb" - /* 5 */ "bcccccccccccb" - /* 6 */ "bcccccccccccb" - /* 7 */ "bcccccccccccb" - /* 8 */ "bcccccccccccb" - /* 9 */ "bcccccccccccb" - /* 10 */ "bcccccccccccb" - /* 11 */ "bbbbbbbbbbbbb" - - // Level 2 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "ddddddddddddd" - /* 1 */ "deefeefeefeed" - /* 2 */ "deefeefeefeed" - /* 3 */ "deefeefeefeed" - /* 4 */ "deefeefeefeed" - /* 5 */ "deefeefeefeed" - /* 6 */ "deefeefeefeed" - /* 7 */ "deefeefeefeed" - /* 8 */ "deefeefeefeed" - /* 9 */ "deefeefeefeed" - /* 10 */ "deefeefeefeed" - /* 11 */ "ddddddddddddd" - - // Level 3 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "g..g..g..g..g" - /* 1 */ "ghh.h..hh.hhg" - /* 2 */ "ghh..h.hh.hhg" - /* 3 */ "ghh.h..h..hhg" - /* 4 */ "ghh.hh.h..hhg" - /* 5 */ "ghh.h..hh.hhg" - /* 6 */ "ghh.hh.hh.hhg" - /* 7 */ "ghh....h..hhg" - /* 8 */ "ghh..h....hhg" - /* 9 */ "ghh.....h.hhg" - /* 10 */ "ghh.hh.h..hhg" - /* 11 */ "g..g..g..g..g" - - // Level 4 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "i..i..i..i..i" - /* 1 */ "............." - /* 2 */ "............." - /* 3 */ "............." - /* 4 */ "............." - /* 5 */ "............." - /* 6 */ "............." - /* 7 */ "............." - /* 8 */ "............." - /* 9 */ "............." - /* 10 */ "............." - /* 11 */ "i..i..i..i..i" - - // Level 5 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ "............." - /* 2 */ "............." - /* 3 */ "............." - /* 4 */ "............." - /* 5 */ "............." - /* 6 */ "............." - /* 7 */ "............." - /* 8 */ "............." - /* 9 */ "............." - /* 10 */ "............." - /* 11 */ "............." - - // Level 6 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ "............." - /* 2 */ "............." - /* 3 */ "............." - /* 4 */ "............." - /* 5 */ "............." - /* 6 */ "............." - /* 7 */ "............." - /* 8 */ "............." - /* 9 */ "............." - /* 10 */ "............." - /* 11 */ "............." - - // Level 7 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ "............." - /* 2 */ "............." - /* 3 */ "............." - /* 4 */ "............." - /* 5 */ "............." - /* 6 */ "............." - /* 7 */ "............." - /* 8 */ "............." - /* 9 */ "............." - /* 10 */ "............." - /* 11 */ ".............", - - // Connectors: - "-1: 7, 1, 11: 3\n" /* Type -1, direction Z+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // BigPlantBed - - - - //////////////////////////////////////////////////////////////////////////////// - // CobbleHouse10x5Library: - // The data has been exported from the gallery Plains, area index 23, ID 66, created by xoft - { - // Size: - 12, 7, 7, // SizeX = 12, SizeY = 7, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, -1, 0, // MinX, MinY, MinZ - 12, 6, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 4: 0\n" /* cobblestone */ - "b: 67: 0\n" /* stairs */ - "c: 67: 2\n" /* stairs */ - "d: 67: 1\n" /* stairs */ - "e: 64: 7\n" /* wooddoorblock */ - "f: 53: 3\n" /* woodstairs */ - "g: 53: 1\n" /* woodstairs */ - "h: 85: 0\n" /* fence */ - "i: 53: 0\n" /* woodstairs */ - "j: 53: 2\n" /* woodstairs */ - "k:102: 0\n" /* glasspane */ - "l: 64:12\n" /* wooddoorblock */ - "m: 19: 0\n" /* sponge */ - "n: 50: 3\n" /* torch */ - "o: 72: 0\n" /* woodplate */ - "p: 50: 4\n" /* torch */ - "q: 53: 7\n" /* woodstairs */ - "r: 47: 0\n" /* bookshelf */ - "s: 50: 1\n" /* torch */ - "t: 50: 2\n" /* torch */ - "u: 53: 6\n" /* woodstairs */ - "v: 5: 0\n" /* wood */, - - // Block data: - // Level 0 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "mmmmmmmaaamm" - /* 1 */ "maaaaaaaaaam" - /* 2 */ "maaaaaaaaaam" - /* 3 */ "maaaaaaaaaam" - /* 4 */ "maaaaaaaaaam" - /* 5 */ "maaaaaaaaaam" - /* 6 */ "mmmmmmmmmmmm" - - // Level 1 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ ".......bcd.." - /* 1 */ ".aaaaaaaaaa." - /* 2 */ ".aaaaaaaaaa." - /* 3 */ ".aaaaaaaaaa." - /* 4 */ ".aaaaaaaaaa." - /* 5 */ ".aaaaaaaaaa." - /* 6 */ "............" - - // Level 2 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ ".aaaaaaaeaa." - /* 2 */ ".af.ghi...a." - /* 3 */ ".ah.......a." - /* 4 */ ".aj.ghighia." - /* 5 */ ".aaaaaaaaaa." - /* 6 */ "............" - - // Level 3 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ ".akkakkalaa." - /* 2 */ ".k..no.n.nk." - /* 3 */ ".ko.......k." - /* 4 */ ".k..po.po.k." - /* 5 */ ".akkakkakka." - /* 6 */ "............" - - // Level 4 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "jjjjjjjjjjjj" - /* 1 */ "qaaaaaaaaaaq" - /* 2 */ ".arrrrrrrra." - /* 3 */ ".as......ta." - /* 4 */ ".arrrrrrrra." - /* 5 */ "uaaaaaaaaaau" - /* 6 */ "ffffffffffff" - - // Level 5 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "jjjjjjjjjjjj" - /* 2 */ "qvvvvvvvvvvq" - /* 3 */ ".vvvvvvvvvv." - /* 4 */ "uvvvvvvvvvvu" - /* 5 */ "ffffffffffff" - /* 6 */ "............" - - // Level 6 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "............" - /* 2 */ "jjjjjjjjjjjj" - /* 3 */ "vvvvvvvvvvvv" - /* 4 */ "ffffffffffff" - /* 5 */ "............" - /* 6 */ "............", - - // Connectors: - "-1: 8, 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: - true, - }, // CobbleHouse10x5Library - - - - //////////////////////////////////////////////////////////////////////////////// - // DoublePlantBed: - // The data has been exported from the gallery Plains, area index 5, ID 20, created by tonibm1999 - { - // Size: - 15, 8, 9, // SizeX = 15, SizeY = 8, SizeZ = 9 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 14, 7, 8, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 2: 0\n" /* grass */ - "c: 17: 0\n" /* tree */ - "d: 60: 7\n" /* tilleddirt */ - "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 */ "aaaaaaabaaaaaaa" - /* 1 */ "aaaaaaaaaaaaaaa" - /* 2 */ "aaaaaaaaaaaaaaa" - /* 3 */ "aaaaaaaaaaaaaaa" - /* 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 */ - /* 0 */ "ccccccc.ccccccc" - /* 1 */ "cddeddc.cddeddc" - /* 2 */ "cddeddc.cddeddc" - /* 3 */ "cddeddc.cddeddc" - /* 4 */ "cddeddc.cddeddc" - /* 5 */ "cddeddc.cddeddc" - /* 6 */ "cddeddc.cddeddc" - /* 7 */ "cddeddc.cddeddc" - /* 8 */ "ccccccc.ccccccc" - - // Level 3 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "f.....f.f.....f" - /* 1 */ ".gg.gg...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 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ "..............." - /* 3 */ "..............." - /* 4 */ "..............." - /* 5 */ "..............." - /* 6 */ "..............." - /* 7 */ "..............." - /* 8 */ "..............." - - // Level 5 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ "..............." - /* 3 */ "..............." - /* 4 */ "..............." - /* 5 */ "..............." - /* 6 */ "..............." - /* 7 */ "..............." - /* 8 */ "..............." - - // Level 6 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ "..............." - /* 3 */ "..............." - /* 4 */ "..............." - /* 5 */ "..............." - /* 6 */ "..............." - /* 7 */ "..............." - /* 8 */ "..............." - - // Level 7 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ "..............." - /* 3 */ "..............." - /* 4 */ "..............." - /* 5 */ "..............." - /* 6 */ "..............." - /* 7 */ "..............." - /* 8 */ "...............", - - // Connectors: - "-1: 7, 2, 8: 3\n" /* Type -1, direction Z+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // DoublePlantBed - - - - //////////////////////////////////////////////////////////////////////////////// - // Forge: - // The data has been exported from the gallery Plains, area index 51, ID 102, created by Aloe_vera - { - // Size: - 12, 9, 11, // SizeX = 12, SizeY = 9, SizeZ = 11 - - // Hitbox (relative to bounding box): - -1, -1, 0, // MinX, MinY, MinZ - 12, 8, 11, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 4: 0\n" /* cobblestone */ - "b: 67: 0\n" /* stairs */ - "c: 67: 2\n" /* stairs */ - "d: 67: 1\n" /* stairs */ - "e: 17: 0\n" /* tree */ - "f: 5: 0\n" /* wood */ - "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: 8\n" /* wooddoorblock */ - "m: 19: 0\n" /* sponge */ - "n:139: 0\n" /* cobblestonewall */ - "o:101: 0\n" /* ironbars */ - "p: 53: 2\n" /* woodstairs */ - "q: 53: 7\n" /* woodstairs */ - "r: 50: 2\n" /* torch */ - "s: 50: 1\n" /* torch */ - "t: 53: 6\n" /* woodstairs */ - "u: 53: 3\n" /* woodstairs */ - "v: 43: 0\n" /* doubleslab */ - "w: 44: 0\n" /* step */, - - // Block data: - // Level 0 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "mmmmmaaaaamm" - /* 1 */ "maaaaaaaaamm" - /* 2 */ "maaaaaaaaamm" - /* 3 */ "maaaaaaaaaaa" - /* 4 */ "maaaaaaaaaaa" - /* 5 */ "maaaaaaaaaaa" - /* 6 */ "maaaaaaaaaaa" - /* 7 */ "maaaaaaaaaaa" - /* 8 */ "maaaaammmmmm" - /* 9 */ "maaaaammmmmm" - /* 10 */ "mmmmmmmmmmmm" - - // Level 1 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ ".....bcccd.." - /* 1 */ ".aaaaaaaad.." - /* 2 */ ".aaaaaaaad.." - /* 3 */ ".aaaaaaaaaaa" - /* 4 */ ".aaaaaaaaaaa" - /* 5 */ ".aaaaaaaaaaa" - /* 6 */ ".aaaaaaaaaaa" - /* 7 */ ".aaaaaaaaaaa" - /* 8 */ ".aaaaa......" - /* 9 */ ".aaaaa......" - /* 10 */ "............" - - // Level 2 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ ".efffe......" - /* 2 */ ".f...g......" - /* 3 */ ".f...ea..aaa" - /* 4 */ ".f...f...aha" - /* 5 */ ".f...f...aha" - /* 6 */ ".f...fijjaha" - /* 7 */ ".f...eaaaaaa" - /* 8 */ ".f...f......" - /* 9 */ ".efffe......" - /* 10 */ "............" - - // Level 3 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ ".ekkke......" - /* 2 */ ".k...l......" - /* 3 */ ".k...en..n.a" - /* 4 */ ".k...k.....o" - /* 5 */ ".f...k.....o" - /* 6 */ ".k...k.....o" - /* 7 */ ".k...eaooooa" - /* 8 */ ".k...f......" - /* 9 */ ".ekkke......" - /* 10 */ "............" - - // Level 4 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "ppppppp....." - /* 1 */ "qfffffq....." - /* 2 */ ".f...f......" - /* 3 */ ".f..rfa..aoa" - /* 4 */ ".f...f...o.a" - /* 5 */ ".f...f...o.a" - /* 6 */ ".fs..f...o.a" - /* 7 */ ".f...faaaaaa" - /* 8 */ ".f...f......" - /* 9 */ "tffffft....." - /* 10 */ "uuuuuuu....." - - // Level 5 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "ppppppp....." - /* 2 */ "qfffffq....." - /* 3 */ ".f...fvvvvvv" - /* 4 */ ".f...fvwwwwv" - /* 5 */ ".f...fvwwwwv" - /* 6 */ ".f...fvwwwwv" - /* 7 */ ".f...fvvvvvv" - /* 8 */ "tffffft....." - /* 9 */ "uuuuuuu....." - /* 10 */ "............" - - // Level 6 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "............" - /* 2 */ "ppppppp....." - /* 3 */ "qfffffq....." - /* 4 */ ".f...f......" - /* 5 */ ".f...f......" - /* 6 */ ".f...f......" - /* 7 */ "tffffft....." - /* 8 */ "uuuuuuu....." - /* 9 */ "............" - /* 10 */ "............" - - // Level 7 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "............" - /* 2 */ "............" - /* 3 */ "ppppppp....." - /* 4 */ "qfffffq....." - /* 5 */ ".f...f......" - /* 6 */ "tffffft....." - /* 7 */ "uuuuuuu....." - /* 8 */ "............" - /* 9 */ "............" - /* 10 */ "............" - - // Level 8 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "............" - /* 2 */ "............" - /* 3 */ "............" - /* 4 */ "ppppppp....." - /* 5 */ "fffffff....." - /* 6 */ "uuuuuuu....." - /* 7 */ "............" - /* 8 */ "............" - /* 9 */ "............" - /* 10 */ "............", - - // Connectors: - "-1: 7, 1, -1: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // Forge - - - - //////////////////////////////////////////////////////////////////////////////// - // LampPost: - // The data has been exported from the gallery Plains, area index 28, ID 73, created by STR_Warrior - { - // Size: - 3, 7, 3, // SizeX = 3, SizeY = 7, SizeZ = 3 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 2, 6, 2, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 43: 0\n" /* doubleslab */ - "c:139: 0\n" /* cobblestonewall */ - "d: 50: 4\n" /* torch */ - "e: 50: 2\n" /* torch */ - "f: 50: 1\n" /* torch */ - "g: 50: 3\n" /* torch */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 012 */ - /* 0 */ "mmm" - /* 1 */ "mam" - /* 2 */ "mmm" - - // Level 1 - /* z\x* 012 */ - /* 0 */ "..." - /* 1 */ ".b." - /* 2 */ "..." - - // Level 2 - /* z\x* 012 */ - /* 0 */ "..." - /* 1 */ ".c." - /* 2 */ "..." - - // Level 3 - /* z\x* 012 */ - /* 0 */ "..." - /* 1 */ ".c." - /* 2 */ "..." - - // Level 4 - /* z\x* 012 */ - /* 0 */ ".d." - /* 1 */ "ebf" - /* 2 */ ".g." - - // Level 5 - /* z\x* 012 */ - /* 0 */ "..." - /* 1 */ "..." - /* 2 */ "..." - - // Level 6 - /* z\x* 012 */ - /* 0 */ "..." - /* 1 */ "..." - /* 2 */ "...", - - // Connectors: - "-1: 1, 1, 2: 3\n" /* Type -1, direction Z+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // LampPost - - - - //////////////////////////////////////////////////////////////////////////////// - // MineshaftCorridor: - // The data has been exported from the gallery Plains, area index 139, ID 447, created by STR_Warrior - { - // Size: - 10, 4, 3, // SizeX = 10, SizeY = 4, SizeZ = 3 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 9, 3, 2, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 0\n" /* wood */ - "b: 85: 0\n" /* fence */ - "c: 66: 1\n" /* tracks */ - "d: 50: 2\n" /* torch */ - "e: 50: 1\n" /* torch */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "aaaaaaaaaa" - /* 1 */ "aaaaaaaaaa" - /* 2 */ "aaaaaaaaaa" - - // Level 1 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "..b....b.." - /* 1 */ "cccccccccc" - /* 2 */ "..b....b.." - - // Level 2 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "..b....b.." - /* 1 */ ".........." - /* 2 */ "..b....b.." - - // Level 3 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "..a....a.." - /* 1 */ ".dae..dae." - /* 2 */ "..a....a..", - - // Connectors: - "-3: 0, 1, 1: 4\n" /* Type -3, direction X- */ - "3: 9, 1, 1: 5\n" /* Type 3, direction X+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - false, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 200, - - // MoveToGround: - false, - }, // MineshaftCorridor - - - - //////////////////////////////////////////////////////////////////////////////// - // MineshaftCrossing: - // The data has been exported from the gallery Plains, area index 171, ID 578, created by Aloe_vera - { - // Size: - 5, 4, 5, // SizeX = 5, SizeY = 4, SizeZ = 5 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 4, 3, 4, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 0\n" /* wood */ - "b: 66: 0\n" /* tracks */ - "c: 66: 1\n" /* tracks */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 01234 */ - /* 0 */ "aaaaa" - /* 1 */ "aaaaa" - /* 2 */ "aaaaa" - /* 3 */ "aaaaa" - /* 4 */ "aaaaa" - - // Level 1 - /* z\x* 01234 */ - /* 0 */ "m.b.m" - /* 1 */ ".aba." - /* 2 */ "ccccc" - /* 3 */ ".aba." - /* 4 */ "m.b.m" - - // Level 2 - /* z\x* 01234 */ - /* 0 */ "m...m" - /* 1 */ ".a.a." - /* 2 */ "....." - /* 3 */ ".a.a." - /* 4 */ "m...m" - - // Level 3 - /* z\x* 01234 */ - /* 0 */ "m...m" - /* 1 */ ".a.a." - /* 2 */ "....." - /* 3 */ ".a.a." - /* 4 */ "m...m", - - // Connectors: - "3: 4, 1, 2: 5\n" /* Type 3, direction X+ */ - "-3: 4, 1, 2: 5\n" /* Type -3, direction X+ */ - "-3: 2, 1, 4: 3\n" /* Type -3, direction Z+ */ - "3: 2, 1, 4: 3\n" /* Type 3, direction Z+ */ - "3: 0, 1, 2: 4\n" /* Type 3, direction X- */ - "-3: 0, 1, 2: 4\n" /* Type -3, direction X- */ - "3: 2, 1, 0: 2\n" /* Type 3, direction Z- */ - "-3: 2, 1, 0: 2\n" /* Type -3, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - false, - - // DefaultWeight: - 1, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - false, - }, // MineshaftCrossing - - - - //////////////////////////////////////////////////////////////////////////////// - // MineshaftCrossing: - // The data has been exported from the gallery Plains, area index 193, ID 657, created by Aloe_vera - { - // Size: - 11, 4, 11, // SizeX = 11, SizeY = 4, SizeZ = 11 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 10, 3, 10, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 0\n" /* wood */ - "b: 66: 0\n" /* tracks */ - "c: 85: 0\n" /* fence */ - "d: 66: 1\n" /* tracks */ - "e: 50: 4\n" /* torch */ - "f: 50: 3\n" /* torch */ - "g: 50: 2\n" /* torch */ - "h: 50: 1\n" /* torch */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmaaammmm" - /* 1 */ "mmmmaaammmm" - /* 2 */ "mmmmaaammmm" - /* 3 */ "mmmmaaammmm" - /* 4 */ "aaaaaaaaaaa" - /* 5 */ "aaaaaaaaaaa" - /* 6 */ "aaaaaaaaaaa" - /* 7 */ "mmmmaaammmm" - /* 8 */ "mmmmaaammmm" - /* 9 */ "mmmmaaammmm" - /* 10 */ "mmmmaaammmm" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmm.b.mmmm" - /* 1 */ "mmmm.b.mmmm" - /* 2 */ "mmmmcbcmmmm" - /* 3 */ "mmmm.b.mmmm" - /* 4 */ "..c..b..c.." - /* 5 */ "ddddddddddd" - /* 6 */ "..c..b..c.." - /* 7 */ "mmmm.b.mmmm" - /* 8 */ "mmmmcbcmmmm" - /* 9 */ "mmmm.b.mmmm" - /* 10 */ "mmmm.b.mmmm" - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmm...mmmm" - /* 1 */ "mmmm...mmmm" - /* 2 */ "mmmmc.cmmmm" - /* 3 */ "mmmm...mmmm" - /* 4 */ "..c.....c.." - /* 5 */ "..........." - /* 6 */ "..c.....c.." - /* 7 */ "mmmm...mmmm" - /* 8 */ "mmmmc.cmmmm" - /* 9 */ "mmmm...mmmm" - /* 10 */ "mmmm...mmmm" - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmm...mmmm" - /* 1 */ "mmmm.e.mmmm" - /* 2 */ "mmmmaaammmm" - /* 3 */ "mmmm.f.mmmm" - /* 4 */ "..a.....a.." - /* 5 */ ".gah...gah." - /* 6 */ "..a.....a.." - /* 7 */ "mmmm.e.mmmm" - /* 8 */ "mmmmaaammmm" - /* 9 */ "mmmm.f.mmmm" - /* 10 */ "mmmm...mmmm", - - // Connectors: - "3: 5, 1, 0: 2\n" /* Type 3, direction Z- */ - "-3: 5, 1, 0: 2\n" /* Type -3, direction Z- */ - "3: 0, 1, 5: 4\n" /* Type 3, direction X- */ - "-3: 0, 1, 5: 4\n" /* Type -3, direction X- */ - "3: 5, 1, 10: 3\n" /* Type 3, direction Z+ */ - "-3: 5, 1, 10: 3\n" /* Type -3, direction Z+ */ - "3: 10, 1, 5: 5\n" /* Type 3, direction X+ */ - "-3: 10, 1, 5: 5\n" /* Type -3, direction X+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - false, - - // DefaultWeight: - 10, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - false, - }, // MineshaftCrossing - - - - //////////////////////////////////////////////////////////////////////////////// - // MineshaftDoubleCrossing: - // The data has been exported from the gallery Plains, area index 172, ID 579, created by Aloe_vera - { - // Size: - 5, 8, 5, // SizeX = 5, SizeY = 8, SizeZ = 5 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 4, 7, 4, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 0\n" /* wood */ - "b: 66: 0\n" /* tracks */ - "c: 66: 1\n" /* tracks */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 01234 */ - /* 0 */ "aaaaa" - /* 1 */ "aaaaa" - /* 2 */ "aaaaa" - /* 3 */ "aaaaa" - /* 4 */ "aaaaa" - - // Level 1 - /* z\x* 01234 */ - /* 0 */ "m.b.m" - /* 1 */ ".aba." - /* 2 */ "ccccc" - /* 3 */ ".aba." - /* 4 */ "m.b.m" - - // Level 2 - /* z\x* 01234 */ - /* 0 */ "m...m" - /* 1 */ ".a.a." - /* 2 */ "....." - /* 3 */ ".a.a." - /* 4 */ "m...m" - - // Level 3 - /* z\x* 01234 */ - /* 0 */ "m...m" - /* 1 */ ".a.a." - /* 2 */ "....." - /* 3 */ ".a.a." - /* 4 */ "m...m" - - // Level 4 - /* z\x* 01234 */ - /* 0 */ "aaaaa" - /* 1 */ "aa.aa" - /* 2 */ "a...a" - /* 3 */ "aa.aa" - /* 4 */ "aaaaa" - - // Level 5 - /* z\x* 01234 */ - /* 0 */ "m...m" - /* 1 */ ".a.a." - /* 2 */ "....." - /* 3 */ ".a.a." - /* 4 */ "m...m" - - // Level 6 - /* z\x* 01234 */ - /* 0 */ "m...m" - /* 1 */ ".a.a." - /* 2 */ "....." - /* 3 */ ".a.a." - /* 4 */ "m...m" - - // Level 7 - /* z\x* 01234 */ - /* 0 */ "m...m" - /* 1 */ ".a.a." - /* 2 */ "....." - /* 3 */ ".a.a." - /* 4 */ "m...m", - - // Connectors: - "-3: 4, 5, 2: 5\n" /* Type -3, direction X+ */ - "3: 4, 5, 2: 5\n" /* Type 3, direction X+ */ - "-3: 2, 1, 4: 3\n" /* Type -3, direction Z+ */ - "3: 2, 1, 4: 3\n" /* Type 3, direction Z+ */ - "-3: 0, 1, 2: 4\n" /* Type -3, direction X- */ - "3: 0, 1, 2: 4\n" /* Type 3, direction X- */ - "-3: 2, 1, 0: 2\n" /* Type -3, direction Z- */ - "3: 2, 1, 0: 2\n" /* Type 3, direction Z- */ - "-3: 4, 1, 2: 5\n" /* Type -3, direction X+ */ - "3: 4, 1, 2: 5\n" /* Type 3, direction X+ */ - "-3: 2, 5, 4: 3\n" /* Type -3, direction Z+ */ - "3: 2, 5, 4: 3\n" /* Type 3, direction Z+ */ - "-3: 0, 5, 2: 4\n" /* Type -3, direction X- */ - "3: 0, 5, 2: 4\n" /* Type 3, direction X- */ - "-3: 2, 5, 0: 2\n" /* Type -3, direction Z- */ - "3: 2, 5, 0: 2\n" /* Type 3, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - false, - - // DefaultWeight: - 1, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - false, - }, // MineshaftDoubleCrossing - - - - //////////////////////////////////////////////////////////////////////////////// - // MineshaftSpiral: - // The data has been exported from the gallery Plains, area index 198, ID 662, created by Aloe_vera - { - // Size: - 7, 12, 7, // SizeX = 7, SizeY = 12, SizeZ = 7 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 6, 11, 6, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 0\n" /* wood */ - "b: 85: 0\n" /* fence */ - "c: 66: 4\n" /* tracks */ - "d: 66: 0\n" /* tracks */ - "e: 66: 6\n" /* tracks */ - "f: 66: 2\n" /* tracks */ - "g: 50: 1\n" /* torch */ - "h: 50: 3\n" /* torch */ - "i: 66: 1\n" /* tracks */ - "j: 66: 7\n" /* tracks */ - "k: 66: 5\n" /* tracks */ - "l: 50: 2\n" /* torch */ - "m: 19: 0\n" /* sponge */ - "n: 66: 3\n" /* tracks */ - "o: 66: 8\n" /* tracks */ - "p: 50: 4\n" /* torch */, - - // Block data: - // Level 0 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmmmmm" - /* 2 */ "mmmmmmm" - /* 3 */ "aaabmmm" - /* 4 */ "aaammmm" - /* 5 */ "aaammmm" - /* 6 */ "aaammmm" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmmmmm" - /* 2 */ "aaammmm" - /* 3 */ "aaabmmm" - /* 4 */ ".c.mmmm" - /* 5 */ ".d.mmmm" - /* 6 */ ".d.mmmm" - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ "aaaammm" - /* 1 */ "aaaammm" - /* 2 */ "aaaammm" - /* 3 */ ".c.bmmm" - /* 4 */ "...mmmm" - /* 5 */ "...mmmm" - /* 6 */ "...mmmm" - - // Level 3 - /* z\x* 0123456 */ - /* 0 */ "b..aamm" - /* 1 */ ".efaamm" - /* 2 */ ".d.aamm" - /* 3 */ "...bmmm" - /* 4 */ "...mmmm" - /* 5 */ "...mmmm" - /* 6 */ "...mmmm" - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "b...aaa" - /* 1 */ "...faaa" - /* 2 */ "....aaa" - /* 3 */ "...baaa" - /* 4 */ "...mmmm" - /* 5 */ "mmmmmmm" - /* 6 */ "mmmmmmm" - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "ag....b" - /* 1 */ "h...ij." - /* 2 */ ".....k." - /* 3 */ "...baaa" - /* 4 */ "mmmmaaa" - /* 5 */ "mmmmmmm" - /* 6 */ "mmmmmmm" - - // Level 6 - /* z\x* 0123456 */ - /* 0 */ "mm....b" - /* 1 */ "mm....." - /* 2 */ "mm....." - /* 3 */ "mmmb.k." - /* 4 */ "mmmaaaa" - /* 5 */ "mmmaaaa" - /* 6 */ "mmmaaaa" - - // Level 7 - /* z\x* 0123456 */ - /* 0 */ "mmm..la" - /* 1 */ "mmm...h" - /* 2 */ "mmm...." - /* 3 */ "mmmb..." - /* 4 */ "mmaa.d." - /* 5 */ "mmaano." - /* 6 */ "mmaa..b" - - // Level 8 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmmmmm" - /* 2 */ "mmmm..." - /* 3 */ "mmmb..." - /* 4 */ "aaa...." - /* 5 */ "aaan..." - /* 6 */ "aaa...b" - - // Level 9 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmmmmm" - /* 2 */ "mmmmmmm" - /* 3 */ "mmmb..." - /* 4 */ "......." - /* 5 */ "iii...p" - /* 6 */ ".....la" - - // Level 10 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmmmmm" - /* 2 */ "mmmmmmm" - /* 3 */ "mmmbmmm" - /* 4 */ ".....mm" - /* 5 */ ".....mm" - /* 6 */ ".....mm" - - // Level 11 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmmmmm" - /* 2 */ "mmmmmmm" - /* 3 */ "mmmbmmm" - /* 4 */ "....mmm" - /* 5 */ "....mmm" - /* 6 */ "....mmm", - - // Connectors: - "3: 1, 1, 6: 3\n" /* Type 3, direction Z+ */ - "-3: 1, 1, 6: 3\n" /* Type -3, direction Z+ */ - "3: 0, 9, 5: 4\n" /* Type 3, direction X- */ - "-3: 0, 9, 5: 4\n" /* Type -3, direction X- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - false, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - false, - }, // MineshaftSpiral - - - - //////////////////////////////////////////////////////////////////////////////// - // MineshaftStairs: - // The data has been exported from the gallery Plains, area index 195, ID 659, created by Aloe_vera - { - // Size: - 7, 8, 3, // SizeX = 7, SizeY = 8, SizeZ = 3 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 6, 7, 2, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 0\n" /* wood */ - "b: 66: 1\n" /* tracks */ - "c: 66: 2\n" /* tracks */ - "d: 85: 0\n" /* fence */ - "e: 50: 1\n" /* torch */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 0123456 */ - /* 0 */ "aaammmm" - /* 1 */ "aaammmm" - /* 2 */ "aaammmm" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "..aammm" - /* 1 */ "bcaammm" - /* 2 */ "..aammm" - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ "...aamm" - /* 1 */ "..caamm" - /* 2 */ "...aamm" - - // Level 3 - /* z\x* 0123456 */ - /* 0 */ "...daam" - /* 1 */ "...caam" - /* 2 */ "...daam" - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "m..d.aa" - /* 1 */ "m...caa" - /* 2 */ "m..d.aa" - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "mm.d..." - /* 1 */ "mm...bb" - /* 2 */ "mm.d..." - - // Level 6 - /* z\x* 0123456 */ - /* 0 */ "mmmd..." - /* 1 */ "mmm...." - /* 2 */ "mmmd..." - - // Level 7 - /* z\x* 0123456 */ - /* 0 */ "mmma..." - /* 1 */ "mmmae.." - /* 2 */ "mmma...", - - // Connectors: - "3: 0, 1, 1: 4\n" /* Type 3, direction X- */ - "-3: 0, 1, 1: 4\n" /* Type -3, direction X- */ - "3: 6, 5, 1: 5\n" /* Type 3, direction X+ */ - "-3: 6, 5, 1: 5\n" /* Type -3, direction X+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - false, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - false, - }, // MineshaftStairs - - - - //////////////////////////////////////////////////////////////////////////////// - // MineshaftStairsCrossing: - // The data has been exported from the gallery Plains, area index 199, ID 663, created by Aloe_vera - { - // Size: - 11, 12, 12, // SizeX = 11, SizeY = 12, SizeZ = 12 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 10, 11, 11, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 0\n" /* wood */ - "b: 66: 0\n" /* tracks */ - "c: 66: 5\n" /* tracks */ - "d: 85: 0\n" /* fence */ - "e: 66: 1\n" /* tracks */ - "f: 50: 3\n" /* torch */ - "g: 50: 2\n" /* torch */ - "h: 50: 1\n" /* torch */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmaaammmm" - /* 1 */ "mmmmaaammmm" - /* 2 */ "mmmmaaammmm" - /* 3 */ "mmmmmmmmmmm" - /* 4 */ "mmmmmmmmmmm" - /* 5 */ "mmmmmmmmmmm" - /* 6 */ "mmmmmmmmmmm" - /* 7 */ "mmmmmmmmmmm" - /* 8 */ "mmmmmmmmmmm" - /* 9 */ "mmmmmmmmmmm" - /* 10 */ "mmmmmmmmmmm" - /* 11 */ "mmmmmmmmmmm" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmm.b.mmmm" - /* 1 */ "mmmm.c.mmmm" - /* 2 */ "mmmmaaammmm" - /* 3 */ "mmmmaaammmm" - /* 4 */ "mmmmmmmmmmm" - /* 5 */ "mmmmmmmmmmm" - /* 6 */ "mmmmmmmmmmm" - /* 7 */ "mmmmmmmmmmm" - /* 8 */ "mmmmmmmmmmm" - /* 9 */ "mmmmmmmmmmm" - /* 10 */ "mmmmmmmmmmm" - /* 11 */ "mmmmmmmmmmm" - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmm...mmmm" - /* 1 */ "mmmm...mmmm" - /* 2 */ "mmmm.c.mmmm" - /* 3 */ "mmmmaaammmm" - /* 4 */ "mmmmaaammmm" - /* 5 */ "mmmmmmmmmmm" - /* 6 */ "mmmmmmmmmmm" - /* 7 */ "mmmmmmmmmmm" - /* 8 */ "mmmmmmmmmmm" - /* 9 */ "mmmmmmmmmmm" - /* 10 */ "mmmmmmmmmmm" - /* 11 */ "mmmmmmmmmmm" - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmm...mmmm" - /* 1 */ "mmmm...mmmm" - /* 2 */ "mmmm...mmmm" - /* 3 */ "mmmmdcdmmmm" - /* 4 */ "mmmmaaammmm" - /* 5 */ "mmmmaaammmm" - /* 6 */ "mmmmmmmmmmm" - /* 7 */ "mmmmmmmmmmm" - /* 8 */ "mmmmmmmmmmm" - /* 9 */ "mmmmmmmmmmm" - /* 10 */ "mmmmmmmmmmm" - /* 11 */ "mmmmmmmmmmm" - - // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmmmmmmmm" - /* 1 */ "mmmm...mmmm" - /* 2 */ "mmmm...mmmm" - /* 3 */ "mmmmd.dmmmm" - /* 4 */ "mmmm.c.mmmm" - /* 5 */ "aaaaaaaaaaa" - /* 6 */ "aaaaaaaaaaa" - /* 7 */ "aaaaaaaaaaa" - /* 8 */ "mmmmaaammmm" - /* 9 */ "mmmmmmmmmmm" - /* 10 */ "mmmmmmmmmmm" - /* 11 */ "mmmmmmmmmmm" - - // Level 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmmmmmmmm" - /* 1 */ "mmmmmmmmmmm" - /* 2 */ "mmmm...mmmm" - /* 3 */ "mmmmd.dmmmm" - /* 4 */ "mmmm...mmmm" - /* 5 */ "..d..b..d.." - /* 6 */ "eeeeeeeeeee" - /* 7 */ "..d..c..d.." - /* 8 */ "mmmmaaammmm" - /* 9 */ "mmmmaaammmm" - /* 10 */ "mmmmmmmmmmm" - /* 11 */ "mmmmmmmmmmm" - - // Level 6 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmmmmmmmm" - /* 1 */ "mmmmmmmmmmm" - /* 2 */ "mmmmmmmmmmm" - /* 3 */ "mmmmd.dmmmm" - /* 4 */ "mmmm...mmmm" - /* 5 */ "..d.....d.." - /* 6 */ "..........." - /* 7 */ "..d.....d.." - /* 8 */ "mmmm.c.mmmm" - /* 9 */ "mmmmaaammmm" - /* 10 */ "mmmmaaammmm" - /* 11 */ "mmmmmmmmmmm" - - // Level 7 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmmmmmmmm" - /* 1 */ "mmmmmmmmmmm" - /* 2 */ "mmmmmmmmmmm" - /* 3 */ "mmmmaaammmm" - /* 4 */ "mmmm.f.mmmm" - /* 5 */ "..a.....a.." - /* 6 */ ".gah...gah." - /* 7 */ "..a.....a.." - /* 8 */ "mmmm...mmmm" - /* 9 */ "mmmmdcdmmmm" - /* 10 */ "mmmmaaammmm" - /* 11 */ "mmmmaaammmm" - - // Level 8 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmmmmmmmm" - /* 1 */ "mmmmmmmmmmm" - /* 2 */ "mmmmmmmmmmm" - /* 3 */ "mmmmmmmmmmm" - /* 4 */ "mmmmmmmmmmm" - /* 5 */ "mmmmmmmmmmm" - /* 6 */ "mmmmmmmmmmm" - /* 7 */ "mmmm...mmmm" - /* 8 */ "mmmm...mmmm" - /* 9 */ "mmmmd.dmmmm" - /* 10 */ "mmmm.c.mmmm" - /* 11 */ "mmmmaaammmm" - - // Level 9 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmmmmmmmm" - /* 1 */ "mmmmmmmmmmm" - /* 2 */ "mmmmmmmmmmm" - /* 3 */ "mmmmmmmmmmm" - /* 4 */ "mmmmmmmmmmm" - /* 5 */ "mmmmmmmmmmm" - /* 6 */ "mmmmmmmmmmm" - /* 7 */ "mmmmmmmmmmm" - /* 8 */ "mmmm...mmmm" - /* 9 */ "mmmmd.dmmmm" - /* 10 */ "mmmm...mmmm" - /* 11 */ "mmmm.b.mmmm" - - // Level 10 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmmmmmmmm" - /* 1 */ "mmmmmmmmmmm" - /* 2 */ "mmmmmmmmmmm" - /* 3 */ "mmmmmmmmmmm" - /* 4 */ "mmmmmmmmmmm" - /* 5 */ "mmmmmmmmmmm" - /* 6 */ "mmmmmmmmmmm" - /* 7 */ "mmmmmmmmmmm" - /* 8 */ "mmmmmmmmmmm" - /* 9 */ "mmmmd.dmmmm" - /* 10 */ "mmmm...mmmm" - /* 11 */ "mmmm...mmmm" - - // Level 11 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmmmmmmmm" - /* 1 */ "mmmmmmmmmmm" - /* 2 */ "mmmmmmmmmmm" - /* 3 */ "mmmmmmmmmmm" - /* 4 */ "mmmmmmmmmmm" - /* 5 */ "mmmmmmmmmmm" - /* 6 */ "mmmmmmmmmmm" - /* 7 */ "mmmmmmmmmmm" - /* 8 */ "mmmmmmmmmmm" - /* 9 */ "mmmmaaammmm" - /* 10 */ "mmmm.f.mmmm" - /* 11 */ "mmmm...mmmm", - - // Connectors: - "3: 0, 5, 6: 4\n" /* Type 3, direction X- */ - "-3: 0, 5, 6: 4\n" /* Type -3, direction X- */ - "3: 10, 5, 6: 5\n" /* Type 3, direction X+ */ - "-3: 10, 5, 6: 5\n" /* Type -3, direction X+ */ - "3: 5, 9, 11: 3\n" /* Type 3, direction Z+ */ - "-3: 5, 9, 11: 3\n" /* Type -3, direction Z+ */ - "3: 5, 1, 1: 2\n" /* Type 3, direction Z- */ - "-3: 5, 1, 1: 2\n" /* Type -3, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - false, - - // DefaultWeight: - 30, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - false, - }, // MineshaftStairsCrossing - - - - //////////////////////////////////////////////////////////////////////////////// - // MineshaftTee: - // The data has been exported from the gallery Plains, area index 194, ID 658, created by Aloe_vera - { - // Size: - 11, 4, 7, // SizeX = 11, SizeY = 4, SizeZ = 7 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 10, 3, 6, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 0\n" /* wood */ - "b: 66: 0\n" /* tracks */ - "c: 85: 0\n" /* fence */ - "d: 66: 1\n" /* tracks */ - "e: 50: 4\n" /* torch */ - "f: 50: 3\n" /* torch */ - "g: 50: 2\n" /* torch */ - "h: 50: 1\n" /* torch */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmaaammmm" - /* 1 */ "mmmmaaammmm" - /* 2 */ "mmmmaaammmm" - /* 3 */ "mmmmaaammmm" - /* 4 */ "aaaaaaaaaaa" - /* 5 */ "aaaaaaaaaaa" - /* 6 */ "aaaaaaaaaaa" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmm.b.mmmm" - /* 1 */ "mmmm.b.mmmm" - /* 2 */ "mmmmcbcmmmm" - /* 3 */ "mmmm.b.mmmm" - /* 4 */ "..c..b..c.." - /* 5 */ "ddddddddddd" - /* 6 */ "..c.....c.." - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmm...mmmm" - /* 1 */ "mmmm...mmmm" - /* 2 */ "mmmmc.cmmmm" - /* 3 */ "mmmm...mmmm" - /* 4 */ "..c.....c.." - /* 5 */ "..........." - /* 6 */ "..c.....c.." - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmm...mmmm" - /* 1 */ "mmmm.e.mmmm" - /* 2 */ "mmmmaaammmm" - /* 3 */ "mmmm.f.mmmm" - /* 4 */ "..a.....a.." - /* 5 */ ".gah...gah." - /* 6 */ "..a.....a..", - - // Connectors: - "3: 0, 1, 5: 4\n" /* Type 3, direction X- */ - "-3: 0, 1, 5: 4\n" /* Type -3, direction X- */ - "3: 5, 1, 0: 2\n" /* Type 3, direction Z- */ - "-3: 5, 1, 0: 2\n" /* Type -3, direction Z- */ - "3: 10, 1, 5: 5\n" /* Type 3, direction X+ */ - "-3: 10, 1, 5: 5\n" /* Type -3, direction X+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - false, - - // DefaultWeight: - 20, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - false, - }, // MineshaftTee - - - - //////////////////////////////////////////////////////////////////////////////// - // MineshaftsCorridor5: - // The data has been exported from the gallery Plains, area index 200, ID 664, created by Aloe_vera - { - // Size: - 11, 4, 3, // SizeX = 11, SizeY = 4, SizeZ = 3 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 10, 3, 2, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 0\n" /* wood */ - "b: 85: 0\n" /* fence */ - "c: 66: 1\n" /* tracks */ - "d: 50: 2\n" /* torch */ - "e: 50: 1\n" /* torch */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "aaaaaaaaaaa" - /* 1 */ "aaaaaaaaaaa" - /* 2 */ "aaaaaaaaaaa" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..b.....b.." - /* 1 */ "ccccccccccc" - /* 2 */ "..b.....b.." - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..b.....b.." - /* 1 */ "..........." - /* 2 */ "..b.....b.." - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..a.....a.." - /* 1 */ ".dae...dae." - /* 2 */ "..a.....a..", - - // Connectors: - "3: 10, 1, 1: 5\n" /* Type 3, direction X+ */ - "-3: 10, 1, 1: 5\n" /* Type -3, direction X+ */ - "-3: 0, 1, 1: 4\n" /* Type -3, direction X- */ - "3: 0, 1, 1: 4\n" /* Type 3, direction X- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - false, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - false, - }, // MineshaftsCorridor5 - - - - //////////////////////////////////////////////////////////////////////////////// - // Scarecrow: - // The data has been exported from the gallery Plains, area index 150, ID 494, created by STR_Warrior - { - // Size: - 1, 6, 3, // SizeX = 1, SizeY = 6, SizeZ = 3 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 0, 5, 2, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a:139: 0\n" /* cobblestonewall */ - "b: 85: 0\n" /* fence */ - "c:126: 4\n" /* woodenslab */ - "d: 86: 1\n" /* pumpkin */ - "e:139: 1\n" /* cobblestonewall */ - "f:163: 4\n" /* acaciawoodenstairs */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 0 */ - /* 0 */ "." - /* 1 */ "a" - /* 2 */ "." - - // Level 1 - /* z\x* 0 */ - /* 0 */ "." - /* 1 */ "b" - /* 2 */ "." - - // Level 2 - /* z\x* 0 */ - /* 0 */ "c" - /* 1 */ "d" - /* 2 */ "c" - - // Level 3 - /* z\x* 0 */ - /* 0 */ "." - /* 1 */ "e" - /* 2 */ "." - - // Level 4 - /* z\x* 0 */ - /* 0 */ "f" - /* 1 */ "d" - /* 2 */ "f" - - // Level 5 - /* z\x* 0 */ - /* 0 */ "." - /* 1 */ "f" - /* 2 */ ".", - - // Connectors: - "-1: -1, 0, 1: 4\n" /* Type -1, direction X- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 10, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // Scarecrow - - - - //////////////////////////////////////////////////////////////////////////////// - // SinglePlantBed: - // The data has been exported from the gallery Plains, area index 17, ID 60, created by Aloe_vera - { - // Size: - 10, 7, 7, // SizeX = 10, SizeY = 7, SizeZ = 7 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 9, 6, 6, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 17: 0\n" /* tree */ - "c: 60: 7\n" /* tilleddirt */ - "d: 8: 0\n" /* water */ - "e: 59: 7\n" /* crops */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "aaaaaaaaaa" - /* 1 */ "aaaaaaaaaa" - /* 2 */ "aaaaaaaaaa" - /* 3 */ "aaaaaaaaaa" - /* 4 */ "aaaaaaaaaa" - /* 5 */ "aaaaaaaaaa" - /* 6 */ "aaaaaaaaaa" - - // Level 1 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "bbbbbbbbbb" - /* 1 */ "bccccccccb" - /* 2 */ "bccccccccb" - /* 3 */ "bddddddddb" - /* 4 */ "bccccccccb" - /* 5 */ "bccccccccb" - /* 6 */ "bbbbbbbbbb" - - // Level 2 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".........." - /* 1 */ ".eeeeeeee." - /* 2 */ ".eeeeeeee." - /* 3 */ ".........." - /* 4 */ ".eeeeeeee." - /* 5 */ ".eeeeeeee." - /* 6 */ ".........." - - // Level 3 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".........." - /* 1 */ ".........." - /* 2 */ ".........." - /* 3 */ ".........." - /* 4 */ ".........." - /* 5 */ ".........." - /* 6 */ ".........." - - // Level 4 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".........." - /* 1 */ ".........." - /* 2 */ ".........." - /* 3 */ ".........." - /* 4 */ ".........." - /* 5 */ ".........." - /* 6 */ ".........." - - // Level 5 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".........." - /* 1 */ ".........." - /* 2 */ ".........." - /* 3 */ ".........." - /* 4 */ ".........." - /* 5 */ ".........." - /* 6 */ ".........." - - // Level 6 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".........." - /* 1 */ ".........." - /* 2 */ ".........." - /* 3 */ ".........." - /* 4 */ ".........." - /* 5 */ ".........." - /* 6 */ "..........", - - // Connectors: - "-1: 9, 1, 3: 5\n" /* Type -1, direction X+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // SinglePlantBed - - - - //////////////////////////////////////////////////////////////////////////////// - // WoodenChurchMid: - // The data has been exported from the gallery Plains, area index 58, ID 109, created by Aloe_vera - { - // Size: - 7, 15, 13, // SizeX = 7, SizeY = 15, SizeZ = 13 - - // Hitbox (relative to bounding box): - -1, -1, 0, // MinX, MinY, MinZ - 7, 14, 13, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "A: 85: 0\n" /* fence */ - "B:126: 8\n" /* woodenslab */ - "a: 4: 0\n" /* cobblestone */ - "b: 67: 0\n" /* stairs */ - "c: 67: 2\n" /* stairs */ - "d: 67: 1\n" /* stairs */ - "e: 17: 0\n" /* tree */ - "f: 5: 0\n" /* wood */ - "g: 64: 7\n" /* wooddoorblock */ - "h: 65: 3\n" /* ladder */ - "i: 53: 3\n" /* woodstairs */ - "j: 53: 7\n" /* woodstairs */ - "k: 64:12\n" /* wooddoorblock */ - "l:102: 0\n" /* glasspane */ - "m: 19: 0\n" /* sponge */ - "n: 50: 1\n" /* torch */ - "o: 50: 2\n" /* torch */ - "p:171:14\n" /* carpet */ - "q: 50: 3\n" /* torch */ - "r: 53: 2\n" /* woodstairs */ - "s: 53: 0\n" /* woodstairs */ - "t: 53: 1\n" /* woodstairs */ - "u: 53: 5\n" /* woodstairs */ - "v: 53: 4\n" /* woodstairs */ - "w: 17: 4\n" /* tree */ - "x: 17: 8\n" /* tree */ - "y: 54: 2\n" /* chest */ - "z: 50: 4\n" /* torch */, - - // Block data: - // Level 0 - /* z\x* 0123456 */ - /* 0 */ "mmaaamm" - /* 1 */ "maaaaam" - /* 2 */ "maaaaam" - /* 3 */ "maaaaam" - /* 4 */ "maaaaam" - /* 5 */ "maaaaam" - /* 6 */ "maaaaam" - /* 7 */ "maaaaam" - /* 8 */ "maaaaam" - /* 9 */ "maaaaam" - /* 10 */ "maaaaam" - /* 11 */ "maaaaam" - /* 12 */ "mmmmmmm" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "..bcd.." - /* 1 */ ".aaaaa." - /* 2 */ ".aaaaa." - /* 3 */ ".aaaaa." - /* 4 */ ".aaaaa." - /* 5 */ ".aaaaa." - /* 6 */ ".aaaaa." - /* 7 */ ".aaaaa." - /* 8 */ ".aaaaa." - /* 9 */ ".aaaaa." - /* 10 */ ".aaaaa." - /* 11 */ ".aaaaa." - /* 12 */ "......." - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".efgfe." - /* 2 */ ".f..hf." - /* 3 */ ".f...f." - /* 4 */ ".f...f." - /* 5 */ ".ei.ie." - /* 6 */ ".f...f." - /* 7 */ ".fi.if." - /* 8 */ ".f...f." - /* 9 */ ".f.j.f." - /* 10 */ ".f...f." - /* 11 */ ".efffe." - /* 12 */ "......." - - // Level 3 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".efkfe." - /* 2 */ ".l..hl." - /* 3 */ ".l...l." - /* 4 */ ".l...l." - /* 5 */ ".e...e." - /* 6 */ ".l...l." - /* 7 */ ".l...l." - /* 8 */ ".fn.of." - /* 9 */ ".l.p.l." - /* 10 */ ".l...l." - /* 11 */ ".ellle." - /* 12 */ "......." - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".efffe." - /* 2 */ ".f.qhf." - /* 3 */ ".f...f." - /* 4 */ ".f...f." - /* 5 */ "re...er" - /* 6 */ "sf...ft" - /* 7 */ "sf...ft" - /* 8 */ "sf...ft" - /* 9 */ "sf...ft" - /* 10 */ "sf...ft" - /* 11 */ "sefffet" - /* 12 */ "su...vt" - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".ewwwe." - /* 2 */ ".xffhx." - /* 3 */ ".xfffx." - /* 4 */ ".xfffx." - /* 5 */ ".ewwwe." - /* 6 */ ".sf.ft." - /* 7 */ ".sf.ft." - /* 8 */ ".sf.ft." - /* 9 */ ".sf.ft." - /* 10 */ ".sf.ft." - /* 11 */ ".sffft." - /* 12 */ ".su.vt." - - // Level 6 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".eflfe." - /* 2 */ ".f..hf." - /* 3 */ ".f...f." - /* 4 */ ".f.y.f." - /* 5 */ ".efffe." - /* 6 */ "..sft.." - /* 7 */ "..sft.." - /* 8 */ "..sft.." - /* 9 */ "..sft.." - /* 10 */ "..sft.." - /* 11 */ "..sft.." - /* 12 */ "..sft.." - - // Level 7 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".eflfe." - /* 2 */ ".f..hf." - /* 3 */ ".l...l." - /* 4 */ ".f...f." - /* 5 */ ".efffe." - /* 6 */ "......." - /* 7 */ "......." - /* 8 */ "......." - /* 9 */ "......." - /* 10 */ "......." - /* 11 */ "......." - /* 12 */ "......." - - // Level 8 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".eflfe." - /* 2 */ ".f..hf." - /* 3 */ ".f...f." - /* 4 */ ".f.z.f." - /* 5 */ ".efffe." - /* 6 */ "......." - /* 7 */ "......." - /* 8 */ "......." - /* 9 */ "......." - /* 10 */ "......." - /* 11 */ "......." - /* 12 */ "......." - - // Level 9 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".ewwwe." - /* 2 */ ".xffhx." - /* 3 */ ".xfffx." - /* 4 */ ".xfffx." - /* 5 */ ".ewwwe." - /* 6 */ "......." - /* 7 */ "......." - /* 8 */ "......." - /* 9 */ "......." - /* 10 */ "......." - /* 11 */ "......." - /* 12 */ "......." - - // Level 10 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".eAAAe." - /* 2 */ ".A...A." - /* 3 */ ".A...A." - /* 4 */ ".A...A." - /* 5 */ ".eAAAe." - /* 6 */ "......." - /* 7 */ "......." - /* 8 */ "......." - /* 9 */ "......." - /* 10 */ "......." - /* 11 */ "......." - /* 12 */ "......." - - // Level 11 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".e...e." - /* 2 */ "......." - /* 3 */ "......." - /* 4 */ "......." - /* 5 */ ".e...e." - /* 6 */ "......." - /* 7 */ "......." - /* 8 */ "......." - /* 9 */ "......." - /* 10 */ "......." - /* 11 */ "......." - /* 12 */ "......." - - // Level 12 - /* z\x* 0123456 */ - /* 0 */ "su...vt" - /* 1 */ "sefffet" - /* 2 */ "sfBBBft" - /* 3 */ "sfBBBft" - /* 4 */ "sfBBBft" - /* 5 */ "sefffet" - /* 6 */ "su...vt" - /* 7 */ "......." - /* 8 */ "......." - /* 9 */ "......." - /* 10 */ "......." - /* 11 */ "......." - /* 12 */ "......." - - // Level 13 - /* z\x* 0123456 */ - /* 0 */ ".su.vt." - /* 1 */ ".sffft." - /* 2 */ ".sffft." - /* 3 */ ".sffft." - /* 4 */ ".sffft." - /* 5 */ ".sffft." - /* 6 */ ".su.vt." - /* 7 */ "......." - /* 8 */ "......." - /* 9 */ "......." - /* 10 */ "......." - /* 11 */ "......." - /* 12 */ "......." - - // Level 14 - /* z\x* 0123456 */ - /* 0 */ "..sft.." - /* 1 */ "..sft.." - /* 2 */ "..sft.." - /* 3 */ "..sft.." - /* 4 */ "..sft.." - /* 5 */ "..sft.." - /* 6 */ "..sft.." - /* 7 */ "......." - /* 8 */ "......." - /* 9 */ "......." - /* 10 */ "......." - /* 11 */ "......." - /* 12 */ ".......", - - // Connectors: - "-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: - 20, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // WoodenChurchMid - - - - //////////////////////////////////////////////////////////////////////////////// - // WoodenGranary: - // The data has been exported from the gallery Plains, area index 54, ID 105, created by Aloe_vera - { - // Size: - 7, 7, 9, // SizeX = 7, SizeY = 7, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, -1, 0, // MinX, MinY, MinZ - 7, 6, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 4: 0\n" /* cobblestone */ - "b:170: 0\n" /* haybale */ - "c: 67: 0\n" /* stairs */ - "d: 67: 2\n" /* stairs */ - "e: 67: 1\n" /* stairs */ - "f: 17: 0\n" /* tree */ - "g: 5: 0\n" /* wood */ - "h:170: 4\n" /* haybale */ - "i:170: 8\n" /* haybale */ - "j: 54: 2\n" /* chest */ - "k: 50: 4\n" /* torch */ - "l: 53: 0\n" /* woodstairs */ - "m: 19: 0\n" /* sponge */ - "n: 53: 5\n" /* woodstairs */ - "o: 53: 4\n" /* woodstairs */ - "p: 53: 1\n" /* woodstairs */, - - // Block data: - // Level 0 - /* z\x* 0123456 */ - /* 0 */ "maaaaam" - /* 1 */ "maaaaam" - /* 2 */ "maaaaam" - /* 3 */ "maaaaam" - /* 4 */ "maaaaam" - /* 5 */ "maaaaam" - /* 6 */ "maaaaam" - /* 7 */ "maaaaam" - /* 8 */ "mmmmmmm" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "bcddde." - /* 1 */ ".aaaaa." - /* 2 */ ".aaaaa." - /* 3 */ ".aaaaa." - /* 4 */ ".aaaaa." - /* 5 */ ".aaaaa." - /* 6 */ ".aaaaa." - /* 7 */ ".aaaaa." - /* 8 */ "......." - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".f..bf." - /* 2 */ ".g...g." - /* 3 */ ".gb.hg." - /* 4 */ ".fihif." - /* 5 */ ".gbbbg." - /* 6 */ ".gijbg." - /* 7 */ ".fgfgf." - /* 8 */ "......." - - // Level 3 - /* z\x* 0123456 */ - /* 0 */ ".k...k." - /* 1 */ ".f...f." - /* 2 */ ".g...g." - /* 3 */ ".g...g." - /* 4 */ ".fh..f." - /* 5 */ ".ghibg." - /* 6 */ ".ghiig." - /* 7 */ ".fgfgf." - /* 8 */ "......." - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "ln...op" - /* 1 */ "lgggggp" - /* 2 */ "lg...gp" - /* 3 */ "lg...gp" - /* 4 */ "lg...gp" - /* 5 */ "lgbb.gp" - /* 6 */ "lgibigp" - /* 7 */ "lgggggp" - /* 8 */ "ln...op" - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ ".ln.op." - /* 1 */ ".lgggp." - /* 2 */ ".lg.gp." - /* 3 */ ".lg.gp." - /* 4 */ ".lg.gp." - /* 5 */ ".lg.gp." - /* 6 */ ".lg.gp." - /* 7 */ ".lgggp." - /* 8 */ ".ln.op." - - // Level 6 - /* z\x* 0123456 */ - /* 0 */ "..lgp.." - /* 1 */ "..lgp.." - /* 2 */ "..lgp.." - /* 3 */ "..lgp.." - /* 4 */ "..lgp.." - /* 5 */ "..lgp.." - /* 6 */ "..lgp.." - /* 7 */ "..lgp.." - /* 8 */ "..lgp..", - - // Connectors: - "-1: 3, 1, -1: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 20, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // WoodenGranary - - - - //////////////////////////////////////////////////////////////////////////////// - // WoodenHouse10x7Library: - // The data has been exported from the gallery Plains, area index 47, ID 98, created by Aloe_vera - { - // Size: - 12, 8, 9, // SizeX = 12, SizeY = 8, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, -1, 0, // MinX, MinY, MinZ - 12, 7, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 4: 0\n" /* cobblestone */ - "b: 67: 0\n" /* stairs */ - "c: 67: 2\n" /* stairs */ - "d: 67: 1\n" /* stairs */ - "e: 17: 0\n" /* tree */ - "f: 5: 0\n" /* wood */ - "g: 64: 7\n" /* wooddoorblock */ - "h: 64: 5\n" /* wooddoorblock */ - "i: 53: 3\n" /* woodstairs */ - "j: 85: 0\n" /* fence */ - "k: 53: 2\n" /* woodstairs */ - "l: 53: 1\n" /* woodstairs */ - "m: 19: 0\n" /* sponge */ - "n: 53: 0\n" /* woodstairs */ - "o:102: 0\n" /* glasspane */ - "p: 64:12\n" /* wooddoorblock */ - "q: 50: 3\n" /* torch */ - "r: 72: 0\n" /* woodplate */ - "s: 53: 7\n" /* woodstairs */ - "t: 47: 0\n" /* bookshelf */ - "u: 50: 1\n" /* torch */ - "v: 50: 2\n" /* torch */ - "w: 53: 6\n" /* woodstairs */, - - // Block data: - // Level 0 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "mmmmaaaammmm" - /* 1 */ "maaaaaaaaaam" - /* 2 */ "maaaaaaaaaam" - /* 3 */ "maaaaaaaaaam" - /* 4 */ "maaaaaaaaaam" - /* 5 */ "maaaaaaaaaam" - /* 6 */ "maaaaaaaaaam" - /* 7 */ "maaaaaaaaaam" - /* 8 */ "mmmmmmmmmmmm" - - // Level 1 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "....bccd...." - /* 1 */ ".aaaaaaaaaa." - /* 2 */ ".aaaaaaaaaa." - /* 3 */ ".aaaaaaaaaa." - /* 4 */ ".aaaaaaaaaa." - /* 5 */ ".aaaaaaaaaa." - /* 6 */ ".aaaaaaaaaa." - /* 7 */ ".aaaaaaaaaa." - /* 8 */ "............" - - // Level 2 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ ".efffghfffe." - /* 2 */ ".f........f." - /* 3 */ ".fi......if." - /* 4 */ ".fj......jf." - /* 5 */ ".fk......kf." - /* 6 */ ".f.ljnljn.f." - /* 7 */ ".effffffffe." - /* 8 */ "............" - - // Level 3 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ ".eoofppfooe." - /* 2 */ ".o..q..q..o." - /* 3 */ ".o........o." - /* 4 */ ".fr......rf." - /* 5 */ ".o........o." - /* 6 */ ".o..r..r..o." - /* 7 */ ".eoofoofooe." - /* 8 */ "............" - - // Level 4 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "kkkkkkkkkkkk" - /* 1 */ "sffffffffffs" - /* 2 */ ".fttttttttf." - /* 3 */ ".f........f." - /* 4 */ ".fu......vf." - /* 5 */ ".f........f." - /* 6 */ ".fttttttttf." - /* 7 */ "wffffffffffw" - /* 8 */ "iiiiiiiiiiii" - - // Level 5 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "kkkkkkkkkkkk" - /* 2 */ "sffffffffffs" - /* 3 */ ".fttttttttf." - /* 4 */ ".f........f." - /* 5 */ ".fttttttttf." - /* 6 */ "wffffffffffw" - /* 7 */ "iiiiiiiiiiii" - /* 8 */ "............" - - // Level 6 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "............" - /* 2 */ "kkkkkkkkkkkk" - /* 3 */ "sffffffffffs" - /* 4 */ ".f........f." - /* 5 */ "wffffffffffw" - /* 6 */ "iiiiiiiiiiii" - /* 7 */ "............" - /* 8 */ "............" - - // Level 7 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "............" - /* 2 */ "............" - /* 3 */ "kkkkkkkkkkkk" - /* 4 */ "ffffffffffff" - /* 5 */ "iiiiiiiiiiii" - /* 6 */ "............" - /* 7 */ "............" - /* 8 */ "............", - - // Connectors: - "-1: 5, 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: - true, - }, // WoodenHouse10x7Library - - - - //////////////////////////////////////////////////////////////////////////////// - // WoodenHouse5x5: - // The data has been exported from the gallery Plains, area index 49, ID 100, created by Aloe_vera - { - // Size: - 7, 7, 7, // SizeX = 7, SizeY = 7, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, -1, 0, // MinX, MinY, MinZ - 7, 6, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 4: 0\n" /* cobblestone */ - "b: 67: 0\n" /* stairs */ - "c: 67: 2\n" /* stairs */ - "d: 67: 1\n" /* stairs */ - "e: 17: 0\n" /* tree */ - "f: 5: 0\n" /* wood */ - "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 */ - "l: 50: 3\n" /* torch */ - "m: 19: 0\n" /* sponge */ - "n: 53: 6\n" /* woodstairs */ - "o: 53: 3\n" /* woodstairs */, - - // Block data: - // Level 0 - /* z\x* 0123456 */ - /* 0 */ "mmaaamm" - /* 1 */ "maaaaam" - /* 2 */ "maaaaam" - /* 3 */ "maaaaam" - /* 4 */ "maaaaam" - /* 5 */ "maaaaam" - /* 6 */ "mmmmmmm" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "..bcd.." - /* 1 */ ".aaaaa." - /* 2 */ ".aaaaa." - /* 3 */ ".aaaaa." - /* 4 */ ".aaaaa." - /* 5 */ ".aaaaa." - /* 6 */ "......." - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".efgfe." - /* 2 */ ".f...f." - /* 3 */ ".f...f." - /* 4 */ ".f...f." - /* 5 */ ".efffe." - /* 6 */ "......." - - // Level 3 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".efhfe." - /* 2 */ ".i...i." - /* 3 */ ".i...i." - /* 4 */ ".i...i." - /* 5 */ ".eiiie." - /* 6 */ "......." - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "jjjjjjj" - /* 1 */ "kfffffk" - /* 2 */ ".fl.lf." - /* 3 */ ".f...f." - /* 4 */ ".f...f." - /* 5 */ "nfffffn" - /* 6 */ "ooooooo" - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "jjjjjjj" - /* 2 */ "kfffffk" - /* 3 */ ".f...f." - /* 4 */ "nfffffn" - /* 5 */ "ooooooo" - /* 6 */ "......." - - // Level 6 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "......." - /* 2 */ "jjjjjjj" - /* 3 */ "fffffff" - /* 4 */ "ooooooo" - /* 5 */ "......." - /* 6 */ ".......", - - // Connectors: - "-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: - true, - }, // WoodenHouse5x5 - - - - //////////////////////////////////////////////////////////////////////////////// - // WoodenHouse7x5: - // The data has been exported from the gallery Plains, area index 40, ID 91, created by xoft - { - // Size: - 9, 7, 7, // SizeX = 9, SizeY = 7, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, -1, 0, // MinX, MinY, MinZ - 9, 6, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 4: 0\n" /* cobblestone */ - "b: 67: 0\n" /* stairs */ - "c: 67: 2\n" /* stairs */ - "d: 67: 1\n" /* stairs */ - "e: 17: 0\n" /* tree */ - "f: 5: 0\n" /* wood */ - "g: 64: 7\n" /* wooddoorblock */ - "h:102: 0\n" /* glasspane */ - "i: 64:12\n" /* wooddoorblock */ - "j: 53: 2\n" /* woodstairs */ - "k: 53: 7\n" /* woodstairs */ - "l: 50: 3\n" /* torch */ - "m: 19: 0\n" /* sponge */ - "n: 53: 6\n" /* woodstairs */ - "o: 53: 3\n" /* woodstairs */, - - // Block data: - // Level 0 - /* z\x* 012345678 */ - /* 0 */ "mmmaaammm" - /* 1 */ "maaaaaaam" - /* 2 */ "maaaaaaam" - /* 3 */ "maaaaaaam" - /* 4 */ "maaaaaaam" - /* 5 */ "maaaaaaam" - /* 6 */ "mmmmmmmmm" - - // Level 1 - /* z\x* 012345678 */ - /* 0 */ "...bcd..." - /* 1 */ ".aaaaaaa." - /* 2 */ ".aaaaaaa." - /* 3 */ ".aaaaaaa." - /* 4 */ ".aaaaaaa." - /* 5 */ ".aaaaaaa." - /* 6 */ "........." - - // Level 2 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ ".effgffe." - /* 2 */ ".f.....f." - /* 3 */ ".f.....f." - /* 4 */ ".f.....f." - /* 5 */ ".efffffe." - /* 6 */ "........." - - // Level 3 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ ".ehfifhe." - /* 2 */ ".h.....h." - /* 3 */ ".h.....h." - /* 4 */ ".h.....h." - /* 5 */ ".ehhfhhe." - /* 6 */ "........." - - // Level 4 - /* z\x* 012345678 */ - /* 0 */ "jjjjjjjjj" - /* 1 */ "kefffffek" - /* 2 */ ".f.l.l.f." - /* 3 */ ".f.....f." - /* 4 */ ".f.....f." - /* 5 */ "nefffffen" - /* 6 */ "ooooooooo" - - // Level 5 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ "jjjjjjjjj" - /* 2 */ "kfffffffk" - /* 3 */ ".f.....f." - /* 4 */ "nfffffffn" - /* 5 */ "ooooooooo" - /* 6 */ "........." - - // Level 6 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ "........." - /* 2 */ "jjjjjjjjj" - /* 3 */ "fffffffff" - /* 4 */ "ooooooooo" - /* 5 */ "........." - /* 6 */ ".........", - - // Connectors: - "-1: 4, 1, -1: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // WoodenHouse7x5 - - - - //////////////////////////////////////////////////////////////////////////////// - // WoodenHouse9x5: - // The data has been exported from the gallery Plains, area index 41, ID 92, created by xoft - { - // Size: - 11, 7, 7, // SizeX = 11, SizeY = 7, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, -1, 0, // MinX, MinY, MinZ - 11, 6, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 4: 0\n" /* cobblestone */ - "b: 67: 0\n" /* stairs */ - "c: 67: 2\n" /* stairs */ - "d: 67: 1\n" /* stairs */ - "e: 17: 0\n" /* tree */ - "f: 5: 0\n" /* wood */ - "g: 64: 3\n" /* wooddoorblock */ - "h:102: 0\n" /* glasspane */ - "i: 64: 8\n" /* wooddoorblock */ - "j: 53: 2\n" /* woodstairs */ - "k: 53: 7\n" /* woodstairs */ - "l: 50: 3\n" /* torch */ - "m: 19: 0\n" /* sponge */ - "n: 53: 6\n" /* woodstairs */ - "o: 53: 3\n" /* woodstairs */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmaaammmm" - /* 1 */ "maaaaaaaaam" - /* 2 */ "maaaaaaaaam" - /* 3 */ "maaaaaaaaam" - /* 4 */ "maaaaaaaaam" - /* 5 */ "maaaaaaaaam" - /* 6 */ "mmmmmmmmmmm" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "....bcd...." - /* 1 */ ".aaaaaaaaa." - /* 2 */ ".aaaaaaaaa." - /* 3 */ ".aaaaaaaaa." - /* 4 */ ".aaaaaaaaa." - /* 5 */ ".aaaaaaaaa." - /* 6 */ "..........." - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".efffgfffe." - /* 2 */ ".f.......f." - /* 3 */ ".f.......f." - /* 4 */ ".f.......f." - /* 5 */ ".efffffffe." - /* 6 */ "..........." - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".ehhfifhhe." - /* 2 */ ".h.......h." - /* 3 */ ".h.......h." - /* 4 */ ".h.......h." - /* 5 */ ".ehhhfhhhe." - /* 6 */ "..........." - - // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "jjjjjjjjjjj" - /* 1 */ "kfffffffffk" - /* 2 */ ".f..l.l.ff." - /* 3 */ ".f......ff." - /* 4 */ ".f......ff." - /* 5 */ "nfffffffffn" - /* 6 */ "ooooooooooo" - - // Level 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "jjjjjjjjjjj" - /* 2 */ "kfffffffffk" - /* 3 */ ".fffffffff." - /* 4 */ "nfffffffffn" - /* 5 */ "ooooooooooo" - /* 6 */ "..........." - - // Level 6 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "jjjjjjjjjjj" - /* 3 */ "fffffffffff" - /* 4 */ "ooooooooooo" - /* 5 */ "..........." - /* 6 */ "...........", - - // Connectors: - "-1: 5, 1, -1: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // WoodenHouse9x5 - - - - //////////////////////////////////////////////////////////////////////////////// - // WoodenHouse9x5Fence: - // The data has been exported from the gallery Plains, area index 9, ID 26, created by Aloe_vera - { - // Size: - 10, 7, 11, // SizeX = 10, SizeY = 7, SizeZ = 11 - - // Hitbox (relative to bounding box): - 0, -1, -1, // MinX, MinY, MinZ - 10, 6, 11, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 4: 0\n" /* cobblestone */ - "b: 3: 0\n" /* dirt */ - "c: 5: 0\n" /* wood */ - "d: 2: 0\n" /* grass */ - "e: 67: 2\n" /* stairs */ - "f: 43: 0\n" /* doubleslab */ - "g: 67: 0\n" /* stairs */ - "h: 67: 3\n" /* stairs */ - "i: 17: 0\n" /* tree */ - "j: 53: 1\n" /* woodstairs */ - "k: 85: 0\n" /* fence */ - "l: 53: 0\n" /* woodstairs */ - "m: 19: 0\n" /* sponge */ - "n: 64: 2\n" /* wooddoorblock */ - "o: 64: 4\n" /* wooddoorblock */ - "p:102: 0\n" /* glasspane */ - "q: 72: 0\n" /* woodplate */ - "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 */ "mmmmmmmmmm" - /* 1 */ "maaaaammmm" - /* 2 */ "maaaaammmm" - /* 3 */ "maaaaabbbb" - /* 4 */ "aaaaaabbbb" - /* 5 */ "aaaaaabbbb" - /* 6 */ "aaaaaabbbb" - /* 7 */ "maaaaabbbb" - /* 8 */ "maaaaabbbb" - /* 9 */ "maaaaammmm" - /* 10 */ "mmmmmmmmmm" - - // Level 1 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "......mmmm" - /* 1 */ ".aaaaammmm" - /* 2 */ ".acccammmm" - /* 3 */ ".acccadddd" - /* 4 */ "eafffadddd" - /* 5 */ "gaffffdddd" - /* 6 */ "hafffadddd" - /* 7 */ ".afffadddd" - /* 8 */ ".afffadddd" - /* 9 */ ".aaaaammmm" - /* 10 */ "......mmmm" - - // Level 2 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "......mmmm" - /* 1 */ ".icccimmmm" - /* 2 */ ".cjklcmmmm" - /* 3 */ ".c...ckkkk" - /* 4 */ ".c...c...k" - /* 5 */ ".n...o...k" - /* 6 */ ".c...c...k" - /* 7 */ ".cff.c...k" - /* 8 */ ".c...ckkkk" - /* 9 */ ".icccimmmm" - /* 10 */ "......mmmm" - - // Level 3 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "......mmmm" - /* 1 */ ".ipppimmmm" - /* 2 */ ".p.q.pmmmm" - /* 3 */ ".p...p...." - /* 4 */ ".c...c...." - /* 5 */ ".r...s...." - /* 6 */ ".c...c...." - /* 7 */ ".p...p...." - /* 8 */ ".p...p...." - /* 9 */ ".ipppimmmm" - /* 10 */ "......mmmm" - - // Level 4 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "lt...ujmmm" - /* 1 */ "licccijmmm" - /* 2 */ "lc...cjmmm" - /* 3 */ "lc...cj..." - /* 4 */ "lcv.wcj..." - /* 5 */ "lc...cj..." - /* 6 */ "lcv.wcj..." - /* 7 */ "lc...cj..." - /* 8 */ "lc...cj..." - /* 9 */ "licccijmmm" - /* 10 */ "lt...ujmmm" - - // Level 5 - /* z\x* */ - /* * 0123456789 */ - /* 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 */ "..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- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // WoodenHouse9x5Fence - - - - //////////////////////////////////////////////////////////////////////////////// - // WoodenHouse9x5Library: - // The data has been exported from the gallery Plains, area index 46, ID 97, created by Aloe_vera - { - // Size: - 11, 7, 7, // SizeX = 11, SizeY = 7, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, -1, 0, // MinX, MinY, MinZ - 11, 6, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 4: 0\n" /* cobblestone */ - "b: 67: 0\n" /* stairs */ - "c: 67: 2\n" /* stairs */ - "d: 67: 1\n" /* stairs */ - "e: 17: 0\n" /* tree */ - "f: 5: 0\n" /* wood */ - "g: 64: 7\n" /* wooddoorblock */ - "h: 53: 3\n" /* woodstairs */ - "i: 85: 0\n" /* fence */ - "j: 53: 2\n" /* woodstairs */ - "k: 53: 1\n" /* woodstairs */ - "l: 53: 0\n" /* woodstairs */ - "m: 19: 0\n" /* sponge */ - "n:102: 0\n" /* glasspane */ - "o: 64:12\n" /* wooddoorblock */ - "p: 50: 3\n" /* torch */ - "q: 72: 0\n" /* woodplate */ - "r: 53: 7\n" /* woodstairs */ - "s: 47: 0\n" /* bookshelf */ - "t: 50: 1\n" /* torch */ - "u: 50: 2\n" /* torch */ - "v: 53: 6\n" /* woodstairs */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmaaammmm" - /* 1 */ "maaaaaaaaam" - /* 2 */ "maaaaaaaaam" - /* 3 */ "maaaaaaaaam" - /* 4 */ "maaaaaaaaam" - /* 5 */ "maaaaaaaaam" - /* 6 */ "mmmmmmmmmmm" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "....bcd...." - /* 1 */ ".aaaaaaaaa." - /* 2 */ ".aaaaaaaaa." - /* 3 */ ".aaaaaaaaa." - /* 4 */ ".aaaaaaaaa." - /* 5 */ ".aaaaaaaaa." - /* 6 */ "..........." - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".efffgfffe." - /* 2 */ ".fh.....hf." - /* 3 */ ".fi.....if." - /* 4 */ ".fj.kil.jf." - /* 5 */ ".efffffffe." - /* 6 */ "..........." - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".ennfofnne." - /* 2 */ ".n..p.p..n." - /* 3 */ ".nq.....qn." - /* 4 */ ".n...q...n." - /* 5 */ ".ennnfnnne." - /* 6 */ "..........." - - // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "jjjjjjjjjjj" - /* 1 */ "rfffffffffr" - /* 2 */ ".fsssssssf." - /* 3 */ ".ft.....uf." - /* 4 */ ".fsssssssf." - /* 5 */ "vfffffffffv" - /* 6 */ "hhhhhhhhhhh" - - // Level 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "jjjjjjjjjjj" - /* 2 */ "rfffffffffr" - /* 3 */ ".f.......f." - /* 4 */ "vfffffffffv" - /* 5 */ "hhhhhhhhhhh" - /* 6 */ "..........." - - // Level 6 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "jjjjjjjjjjj" - /* 3 */ "fffffffffff" - /* 4 */ "hhhhhhhhhhh" - /* 5 */ "..........." - /* 6 */ "...........", - - // Connectors: - "-1: 5, 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: - true, - }, // WoodenHouse9x5Library - - - - //////////////////////////////////////////////////////////////////////////////// - // WoodenHouse9x7: - // The data has been exported from the gallery Plains, area index 52, ID 103, created by Aloe_vera - { - // Size: - 11, 8, 9, // SizeX = 11, SizeY = 8, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, -1, 0, // MinX, MinY, MinZ - 11, 7, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 4: 0\n" /* cobblestone */ - "b: 67: 0\n" /* stairs */ - "c: 67: 2\n" /* stairs */ - "d: 67: 1\n" /* stairs */ - "e: 17: 0\n" /* tree */ - "f: 5: 0\n" /* wood */ - "g: 64: 7\n" /* wooddoorblock */ - "h:102: 0\n" /* glasspane */ - "i: 64:12\n" /* wooddoorblock */ - "j: 53: 2\n" /* woodstairs */ - "k: 53: 7\n" /* woodstairs */ - "l: 50: 3\n" /* torch */ - "m: 19: 0\n" /* sponge */ - "n: 50: 4\n" /* torch */ - "o: 53: 6\n" /* woodstairs */ - "p: 53: 3\n" /* woodstairs */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 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 */ "....bcd...." - /* 1 */ ".aaaaaaaaa." - /* 2 */ ".aaaaaaaaa." - /* 3 */ ".aaaaaaaaa." - /* 4 */ ".aaaaaaaaa." - /* 5 */ ".aaaaaaaaa." - /* 6 */ ".aaaaaaaaa." - /* 7 */ ".aaaaaaaaa." - /* 8 */ "..........." - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".efffgfffe." - /* 2 */ ".f.......f." - /* 3 */ ".f.......f." - /* 4 */ ".f.......f." - /* 5 */ ".f.......f." - /* 6 */ ".f.......f." - /* 7 */ ".efffffffe." - /* 8 */ "..........." - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".ehhfifhhe." - /* 2 */ ".h.......h." - /* 3 */ ".h.......h." - /* 4 */ ".f.......f." - /* 5 */ ".h.......h." - /* 6 */ ".h.......h." - /* 7 */ ".ehhhfhhhe." - /* 8 */ "..........." - - // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "jjjjjjjjjjj" - /* 1 */ "kfffffffffk" - /* 2 */ ".f..l.l..f." - /* 3 */ ".f.......f." - /* 4 */ ".f.......f." - /* 5 */ ".f.......f." - /* 6 */ ".f...n...f." - /* 7 */ "offfffffffo" - /* 8 */ "ppppppppppp" - - // Level 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "jjjjjjjjjjj" - /* 2 */ "kfffffffffk" - /* 3 */ ".f.......f." - /* 4 */ ".f.......f." - /* 5 */ ".f.......f." - /* 6 */ "offfffffffo" - /* 7 */ "ppppppppppp" - /* 8 */ "..........." - - // Level 6 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "jjjjjjjjjjj" - /* 3 */ "kfffffffffk" - /* 4 */ ".f.......f." - /* 5 */ "offfffffffo" - /* 6 */ "ppppppppppp" - /* 7 */ "..........." - /* 8 */ "..........." - - // Level 7 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ "jjjjjjjjjjj" - /* 4 */ "fffffffffff" - /* 5 */ "ppppppppppp" - /* 6 */ "..........." - /* 7 */ "..........." - /* 8 */ "...........", - - // Connectors: - "-1: 5, 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: - true, - }, // WoodenHouse9x7 - - - - //////////////////////////////////////////////////////////////////////////////// - // WoodenHouse9x7Butcher: - // The data has been exported from the gallery Plains, area index 48, ID 99, created by Aloe_vera - { - // Size: - 11, 9, 13, // SizeX = 11, SizeY = 9, SizeZ = 13 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 11, 8, 13, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 2: 0\n" /* grass */ - "c: 4: 0\n" /* cobblestone */ - "d: 67: 0\n" /* stairs */ - "e: 67: 2\n" /* stairs */ - "f: 67: 1\n" /* stairs */ - "g: 43: 0\n" /* doubleslab */ - "h: 17: 0\n" /* tree */ - "i: 5: 0\n" /* wood */ - "j: 64: 7\n" /* wooddoorblock */ - "k: 53: 3\n" /* woodstairs */ - "l: 85: 0\n" /* fence */ - "m: 19: 0\n" /* sponge */ - "n: 53: 2\n" /* woodstairs */ - "o:102: 0\n" /* glasspane */ - "p: 64:12\n" /* wooddoorblock */ - "q: 72: 0\n" /* woodplate */ - "r: 53: 7\n" /* woodstairs */ - "s: 50: 1\n" /* torch */ - "t: 50: 2\n" /* torch */ - "u: 53: 6\n" /* woodstairs */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "aaaaaaaaaaa" - /* 1 */ "aaaaaaaaaaa" - /* 2 */ "aaaaaaaaaaa" - /* 3 */ "aaaaaaaaaaa" - /* 4 */ "aaaaaaaaaab" - /* 5 */ "baaaaaaaaab" - /* 6 */ "aaaaaaaaaaa" - /* 7 */ "baaaaaaaaaa" - /* 8 */ "baaaaaaaaaa" - /* 9 */ "baaaaaaaaab" - /* 10 */ "aaaaaaaaaaa" - /* 11 */ "aaaaaaaaaba" - /* 12 */ "aaaaaaaaaba" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmcccmmmm" - /* 1 */ "mcccccccccm" - /* 2 */ "mcccccccccm" - /* 3 */ "mcccccccccm" - /* 4 */ "mcccccccccm" - /* 5 */ "mcccccccccm" - /* 6 */ "mcccccccccm" - /* 7 */ "mcccccccccm" - /* 8 */ "mmaaaaaaamm" - /* 9 */ "mmaaaaaaamm" - /* 10 */ "mmaaaaaaamm" - /* 11 */ "mmaaaaaaamm" - /* 12 */ "mmaaaaaaamm" - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "....def...." - /* 1 */ ".ccccccccc." - /* 2 */ ".cggggcccc." - /* 3 */ ".cggggcccc." - /* 4 */ ".cggggcccc." - /* 5 */ ".cggggcccc." - /* 6 */ ".cggggcccc." - /* 7 */ ".ccccccccc." - /* 8 */ "..bbbbbbb.." - /* 9 */ "mmbbbbbbbmm" - /* 10 */ "mmbbbbbbbmm" - /* 11 */ "mmbbbbbbbmm" - /* 12 */ "mmbbbbbbbmm" - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".hiiijiiih." - /* 2 */ ".i.g....ki." - /* 3 */ ".i.g....li." - /* 4 */ ".i.g....ni." - /* 5 */ ".i.......i." - /* 6 */ ".i.......i." - /* 7 */ ".hiiijiiih." - /* 8 */ "..l.....l.." - /* 9 */ "mml.....lmm" - /* 10 */ "mml.....lmm" - /* 11 */ "mml.....lmm" - /* 12 */ "mmlllllllmm" - - // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".hooipiooh." - /* 2 */ ".o.......o." - /* 3 */ ".o......qo." - /* 4 */ ".i.......i." - /* 5 */ ".o.......o." - /* 6 */ ".o.......o." - /* 7 */ ".hooipiooh." - /* 8 */ "..........." - /* 9 */ "mm.......mm" - /* 10 */ "mm.......mm" - /* 11 */ "mm.......mm" - /* 12 */ "mm.......mm" - - // Level 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "nnnnnnnnnnn" - /* 1 */ "riiiiiiiiir" - /* 2 */ ".i.......i." - /* 3 */ ".i.......i." - /* 4 */ ".is.....ti." - /* 5 */ ".i.......i." - /* 6 */ ".i.......i." - /* 7 */ "uiiiiiiiiiu" - /* 8 */ "kkkkkkkkkkk" - /* 9 */ "mm.......mm" - /* 10 */ "mm.......mm" - /* 11 */ "mm.......mm" - /* 12 */ "mm.......mm" - - // Level 6 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "nnnnnnnnnnn" - /* 2 */ "riiiiiiiiir" - /* 3 */ ".i.......i." - /* 4 */ ".i.......i." - /* 5 */ ".i.......i." - /* 6 */ "uiiiiiiiiiu" - /* 7 */ "kkkkkkkkkkk" - /* 8 */ "..........." - /* 9 */ "mm.......mm" - /* 10 */ "mm.......mm" - /* 11 */ "mm.......mm" - /* 12 */ "mm.......mm" - - // Level 7 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "nnnnnnnnnnn" - /* 3 */ "riiiiiiiiir" - /* 4 */ ".i.......i." - /* 5 */ "uiiiiiiiiiu" - /* 6 */ "kkkkkkkkkkk" - /* 7 */ "..........." - /* 8 */ "..........." - /* 9 */ "mm.......mm" - /* 10 */ "mm.......mm" - /* 11 */ "mm.......mm" - /* 12 */ "mm.......mm" - - // Level 8 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ "nnnnnnnnnnn" - /* 4 */ "iiiiiiiiiii" - /* 5 */ "kkkkkkkkkkk" - /* 6 */ "..........." - /* 7 */ "..........." - /* 8 */ "..........." - /* 9 */ "mm.......mm" - /* 10 */ "mm.......mm" - /* 11 */ "mm.......mm" - /* 12 */ "mm.......mm", - - // Connectors: - "-1: 5, 2, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // WoodenHouse9x7Butcher - - - - //////////////////////////////////////////////////////////////////////////////// - // WoodenHouse9x7DoubleDoor: - // The data has been exported from the gallery Plains, area index 38, ID 87, created by Aloe_vera - { - // Size: - 11, 8, 9, // SizeX = 11, SizeY = 8, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, -1, 0, // MinX, MinY, MinZ - 11, 7, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 4: 0\n" /* cobblestone */ - "b: 67: 0\n" /* stairs */ - "c: 67: 2\n" /* stairs */ - "d: 67: 1\n" /* stairs */ - "e: 67: 3\n" /* stairs */ - "f: 17: 0\n" /* tree */ - "g: 5: 0\n" /* wood */ - "h: 64: 7\n" /* wooddoorblock */ - "i:102: 0\n" /* glasspane */ - "j: 64:12\n" /* wooddoorblock */ - "k: 53: 2\n" /* woodstairs */ - "l: 53: 7\n" /* woodstairs */ - "m: 19: 0\n" /* sponge */ - "n: 17: 4\n" /* tree */ - "o: 17: 8\n" /* tree */ - "p: 50: 3\n" /* torch */ - "q: 50: 4\n" /* torch */ - "r: 53: 6\n" /* woodstairs */ - "s: 53: 3\n" /* woodstairs */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmaaammmm" - /* 1 */ "maaaaaaaaam" - /* 2 */ "maaaaaaaaam" - /* 3 */ "maaaaaaaaam" - /* 4 */ "maaaaaaaaam" - /* 5 */ "maaaaaaaaam" - /* 6 */ "maaaaaaaaam" - /* 7 */ "maaaaaaaaam" - /* 8 */ "mmmmaaammmm" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "....bcd...." - /* 1 */ ".aaaaaaaaa." - /* 2 */ ".aaaaaaaaa." - /* 3 */ ".aaaaaaaaa." - /* 4 */ ".aaaaaaaaa." - /* 5 */ ".aaaaaaaaa." - /* 6 */ ".aaaaaaaaa." - /* 7 */ ".aaaaaaaaa." - /* 8 */ "....bed...." - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".fggfhfggf." - /* 2 */ ".g.......g." - /* 3 */ ".g.......g." - /* 4 */ ".f.......f." - /* 5 */ ".g.......g." - /* 6 */ ".g.......g." - /* 7 */ ".fggfhfggf." - /* 8 */ "..........." - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".fiifjfiif." - /* 2 */ ".i.......i." - /* 3 */ ".i.......i." - /* 4 */ ".f.......f." - /* 5 */ ".i.......i." - /* 6 */ ".i.......i." - /* 7 */ ".fiifjfiif." - /* 8 */ "..........." - - // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "kkkkkkkkkkk" - /* 1 */ "lfnnnnnnnfl" - /* 2 */ ".o..p.p..o." - /* 3 */ ".o.......o." - /* 4 */ ".o.......o." - /* 5 */ ".o.......o." - /* 6 */ ".o..q.q..o." - /* 7 */ "rfnnnnnnnfr" - /* 8 */ "sssssssssss" - - // Level 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "kkkkkkkkkkk" - /* 2 */ "lgggggggggl" - /* 3 */ ".g.......g." - /* 4 */ ".g.......g." - /* 5 */ ".g.......g." - /* 6 */ "rgggggggggr" - /* 7 */ "sssssssssss" - /* 8 */ "..........." - - // Level 6 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "kkkkkkkkkkk" - /* 3 */ "lgggggggggl" - /* 4 */ ".g.......g." - /* 5 */ "rgggggggggr" - /* 6 */ "sssssssssss" - /* 7 */ "..........." - /* 8 */ "..........." - - // Level 7 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ "kkkkkkkkkkk" - /* 4 */ "ggggggggggg" - /* 5 */ "sssssssssss" - /* 6 */ "..........." - /* 7 */ "..........." - /* 8 */ "...........", - - // Connectors: - "-1: 5, 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: - true, - }, // WoodenHouse9x7DoubleDoor - - - - //////////////////////////////////////////////////////////////////////////////// - // WoodenHouseL13x14: - // The data has been exported from the gallery Plains, area index 39, ID 90, created by STR_Warrior - { - // Size: - 15, 9, 16, // SizeX = 15, SizeY = 9, SizeZ = 16 - - // Hitbox (relative to bounding box): - -1, -1, 0, // MinX, MinY, MinZ - 15, 8, 16, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "A: 53: 7\n" /* woodstairs */ - "B: 53: 4\n" /* woodstairs */ - "C: 53: 5\n" /* woodstairs */ - "D: 53: 6\n" /* woodstairs */ - "a: 4: 0\n" /* cobblestone */ - "b: 67: 0\n" /* stairs */ - "c: 67: 2\n" /* stairs */ - "d: 67: 1\n" /* stairs */ - "e: 43: 0\n" /* doubleslab */ - "f: 17: 0\n" /* tree */ - "g: 5: 0\n" /* wood */ - "h: 64: 7\n" /* wooddoorblock */ - "i: 96: 8\n" /* trapdoor */ - "j: 61: 2\n" /* furnace */ - "k: 53: 3\n" /* woodstairs */ - "l: 85: 0\n" /* fence */ - "m: 19: 0\n" /* sponge */ - "n: 53: 2\n" /* woodstairs */ - "o: 53: 1\n" /* woodstairs */ - "p: 53: 0\n" /* woodstairs */ - "q: 47: 0\n" /* bookshelf */ - "r:102: 0\n" /* glasspane */ - "s: 64:12\n" /* wooddoorblock */ - "t: 72: 0\n" /* woodplate */ - "u: 17: 4\n" /* tree */ - "v: 17: 8\n" /* tree */ - "w: 50: 3\n" /* torch */ - "x: 50: 1\n" /* torch */ - "y: 50: 4\n" /* torch */ - "z: 50: 2\n" /* torch */, - - // Block data: - // Level 0 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "mmmmmmaaammmmmm" - /* 1 */ "maaaaaaaaaaaaam" - /* 2 */ "maaaaaaaaaaaaam" - /* 3 */ "maaaaaaaaaaaaam" - /* 4 */ "maaaaaaaaaaaaam" - /* 5 */ "maaaaaaaaaaaaam" - /* 6 */ "maaaaaaaaaaaaam" - /* 7 */ "maaaaaaaaaaaaam" - /* 8 */ "mmmmmmmmaaaaaam" - /* 9 */ "mmmmmmmmaaaaaam" - /* 10 */ "mmmmmmmmaaaaaam" - /* 11 */ "mmmmmmmmaaaaaam" - /* 12 */ "mmmmmmmmaaaaaam" - /* 13 */ "mmmmmmmmaaaaaam" - /* 14 */ "mmmmmmmmaaaaaam" - /* 15 */ "mmmmmmmmmmmmmmm" - - // Level 1 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "......bcd......" - /* 1 */ ".aaaaaaaaaaaaa." - /* 2 */ ".aeeeeaaaaaaaa." - /* 3 */ ".aeeeeaaaaaaaa." - /* 4 */ ".aaaaaaaaaaaaa." - /* 5 */ ".aaaaaaaaaaaaa." - /* 6 */ ".aaaaaaaaaaaaa." - /* 7 */ ".aaaaaaaaaaaaa." - /* 8 */ "........aaaaaa." - /* 9 */ "mmmmmmm.aaaaaa." - /* 10 */ "mmmmmmm.aaaaaa." - /* 11 */ "mmmmmmm.aaaaaa." - /* 12 */ "mmmmmmm.aaaaaa." - /* 13 */ "mmmmmmm.aaaaaa." - /* 14 */ "mmmmmmm.aaaaaa." - /* 15 */ "mmmmmmm........" - - // Level 2 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".fggggfhfggggf." - /* 2 */ ".g...i.......g." - /* 3 */ ".gjeee......kg." - /* 4 */ ".f..........lg." - /* 5 */ ".g..........ng." - /* 6 */ ".g.olp..ol...g." - /* 7 */ ".fggggggfn...f." - /* 8 */ "........g....g." - /* 9 */ "mmmmmmm.gk...g." - /* 10 */ "mmmmmmm.gl..kg." - /* 11 */ "mmmmmmm.gn..lg." - /* 12 */ "mmmmmmm.g...ng." - /* 13 */ "mmmmmmm.gq..qg." - /* 14 */ "mmmmmmm.fggggf." - /* 15 */ "mmmmmmm........" - - // Level 3 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".fgrrgfsfgrrgf." - /* 2 */ ".g...........g." - /* 3 */ ".g...........r." - /* 4 */ ".f..........tr." - /* 5 */ ".g...........r." - /* 6 */ ".g..t....t...g." - /* 7 */ ".fgrrrrgf....f." - /* 8 */ "........g....g." - /* 9 */ "mmmmmmm.r....r." - /* 10 */ "mmmmmmm.rt...r." - /* 11 */ "mmmmmmm.r...tr." - /* 12 */ "mmmmmmm.r....r." - /* 13 */ "mmmmmmm.gq..qg." - /* 14 */ "mmmmmmm.fgrrgf." - /* 15 */ "mmmmmmm........" - - // Level 4 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".fuuuuuuuuuuuf." - /* 2 */ ".v....w.w....v." - /* 3 */ ".v...........v." - /* 4 */ ".vx..........v." - /* 5 */ ".v...........v." - /* 6 */ ".v......y....v." - /* 7 */ ".fuuuuuufx..zv." - /* 8 */ "........v....v." - /* 9 */ "mmmmmmm.v....v." - /* 10 */ "mmmmmmm.v....v." - /* 11 */ "mmmmmmm.v....v." - /* 12 */ "mmmmmmm.v....v." - /* 13 */ "mmmmmmm.v.yy.v." - /* 14 */ "mmmmmmm.fuuuuf." - /* 15 */ "mmmmmmm........" - - // Level 5 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "nnnnnnnnnnnnnno" - /* 1 */ "pgggggggggggggo" - /* 2 */ "pgAAAAAAAAAABgo" - /* 3 */ "pgC.........Bgo" - /* 4 */ "pgC.........Bgo" - /* 5 */ "pgC.........Bgo" - /* 6 */ "pgCDDDDDDD..Bgo" - /* 7 */ "pggggggggC..Bgo" - /* 8 */ "pkkkkkkpgC..Bgo" - /* 9 */ "mmmmmmmpgC..Bgo" - /* 10 */ "mmmmmmmpgC..Bgo" - /* 11 */ "mmmmmmmpgC..Bgo" - /* 12 */ "mmmmmmmpgC..Bgo" - /* 13 */ "mmmmmmmpgCDDBgo" - /* 14 */ "mmmmmmmpggggggo" - /* 15 */ "mmmmmmmpkkkkkkk" - - // Level 6 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".pnnnnnnnnnnno." - /* 2 */ ".pgggggggggggo." - /* 3 */ ".pgggggggggggo." - /* 4 */ ".pgggggggggggo." - /* 5 */ ".pgggggggggggo." - /* 6 */ ".pgggggggggggo." - /* 7 */ ".pkkkkkkkggggo." - /* 8 */ "........pggggo." - /* 9 */ "mmmmmmm.pggggo." - /* 10 */ "mmmmmmm.pggggo." - /* 11 */ "mmmmmmm.pggggo." - /* 12 */ "mmmmmmm.pggggo." - /* 13 */ "mmmmmmm.pggggo." - /* 14 */ "mmmmmmm.kkkkko." - /* 15 */ "mmmmmmm........" - - // Level 7 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ "..nnnnnnnnnnn.." - /* 3 */ "..pgggggggggo.." - /* 4 */ "..pgggggggggo.." - /* 5 */ "..pgggggggggo.." - /* 6 */ "..kkkkkkkkggo.." - /* 7 */ ".........pggo.." - /* 8 */ ".........pggo.." - /* 9 */ "mmmmmmm..pggo.." - /* 10 */ "mmmmmmm..pggo.." - /* 11 */ "mmmmmmm..pggo.." - /* 12 */ "mmmmmmm..pggo.." - /* 13 */ "mmmmmmm..kkko.." - /* 14 */ "mmmmmmm........" - /* 15 */ "mmmmmmm........" - - // Level 8 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ "..............." - /* 3 */ "...pnnnnnnno..." - /* 4 */ "...pgggggggo..." - /* 5 */ "...pkkkkkkpo..." - /* 6 */ "..........po..." - /* 7 */ "..........po..." - /* 8 */ "..........po..." - /* 9 */ "mmmmmmm...po..." - /* 10 */ "mmmmmmm...po..." - /* 11 */ "mmmmmmm...po..." - /* 12 */ "mmmmmmm...pk..." - /* 13 */ "mmmmmmm........" - /* 14 */ "mmmmmmm........" - /* 15 */ "mmmmmmm........", - - // Connectors: - "-1: 7, 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: - true, - }, // WoodenHouseL13x14 - - - - //////////////////////////////////////////////////////////////////////////////// - // WoodenHouseL14x14: - // The data has been exported from the gallery Plains, area index 0, ID 4, created by Aloe_vera - { - // Size: - 16, 8, 16, // SizeX = 16, SizeY = 8, SizeZ = 16 - - // Hitbox (relative to bounding box): - -1, 1, 0, // MinX, MinY, MinZ - 16, 7, 16, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 4: 0\n" /* cobblestone */ - "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: 1\n" /* woodstairs */ - "o: 53: 7\n" /* woodstairs */ - "p: 53: 6\n" /* woodstairs */ - "q: 53: 3\n" /* woodstairs */ - "r: 53: 0\n" /* woodstairs */ - "s: 53: 5\n" /* woodstairs */ - "t: 53: 4\n" /* woodstairs */ - "u: 50: 3\n" /* torch */ - "v: 50: 2\n" /* torch */ - "w: 50: 4\n" /* torch */ - "x: 50: 1\n" /* torch */, - - // Block data: - // Level 0 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "mmmmmmmmaaammmmm" - /* 1 */ "maaaaaaaaaaaaaam" - /* 2 */ "maaaaaaaaaaaaaam" - /* 3 */ "maaaaaaaaaaaaaam" - /* 4 */ "maaaaaaaaaaaaaam" - /* 5 */ "maaaaaaaaaaaaaam" - /* 6 */ "maaaaaaaaaaaaaam" - /* 7 */ "maaaaaaaaaaaaaam" - /* 8 */ "mmmmmaaaaaaaaaam" - /* 9 */ "mmmmmmmmaaaaaaam" - /* 10 */ "mmmmmmmmaaaaaaam" - /* 11 */ "mmmmmmmmaaaaaaam" - /* 12 */ "mmmmmmmmaaaaaaam" - /* 13 */ "mmmmmmmmaaaaaaam" - /* 14 */ "mmmmmmmmaaaaaaam" - /* 15 */ "mmmmmmmmmmmmmmmm" - - // Level 1 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "........bcd....." - /* 1 */ ".aaaaaaaaaaaaaa." - /* 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 */ ".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 */ ".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 */ "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 */ "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 */ "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 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "................" - /* 2 */ "................" - /* 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- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // WoodenHouseL14x14 - - - - //////////////////////////////////////////////////////////////////////////////// - // WoodenHouseL9x9: - // The data has been exported from the gallery Plains, area index 42, ID 93, created by xoft - { - // Size: - 11, 7, 11, // SizeX = 11, SizeY = 7, SizeZ = 11 - - // Hitbox (relative to bounding box): - -1, -1, 0, // MinX, MinY, MinZ - 11, 6, 11, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 4: 0\n" /* cobblestone */ - "b: 67: 0\n" /* stairs */ - "c: 67: 2\n" /* stairs */ - "d: 67: 1\n" /* stairs */ - "e: 17: 0\n" /* tree */ - "f: 5: 0\n" /* wood */ - "g: 64: 7\n" /* wooddoorblock */ - "h:102: 0\n" /* glasspane */ - "i: 64:12\n" /* wooddoorblock */ - "j: 53: 2\n" /* woodstairs */ - "k: 53: 7\n" /* woodstairs */ - "l: 53: 1\n" /* woodstairs */ - "m: 19: 0\n" /* sponge */ - "n: 50: 3\n" /* torch */ - "o: 50: 4\n" /* torch */ - "p: 53: 6\n" /* woodstairs */ - "q: 50: 1\n" /* torch */ - "r: 50: 2\n" /* torch */ - "s: 53: 3\n" /* woodstairs */ - "t: 53: 0\n" /* woodstairs */ - "u: 53: 5\n" /* woodstairs */ - "v: 53: 4\n" /* woodstairs */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmaaammmm" - /* 1 */ "maaaaaaaaam" - /* 2 */ "maaaaaaaaam" - /* 3 */ "maaaaaaaaam" - /* 4 */ "maaaaaaaaam" - /* 5 */ "maaaaaaaaam" - /* 6 */ "mmmmmaaaaam" - /* 7 */ "mmmmmaaaaam" - /* 8 */ "mmmmmaaaaam" - /* 9 */ "mmmmmaaaaam" - /* 10 */ "mmmmmmmmmmm" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "....bcd...." - /* 1 */ ".aaaaaaaaa." - /* 2 */ ".aaaaaaaaa." - /* 3 */ ".aaaaaaaaa." - /* 4 */ ".aaaaaaaaa." - /* 5 */ ".aaaaaaaaa." - /* 6 */ ".....aaaaa." - /* 7 */ "mmmm.aaaaa." - /* 8 */ "mmmm.aaaaa." - /* 9 */ "mmmm.aaaaa." - /* 10 */ "mmmm......." - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".efffgfffe." - /* 2 */ ".f.......f." - /* 3 */ ".f.......f." - /* 4 */ ".f.......f." - /* 5 */ ".efffe...f." - /* 6 */ ".....f...f." - /* 7 */ "mmmm.f...f." - /* 8 */ "mmmm.f...f." - /* 9 */ "mmmm.efffe." - /* 10 */ "mmmm......." - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".ehhfifhhe." - /* 2 */ ".h.......h." - /* 3 */ ".h.......h." - /* 4 */ ".h.......h." - /* 5 */ ".ehhhe...f." - /* 6 */ ".....h...h." - /* 7 */ "mmmm.h...h." - /* 8 */ "mmmm.h...h." - /* 9 */ "mmmm.ehhhe." - /* 10 */ "mmmm......." - - // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "jjjjjjjjjjj" - /* 1 */ "kfffffffffl" - /* 2 */ ".f..n.n..fl" - /* 3 */ ".f.......fl" - /* 4 */ ".f...o...fl" - /* 5 */ "pfffffq.rfl" - /* 6 */ "sssssf...fl" - /* 7 */ "mmmmtf...fl" - /* 8 */ "mmmmtf...fl" - /* 9 */ "mmmmtfffffl" - /* 10 */ "mmmmtu...vl" - - // Level 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "jjjjjjjjjl." - /* 2 */ "kffffffffl." - /* 3 */ ".f......fl." - /* 4 */ "pffffff.fl." - /* 5 */ "ssssssf.fl." - /* 6 */ ".....tf.fl." - /* 7 */ "mmmm.tf.fl." - /* 8 */ "mmmm.tf.fl." - /* 9 */ "mmmm.tfffl." - /* 10 */ "mmmm.tu.vl." - - // Level 6 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "jjjjjjjjj.." - /* 3 */ "ffffffffl.." - /* 4 */ "sssssstfl.." - /* 5 */ "......tfl.." - /* 6 */ "......tfl.." - /* 7 */ "mmmm..tfl.." - /* 8 */ "mmmm..tfl.." - /* 9 */ "mmmm..tfl.." - /* 10 */ "mmmm..tfl..", - - // Connectors: - "-1: 5, 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: - true, - }, // WoodenHouseL9x9 - - - - //////////////////////////////////////////////////////////////////////////////// - // WoodenHouseU13x9: - // The data has been exported from the gallery Plains, area index 43, ID 94, created by xoft - { - // Size: - 15, 7, 11, // SizeX = 15, SizeY = 7, SizeZ = 11 - - // Hitbox (relative to bounding box): - -1, -1, 0, // MinX, MinY, MinZ - 15, 6, 11, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 4: 0\n" /* cobblestone */ - "b: 67: 0\n" /* stairs */ - "c: 67: 2\n" /* stairs */ - "d: 67: 1\n" /* stairs */ - "e: 17: 0\n" /* tree */ - "f: 5: 0\n" /* wood */ - "g: 64: 7\n" /* wooddoorblock */ - "h:102: 0\n" /* glasspane */ - "i: 64:12\n" /* wooddoorblock */ - "j: 53: 2\n" /* woodstairs */ - "k: 53: 0\n" /* woodstairs */ - "l: 53: 1\n" /* woodstairs */ - "m: 19: 0\n" /* sponge */ - "n: 50: 3\n" /* torch */ - "o: 50: 4\n" /* torch */ - "p: 50: 2\n" /* torch */ - "q: 50: 1\n" /* torch */ - "r: 53: 3\n" /* woodstairs */ - "s: 53: 5\n" /* woodstairs */ - "t: 53: 4\n" /* woodstairs */, - - // Block data: - // Level 0 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "mmmmmmaaammmmmm" - /* 1 */ "maaaaaaaaaaaaam" - /* 2 */ "maaaaaaaaaaaaam" - /* 3 */ "maaaaaaaaaaaaam" - /* 4 */ "maaaaaaaaaaaaam" - /* 5 */ "maaaaaaaaaaaaam" - /* 6 */ "maaaaammmaaaaam" - /* 7 */ "maaaaammmaaaaam" - /* 8 */ "maaaaammmaaaaam" - /* 9 */ "maaaaammmaaaaam" - /* 10 */ "mmmmmmmmmmmmmmm" - - // Level 1 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "......bcd......" - /* 1 */ ".aaaaaaaaaaaaa." - /* 2 */ ".aaaaaaaaaaaaa." - /* 3 */ ".aaaaaaaaaaaaa." - /* 4 */ ".aaaaaaaaaaaaa." - /* 5 */ ".aaaaaaaaaaaaa." - /* 6 */ ".aaaaa...aaaaa." - /* 7 */ ".aaaaa...aaaaa." - /* 8 */ ".aaaaa...aaaaa." - /* 9 */ ".aaaaa...aaaaa." - /* 10 */ "..............." - - // Level 2 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".efffffgfffffe." - /* 2 */ ".f...........f." - /* 3 */ ".f...........f." - /* 4 */ ".f...........f." - /* 5 */ ".f...efffe...f." - /* 6 */ ".f...f...f...f." - /* 7 */ ".f...f...f...f." - /* 8 */ ".f...f...f...f." - /* 9 */ ".efffe...efffe." - /* 10 */ "..............." - - // Level 3 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".ehhhhfifhhhhe." - /* 2 */ ".h...........h." - /* 3 */ ".h...........h." - /* 4 */ ".h...........h." - /* 5 */ ".f...ehhhe...f." - /* 6 */ ".h...h...h...h." - /* 7 */ ".h...h...h...h." - /* 8 */ ".h...h...h...h." - /* 9 */ ".ehhhe...ehhhe." - /* 10 */ "..............." - - // Level 4 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "jjjjjjjjjjjjjjj" - /* 1 */ "kfffffffffffffl" - /* 2 */ "kf....n.n....fl" - /* 3 */ "kf...........fl" - /* 4 */ "kf...o...o...fl" - /* 5 */ "kf..pfffffq..fl" - /* 6 */ "kf...frrrf...fl" - /* 7 */ "kf...fl.kf...fl" - /* 8 */ "kf...fl.kf...fl" - /* 9 */ "kfffffl.kfffffl" - /* 10 */ "ks...tl.ks...tl" - - // Level 5 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".jjjjjjjjjjjjl." - /* 2 */ ".kfffffffffffl." - /* 3 */ ".kfffffffffffl." - /* 4 */ ".kfffffffffffl." - /* 5 */ ".kffflrrrrfffl." - /* 6 */ ".kfffl...kfffl." - /* 7 */ ".kfffl...kfffl." - /* 8 */ ".kfffl...kfffl." - /* 9 */ ".kfffl...kfffl." - /* 10 */ ".ks.tl...ks.tl." - - // Level 6 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ "..kjjjjjjjjjj.." - /* 3 */ "..kfffffffffl.." - /* 4 */ "..kflrrrrrkfl.." - /* 5 */ "..kfl.....kfl.." - /* 6 */ "..kfl.....kfl.." - /* 7 */ "..kfl.....kfl.." - /* 8 */ "..kfl.....kfl.." - /* 9 */ "..kfl.....kfl.." - /* 10 */ "..kfl.....kfl..", - - // Connectors: - "-1: 7, 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: - true, - }, // WoodenHouseU13x9 - - - - //////////////////////////////////////////////////////////////////////////////// - // WoodenMill5x5: - // The data has been exported from the gallery Plains, area index 60, ID 111, created by Aloe_vera - { - // Size: - 9, 17, 13, // SizeX = 9, SizeY = 17, SizeZ = 13 - - // Hitbox (relative to bounding box): - -1, -1, 0, // MinX, MinY, MinZ - 8, 16, 12, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 4: 0\n" /* cobblestone */ - "b: 67: 2\n" /* stairs */ - "c: 67: 1\n" /* stairs */ - "d: 67: 3\n" /* stairs */ - "e: 17: 0\n" /* tree */ - "f: 5: 0\n" /* wood */ - "g: 54: 4\n" /* chest */ - "h:154: 4\n" /* hopper */ - "i: 64: 4\n" /* wooddoorblock */ - "j:102: 0\n" /* glasspane */ - "k: 85: 0\n" /* fence */ - "l: 64:12\n" /* wooddoorblock */ - "m: 19: 0\n" /* sponge */ - "n: 50: 2\n" /* torch */ - "o: 35: 0\n" /* wool */ - "p: 17: 4\n" /* tree */ - "q: 17: 8\n" /* tree */ - "r: 53: 2\n" /* woodstairs */ - "s: 53: 7\n" /* woodstairs */ - "t: 53: 6\n" /* woodstairs */ - "u: 53: 3\n" /* woodstairs */, - - // Block data: - // Level 0 - /* z\x* 012345678 */ - /* 0 */ "mmmmmmmmm" - /* 1 */ "mmmmmmmmm" - /* 2 */ "mmmmmmmmm" - /* 3 */ "mmmmmmmmm" - /* 4 */ "maaaaammm" - /* 5 */ "maaaaaamm" - /* 6 */ "maaaaaamm" - /* 7 */ "maaaaaamm" - /* 8 */ "maaaaammm" - /* 9 */ "mmmmmmmmm" - /* 10 */ "mmmmmmmmm" - /* 11 */ "mmmmmmmmm" - /* 12 */ "mmmmmmmmm" - - // Level 1 - /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.." - /* 3 */ "........." - /* 4 */ ".aaaaa..." - /* 5 */ ".aaaaab.." - /* 6 */ ".aaaaac.." - /* 7 */ ".aaaaad.." - /* 8 */ ".aaaaa..." - /* 9 */ "........." - /* 10 */ "mmmmmmm.." - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm.." - - // Level 2 - /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.." - /* 3 */ "........." - /* 4 */ ".efffe..." - /* 5 */ ".f...f..." - /* 6 */ ".fgh.i..." - /* 7 */ ".f...f..." - /* 8 */ ".efffe..." - /* 9 */ "........." - /* 10 */ "mmmmmmm.." - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm.." - - // Level 3 - /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.." - /* 3 */ "........." - /* 4 */ ".ejjje..." - /* 5 */ ".j...f..." - /* 6 */ ".j.k.l..." - /* 7 */ ".j...f..." - /* 8 */ ".ejjje..." - /* 9 */ "........." - /* 10 */ "mmmmmmm.." - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm.." - - // Level 4 - /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.." - /* 3 */ "........." - /* 4 */ ".efffe..." - /* 5 */ ".f..nf..." - /* 6 */ ".f.k.f..." - /* 7 */ ".f..nf..k" - /* 8 */ ".efffe..o" - /* 9 */ "........." - /* 10 */ "mmmmmmm.." - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm.." - - // Level 5 - /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.." - /* 3 */ "........." - /* 4 */ ".epppe..." - /* 5 */ ".q...q..." - /* 6 */ ".q.k.q..." - /* 7 */ ".q...q..k" - /* 8 */ ".epppe..o" - /* 9 */ "........." - /* 10 */ "mmmmmmm.." - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm.." - - // Level 6 - /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.." - /* 3 */ "........." - /* 4 */ ".efffe..." - /* 5 */ ".f...f..." - /* 6 */ ".f.k.f..k" - /* 7 */ ".f...f..o" - /* 8 */ ".efffe..o" - /* 9 */ "........." - /* 10 */ "mmmmmmm.." - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm.." - - // Level 7 - /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.." - /* 3 */ "........." - /* 4 */ ".ejjje..." - /* 5 */ ".j...j..." - /* 6 */ ".j.k.j..k" - /* 7 */ ".j...j..o" - /* 8 */ ".ejjje..." - /* 9 */ "........." - /* 10 */ "mmmmmmm.." - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm.." - - // Level 8 - /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.o" - /* 1 */ "mmmmmmm.o" - /* 2 */ "mmmmmmm.o" - /* 3 */ "........." - /* 4 */ ".efffe..." - /* 5 */ ".f...f..k" - /* 6 */ ".f.k.f..o" - /* 7 */ ".f...f..o" - /* 8 */ ".efffe..." - /* 9 */ "........." - /* 10 */ "mmmmmmm.." - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm.." - - // Level 9 - /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.k" - /* 1 */ "mmmmmmm.k" - /* 2 */ "mmmmmmm.o" - /* 3 */ "........o" - /* 4 */ ".epppe..o" - /* 5 */ ".q...q..k" - /* 6 */ ".q.k.q..o" - /* 7 */ ".q...q..k" - /* 8 */ ".epppe..k" - /* 9 */ "........." - /* 10 */ "mmmmmmm.." - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm.." - - // Level 10 - /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.k" - /* 3 */ "rrrrrrr.k" - /* 4 */ "sfffffs.o" - /* 5 */ ".f...f..o" - /* 6 */ ".f.kppppp" - /* 7 */ ".f...f..o" - /* 8 */ "tffffft.o" - /* 9 */ "uuuuuuu.k" - /* 10 */ "mmmmmmm.k" - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm.." - - // Level 11 - /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.." - /* 3 */ "........." - /* 4 */ "rrrrrrr.k" - /* 5 */ "sfffffs.k" - /* 6 */ ".f...f..o" - /* 7 */ "tffffft.k" - /* 8 */ "uuuuuuu.o" - /* 9 */ "........o" - /* 10 */ "mmmmmmm.o" - /* 11 */ "mmmmmmm.k" - /* 12 */ "mmmmmmm.k" - - // Level 12 - /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.." - /* 3 */ "........." - /* 4 */ "........." - /* 5 */ "rrrrrrr.o" - /* 6 */ "fffffff.o" - /* 7 */ "uuuuuuu.k" - /* 8 */ "........." - /* 9 */ "........." - /* 10 */ "mmmmmmm.o" - /* 11 */ "mmmmmmm.o" - /* 12 */ "mmmmmmm.o" - - // Level 13 - /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.." - /* 3 */ "........." - /* 4 */ "........." - /* 5 */ "........o" - /* 6 */ "........k" - /* 7 */ "........." - /* 8 */ "........." - /* 9 */ "........." - /* 10 */ "mmmmmmm.." - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm.." - - // Level 14 - /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.." - /* 3 */ "........." - /* 4 */ "........o" - /* 5 */ "........o" - /* 6 */ "........k" - /* 7 */ "........." - /* 8 */ "........." - /* 9 */ "........." - /* 10 */ "mmmmmmm.." - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm.." - - // Level 15 - /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.." - /* 3 */ "........." - /* 4 */ "........o" - /* 5 */ "........k" - /* 6 */ "........." - /* 7 */ "........." - /* 8 */ "........." - /* 9 */ "........." - /* 10 */ "mmmmmmm.." - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm.." - - // Level 16 - /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.." - /* 3 */ "........." - /* 4 */ "........o" - /* 5 */ "........k" - /* 6 */ "........." - /* 7 */ "........." - /* 8 */ "........." - /* 9 */ "........." - /* 10 */ "mmmmmmm.." - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm..", - - // Connectors: - "-1: 8, 1, 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, - }, // WoodenMill5x5 - - - - //////////////////////////////////////////////////////////////////////////////// - // WoodenStables: - // The data has been exported from the gallery Plains, area index 55, ID 106, created by Aloe_vera - { - // Size: - 15, 9, 9, // SizeX = 15, SizeY = 9, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, -1, 0, // MinX, MinY, MinZ - 15, 8, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 4: 0\n" /* cobblestone */ - "b: 67: 0\n" /* stairs */ - "c: 67: 2\n" /* stairs */ - "d: 67: 1\n" /* stairs */ - "e: 3: 0\n" /* dirt */ - "f: 17: 0\n" /* tree */ - "g:107: 0\n" /* fencegate */ - "h:107: 4\n" /* fencegate */ - "i: 5: 0\n" /* wood */ - "j:107: 6\n" /* fencegate */ - "k: 85: 0\n" /* fence */ - "l:170: 0\n" /* haybale */ - "m: 19: 0\n" /* sponge */ - "n:170: 4\n" /* haybale */ - "o:170: 8\n" /* haybale */ - "p: 50: 1\n" /* torch */ - "q: 50: 2\n" /* torch */ - "r: 53: 2\n" /* woodstairs */ - "s: 53: 7\n" /* woodstairs */ - "t: 53: 6\n" /* woodstairs */ - "u: 53: 3\n" /* woodstairs */, - - // Block data: - // Level 0 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "maaaaaaaaaaaaam" - /* 1 */ "maaaaaaaaaaaaam" - /* 2 */ "maaaaaaaaaaaaam" - /* 3 */ "maaaaaaaaaaaaam" - /* 4 */ "maaaaaaaaaaaaam" - /* 5 */ "maaaaaaaaaaaaam" - /* 6 */ "maaaaaaaaaaaaam" - /* 7 */ "maaaaaaaaaaaaam" - /* 8 */ "mmmmmmmmmmmmmmm" - - // Level 1 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ ".bcccccccccccd." - /* 1 */ ".aaaaaaaaaaaaa." - /* 2 */ ".aeeeeeeeeeeea." - /* 3 */ ".aeeeeeeeeeeea." - /* 4 */ ".aeeeeeeeeeeea." - /* 5 */ ".aeeeeeeeeeeea." - /* 6 */ ".aeeeeeeeeeeea." - /* 7 */ ".aaaaaaaaaaaaa." - /* 8 */ "..............." - - // Level 2 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".fghgighgigjgf." - /* 2 */ ".k...k...k...k." - /* 3 */ ".k...k...k...k." - /* 4 */ ".k...k...k...k." - /* 5 */ ".k...k...k...k." - /* 6 */ ".kl..k..nko..k." - /* 7 */ ".fkkkikkkikkkf." - /* 8 */ "..............." - - // Level 3 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".f...i...i...f." - /* 2 */ "..............." - /* 3 */ "..............." - /* 4 */ "..............." - /* 5 */ "..............." - /* 6 */ "..............." - /* 7 */ ".f...i...i...f." - /* 8 */ "..............." - - // Level 4 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".fp.qip.qip.qf." - /* 2 */ "..............." - /* 3 */ "..............." - /* 4 */ "..............." - /* 5 */ "..............." - /* 6 */ "..............." - /* 7 */ ".f...i...i...f." - /* 8 */ "..............." - - // Level 5 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "rrrrrrrrrrrrrrr" - /* 1 */ "siiiiiiiiiiiiis" - /* 2 */ ".i...........i." - /* 3 */ ".i...........i." - /* 4 */ ".i...........i." - /* 5 */ ".i...........i." - /* 6 */ ".i...........i." - /* 7 */ "tiiiiiiiiiiiiit" - /* 8 */ "uuuuuuuuuuuuuuu" - - // Level 6 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "rrrrrrrrrrrrrrr" - /* 2 */ "siiiiiiiiiiiiis" - /* 3 */ ".i...........i." - /* 4 */ ".i...........i." - /* 5 */ ".i...........i." - /* 6 */ "tiiiiiiiiiiiiit" - /* 7 */ "uuuuuuuuuuuuuuu" - /* 8 */ "..............." - - // Level 7 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ "rrrrrrrrrrrrrrr" - /* 3 */ "siiiiiiiiiiiiis" - /* 4 */ ".i...........i." - /* 5 */ "tiiiiiiiiiiiiit" - /* 6 */ "uuuuuuuuuuuuuuu" - /* 7 */ "..............." - /* 8 */ "..............." - - // Level 8 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ "..............." - /* 3 */ "rrrrrrrrrrrrrrr" - /* 4 */ "iiiiiiiiiiiiiii" - /* 5 */ "uuuuuuuuuuuuuuu" - /* 6 */ "..............." - /* 7 */ "..............." - /* 8 */ "...............", - - // Connectors: - "-1: 7, 1, -1: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // WoodenStables -}; // g_PlainsVillagePrefabs - - - - - - -const cPrefab::sDef g_PlainsVillageStartingPrefabs[] = -{ - //////////////////////////////////////////////////////////////////////////////// - // CobbleWell4x4: - // The data has been exported from the gallery Plains, area index 1, ID 5, created by Aloe_vera - { - // Size: - 4, 13, 4, // SizeX = 4, SizeY = 13, SizeZ = 4 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 3, 12, 3, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 1: 0\n" /* stone */ - "b: 4: 0\n" /* cobblestone */ - "c: 8: 0\n" /* water */ - "d: 85: 0\n" /* fence */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 0123 */ - /* 0 */ "aaaa" - /* 1 */ "aaaa" - /* 2 */ "aaaa" - /* 3 */ "aaaa" - - // Level 1 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "bccb" - /* 2 */ "bccb" - /* 3 */ "bbbb" - - // Level 2 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "bccb" - /* 2 */ "bccb" - /* 3 */ "bbbb" - - // Level 3 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "bccb" - /* 2 */ "bccb" - /* 3 */ "bbbb" - - // Level 4 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "bccb" - /* 2 */ "bccb" - /* 3 */ "bbbb" - - // Level 5 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "bccb" - /* 2 */ "bccb" - /* 3 */ "bbbb" - - // Level 6 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "bccb" - /* 2 */ "bccb" - /* 3 */ "bbbb" - - // Level 7 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "bccb" - /* 2 */ "bccb" - /* 3 */ "bbbb" - - // Level 8 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "bccb" - /* 2 */ "bccb" - /* 3 */ "bbbb" - - // Level 9 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "b..b" - /* 2 */ "b..b" - /* 3 */ "bbbb" - - // Level 10 - /* z\x* 0123 */ - /* 0 */ "d..d" - /* 1 */ "...." - /* 2 */ "...." - /* 3 */ "d..d" - - // Level 11 - /* z\x* 0123 */ - /* 0 */ "d..d" - /* 1 */ "...." - /* 2 */ "...." - /* 3 */ "d..d" - - // Level 12 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "bbbb" - /* 2 */ "bbbb" - /* 3 */ "bbbb", - - // Connectors: - "2: 1, 9, 3: 3\n" /* Type 2, direction Z+ */ - "2: 2, 9, 0: 2\n" /* Type 2, direction Z- */ - "2: 0, 9, 1: 4\n" /* Type 2, direction X- */ - "2: 3, 9, 2: 5\n" /* Type 2, direction X+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // CobbleWell4x4 - - - - //////////////////////////////////////////////////////////////////////////////// - // MineEntrance: - // The data has been exported from the gallery Plains, area index 138, ID 446, created by STR_Warrior - { - // Size: - 7, 38, 7, // SizeX = 7, SizeY = 38, SizeZ = 7 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 6, 37, 6, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 5: 0\n" /* wood */ - "b: 77: 2\n" /* stonebutton */ - "c: 66: 6\n" /* tracks */ - "d: 27: 1\n" /* poweredrail */ - "e: 66: 5\n" /* tracks */ - "f: 66: 9\n" /* tracks */ - "g: 66: 2\n" /* tracks */ - "h: 50: 4\n" /* torch */ - "i: 66: 4\n" /* tracks */ - "j: 66: 8\n" /* tracks */ - "k: 66: 3\n" /* tracks */ - "l: 66: 7\n" /* tracks */ - "m: 19: 0\n" /* sponge */ - "n: 50: 2\n" /* torch */ - "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 - /* z\x* 0123456 */ - /* 0 */ "maaaaam" - /* 1 */ "maaaaam" - /* 2 */ "maaaaam" - /* 3 */ "maaaaam" - /* 4 */ "maaaaam" - /* 5 */ "maaaaam" - /* 6 */ "mmmmmmm" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "mm...mm" - /* 1 */ "mm.abam" - /* 2 */ "mmcddam" - /* 3 */ "mae..am" - /* 4 */ "mmaa.mm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ "mm...mm" - /* 1 */ "mm.a.mm" - /* 2 */ "mm...mm" - /* 3 */ "ma..aam" - /* 4 */ "mmfgamm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 3 - /* z\x* 0123456 */ - /* 0 */ "mm.h.mm" - /* 1 */ "mm.a.mm" - /* 2 */ "mm.aamm" - /* 3 */ "ma..iam" - /* 4 */ "mm..jmm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mmaklmm" - /* 3 */ "maa..am" - /* 4 */ "mm...mm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mmc..mm" - /* 3 */ "mae.nam" - /* 4 */ "mmaa.mm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 6 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mm...mm" - /* 3 */ "ma..aam" - /* 4 */ "mmfgamm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 7 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mm.aamm" - /* 3 */ "ma..iam" - /* 4 */ "mm..jmm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 8 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mmaklmm" - /* 3 */ "maa..am" - /* 4 */ "mm...mm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 9 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mmc..mm" - /* 3 */ "mae.nam" - /* 4 */ "mmaa.mm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 10 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mm...mm" - /* 3 */ "ma..aam" - /* 4 */ "mmfgamm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 11 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mm.aamm" - /* 3 */ "ma..iam" - /* 4 */ "mm..jmm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 12 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mmaklmm" - /* 3 */ "maa..am" - /* 4 */ "mm...mm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 13 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mmc..mm" - /* 3 */ "mae.nam" - /* 4 */ "mmaa.mm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 14 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mm...mm" - /* 3 */ "ma..aam" - /* 4 */ "mmfgamm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 15 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mm.aamm" - /* 3 */ "ma..iam" - /* 4 */ "mm..jmm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 16 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mmaklmm" - /* 3 */ "maa..am" - /* 4 */ "mm...mm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 17 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mmc..mm" - /* 3 */ "mae.nam" - /* 4 */ "mmaa.mm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 18 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mm...mm" - /* 3 */ "ma..aam" - /* 4 */ "mmfgamm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 19 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mm.aamm" - /* 3 */ "ma..iam" - /* 4 */ "mm..jmm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 20 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mmaklmm" - /* 3 */ "maa..am" - /* 4 */ "mm...mm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 21 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mmc..mm" - /* 3 */ "mae.nam" - /* 4 */ "mmaa.mm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 22 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mm...mm" - /* 3 */ "ma..aam" - /* 4 */ "mmfgamm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 23 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mm.aamm" - /* 3 */ "ma..iam" - /* 4 */ "mm..jmm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 24 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mmaklmm" - /* 3 */ "maa..am" - /* 4 */ "mm...mm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 25 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mmc..mm" - /* 3 */ "mae.nam" - /* 4 */ "mmaa.mm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 26 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mm...mm" - /* 3 */ "ma..aam" - /* 4 */ "mmfgamm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 27 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mm.aamm" - /* 3 */ "ma..iam" - /* 4 */ "mm..jmm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 28 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mmaklmm" - /* 3 */ "maa..am" - /* 4 */ "mm...mm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 29 - /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" - /* 1 */ "mmmammm" - /* 2 */ "mmc..mm" - /* 3 */ "mae.nam" - /* 4 */ "mmaa.mm" - /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" - - // Level 30 - /* z\x* 0123456 */ - /* 0 */ "mmooomm" - /* 1 */ "mmmammm" - /* 2 */ "om...mo" - /* 3 */ "oa..aao" - /* 4 */ "omfgamo" - /* 5 */ "mmmammm" - /* 6 */ "mmooomm" - - // Level 31 - /* z\x* 0123456 */ - /* 0 */ "ppqqqpp" - /* 1 */ "paaaaap" - /* 2 */ "qa.aaaq" - /* 3 */ "qa..iaq" - /* 4 */ "qa..jaq" - /* 5 */ "paaaaap" - /* 6 */ "ppqqqpp" - - // Level 32 - /* z\x* 0123456 */ - /* 0 */ "...r..." - /* 1 */ ".astba." - /* 2 */ "...fl.." - /* 3 */ "......." - /* 4 */ "......." - /* 5 */ ".a...a." - /* 6 */ "......." - - // Level 33 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".a...a." - /* 2 */ "......." - /* 3 */ "......." - /* 4 */ "......." - /* 5 */ ".a...a." - /* 6 */ "......." - - // Level 34 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".a...a." - /* 2 */ "......." - /* 3 */ "......." - /* 4 */ "......." - /* 5 */ ".a...a." - /* 6 */ "......." - - // Level 35 - /* z\x* 0123456 */ - /* 0 */ "rrrrrrr" - /* 1 */ "uaaaaau" - /* 2 */ ".a...a." - /* 3 */ ".a...a." - /* 4 */ ".a...a." - /* 5 */ "vaaaaav" - /* 6 */ "wwwwwww" - - // Level 36 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "rrrrrrr" - /* 2 */ "uaaaaau" - /* 3 */ ".aaaaa." - /* 4 */ "vaaaaav" - /* 5 */ "wwwwwww" - /* 6 */ "......." - - // Level 37 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "......." - /* 2 */ "rrrrrrr" - /* 3 */ "aaaaaaa" - /* 4 */ "wwwwwww" - /* 5 */ "......." - /* 6 */ ".......", - - // Connectors: - "2: 6, 32, 3: 5\n" /* Type 2, direction X+ */ - "2: 3, 32, 6: 3\n" /* Type 2, direction Z+ */ - "2: 0, 32, 3: 4\n" /* Type 2, direction X- */ - "2: 3, 32, 0: 2\n" /* Type 2, direction Z- */ - "3: 3, 1, 0: 2\n" /* Type 3, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - false, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // MineEntrance - - - - //////////////////////////////////////////////////////////////////////////////// - // RoofedWell: - // The data has been exported from the gallery Plains, area index 119, ID 271, created by STR_Warrior - { - // Size: - 7, 15, 7, // SizeX = 7, SizeY = 15, SizeZ = 7 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 6, 14, 6, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 1: 0\n" /* stone */ - "b: 4: 0\n" /* cobblestone */ - "c: 8: 0\n" /* water */ - "d: 3: 0\n" /* dirt */ - "e: 2: 0\n" /* grass */ - "f: 13: 0\n" /* gravel */ - "g:118: 3\n" /* cauldronblock */ - "h: 85: 0\n" /* fence */ - "i: 53: 2\n" /* woodstairs */ - "j: 53: 7\n" /* woodstairs */ - "k: 5: 0\n" /* wood */ - "l: 53: 4\n" /* woodstairs */ - "m: 19: 0\n" /* sponge */ - "n: 53: 5\n" /* woodstairs */ - "o: 53: 6\n" /* woodstairs */ - "p: 53: 3\n" /* woodstairs */, - - // Block data: - // Level 0 - /* z\x* 0123456 */ - /* 0 */ "aaaaaaa" - /* 1 */ "aaaaaaa" - /* 2 */ "aaaaaaa" - /* 3 */ "aaaaaaa" - /* 4 */ "aaaaaaa" - /* 5 */ "aaaaaaa" - /* 6 */ "aaaaaaa" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "aaaaaaa" - /* 1 */ "abbbbba" - /* 2 */ "abcccba" - /* 3 */ "abcccba" - /* 4 */ "abcccba" - /* 5 */ "abbbbba" - /* 6 */ "aaaaaaa" - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ "aaaaaaa" - /* 1 */ "abbbbba" - /* 2 */ "abcccba" - /* 3 */ "abcccba" - /* 4 */ "abcccba" - /* 5 */ "abbbbba" - /* 6 */ "aaaaaaa" - - // Level 3 - /* z\x* 0123456 */ - /* 0 */ "aaaaaaa" - /* 1 */ "abbbbba" - /* 2 */ "abcccba" - /* 3 */ "abcccba" - /* 4 */ "abcccba" - /* 5 */ "abbbbba" - /* 6 */ "aaaaaaa" - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "aaaaaaa" - /* 1 */ "abbbbba" - /* 2 */ "abcccba" - /* 3 */ "abcccba" - /* 4 */ "abcccba" - /* 5 */ "abbbbba" - /* 6 */ "aaaaaaa" - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "ddddddd" - /* 1 */ "dbbbbbd" - /* 2 */ "dbcccbd" - /* 3 */ "dbcccbd" - /* 4 */ "dbcccbd" - /* 5 */ "dbbbbbd" - /* 6 */ "ddddddd" - - // Level 6 - /* z\x* 0123456 */ - /* 0 */ "ddddddd" - /* 1 */ "dbbbbbd" - /* 2 */ "dbcccbd" - /* 3 */ "dbcccbd" - /* 4 */ "dbcccbd" - /* 5 */ "dbbbbbd" - /* 6 */ "ddddddd" - - // Level 7 - /* z\x* 0123456 */ - /* 0 */ "ddddddd" - /* 1 */ "dbbbbbd" - /* 2 */ "dbcccbd" - /* 3 */ "dbcccbd" - /* 4 */ "dbcccbd" - /* 5 */ "dbbbbbd" - /* 6 */ "ddddddd" - - // Level 8 - /* z\x* 0123456 */ - /* 0 */ "eefffee" - /* 1 */ "ebbbbbe" - /* 2 */ "fbcccbf" - /* 3 */ "fbcccbf" - /* 4 */ "fbcccbf" - /* 5 */ "ebbbbbe" - /* 6 */ "eefffee" - - // Level 9 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".bbbbb." - /* 2 */ ".b...b." - /* 3 */ ".b.g.b." - /* 4 */ ".b...b." - /* 5 */ ".bbbbb." - /* 6 */ "......." - - // Level 10 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".h...h." - /* 2 */ "......." - /* 3 */ "...h..." - /* 4 */ "......." - /* 5 */ ".h...h." - /* 6 */ "......." - - // Level 11 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".h...h." - /* 2 */ "......." - /* 3 */ "...h..." - /* 4 */ "......." - /* 5 */ ".h...h." - /* 6 */ "......." - - // Level 12 - /* z\x* 0123456 */ - /* 0 */ "iiiiiii" - /* 1 */ "jkjjjkj" - /* 2 */ ".l...n." - /* 3 */ ".l.h.n." - /* 4 */ ".l...n." - /* 5 */ "okoooko" - /* 6 */ "ppppppp" - - // Level 13 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "iiiiiii" - /* 2 */ "jkjjjkj" - /* 3 */ ".k.h.k." - /* 4 */ "okoooko" - /* 5 */ "ppppppp" - /* 6 */ "......." - - // Level 14 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "......." - /* 2 */ "iiiiiii" - /* 3 */ "kkkkkkk" - /* 4 */ "ppppppp" - /* 5 */ "......." - /* 6 */ ".......", - - // Connectors: - "2: 0, 9, 3: 4\n" /* Type 2, direction X- */ - "2: 3, 9, 6: 3\n" /* Type 2, direction Z+ */ - "2: 6, 9, 3: 5\n" /* Type 2, direction X+ */ - "2: 3, 9, 0: 2\n" /* Type 2, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // RoofedWell -}; - - - - - -// The prefab counts: - -const size_t g_PlainsVillagePrefabsCount = ARRAYCOUNT(g_PlainsVillagePrefabs); - -const size_t g_PlainsVillageStartingPrefabsCount = ARRAYCOUNT(g_PlainsVillageStartingPrefabs); - diff --git a/src/Generating/Prefabs/PlainsVillagePrefabs.h b/src/Generating/Prefabs/PlainsVillagePrefabs.h deleted file mode 100644 index 087783b1e..000000000 --- a/src/Generating/Prefabs/PlainsVillagePrefabs.h +++ /dev/null @@ -1,15 +0,0 @@ - -// PlainsVillagePrefabs.h - -// Declares the prefabs in the group PlainsVillage - -#include "../Prefab.h" - - - - - -extern const cPrefab::sDef g_PlainsVillagePrefabs[]; -extern const cPrefab::sDef g_PlainsVillageStartingPrefabs[]; -extern const size_t g_PlainsVillagePrefabsCount; -extern const size_t g_PlainsVillageStartingPrefabsCount; diff --git a/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.cpp b/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.cpp deleted file mode 100644 index 3328ee210..000000000 --- a/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.cpp +++ /dev/null @@ -1,1669 +0,0 @@ - -// SandFlatRoofVillagePrefabs.cpp - -// Defines the prefabs in the group SandFlatRoofVillage - -// NOTE: This file has been generated automatically by GalExport! -// Any manual changes will be overwritten by the next automatic export! - -#include "Globals.h" -#include "SandFlatRoofVillagePrefabs.h" - - - - - -const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = -{ - //////////////////////////////////////////////////////////////////////////////// - // Forge: - // The data has been exported from the gallery Desert, area index 32, ID 173, created by Aloe_vera - { - // Size: - 12, 6, 10, // SizeX = 12, SizeY = 6, SizeZ = 10 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 12, 5, 10, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "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:171:15\n" /* carpet */ - "g: 64: 6\n" /* wooddoorblock */ - "h:171: 0\n" /* carpet */ - "i:171:14\n" /* carpet */ - "j: 61: 2\n" /* furnace */ - "k: 10: 0\n" /* lava */ - "l: 54: 2\n" /* chest */ - "m: 19: 0\n" /* sponge */ - "n: 24: 2\n" /* sandstone */ - "o: 64:12\n" /* wooddoorblock */ - "p: 50: 1\n" /* torch */ - "q:101: 0\n" /* ironbars */ - "r:128: 4\n" /* sandstonestairs */ - "s:128: 6\n" /* sandstonestairs */ - "t:128: 5\n" /* sandstonestairs */ - "u:128: 7\n" /* sandstonestairs */, - - // Block data: - // Level 0 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "aaaaaaammmmm" - /* 1 */ "aaaaaaaaaaam" - /* 2 */ "aaaaaaaaaaam" - /* 3 */ "aaaaaaaaaaam" - /* 4 */ "aaaaaaaaaaam" - /* 5 */ "aaaaaaaaaaam" - /* 6 */ "maaaaaaaaaam" - /* 7 */ "maaaaaaaaaam" - /* 8 */ "maaaaaaaaaam" - /* 9 */ "mmmmmmmmmmmm" - - // Level 1 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "bcccccd....." - /* 1 */ "baaaaaaaaaa." - /* 2 */ "baaaaaaaaaa." - /* 3 */ "baaaaaaaaaa." - /* 4 */ "baaaaaaaaaa." - /* 5 */ "eaaaaaaaaaa." - /* 6 */ ".aaaaaaaaaa." - /* 7 */ ".aaaaaaaaaa." - /* 8 */ ".aaaaaaaaaa." - /* 9 */ "............" - - // Level 2 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ ".a....aaaaa." - /* 2 */ "......afffa." - /* 3 */ "......ghfha." - /* 4 */ "......aiiia." - /* 5 */ ".a....ahfha." - /* 6 */ ".ajaajafffa." - /* 7 */ ".aakkaal..a." - /* 8 */ ".aaaaaaaaaa." - /* 9 */ "............" - - // Level 3 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ ".n....nn.nn." - /* 2 */ "......n...n." - /* 3 */ "......o...n." - /* 4 */ "......n....." - /* 5 */ ".n....n...n." - /* 6 */ ".n....n...n." - /* 7 */ ".n....n...n." - /* 8 */ ".nnn.nnn.nn." - /* 9 */ "............" - - // Level 4 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ ".a....aaaaa." - /* 2 */ "......a...a." - /* 3 */ "......a...a." - /* 4 */ "......ap..a." - /* 5 */ ".a....a...a." - /* 6 */ ".aqqqqa...a." - /* 7 */ ".a....a...a." - /* 8 */ ".aaaaaaaaaa." - /* 9 */ "............" - - // Level 5 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "rsssssssssss" - /* 1 */ "raaaaaaaaaat" - /* 2 */ "raaaaaaaaaat" - /* 3 */ "raaaaaaaaaat" - /* 4 */ "raaaaaaaaaat" - /* 5 */ "raaaaaaaaaat" - /* 6 */ "raaaaaaaaaat" - /* 7 */ "raaaaaaaaaat" - /* 8 */ "raaaaaaaaaat" - /* 9 */ "uuuuuuuuuuut", - - // Connectors: - "-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: - true, - }, // Forge - - - - //////////////////////////////////////////////////////////////////////////////// - // House11x7: - // The data has been exported from the gallery Desert, area index 31, ID 172, created by Aloe_vera - { - // Size: - 13, 6, 9, // SizeX = 13, SizeY = 6, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 13, 5, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "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:171: 0\n" /* carpet */ - "g:171:15\n" /* carpet */ - "h:171:14\n" /* carpet */ - "i: 24: 2\n" /* sandstone */ - "j: 64:12\n" /* wooddoorblock */ - "k: 50: 3\n" /* torch */ - "l: 50: 1\n" /* torch */ - "m: 19: 0\n" /* sponge */ - "n: 50: 2\n" /* torch */ - "o: 50: 4\n" /* torch */ - "p:128: 4\n" /* sandstonestairs */ - "q:128: 6\n" /* sandstonestairs */ - "r:128: 5\n" /* sandstonestairs */ - "s:128: 7\n" /* sandstonestairs */, - - // Block data: - // Level 0 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "mmaaammmmmmmm" - /* 1 */ "maaaaaaaaaaam" - /* 2 */ "maaaaaaaaaaam" - /* 3 */ "maaaaaaaaaaam" - /* 4 */ "maaaaaaaaaaam" - /* 5 */ "maaaaaaaaaaam" - /* 6 */ "maaaaaaaaaaam" - /* 7 */ "maaaaaaaaaaam" - /* 8 */ "mmmmmmmmmmmmm" - - // Level 1 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 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 */ ".aaeaaaaaaaa." - /* 2 */ ".affgggggffa." - /* 3 */ ".afghhhhhgfa." - /* 4 */ ".afghfffhgfa." - /* 5 */ ".afghhhhhgfa." - /* 6 */ ".affgggggffa." - /* 7 */ ".aaaaaaaaaaa." - /* 8 */ "............." - - // Level 3 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ ".iiji.iii.ii." - /* 2 */ ".i.........i." - /* 3 */ ".i.........i." - /* 4 */ "............." - /* 5 */ ".i.........i." - /* 6 */ ".i.........i." - /* 7 */ ".ii.ii.ii.ii." - /* 8 */ "............." - - // Level 4 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ ".aaaaaaaaaaa." - /* 2 */ ".a..k..k...a." - /* 3 */ ".a.........a." - /* 4 */ ".al.......na." - /* 5 */ ".a.........a." - /* 6 */ ".a....o....a." - /* 7 */ ".aaaaaaaaaaa." - /* 8 */ "............." - - // Level 5 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "pqqqqqqqqqqqq" - /* 1 */ "paaaaaaaaaaar" - /* 2 */ "paaaaaaaaaaar" - /* 3 */ "paaaaaaaaaaar" - /* 4 */ "paaaaaaaaaaar" - /* 5 */ "paaaaaaaaaaar" - /* 6 */ "paaaaaaaaaaar" - /* 7 */ "paaaaaaaaaaar" - /* 8 */ "ssssssssssssr", - - // Connectors: - "-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: - true, - }, // House11x7 - - - - //////////////////////////////////////////////////////////////////////////////// - // House5x4: - // The data has been exported from the gallery Desert, area index 25, ID 166, created by Aloe_vera - { - // Size: - 7, 6, 6, // SizeX = 7, SizeY = 6, SizeZ = 6 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 7, 5, 6, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "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:171: 0\n" /* carpet */ - "g:171:14\n" /* carpet */ - "h: 24: 2\n" /* sandstone */ - "i: 64:12\n" /* wooddoorblock */ - "j: 50: 3\n" /* torch */ - "k:128: 4\n" /* sandstonestairs */ - "l:128: 6\n" /* sandstonestairs */ - "m: 19: 0\n" /* sponge */ - "n:128: 5\n" /* sandstonestairs */ - "o:128: 7\n" /* sandstonestairs */, - - // Block data: - // Level 0 - /* z\x* 0123456 */ - /* 0 */ "mmaaamm" - /* 1 */ "maaaaam" - /* 2 */ "maaaaam" - /* 3 */ "maaaaam" - /* 4 */ "maaaaam" - /* 5 */ "mmmmmmm" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "..bcd.." - /* 1 */ ".aaaaa." - /* 2 */ ".aaaaa." - /* 3 */ ".aaaaa." - /* 4 */ ".aaaaa." - /* 5 */ "......." - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".aaeaa." - /* 2 */ ".afgfa." - /* 3 */ ".afgfa." - /* 4 */ ".aaaaa." - /* 5 */ "......." - - // Level 3 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".hhihh." - /* 2 */ ".h...h." - /* 3 */ ".h...h." - /* 4 */ ".hh.hh." - /* 5 */ "......." - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".aaaaa." - /* 2 */ ".aj.ja." - /* 3 */ ".a...a." - /* 4 */ ".aaaaa." - /* 5 */ "......." - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "kllllln" - /* 1 */ "kaaaaan" - /* 2 */ "kaaaaan" - /* 3 */ "kaaaaan" - /* 4 */ "kaaaaan" - /* 5 */ "oooooon", - - // Connectors: - "-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: - true, - }, // House5x4 - - - - //////////////////////////////////////////////////////////////////////////////// - // House5x5: - // The data has been exported from the gallery Desert, area index 26, ID 167, created by Aloe_vera - { - // Size: - 7, 6, 7, // SizeX = 7, SizeY = 6, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 7, 5, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "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:171: 0\n" /* carpet */ - "g:171:15\n" /* carpet */ - "h:171:14\n" /* carpet */ - "i: 24: 2\n" /* sandstone */ - "j: 64:12\n" /* wooddoorblock */ - "k: 50: 3\n" /* torch */ - "l:128: 4\n" /* sandstonestairs */ - "m: 19: 0\n" /* sponge */ - "n:128: 6\n" /* sandstonestairs */ - "o:128: 5\n" /* sandstonestairs */ - "p:128: 7\n" /* sandstonestairs */, - - // Block data: - // Level 0 - /* z\x* 0123456 */ - /* 0 */ "mmaaamm" - /* 1 */ "maaaaam" - /* 2 */ "maaaaam" - /* 3 */ "maaaaam" - /* 4 */ "maaaaam" - /* 5 */ "maaaaam" - /* 6 */ "mmmmmmm" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "..bcd.." - /* 1 */ ".aaaaa." - /* 2 */ ".aaaaa." - /* 3 */ ".aaaaa." - /* 4 */ ".aaaaa." - /* 5 */ ".aaaaa." - /* 6 */ "......." - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".aaeaa." - /* 2 */ ".afffa." - /* 3 */ ".aghga." - /* 4 */ ".afffa." - /* 5 */ ".aaaaa." - /* 6 */ "......." - - // Level 3 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".iijii." - /* 2 */ ".i...i." - /* 3 */ "......." - /* 4 */ ".i...i." - /* 5 */ ".ii.ii." - /* 6 */ "......." - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".aaaaa." - /* 2 */ ".ak.ka." - /* 3 */ ".a...a." - /* 4 */ ".a...a." - /* 5 */ ".aaaaa." - /* 6 */ "......." - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "lnnnnno" - /* 1 */ "laaaaao" - /* 2 */ "laaaaao" - /* 3 */ "laaaaao" - /* 4 */ "laaaaao" - /* 5 */ "laaaaao" - /* 6 */ "ppppppo", - - // Connectors: - "-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: - true, - }, // House5x5 - - - - //////////////////////////////////////////////////////////////////////////////// - // House7x5: - // The data has been exported from the gallery Desert, area index 27, ID 168, created by Aloe_vera - { - // Size: - 9, 6, 7, // SizeX = 9, SizeY = 6, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 9, 5, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "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:171:14\n" /* carpet */ - "g:171: 0\n" /* carpet */ - "h:171:15\n" /* carpet */ - "i: 24: 2\n" /* sandstone */ - "j: 64:12\n" /* wooddoorblock */ - "k: 50: 3\n" /* torch */ - "l:128: 4\n" /* sandstonestairs */ - "m: 19: 0\n" /* sponge */ - "n:128: 6\n" /* sandstonestairs */ - "o:128: 5\n" /* sandstonestairs */ - "p:128: 7\n" /* sandstonestairs */, - - // Block data: - // Level 0 - /* z\x* 012345678 */ - /* 0 */ "mmaaammmm" - /* 1 */ "maaaaaaam" - /* 2 */ "maaaaaaam" - /* 3 */ "maaaaaaam" - /* 4 */ "maaaaaaam" - /* 5 */ "maaaaaaam" - /* 6 */ "mmmmmmmmm" - - // Level 1 - /* z\x* 012345678 */ - /* 0 */ "..bcd...." - /* 1 */ ".aaaaaaa." - /* 2 */ ".aaaaaaa." - /* 3 */ ".aaaaaaa." - /* 4 */ ".aaaaaaa." - /* 5 */ ".aaaaaaa." - /* 6 */ "........." - - // Level 2 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ ".aaeaaaa." - /* 2 */ ".afffffa." - /* 3 */ ".aghhhga." - /* 4 */ ".afffffa." - /* 5 */ ".aaaaaaa." - /* 6 */ "........." - - // Level 3 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ ".iiji.ii." - /* 2 */ ".i.....i." - /* 3 */ "........." - /* 4 */ ".i.....i." - /* 5 */ ".iii.iii." - /* 6 */ "........." - - // Level 4 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ ".aaaaaaa." - /* 2 */ ".ak.k..a." - /* 3 */ ".a.....a." - /* 4 */ ".a.....a." - /* 5 */ ".aaaaaaa." - /* 6 */ "........." - - // Level 5 - /* z\x* 012345678 */ - /* 0 */ "lnnnnnnnn" - /* 1 */ "laaaaaaao" - /* 2 */ "laaaaaaao" - /* 3 */ "laaaaaaao" - /* 4 */ "laaaaaaao" - /* 5 */ "laaaaaaao" - /* 6 */ "ppppppppo", - - // Connectors: - "-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: - true, - }, // House7x5 - - - - //////////////////////////////////////////////////////////////////////////////// - // House8x5: - // The data has been exported from the gallery Desert, area index 28, ID 169, created by Aloe_vera - { - // Size: - 10, 6, 7, // SizeX = 10, SizeY = 6, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 10, 5, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "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:171: 0\n" /* carpet */ - "g:171:14\n" /* carpet */ - "h:171:15\n" /* carpet */ - "i: 24: 2\n" /* sandstone */ - "j: 64:12\n" /* wooddoorblock */ - "k: 50: 3\n" /* torch */ - "l:128: 4\n" /* sandstonestairs */ - "m: 19: 0\n" /* sponge */ - "n:128: 6\n" /* sandstonestairs */ - "o:128: 5\n" /* sandstonestairs */ - "p:128: 7\n" /* sandstonestairs */, - - // Block data: - // Level 0 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "mmaaammmmm" - /* 1 */ "maaaaaaaam" - /* 2 */ "maaaaaaaam" - /* 3 */ "maaaaaaaam" - /* 4 */ "maaaaaaaam" - /* 5 */ "maaaaaaaam" - /* 6 */ "mmmmmmmmmm" - - // Level 1 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "..bcd....." - /* 1 */ ".aaaaaaaa." - /* 2 */ ".aaaaaaaa." - /* 3 */ ".aaaaaaaa." - /* 4 */ ".aaaaaaaa." - /* 5 */ ".aaaaaaaa." - /* 6 */ ".........." - - // Level 2 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".........." - /* 1 */ ".aaeaaaaa." - /* 2 */ ".afghhgfa." - /* 3 */ ".afhffhfa." - /* 4 */ ".afghhgfa." - /* 5 */ ".aaaaaaaa." - /* 6 */ ".........." - - // Level 3 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".........." - /* 1 */ ".iijii.ii." - /* 2 */ ".i......i." - /* 3 */ ".........." - /* 4 */ ".i......i." - /* 5 */ ".ii.ii.ii." - /* 6 */ ".........." - - // Level 4 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".........." - /* 1 */ ".aaaaaaaa." - /* 2 */ ".ak.k...a." - /* 3 */ ".a......a." - /* 4 */ ".a......a." - /* 5 */ ".aaaaaaaa." - /* 6 */ ".........." - - // Level 5 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "lnnnnnnnnn" - /* 1 */ "laaaaaaaao" - /* 2 */ "laaaaaaaao" - /* 3 */ "laaaaaaaao" - /* 4 */ "laaaaaaaao" - /* 5 */ "laaaaaaaao" - /* 6 */ "pppppppppo", - - // Connectors: - "-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: - true, - }, // House8x5 - - - - //////////////////////////////////////////////////////////////////////////////// - // House8x7: - // The data has been exported from the gallery Desert, area index 29, ID 170, created by Aloe_vera - { - // Size: - 10, 6, 9, // SizeX = 10, SizeY = 6, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 10, 5, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "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:171: 0\n" /* carpet */ - "g:171:14\n" /* carpet */ - "h:171:15\n" /* carpet */ - "i: 24: 2\n" /* sandstone */ - "j: 64:12\n" /* wooddoorblock */ - "k: 50: 3\n" /* torch */ - "l: 50: 1\n" /* torch */ - "m: 19: 0\n" /* sponge */ - "n: 50: 2\n" /* torch */ - "o:128: 4\n" /* sandstonestairs */ - "p:128: 6\n" /* sandstonestairs */ - "q:128: 5\n" /* sandstonestairs */ - "r:128: 7\n" /* sandstonestairs */, - - // Block data: - // Level 0 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "mmaaammmmm" - /* 1 */ "maaaaaaaam" - /* 2 */ "maaaaaaaam" - /* 3 */ "maaaaaaaam" - /* 4 */ "maaaaaaaam" - /* 5 */ "maaaaaaaam" - /* 6 */ "maaaaaaaam" - /* 7 */ "maaaaaaaam" - /* 8 */ "mmmmmmmmmm" - - // Level 1 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "..bcd....." - /* 1 */ ".aaaaaaaa." - /* 2 */ ".aaaaaaaa." - /* 3 */ ".aaaaaaaa." - /* 4 */ ".aaaaaaaa." - /* 5 */ ".aaaaaaaa." - /* 6 */ ".aaaaaaaa." - /* 7 */ ".aaaaaaaa." - /* 8 */ ".........." - - // Level 2 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".........." - /* 1 */ ".aaeaaaaa." - /* 2 */ ".afghhgfa." - /* 3 */ ".afhffhfa." - /* 4 */ ".afhgghfa." - /* 5 */ ".afhffhfa." - /* 6 */ ".afghhgfa." - /* 7 */ ".aaaaaaaa." - /* 8 */ ".........." - - // Level 3 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".........." - /* 1 */ ".iijii.ii." - /* 2 */ ".i......i." - /* 3 */ ".i......i." - /* 4 */ ".........." - /* 5 */ ".i......i." - /* 6 */ ".i......i." - /* 7 */ ".ii.ii.ii." - /* 8 */ ".........." - - // Level 4 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".........." - /* 1 */ ".aaaaaaaa." - /* 2 */ ".a..k...a." - /* 3 */ ".a......a." - /* 4 */ ".al....na." - /* 5 */ ".a......a." - /* 6 */ ".a......a." - /* 7 */ ".aaaaaaaa." - /* 8 */ ".........." - - // Level 5 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "oppppppppp" - /* 1 */ "oaaaaaaaaq" - /* 2 */ "oaaaaaaaaq" - /* 3 */ "oaaaaaaaaq" - /* 4 */ "oaaaaaaaaq" - /* 5 */ "oaaaaaaaaq" - /* 6 */ "oaaaaaaaaq" - /* 7 */ "oaaaaaaaaq" - /* 8 */ "rrrrrrrrrq", - - // Connectors: - "-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: - true, - }, // House8x7 - - - - //////////////////////////////////////////////////////////////////////////////// - // House9x7: - // The data has been exported from the gallery Desert, area index 30, ID 171, created by Aloe_vera - { - // Size: - 11, 6, 9, // SizeX = 11, SizeY = 6, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 11, 5, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "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:171: 0\n" /* carpet */ - "g:171:15\n" /* carpet */ - "h:171:14\n" /* carpet */ - "i: 24: 2\n" /* sandstone */ - "j: 64:12\n" /* wooddoorblock */ - "k: 50: 3\n" /* torch */ - "l: 50: 1\n" /* torch */ - "m: 19: 0\n" /* sponge */ - "n: 50: 2\n" /* torch */ - "o: 50: 4\n" /* torch */ - "p:128: 4\n" /* sandstonestairs */ - "q:128: 6\n" /* sandstonestairs */ - "r:128: 5\n" /* sandstonestairs */ - "s:128: 7\n" /* sandstonestairs */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmaaammmmmm" - /* 1 */ "maaaaaaaaam" - /* 2 */ "maaaaaaaaam" - /* 3 */ "maaaaaaaaam" - /* 4 */ "maaaaaaaaam" - /* 5 */ "maaaaaaaaam" - /* 6 */ "maaaaaaaaam" - /* 7 */ "maaaaaaaaam" - /* 8 */ "mmmmmmmmmmm" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 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 */ ".aaeaaaaaa." - /* 2 */ ".affgggffa." - /* 3 */ ".afghhhgfa." - /* 4 */ ".afghfhgfa." - /* 5 */ ".afghhhgfa." - /* 6 */ ".affgggffa." - /* 7 */ ".aaaaaaaaa." - /* 8 */ "..........." - - // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".iijii.iii." - /* 2 */ ".i.......i." - /* 3 */ ".i.......i." - /* 4 */ "..........." - /* 5 */ ".i.......i." - /* 6 */ ".i.......i." - /* 7 */ ".ii.iii.ii." - /* 8 */ "..........." - - // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".aaaaaaaaa." - /* 2 */ ".a..k....a." - /* 3 */ ".a.......a." - /* 4 */ ".al.....na." - /* 5 */ ".a.......a." - /* 6 */ ".a...o...a." - /* 7 */ ".aaaaaaaaa." - /* 8 */ "..........." - - // Level 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "pqqqqqqqqqq" - /* 1 */ "paaaaaaaaar" - /* 2 */ "paaaaaaaaar" - /* 3 */ "paaaaaaaaar" - /* 4 */ "paaaaaaaaar" - /* 5 */ "paaaaaaaaar" - /* 6 */ "paaaaaaaaar" - /* 7 */ "paaaaaaaaar" - /* 8 */ "ssssssssssr", - - // Connectors: - "-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: - true, - }, // House9x7 - - - - //////////////////////////////////////////////////////////////////////////////// - // HouseL13x12: - // The data has been exported from the gallery Desert, area index 53, ID 345, created by jakibaki - { - // Size: - 15, 6, 14, // SizeX = 15, SizeY = 6, SizeZ = 14 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 15, 5, 14, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "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 */ - "h:171:15\n" /* carpet */ - "i:171:14\n" /* carpet */ - "j: 58: 0\n" /* workbench */ - "k: 24: 2\n" /* sandstone */ - "l: 64:12\n" /* wooddoorblock */ - "m: 19: 0\n" /* sponge */ - "n: 50: 3\n" /* torch */ - "o: 50: 1\n" /* torch */ - "p: 50: 2\n" /* torch */ - "q: 50: 4\n" /* torch */ - "r:128: 6\n" /* sandstonestairs */ - "s:128: 5\n" /* sandstonestairs */ - "t:128: 4\n" /* sandstonestairs */ - "u:128: 7\n" /* sandstonestairs */, - - // Block data: - // Level 0 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 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 */ "...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." - /* 4 */ "..............." - /* 5 */ ".k...........k." - /* 6 */ ".k...........k." - /* 7 */ ".kkk.kkk.....k." - /* 8 */ ".......k.....k." - /* 9 */ "mmmmmm.k......." - /* 10 */ "mmmmmm.......k." - /* 11 */ "mmmmmm.k.....k." - /* 12 */ "mmmmmm.kkk.kkk." - /* 13 */ "..............." - - // Level 4 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 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 5 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "rrrrrrrrrrrrrrs" - /* 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, 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: - true, - }, // HouseL13x12 - - - - //////////////////////////////////////////////////////////////////////////////// - // MarketStall: - // The data has been exported from the gallery Desert, area index 34, ID 175, created by Aloe_vera - { - // Size: - 7, 6, 7, // SizeX = 7, SizeY = 6, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 7, 5, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 12: 0\n" /* sand */ - "b: 85: 0\n" /* fence */ - "c:171:14\n" /* carpet */ - "d:171:15\n" /* carpet */ - "e:171: 0\n" /* carpet */ - "f: 35:14\n" /* wool */ - "g: 35: 0\n" /* wool */ - "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" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "b.....b" - /* 1 */ "cddeddc" - /* 2 */ "cdeeedc" - /* 3 */ "cdeeedc" - /* 4 */ "cddeddc" - /* 5 */ "b.....b" - /* 6 */ "......." - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ "b.....b" - /* 1 */ "......." - /* 2 */ "......." - /* 3 */ "......." - /* 4 */ "......." - /* 5 */ "b.....b" - /* 6 */ "......." - - // Level 3 - /* z\x* 0123456 */ - /* 0 */ "b.....b" - /* 1 */ "......." - /* 2 */ "......." - /* 3 */ "......." - /* 4 */ "......." - /* 5 */ "b.....b" - /* 6 */ "fgfgfgf" - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "fgfgfgf" - /* 1 */ "......." - /* 2 */ "......." - /* 3 */ "......." - /* 4 */ "......." - /* 5 */ "fgfgfgf" - /* 6 */ "......." - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "fgfgfgf" - /* 2 */ "fgfgfgf" - /* 3 */ "fgfgfgf" - /* 4 */ "fgfgfgf" - /* 5 */ "......." - /* 6 */ ".......", - - // Connectors: - "-1: 2, 0, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 5, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // MarketStall - - - - //////////////////////////////////////////////////////////////////////////////// - // Marketplace: - // The data has been exported from the gallery Desert, area index 38, ID 261, created by Aloe_vera - { - // Size: - 14, 4, 16, // SizeX = 14, SizeY = 4, SizeZ = 16 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 14, 3, 16, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 0\n" /* sandstone */ - "b: 12: 0\n" /* sand */ - "c: 24: 2\n" /* sandstone */ - "d: 12: 2\n" /* sand */ - "e: 85: 0\n" /* fence */ - "f: 5: 0\n" /* wood */ - "g:128: 2\n" /* sandstonestairs */ - "h:128: 0\n" /* sandstonestairs */ - "i: 8: 0\n" /* water */ - "j:128: 1\n" /* sandstonestairs */ - "k:128: 3\n" /* sandstonestairs */ - "l: 35: 0\n" /* wool */ - "m: 19: 0\n" /* sponge */ - "n: 35:14\n" /* wool */, - - // Block data: - // Level 0 - /* z\x* 1111 */ - /* * 01234567890123 */ - /* 0 */ "aaaabbbaaabbbb" - /* 1 */ "aaaabbaabbabbb" - /* 2 */ "aababbabcabbbb" - /* 3 */ "aaaaabaaaaabbb" - /* 4 */ "bbbbbbbbbbbbbb" - /* 5 */ "bbbbbbbbbbaabb" - /* 6 */ "bbbbccccbbabab" - /* 7 */ "ccbbccccbbaaab" - /* 8 */ "ccbbccccbbabbb" - /* 9 */ "dcbbccccbbabaa" - /* 10 */ "ccbbbbbbbbaaba" - /* 11 */ "ccbbbbbbbbabaa" - /* 12 */ "bbbbbbbbbbabaa" - /* 13 */ "bbbaababbbaaba" - /* 14 */ "bbbcaaaabbabbb" - /* 15 */ "bbbcccabbbabbb" - - // Level 1 - /* z\x* 1111 */ - /* * 01234567890123 */ - /* 0 */ "e...e.e...e..." - /* 1 */ ".............." - /* 2 */ ".............." - /* 3 */ "fffff.fffff..." - /* 4 */ ".............." - /* 5 */ "..........f..e" - /* 6 */ "....gggg..f..." - /* 7 */ ".f..hiij..f..." - /* 8 */ ".f..hiij..f..." - /* 9 */ ".f..kkkk..f..e" - /* 10 */ ".f............" - /* 11 */ ".f........f..e" - /* 12 */ "...fffff..f..." - /* 13 */ "..........f..." - /* 14 */ "..........f..." - /* 15 */ "...e...e..f..e" - - // Level 2 - /* z\x* 1111 */ - /* * 01234567890123 */ - /* 0 */ "lnlnl.lnlnl..." - /* 1 */ ".............." - /* 2 */ ".............." - /* 3 */ "e...e.e...e..." - /* 4 */ ".............." - /* 5 */ "..........e..l" - /* 6 */ ".............n" - /* 7 */ ".e...........l" - /* 8 */ ".............n" - /* 9 */ "..........e..l" - /* 10 */ ".............." - /* 11 */ ".e........e..l" - /* 12 */ "...e...e.....n" - /* 13 */ ".............l" - /* 14 */ ".............n" - /* 15 */ "...lnlnl..e..l" - - // Level 3 - /* z\x* 1111 */ - /* * 01234567890123 */ - /* 0 */ ".............." - /* 1 */ "lnlnl.lnlnl..." - /* 2 */ "lnlnl.lnlnl..." - /* 3 */ "lnlnl.lnlnl..." - /* 4 */ ".............." - /* 5 */ "..........lll." - /* 6 */ "..........nnn." - /* 7 */ "ll........lll." - /* 8 */ "nn........nnn." - /* 9 */ "ll........lll." - /* 10 */ "nn............" - /* 11 */ "ll........lll." - /* 12 */ "...lnlnl..nnn." - /* 13 */ "...lnlnl..lll." - /* 14 */ "...lnlnl..nnn." - /* 15 */ "..........lll.", - - // Connectors: - "-1: 5, 0, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 20, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // Marketplace -}; // 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 - { - // Size: - 5, 16, 5, // SizeX = 5, SizeY = 16, SizeZ = 5 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 4, 15, 4, // 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:128: 2\n" /* sandstonestairs */ - "e:128: 0\n" /* sandstonestairs */ - "f:128: 1\n" /* sandstonestairs */ - "g:128: 3\n" /* sandstonestairs */ - "h:128: 6\n" /* sandstonestairs */ - "i:128: 4\n" /* sandstonestairs */ - "j:128: 5\n" /* sandstonestairs */ - "k:128: 7\n" /* sandstonestairs */ - "l: 44: 1\n" /* step */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 01234 */ - /* 0 */ "aaaaa" - /* 1 */ "abbba" - /* 2 */ "abbba" - /* 3 */ "abbba" - /* 4 */ "aaaaa" - - // Level 1 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bcccb" - /* 2 */ "bcccb" - /* 3 */ "bcccb" - /* 4 */ "bbbbb" - - // Level 2 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bcccb" - /* 2 */ "bcccb" - /* 3 */ "bcccb" - /* 4 */ "bbbbb" - - // Level 3 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bcccb" - /* 2 */ "bcccb" - /* 3 */ "bcccb" - /* 4 */ "bbbbb" - - // Level 4 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bcccb" - /* 2 */ "bcccb" - /* 3 */ "bcccb" - /* 4 */ "bbbbb" - - // Level 5 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bcccb" - /* 2 */ "bcccb" - /* 3 */ "bcccb" - /* 4 */ "bbbbb" - - // Level 6 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bcccb" - /* 2 */ "bcccb" - /* 3 */ "bcccb" - /* 4 */ "bbbbb" - - // Level 7 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bcccb" - /* 2 */ "bcccb" - /* 3 */ "bcccb" - /* 4 */ "bbbbb" - - // Level 8 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bcbcb" - /* 2 */ "bbcbb" - /* 3 */ "bcbcb" - /* 4 */ "bbbbb" - - // Level 9 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bcbcb" - /* 2 */ "bbbbb" - /* 3 */ "bcbcb" - /* 4 */ "bbbbb" - - // Level 10 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bcbcb" - /* 2 */ "bbbbb" - /* 3 */ "bcbcb" - /* 4 */ "bbbbb" - - // Level 11 - /* z\x* 01234 */ - /* 0 */ "ddddd" - /* 1 */ "ecccf" - /* 2 */ "ecbcf" - /* 3 */ "ecccf" - /* 4 */ "ggggf" - - // Level 12 - /* z\x* 01234 */ - /* 0 */ "....." - /* 1 */ "....." - /* 2 */ "..b.." - /* 3 */ "....." - /* 4 */ "....." - - // Level 13 - /* z\x* 01234 */ - /* 0 */ "....." - /* 1 */ "....." - /* 2 */ "..b.." - /* 3 */ "....." - /* 4 */ "....." - - // Level 14 - /* z\x* 01234 */ - /* 0 */ "....." - /* 1 */ ".hhh." - /* 2 */ ".ibj." - /* 3 */ ".kkj." - /* 4 */ "....." - - // Level 15 - /* z\x* 01234 */ - /* 0 */ "lllll" - /* 1 */ "lllll" - /* 2 */ "lllll" - /* 3 */ "lllll" - /* 4 */ "lllll", - - // Connectors: - "2: 4, 11, 2: 5\n" /* Type 2, direction X+ */ - "2: 2, 11, 4: 3\n" /* Type 2, direction Z+ */ - "2: 0, 11, 2: 4\n" /* Type 2, direction X- */ - "2: 2, 11, 0: 2\n" /* Type 2, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // Well -}; - - - - - -// The prefab counts: - -const size_t g_SandFlatRoofVillagePrefabsCount = ARRAYCOUNT(g_SandFlatRoofVillagePrefabs); - -const size_t g_SandFlatRoofVillageStartingPrefabsCount = ARRAYCOUNT(g_SandFlatRoofVillageStartingPrefabs); - diff --git a/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.h b/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.h deleted file mode 100644 index ea06de5b5..000000000 --- a/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.h +++ /dev/null @@ -1,15 +0,0 @@ - -// SandFlatRoofVillagePrefabs.h - -// Declares the prefabs in the group SandFlatRoofVillage - -#include "../Prefab.h" - - - - - -extern const cPrefab::sDef g_SandFlatRoofVillagePrefabs[]; -extern const cPrefab::sDef g_SandFlatRoofVillageStartingPrefabs[]; -extern const size_t g_SandFlatRoofVillagePrefabsCount; -extern const size_t g_SandFlatRoofVillageStartingPrefabsCount; diff --git a/src/Generating/Prefabs/SandVillagePrefabs.cpp b/src/Generating/Prefabs/SandVillagePrefabs.cpp deleted file mode 100644 index c63f8161b..000000000 --- a/src/Generating/Prefabs/SandVillagePrefabs.cpp +++ /dev/null @@ -1,2307 +0,0 @@ - -// SandVillagePrefabs.cpp - -// Defines the prefabs in the group SandVillage - -// NOTE: This file has been generated automatically by GalExport! -// Any manual changes will be overwritten by the next automatic export! - -#include "Globals.h" -#include "SandVillagePrefabs.h" - - - - - -const cPrefab::sDef g_SandVillagePrefabs[] = -{ - //////////////////////////////////////////////////////////////////////////////// - // DoubleField: - // The data has been exported from the gallery Desert, area index 5, ID 75, created by tonibm1999 - { - // Size: - 13, 3, 9, // SizeX = 13, SizeY = 3, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, 0, -1, // MinX, MinY, MinZ - 13, 2, 8, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 0\n" /* sandstone */ - "b: 60: 7\n" /* tilleddirt */ - "c: 8: 0\n" /* water */ - "d: 50: 5\n" /* torch */ - "e: 59: 7\n" /* crops */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "aaaaaaaaaaaaa" - /* 1 */ "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" - /* 4 */ "abbcbbabbcbba" - /* 5 */ "abbcbbabbcbba" - /* 6 */ "abbcbbabbcbba" - /* 7 */ "abbcbbabbcbba" - /* 8 */ "aaaaaaaaaaaaa" - - // Level 2 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "d.....d.....d" - /* 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, 1, 8: 3\n" /* Type -1, direction Z+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // DoubleField - - - - //////////////////////////////////////////////////////////////////////////////// - // House11x7: - // The data has been exported from the gallery Desert, area index 6, ID 81, created by Aloe_vera - { - // Size: - 11, 7, 7, // SizeX = 11, SizeY = 7, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 11, 6, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "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 */ - "h:128: 7\n" /* sandstonestairs */ - "i: 50: 3\n" /* torch */ - "j: 50: 4\n" /* torch */ - "k:128: 6\n" /* sandstonestairs */ - "l:128: 3\n" /* sandstonestairs */ - "m: 19: 0\n" /* sponge */ - "n: 50: 1\n" /* torch */ - "o: 50: 2\n" /* torch */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmaaammmm" - /* 1 */ "maaaaaaaaam" - /* 2 */ "maaaaaaaaam" - /* 3 */ "maaaaaaaaam" - /* 4 */ "maaaaaaaaam" - /* 5 */ "maaaaaaaaam" - /* 6 */ "mmmmmmmmmmm" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "....bcd...." - /* 1 */ ".aaaaaaaaa." - /* 2 */ ".aaaaaaaaa." - /* 3 */ ".aaaaaaaaa." - /* 4 */ ".aaaaaaaaa." - /* 5 */ ".aaaaaaaaa." - /* 6 */ "..........." - - // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 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 */ ".affafaffa." - /* 6 */ "..........." - - // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "ccccccccccc" - /* 1 */ "haaaaaaaaah" - /* 2 */ ".a..i.i..a." - /* 3 */ ".a.......a." - /* 4 */ ".a..j.j..a." - /* 5 */ "kaaaaaaaaak" - /* 6 */ "lllllllllll" - - // Level 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "ccccccccccc" - /* 2 */ "haaaaaaaaah" - /* 3 */ ".an.....oa." - /* 4 */ "kaaaaaaaaak" - /* 5 */ "lllllllllll" - /* 6 */ "..........." - - // Level 6 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "ccccccccccc" - /* 3 */ "aaaaaaaaaaa" - /* 4 */ "lllllllllll" - /* 5 */ "..........." - /* 6 */ "...........", - - // Connectors: - "-1: 5, 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: - true, - }, // House11x7 - - - - //////////////////////////////////////////////////////////////////////////////// - // House11x9: - // The data has been exported from the gallery Desert, area index 11, ID 115, created by xoft - { - // Size: - 11, 8, 9, // SizeX = 11, SizeY = 8, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 11, 7, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "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 */ - "h:128: 7\n" /* sandstonestairs */ - "i: 50: 3\n" /* torch */ - "j: 50: 4\n" /* torch */ - "k:128: 6\n" /* sandstonestairs */ - "l:128: 3\n" /* sandstonestairs */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "mmmmaaammmm" - /* 1 */ "maaaaaaaaam" - /* 2 */ "maaaaaaaaam" - /* 3 */ "maaaaaaaaam" - /* 4 */ "maaaaaaaaam" - /* 5 */ "maaaaaaaaam" - /* 6 */ "maaaaaaaaam" - /* 7 */ "maaaaaaaaam" - /* 8 */ "mmmmmmmmmmm" - - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 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 */ ".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 */ ".a.......a." - /* 5 */ ".f.......f." - /* 6 */ ".f.......f." - /* 7 */ ".afffafffa." - /* 8 */ "..........." - - // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 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 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "ccccccccccc" - /* 2 */ "haaaaaaaaah" - /* 3 */ ".a.......a." - /* 4 */ ".a.......a." - /* 5 */ ".a.......a." - /* 6 */ "kaaaaaaaaak" - /* 7 */ "lllllllllll" - /* 8 */ "..........." - - // Level 6 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "ccccccccccc" - /* 3 */ "haaaaaaaaah" - /* 4 */ ".a.......a." - /* 5 */ "kaaaaaaaaak" - /* 6 */ "lllllllllll" - /* 7 */ "..........." - /* 8 */ "..........." - - // Level 7 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ "ccccccccccc" - /* 4 */ "aaaaaaaaaaa" - /* 5 */ "lllllllllll" - /* 6 */ "..........." - /* 7 */ "..........." - /* 8 */ "...........", - - // Connectors: - "-1: 5, 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: - true, - }, // House11x9 - - - - //////////////////////////////////////////////////////////////////////////////// - // House13x7: - // The data has been exported from the gallery Desert, area index 15, ID 125, created by Aloe_vera - { - // Size: - 13, 7, 7, // SizeX = 13, SizeY = 7, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 13, 6, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "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 */ - "h:128: 7\n" /* sandstonestairs */ - "i: 50: 3\n" /* torch */ - "j: 50: 4\n" /* torch */ - "k:128: 6\n" /* sandstonestairs */ - "l:128: 3\n" /* sandstonestairs */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "mmmmmaaammmmm" - /* 1 */ "maaaaaaaaaaam" - /* 2 */ "maaaaaaaaaaam" - /* 3 */ "maaaaaaaaaaam" - /* 4 */ "maaaaaaaaaaam" - /* 5 */ "maaaaaaaaaaam" - /* 6 */ "mmmmmmmmmmmmm" - - // Level 1 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ ".....bcd....." - /* 1 */ ".aaaaaaaaaaa." - /* 2 */ ".aaaaaaaaaaa." - /* 3 */ ".aaaaaaaaaaa." - /* 4 */ ".aaaaaaaaaaa." - /* 5 */ ".aaaaaaaaaaa." - /* 6 */ "............." - - // Level 2 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 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 */ ".affafffaffa." - /* 6 */ "............." - - // Level 4 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "ccccccccccccc" - /* 1 */ "haaaaaaaaaaah" - /* 2 */ ".a...i.i...a." - /* 3 */ ".a.........a." - /* 4 */ ".a..j...j..a." - /* 5 */ "kaaaaaaaaaaak" - /* 6 */ "lllllllllllll" - - // Level 5 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ "ccccccccccccc" - /* 2 */ "haaaaaaaaaaah" - /* 3 */ ".a.........a." - /* 4 */ "kaaaaaaaaaaak" - /* 5 */ "lllllllllllll" - /* 6 */ "............." - - // Level 6 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ "............." - /* 2 */ "ccccccccccccc" - /* 3 */ "aaaaaaaaaaaaa" - /* 4 */ "lllllllllllll" - /* 5 */ "............." - /* 6 */ ".............", - - // Connectors: - "-1: 6, 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: - true, - }, // House13x7 - - - - //////////////////////////////////////////////////////////////////////////////// - // House13x9: - // The data has been exported from the gallery Desert, area index 12, ID 116, created by xoft - { - // Size: - 13, 8, 9, // SizeX = 13, SizeY = 8, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 13, 7, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "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 */ - "h:128: 7\n" /* sandstonestairs */ - "i: 50: 3\n" /* torch */ - "j: 50: 4\n" /* torch */ - "k:128: 6\n" /* sandstonestairs */ - "l:128: 3\n" /* sandstonestairs */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "mmmmmaaammmmm" - /* 1 */ "maaaaaaaaaaam" - /* 2 */ "maaaaaaaaaaam" - /* 3 */ "maaaaaaaaaaam" - /* 4 */ "maaaaaaaaaaam" - /* 5 */ "maaaaaaaaaaam" - /* 6 */ "maaaaaaaaaaam" - /* 7 */ "maaaaaaaaaaam" - /* 8 */ "mmmmmmmmmmmmm" - - // Level 1 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 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 */ ".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 */ ".a.........a." - /* 5 */ ".f.........f." - /* 6 */ ".f.........f." - /* 7 */ ".affaffafffa." - /* 8 */ "............." - - // Level 4 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 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 5 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ "ccccccccccccc" - /* 2 */ "haaaaaaaaaaah" - /* 3 */ ".a.........a." - /* 4 */ ".a.........a." - /* 5 */ ".a.........a." - /* 6 */ "kaaaaaaaaaaak" - /* 7 */ "lllllllllllll" - /* 8 */ "............." - - // Level 6 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ "............." - /* 2 */ "ccccccccccccc" - /* 3 */ "haaaaaaaaaaah" - /* 4 */ ".a.........a." - /* 5 */ "kaaaaaaaaaaak" - /* 6 */ "lllllllllllll" - /* 7 */ "............." - /* 8 */ "............." - - // Level 7 - /* z\x* 111 */ - /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ "............." - /* 2 */ "............." - /* 3 */ "ccccccccccccc" - /* 4 */ "aaaaaaaaaaaaa" - /* 5 */ "lllllllllllll" - /* 6 */ "............." - /* 7 */ "............." - /* 8 */ ".............", - - // Connectors: - "-1: 6, 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: - true, - }, // House13x9 - - - - //////////////////////////////////////////////////////////////////////////////// - // House15x9: - // The data has been exported from the gallery Desert, area index 13, ID 118, created by xoft - { - // Size: - 15, 8, 9, // SizeX = 15, SizeY = 8, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 15, 7, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "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 */ - "h:128: 7\n" /* sandstonestairs */ - "i: 50: 3\n" /* torch */ - "j: 50: 4\n" /* torch */ - "k:128: 6\n" /* sandstonestairs */ - "l:128: 3\n" /* sandstonestairs */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "mmmmmaaammmmmmm" - /* 1 */ "maaaaaaaaaaaaam" - /* 2 */ "maaaaaaaaaaaaam" - /* 3 */ "maaaaaaaaaaaaam" - /* 4 */ "maaaaaaaaaaaaam" - /* 5 */ "maaaaaaaaaaaaam" - /* 6 */ "maaaaaaaaaaaaam" - /* 7 */ "maaaaaaaaaaaaam" - /* 8 */ "mmmmmmmmmmmmmmm" - - // Level 1 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 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 */ ".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 */ ".a...........a." - /* 5 */ ".f...........f." - /* 6 */ ".f...........f." - /* 7 */ ".affaffaffaffa." - /* 8 */ "..............." - - // Level 4 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 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 5 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "ccccccccccccccc" - /* 2 */ "haaaaaaaaaaaaah" - /* 3 */ ".a...........a." - /* 4 */ ".a...........a." - /* 5 */ ".a...........a." - /* 6 */ "kaaaaaaaaaaaaak" - /* 7 */ "lllllllllllllll" - /* 8 */ "..............." - - // Level 6 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ "ccccccccccccccc" - /* 3 */ "haaaaaaaaaaaaah" - /* 4 */ ".a...........a." - /* 5 */ "kaaaaaaaaaaaaak" - /* 6 */ "lllllllllllllll" - /* 7 */ "..............." - /* 8 */ "..............." - - // Level 7 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ "..............." - /* 3 */ "ccccccccccccccc" - /* 4 */ "aaaaaaaaaaaaaaa" - /* 5 */ "lllllllllllllll" - /* 6 */ "..............." - /* 7 */ "..............." - /* 8 */ "...............", - - // Connectors: - "-1: 6, 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: - true, - }, // House15x9 - - - - //////////////////////////////////////////////////////////////////////////////// - // House16x9: - // The data has been exported from the gallery Desert, area index 16, ID 126, created by Aloe_vera - { - // Size: - 16, 8, 9, // SizeX = 16, SizeY = 8, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 16, 7, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "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 */ - "h:128: 7\n" /* sandstonestairs */ - "i: 50: 3\n" /* torch */ - "j: 50: 4\n" /* torch */ - "k:128: 6\n" /* sandstonestairs */ - "l:128: 3\n" /* sandstonestairs */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "mmmmmmmmaaammmmm" - /* 1 */ "maaaaaaaaaaaaaam" - /* 2 */ "maaaaaaaaaaaaaam" - /* 3 */ "maaaaaaaaaaaaaam" - /* 4 */ "maaaaaaaaaaaaaam" - /* 5 */ "maaaaaaaaaaaaaam" - /* 6 */ "maaaaaaaaaaaaaam" - /* 7 */ "maaaaaaaaaaaaaam" - /* 8 */ "mmmmmmmmmmmmmmmm" - - // Level 1 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 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 */ ".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 */ ".a............a." - /* 5 */ ".f............f." - /* 6 */ ".f............f." - /* 7 */ ".affaffafffaffa." - /* 8 */ "................" - - // Level 4 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 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 5 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "cccccccccccccccc" - /* 2 */ "haaaaaaaaaaaaaah" - /* 3 */ ".a............a." - /* 4 */ ".a............a." - /* 5 */ ".a............a." - /* 6 */ "kaaaaaaaaaaaaaak" - /* 7 */ "llllllllllllllll" - /* 8 */ "................" - - // Level 6 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "................" - /* 2 */ "cccccccccccccccc" - /* 3 */ "haaaaaaaaaaaaaah" - /* 4 */ ".a............a." - /* 5 */ "kaaaaaaaaaaaaaak" - /* 6 */ "llllllllllllllll" - /* 7 */ "................" - /* 8 */ "................" - - // Level 7 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "................" - /* 2 */ "................" - /* 3 */ "cccccccccccccccc" - /* 4 */ "aaaaaaaaaaaaaaaa" - /* 5 */ "llllllllllllllll" - /* 6 */ "................" - /* 7 */ "................" - /* 8 */ "................", - - // Connectors: - "-1: 9, 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: - true, - }, // House16x9 - - - - //////////////////////////////////////////////////////////////////////////////// - // House7x7: - // The data has been exported from the gallery Desert, area index 8, ID 112, created by Aloe_vera - { - // Size: - 7, 7, 7, // SizeX = 7, SizeY = 7, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 7, 6, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "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 */ - "h:128: 7\n" /* sandstonestairs */ - "i: 50: 3\n" /* torch */ - "j:128: 6\n" /* sandstonestairs */ - "k:128: 3\n" /* sandstonestairs */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 0123456 */ - /* 0 */ "mmmaaam" - /* 1 */ "maaaaam" - /* 2 */ "maaaaam" - /* 3 */ "maaaaam" - /* 4 */ "maaaaam" - /* 5 */ "maaaaam" - /* 6 */ "mmmmmmm" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "...bcd." - /* 1 */ ".aaaaa." - /* 2 */ ".aaaaa." - /* 3 */ ".aaaaa." - /* 4 */ ".aaaaa." - /* 5 */ ".aaaaa." - /* 6 */ "......." - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 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 */ ".afffa." - /* 6 */ "......." - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "ccccccc" - /* 1 */ "haaaaah" - /* 2 */ ".a.i.a." - /* 3 */ ".a...a." - /* 4 */ ".a...a." - /* 5 */ "jaaaaaj" - /* 6 */ "kkkkkkk" - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "ccccccc" - /* 2 */ "haaaaah" - /* 3 */ ".a...a." - /* 4 */ "jaaaaaj" - /* 5 */ "kkkkkkk" - /* 6 */ "......." - - // Level 6 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "......." - /* 2 */ "ccccccc" - /* 3 */ "aaaaaaa" - /* 4 */ "kkkkkkk" - /* 5 */ "......." - /* 6 */ ".......", - - // Connectors: - "-1: 4, 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: - true, - }, // House7x7 - - - - //////////////////////////////////////////////////////////////////////////////// - // House9x7: - // The data has been exported from the gallery Desert, area index 9, ID 113, created by xoft - { - // Size: - 9, 7, 7, // SizeX = 9, SizeY = 7, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 9, 6, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "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 */ - "h:128: 7\n" /* sandstonestairs */ - "i: 50: 3\n" /* torch */ - "j: 50: 4\n" /* torch */ - "k:128: 6\n" /* sandstonestairs */ - "l:128: 3\n" /* sandstonestairs */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 012345678 */ - /* 0 */ "mmmaaammm" - /* 1 */ "maaaaaaam" - /* 2 */ "maaaaaaam" - /* 3 */ "maaaaaaam" - /* 4 */ "maaaaaaam" - /* 5 */ "maaaaaaam" - /* 6 */ "mmmmmmmmm" - - // Level 1 - /* z\x* 012345678 */ - /* 0 */ "...bcd..." - /* 1 */ ".aaaaaaa." - /* 2 */ ".aaaaaaa." - /* 3 */ ".aaaaaaa." - /* 4 */ ".aaaaaaa." - /* 5 */ ".aaaaaaa." - /* 6 */ "........." - - // Level 2 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 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 */ ".affaffa." - /* 6 */ "........." - - // Level 4 - /* z\x* 012345678 */ - /* 0 */ "ccccccccc" - /* 1 */ "haaaaaaah" - /* 2 */ ".a.i.i.a." - /* 3 */ ".a.....a." - /* 4 */ ".a..j..a." - /* 5 */ "kaaaaaaak" - /* 6 */ "lllllllll" - - // Level 5 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ "ccccccccc" - /* 2 */ "haaaaaaah" - /* 3 */ ".a.....a." - /* 4 */ "kaaaaaaak" - /* 5 */ "lllllllll" - /* 6 */ "........." - - // Level 6 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ "........." - /* 2 */ "ccccccccc" - /* 3 */ "aaaaaaaaa" - /* 4 */ "lllllllll" - /* 5 */ "........." - /* 6 */ ".........", - - // Connectors: - "-1: 4, 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: - true, - }, // House9x7 - - - - //////////////////////////////////////////////////////////////////////////////// - // House9x9: - // The data has been exported from the gallery Desert, area index 10, ID 114, created by xoft - { - // Size: - 9, 8, 9, // SizeX = 9, SizeY = 8, SizeZ = 9 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 9, 7, 9, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "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 */ - "h:128: 7\n" /* sandstonestairs */ - "i: 50: 3\n" /* torch */ - "j: 50: 4\n" /* torch */ - "k:128: 6\n" /* sandstonestairs */ - "l:128: 3\n" /* sandstonestairs */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 012345678 */ - /* 0 */ "mmmaaammm" - /* 1 */ "maaaaaaam" - /* 2 */ "maaaaaaam" - /* 3 */ "maaaaaaam" - /* 4 */ "maaaaaaam" - /* 5 */ "maaaaaaam" - /* 6 */ "maaaaaaam" - /* 7 */ "maaaaaaam" - /* 8 */ "mmmmmmmmm" - - // Level 1 - /* z\x* 012345678 */ - /* 0 */ "...bcd..." - /* 1 */ ".aaaaaaa." - /* 2 */ ".aaaaaaa." - /* 3 */ ".aaaaaaa." - /* 4 */ ".aaaaaaa." - /* 5 */ ".aaaaaaa." - /* 6 */ ".aaaaaaa." - /* 7 */ ".aaaaaaa." - /* 8 */ "........." - - // Level 2 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 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 */ ".a.....a." - /* 5 */ ".f.....f." - /* 6 */ ".f.....f." - /* 7 */ ".affaffa." - /* 8 */ "........." - - // Level 4 - /* z\x* 012345678 */ - /* 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 5 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ "ccccccccc" - /* 2 */ "haaaaaaah" - /* 3 */ ".a.....a." - /* 4 */ ".a.....a." - /* 5 */ ".a.....a." - /* 6 */ "kaaaaaaak" - /* 7 */ "lllllllll" - /* 8 */ "........." - - // Level 6 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ "........." - /* 2 */ "ccccccccc" - /* 3 */ "haaaaaaah" - /* 4 */ ".a.....a." - /* 5 */ "kaaaaaaak" - /* 6 */ "lllllllll" - /* 7 */ "........." - /* 8 */ "........." - - // Level 7 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ "........." - /* 2 */ "........." - /* 3 */ "ccccccccc" - /* 4 */ "aaaaaaaaa" - /* 5 */ "lllllllll" - /* 6 */ "........." - /* 7 */ "........." - /* 8 */ ".........", - - // Connectors: - "-1: 4, 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: - true, - }, // House9x9 - - - - //////////////////////////////////////////////////////////////////////////////// - // HouseL14x12: - // The data has been exported from the gallery Desert, area index 14, ID 124, created by Aloe_vera - { - // Size: - 14, 8, 12, // SizeX = 14, SizeY = 8, SizeZ = 12 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 14, 7, 12, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "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: 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: 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 */ "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 */ "....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 */ ".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 */ ".............." - /* 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 */ "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 */ "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 */ "ccccccccccc..." - /* 4 */ "aaaaaaaaaad..." - /* 5 */ "eeeeeeeebad..." - /* 6 */ "........bad..." - /* 7 */ "........bad..." - /* 8 */ "........bad..." - /* 9 */ "mmmmm...bad..." - /* 10 */ "mmmmm...bad..." - /* 11 */ "mmmmm...bad...", - - // Connectors: - "-1: 5, 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: - true, - }, // HouseL14x12 - - - - //////////////////////////////////////////////////////////////////////////////// - // HouseL14x12: - // The data has been exported from the gallery Desert, area index 7, ID 82, created by Aloe_vera - { - // Size: - 14, 7, 12, // SizeX = 14, SizeY = 7, SizeZ = 12 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 14, 6, 12, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "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 */ - "h:102: 0\n" /* glasspane */ - "i: 64:12\n" /* wooddoorblock */ - "j:128: 7\n" /* sandstonestairs */ - "k: 50: 3\n" /* torch */ - "l: 50: 4\n" /* torch */ - "m: 19: 0\n" /* sponge */ - "n:128: 6\n" /* sandstonestairs */ - "o:128: 5\n" /* sandstonestairs */ - "p:128: 4\n" /* sandstonestairs */ - "q: 50: 1\n" /* torch */, - - // Block data: - // Level 0 - /* z\x* 1111 */ - /* * 01234567890123 */ - /* 0 */ "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 */ ".......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 */ ".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..........a." - /* 5 */ ".ahhaiahh...h." - /* 6 */ "........h...h." - /* 7 */ "........a...a." - /* 8 */ "........h...h." - /* 9 */ "........h...h." - /* 10 */ "........ahhha." - /* 11 */ ".............." - - // Level 4 - /* z\x* 1111 */ - /* * 01234567890123 */ - /* 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 5 - /* z\x* 1111 */ - /* * 01234567890123 */ - /* 0 */ ".............." - /* 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 6 - /* z\x* 1111 */ - /* * 01234567890123 */ - /* 0 */ ".............." - /* 1 */ ".............." - /* 2 */ "cccccccccccc.." - /* 3 */ "aaaaaaaaaaad.." - /* 4 */ "eeeeeeeeebad.." - /* 5 */ ".........bad.." - /* 6 */ ".........bad.." - /* 7 */ ".........bad.." - /* 8 */ ".........bad.." - /* 9 */ ".........bad.." - /* 10 */ ".........bad.." - /* 11 */ ".........bad..", - - // Connectors: - "-1: 8, 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: - true, - }, // HouseL14x12 - - - - //////////////////////////////////////////////////////////////////////////////// - // SingleField: - // The data has been exported from the gallery Desert, area index 17, ID 127, created by Aloe_vera - { - // Size: - 10, 3, 7, // SizeX = 10, SizeY = 3, SizeZ = 7 - - // Hitbox (relative to bounding box): - 0, 0, -1, // MinX, MinY, MinZ - 10, 2, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 0\n" /* sandstone */ - "b: 60: 7\n" /* tilleddirt */ - "c: 8: 0\n" /* water */ - "d: 50: 5\n" /* torch */ - "e: 59: 7\n" /* crops */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "aaaaaaaaaa" - /* 1 */ "aaaaaaaaaa" - /* 2 */ "aaaaaaaaaa" - /* 3 */ "aaaaaaaaaa" - /* 4 */ "aaaaaaaaaa" - /* 5 */ "aaaaaaaaaa" - /* 6 */ "aaaaaaaaaa" - - // Level 1 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "aaaaaaaaaa" - /* 1 */ "abbbbbbbba" - /* 2 */ "abbbbbbbba" - /* 3 */ "acccccccca" - /* 4 */ "abbbbbbbba" - /* 5 */ "abbbbbbbba" - /* 6 */ "aaaaaaaaaa" - - // Level 2 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "d........d" - /* 1 */ ".eeeeeeee." - /* 2 */ ".eeeeeeee." - /* 3 */ ".........." - /* 4 */ ".eeeeeeee." - /* 5 */ ".eeeeeeee." - /* 6 */ "d........d", - - // Connectors: - "-1: 0, 1, 3: 4\n" /* Type -1, direction X- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // SingleField - - - - //////////////////////////////////////////////////////////////////////////////// - // SmallHut: - // The data has been exported from the gallery Desert, area index 4, ID 68, created by tonibm1999 - { - // Size: - 5, 6, 6, // SizeX = 5, SizeY = 6, SizeZ = 6 - - // Hitbox (relative to bounding box): - -1, 0, -1, // MinX, MinY, MinZ - 5, 5, 5, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 24: 0\n" /* sandstone */ - "b:128: 3\n" /* sandstonestairs */ - "c: 24: 2\n" /* sandstone */ - "d: 50: 5\n" /* torch */ - "e: 26:10\n" /* bedblock */ - "f: 26: 2\n" /* bedblock */ - "g: 64: 5\n" /* wooddoorblock */ - "h: 64:12\n" /* wooddoorblock */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 01234 */ - /* 0 */ "aaaaa" - /* 1 */ "aaaaa" - /* 2 */ "aaaaa" - /* 3 */ "aaaaa" - /* 4 */ "aaaaa" - /* 5 */ "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" - /* 3 */ "c...c" - /* 4 */ "acgca" - /* 5 */ "....." - - // Level 3 - /* z\x* 01234 */ - /* 0 */ "ac.ca" - /* 1 */ "c...c" - /* 2 */ "....." - /* 3 */ "c...c" - /* 4 */ "achca" - /* 5 */ "....." - - // Level 4 - /* z\x* 01234 */ - /* 0 */ "accca" - /* 1 */ "c...c" - /* 2 */ "c...c" - /* 3 */ "c...c" - /* 4 */ "accca" - /* 5 */ "....." - - // Level 5 - /* z\x* 01234 */ - /* 0 */ ".aaa." - /* 1 */ "aaaaa" - /* 2 */ "aaaaa" - /* 3 */ "aaaaa" - /* 4 */ ".aaa." - /* 5 */ ".....", - - // Connectors: - "-1: 2, 1, 5: 3\n" /* Type -1, direction Z+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // SmallHut -}; // 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 - { - // Size: - 7, 14, 7, // SizeX = 7, SizeY = 14, SizeZ = 7 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 6, 13, 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: 12: 0\n" /* sand */ - "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 - /* z\x* 0123456 */ - /* 0 */ "aaaaaaa" - /* 1 */ "aaaaaaa" - /* 2 */ "aaaaaaa" - /* 3 */ "aaaaaaa" - /* 4 */ "aaaaaaa" - /* 5 */ "aaaaaaa" - /* 6 */ "aaaaaaa" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "aaaaaaa" - /* 1 */ "abbbbba" - /* 2 */ "abcccba" - /* 3 */ "abcccba" - /* 4 */ "abcccba" - /* 5 */ "abbbbba" - /* 6 */ "aaaaaaa" - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ "aaaaaaa" - /* 1 */ "abbbbba" - /* 2 */ "abcccba" - /* 3 */ "abcccba" - /* 4 */ "abcccba" - /* 5 */ "abbbbba" - /* 6 */ "aaaaaaa" - - // Level 3 - /* z\x* 0123456 */ - /* 0 */ "aaaaaaa" - /* 1 */ "abbbbba" - /* 2 */ "abcccba" - /* 3 */ "abcccba" - /* 4 */ "abcccba" - /* 5 */ "abbbbba" - /* 6 */ "aaaaaaa" - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "ddddddd" - /* 1 */ "dbbbbbd" - /* 2 */ "dbcccbd" - /* 3 */ "dbcccbd" - /* 4 */ "dbcccbd" - /* 5 */ "dbbbbbd" - /* 6 */ "ddddddd" - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "ddddddd" - /* 1 */ "dbbbbbd" - /* 2 */ "dbcccbd" - /* 3 */ "dbcccbd" - /* 4 */ "dbcccbd" - /* 5 */ "dbbbbbd" - /* 6 */ "ddddddd" - - // Level 6 - /* z\x* 0123456 */ - /* 0 */ "ddeeedd" - /* 1 */ "dbbbbbd" - /* 2 */ "ebcccbe" - /* 3 */ "ebcccbe" - /* 4 */ "ebcccbe" - /* 5 */ "dbbbbbd" - /* 6 */ "ddeeedd" - - // Level 7 - /* z\x* 0123456 */ - /* 0 */ "ddfffdd" - /* 1 */ "dbbbbbd" - /* 2 */ "fbcccbf" - /* 3 */ "fbcccbf" - /* 4 */ "fbcccbf" - /* 5 */ "dbbbbbd" - /* 6 */ "ddfffdd" - - // Level 8 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".bbbbb." - /* 2 */ ".b...b." - /* 3 */ ".b.g.b." - /* 4 */ ".b...b." - /* 5 */ ".bbbbb." - /* 6 */ "......." - - // Level 9 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".h...h." - /* 2 */ "......." - /* 3 */ "...h..." - /* 4 */ "......." - /* 5 */ ".h...h." - /* 6 */ "......." - - // Level 10 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".h...h." - /* 2 */ "......." - /* 3 */ "...h..." - /* 4 */ "......." - /* 5 */ ".h...h." - /* 6 */ "......." - - // Level 11 - /* z\x* 0123456 */ - /* 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 */ "iiiiiii" - /* 2 */ "jb...bj" - /* 3 */ ".b.h.b." - /* 4 */ "nb...bn" - /* 5 */ "ooooooo" - /* 6 */ "......." - - // Level 13 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "......." - /* 2 */ "iiiiiii" - /* 3 */ "bbbbbbb" - /* 4 */ "ooooooo" - /* 5 */ "......." - /* 6 */ ".......", - - // Connectors: - "2: 6, 8, 3: 5\n" /* Type 2, direction X+ */ - "2: 3, 8, 6: 3\n" /* Type 2, direction Z+ */ - "2: 0, 8, 3: 4\n" /* Type 2, direction X- */ - "2: 3, 8, 0: 2\n" /* Type 2, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // RoofedWell - - - - //////////////////////////////////////////////////////////////////////////////// - // Well: - // The data has been exported from the gallery Desert, area index 0, ID 1, created by Aloe_vera - { - // Size: - 4, 13, 4, // SizeX = 4, SizeY = 13, SizeZ = 4 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 3, 12, 3, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 1: 0\n" /* stone */ - "b: 24: 0\n" /* sandstone */ - "c: 8: 0\n" /* water */ - "d: 85: 0\n" /* fence */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* 0123 */ - /* 0 */ "aaaa" - /* 1 */ "aaaa" - /* 2 */ "aaaa" - /* 3 */ "aaaa" - - // Level 1 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "bccb" - /* 2 */ "bccb" - /* 3 */ "bbbb" - - // Level 2 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "bccb" - /* 2 */ "bccb" - /* 3 */ "bbbb" - - // Level 3 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "bccb" - /* 2 */ "bccb" - /* 3 */ "bbbb" - - // Level 4 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "bccb" - /* 2 */ "bccb" - /* 3 */ "bbbb" - - // Level 5 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "bccb" - /* 2 */ "bccb" - /* 3 */ "bbbb" - - // Level 6 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "bccb" - /* 2 */ "bccb" - /* 3 */ "bbbb" - - // Level 7 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "bccb" - /* 2 */ "bccb" - /* 3 */ "bbbb" - - // Level 8 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "b..b" - /* 2 */ "b..b" - /* 3 */ "bbbb" - - // Level 9 - /* z\x* 0123 */ - /* 0 */ "d..d" - /* 1 */ "...." - /* 2 */ "...." - /* 3 */ "d..d" - - // Level 10 - /* z\x* 0123 */ - /* 0 */ "d..d" - /* 1 */ "...." - /* 2 */ "...." - /* 3 */ "d..d" - - // Level 11 - /* z\x* 0123 */ - /* 0 */ "d..d" - /* 1 */ "...." - /* 2 */ "...." - /* 3 */ "d..d" - - // Level 12 - /* z\x* 0123 */ - /* 0 */ "bbbb" - /* 1 */ "bbbb" - /* 2 */ "bbbb" - /* 3 */ "bbbb", - - // Connectors: - "2: 2, 8, 0: 2\n" /* Type 2, direction Z- */ - "2: 0, 8, 1: 4\n" /* Type 2, direction X- */ - "2: 1, 8, 3: 3\n" /* Type 2, direction Z+ */ - "2: 3, 8, 2: 5\n" /* Type 2, direction X+ */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - - // MoveToGround: - true, - }, // Well -}; - - - - - -// The prefab counts: - -const size_t g_SandVillagePrefabsCount = ARRAYCOUNT(g_SandVillagePrefabs); - -const size_t g_SandVillageStartingPrefabsCount = ARRAYCOUNT(g_SandVillageStartingPrefabs); - diff --git a/src/Generating/Prefabs/SandVillagePrefabs.h b/src/Generating/Prefabs/SandVillagePrefabs.h deleted file mode 100644 index 7b00db56f..000000000 --- a/src/Generating/Prefabs/SandVillagePrefabs.h +++ /dev/null @@ -1,15 +0,0 @@ - -// SandVillagePrefabs.h - -// Declares the prefabs in the group SandVillage - -#include "../Prefab.h" - - - - - -extern const cPrefab::sDef g_SandVillagePrefabs[]; -extern const cPrefab::sDef g_SandVillageStartingPrefabs[]; -extern const size_t g_SandVillagePrefabsCount; -extern const size_t g_SandVillageStartingPrefabsCount; diff --git a/src/Generating/Prefabs/UnderwaterBasePrefabs.cpp b/src/Generating/Prefabs/UnderwaterBasePrefabs.cpp index 1655f50b9..112531641 100644 --- a/src/Generating/Prefabs/UnderwaterBasePrefabs.cpp +++ b/src/Generating/Prefabs/UnderwaterBasePrefabs.cpp @@ -32,9 +32,9 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = "b: 20: 0\n" /* glass */ "c: 5: 5\n" /* wood */ "d: 8: 0\n" /* water */ - "e: 64: 4\n" /* wooddoorblock */ - "f: 64:12\n" /* wooddoorblock */ - "g: 64:13\n" /* wooddoorblock */ + "e: 64: 0\n" /* wooddoorblock */ + "f: 64: 8\n" /* wooddoorblock */ + "g: 64: 9\n" /* wooddoorblock */ "m: 19: 0\n" /* sponge */, // Block data: @@ -280,18 +280,16 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = ".: 0: 0\n" /* air */ "a: 5: 5\n" /* wood */ "b: 5: 0\n" /* wood */ - "c: 64: 5\n" /* wooddoorblock */ - "d: 64: 2\n" /* wooddoorblock */ - "e: 64: 4\n" /* wooddoorblock */ - "f: 64: 1\n" /* wooddoorblock */ - "g: 20: 0\n" /* glass */ - "h: 64:12\n" /* wooddoorblock */ - "i: 76: 3\n" /* redstonetorchon */ - "j: 64: 8\n" /* wooddoorblock */ - "k: 76: 4\n" /* redstonetorchon */ - "l: 76: 2\n" /* redstonetorchon */ - "m: 19: 0\n" /* sponge */ - "n: 76: 1\n" /* redstonetorchon */, + "c: 64: 2\n" /* wooddoorblock */ + "d: 64: 1\n" /* wooddoorblock */ + "e: 20: 0\n" /* glass */ + "f: 64: 9\n" /* wooddoorblock */ + "g: 76: 3\n" /* redstonetorchon */ + "h: 64: 8\n" /* wooddoorblock */ + "i: 76: 4\n" /* redstonetorchon */ + "j: 76: 2\n" /* redstonetorchon */ + "k: 76: 1\n" /* redstonetorchon */ + "m: 19: 0\n" /* sponge */, // Block data: // Level 0 @@ -313,28 +311,28 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = /* * 0123456789 */ /* 0 */ "abbbbbmmmm" /* 1 */ "c.....bbmm" - /* 2 */ "d.......bm" + /* 2 */ "c.......bm" /* 3 */ "abb.....bm" /* 4 */ "mmmbb....b" /* 5 */ "mmmmmb...b" /* 6 */ "mmmmmb...b" /* 7 */ "mmmmmmb..b" /* 8 */ "mmmmmmb..b" - /* 9 */ "mmmmmmaefa" + /* 9 */ "mmmmmmadda" // Level 2 /* z\x* */ /* * 0123456789 */ - /* 0 */ "abggbbmmmm" - /* 1 */ "h...i.bbmm" - /* 2 */ "j.......bm" - /* 3 */ "abbk....bm" + /* 0 */ "abeebbmmmm" + /* 1 */ "f...g.bbmm" + /* 2 */ "h.......bm" + /* 3 */ "abbi....bm" /* 4 */ "mmmbb....b" - /* 5 */ "mmmmmb..lb" - /* 6 */ "mmmmmbn..g" - /* 7 */ "mmmmmmb..g" + /* 5 */ "mmmmmb..jb" + /* 6 */ "mmmmmbk..e" + /* 7 */ "mmmmmmb..e" /* 8 */ "mmmmmmb..b" - /* 9 */ "mmmmmmahja" + /* 9 */ "mmmmmmafha" // Level 3 /* z\x* */ @@ -396,20 +394,17 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = "a: 5: 5\n" /* wood */ "b: 5: 0\n" /* wood */ "c: 64: 3\n" /* wooddoorblock */ - "d: 64: 6\n" /* wooddoorblock */ - "e: 64: 5\n" /* wooddoorblock */ - "f: 64: 0\n" /* wooddoorblock */ - "g: 64: 2\n" /* wooddoorblock */ - "h: 64: 1\n" /* wooddoorblock */ - "i: 64: 8\n" /* wooddoorblock */ - "j: 64:12\n" /* wooddoorblock */ - "k: 20: 0\n" /* glass */ - "l: 76: 1\n" /* redstonetorchon */ + "d: 64: 2\n" /* wooddoorblock */ + "e: 64: 0\n" /* wooddoorblock */ + "f: 64: 1\n" /* wooddoorblock */ + "g: 64: 8\n" /* wooddoorblock */ + "h: 64: 9\n" /* wooddoorblock */ + "i: 20: 0\n" /* glass */ + "j: 76: 1\n" /* redstonetorchon */ + "k: 76: 2\n" /* redstonetorchon */ + "l: 76: 3\n" /* redstonetorchon */ "m: 19: 0\n" /* sponge */ - "n: 76: 2\n" /* redstonetorchon */ - "o: 76: 3\n" /* redstonetorchon */ - "p: 76: 4\n" /* redstonetorchon */ - "q: 64: 9\n" /* wooddoorblock */, + "n: 76: 4\n" /* redstonetorchon */, // Block data: // Level 0 @@ -435,42 +430,42 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = // Level 1 /* z\x* 111111 */ /* * 0123456789012345 */ - /* 0 */ "mmmmmmacdammmmmm" + /* 0 */ "mmmmmmaccammmmmm" /* 1 */ "mmmmmmb..bmmmmmm" /* 2 */ "mmmmmmb..bmmmmmm" /* 3 */ "mmmmmmb..bmmmmmm" /* 4 */ "mmmmmmb..bmmmmmm" /* 5 */ "mmmmmmb..bmmmmmm" /* 6 */ "abbbbbb..bbbbbba" - /* 7 */ "e..............f" - /* 8 */ "g..............f" + /* 7 */ "d..............e" + /* 8 */ "d..............e" /* 9 */ "abbbbbb..bbbbbba" /* 10 */ "mmmmmmb..bmmmmmm" /* 11 */ "mmmmmmb..bmmmmmm" /* 12 */ "mmmmmmb..bmmmmmm" /* 13 */ "mmmmmmb..bmmmmmm" /* 14 */ "mmmmmmb..bmmmmmm" - /* 15 */ "mmmmmmahhammmmmm" + /* 15 */ "mmmmmmaffammmmmm" // Level 2 /* z\x* 111111 */ /* * 0123456789012345 */ - /* 0 */ "mmmmmmaijammmmmm" + /* 0 */ "mmmmmmaghammmmmm" /* 1 */ "mmmmmmb..bmmmmmm" - /* 2 */ "mmmmmmk..kmmmmmm" - /* 3 */ "mmmmmmk..kmmmmmm" - /* 4 */ "mmmmmmblnbmmmmmm" + /* 2 */ "mmmmmmi..immmmmm" + /* 3 */ "mmmmmmi..immmmmm" + /* 4 */ "mmmmmmbjkbmmmmmm" /* 5 */ "mmmmmmb..bmmmmmm" - /* 6 */ "abkkbbb..bbbkkba" - /* 7 */ "j...o......o...i" - /* 8 */ "i...p......p...q" - /* 9 */ "abkkbbb..bbbkkba" + /* 6 */ "abiibbb..bbbiiba" + /* 7 */ "h...l......l...g" + /* 8 */ "g...n......n...h" + /* 9 */ "abiibbb..bbbiiba" /* 10 */ "mmmmmmb..bmmmmmm" - /* 11 */ "mmmmmmblnbmmmmmm" - /* 12 */ "mmmmmmk..kmmmmmm" - /* 13 */ "mmmmmmk..kmmmmmm" + /* 11 */ "mmmmmmbjkbmmmmmm" + /* 12 */ "mmmmmmi..immmmmm" + /* 13 */ "mmmmmmi..immmmmm" /* 14 */ "mmmmmmb..bmmmmmm" - /* 15 */ "mmmmmmaqiammmmmm" + /* 15 */ "mmmmmmahgammmmmm" // Level 3 /* z\x* 111111 */ @@ -549,8 +544,6 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = "h: 64: 8\n" /* wooddoorblock */ "i: 76: 4\n" /* redstonetorchon */ "j: 64: 0\n" /* wooddoorblock */ - "k: 64: 7\n" /* wooddoorblock */ - "l: 64:12\n" /* wooddoorblock */ "m: 19: 0\n" /* sponge */, // Block data: @@ -607,7 +600,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = /* * 0123456789012345 */ /* 0 */ "mmmmmmmbbbbbbbba" /* 1 */ "mmmmmmmb.......j" - /* 2 */ "mmmmmmmb.......k" + /* 2 */ "mmmmmmmb.......j" /* 3 */ "mmmmmmmbbbbbbbba" // Level 7 @@ -615,7 +608,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = /* * 0123456789012345 */ /* 0 */ "mmmmmmmmbbbeebba" /* 1 */ "mmmmmmmmb.g....h" - /* 2 */ "mmmmmmmmb.i....l" + /* 2 */ "mmmmmmmmb.i....f" /* 3 */ "mmmmmmmmbbbeebba" // Level 8 @@ -672,19 +665,16 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = "a: 5: 5\n" /* wood */ "b: 5: 0\n" /* wood */ "c: 64: 3\n" /* wooddoorblock */ - "d: 64: 6\n" /* wooddoorblock */ - "e: 64: 5\n" /* wooddoorblock */ - "f: 64: 0\n" /* wooddoorblock */ - "g: 64: 2\n" /* wooddoorblock */ - "h: 64: 8\n" /* wooddoorblock */ - "i: 64:12\n" /* wooddoorblock */ - "j: 20: 0\n" /* glass */ - "k: 76: 1\n" /* redstonetorchon */ - "l: 76: 2\n" /* redstonetorchon */ - "m: 19: 0\n" /* sponge */ - "n: 76: 3\n" /* redstonetorchon */ - "o: 76: 4\n" /* redstonetorchon */ - "p: 64: 9\n" /* wooddoorblock */, + "d: 64: 2\n" /* wooddoorblock */ + "e: 64: 0\n" /* wooddoorblock */ + "f: 64: 8\n" /* wooddoorblock */ + "g: 64: 9\n" /* wooddoorblock */ + "h: 20: 0\n" /* glass */ + "i: 76: 1\n" /* redstonetorchon */ + "j: 76: 2\n" /* redstonetorchon */ + "k: 76: 3\n" /* redstonetorchon */ + "l: 76: 4\n" /* redstonetorchon */ + "m: 19: 0\n" /* sponge */, // Block data: // Level 0 @@ -704,30 +694,30 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = // Level 1 /* z\x* 111111 */ /* * 0123456789012345 */ - /* 0 */ "mmmmmmacdammmmmm" + /* 0 */ "mmmmmmaccammmmmm" /* 1 */ "mmmmmmb..bmmmmmm" /* 2 */ "mmmmmmb..bmmmmmm" /* 3 */ "mmmmmmb..bmmmmmm" /* 4 */ "mmmmmmb..bmmmmmm" /* 5 */ "mmmmmmb..bmmmmmm" /* 6 */ "abbbbbb..bbbbbba" - /* 7 */ "e..............f" - /* 8 */ "g..............f" + /* 7 */ "d..............e" + /* 8 */ "d..............e" /* 9 */ "abbbbbbbbbbbbbba" // Level 2 /* z\x* 111111 */ /* * 0123456789012345 */ - /* 0 */ "mmmmmmahiammmmmm" + /* 0 */ "mmmmmmafgammmmmm" /* 1 */ "mmmmmmb..bmmmmmm" - /* 2 */ "mmmmmmj..jmmmmmm" - /* 3 */ "mmmmmmj..jmmmmmm" - /* 4 */ "mmmmmmbklbmmmmmm" + /* 2 */ "mmmmmmh..hmmmmmm" + /* 3 */ "mmmmmmh..hmmmmmm" + /* 4 */ "mmmmmmbijbmmmmmm" /* 5 */ "mmmmmmb..bmmmmmm" - /* 6 */ "abjjbbb..bbbjjba" - /* 7 */ "i...n......n...h" - /* 8 */ "h...o......o...p" - /* 9 */ "abjjbbbjjbbbjjba" + /* 6 */ "abhhbbb..bbbhhba" + /* 7 */ "g...k......k...f" + /* 8 */ "f...l......l...g" + /* 9 */ "abhhbbbhhbbbhhba" // Level 3 /* z\x* 111111 */ @@ -974,14 +964,12 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = "a: 5: 0\n" /* wood */ "b: 5: 5\n" /* wood */ "c: 20: 0\n" /* glass */ - "d: 64: 5\n" /* wooddoorblock */ + "d: 64: 2\n" /* wooddoorblock */ "e: 64: 0\n" /* wooddoorblock */ - "f: 64: 2\n" /* wooddoorblock */ - "g: 76: 3\n" /* redstonetorchon */ - "h: 64:12\n" /* wooddoorblock */ - "i: 64: 8\n" /* wooddoorblock */ - "j: 64: 9\n" /* wooddoorblock */ - "k: 76: 4\n" /* redstonetorchon */ + "f: 76: 3\n" /* redstonetorchon */ + "g: 64: 9\n" /* wooddoorblock */ + "h: 64: 8\n" /* wooddoorblock */ + "i: 76: 4\n" /* redstonetorchon */ "m: 19: 0\n" /* sponge */, // Block data: @@ -1001,7 +989,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = /* 0 */ "mmaccccccccccamm" /* 1 */ "ba............ab" /* 2 */ "d..............e" - /* 3 */ "f..............e" + /* 3 */ "d..............e" /* 4 */ "ba............ab" /* 5 */ "mmaccccccccccamm" @@ -1009,10 +997,10 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = /* z\x* 111111 */ /* * 0123456789012345 */ /* 0 */ "mmaccccccccccamm" - /* 1 */ "bag..........gab" - /* 2 */ "h..............i" - /* 3 */ "i..............j" - /* 4 */ "bak..........kab" + /* 1 */ "baf..........fab" + /* 2 */ "g..............h" + /* 3 */ "h..............g" + /* 4 */ "bai..........iab" /* 5 */ "mmaccccccccccamm" // Level 3 @@ -1673,7 +1661,8 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = "j: 76: 4\n" /* redstonetorchon */ "k: 64: 1\n" /* wooddoorblock */ "l: 64: 8\n" /* wooddoorblock */ - "m: 19: 0\n" /* sponge */, + "m: 19: 0\n" /* sponge */ + "n: 64: 9\n" /* wooddoorblock */, // Block data: // Level 0 @@ -1721,7 +1710,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = // Level 2 /* z\x* 1111 */ /* * 01234567890123 */ - /* 0 */ "mmmmallammmmmm" + /* 0 */ "mmmmalnammmmmm" /* 1 */ "mmmmb..bmmmmmm" /* 2 */ "mmmmc..cmmmmmm" /* 3 */ "mmmcc..ccmmmmm" @@ -1729,14 +1718,14 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = /* 5 */ "mcc......ccmmm" /* 6 */ "mc........ccba" /* 7 */ "c............l" - /* 8 */ "c............l" + /* 8 */ "c............n" /* 9 */ "mc........ccba" /* 10 */ "mcc......ccmmm" /* 11 */ "mmcc....ccmmmm" /* 12 */ "mmmcc..ccmmmmm" /* 13 */ "mmmmc..cmmmmmm" /* 14 */ "mmmmb..bmmmmmm" - /* 15 */ "mmmmallammmmmm" + /* 15 */ "mmmmanlammmmmm" /* 16 */ "dddddddddddddd" // Level 3 diff --git a/src/Generating/ProtIntGen.h b/src/Generating/ProtIntGen.h index 9e471e8bb..c0c7102d2 100644 --- a/src/Generating/ProtIntGen.h +++ b/src/Generating/ProtIntGen.h @@ -47,7 +47,7 @@ public: virtual ~cProtIntGen() {} /** Generates the array of specified size into a_Values, based on given min coords. */ - virtual void GetInts(int a_MinX, int a_MinZ, int a_SizeX, int a_SizeZ, int * a_Values) = 0; + virtual void GetInts(int a_MinX, int a_MinZ, size_t a_SizeX, size_t a_SizeZ, int *a_Values) = 0; }; @@ -109,14 +109,14 @@ public: } - virtual void GetInts(int a_MinX, int a_MinZ, int a_SizeX, int a_SizeZ, int * a_Values) override + virtual void GetInts(int a_MinX, int a_MinZ, size_t a_SizeX, size_t a_SizeZ, int *a_Values) override { - for (int z = 0; z < a_SizeZ; z++) + for (size_t z = 0; z < a_SizeZ; z++) { - int BaseZ = a_MinZ + z; - for (int x = 0; x < a_SizeX; x++) + int BaseZ = a_MinZ + static_cast<int>(z); + for (size_t x = 0; x < a_SizeX; x++) { - a_Values[x + a_SizeX * z] = (super::m_Noise.IntNoise2DInt(a_MinX + x, BaseZ) / 7) % m_Range; + a_Values[x + a_SizeX * z] = (super::m_Noise.IntNoise2DInt(a_MinX + static_cast<int>(x), BaseZ) / 7) % m_Range; } } // for z } @@ -146,22 +146,22 @@ public: } - virtual void GetInts(int a_MinX, int a_MinZ, int a_SizeX, int a_SizeZ, int * a_Values) override + virtual void GetInts(int a_MinX, int a_MinZ, size_t a_SizeX, size_t a_SizeZ, int *a_Values) override { - for (int z = 0; z < a_SizeZ; z++) + for (size_t z = 0; z < a_SizeZ; z++) { - int BaseZ = a_MinZ + z; - for (int x = 0; x < a_SizeX; x++) + int BaseZ = a_MinZ + static_cast<int>(z); + for (size_t x = 0; x < a_SizeX; x++) { - int rnd = (super::m_Noise.IntNoise2DInt(a_MinX + x, BaseZ) / 7); + int rnd = (super::m_Noise.IntNoise2DInt(a_MinX + static_cast<int>(x), BaseZ) / 7); a_Values[x + a_SizeX * z] = ((rnd % 100) < m_Threshold) ? ((rnd / 101) % bgLandOceanMax + 1) : 0; } } // If the centerpoint of the world is within the area, set it to bgTemperate, always: - if ((a_MinX <= 0) && (a_MinZ <= 0) && (a_MinX + a_SizeX > 0) && (a_MinZ + a_SizeZ > 0)) + if ((a_MinX <= 0) && (a_MinZ <= 0) && (a_MinX + static_cast<int>(a_SizeX) > 0) && (a_MinZ + static_cast<int>(a_SizeZ) > 0)) { - a_Values[-a_MinX - a_MinZ * a_SizeX] = bgTemperate; + a_Values[static_cast<size_t>(-a_MinX) - static_cast<size_t>(a_MinZ) * a_SizeX] = bgTemperate; } } @@ -189,13 +189,13 @@ public: } - virtual void GetInts(int a_MinX, int a_MinZ, int a_SizeX, int a_SizeZ, int * a_Values) override + virtual void GetInts(int a_MinX, int a_MinZ, size_t a_SizeX, size_t a_SizeZ, int *a_Values) override { // Get the coords for the lower generator: int lowerMinX = a_MinX >> 1; int lowerMinZ = a_MinZ >> 1; - int lowerSizeX = a_SizeX / 2 + 2; - int lowerSizeZ = a_SizeZ / 2 + 2; + size_t lowerSizeX = a_SizeX / 2 + 2; + size_t lowerSizeZ = a_SizeZ / 2 + 2; ASSERT(lowerSizeX * lowerSizeZ <= m_BufferSize); ASSERT(lowerSizeX > 0); ASSERT(lowerSizeZ > 0); @@ -203,22 +203,22 @@ public: // Generate the underlying data with half the resolution: int lowerData[m_BufferSize]; m_UnderlyingGen->GetInts(lowerMinX, lowerMinZ, lowerSizeX, lowerSizeZ, lowerData); - const int lowStepX = (lowerSizeX - 1) * 2; + const size_t lowStepX = (lowerSizeX - 1) * 2; int cache[m_BufferSize]; // Discreet-interpolate the values into twice the size: - for (int z = 0; z < lowerSizeZ - 1; ++z) + for (size_t z = 0; z < lowerSizeZ - 1; ++z) { - int idx = (z * 2) * lowStepX; + size_t idx = (z * 2) * lowStepX; int PrevZ0 = lowerData[z * lowerSizeX]; int PrevZ1 = lowerData[(z + 1) * lowerSizeX]; - for (int x = 0; x < lowerSizeX - 1; ++x) + for (size_t x = 0; x < lowerSizeX - 1; ++x) { int ValX1Z0 = lowerData[x + 1 + z * lowerSizeX]; int ValX1Z1 = lowerData[x + 1 + (z + 1) * lowerSizeX]; - int RndX = (x + lowerMinX) * 2; - int RndZ = (z + lowerMinZ) * 2; + int RndX = (static_cast<int>(x) + lowerMinX) * 2; + int RndZ = (static_cast<int>(z) + lowerMinZ) * 2; cache[idx] = PrevZ0; cache[idx + lowStepX] = super::chooseRandomOne(RndX, RndZ + 1, PrevZ0, PrevZ1); cache[idx + 1] = super::chooseRandomOne(RndX, RndZ - 1, PrevZ0, ValX1Z0); @@ -230,7 +230,7 @@ public: } // Copy from Cache into a_Values; take into account the even / odd offsets in a_Min: - for (int z = 0; z < a_SizeZ; ++z) + for (size_t z = 0; z < a_SizeZ; ++z) { memcpy(a_Values + z * a_SizeX, cache + (z + (a_MinZ & 1)) * lowStepX + (a_MinX & 1), a_SizeX * sizeof(int)); } @@ -259,21 +259,21 @@ public: } - virtual void GetInts(int a_MinX, int a_MinZ, int a_SizeX, int a_SizeZ, int * a_Values) override + virtual void GetInts(int a_MinX, int a_MinZ, size_t a_SizeX, size_t a_SizeZ, int *a_Values) override { // Generate the underlying values: - int lowerSizeX = a_SizeX + 2; - int lowerSizeZ = a_SizeZ + 2; + size_t lowerSizeX = a_SizeX + 2; + size_t lowerSizeZ = a_SizeZ + 2; ASSERT(lowerSizeX * lowerSizeZ <= m_BufferSize); int lowerData[m_BufferSize]; m_Underlying->GetInts(a_MinX - 1, a_MinZ - 1, lowerSizeX, lowerSizeZ, lowerData); // Smooth - for each square check if the surroundings are the same, if so, expand them diagonally. // Also get rid of single-pixel irregularities (A-B-A): - for (int z = 0; z < a_SizeZ; z++) + for (size_t z = 0; z < a_SizeZ; z++) { - int NoiseZ = a_MinZ + z; - for (int x = 0; x < a_SizeX; x++) + int NoiseZ = a_MinZ + static_cast<int>(z); + for (size_t x = 0; x < a_SizeX; x++) { int val = lowerData[x + 1 + (z + 1) * lowerSizeX]; int above = lowerData[x + 1 + z * lowerSizeX]; @@ -283,7 +283,7 @@ public: if ((left == right) && (above == below)) { - if (((super::m_Noise.IntNoise2DInt(a_MinX + x, NoiseZ) / 7) % 2) == 0) + if (((super::m_Noise.IntNoise2DInt(a_MinX + static_cast<int>(x), NoiseZ) / 7) % 2) == 0) { val = left; } @@ -331,21 +331,21 @@ public: } - virtual void GetInts(int a_MinX, int a_MinZ, int a_SizeX, int a_SizeZ, int * a_Values) override + virtual void GetInts(int a_MinX, int a_MinZ, size_t a_SizeX, size_t a_SizeZ, int *a_Values) override { // Generate the underlying values: - int lowerSizeX = a_SizeX + 1; - int lowerSizeZ = a_SizeZ + 1; + size_t lowerSizeX = a_SizeX + 1; + size_t lowerSizeZ = a_SizeZ + 1; ASSERT(lowerSizeX * lowerSizeZ <= m_BufferSize); int lowerData[m_BufferSize]; m_Underlying->GetInts(a_MinX, a_MinZ, lowerSizeX, lowerSizeZ, lowerData); // Average - add all 4 "neighbors" and divide by 4: - for (int z = 0; z < a_SizeZ; z++) + for (size_t z = 0; z < a_SizeZ; z++) { - for (int x = 0; x < a_SizeX; x++) + for (size_t x = 0; x < a_SizeX; x++) { - int idxLower = x + lowerSizeX * z; + size_t idxLower = x + lowerSizeX * z; a_Values[x + a_SizeX * z] = ( lowerData[idxLower] + lowerData[idxLower + 1] + lowerData[idxLower + lowerSizeX] + lowerData[idxLower + lowerSizeX + 1] @@ -375,24 +375,24 @@ public: } - virtual void GetInts(int a_MinX, int a_MinZ, int a_SizeX, int a_SizeZ, int * a_Values) override + virtual void GetInts(int a_MinX, int a_MinZ, size_t a_SizeX, size_t a_SizeZ, int *a_Values) override { // Generate the underlying values: - int lowerSizeX = a_SizeX + 4; - int lowerSizeZ = a_SizeZ + 4; + size_t lowerSizeX = a_SizeX + 4; + size_t lowerSizeZ = a_SizeZ + 4; ASSERT(lowerSizeX * lowerSizeZ <= m_BufferSize); int lowerData[m_BufferSize]; m_Underlying->GetInts(a_MinX - 1, a_MinZ - 1, lowerSizeX, lowerSizeZ, lowerData); // Calculate the weighted average of all 16 "neighbors": - for (int z = 0; z < a_SizeZ; z++) + for (size_t z = 0; z < a_SizeZ; z++) { - for (int x = 0; x < a_SizeX; x++) + for (size_t x = 0; x < a_SizeX; x++) { - int idxLower1 = x + lowerSizeX * z; - int idxLower2 = idxLower1 + lowerSizeX; - int idxLower3 = idxLower1 + 2 * lowerSizeX; - int idxLower4 = idxLower1 + 3 * lowerSizeX; + size_t idxLower1 = x + lowerSizeX * z; + size_t idxLower2 = idxLower1 + lowerSizeX; + size_t idxLower3 = idxLower1 + 2 * lowerSizeX; + size_t idxLower4 = idxLower1 + 3 * lowerSizeX; a_Values[x + a_SizeX * z] = ( 1 * lowerData[idxLower1] + 2 * lowerData[idxLower1 + 1] + 2 * lowerData[idxLower1 + 2] + 1 * lowerData[idxLower1 + 3] + 2 * lowerData[idxLower2] + 32 * lowerData[idxLower2 + 1] + 32 * lowerData[idxLower2 + 2] + 2 * lowerData[idxLower2 + 3] + @@ -425,23 +425,23 @@ public: } - virtual void GetInts(int a_MinX, int a_MinZ, int a_SizeX, int a_SizeZ, int * a_Values) override + virtual void GetInts(int a_MinX, int a_MinZ, size_t a_SizeX, size_t a_SizeZ, int *a_Values) override { // Generate the underlying values: - int lowerSizeX = a_SizeX + 3; - int lowerSizeZ = a_SizeZ + 3; + size_t lowerSizeX = a_SizeX + 3; + size_t lowerSizeZ = a_SizeZ + 3; ASSERT(lowerSizeX * lowerSizeZ <= m_BufferSize); int lowerData[m_BufferSize]; m_Underlying->GetInts(a_MinX, a_MinZ, lowerSizeX, lowerSizeZ, lowerData); // Calculate the weighted average the neighbors: - for (int z = 0; z < a_SizeZ; z++) + for (size_t z = 0; z < a_SizeZ; z++) { - for (int x = 0; x < a_SizeX; x++) + for (size_t x = 0; x < a_SizeX; x++) { - int idxLower1 = x + lowerSizeX * z; - int idxLower2 = idxLower1 + lowerSizeX; - int idxLower3 = idxLower1 + 2 * lowerSizeX; + size_t idxLower1 = x + lowerSizeX * z; + size_t idxLower2 = idxLower1 + lowerSizeX; + size_t idxLower3 = idxLower1 + 2 * lowerSizeX; a_Values[x + a_SizeX * z] = ( WeightDiagonal * lowerData[idxLower1] + WeightCardinal * lowerData[idxLower1 + 1] + WeightDiagonal * lowerData[idxLower1 + 2] + WeightCardinal * lowerData[idxLower2] + WeightCenter * lowerData[idxLower2 + 1] + WeightCardinal * lowerData[idxLower2 + 2] + @@ -476,20 +476,20 @@ public: } - virtual void GetInts(int a_MinX, int a_MinZ, int a_SizeX, int a_SizeZ, int * a_Values) override + virtual void GetInts(int a_MinX, int a_MinZ, size_t a_SizeX, size_t a_SizeZ, int *a_Values) override { // Generate the underlying values: m_Underlying->GetInts(a_MinX, a_MinZ, a_SizeX, a_SizeZ, a_Values); // Replace random values: - for (int z = 0; z < a_SizeZ; z++) + for (size_t z = 0; z < a_SizeZ; z++) { - int BaseZ = a_MinZ + z; - for (int x = 0; x < a_SizeX; x++) + int BaseZ = a_MinZ + static_cast<int>(z); + for (size_t x = 0; x < a_SizeX; x++) { - if (((super::m_Noise.IntNoise2DInt(BaseZ, a_MinX + x) / 13) % 101) < m_ChancePct) + if (((super::m_Noise.IntNoise2DInt(BaseZ, a_MinX + static_cast<int>(x)) / 13) % 101) < m_ChancePct) { - a_Values[x + a_SizeX * z] = m_Min + (super::m_Noise.IntNoise2DInt(a_MinX + x, BaseZ) / 7) % m_Range; + a_Values[x + a_SizeX * z] = m_Min + (super::m_Noise.IntNoise2DInt(a_MinX + static_cast<int>(x), BaseZ) / 7) % m_Range; } } // for x } // for z @@ -522,18 +522,18 @@ public: } - virtual void GetInts(int a_MinX, int a_MinZ, int a_SizeX, int a_SizeZ, int * a_Values) override + virtual void GetInts(int a_MinX, int a_MinZ, size_t a_SizeX, size_t a_SizeZ, int *a_Values) override { // Generate the underlying values: m_Underlying->GetInts(a_MinX, a_MinZ, a_SizeX, a_SizeZ, a_Values); // Add the random values: - for (int z = 0; z < a_SizeZ; z++) + for (size_t z = 0; z < a_SizeZ; z++) { - int NoiseZ = a_MinZ + z; - for (int x = 0; x < a_SizeX; x++) + int NoiseZ = a_MinZ + static_cast<int>(z); + for (size_t x = 0; x < a_SizeX; x++) { - int noiseVal = ((super::m_Noise.IntNoise2DInt(a_MinX + x, NoiseZ) / 7) % m_Range) - m_HalfRange; + int noiseVal = ((super::m_Noise.IntNoise2DInt(a_MinX + static_cast<int>(x), NoiseZ) / 7) % m_Range) - m_HalfRange; a_Values[x + z * a_SizeX] += noiseVal; } } @@ -564,23 +564,23 @@ public: } - virtual void GetInts(int a_MinX, int a_MinZ, int a_SizeX, int a_SizeZ, int * a_Values) override + virtual void GetInts(int a_MinX, int a_MinZ, size_t a_SizeX, size_t a_SizeZ, int *a_Values) override { // Generate the underlying values: - int lowerSizeX = a_SizeX + 2; - int lowerSizeZ = a_SizeZ + 2; + size_t lowerSizeX = a_SizeX + 2; + size_t lowerSizeZ = a_SizeZ + 2; ASSERT(lowerSizeX * lowerSizeZ <= m_BufferSize); int lowerData[m_BufferSize]; m_Underlying->GetInts(a_MinX - 1, a_MinZ - 1, lowerSizeX, lowerSizeZ, lowerData); // Average random values: - for (int z = 0; z < a_SizeZ; z++) + for (size_t z = 0; z < a_SizeZ; z++) { - int NoiseZ = a_MinZ + z; - for (int x = 0; x < a_SizeX; x++) + int NoiseZ = a_MinZ + static_cast<int>(z); + for (size_t x = 0; x < a_SizeX; x++) { - int idxLower = x + 1 + lowerSizeX * (z + 1); - if (((super::m_Noise.IntNoise2DInt(a_MinX + x, NoiseZ) / 7) % 100) > m_AvgChancePct) + size_t idxLower = x + 1 + lowerSizeX * (z + 1); + if (((super::m_Noise.IntNoise2DInt(a_MinX + static_cast<int>(x), NoiseZ) / 7) % 100) > m_AvgChancePct) { // Average the 4 neighbors: a_Values[x + z * a_SizeX] = ( @@ -621,28 +621,28 @@ public: } - virtual void GetInts(int a_MinX, int a_MinZ, int a_SizeX, int a_SizeZ, int * a_Values) override + virtual void GetInts(int a_MinX, int a_MinZ, size_t a_SizeX, size_t a_SizeZ, int *a_Values) override { // Generate the underlying values: - int lowerSizeX = a_SizeX + 2; - int lowerSizeZ = a_SizeZ + 2; + size_t lowerSizeX = a_SizeX + 2; + size_t lowerSizeZ = a_SizeZ + 2; ASSERT(lowerSizeX * lowerSizeZ <= m_BufferSize); int lowerData[m_BufferSize]; m_Underlying->GetInts(a_MinX - 1, a_MinZ - 1, lowerSizeX, lowerSizeZ, lowerData); // Average random values: - for (int z = 0; z < a_SizeZ; z++) + for (size_t z = 0; z < a_SizeZ; z++) { - int NoiseZ = a_MinZ + z; - for (int x = 0; x < a_SizeX; x++) + int NoiseZ = a_MinZ + static_cast<int>(z); + for (size_t x = 0; x < a_SizeX; x++) { - int idxLower = x + 1 + lowerSizeX * (z + 1); - if (((super::m_Noise.IntNoise2DInt(a_MinX + x, NoiseZ) / 7) % 100) > m_AvgChancePct) + size_t idxLower = x + 1 + lowerSizeX * (z + 1); + if (((super::m_Noise.IntNoise2DInt(a_MinX + static_cast<int>(x), NoiseZ) / 7) % 100) > m_AvgChancePct) { // Chose a value in between the min and max neighbor: int min = std::min(std::min(lowerData[idxLower - 1], lowerData[idxLower + 1]), std::min(lowerData[idxLower - lowerSizeX], lowerData[idxLower + lowerSizeX])); int max = std::max(std::max(lowerData[idxLower - 1], lowerData[idxLower + 1]), std::max(lowerData[idxLower - lowerSizeX], lowerData[idxLower + lowerSizeX])); - a_Values[x + z * a_SizeX] = min + ((super::m_Noise.IntNoise2DInt(a_MinX + x, NoiseZ + 10) / 7) % (max - min + 1)); + a_Values[x + z * a_SizeX] = min + ((super::m_Noise.IntNoise2DInt(a_MinX + static_cast<int>(x), NoiseZ + 10) / 7) % (max - min + 1)); } else { @@ -675,7 +675,7 @@ public: } - virtual void GetInts(int a_MinX, int a_MinZ, int a_SizeX, int a_SizeZ, int * a_Values) override + virtual void GetInts(int a_MinX, int a_MinZ, size_t a_SizeX, size_t a_SizeZ, int *a_Values) override { // Map for biome -> its beach: static const int ToBeach[] = @@ -723,16 +723,16 @@ public: }; // Generate the underlying values: - int lowerSizeX = a_SizeX + 2; - int lowerSizeZ = a_SizeZ + 2; + size_t lowerSizeX = a_SizeX + 2; + size_t lowerSizeZ = a_SizeZ + 2; ASSERT(lowerSizeX * lowerSizeZ <= m_BufferSize); int lowerValues[m_BufferSize]; m_Underlying->GetInts(a_MinX - 1, a_MinZ - 1, lowerSizeX, lowerSizeZ, lowerValues); // Add beaches between ocean and biomes: - for (int z = 0; z < a_SizeZ; z++) + for (size_t z = 0; z < a_SizeZ; z++) { - for (int x = 0; x < a_SizeX; x++) + for (size_t x = 0; x < a_SizeX; x++) { int val = lowerValues[x + 1 + (z + 1) * lowerSizeX]; int above = lowerValues[x + 1 + z * lowerSizeX]; @@ -779,16 +779,16 @@ public: } - virtual void GetInts(int a_MinX, int a_MinZ, int a_SizeX, int a_SizeZ, int * a_Values) override + virtual void GetInts(int a_MinX, int a_MinZ, size_t a_SizeX, size_t a_SizeZ, int *a_Values) override { m_Underlying->GetInts(a_MinX, a_MinZ, a_SizeX, a_SizeZ, a_Values); - for (int z = 0; z < a_SizeZ; z++) + for (size_t z = 0; z < a_SizeZ; z++) { - for (int x = 0; x < a_SizeX; x++) + for (size_t x = 0; x < a_SizeX; x++) { if (a_Values[x + z * a_SizeX] == bgOcean) { - int rnd = super::m_Noise.IntNoise2DInt(a_MinX + x, a_MinZ + z) / 7; + int rnd = super::m_Noise.IntNoise2DInt(a_MinX + static_cast<int>(x), a_MinZ + static_cast<int>(z)) / 7; if (rnd % 1000 < m_Chance) { a_Values[x + z * a_SizeX] = (rnd / 1003) % bgLandOceanMax; @@ -822,19 +822,19 @@ public: } - virtual void GetInts(int a_MinX, int a_MinZ, int a_SizeX, int a_SizeZ, int * a_Values) + virtual void GetInts(int a_MinX, int a_MinZ, size_t a_SizeX, size_t a_SizeZ, int *a_Values) { // Generate the underlying biome groups: - int lowerSizeX = a_SizeX + 2; - int lowerSizeZ = a_SizeZ + 2; + size_t lowerSizeX = a_SizeX + 2; + size_t lowerSizeZ = a_SizeZ + 2; ASSERT(lowerSizeX * lowerSizeZ <= m_BufferSize); int lowerValues[m_BufferSize]; m_Underlying->GetInts(a_MinX, a_MinZ, lowerSizeX, lowerSizeZ, lowerValues); // Change the biomes on incompatible edges into an edge biome: - for (int z = 0; z < a_SizeZ; z++) + for (size_t z = 0; z < a_SizeZ; z++) { - for (int x = 0; x < a_SizeX; x++) + for (size_t x = 0; x < a_SizeX; x++) { int val = lowerValues[x + 1 + (z + 1) * lowerSizeX]; int Above = lowerValues[x + 1 + z * lowerSizeX]; @@ -920,7 +920,7 @@ public: } - virtual void GetInts(int a_MinX, int a_MinZ, int a_SizeX, int a_SizeZ, int * a_Values) override + virtual void GetInts(int a_MinX, int a_MinZ, size_t a_SizeX, size_t a_SizeZ, int *a_Values) override { // Define the per-biome-group biomes: static const int oceanBiomes[] = @@ -998,16 +998,16 @@ public: // Overwrite each biome group with a random biome from that group: // Take care of the bgfRare flag - for (int z = 0; z < a_SizeZ; z++) + for (size_t z = 0; z < a_SizeZ; z++) { - int IdxZ = z * a_SizeX; - for (int x = 0; x < a_SizeX; x++) + size_t IdxZ = z * a_SizeX; + for (size_t x = 0; x < a_SizeX; x++) { int val = a_Values[x + IdxZ]; const cBiomesInGroups & Biomes = (val > bgfRare) ? rareBiomesInGroups[(val & (bgfRare - 1)) % ARRAYCOUNT(rareBiomesInGroups)] : - biomesInGroups[val % ARRAYCOUNT(biomesInGroups)]; - int rnd = (super::m_Noise.IntNoise2DInt(x + a_MinX, z + a_MinZ) / 7); + biomesInGroups[static_cast<size_t>(val) % ARRAYCOUNT(biomesInGroups)]; + int rnd = (super::m_Noise.IntNoise2DInt(static_cast<int>(x) + a_MinX, static_cast<int>(z) + a_MinZ) / 7); a_Values[x + IdxZ] = Biomes.Biomes[rnd % Biomes.Count]; } } @@ -1050,21 +1050,21 @@ public: } - virtual void GetInts(int a_MinX, int a_MinZ, int a_SizeX, int a_SizeZ, int * a_Values) override + virtual void GetInts(int a_MinX, int a_MinZ, size_t a_SizeX, size_t a_SizeZ, int *a_Values) override { // Generate the underlying values: m_Underlying->GetInts(a_MinX, a_MinZ, a_SizeX, a_SizeZ, a_Values); // Replace some of the values: - for (int z = 0; z < a_SizeZ; z++) + for (size_t z = 0; z < a_SizeZ; z++) { - int idxZ = z * a_SizeX; - for (int x = 0; x < a_SizeX; x++) + size_t idxZ = z * a_SizeX; + for (size_t x = 0; x < a_SizeX; x++) { - int idx = x + idxZ; + size_t idx = x + idxZ; if (a_Values[idx] == m_From) { - int rnd = super::m_Noise.IntNoise2DInt(x + a_MinX, z + a_MinZ) / 7; + int rnd = super::m_Noise.IntNoise2DInt(static_cast<int>(x) + a_MinX, static_cast<int>(z) + a_MinZ) / 7; if (rnd % 1000 < m_Chance) { a_Values[idx] = m_To; @@ -1109,7 +1109,7 @@ public: } - virtual void GetInts(int a_MinX, int a_MinZ, int a_SizeX, int a_SizeZ, int * a_Values) override + virtual void GetInts(int a_MinX, int a_MinZ, size_t a_SizeX, size_t a_SizeZ, int *a_Values) override { // Generate the underlying data: ASSERT(a_SizeX * a_SizeZ <= m_BufferSize); @@ -1118,12 +1118,12 @@ public: m_Rivers->GetInts(a_MinX, a_MinZ, a_SizeX, a_SizeZ, riverData); // Mix the values: - for (int z = 0; z < a_SizeZ; z++) + for (size_t z = 0; z < a_SizeZ; z++) { - int idxZ = z * a_SizeX; - for (int x = 0; x < a_SizeX; x++) + size_t idxZ = z * a_SizeX; + for (size_t x = 0; x < a_SizeX; x++) { - int idx = x + idxZ; + size_t idx = x + idxZ; if (IsBiomeOcean(a_Values[idx])) { // Oceans are kept without any changes @@ -1136,7 +1136,7 @@ public: } // There's a river, change the output to a river or a frozen river, based on the original biome: - if (IsBiomeVeryCold((EMCSBiome)a_Values[idx])) + if (IsBiomeVeryCold(static_cast<EMCSBiome>(a_Values[idx]))) { a_Values[idx] = biFrozenRiver; } @@ -1173,19 +1173,19 @@ public: } - virtual void GetInts(int a_MinX, int a_MinZ, int a_SizeX, int a_SizeZ, int * a_Values) override + virtual void GetInts(int a_MinX, int a_MinZ, size_t a_SizeX, size_t a_SizeZ, int *a_Values) override { // Generate the underlying data: - int lowerSizeX = a_SizeX + 2; - int lowerSizeZ = a_SizeZ + 2; + size_t lowerSizeX = a_SizeX + 2; + size_t lowerSizeZ = a_SizeZ + 2; ASSERT(lowerSizeX * lowerSizeZ <= m_BufferSize); int lowerValues[m_BufferSize]; m_Underlying->GetInts(a_MinX - 1, a_MinZ - 1, lowerSizeX, lowerSizeZ, lowerValues); // Detect the edges: - for (int z = 0; z < a_SizeZ; z++) + for (size_t z = 0; z < a_SizeZ; z++) { - for (int x = 0; x < a_SizeX; x++) + for (size_t x = 0; x < a_SizeX; x++) { int Above = lowerValues[x + 1 + z * lowerSizeX]; int Below = lowerValues[x + 1 + (z + 2) * lowerSizeX]; @@ -1231,19 +1231,19 @@ public: } - virtual void GetInts(int a_MinX, int a_MinZ, int a_SizeX, int a_SizeZ, int * a_Values) override + virtual void GetInts(int a_MinX, int a_MinZ, size_t a_SizeX, size_t a_SizeZ, int *a_Values) override { // Generate the underlying data: - int lowerSizeX = a_SizeX + 2; - int lowerSizeZ = a_SizeZ + 2; + size_t lowerSizeX = a_SizeX + 2; + size_t lowerSizeZ = a_SizeZ + 2; ASSERT(lowerSizeX * lowerSizeZ <= m_BufferSize); int lowerValues[m_BufferSize]; m_Underlying->GetInts(a_MinX - 1, a_MinZ - 1, lowerSizeX, lowerSizeZ, lowerValues); // Add the mushroom islands: - for (int z = 0; z < a_SizeZ; z++) + for (size_t z = 0; z < a_SizeZ; z++) { - for (int x = 0; x < a_SizeX; x++) + for (size_t x = 0; x < a_SizeX; x++) { int val = lowerValues[x + 1 + (z + 1) * lowerSizeX]; if (!IsBiomeOcean(val)) @@ -1278,7 +1278,7 @@ public: // If at least 3 ocean neighbors and the chance is right, change: if ( (NumOceanNeighbors >= 3) && - ((super::m_Noise.IntNoise2DInt(x + a_MinX, z + a_MinZ) / 7) % 1000 < m_Chance) + ((super::m_Noise.IntNoise2DInt(static_cast<int>(x) + a_MinX, static_cast<int>(z) + a_MinZ) / 7) % 1000 < m_Chance) ) { a_Values[x + z * a_SizeX] = m_ToValue; @@ -1321,17 +1321,17 @@ public: } - virtual void GetInts(int a_MinX, int a_MinZ, int a_SizeX, int a_SizeZ, int * a_Values) override + virtual void GetInts(int a_MinX, int a_MinZ, size_t a_SizeX, size_t a_SizeZ, int *a_Values) override { // Generate the underlying data: m_Underlying->GetInts(a_MinX, a_MinZ, a_SizeX, a_SizeZ, a_Values); // Change random pixels to bgOcean: - for (int z = 0; z < a_SizeZ; z++) + for (size_t z = 0; z < a_SizeZ; z++) { - for (int x = 0; x < a_SizeX; x++) + for (size_t x = 0; x < a_SizeX; x++) { - int rnd = super::m_Noise.IntNoise2DInt(x + a_MinX, z + a_MinZ) / 7; + int rnd = super::m_Noise.IntNoise2DInt(static_cast<int>(x) + a_MinX, static_cast<int>(z) + a_MinZ) / 7; if (rnd % 1000 < m_Chance) { a_Values[x + z * a_SizeX] = m_ToValue; @@ -1370,20 +1370,20 @@ public: } - virtual void GetInts(int a_MinX, int a_MinZ, int a_SizeX, int a_SizeZ, int * a_Values) override + virtual void GetInts(int a_MinX, int a_MinZ, size_t a_SizeX, size_t a_SizeZ, int *a_Values) override { // Generate the underlying data: m_Underlying->GetInts(a_MinX, a_MinZ, a_SizeX, a_SizeZ, a_Values); // Change some of the biome groups into rare biome groups: - for (int z = 0; z < a_SizeZ; z++) + for (size_t z = 0; z < a_SizeZ; z++) { - for (int x = 0; x < a_SizeX; x++) + for (size_t x = 0; x < a_SizeX; x++) { - int rnd = super::m_Noise.IntNoise2DInt(x + a_MinX, z + a_MinZ) / 7; + int rnd = super::m_Noise.IntNoise2DInt(static_cast<int>(x) + a_MinX, static_cast<int>(z) + a_MinZ) / 7; if (rnd % 1000 < m_Chance) { - int idx = x + a_SizeX * z; + size_t idx = x + a_SizeX * z; a_Values[idx] = a_Values[idx] | bgfRare; } } @@ -1418,7 +1418,7 @@ public: } - virtual void GetInts(int a_MinX, int a_MinZ, int a_SizeX, int a_SizeZ, int * a_Values) override + virtual void GetInts(int a_MinX, int a_MinZ, size_t a_SizeX, size_t a_SizeZ, int *a_Values) override { // Generate the base biomes and the alterations: m_BaseBiomes->GetInts(a_MinX, a_MinZ, a_SizeX, a_SizeZ, a_Values); @@ -1426,8 +1426,8 @@ public: m_Alterations->GetInts(a_MinX, a_MinZ, a_SizeX, a_SizeZ, alterations); // Change the biomes into their alternate versions: - int len = a_SizeX * a_SizeZ; - for (int idx = 0; idx < len; ++idx) + size_t len = a_SizeX * a_SizeZ; + for (size_t idx = 0; idx < len; ++idx) { if (alterations[idx] == 0) { @@ -1482,19 +1482,19 @@ public: } - virtual void GetInts(int a_MinX, int a_MinZ, int a_SizeX, int a_SizeZ, int * a_Values) override + virtual void GetInts(int a_MinX, int a_MinZ, size_t a_SizeX, size_t a_SizeZ, int *a_Values) override { // Generate the underlying biomes: - int lowerSizeX = a_SizeX + 2; - int lowerSizeZ = a_SizeZ + 2; + size_t lowerSizeX = a_SizeX + 2; + size_t lowerSizeZ = a_SizeZ + 2; ASSERT(lowerSizeX * lowerSizeZ <= m_BufferSize); int lowerValues[m_BufferSize]; m_Underlying->GetInts(a_MinX - 1, a_MinZ - 1, lowerSizeX, lowerSizeZ, lowerValues); // Convert incompatible edges into neutral biomes: - for (int z = 0; z < a_SizeZ; z++) + for (size_t z = 0; z < a_SizeZ; z++) { - for (int x = 0; x < a_SizeX; x++) + for (size_t x = 0; x < a_SizeX; x++) { int biome = lowerValues[x + 1 + (z + 1) * lowerSizeX]; int above = lowerValues[x + 1 + z * lowerSizeX]; @@ -1642,7 +1642,7 @@ public: } - virtual void GetInts(int a_MinX, int a_MinZ, int a_SizeX, int a_SizeZ, int * a_Values) override + virtual void GetInts(int a_MinX, int a_MinZ, size_t a_SizeX, size_t a_SizeZ, int *a_Values) override { // Generate the underlying biomes and the alterations: m_Underlying->GetInts(a_MinX, a_MinZ, a_SizeX, a_SizeZ, a_Values); @@ -1650,8 +1650,8 @@ public: m_Alteration->GetInts(a_MinX, a_MinZ, a_SizeX, a_SizeZ, alterations); // Wherever alterations are nonzero, change into alternate biome, if available: - int len = a_SizeX * a_SizeZ; - for (int idx = 0; idx < len; ++idx) + size_t len = a_SizeX * a_SizeZ; + for (size_t idx = 0; idx < len; ++idx) { if (alterations[idx] == 0) { diff --git a/src/Generating/RainbowRoadsGen.cpp b/src/Generating/RainbowRoadsGen.cpp index fd4a81692..03400556a 100644 --- a/src/Generating/RainbowRoadsGen.cpp +++ b/src/Generating/RainbowRoadsGen.cpp @@ -76,7 +76,7 @@ protected: { for (cPlacedPieces::iterator itr = m_Pieces.begin(), end = m_Pieces.end(); itr != end; ++itr) { - cPrefab & Prefab = (cPrefab &)((*itr)->GetPiece()); + const cPrefab & Prefab = static_cast<const cPrefab &>((*itr)->GetPiece()); Prefab.Draw(a_Chunk, *itr); } // for itr - m_PlacedPieces[] } diff --git a/src/Generating/Ravines.cpp b/src/Generating/Ravines.cpp index 9f8f69139..8c6316273 100644 --- a/src/Generating/Ravines.cpp +++ b/src/Generating/Ravines.cpp @@ -135,17 +135,17 @@ void cStructGenRavines::cRavine::GenerateBaseDefPoints(int a_BlockX, int a_Block // Get the base angle in which the ravine "axis" goes: float Angle = (float)(((float)((a_Noise.IntNoise3DInt(20 * a_BlockX, 70 * a_BlockZ, 6000) / 9) % 16384)) / 16384.0 * M_PI); - float xc = sin(Angle); - float zc = cos(Angle); + float xc = sinf(Angle); + float zc = cosf(Angle); // Calculate the definition points and radii: int MaxRadius = (int)(sqrt(12.0 + ((a_Noise.IntNoise2DInt(61 * a_BlockX, 97 * a_BlockZ) / 13) % a_Size) / 16)); int Top = 32 + ((a_Noise.IntNoise2DInt(13 * a_BlockX, 17 * a_BlockZ) / 23) % 32); int Bottom = 5 + ((a_Noise.IntNoise2DInt(17 * a_BlockX, 29 * a_BlockZ) / 13) % 32); int Mid = (Top + Bottom) / 2; - int PointX = CenterX - (int)(xc * a_Size / 2); - int PointZ = CenterZ - (int)(zc * a_Size / 2); - m_Points.push_back(cRavDefPoint(PointX, PointZ, 0, (Mid + Top) / 2, (Mid + Bottom) / 2)); + int DefinitionPointX = CenterX - (int)(xc * a_Size / 2); + int DefinitionPointZ = CenterZ - (int)(zc * a_Size / 2); + m_Points.push_back(cRavDefPoint(DefinitionPointX, DefinitionPointZ, 0, (Mid + Top) / 2, (Mid + Bottom) / 2)); for (int i = 1; i < NUM_RAVINE_POINTS - 1; i++) { int LineX = CenterX + (int)(xc * a_Size * (i - NUM_RAVINE_POINTS / 2) / NUM_RAVINE_POINTS); @@ -160,9 +160,9 @@ void cStructGenRavines::cRavine::GenerateBaseDefPoints(int a_BlockX, int a_Block int ThisBottom = Bottom + ((a_Noise.IntNoise3DInt(19 * a_BlockX, 7 * a_BlockZ, i * 31) / 13) % 8) - 4; m_Points.push_back(cRavDefPoint(PointX, PointZ, Radius, ThisTop, ThisBottom)); } // for i - m_Points[] - PointX = CenterX + (int)(xc * a_Size / 2); - PointZ = CenterZ + (int)(zc * a_Size / 2); - m_Points.push_back(cRavDefPoint(PointX, PointZ, 0, Mid, Mid)); + DefinitionPointX = CenterX + (int)(xc * a_Size / 2); + DefinitionPointZ = CenterZ + (int)(zc * a_Size / 2); + m_Points.push_back(cRavDefPoint(DefinitionPointX, DefinitionPointZ, 0, Mid, Mid)); } diff --git a/src/Generating/RoughRavines.cpp b/src/Generating/RoughRavines.cpp index 2ee3704b3..c0397ee26 100644 --- a/src/Generating/RoughRavines.cpp +++ b/src/Generating/RoughRavines.cpp @@ -21,7 +21,7 @@ class cRoughRavine : public: cRoughRavine( - int a_Seed, int a_Size, + int a_Seed, size_t 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, @@ -33,14 +33,14 @@ public: 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 + size_t Max = 2 * a_Size; + size_t 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; + float OfsX = sinf(Angle) * Len; + float OfsZ = cosf(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); @@ -90,7 +90,7 @@ protected: /** 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) + void SubdivideLine(size_t a_Idx1, size_t a_Idx2) { // Calculate the midpoint: const sRavineDefPoint & p1 = m_DefPoints[a_Idx1]; @@ -114,7 +114,7 @@ protected: MidX -= dz * m_Roughness; MidZ += dx * m_Roughness; } - int MidIdx = (a_Idx1 + a_Idx2) / 2; + size_t MidIdx = (a_Idx1 + a_Idx2) / 2; m_DefPoints[MidIdx].Set(MidX, MidZ, MidR, MidT, MidB); // Recurse the two halves, if they are worth recursing: @@ -275,7 +275,7 @@ cRoughRavines::cRoughRavines( 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 + size_t Size = static_cast<size_t>(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); diff --git a/src/Generating/StructGen.cpp b/src/Generating/StructGen.cpp index 7572cdcbf..fd911e7dc 100644 --- a/src/Generating/StructGen.cpp +++ b/src/Generating/StructGen.cpp @@ -72,7 +72,7 @@ void cStructGenTrees::GenFinish(cChunkDesc & a_ChunkDesc) { for (int z = 0; z < cChunkDef::Width; z++) { - for (int y = cChunkDef::Height - 1; y >= 0; y--) + for (HEIGHTTYPE y = cChunkDef::Height - 1; y >= 0; y--) { if (a_ChunkDesc.GetBlockType(x, y, z) != E_BLOCK_AIR) { @@ -304,14 +304,14 @@ void cStructGenOreNests::GenerateOre(int a_ChunkX, int a_ChunkZ, BLOCKTYPE a_Ore for (int i = 0; i < a_NumNests; i++) { - int rnd = m_Noise.IntNoise3DInt(a_ChunkX + i, a_Seq, a_ChunkZ + 64 * i) / 8; - int BaseX = rnd % cChunkDef::Width; - rnd /= cChunkDef::Width; - int BaseZ = rnd % cChunkDef::Width; - rnd /= cChunkDef::Width; - int BaseY = rnd % a_MaxHeight; - rnd /= a_MaxHeight; - int NestSize = a_NestSize + (rnd % (a_NestSize / 4)); // The actual nest size may be up to 1 / 4 larger + int Nestrnd = m_Noise.IntNoise3DInt(a_ChunkX + i, a_Seq, a_ChunkZ + 64 * i) / 8; + int BaseX = Nestrnd % cChunkDef::Width; + Nestrnd /= cChunkDef::Width; + int BaseZ = Nestrnd % cChunkDef::Width; + Nestrnd /= cChunkDef::Width; + int BaseY = Nestrnd % a_MaxHeight; + Nestrnd /= a_MaxHeight; + int NestSize = a_NestSize + (Nestrnd % (a_NestSize / 4)); // The actual nest size may be up to 1 / 4 larger int Num = 0; while (Num < NestSize) { @@ -436,14 +436,14 @@ void cStructGenLakes::CreateLakeImage(int a_ChunkX, int a_ChunkZ, int a_MaxLakeH BLOCKTYPE * BlockTypes = a_Lake.GetBlockTypes(); for (int i = 0; i < NumBubbles; i++) { - int Rnd = m_Noise.IntNoise3DInt(a_ChunkX, i, a_ChunkZ) / 13; - const int BubbleR = 2 + (Rnd & 0x03); // 2 .. 5 + int BubbleRnd = m_Noise.IntNoise3DInt(a_ChunkX, i, a_ChunkZ) / 13; + const int BubbleR = 2 + (BubbleRnd & 0x03); // 2 .. 5 const int Range = 16 - 2 * BubbleR; - const int BubbleX = BubbleR + (Rnd % Range); + const int BubbleX = BubbleR + (BubbleRnd % Range); Rnd >>= 4; - const int BubbleY = 4 + (Rnd & 0x01); // 4 .. 5 + const int BubbleY = 4 + (BubbleRnd & 0x01); // 4 .. 5 Rnd >>= 1; - const int BubbleZ = BubbleR + (Rnd % Range); + const int BubbleZ = BubbleR + (BubbleRnd % Range); const int HalfR = BubbleR / 2; // 1 .. 2 const int RSquared = BubbleR * BubbleR; for (int y = -HalfR; y <= HalfR; y++) diff --git a/src/Generating/TestRailsGen.cpp b/src/Generating/TestRailsGen.cpp index 8256b55a0..72317eb67 100644 --- a/src/Generating/TestRailsGen.cpp +++ b/src/Generating/TestRailsGen.cpp @@ -76,7 +76,7 @@ protected: { for (cPlacedPieces::iterator itr = m_Pieces.begin(), end = m_Pieces.end(); itr != end; ++itr) { - cPrefab & Prefab = (cPrefab &)((*itr)->GetPiece()); + const cPrefab & Prefab = static_cast<const cPrefab &>((*itr)->GetPiece()); Prefab.Draw(a_Chunk, *itr); } // for itr - m_PlacedPieces[] } diff --git a/src/Generating/Trees.cpp b/src/Generating/Trees.cpp index 72fe5f819..5da8fc44a 100644 --- a/src/Generating/Trees.cpp +++ b/src/Generating/Trees.cpp @@ -6,6 +6,7 @@ #include "Globals.h" #include "Trees.h" #include "../BlockID.h" +#include "../World.h" @@ -130,7 +131,7 @@ inline void PushSomeColumns(int a_BlockX, int a_Height, int a_BlockZ, int a_Colu { int x = a_BlockX + a_Coords[i].x; int z = a_BlockZ + a_Coords[i].z; - if (a_Noise.IntNoise3DInt(x + 64 * a_Seq, a_Height + (int)i, z + 64 * a_Seq) <= a_Chance) + if (a_Noise.IntNoise3DInt(x + 64 * a_Seq, a_Height + static_cast<int>(i), z + 64 * a_Seq) <= a_Chance) { for (int j = 0; j < a_ColumnHeight; j++) { @@ -200,7 +201,8 @@ void GetTreeImageByBiome(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_No } else { - GetJungleTreeImage(a_BlockX, a_BlockY, a_BlockZ, a_Noise, a_Seq, a_LogBlocks, a_OtherBlocks); + bool IsLarge = a_Noise.IntNoise3DInt(a_BlockX + 32 * a_Seq, a_BlockY + 32 * a_Seq, a_BlockZ) < 0x60000000; + GetJungleTreeImage(a_BlockX, a_BlockY, a_BlockZ, a_Noise, a_Seq, a_LogBlocks, a_OtherBlocks, IsLarge); } return; } @@ -321,12 +323,12 @@ void GetSmallAppleTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a int Random = a_Noise.IntNoise3DInt(a_BlockX + 64 * a_Seq, a_BlockY, a_BlockZ) >> 3; - int Heights[] = {1, 2, 2, 3} ; - int Height = 1 + Heights[Random & 3]; + HEIGHTTYPE Heights[] = {1, 2, 2, 3} ; + HEIGHTTYPE Height = 1 + Heights[Random & 3]; Random >>= 2; // Pre-alloc so that we don't realloc too often later: - a_LogBlocks.reserve(Height + 5); + a_LogBlocks.reserve(static_cast<size_t>(Height + 5)); a_OtherBlocks.reserve(ARRAYCOUNT(BigO2) * 2 + ARRAYCOUNT(BigO1) + ARRAYCOUNT(Corners) * 3 + 3 + 5); // Trunk: @@ -396,8 +398,8 @@ void GetLargeAppleTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a for (int i = 4; i < Height; i++) { // Get a direction for the trunk to go to. - Vector3d BranchStartDirection = AvailableDirections[a_Noise.IntNoise3DInt(a_BlockX, a_BlockY + i, a_BlockZ) % ARRAYCOUNT(AvailableDirections)]; - Vector3d BranchDirection = AvailableDirections[a_Noise.IntNoise3DInt(a_BlockX, a_BlockY / i, a_BlockZ) % ARRAYCOUNT(AvailableDirections)] / 3; + Vector3d BranchStartDirection = AvailableDirections[static_cast<size_t>(a_Noise.IntNoise3DInt(a_BlockX, a_BlockY + i, a_BlockZ)) % ARRAYCOUNT(AvailableDirections)]; + Vector3d BranchDirection = AvailableDirections[static_cast<size_t>(a_Noise.IntNoise3DInt(a_BlockX, a_BlockY / i, a_BlockZ)) % ARRAYCOUNT(AvailableDirections)] / 3; int BranchLength = 2 + a_Noise.IntNoise3DInt(a_BlockX * a_Seq, a_BlockY * a_Seq, a_BlockZ * a_Seq) % 3; GetLargeAppleTreeBranch(a_BlockX, a_BlockY + i, a_BlockZ, BranchLength, BranchStartDirection, BranchDirection, a_BlockY + Height, a_Noise, a_LogBlocks); @@ -476,10 +478,10 @@ NIBBLETYPE GetLogMetaFromDirection(NIBBLETYPE a_BlockMeta, Vector3d a_Direction) void GetBirchTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_Noise, int a_Seq, sSetBlockVector & a_LogBlocks, sSetBlockVector & a_OtherBlocks) { - int Height = 5 + (a_Noise.IntNoise3DInt(a_BlockX + 64 * a_Seq, a_BlockY, a_BlockZ) % 3); + HEIGHTTYPE Height = 5 + (a_Noise.IntNoise3DInt(a_BlockX + 64 * a_Seq, a_BlockY, a_BlockZ) % 3); // Prealloc, so that we don't realloc too often later: - a_LogBlocks.reserve(Height); + a_LogBlocks.reserve(static_cast<size_t>(Height)); a_OtherBlocks.reserve(80); // The entire trunk, out of logs: @@ -650,10 +652,10 @@ void GetDarkoakTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_No void GetTallBirchTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_Noise, int a_Seq, sSetBlockVector & a_LogBlocks, sSetBlockVector & a_OtherBlocks) { - int Height = 9 + (a_Noise.IntNoise3DInt(a_BlockX + 64 * a_Seq, a_BlockY, a_BlockZ) % 3); + HEIGHTTYPE Height = 9 + (a_Noise.IntNoise3DInt(a_BlockX + 64 * a_Seq, a_BlockY, a_BlockZ) % 3); // Prealloc, so that we don't realloc too often later: - a_LogBlocks.reserve(Height); + a_LogBlocks.reserve(static_cast<size_t>(Height)); a_OtherBlocks.reserve(80); // The entire trunk, out of logs: @@ -713,12 +715,12 @@ void GetSpruceTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_Noi // (each of the mod8 remainders has a very different chance of occurrence) - that's why we divide by 8 int MyRandom = a_Noise.IntNoise3DInt(a_BlockX + 32 * a_Seq, a_BlockY + 32 * a_Seq, a_BlockZ) / 8; - static const int sHeights[] = {1, 2, 2, 3}; - int Height = sHeights[MyRandom & 3]; + static const HEIGHTTYPE sHeights[] = {1, 2, 2, 3}; + HEIGHTTYPE Height = sHeights[MyRandom & 3]; MyRandom >>= 2; // Prealloc, so that we don't realloc too often later: - a_LogBlocks.reserve(Height); + a_LogBlocks.reserve(static_cast<size_t>(Height)); a_OtherBlocks.reserve(180); // Clear trunk blocks: @@ -816,8 +818,8 @@ void GetPineTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_Noise } // Pre-allocate the vector: - a_LogBlocks.reserve(TrunkHeight); - a_OtherBlocks.reserve(NumLeavesLayers * 25); + a_LogBlocks.reserve(static_cast<size_t>(TrunkHeight)); + a_OtherBlocks.reserve(static_cast<size_t>(NumLeavesLayers * 25)); // The entire trunk, out of logs: for (int i = TrunkHeight; i >= 0; --i) @@ -843,7 +845,7 @@ void GetPineTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_Noise { break; } - ASSERT((size_t)LayerSize < ARRAYCOUNT(BigOs)); + ASSERT(static_cast<size_t>(LayerSize) < ARRAYCOUNT(BigOs)); PushCoordBlocks(a_BlockX, h, a_BlockZ, a_OtherBlocks, BigOs[LayerSize].Coords, BigOs[LayerSize].Count, E_BLOCK_LEAVES, E_META_LEAVES_CONIFER); h--; } @@ -866,8 +868,8 @@ void GetSwampTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_Nois int Height = 3 + (a_Noise.IntNoise3DInt(a_BlockX + 32 * a_Seq, a_BlockY, a_BlockZ + 32 * a_Seq) / 8) % 3; - a_LogBlocks.reserve(Height); - a_OtherBlocks.reserve(2 * ARRAYCOUNT(BigO2) + 2 * ARRAYCOUNT(BigO3) + Height * ARRAYCOUNT(Vines) + 20); + a_LogBlocks.reserve(static_cast<size_t>(Height)); + a_OtherBlocks.reserve(2 * ARRAYCOUNT(BigO2) + 2 * ARRAYCOUNT(BigO3) + static_cast<size_t>(Height) * ARRAYCOUNT(Vines) + 20); for (int i = 0; i < Height; i++) { @@ -920,9 +922,9 @@ void GetAppleBushImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_Nois -void GetJungleTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_Noise, int a_Seq, sSetBlockVector & a_LogBlocks, sSetBlockVector & a_OtherBlocks) +void GetJungleTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_Noise, int a_Seq, sSetBlockVector & a_LogBlocks, sSetBlockVector & a_OtherBlocks, bool a_Large) { - if (a_Noise.IntNoise3DInt(a_BlockX + 32 * a_Seq, a_BlockY + 32 * a_Seq, a_BlockZ) < 0x60000000) + if (!a_Large) { GetSmallJungleTreeImage(a_BlockX, a_BlockY, a_BlockZ, a_Noise, a_Seq, a_LogBlocks, a_OtherBlocks); } @@ -952,8 +954,8 @@ void GetLargeJungleTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & int Height = 24 + (a_Noise.IntNoise3DInt(a_BlockX + 32 * a_Seq, a_BlockY, a_BlockZ + 32 * a_Seq) / 11) % 24; - a_LogBlocks.reserve(Height * 4); - a_OtherBlocks.reserve(2 * ARRAYCOUNT(BigO4) + ARRAYCOUNT(BigO3) + Height * ARRAYCOUNT(Vines) + 50); + a_LogBlocks.reserve(static_cast<size_t>(Height) * 4); + a_OtherBlocks.reserve(2 * ARRAYCOUNT(BigO4) + ARRAYCOUNT(BigO3) + static_cast<size_t>(Height) * ARRAYCOUNT(Vines) + 50); for (int i = 0; i < Height; i++) { @@ -999,12 +1001,12 @@ void GetSmallJungleTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & int Height = 7 + (a_Noise.IntNoise3DInt(a_BlockX + 5 * a_Seq, a_BlockY, a_BlockZ + 5 * a_Seq) / 5) % 3; - a_LogBlocks.reserve(Height); + a_LogBlocks.reserve(static_cast<size_t>(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 + static_cast<size_t>(Height) * ARRAYCOUNT(Vines) + // Vines 50 // some safety ); @@ -1041,3 +1043,89 @@ void GetSmallJungleTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & + +bool GetLargeTreeAdjustment(cWorld & a_World, int & a_X, int & a_Y, int & a_Z, NIBBLETYPE a_Meta) +{ + bool IsLarge = true; + a_Meta = a_Meta & 0x07; + + // Check to see if we are the northwest corner + for (int x = 0; x < 2; ++x) + { + for (int z = 0; z < 2; ++z) + { + NIBBLETYPE meta; + BLOCKTYPE type; + a_World.GetBlockTypeMeta(a_X + x, a_Y, a_Z + z, type, meta); + IsLarge = IsLarge && (type == E_BLOCK_SAPLING) && ((a_Meta & meta) == a_Meta); + } + } + + if (IsLarge) + { + return true; + } + + IsLarge = true; + // Check to see if we are the southwest corner + for (int x = 0; x < 2; ++x) + { + for (int z = 0; z > -2; --z) + { + NIBBLETYPE meta; + BLOCKTYPE type; + a_World.GetBlockTypeMeta(a_X + x, a_Y, a_Z + z, type, meta); + IsLarge = IsLarge && (type == E_BLOCK_SAPLING) && ((a_Meta & meta) == a_Meta); + } + } + + if (IsLarge) + { + --a_Z; + return true; + } + + IsLarge = true; + // Check to see if we are the southeast corner + for (int x = 0; x > -2; --x) + { + for (int z = 0; z > -2; --z) + { + NIBBLETYPE meta; + BLOCKTYPE type; + a_World.GetBlockTypeMeta(a_X + x, a_Y, a_Z + z, type, meta); + IsLarge = IsLarge && (type == E_BLOCK_SAPLING) && ((a_Meta & meta) == a_Meta); + } + } + + if (IsLarge) + { + --a_Z; + --a_X; + return true; + } + + IsLarge = true; + // Check to see if we are the northeast corner + for (int x = 0; x > -2; --x) + { + for (int z = 0; z < 2; ++z) + { + NIBBLETYPE meta; + BLOCKTYPE type; + a_World.GetBlockTypeMeta(a_X + x, a_Y, a_Z + z, type, meta); + IsLarge = IsLarge && (type == E_BLOCK_SAPLING) && ((a_Meta & meta) == a_Meta); + } + } + + if (IsLarge) + { + --a_X; + } + + return IsLarge; +} + + + + diff --git a/src/Generating/Trees.h b/src/Generating/Trees.h index a2c8274f5..092d71182 100644 --- a/src/Generating/Trees.h +++ b/src/Generating/Trees.h @@ -20,6 +20,8 @@ logs can overwrite others(leaves), but others shouldn't overwrite logs. This is #include "../ChunkDef.h" #include "../Noise/Noise.h" +class cWorld; + @@ -96,7 +98,7 @@ void GetSwampTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_Nois void GetAppleBushImage(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 jungle tree -void GetJungleTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_Noise, int a_Seq, sSetBlockVector & a_LogBlocks, sSetBlockVector & a_OtherBlocks); +void GetJungleTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_Noise, int a_Seq, sSetBlockVector & a_LogBlocks, sSetBlockVector & a_OtherBlocks, bool a_Large); /// Generates an image of a large jungle tree (2x2 trunk) void GetLargeJungleTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_Noise, int a_Seq, sSetBlockVector & a_LogBlocks, sSetBlockVector & a_OtherBlocks); @@ -104,7 +106,7 @@ void GetLargeJungleTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & /// Generates an image of a small jungle tree (1x1 trunk) void GetSmallJungleTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_Noise, int a_Seq, sSetBlockVector & a_LogBlocks, sSetBlockVector & a_OtherBlocks); - +bool GetLargeTreeAdjustment(cWorld & a_World, int & a_X, int & a_Y, int & a_Z, NIBBLETYPE a_Meta); diff --git a/src/Generating/TwoHeights.cpp b/src/Generating/TwoHeights.cpp index e75c301de..06c474458 100644 --- a/src/Generating/TwoHeights.cpp +++ b/src/Generating/TwoHeights.cpp @@ -69,7 +69,7 @@ public: } - virtual void InitializeShapeGen(cIniFile & a_IniFile) + virtual void InitializeShapeGen(cIniFile & a_IniFile) override { m_FrequencyX = static_cast<NOISE_DATATYPE>(a_IniFile.GetValueSetF("Generator", "TwoHeightsFrequencyX", 40)); m_FrequencyY = static_cast<NOISE_DATATYPE>(a_IniFile.GetValueSetF("Generator", "TwoHeightsFrequencyY", 40)); diff --git a/src/Generating/UnderwaterBaseGen.cpp b/src/Generating/UnderwaterBaseGen.cpp index dbc4aef1b..c5066ca1b 100644 --- a/src/Generating/UnderwaterBaseGen.cpp +++ b/src/Generating/UnderwaterBaseGen.cpp @@ -76,7 +76,7 @@ protected: { for (cPlacedPieces::iterator itr = m_Pieces.begin(), end = m_Pieces.end(); itr != end; ++itr) { - cPrefab & Prefab = (cPrefab &)((*itr)->GetPiece()); + const cPrefab & Prefab = static_cast<const cPrefab &>((*itr)->GetPiece()); Prefab.Draw(a_Chunk, *itr); } // for itr - m_PlacedPieces[] } diff --git a/src/Generating/VillageGen.cpp b/src/Generating/VillageGen.cpp index a3f8caa46..2475565c0 100644 --- a/src/Generating/VillageGen.cpp +++ b/src/Generating/VillageGen.cpp @@ -5,11 +5,6 @@ #include "Globals.h" #include "VillageGen.h" -#include "Prefabs/AlchemistVillagePrefabs.h" -#include "Prefabs/JapaneseVillagePrefabs.h" -#include "Prefabs/PlainsVillagePrefabs.h" -#include "Prefabs/SandVillagePrefabs.h" -#include "Prefabs/SandFlatRoofVillagePrefabs.h" #include "PieceGenerator.h" @@ -52,6 +47,16 @@ public: ) : super(a_PieceDefs, a_NumPieceDefs, a_StartingPieceDefs, a_NumStartingPieceDefs) { + AddRoadPieces(); + } + + cVillagePiecePool(void) + { + AddRoadPieces(); + } + + void AddRoadPieces(void) + { // Add the road pieces: for (int len = 27; len < 60; len += 12) { @@ -93,7 +98,7 @@ public: return 0; } - return ((const cPrefab &)a_NewPiece).GetPieceWeight(a_PlacedPiece, a_ExistingConnector); + return static_cast<const cPrefab &>(a_NewPiece).GetPieceWeight(a_PlacedPiece, a_ExistingConnector); } }; @@ -115,10 +120,8 @@ public: int a_MaxRoadDepth, int a_MaxSize, int a_Density, - cPiecePool & a_Prefabs, - cTerrainHeightGenPtr a_HeightGen, - BLOCKTYPE a_RoadBlock, - BLOCKTYPE a_WaterRoadBlock + cVillagePiecePool & a_Prefabs, + cTerrainHeightGenPtr a_HeightGen ) : super(a_GridX, a_GridZ, a_OriginX, a_OriginZ), m_Seed(a_Seed), @@ -127,9 +130,7 @@ public: m_Density(a_Density), m_Borders(a_OriginX - a_MaxSize, 0, a_OriginZ - a_MaxSize, a_OriginX + a_MaxSize, cChunkDef::Height - 1, a_OriginZ + a_MaxSize), m_Prefabs(a_Prefabs), - m_HeightGen(a_HeightGen), - m_RoadBlock(a_RoadBlock), - m_WaterRoadBlock(a_WaterRoadBlock) + m_HeightGen(a_HeightGen) { // Generate the pieces for this village; don't care about the Y coord: cBFSPieceGenerator pg(*this, a_Seed); @@ -141,7 +142,7 @@ public: // If the central piece should be moved to ground, move it, and // check all of its dependents and move those that are strictly connector-driven based on its new Y coord: - if (((cPrefab &)m_Pieces[0]->GetPiece()).ShouldMoveToGround()) + if (static_cast<const cPrefab &>(m_Pieces[0]->GetPiece()).ShouldMoveToGround()) { int OrigPosY = m_Pieces[0]->GetCoords().y; PlacePieceOnGround(*m_Pieces[0]); @@ -172,7 +173,7 @@ protected: cCuboid m_Borders; /** Prefabs to use for buildings */ - cPiecePool & m_Prefabs; + cVillagePiecePool & m_Prefabs; /** The underlying height generator, used for placing the structures on top of the terrain. */ cTerrainHeightGenPtr m_HeightGen; @@ -180,12 +181,6 @@ protected: /** The village pieces, placed by the generator. */ cPlacedPieces m_Pieces; - /** The block to use for the roads. */ - BLOCKTYPE m_RoadBlock; - - /** The block used for the roads if the road is on water. */ - BLOCKTYPE m_WaterRoadBlock; - // cGridStructGen::cStructure overrides: virtual void DrawIntoChunk(cChunkDesc & a_Chunk) override @@ -197,7 +192,7 @@ protected: m_HeightGen->GenHeightMap(a_Chunk.GetChunkX(), a_Chunk.GetChunkZ(), HeightMap); for (cPlacedPieces::iterator itr = m_Pieces.begin(), end = m_Pieces.end(); itr != end; ++itr) { - cPrefab & Prefab = (cPrefab &)((*itr)->GetPiece()); + const cPrefab & Prefab = static_cast<const cPrefab &>((*itr)->GetPiece()); if ((*itr)->GetPiece().GetSize().y == 1) { // It's a road, special handling (change top terrain blocks to m_RoadBlock) @@ -241,17 +236,21 @@ protected: int MaxX = std::min(RoadCoords.p2.x - a_Chunk.GetChunkX() * cChunkDef::Width, cChunkDef::Width - 1); int MinZ = std::max(RoadCoords.p1.z - a_Chunk.GetChunkZ() * cChunkDef::Width, 0); int MaxZ = std::min(RoadCoords.p2.z - a_Chunk.GetChunkZ() * cChunkDef::Width, cChunkDef::Width - 1); + auto WaterRoadBlockType = m_Prefabs.GetVillageWaterRoadBlockType(); + auto WaterRoadBlockMeta = m_Prefabs.GetVillageWaterRoadBlockMeta(); + auto RoadBlockType = m_Prefabs.GetVillageRoadBlockType(); + auto RoadBlockMeta = m_Prefabs.GetVillageRoadBlockMeta(); for (int z = MinZ; z <= MaxZ; z++) { for (int x = MinX; x <= MaxX; x++) { if (IsBlockWater(a_Chunk.GetBlockType(x, cChunkDef::GetHeight(a_HeightMap, x, z), z))) { - a_Chunk.SetBlockType(x, cChunkDef::GetHeight(a_HeightMap, x, z), z, m_WaterRoadBlock); + a_Chunk.SetBlockTypeMeta(x, cChunkDef::GetHeight(a_HeightMap, x, z), z, WaterRoadBlockType, WaterRoadBlockMeta); } else { - a_Chunk.SetBlockType(x, cChunkDef::GetHeight(a_HeightMap, x, z), z, m_RoadBlock); + a_Chunk.SetBlockTypeMeta(x, cChunkDef::GetHeight(a_HeightMap, x, z), z, RoadBlockType, RoadBlockMeta); } } } @@ -259,13 +258,13 @@ protected: // cPiecePool overrides: - virtual cPieces GetPiecesWithConnector(int a_ConnectorType) + virtual cPieces GetPiecesWithConnector(int a_ConnectorType) override { return m_Prefabs.GetPiecesWithConnector(a_ConnectorType); } - virtual cPieces GetStartingPieces(void) + virtual cPieces GetStartingPieces(void) override { return m_Prefabs.GetStartingPieces(); } @@ -319,7 +318,7 @@ protected: { if ( (a_PlacedPieces[i]->GetParent() == Pivot) && // It is a direct dependant of the pivot - !((const cPrefab &)a_PlacedPieces[i]->GetPiece()).ShouldMoveToGround() // It attaches strictly by connectors + !(static_cast<const cPrefab &>(a_PlacedPieces[i]->GetPiece())).ShouldMoveToGround() // It attaches strictly by connectors ) { a_PlacedPieces[i]->MoveToGroundBy(a_HeightDifference); @@ -336,30 +335,18 @@ protected: //////////////////////////////////////////////////////////////////////////////// // cVillageGen: -static cVillagePiecePool g_SandVillage(g_SandVillagePrefabs, g_SandVillagePrefabsCount, g_SandVillageStartingPrefabs, g_SandVillageStartingPrefabsCount); -static cVillagePiecePool g_SandFlatRoofVillage(g_SandFlatRoofVillagePrefabs, g_SandFlatRoofVillagePrefabsCount, g_SandFlatRoofVillageStartingPrefabs, g_SandFlatRoofVillageStartingPrefabsCount); -static cVillagePiecePool g_AlchemistVillage(g_AlchemistVillagePrefabs, g_AlchemistVillagePrefabsCount, g_AlchemistVillageStartingPrefabs, g_AlchemistVillageStartingPrefabsCount); -static cVillagePiecePool g_PlainsVillage(g_PlainsVillagePrefabs, g_PlainsVillagePrefabsCount, g_PlainsVillageStartingPrefabs, g_PlainsVillageStartingPrefabsCount); -static cVillagePiecePool g_JapaneseVillage(g_JapaneseVillagePrefabs, g_JapaneseVillagePrefabsCount, g_JapaneseVillageStartingPrefabs, g_JapaneseVillageStartingPrefabsCount); - -static cVillagePiecePool * g_DesertVillagePools[] = -{ - &g_SandVillage, - &g_SandFlatRoofVillage, - &g_AlchemistVillage, -} ; - -static cVillagePiecePool * g_PlainsVillagePools[] = -{ - &g_PlainsVillage, - &g_JapaneseVillage, -} ; - - - - - -cVillageGen::cVillageGen(int a_Seed, int a_GridSize, int a_MaxOffset, int a_MaxDepth, int a_MaxSize, int a_MinDensity, int a_MaxDensity, cBiomeGenPtr a_BiomeGen, cTerrainHeightGenPtr a_HeightGen) : +cVillageGen::cVillageGen( + int a_Seed, + int a_GridSize, + int a_MaxOffset, + int a_MaxDepth, + int a_MaxSize, + int a_MinDensity, + int a_MaxDensity, + cBiomeGenPtr a_BiomeGen, + cTerrainHeightGenPtr a_HeightGen, + const AStringVector & a_PrefabsToLoad +) : 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), @@ -369,6 +356,21 @@ cVillageGen::cVillageGen(int a_Seed, int a_GridSize, int a_MaxOffset, int a_MaxD m_BiomeGen(a_BiomeGen), m_HeightGen(a_HeightGen) { + for (const auto & toLoad: a_PrefabsToLoad) + { + auto prefabs = std::make_shared<cVillagePiecePool>(); + auto fileName = Printf("Prefabs%sVillages%s%s.cubeset", cFile::GetPathSeparator().c_str(), cFile::GetPathSeparator().c_str(), toLoad.c_str()); + if (prefabs->LoadFromFile(fileName, true)) + { + if (NoCaseCompare(prefabs->GetIntendedUse(), "village") != 0) + { + LOGWARNING("Village generator: File %s is intended for use in \"%s\", rather than villages. Loading the file, but the generator may behave unexpectedly.", + fileName.c_str(), prefabs->GetIntendedUse().c_str() + ); + } + m_Pools.push_back(std::move(prefabs)); + } + } } @@ -383,60 +385,48 @@ cGridStructGen::cStructurePtr cVillageGen::CreateStructure(int a_GridX, int a_Gr cChunkDef::BiomeMap Biomes; m_BiomeGen->GenBiomes(ChunkX, ChunkZ, Biomes); - // Check if all the biomes are village-friendly: - // If just one is not, no village is created, because it's likely that an unfriendly biome is too close - cVillagePiecePool * VillagePrefabs = nullptr; - BLOCKTYPE RoadBlock = E_BLOCK_GRAVEL; - BLOCKTYPE WaterRoadBlock = E_BLOCK_PLANKS; - int rnd = m_Noise.IntNoise2DInt(a_OriginX, a_OriginZ) / 11; - cVillagePiecePool * PlainsVillage = g_PlainsVillagePools[rnd % ARRAYCOUNT(g_PlainsVillagePools)]; - cVillagePiecePool * DesertVillage = g_DesertVillagePools[rnd % ARRAYCOUNT(g_DesertVillagePools)]; + // Get a list of pools that support each biome within the chunk: + // If just one column's biome is not allowed, the pool is not used because it's likely that an unfriendly biome is too close + auto availablePools = m_Pools; for (size_t i = 0; i < ARRAYCOUNT(Biomes); i++) { - switch (Biomes[i]) - { - case biDesert: - case biDesertM: + auto biome = Biomes[i]; + availablePools.erase(std::remove_if(availablePools.begin(), availablePools.end(), + [biome](SharedPtr<cPrefabPiecePool> a_Pool) { - // These biomes allow sand villages - VillagePrefabs = DesertVillage; - // RoadBlock = E_BLOCK_SANDSTONE; - break; - } - case biPlains: - case biSavanna: - case biSavannaM: - case biSunflowerPlains: - { - // These biomes allow plains-style villages - VillagePrefabs = PlainsVillage; - break; - } - default: - { - // Village-unfriendly biome, bail out with zero structure: - return cStructurePtr(); - } - } // switch (Biomes[i]) - } // for i - Biomes[] + return !a_Pool->IsBiomeAllowed(biome); + }), + availablePools.end() + ); + // Bail out if no compatible pools left: + if (availablePools.empty()) + { + return cStructurePtr(); + } + } + + // Pick one pool from the available pools: + if (availablePools.empty()) + { + return cStructurePtr(); + } + auto rnd = m_Noise.IntNoise2DInt(a_OriginX, a_OriginZ) / 11; + auto pool = availablePools[static_cast<size_t>(rnd) % availablePools.size()]; + rnd /= 137; // Choose density for the village, random between m_MinDensity and m_MaxDensity: int Density; - if (m_MaxDensity > m_MinDensity) + if (pool->GetMaxDensity() > pool->GetMinDensity()) { - Density = m_MinDensity + rnd % (m_MaxDensity - m_MinDensity); + Density = pool->GetMinDensity() + rnd % (pool->GetMaxDensity() - pool->GetMinDensity()); } else { - Density = m_MinDensity; + Density = pool->GetMinDensity(); } // Create a village based on the chosen prefabs: - if (VillagePrefabs == nullptr) - { - return cStructurePtr(); - } - return cStructurePtr(new cVillage(m_Seed, a_GridX, a_GridZ, a_OriginX, a_OriginZ, m_MaxDepth, m_MaxSize, Density, *VillagePrefabs, m_HeightGen, RoadBlock, WaterRoadBlock)); + return cStructurePtr(new cVillage(m_Seed, a_GridX, a_GridZ, a_OriginX, a_OriginZ, m_MaxDepth, m_MaxSize, Density, *pool.get(), m_HeightGen)); } diff --git a/src/Generating/VillageGen.h b/src/Generating/VillageGen.h index c384ed9e5..e7f9f2529 100644 --- a/src/Generating/VillageGen.h +++ b/src/Generating/VillageGen.h @@ -16,15 +16,34 @@ +// fwd: +class cVillagePiecePool; + + + + + class cVillageGen : public cGridStructGen { typedef cGridStructGen super; public: - cVillageGen(int a_Seed, int a_GridSize, int a_MaxOffset, int a_MaxDepth, int a_MaxSize, int a_MinDensity, int a_MaxDensity, cBiomeGenPtr a_BiomeGen, cTerrainHeightGenPtr a_HeightGen); + /** Creates a new instance of the generator with the specified parameters. */ + cVillageGen( + int a_Seed, + int a_GridSize, + int a_MaxOffset, + int a_MaxDepth, + int a_MaxSize, + int a_MinDensity, int a_MaxDensity, + cBiomeGenPtr a_BiomeGen, + cTerrainHeightGenPtr a_HeightGen, + const AStringVector & a_PrefabsToLoad + ); protected: class cVillage; // fwd: VillageGen.cpp + typedef std::vector<SharedPtr<cVillagePiecePool> > cVillagePiecePools; /** The noise used for generating random numbers */ cNoise m_Noise; @@ -47,6 +66,9 @@ protected: /** The underlying height generator, used to position the prefabs crossing chunk borders */ cTerrainHeightGenPtr m_HeightGen; + /** All available prefab sets. Each village gets one of these chosen randomly. */ + cVillagePiecePools m_Pools; + // cGridStructGen overrides: virtual cStructurePtr CreateStructure(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ) override; |