diff options
Diffstat (limited to 'src/Generating')
47 files changed, 6371 insertions, 3456 deletions
diff --git a/src/Generating/BioGen.cpp b/src/Generating/BioGen.cpp index 47ba080c6..8fad9f5c9 100644 --- a/src/Generating/BioGen.cpp +++ b/src/Generating/BioGen.cpp @@ -12,7 +12,7 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cBiomeGen: cBiomeGen * cBiomeGen::CreateBiomeGen(cIniFile & a_IniFile, int a_Seed, bool & a_CacheOffByDefault) @@ -78,7 +78,7 @@ cBiomeGen * cBiomeGen::CreateBiomeGen(cIniFile & a_IniFile, int a_Seed, bool & a -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cBioGenConstant: void cBioGenConstant::GenBiomes(int a_ChunkX, int a_ChunkZ, cChunkDef::BiomeMap & a_BiomeMap) @@ -95,7 +95,7 @@ void cBioGenConstant::GenBiomes(int a_ChunkX, int a_ChunkZ, cChunkDef::BiomeMap void cBioGenConstant::InitializeBiomeGen(cIniFile & a_IniFile) { - AString Biome = a_IniFile.GetValueSet("Generator", "ConstantBiome", "Plains"); + AString Biome = a_IniFile.GetValueSet("Generator", "ConstantBiome", ""); m_Biome = StringToBiome(Biome); if (m_Biome == biInvalidBiome) { @@ -108,7 +108,7 @@ void cBioGenConstant::InitializeBiomeGen(cIniFile & a_IniFile) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cBioGenCache: cBioGenCache::cBioGenCache(cBiomeGen * a_BioGenToCache, int a_CacheSize) : @@ -135,7 +135,9 @@ cBioGenCache::cBioGenCache(cBiomeGen * a_BioGenToCache, int a_CacheSize) : cBioGenCache::~cBioGenCache() { delete[] m_CacheData; + m_CacheData = NULL; delete[] m_CacheOrder; + m_CacheOrder = NULL; } @@ -207,7 +209,7 @@ void cBioGenCache::InitializeBiomeGen(cIniFile & a_IniFile) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cBiomeGenList: void cBiomeGenList::InitializeBiomes(const AString & a_Biomes) @@ -288,7 +290,7 @@ void cBiomeGenList::InitializeBiomes(const AString & a_Biomes) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cBioGenCheckerboard: void cBioGenCheckerboard::GenBiomes(int a_ChunkX, int a_ChunkZ, cChunkDef::BiomeMap & a_BiomeMap) @@ -322,7 +324,7 @@ void cBioGenCheckerboard::InitializeBiomeGen(cIniFile & a_IniFile) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cBioGenVoronoi : void cBioGenVoronoi::GenBiomes(int a_ChunkX, int a_ChunkZ, cChunkDef::BiomeMap & a_BiomeMap) @@ -355,7 +357,7 @@ void cBioGenVoronoi::InitializeBiomeGen(cIniFile & a_IniFile) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cBioGenDistortedVoronoi: void cBioGenDistortedVoronoi::GenBiomes(int a_ChunkX, int a_ChunkZ, cChunkDef::BiomeMap & a_BiomeMap) @@ -416,7 +418,7 @@ void cBioGenDistortedVoronoi::Distort(int a_BlockX, int a_BlockZ, int & a_Distor -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cBioGenMultiStepMap : cBioGenMultiStepMap::cBioGenMultiStepMap(int a_Seed) : @@ -737,7 +739,7 @@ void cBioGenMultiStepMap::FreezeWaterBiomes(cChunkDef::BiomeMap & a_BiomeMap, co -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cBioGenTwoLevel: cBioGenTwoLevel::cBioGenTwoLevel(int a_Seed) : @@ -745,7 +747,12 @@ cBioGenTwoLevel::cBioGenTwoLevel(int a_Seed) : m_VoronoiSmall(a_Seed + 2000), m_DistortX(a_Seed + 3000), m_DistortZ(a_Seed + 4000), - m_Noise(a_Seed + 5000) + m_Noise1(a_Seed + 5001), + m_Noise2(a_Seed + 5002), + m_Noise3(a_Seed + 5003), + m_Noise4(a_Seed + 5004), + m_Noise5(a_Seed + 5005), + m_Noise6(a_Seed + 5006) { } @@ -767,12 +774,12 @@ void cBioGenTwoLevel::GenBiomes(int a_ChunkX, int a_ChunkZ, cChunkDef::BiomeMap int BlockZ = BaseZ + z * 4; float BlockXF = (float)(16 * BlockX) / 128; float BlockZF = (float)(16 * BlockZ) / 128; - double NoiseX = m_Noise.CubicNoise3D(BlockXF / 16, BlockZF / 16, 1000); - NoiseX += 0.5 * m_Noise.CubicNoise3D(BlockXF / 8, BlockZF / 8, 2000); - NoiseX += 0.08 * m_Noise.CubicNoise3D(BlockXF, BlockZF, 3000); - double NoiseZ = m_Noise.CubicNoise3D(BlockXF / 16, BlockZF / 16, 4000); - NoiseZ += 0.5 * m_Noise.CubicNoise3D(BlockXF / 8, BlockZF / 8, 5000); - NoiseZ += 0.08 * m_Noise.CubicNoise3D(BlockXF, BlockZF, 6000); + double NoiseX = m_Noise1.CubicNoise2D(BlockXF / 16, BlockZF / 16); + NoiseX += 0.5 * m_Noise2.CubicNoise2D(BlockXF / 8, BlockZF / 8); + NoiseX += 0.08 * m_Noise3.CubicNoise2D(BlockXF, BlockZF); + double NoiseZ = m_Noise4.CubicNoise2D(BlockXF / 16, BlockZF / 16); + NoiseZ += 0.5 * m_Noise5.CubicNoise2D(BlockXF / 8, BlockZF / 8); + NoiseZ += 0.08 * m_Noise6.CubicNoise2D(BlockXF, BlockZF); DistortX[4 * x][4 * z] = BlockX + (int)(64 * NoiseX); DistortZ[4 * x][4 * z] = BlockZ + (int)(64 * NoiseZ); @@ -786,8 +793,8 @@ void cBioGenTwoLevel::GenBiomes(int a_ChunkX, int a_ChunkZ, cChunkDef::BiomeMap { for (int x = 0; x < cChunkDef::Width; x++) { - int BiomeGroup = m_VoronoiLarge.GetValueAt(DistortX[x][z], DistortZ[x][z]) / 7; int MinDist1, MinDist2; + int BiomeGroup = m_VoronoiLarge.GetValueAt(DistortX[x][z], DistortZ[x][z], MinDist1, MinDist2) / 7; int BiomeIdx = m_VoronoiSmall.GetValueAt(DistortX[x][z], DistortZ[x][z], MinDist1, MinDist2) / 11; cChunkDef::SetBiome(a_BiomeMap, x, z, SelectBiome(BiomeGroup, BiomeIdx, (MinDist1 < MinDist2 / 4) ? 0 : 1)); } diff --git a/src/Generating/BioGen.h b/src/Generating/BioGen.h index 8bd460d8f..227ec97d7 100644 --- a/src/Generating/BioGen.h +++ b/src/Generating/BioGen.h @@ -261,7 +261,12 @@ protected: /// The noise used to distort the inupt Z coord cPerlinNoise m_DistortZ; - cNoise m_Noise; + cNoise m_Noise1; + cNoise m_Noise2; + cNoise m_Noise3; + cNoise m_Noise4; + cNoise m_Noise5; + cNoise m_Noise6; // cBiomeGen overrides: diff --git a/src/Generating/CMakeLists.txt b/src/Generating/CMakeLists.txt index 3dacb5066..58df9d421 100644 --- a/src/Generating/CMakeLists.txt +++ b/src/Generating/CMakeLists.txt @@ -4,11 +4,64 @@ project (MCServer) include_directories ("${PROJECT_SOURCE_DIR}/../") -file(GLOB SOURCE - "*.cpp" - "*.h" -) +SET (SRCS + BioGen.cpp + Caves.cpp + ChunkDesc.cpp + ChunkGenerator.cpp + CompoGen.cpp + ComposableGenerator.cpp + DistortedHeightmap.cpp + EndGen.cpp + FinishGen.cpp + GridStructGen.cpp + HeiGen.cpp + MineShafts.cpp + NetherFortGen.cpp + Noise3DGenerator.cpp + POCPieceGenerator.cpp + PieceGenerator.cpp + Prefab.cpp + PrefabPiecePool.cpp + RainbowRoadsGen.cpp + Ravines.cpp + RoughRavines.cpp + StructGen.cpp + TestRailsGen.cpp + Trees.cpp + UnderwaterBaseGen.cpp + VillageGen.cpp) -add_library(Generating ${SOURCE}) +SET (HDRS + BioGen.h + Caves.h + ChunkDesc.h + ChunkGenerator.h + CompoGen.h + ComposableGenerator.h + DistortedHeightmap.h + EndGen.h + FinishGen.h + GridStructGen.h + HeiGen.h + MineShafts.h + NetherFortGen.h + Noise3DGenerator.h + POCPieceGenerator.h + PieceGenerator.h + Prefab.h + PrefabPiecePool.h + RainbowRoadsGen.h + Ravines.h + RoughRavines.h + StructGen.h + TestRailsGen.h + Trees.h + UnderwaterBaseGen.h + VillageGen.h) -target_link_libraries(Generating OSSupport iniFile Blocks) +if(NOT MSVC) + add_library(Generating ${SRCS} ${HDRS}) + + target_link_libraries(Generating OSSupport iniFile Blocks) +endif() diff --git a/src/Generating/Caves.cpp b/src/Generating/Caves.cpp index 6aa7fd4cb..6fc371958 100644 --- a/src/Generating/Caves.cpp +++ b/src/Generating/Caves.cpp @@ -151,7 +151,7 @@ protected: -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cCaveTunnel: cCaveTunnel::cCaveTunnel( @@ -497,29 +497,9 @@ void cCaveTunnel::ProcessChunk( int SqDist = (DifX - x) * (DifX - x) + (DifY - y) * (DifY - y) + (DifZ - z) * (DifZ - z); if (4 * SqDist <= SqRad) { - switch (cChunkDef::GetBlock(a_BlockTypes, x, y, z)) + if (cBlockInfo::CanBeTerraformed(cChunkDef::GetBlock(a_BlockTypes, x, y, z))) { - // Only carve out these specific block types - case E_BLOCK_DIRT: - case E_BLOCK_GRASS: - case E_BLOCK_STONE: - case E_BLOCK_COBBLESTONE: - case E_BLOCK_GRAVEL: - case E_BLOCK_SAND: - case E_BLOCK_SANDSTONE: - case E_BLOCK_SOULSAND: - case E_BLOCK_NETHERRACK: - case E_BLOCK_COAL_ORE: - case E_BLOCK_IRON_ORE: - case E_BLOCK_GOLD_ORE: - case E_BLOCK_DIAMOND_ORE: - case E_BLOCK_REDSTONE_ORE: - case E_BLOCK_REDSTONE_ORE_GLOWING: - { - cChunkDef::SetBlock(a_BlockTypes, x, y, z, E_BLOCK_AIR); - break; - } - default: break; + cChunkDef::SetBlock(a_BlockTypes, x, y, z, E_BLOCK_AIR); } } } // for y @@ -555,14 +535,14 @@ AString cCaveTunnel::ExportAsSVG(int a_Color, int a_OffsetX, int a_OffsetZ) cons { AString SVG; SVG.reserve(m_Points.size() * 20 + 200); - AppendPrintf(SVG, "<path style=\"fill:none;stroke:#%06x;stroke-width:1px;\"\nd=\"", a_Color); - char Prefix = 'M'; // The first point needs "M" prefix, all the others need "L" - for (cCaveDefPoints::const_iterator itr = m_Points.begin(); itr != m_Points.end(); ++itr) - { - AppendPrintf(SVG, "%c %d,%d ", Prefix, a_OffsetX + itr->m_BlockX, a_OffsetZ + itr->m_BlockZ); + AppendPrintf(SVG, "<path style=\"fill:none;stroke:#%06x;stroke-width:1px;\"\nd=\"", a_Color); + char Prefix = 'M'; // The first point needs "M" prefix, all the others need "L" + for (cCaveDefPoints::const_iterator itr = m_Points.begin(); itr != m_Points.end(); ++itr) + { + AppendPrintf(SVG, "%c %d, %d ", Prefix, a_OffsetX + itr->m_BlockX, a_OffsetZ + itr->m_BlockZ); Prefix = 'L'; - } - SVG.append("\"/>\n"); + } + SVG.append("\"/>\n"); return SVG; } #endif // _DEBUG @@ -571,7 +551,7 @@ AString cCaveTunnel::ExportAsSVG(int a_Color, int a_OffsetX, int a_OffsetZ) cons -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cStructGenWormNestCaves::cCaveSystem: cStructGenWormNestCaves::cCaveSystem::cCaveSystem(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ, int a_MaxOffset, int a_Size, cNoise & a_Noise) : @@ -687,7 +667,7 @@ int cStructGenWormNestCaves::cCaveSystem::GetRadius(cNoise & a_Noise, int a_Orig -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cStructGenWormNestCaves: cGridStructGen::cStructurePtr cStructGenWormNestCaves::CreateStructure(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ) @@ -700,13 +680,13 @@ cGridStructGen::cStructurePtr cStructGenWormNestCaves::CreateStructure(int a_Gri -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cStructGenMarbleCaves: -static float GetMarbleNoise( float x, float y, float z, cNoise & a_Noise ) +static float GetMarbleNoise( float x, float y, float z, cNoise & a_Noise) { static const float PI_2 = 1.57079633f; - float oct1 = (a_Noise.CubicNoise3D(x * 0.1f, y * 0.1f, z * 0.1f )) * 4; + float oct1 = (a_Noise.CubicNoise3D(x * 0.1f, y * 0.1f, z * 0.1f)) * 4; oct1 = oct1 * oct1 * oct1; if (oct1 < 0.f) oct1 = PI_2; @@ -730,7 +710,7 @@ void cStructGenMarbleCaves::GenFinish(cChunkDesc & a_ChunkDesc) const float xx = (float)(a_ChunkDesc.GetChunkX() * cChunkDef::Width + x); int Top = a_ChunkDesc.GetHeight(x, z); - for (int y = 1; y < Top; ++y ) + for (int y = 1; y < Top; ++y) { if (a_ChunkDesc.GetBlockType(x, y, z) != E_BLOCK_STONE) { @@ -752,7 +732,7 @@ void cStructGenMarbleCaves::GenFinish(cChunkDesc & a_ChunkDesc) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cStructGenDualRidgeCaves: void cStructGenDualRidgeCaves::GenFinish(cChunkDesc & a_ChunkDesc) diff --git a/src/Generating/ChunkDesc.cpp b/src/Generating/ChunkDesc.cpp index 7711723fc..c0b646fd0 100644 --- a/src/Generating/ChunkDesc.cpp +++ b/src/Generating/ChunkDesc.cpp @@ -20,7 +20,6 @@ cChunkDesc::cChunkDesc(int a_ChunkX, int a_ChunkZ) : m_bUseDefaultBiomes(true), m_bUseDefaultHeight(true), m_bUseDefaultComposition(true), - m_bUseDefaultStructures(true), m_bUseDefaultFinish(true) { m_BlockArea.Create(cChunkDef::Width, cChunkDef::Height, cChunkDef::Width); @@ -207,26 +206,6 @@ bool cChunkDesc::IsUsingDefaultComposition(void) const -void cChunkDesc::SetUseDefaultStructures(bool a_bUseDefaultStructures) -{ - LOGWARNING("%s: Structures are no longer accounted for, use Finishers instead", __FUNCTION__); - m_bUseDefaultStructures = a_bUseDefaultStructures; -} - - - - - -bool cChunkDesc::IsUsingDefaultStructures(void) const -{ - LOGWARNING("%s: Structures are no longer accounted for, use Finishers instead", __FUNCTION__); - return m_bUseDefaultStructures; -} - - - - - void cChunkDesc::SetUseDefaultFinish(bool a_bUseDefaultFinish) { m_bUseDefaultFinish = a_bUseDefaultFinish; @@ -290,7 +269,7 @@ void cChunkDesc::ReadBlockArea(cBlockArea & a_Dest, int a_MinRelX, int a_MaxRelX LOGWARNING("%s: MaxRelX less than zero, adjusting to zero", __FUNCTION__); a_MaxRelX = 0; } - else if (a_MinRelX >= cChunkDef::Width) + else if (a_MaxRelX >= cChunkDef::Width) { LOGWARNING("%s: MaxRelX more than chunk width, adjusting to chunk width", __FUNCTION__); a_MaxRelX = cChunkDef::Width - 1; @@ -311,7 +290,7 @@ void cChunkDesc::ReadBlockArea(cBlockArea & a_Dest, int a_MinRelX, int a_MaxRelX LOGWARNING("%s: MaxRelY less than zero, adjusting to zero", __FUNCTION__); a_MaxRelY = 0; } - else if (a_MinRelY >= cChunkDef::Height) + else if (a_MaxRelY >= cChunkDef::Height) { LOGWARNING("%s: MaxRelY more than chunk height, adjusting to chunk height", __FUNCTION__); a_MaxRelY = cChunkDef::Height - 1; @@ -332,7 +311,7 @@ void cChunkDesc::ReadBlockArea(cBlockArea & a_Dest, int a_MinRelX, int a_MaxRelX LOGWARNING("%s: MaxRelZ less than zero, adjusting to zero", __FUNCTION__); a_MaxRelZ = 0; } - else if (a_MinRelZ >= cChunkDef::Width) + else if (a_MaxRelZ >= cChunkDef::Width) { LOGWARNING("%s: MaxRelZ more than chunk width, adjusting to chunk width", __FUNCTION__); a_MaxRelZ = cChunkDef::Width - 1; diff --git a/src/Generating/ChunkDesc.h b/src/Generating/ChunkDesc.h index 8edc2800b..eeea0c957 100644 --- a/src/Generating/ChunkDesc.h +++ b/src/Generating/ChunkDesc.h @@ -68,8 +68,6 @@ public: bool IsUsingDefaultHeight(void) const; void SetUseDefaultComposition(bool a_bUseDefaultComposition); bool IsUsingDefaultComposition(void) const; - void SetUseDefaultStructures(bool a_bUseDefaultStructures); - bool IsUsingDefaultStructures(void) const; void SetUseDefaultFinish(bool a_bUseDefaultFinish); bool IsUsingDefaultFinish(void) const; @@ -186,7 +184,7 @@ public: // Accessors used by cChunkGenerator::Generator descendants: inline cChunkDef::BiomeMap & GetBiomeMap (void) { return m_BiomeMap; } inline cChunkDef::BlockTypes & GetBlockTypes (void) { return *((cChunkDef::BlockTypes *)m_BlockArea.GetBlockTypes()); } - // CANNOT, different compression! + // CANNOT, different compression! // inline cChunkDef::BlockNibbles & GetBlockMetas (void) { return *((cChunkDef::BlockNibbles *)m_BlockArea.GetBlockMetas()); } inline BlockNibbleBytes & GetBlockMetasUncompressed(void) { return *((BlockNibbleBytes *)m_BlockArea.GetBlockMetas()); } inline cChunkDef::HeightMap & GetHeightMap (void) { return m_HeightMap; } @@ -214,7 +212,6 @@ private: bool m_bUseDefaultBiomes; bool m_bUseDefaultHeight; bool m_bUseDefaultComposition; - bool m_bUseDefaultStructures; bool m_bUseDefaultFinish; } ; // tolua_export diff --git a/src/Generating/ChunkGenerator.cpp b/src/Generating/ChunkGenerator.cpp index 73f0223e8..3d5af152c 100644 --- a/src/Generating/ChunkGenerator.cpp +++ b/src/Generating/ChunkGenerator.cpp @@ -22,7 +22,7 @@ const unsigned int QUEUE_SKIP_LIMIT = 500; -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cChunkGenerator: cChunkGenerator::cChunkGenerator(void) : @@ -52,7 +52,7 @@ bool cChunkGenerator::Start(cPluginInterface & a_PluginInterface, cChunkSink & a m_ChunkSink = &a_ChunkSink; MTRand rnd; - m_Seed = a_IniFile.GetValueSetI("Seed", "Seed", rnd.randInt()); + m_Seed = a_IniFile.GetValueSetI("Seed", "Seed", (int)rnd.randInt()); AString GeneratorName = a_IniFile.GetValueSet("Generator", "Generator", "Composable"); if (NoCaseCompare(GeneratorName, "Noise3D") == 0) @@ -180,7 +180,7 @@ BLOCKTYPE cChunkGenerator::GetIniBlock(cIniFile & a_IniFile, const AString & a_S BLOCKTYPE Block = BlockStringToType(BlockType); if (Block < 0) { - LOGWARN("[%s].%s Could not parse block value \"%s\". Using default: \"%s\".", a_SectionName.c_str(), a_ValueName.c_str(), BlockType.c_str(),a_Default.c_str()); + LOGWARN("[%s].%s Could not parse block value \"%s\". Using default: \"%s\".", a_SectionName.c_str(), a_ValueName.c_str(), BlockType.c_str(), a_Default.c_str()); return BlockStringToType(a_Default); } return Block; @@ -228,10 +228,10 @@ void cChunkGenerator::Execute(void) continue; } - cChunkCoords coords = m_Queue.front(); // Get next coord from queue - m_Queue.erase( m_Queue.begin() ); // Remove coordinate from queue + cChunkCoords coords = m_Queue.front(); // Get next coord from queue + m_Queue.erase( m_Queue.begin()); // Remove coordinate from queue bool SkipEnabled = (m_Queue.size() > QUEUE_SKIP_LIMIT); - Lock.Unlock(); // Unlock ASAP + Lock.Unlock(); // Unlock ASAP m_evtRemoved.Set(); // Display perf info once in a while: @@ -290,7 +290,7 @@ void cChunkGenerator::DoGenerate(int a_ChunkX, int a_ChunkY, int a_ChunkZ) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cChunkGenerator::cGenerator: cChunkGenerator::cGenerator::cGenerator(cChunkGenerator & a_ChunkGenerator) : diff --git a/src/Generating/ChunkGenerator.h b/src/Generating/ChunkGenerator.h index 9b2d9eb3c..88d71f3f9 100644 --- a/src/Generating/ChunkGenerator.h +++ b/src/Generating/ChunkGenerator.h @@ -44,7 +44,7 @@ public: { public: cGenerator(cChunkGenerator & a_ChunkGenerator); - virtual ~cGenerator() {} ; // Force a virtual destructor + virtual ~cGenerator() {} // Force a virtual destructor /// Called to initialize the generator on server startup. virtual void Initialize(cIniFile & a_IniFile); diff --git a/src/Generating/CompoGen.cpp b/src/Generating/CompoGen.cpp index 688d19c40..178673e32 100644 --- a/src/Generating/CompoGen.cpp +++ b/src/Generating/CompoGen.cpp @@ -18,7 +18,7 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cCompoGenSameBlock: void cCompoGenSameBlock::ComposeTerrain(cChunkDesc & a_ChunkDesc) @@ -60,7 +60,7 @@ void cCompoGenSameBlock::InitializeCompoGen(cIniFile & a_IniFile) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cCompoGenDebugBiomes: void cCompoGenDebugBiomes::ComposeTerrain(cChunkDesc & a_ChunkDesc) @@ -68,7 +68,7 @@ void cCompoGenDebugBiomes::ComposeTerrain(cChunkDesc & a_ChunkDesc) static BLOCKTYPE Blocks[] = { E_BLOCK_STONE, - E_BLOCK_COBBLESTONE, + E_BLOCK_COBBLESTONE, E_BLOCK_LOG, E_BLOCK_PLANKS, E_BLOCK_SANDSTONE, @@ -111,7 +111,7 @@ void cCompoGenDebugBiomes::ComposeTerrain(cChunkDesc & a_ChunkDesc) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cCompoGenClassic: cCompoGenClassic::cCompoGenClassic(void) : @@ -209,7 +209,7 @@ void cCompoGenClassic::InitializeCompoGen(cIniFile & a_IniFile) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cCompoGenBiomal: void cCompoGenBiomal::ComposeTerrain(cChunkDesc & a_ChunkDesc) @@ -526,7 +526,7 @@ void cCompoGenBiomal::FillColumnPattern(int a_RelX, int a_RelZ, int a_Height, cC -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cCompoGenNether: cCompoGenNether::cCompoGenNether(int a_Seed) : @@ -563,7 +563,7 @@ void cCompoGenNether::ComposeTerrain(cChunkDesc & a_ChunkDesc) { //* FloorLo[INTERPOL_X * x + 17 * INTERPOL_Z * z] = - m_Noise1.IntNoise3DInt(BaseX + INTERPOL_X * x, 0, BaseZ + INTERPOL_Z * z) * + m_Noise1.IntNoise3DInt(BaseX + INTERPOL_X * x, 0, BaseZ + INTERPOL_Z * z) * m_Noise2.IntNoise3DInt(BaseX + INTERPOL_X * x, 0, BaseZ + INTERPOL_Z * z) / 256; //*/ @@ -628,7 +628,22 @@ void cCompoGenNether::ComposeTerrain(cChunkDesc & a_ChunkDesc) for (int z = 0; z < 16; z++) for (int x = 0; x < 16; x++) { a_ChunkDesc.SetBlockType(x, 0, z, E_BLOCK_BEDROCK); - a_ChunkDesc.SetBlockType(x, a_ChunkDesc.GetHeight(x, z), z, E_BLOCK_BEDROCK); + + int Height = a_ChunkDesc.GetHeight(x, z); + a_ChunkDesc.SetBlockType(x, Height, z, E_BLOCK_BEDROCK); + + NOISE_DATATYPE CeilingDisguise = (m_Noise1.CubicNoise2D((float)(a_ChunkDesc.GetChunkX() * cChunkDef::Width + x) / 10, (float)(a_ChunkDesc.GetChunkZ() * cChunkDef::Width + z) / 10)); + if (CeilingDisguise < 0) + { + CeilingDisguise = -CeilingDisguise; + } + + int CeilingDisguiseHeight = Height - 2 - (int)CeilingDisguise * 3; + + for (int y = Height - 1; y > CeilingDisguiseHeight; y--) + { + a_ChunkDesc.SetBlockType(x, y, z, E_BLOCK_NETHERRACK); + } } } @@ -645,7 +660,7 @@ void cCompoGenNether::InitializeCompoGen(cIniFile & a_IniFile) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cCompoGenCache: cCompoGenCache::cCompoGenCache(cTerrainCompositionGen & a_Underlying, int a_CacheSize) : @@ -672,7 +687,9 @@ cCompoGenCache::cCompoGenCache(cTerrainCompositionGen & a_Underlying, int a_Cach cCompoGenCache::~cCompoGenCache() { delete[] m_CacheData; + m_CacheData = NULL; delete[] m_CacheOrder; + m_CacheOrder = NULL; } diff --git a/src/Generating/ComposableGenerator.cpp b/src/Generating/ComposableGenerator.cpp index 22941dcbe..cedb9aeb7 100644 --- a/src/Generating/ComposableGenerator.cpp +++ b/src/Generating/ComposableGenerator.cpp @@ -26,6 +26,8 @@ #include "POCPieceGenerator.h" #include "RainbowRoadsGen.h" #include "Ravines.h" +#include "RoughRavines.h" +#include "TestRailsGen.h" #include "UnderwaterBaseGen.h" #include "VillageGen.h" @@ -33,7 +35,7 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cTerrainCompositionGen: cTerrainCompositionGen * cTerrainCompositionGen::CreateCompositionGen(cIniFile & a_IniFile, cBiomeGen & a_BiomeGen, cTerrainHeightGen & a_HeightGen, int a_Seed) @@ -43,7 +45,6 @@ cTerrainCompositionGen * cTerrainCompositionGen::CreateCompositionGen(cIniFile & { LOGWARN("[Generator] CompositionGen value not set in world.ini, using \"Biomal\"."); CompoGenName = "Biomal"; - a_IniFile.SetValue("Generator", "CompositionGen", CompoGenName); } cTerrainCompositionGen * res = NULL; @@ -97,7 +98,6 @@ cTerrainCompositionGen * cTerrainCompositionGen::CreateCompositionGen(cIniFile & else { LOGWARN("Unknown CompositionGen \"%s\", using \"Biomal\" instead.", CompoGenName.c_str()); - a_IniFile.DeleteValue("Generator", "CompositionGen"); a_IniFile.SetValue("Generator", "CompositionGen", "Biomal"); return CreateCompositionGen(a_IniFile, a_BiomeGen, a_HeightGen, a_Seed); } @@ -113,7 +113,7 @@ cTerrainCompositionGen * cTerrainCompositionGen::CreateCompositionGen(cIniFile & -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cComposableGenerator: cComposableGenerator::cComposableGenerator(cChunkGenerator & a_ChunkGenerator) : @@ -233,7 +233,7 @@ void cComposableGenerator::InitBiomeGen(cIniFile & a_IniFile) { if (CacheSize < 4) { - LOGWARNING("Biomegen cache size set too low, would hurt performance instead of helping. Increasing from %d to %d", + LOGWARNING("Biomegen cache size set too low, would hurt performance instead of helping. Increasing from %d to %d", CacheSize, 4 ); CacheSize = 4; @@ -251,7 +251,7 @@ void cComposableGenerator::InitBiomeGen(cIniFile & a_IniFile) void cComposableGenerator::InitHeightGen(cIniFile & a_IniFile) { bool CacheOffByDefault = false; - m_HeightGen = cTerrainHeightGen::CreateHeightGen(a_IniFile, *m_BiomeGen, m_ChunkGenerator.GetSeed(), CacheOffByDefault); + m_HeightGen = cTerrainHeightGen::CreateHeightGen(a_IniFile, *m_BiomeGen, m_ChunkGenerator.GetSeed(), CacheOffByDefault); // Add a cache, if requested: int CacheSize = a_IniFile.GetValueSetI("Generator", "HeightGenCacheSize", CacheOffByDefault ? 0 : 64); @@ -259,7 +259,7 @@ void cComposableGenerator::InitHeightGen(cIniFile & a_IniFile) { if (CacheSize < 4) { - LOGWARNING("Heightgen cache size set too low, would hurt performance instead of helping. Increasing from %d to %d", + LOGWARNING("Heightgen cache size set too low, would hurt performance instead of helping. Increasing from %d to %d", CacheSize, 4 ); CacheSize = 4; @@ -295,19 +295,7 @@ void cComposableGenerator::InitFinishGens(cIniFile & a_IniFile) int Seed = m_ChunkGenerator.GetSeed(); eDimension Dimension = StringToDimension(a_IniFile.GetValue("General", "Dimension", "Overworld")); - // Older configuration used "Structures" in addition to "Finishers"; we don't distinguish between the two anymore (#398) - // Therefore, we load Structures from the ini file for compatibility, but move its contents over to Finishers: - AString Structures = a_IniFile.GetValue("Generator", "Structures", ""); - AString Finishers = a_IniFile.GetValueSet("Generator", "Finishers", "Ravines, WormNestCaves, WaterLakes, LavaLakes, OreNests, Trees, SprinkleFoliage, Ice, Snow, Lilypads, BottomLava, DeadBushes, PreSimulator"); - if (!Structures.empty()) - { - LOGINFO("[Generator].Structures is deprecated, moving the contents to [Generator].Finishers."); - // Structures used to generate before Finishers, so place them first: - Structures.append(", "); - Finishers = Structures + Finishers; - a_IniFile.SetValue("Generator", "Finishers", Finishers); - } - a_IniFile.DeleteValue("Generator", "Structures"); + AString Finishers = a_IniFile.GetValueSet("Generator", "Finishers", ""); // Create all requested finishers: AStringVector Str = StringSplitAndTrim(Finishers, ","); @@ -322,7 +310,25 @@ void cComposableGenerator::InitFinishGens(cIniFile & a_IniFile) } else if (NoCaseCompare(*itr, "DeadBushes") == 0) { - m_FinishGens.push_back(new cFinishGenSingleBiomeSingleTopBlock(Seed, E_BLOCK_DEAD_BUSH, biDesert, 2, E_BLOCK_SAND, E_BLOCK_SAND)); + // A list with all the allowed biomes. + cFinishGenSingleTopBlock::BiomeList AllowedBiomes; + AllowedBiomes.push_back(biDesert); + AllowedBiomes.push_back(biDesertHills); + AllowedBiomes.push_back(biDesertM); + AllowedBiomes.push_back(biMesa); + AllowedBiomes.push_back(biMesaBryce); + AllowedBiomes.push_back(biMesaPlateau); + AllowedBiomes.push_back(biMesaPlateauF); + AllowedBiomes.push_back(biMesaPlateauFM); + AllowedBiomes.push_back(biMesaPlateauM); + + // A list with all the allowed blocks that can be below the dead bush. + cFinishGenSingleTopBlock::BlockList AllowedBlocks; + AllowedBlocks.push_back(E_BLOCK_SAND); + AllowedBlocks.push_back(E_BLOCK_HARDENED_CLAY); + AllowedBlocks.push_back(E_BLOCK_STAINED_CLAY); + + m_FinishGens.push_back(new cFinishGenSingleTopBlock(Seed, E_BLOCK_DEAD_BUSH, AllowedBiomes, 2, AllowedBlocks)); } else if (NoCaseCompare(*itr, "DirectOverhangs") == 0) { @@ -369,7 +375,17 @@ void cComposableGenerator::InitFinishGens(cIniFile & a_IniFile) } else if (NoCaseCompare(*itr, "Lilypads") == 0) { - m_FinishGens.push_back(new cFinishGenSingleBiomeSingleTopBlock(Seed, E_BLOCK_LILY_PAD, biSwampland, 4, E_BLOCK_WATER, E_BLOCK_STATIONARY_WATER)); + // A list with all the allowed biomes. + cFinishGenSingleTopBlock::BiomeList AllowedBiomes; + AllowedBiomes.push_back(biSwampland); + AllowedBiomes.push_back(biSwamplandM); + + // A list with all the allowed blocks that can be below the lilypad. + cFinishGenSingleTopBlock::BlockList AllowedBlocks; + AllowedBlocks.push_back(E_BLOCK_WATER); + AllowedBlocks.push_back(E_BLOCK_STATIONARY_WATER); + + m_FinishGens.push_back(new cFinishGenSingleTopBlock(Seed, E_BLOCK_LILY_PAD, AllowedBiomes, 4, AllowedBlocks)); } else if (NoCaseCompare(*itr, "NetherClumpFoliage") == 0) { @@ -392,20 +408,54 @@ void cComposableGenerator::InitFinishGens(cIniFile & a_IniFile) } else if (NoCaseCompare(*itr, "PreSimulator") == 0) { - m_FinishGens.push_back(new cFinishGenPreSimulator); + // Load the settings + bool PreSimulateFallingBlocks = a_IniFile.GetValueSetB("Generator", "PreSimulatorFallingBlocks", true); + bool PreSimulateWater = a_IniFile.GetValueSetB("Generator", "PreSimulatorWater", true); + bool PreSimulateLava = a_IniFile.GetValueSetB("Generator", "PreSimulatorLava", true); + + m_FinishGens.push_back(new cFinishGenPreSimulator(PreSimulateFallingBlocks, PreSimulateWater, PreSimulateLava)); } else if (NoCaseCompare(*itr, "RainbowRoads") == 0) { - int GridSize = a_IniFile.GetValueSetI("Generator", "RainbowRoadsGridSize", 512); + int GridSize = a_IniFile.GetValueSetI("Generator", "RainbowRoadsGridSize", 512); int MaxOffset = a_IniFile.GetValueSetI("Generator", "RainbowRoadsMaxOffset", 128); - int MaxDepth = a_IniFile.GetValueSetI("Generator", "RainbowRoadsMaxDepth", 30); - int MaxSize = a_IniFile.GetValueSetI("Generator", "RainbowRoadsMaxSize", 260); + int MaxDepth = a_IniFile.GetValueSetI("Generator", "RainbowRoadsMaxDepth", 30); + int MaxSize = a_IniFile.GetValueSetI("Generator", "RainbowRoadsMaxSize", 260); m_FinishGens.push_back(new cRainbowRoadsGen(Seed, GridSize, MaxOffset, MaxDepth, MaxSize)); } else if (NoCaseCompare(*itr, "Ravines") == 0) { m_FinishGens.push_back(new cStructGenRavines(Seed, 128)); } + else if (NoCaseCompare(*itr, "RoughRavines") == 0) + { + int GridSize = a_IniFile.GetValueSetI("Generator", "RoughRavinesGridSize", 256); + int MaxOffset = a_IniFile.GetValueSetI("Generator", "RoughRavinesMaxOffset", 128); + int MaxSize = a_IniFile.GetValueSetI("Generator", "RoughRavinesMaxSize", 128); + int MinSize = a_IniFile.GetValueSetI("Generator", "RoughRavinesMinSize", 64); + double MaxCenterWidth = a_IniFile.GetValueSetF("Generator", "RoughRavinesMaxCenterWidth", 8); + double MinCenterWidth = a_IniFile.GetValueSetF("Generator", "RoughRavinesMinCenterWidth", 2); + double MaxRoughness = a_IniFile.GetValueSetF("Generator", "RoughRavinesMaxRoughness", 0.2); + double MinRoughness = a_IniFile.GetValueSetF("Generator", "RoughRavinesMinRoughness", 0.05); + double MaxFloorHeightEdge = a_IniFile.GetValueSetF("Generator", "RoughRavinesMaxFloorHeightEdge", 8); + double MinFloorHeightEdge = a_IniFile.GetValueSetF("Generator", "RoughRavinesMinFloorHeightEdge", 30); + double MaxFloorHeightCenter = a_IniFile.GetValueSetF("Generator", "RoughRavinesMaxFloorHeightCenter", 20); + double MinFloorHeightCenter = a_IniFile.GetValueSetF("Generator", "RoughRavinesMinFloorHeightCenter", 6); + double MaxCeilingHeightEdge = a_IniFile.GetValueSetF("Generator", "RoughRavinesMaxCeilingHeightEdge", 56); + double MinCeilingHeightEdge = a_IniFile.GetValueSetF("Generator", "RoughRavinesMinCeilingHeightEdge", 38); + double MaxCeilingHeightCenter = a_IniFile.GetValueSetF("Generator", "RoughRavinesMaxCeilingHeightCenter", 58); + double MinCeilingHeightCenter = a_IniFile.GetValueSetF("Generator", "RoughRavinesMinCeilingHeightCenter", 36); + m_FinishGens.push_back(new cRoughRavines( + Seed, MaxSize, MinSize, + (float)MaxCenterWidth, (float)MinCenterWidth, + (float)MaxRoughness, (float)MinRoughness, + (float)MaxFloorHeightEdge, (float)MinFloorHeightEdge, + (float)MaxFloorHeightCenter, (float)MinFloorHeightCenter, + (float)MaxCeilingHeightEdge, (float)MinCeilingHeightEdge, + (float)MaxCeilingHeightCenter, (float)MinCeilingHeightCenter, + GridSize, MaxOffset + )); + } else if (NoCaseCompare(*itr, "Snow") == 0) { m_FinishGens.push_back(new cFinishGenSnow); @@ -414,6 +464,14 @@ void cComposableGenerator::InitFinishGens(cIniFile & a_IniFile) { m_FinishGens.push_back(new cFinishGenSprinkleFoliage(Seed)); } + else if (NoCaseCompare(*itr, "TallGrass") == 0) + { + m_FinishGens.push_back(new cFinishGenTallGrass(Seed)); + } + else if (NoCaseCompare(*itr, "TestRails") == 0) + { + m_FinishGens.push_back(new cTestRailsGen(Seed, 100, 1, 7, 50)); + } else if (NoCaseCompare(*itr, "Trees") == 0) { m_FinishGens.push_back(new cStructGenTrees(Seed, m_BiomeGen, m_HeightGen, m_CompositionGen)); diff --git a/src/Generating/DistortedHeightmap.cpp b/src/Generating/DistortedHeightmap.cpp index eb9fe92ba..c18c402da 100644 --- a/src/Generating/DistortedHeightmap.cpp +++ b/src/Generating/DistortedHeightmap.cpp @@ -14,7 +14,7 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cPattern: /// This class is used to store a column pattern initialized at runtime, @@ -50,7 +50,7 @@ protected: -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // The arrays to use for the top block pattern definitions: static cDistortedHeightmap::sBlockInfo tbGrass[] = @@ -119,7 +119,7 @@ static cDistortedHeightmap::sBlockInfo tbStone[] = -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // Ocean floor pattern top-block definitions: static cDistortedHeightmap::sBlockInfo tbOFSand[] = @@ -151,7 +151,7 @@ static cDistortedHeightmap::sBlockInfo tbOFRedSand[] = -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // Individual patterns to use: static cPattern patGrass (tbGrass, ARRAYCOUNT(tbGrass)); @@ -171,7 +171,7 @@ static cPattern patOFRedSand(tbOFRedSand, ARRAYCOUNT(tbOFRedSand)); -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cDistortedHeightmap: /** This table assigns a relative maximum overhang size in each direction to biomes. @@ -675,6 +675,8 @@ void cDistortedHeightmap::ComposeColumn(cChunkDesc & a_ChunkDesc, int a_RelX, in case biForestHills: case biTaigaHills: case biExtremeHillsEdge: + case biExtremeHillsPlus: + case biExtremeHills: case biJungle: case biJungleHills: case biJungleEdge: @@ -750,18 +752,6 @@ void cDistortedHeightmap::ComposeColumn(cChunkDesc & a_ChunkDesc, int a_RelX, in return; } - case biExtremeHillsPlus: - case biExtremeHills: - { - // Select the pattern to use - stone or grass: - NOISE_DATATYPE NoiseX = ((NOISE_DATATYPE)(m_CurChunkX * cChunkDef::Width + a_RelX)) / FrequencyX; - NOISE_DATATYPE NoiseY = ((NOISE_DATATYPE)(m_CurChunkZ * cChunkDef::Width + a_RelZ)) / FrequencyZ; - NOISE_DATATYPE Val = m_OceanFloorSelect.CubicNoise2D(NoiseX, NoiseY); - const sBlockInfo * Pattern = (Val < -0.1) ? patStone.Get() : patGrass.Get(); - FillColumnPattern(a_ChunkDesc, a_RelX, a_RelZ, Pattern); - return; - } - case biExtremeHillsPlusM: case biExtremeHillsM: { @@ -769,7 +759,7 @@ void cDistortedHeightmap::ComposeColumn(cChunkDesc & a_ChunkDesc, int a_RelX, in NOISE_DATATYPE NoiseX = ((NOISE_DATATYPE)(m_CurChunkX * cChunkDef::Width + a_RelX)) / FrequencyX; NOISE_DATATYPE NoiseY = ((NOISE_DATATYPE)(m_CurChunkZ * cChunkDef::Width + a_RelZ)) / FrequencyZ; NOISE_DATATYPE Val = m_OceanFloorSelect.CubicNoise2D(NoiseX, NoiseY); - const sBlockInfo * Pattern = (Val < -0.9) ? patStone.Get() : ((Val > 0) ? patGravel.Get() : patGrass.Get()); + const sBlockInfo * Pattern = (Val < 0.0) ? patStone.Get() : patGrass.Get(); FillColumnPattern(a_ChunkDesc, a_RelX, a_RelZ, Pattern); return; } @@ -819,7 +809,7 @@ void cDistortedHeightmap::FillColumnPattern(cChunkDesc & a_ChunkDesc, int a_RelX } // Select the ocean-floor pattern to use: - a_Pattern = ChooseOceanFloorPattern(a_RelX, a_RelZ); + a_Pattern = a_ChunkDesc.GetBiome(a_RelX, a_RelZ) == biDeepOcean ? patGravel.Get() : ChooseOceanFloorPattern(a_RelX, a_RelZ); HasHadWater = true; } // for y a_ChunkDesc.SetBlockType(a_RelX, 0, a_RelZ, E_BLOCK_BEDROCK); diff --git a/src/Generating/EndGen.cpp b/src/Generating/EndGen.cpp index f466039b9..c94cd1eff 100644 --- a/src/Generating/EndGen.cpp +++ b/src/Generating/EndGen.cpp @@ -29,7 +29,7 @@ enum -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cEndGen: cEndGen::cEndGen(int a_Seed) : @@ -50,7 +50,7 @@ cEndGen::cEndGen(int a_Seed) : -void cEndGen::Initialize(cIniFile & a_IniFile) +void cEndGen::InitializeCompoGen(cIniFile & a_IniFile) { m_IslandSizeX = a_IniFile.GetValueSetI("Generator", "EndGenIslandSizeX", m_IslandSizeX); m_IslandSizeY = a_IniFile.GetValueSetI("Generator", "EndGenIslandSizeY", m_IslandSizeY); diff --git a/src/Generating/EndGen.h b/src/Generating/EndGen.h index 4904a0e3d..322061810 100644 --- a/src/Generating/EndGen.h +++ b/src/Generating/EndGen.h @@ -23,8 +23,6 @@ class cEndGen : public: cEndGen(int a_Seed); - void Initialize(cIniFile & a_IniFile); - protected: /// Seed for the noise @@ -66,4 +64,5 @@ protected: // cTerrainCompositionGen overrides: virtual void ComposeTerrain(cChunkDesc & a_ChunkDesc) override; + virtual void InitializeCompoGen(cIniFile & a_IniFile) override; } ; diff --git a/src/Generating/FinishGen.cpp b/src/Generating/FinishGen.cpp index f2d66af70..e8324095e 100644 --- a/src/Generating/FinishGen.cpp +++ b/src/Generating/FinishGen.cpp @@ -40,47 +40,19 @@ static inline bool IsWater(BLOCKTYPE a_BlockType) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cFinishGenNetherClumpFoliage: void cFinishGenNetherClumpFoliage::GenFinish(cChunkDesc & a_ChunkDesc) { - double ChunkX = a_ChunkDesc.GetChunkX() + 0.1; // We can't devide through 0 so lets add 0.1 to all the chunk coordinates. - double ChunkZ = a_ChunkDesc.GetChunkZ() + 0.1; - - NOISE_DATATYPE Val1 = m_Noise.CubicNoise2D((float) (ChunkX * ChunkZ * 0.01f), (float) (ChunkZ / ChunkX * 0.01f)); - NOISE_DATATYPE Val2 = m_Noise.CubicNoise2D((float) (ChunkX / ChunkZ / 0.01f), (float) (ChunkZ * ChunkX / 0.01f)); + int ChunkX = a_ChunkDesc.GetChunkX(); + int ChunkZ = a_ChunkDesc.GetChunkZ(); - if (Val1 < 0) - { - Val1 = -Val1; - } - - if (Val2 < 0) - { - Val2 = -Val2; - } + int Val1 = m_Noise.IntNoise2DInt(ChunkX ^ ChunkZ, ChunkZ + ChunkX); + int Val2 = m_Noise.IntNoise2DInt(ChunkZ ^ ChunkX, ChunkZ - ChunkX); - int PosX, PosZ; - // Calculate PosX - if (Val1 <= 1) - { - PosX = (int) floor(Val1 * 16); - } - else - { - PosX = (int) floor(16 / Val1); - } - - // Calculate PosZ - if (Val2 <= 1) - { - PosZ = (int) floor(Val2 * 16); - } - else - { - PosZ = (int) floor(16 / Val2); - } + int PosX = Val1 % 16; + int PosZ = Val2 % 16; for (int y = 1; y < cChunkDef::Height; y++) { @@ -88,12 +60,14 @@ void cFinishGenNetherClumpFoliage::GenFinish(cChunkDesc & a_ChunkDesc) { continue; } + if (!cBlockInfo::IsSolid(a_ChunkDesc.GetBlockType(PosX, y - 1, PosZ))) // Only place on solid blocks { continue; } - NOISE_DATATYPE BlockType = m_Noise.CubicNoise1D((float) (ChunkX * ChunkZ) / (y * 0.1f)); + // Choose what block to use. + NOISE_DATATYPE BlockType = m_Noise.IntNoise3D((int) ChunkX, y, (int) ChunkZ); if (BlockType < -0.7) { TryPlaceClump(a_ChunkDesc, PosX, y, PosZ, E_BLOCK_BROWN_MUSHROOM); @@ -117,26 +91,71 @@ void cFinishGenNetherClumpFoliage::TryPlaceClump(cChunkDesc & a_ChunkDesc, int a { bool IsFireBlock = a_Block == E_BLOCK_FIRE; - for (int x = a_RelX - 4; x < a_RelX + 4; x++) + int MinX = a_RelX - 4; + if (MinX < 0) // Check if the coordinate is outside the chunk. If it it then adjust it. { - float xx = (float) a_ChunkDesc.GetChunkX() * cChunkDef::Width + x; - for (int z = a_RelZ - 4; z < a_RelZ + 4; z++) + MinX = 0; + } + + int MaxX = a_RelX + 4; + if (MaxX > cChunkDef::Width) // Check if the coordinate is outside the chunk. If it it then adjust it. + { + MaxX = cChunkDef::Width; + } + + int MinZ = a_RelZ - 4; + if (MinZ < 0) // Check if the coordinate is outside the chunk. If it it then adjust it. + { + MinZ = 0; + } + + int MaxZ = a_RelZ + 4; + if (MaxZ > cChunkDef::Width) // Check if the coordinate is outside the chunk. If it it then adjust it. + { + MaxZ = cChunkDef::Width; + } + + int MinY = a_RelY - 2; + if (MinY < 0) // Check if the coordinate is outside the chunk. If it it then adjust it. + { + MinY = 0; + } + + int MaxY = a_RelY + 2; + if (MaxY > cChunkDef::Height) // Check if the coordinate is outside the chunk. If it it then adjust it. + { + MaxY = cChunkDef::Height; + } + + for (int x = MinX; x < MaxX; x++) + { + int xx = a_ChunkDesc.GetChunkX() * cChunkDef::Width + x; + for (int z = MinZ; z < MaxZ; z++) { - float zz = (float) a_ChunkDesc.GetChunkZ() * cChunkDef::Width + z; - for (int y = a_RelY - 2; y < a_RelY + 2; y++) + int zz = a_ChunkDesc.GetChunkZ() * cChunkDef::Width + z; + for (int y = MinY; y < MaxY; y++) { - if (a_ChunkDesc.GetBlockType(x, y, z) != E_BLOCK_AIR) // Don't replace non air blocks. + if ( + ((x < 0) || (x >= cChunkDef::Width)) || + ((y < 0) || (y >= cChunkDef::Height)) || + ((z < 0) || (z >= cChunkDef::Width)) + ) + { + continue; + } + + if (a_ChunkDesc.GetBlockType(x, y, z) != E_BLOCK_AIR) // Don't replace non air blocks. { continue; } BLOCKTYPE BlockBelow = a_ChunkDesc.GetBlockType(x, y - 1, z); - if (!cBlockInfo::IsSolid(BlockBelow)) // Only place on solid blocks + if (!cBlockInfo::FullyOccupiesVoxel(BlockBelow)) // Only place on solid blocks { continue; } - if (IsFireBlock) // don't place fire on non-forever burning blocks. + if (IsFireBlock) // don't place fire on non-forever burning blocks. { if (!cFireSimulator::DoesBurnForever(BlockBelow)) { @@ -144,9 +163,8 @@ void cFinishGenNetherClumpFoliage::TryPlaceClump(cChunkDesc & a_ChunkDesc, int a } } - - NOISE_DATATYPE Val = m_Noise.CubicNoise2D(xx, zz); - if (Val < -0.70) + NOISE_DATATYPE Val = m_Noise.IntNoise2D(xx, zz); + if (Val < -0.5) { a_ChunkDesc.SetBlockType(x, y, z, a_Block); } @@ -159,7 +177,66 @@ void cFinishGenNetherClumpFoliage::TryPlaceClump(cChunkDesc & a_ChunkDesc, int a -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// +// cFinishGenTallGrass: + +void cFinishGenTallGrass::GenFinish(cChunkDesc & a_ChunkDesc) +{ + for (int x = 0; x < cChunkDef::Width; x++) + { + int xx = x + a_ChunkDesc.GetChunkX() * cChunkDef::Width; + for (int z = 0; z < cChunkDef::Width; z++) + { + int zz = z + a_ChunkDesc.GetChunkZ() * cChunkDef::Width; + int BiomeDensity = GetBiomeDensity(a_ChunkDesc.GetBiome(x, z)); + + // Choose if we want to place long grass here. If not then bail out: + if ((m_Noise.IntNoise2DInt(xx + m_Noise.IntNoise1DInt(xx), zz + m_Noise.IntNoise1DInt(zz)) / 7 % 100) > BiomeDensity) + { + continue; + } + + // Get the top block + 1. This is the place where the grass would finaly be placed: + int y = a_ChunkDesc.GetHeight(x, z) + 1; + + // Check if long grass can be placed: + if ( + (a_ChunkDesc.GetBlockType(x, y, z) != E_BLOCK_AIR) || + ((a_ChunkDesc.GetBlockType(x, y - 1, z) != E_BLOCK_GRASS) && (a_ChunkDesc.GetBlockType(x, y - 1, z) != E_BLOCK_DIRT)) + ) + { + continue; + } + + // Choose what long grass meta we should use: + int GrassType = m_Noise.IntNoise2DInt(xx * 50, zz * 50) / 7 % 100; + if (GrassType < 60) + { + a_ChunkDesc.SetBlockTypeMeta(x, y, z, E_BLOCK_TALL_GRASS, 1); + } + else if (GrassType < 90) + { + a_ChunkDesc.SetBlockTypeMeta(x, y, z, E_BLOCK_TALL_GRASS, 2); + } + else + { + // If double long grass we have to choose what type we should use: + if (a_ChunkDesc.GetBlockType(x, y + 1, z) == E_BLOCK_AIR) + { + NIBBLETYPE Meta = (m_Noise.IntNoise2DInt(xx * 100, zz * 100) / 7 % 100) > 25 ? 2 : 3; + a_ChunkDesc.SetBlockTypeMeta(x, y, z, E_BLOCK_BIG_FLOWER, Meta); + a_ChunkDesc.SetBlockTypeMeta(x, y + 1, z, E_BLOCK_BIG_FLOWER, 8); + } + } + } + } +} + + + + + +//////////////////////////////////////////////////////////////////////////////// // cFinishGenSprinkleFoliage: bool cFinishGenSprinkleFoliage::TryAddSugarcane(cChunkDesc & a_ChunkDesc, int a_RelX, int a_RelY, int a_RelZ) @@ -193,8 +270,8 @@ bool cFinishGenSprinkleFoliage::TryAddSugarcane(cChunkDesc & a_ChunkDesc, int a_ if ( !IsWater(a_ChunkDesc.GetBlockType(a_RelX - 1, a_RelY, a_RelZ)) && !IsWater(a_ChunkDesc.GetBlockType(a_RelX + 1, a_RelY, a_RelZ)) && - !IsWater(a_ChunkDesc.GetBlockType(a_RelX , a_RelY, a_RelZ - 1)) && - !IsWater(a_ChunkDesc.GetBlockType(a_RelX , a_RelY, a_RelZ + 1)) + !IsWater(a_ChunkDesc.GetBlockType(a_RelX, a_RelY, a_RelZ - 1)) && + !IsWater(a_ChunkDesc.GetBlockType(a_RelX, a_RelY, a_RelZ + 1)) ) { return false; @@ -214,7 +291,7 @@ void cFinishGenSprinkleFoliage::GenFinish(cChunkDesc & a_ChunkDesc) // Generate small foliage (1-block): // TODO: Update heightmap with 1-block-tall foliage - for (int z = 0; z < cChunkDef::Width; z++) + for (int z = 0; z < cChunkDef::Width; z++) { int BlockZ = a_ChunkDesc.GetChunkZ() * cChunkDef::Width + z; const float zz = (float)BlockZ; @@ -239,14 +316,14 @@ void cFinishGenSprinkleFoliage::GenFinish(cChunkDesc & a_ChunkDesc) } const float xx = (float)BlockX; - float val1 = m_Noise.CubicNoise2D(xx * 0.1f, zz * 0.1f ); - float val2 = m_Noise.CubicNoise2D(xx * 0.01f, zz * 0.01f ); + float val1 = m_Noise.CubicNoise2D(xx * 0.1f, zz * 0.1f); + float val2 = m_Noise.CubicNoise2D(xx * 0.01f, zz * 0.01f); switch (a_ChunkDesc.GetBlockType(x, Top, z)) { case E_BLOCK_GRASS: { - float val3 = m_Noise.CubicNoise2D(xx * 0.01f + 10, zz * 0.01f + 10 ); - float val4 = m_Noise.CubicNoise2D(xx * 0.05f + 20, zz * 0.05f + 20 ); + float val3 = m_Noise.CubicNoise2D(xx * 0.01f + 10, zz * 0.01f + 10); + float val4 = m_Noise.CubicNoise2D(xx * 0.05f + 20, zz * 0.05f + 20); if (val1 + val2 > 0.2f) { a_ChunkDesc.SetBlockType(x, ++Top, z, E_BLOCK_YELLOW_FLOWER); @@ -309,7 +386,7 @@ void cFinishGenSprinkleFoliage::GenFinish(cChunkDesc & a_ChunkDesc) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cFinishGenSnow: void cFinishGenSnow::GenFinish(cChunkDesc & a_ChunkDesc) @@ -345,7 +422,7 @@ void cFinishGenSnow::GenFinish(cChunkDesc & a_ChunkDesc) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cFinishGenIce: void cFinishGenIce::GenFinish(cChunkDesc & a_ChunkDesc) @@ -385,15 +462,15 @@ void cFinishGenIce::GenFinish(cChunkDesc & a_ChunkDesc) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// cFinishGenLilypads: +//////////////////////////////////////////////////////////////////////////////// +// cFinishGenSingleTopBlock: -int cFinishGenSingleBiomeSingleTopBlock::GetNumToGen(const cChunkDef::BiomeMap & a_BiomeMap) +int cFinishGenSingleTopBlock::GetNumToGen(const cChunkDef::BiomeMap & a_BiomeMap) { int res = 0; for (size_t i = 0; i < ARRAYCOUNT(a_BiomeMap); i++) { - if (a_BiomeMap[i] == m_Biome) + if (IsAllowedBiome(a_BiomeMap[i])) { res++; } @@ -405,7 +482,7 @@ int cFinishGenSingleBiomeSingleTopBlock::GetNumToGen(const cChunkDef::BiomeMap & -void cFinishGenSingleBiomeSingleTopBlock::GenFinish(cChunkDesc & a_ChunkDesc) +void cFinishGenSingleTopBlock::GenFinish(cChunkDesc & a_ChunkDesc) { // Add Lilypads on top of water surface in Swampland @@ -418,11 +495,13 @@ void cFinishGenSingleBiomeSingleTopBlock::GenFinish(cChunkDesc & a_ChunkDesc) int z = (m_Noise.IntNoise3DInt(ChunkX - ChunkZ, i, ChunkZ) / 11) % cChunkDef::Width; // Place the block at {x, z} if possible: - if (a_ChunkDesc.GetBiome(x, z) != m_Biome) + EMCSBiome Biome = a_ChunkDesc.GetBiome(x, z); + if (!IsAllowedBiome(Biome)) { // Incorrect biome continue; } + int Height = a_ChunkDesc.GetHeight(x, z); if (Height >= cChunkDef::Height) { @@ -434,20 +513,23 @@ void cFinishGenSingleBiomeSingleTopBlock::GenFinish(cChunkDesc & a_ChunkDesc) // Not an empty block continue; } + BLOCKTYPE BlockBelow = a_ChunkDesc.GetBlockType(x, Height, z); - if ((BlockBelow == m_AllowedBelow1) || (BlockBelow == m_AllowedBelow2)) + if (!IsAllowedBlockBelow(BlockBelow)) { - a_ChunkDesc.SetBlockType(x, Height + 1, z, m_BlockType); - a_ChunkDesc.SetHeight(x, z, Height + 1); + continue; } - } // for i + + a_ChunkDesc.SetBlockType(x, Height + 1, z, m_BlockType); + a_ChunkDesc.SetHeight(x, z, Height + 1); + } } -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cFinishGenBottomLava: void cFinishGenBottomLava::GenFinish(cChunkDesc & a_ChunkDesc) @@ -470,10 +552,13 @@ void cFinishGenBottomLava::GenFinish(cChunkDesc & a_ChunkDesc) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cFinishGenPreSimulator: -cFinishGenPreSimulator::cFinishGenPreSimulator(void) +cFinishGenPreSimulator::cFinishGenPreSimulator(bool a_PreSimulateFallingBlocks, bool a_PreSimulateWater, bool a_PreSimulateLava) : + m_PreSimulateFallingBlocks(a_PreSimulateFallingBlocks), + m_PreSimulateWater(a_PreSimulateWater), + m_PreSimulateLava(a_PreSimulateLava) { // Nothing needed yet } @@ -484,9 +569,20 @@ cFinishGenPreSimulator::cFinishGenPreSimulator(void) void cFinishGenPreSimulator::GenFinish(cChunkDesc & a_ChunkDesc) { - CollapseSandGravel(a_ChunkDesc.GetBlockTypes(), a_ChunkDesc.GetHeightMap()); - StationarizeFluid(a_ChunkDesc.GetBlockTypes(), a_ChunkDesc.GetHeightMap(), E_BLOCK_WATER, E_BLOCK_STATIONARY_WATER); - StationarizeFluid(a_ChunkDesc.GetBlockTypes(), a_ChunkDesc.GetHeightMap(), E_BLOCK_LAVA, E_BLOCK_STATIONARY_LAVA); + if (m_PreSimulateFallingBlocks) + { + CollapseSandGravel(a_ChunkDesc.GetBlockTypes(), a_ChunkDesc.GetHeightMap()); + } + + if (m_PreSimulateWater) + { + StationarizeFluid(a_ChunkDesc.GetBlockTypes(), a_ChunkDesc.GetHeightMap(), E_BLOCK_WATER, E_BLOCK_STATIONARY_WATER); + } + + if (m_PreSimulateLava) + { + StationarizeFluid(a_ChunkDesc.GetBlockTypes(), a_ChunkDesc.GetHeightMap(), E_BLOCK_LAVA, E_BLOCK_STATIONARY_LAVA); + } // TODO: other operations } @@ -637,7 +733,7 @@ void cFinishGenPreSimulator::StationarizeFluid( -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cFinishGenFluidSprings: cFinishGenFluidSprings::cFinishGenFluidSprings(int a_Seed, BLOCKTYPE a_Fluid, cIniFile & a_IniFile, eDimension a_Dimension) : @@ -678,7 +774,7 @@ cFinishGenFluidSprings::cFinishGenFluidSprings(int a_Seed, BLOCKTYPE a_Fluid, cI AString HeightDistribution = a_IniFile.GetValueSet(SectionName, "HeightDistribution", DefaultHeightDistribution); if (!m_HeightDistribution.SetDefString(HeightDistribution) || (m_HeightDistribution.GetSum() <= 0)) { - LOGWARNING("[%sSprings]: HeightDistribution is invalid, using the default of \"%s\".", + LOGWARNING("[%sSprings]: HeightDistribution is invalid, using the default of \"%s\".", (a_Fluid == E_BLOCK_WATER) ? "Water" : "Lava", DefaultHeightDistribution.c_str() ); diff --git a/src/Generating/FinishGen.h b/src/Generating/FinishGen.h index 2e5732929..4a08d70c8 100644 --- a/src/Generating/FinishGen.h +++ b/src/Generating/FinishGen.h @@ -69,6 +69,54 @@ protected: +class cFinishGenTallGrass : + public cFinishGen +{ +public: + cFinishGenTallGrass(int a_Seed) : m_Noise(a_Seed), m_Seed(a_Seed) {} + +protected: + cNoise m_Noise; + int m_Seed; + + // cFinishGen override: + virtual void GenFinish(cChunkDesc & a_ChunkDesc) override; + + int GetBiomeDensity(EMCSBiome a_Biome) + { + switch (a_Biome) + { + case biSavanna: + case biSavannaM: + case biSavannaPlateau: + case biSavannaPlateauM: + case biPlains: + { + return 70; + } + + case biExtremeHillsEdge: + case biExtremeHillsPlus: + case biExtremeHills: + case biExtremeHillsPlusM: + case biExtremeHillsM: + case biIceMountains: + { + return 3; + } + + default: + { + return 20; + } + } + } +}; + + + + + class cFinishGenSprinkleFoliage : public cFinishGen { @@ -95,32 +143,69 @@ Used for: - Lilypads finisher - DeadBushes finisher */ -class cFinishGenSingleBiomeSingleTopBlock : +class cFinishGenSingleTopBlock : public cFinishGen { public: - cFinishGenSingleBiomeSingleTopBlock( - int a_Seed, BLOCKTYPE a_BlockType, EMCSBiome a_Biome, int a_Amount, - BLOCKTYPE a_AllowedBelow1, BLOCKTYPE a_AllowedBelow2 + typedef std::vector<BLOCKTYPE> BlockList; + bool m_IsAllowedBelow[256]; + + typedef std::vector<EMCSBiome> BiomeList; + bool m_IsBiomeAllowed[256]; + + + cFinishGenSingleTopBlock( + int a_Seed, BLOCKTYPE a_BlockType, BiomeList a_Biomes, int a_Amount, + BlockList a_AllowedBelow ) : m_Noise(a_Seed), m_BlockType(a_BlockType), - m_Biome(a_Biome), - m_Amount(a_Amount), - m_AllowedBelow1(a_AllowedBelow1), - m_AllowedBelow2(a_AllowedBelow2) + m_Amount(a_Amount) { + // Initialize all the block types. + for (size_t idx = 0; idx < ARRAYCOUNT(m_IsAllowedBelow); ++idx) + { + m_IsAllowedBelow[idx] = false; + } + + // Load the allowed blocks into m_IsAllowedBelow + for (BlockList::iterator itr = a_AllowedBelow.begin(); itr != a_AllowedBelow.end(); ++itr) + { + m_IsAllowedBelow[*itr] = true; + } + + // Initialize all the biome types. + for (size_t idx = 0; idx < ARRAYCOUNT(m_IsBiomeAllowed); ++idx) + { + m_IsBiomeAllowed[idx] = false; + } + + // Load the allowed biomes into m_IsBiomeAllowed + for (BiomeList::iterator itr = a_Biomes.begin(); itr != a_Biomes.end(); ++itr) + { + m_IsBiomeAllowed[*itr] = true; + } } protected: cNoise m_Noise; BLOCKTYPE m_BlockType; - EMCSBiome m_Biome; int m_Amount; ///< Relative amount of blocks to try adding. 1 = one block per 256 biome columns. - BLOCKTYPE m_AllowedBelow1; ///< First of the two blocktypes that are allowed below m_BlockType - BLOCKTYPE m_AllowedBelow2; ///< Second of the two blocktypes that are allowed below m_BlockType int GetNumToGen(const cChunkDef::BiomeMap & a_BiomeMap); + + // Returns true if the given biome is a biome that is allowed. + inline bool IsAllowedBiome(EMCSBiome a_Biome) + { + return m_IsBiomeAllowed[a_Biome]; + } + + // Returns true if the given blocktype may be below m_BlockType + inline bool IsAllowedBlockBelow(BLOCKTYPE a_BlockBelow) + { + return m_IsAllowedBelow[a_BlockBelow]; + } + // cFinishGen override: virtual void GenFinish(cChunkDesc & a_ChunkDesc) override; @@ -155,9 +240,14 @@ class cFinishGenPreSimulator : public cFinishGen { public: - cFinishGenPreSimulator(void); + cFinishGenPreSimulator(bool a_PreSimulateFallingBlocks, bool a_PreSimulateWater, bool a_PreSimulateLava); protected: + + bool m_PreSimulateFallingBlocks; + bool m_PreSimulateWater; + bool m_PreSimulateLava; + // Drops hanging sand and gravel down to the ground, recalculates heightmap void CollapseSandGravel( cChunkDef::BlockTypes & a_BlockTypes, // Block types to read and change @@ -199,7 +289,7 @@ protected: // cFinishGen override: virtual void GenFinish(cChunkDesc & a_ChunkDesc) override; - /// Tries to place a spring at the specified coords, checks neighbors. Returns true if successful + /// Tries to place a spring at the specified coords, checks neighbors. Returns true if successful bool TryPlaceSpring(cChunkDesc & a_ChunkDesc, int x, int y, int z); } ; diff --git a/src/Generating/GridStructGen.cpp b/src/Generating/GridStructGen.cpp index 2931df3eb..7090f14b1 100644 --- a/src/Generating/GridStructGen.cpp +++ b/src/Generating/GridStructGen.cpp @@ -9,7 +9,7 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cEmptyStructure: /** A cStructure descendant representing an empty structure. @@ -44,6 +44,7 @@ cGridStructGen::cGridStructGen( int a_MaxStructureSizeX, int a_MaxStructureSizeZ, size_t a_MaxCacheSize ) : + m_Seed(a_Seed), m_Noise(a_Seed), m_GridSizeX(a_GridSizeX), m_GridSizeZ(a_GridSizeZ), @@ -53,6 +54,16 @@ cGridStructGen::cGridStructGen( m_MaxStructureSizeZ(a_MaxStructureSizeZ), m_MaxCacheSize(a_MaxCacheSize) { + if (m_GridSizeX == 0) + { + LOG("Grid Size cannot be zero, setting to 1"); + m_GridSizeX = 1; + } + if (m_GridSizeZ == 0) + { + LOG("Grid Size cannot be zero, setting to 1"); + m_GridSizeZ = 1; + } size_t NumStructuresPerQuery = (size_t)(((m_MaxStructureSizeX + m_MaxOffsetX) / m_GridSizeX + 1) * ((m_MaxStructureSizeZ + m_MaxOffsetZ) / m_GridSizeZ + 1)); if (NumStructuresPerQuery > m_MaxCacheSize) { @@ -88,8 +99,8 @@ void cGridStructGen::GetStructuresForChunk(int a_ChunkX, int a_ChunkZ, cStructur for (cStructurePtrs::iterator itr = m_Cache.begin(), end = m_Cache.end(); itr != end;) { if ( - ((*itr)->m_OriginX >= MinX) && ((*itr)->m_OriginX < MaxX) && - ((*itr)->m_OriginZ >= MinZ) && ((*itr)->m_OriginZ < MaxZ) + ((*itr)->m_GridX >= MinX) && ((*itr)->m_GridX < MaxX) && + ((*itr)->m_GridZ >= MinZ) && ((*itr)->m_GridZ < MaxZ) ) { // want diff --git a/src/Generating/HeiGen.cpp b/src/Generating/HeiGen.cpp index 25ac912fd..870ceef7f 100644 --- a/src/Generating/HeiGen.cpp +++ b/src/Generating/HeiGen.cpp @@ -16,7 +16,7 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cTerrainHeightGen: cTerrainHeightGen * cTerrainHeightGen::CreateHeightGen(cIniFile &a_IniFile, cBiomeGen & a_BiomeGen, int a_Seed, bool & a_CacheOffByDefault) @@ -91,7 +91,7 @@ cTerrainHeightGen * cTerrainHeightGen::CreateHeightGen(cIniFile &a_IniFile, cBio -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cHeiGenFlat: void cHeiGenFlat::GenHeightMap(int a_ChunkX, int a_ChunkZ, cChunkDef::HeightMap & a_HeightMap) @@ -115,7 +115,7 @@ void cHeiGenFlat::InitializeHeightGen(cIniFile & a_IniFile) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cHeiGenCache: cHeiGenCache::cHeiGenCache(cTerrainHeightGen & a_HeiGenToCache, int a_CacheSize) : @@ -142,7 +142,9 @@ cHeiGenCache::cHeiGenCache(cTerrainHeightGen & a_HeiGenToCache, int a_CacheSize) cHeiGenCache::~cHeiGenCache() { delete[] m_CacheData; + m_CacheData = NULL; delete[] m_CacheOrder; + m_CacheOrder = NULL; } @@ -232,7 +234,7 @@ bool cHeiGenCache::GetHeightAt(int a_ChunkX, int a_ChunkZ, int a_RelX, int a_Rel -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cHeiGenClassic: cHeiGenClassic::cHeiGenClassic(int a_Seed) : @@ -251,9 +253,9 @@ float cHeiGenClassic::GetNoise(float x, float y) float oct2 = m_Noise.CubicNoise2D(x * m_HeightFreq2, y * m_HeightFreq2) * m_HeightAmp2; float oct3 = m_Noise.CubicNoise2D(x * m_HeightFreq3, y * m_HeightFreq3) * m_HeightAmp3; - float height = m_Noise.CubicNoise2D(x * 0.1f, y * 0.1f ) * 2; + float height = m_Noise.CubicNoise2D(x * 0.1f, y * 0.1f) * 2; - float flatness = ((m_Noise.CubicNoise2D(x * 0.5f, y * 0.5f) + 1.f) * 0.5f) * 1.1f; // 0 ... 1.5 + float flatness = ((m_Noise.CubicNoise2D(x * 0.5f, y * 0.5f) + 1.f) * 0.5f) * 1.1f; // 0 ... 1.5 flatness *= flatness * flatness; return (oct1 + oct2 + oct3) * flatness + height; @@ -265,7 +267,7 @@ float cHeiGenClassic::GetNoise(float x, float y) void cHeiGenClassic::GenHeightMap(int a_ChunkX, int a_ChunkZ, cChunkDef::HeightMap & a_HeightMap) { - for (int z = 0; z < cChunkDef::Width; z++) + for (int z = 0; z < cChunkDef::Width; z++) { const float zz = (float)(a_ChunkZ * cChunkDef::Width + z); for (int x = 0; x < cChunkDef::Width; x++) @@ -281,7 +283,7 @@ void cHeiGenClassic::GenHeightMap(int a_ChunkX, int a_ChunkZ, cChunkDef::HeightM { hei = 250; } - cChunkDef::SetHeight(a_HeightMap, x , z, hei); + cChunkDef::SetHeight(a_HeightMap, x, z, hei); } // for x } // for z } @@ -304,7 +306,7 @@ void cHeiGenClassic::InitializeHeightGen(cIniFile & a_IniFile) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cHeiGenMountains: cHeiGenMountains::cHeiGenMountains(int a_Seed) : @@ -343,7 +345,7 @@ void cHeiGenMountains::GenHeightMap(int a_ChunkX, int a_ChunkZ, cChunkDef::Heigh { hei = 250; } - cChunkDef::SetHeight(a_HeightMap, x , z, hei); + cChunkDef::SetHeight(a_HeightMap, x, z, hei); } // for x } // for z } @@ -366,7 +368,7 @@ void cHeiGenMountains::InitializeHeightGen(cIniFile & a_IniFile) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cHeiGenBiomal: const cHeiGenBiomal::sGenParam cHeiGenBiomal::m_GenParam[256] = diff --git a/src/Generating/MineShafts.cpp b/src/Generating/MineShafts.cpp index ab9b1aa29..0532aff39 100644 --- a/src/Generating/MineShafts.cpp +++ b/src/Generating/MineShafts.cpp @@ -275,7 +275,7 @@ public: -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cStructGenMineShafts::cMineShaftSystem: cStructGenMineShafts::cMineShaftSystem::cMineShaftSystem( @@ -400,7 +400,7 @@ bool cStructGenMineShafts::cMineShaftSystem::CanAppend(const cCuboid & a_Boundin -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cMineShaftDirtRoom: cMineShaftDirtRoom::cMineShaftDirtRoom(cStructGenMineShafts::cMineShaftSystem & a_Parent, cNoise & a_Noise) : @@ -492,7 +492,7 @@ void cMineShaftDirtRoom::ProcessChunk(cChunkDesc & a_ChunkDesc) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cMineShaftCorridor: cMineShaftCorridor::cMineShaftCorridor( @@ -732,7 +732,7 @@ void cMineShaftCorridor::ProcessChunk(cChunkDesc & a_ChunkDesc) PlaceChest(a_ChunkDesc); PlaceTracks(a_ChunkDesc); - PlaceSpawner(a_ChunkDesc); // (must be after Tracks!) + PlaceSpawner(a_ChunkDesc); // (must be after Tracks!) PlaceTorches(a_ChunkDesc); } @@ -964,7 +964,7 @@ void cMineShaftCorridor::PlaceTorches(cChunkDesc & a_ChunkDesc) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cMineShaftCrossing: cMineShaftCrossing::cMineShaftCrossing(cStructGenMineShafts::cMineShaftSystem & a_ParentSystem, const cCuboid & a_BoundingBox) : @@ -997,7 +997,6 @@ cMineShaft * cMineShaftCrossing::CreateAndFit( BoundingBox.p2.y -= 4; } } - rnd >>= 2; switch (a_Direction) { case dirXP: BoundingBox.p2.x += 4; BoundingBox.p1.z -= 2; BoundingBox.p2.z += 2; break; @@ -1100,7 +1099,7 @@ void cMineShaftCrossing::ProcessChunk(cChunkDesc & a_ChunkDesc) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cMineShaftStaircase: cMineShaftStaircase::cMineShaftStaircase( @@ -1278,7 +1277,7 @@ void cMineShaftStaircase::ProcessChunk(cChunkDesc & a_ChunkDesc) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cStructGenMineShafts: cStructGenMineShafts::cStructGenMineShafts( diff --git a/src/Generating/NetherFortGen.cpp b/src/Generating/NetherFortGen.cpp index 23fa56048..f35555efd 100644 --- a/src/Generating/NetherFortGen.cpp +++ b/src/Generating/NetherFortGen.cpp @@ -11,7 +11,7 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cNetherFortGen::cNetherFort: class cNetherFortGen::cNetherFort : @@ -65,7 +65,7 @@ public: -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // Performance test of the NetherFort generator: /* @@ -99,7 +99,7 @@ public: -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cNetherFortGen: cPrefabPiecePool cNetherFortGen::m_PiecePool(g_NetherFortPrefabs, g_NetherFortPrefabsCount, g_NetherFortStartingPrefabs, g_NetherFortStartingPrefabsCount); diff --git a/src/Generating/Noise3DGenerator.cpp b/src/Generating/Noise3DGenerator.cpp index 15a588d45..b879349ee 100644 --- a/src/Generating/Noise3DGenerator.cpp +++ b/src/Generating/Noise3DGenerator.cpp @@ -61,7 +61,7 @@ public: -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cNoise3DGenerator: cNoise3DGenerator::cNoise3DGenerator(cChunkGenerator & a_ChunkGenerator) : @@ -342,7 +342,7 @@ void cNoise3DGenerator::ComposeTerrain(cChunkDesc & a_ChunkDesc) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cNoise3DComposable: cNoise3DComposable::cNoise3DComposable(int a_Seed) : diff --git a/src/Generating/POCPieceGenerator.cpp b/src/Generating/POCPieceGenerator.cpp index 491f4d206..6e7e74d7a 100644 --- a/src/Generating/POCPieceGenerator.cpp +++ b/src/Generating/POCPieceGenerator.cpp @@ -150,7 +150,7 @@ static void DebugPieces(const cPlacedPieces & a_Pieces) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cPOCPieceGenerator: cPOCPieceGenerator::cPOCPieceGenerator(int a_Seed) : diff --git a/src/Generating/PieceGenerator.cpp b/src/Generating/PieceGenerator.cpp index 5de231f75..ae4b6e36c 100644 --- a/src/Generating/PieceGenerator.cpp +++ b/src/Generating/PieceGenerator.cpp @@ -1,7 +1,7 @@ // PieceGenerator.cpp -// Implements the cBFSPieceGenerator class and cDFSPieceGenerator class +// Implements the cBFSPieceGenerator class and cDFSPieceGenerator class // representing base classes for generating structures composed of individual "pieces" #include "Globals.h" @@ -13,7 +13,7 @@ #ifdef SELF_TEST -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // Self-test: static class cPieceGeneratorSelfTest : @@ -140,7 +140,7 @@ protected: -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cPiece: @@ -254,7 +254,7 @@ cCuboid cPiece::RotateMoveHitBox(int a_NumCCWRotations, int a_MoveX, int a_MoveY -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cPiece::cConnector: cPiece::cConnector::cConnector(int a_X, int a_Y, int a_Z, int a_Type, eBlockFace a_Direction) : @@ -279,7 +279,7 @@ cPiece::cConnector::cConnector(const Vector3i & a_Pos, int a_Type, eBlockFace a_ -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cPlacedPiece: cPlacedPiece::cPlacedPiece(const cPlacedPiece * a_Parent, const cPiece & a_Piece, const Vector3i & a_Coords, int a_NumCCWRotations) : @@ -328,7 +328,7 @@ void cPlacedPiece::MoveToGroundBy(int a_OffsetY) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cPieceGenerator: cPieceGenerator::cPieceGenerator(cPiecePool & a_PiecePool, int a_Seed) : @@ -578,7 +578,7 @@ void cPieceGenerator::DebugConnectorPool(const cPieceGenerator::cFreeConnectors -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cPieceGenerator::cConnection: cPieceGenerator::cConnection::cConnection(cPiece & a_Piece, cPiece::cConnector & a_Connector, int a_NumCCWRotations, int a_Weight) : @@ -593,7 +593,7 @@ cPieceGenerator::cConnection::cConnection(cPiece & a_Piece, cPiece::cConnector & -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cPieceGenerator::cFreeConnector: cPieceGenerator::cFreeConnector::cFreeConnector(cPlacedPiece * a_Piece, const cPiece::cConnector & a_Connector) : @@ -606,7 +606,7 @@ cPieceGenerator::cFreeConnector::cFreeConnector(cPlacedPiece * a_Piece, const cP -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cBFSPieceGenerator: cBFSPieceGenerator::cBFSPieceGenerator(cPiecePool & a_PiecePool, int a_Seed) : diff --git a/src/Generating/PieceGenerator.h b/src/Generating/PieceGenerator.h index fd8576706..f06029280 100644 --- a/src/Generating/PieceGenerator.h +++ b/src/Generating/PieceGenerator.h @@ -1,7 +1,7 @@ // PieceGenerator.h -// Declares the cBFSPieceGenerator class and cDFSPieceGenerator class +// Declares the cBFSPieceGenerator class and cDFSPieceGenerator class // representing base classes for generating structures composed of individual "pieces" /* @@ -251,7 +251,7 @@ protected: const cPiece::cConnector & a_ExistingConnector, // The existing connector const Vector3i & a_ToPos, // The position on which the new connector should be placed const cPiece & a_Piece, // The new piece - const cPiece::cConnector & a_NewConnector, // The connector of the new piece + const cPiece::cConnector & a_NewConnector, // The connector of the new piece int a_NumCCWRotations, // Number of rotations for the new piece to align the connector const cPlacedPieces & a_OutPieces // All the already-placed pieces to check ); diff --git a/src/Generating/Prefab.cpp b/src/Generating/Prefab.cpp index 2ab1455b9..6da3c3d10 100644 --- a/src/Generating/Prefab.cpp +++ b/src/Generating/Prefab.cpp @@ -181,7 +181,7 @@ void cPrefab::AddRotatedBlockAreas(void) m_BlockArea[2].CopyFrom(m_BlockArea[0]); m_BlockArea[2].MirrorXY(); m_BlockArea[2].MirrorYZ(); - } + } // 3 CCW rotations = 1 CW rotation: if ((m_AllowedRotations & 0x04) != 0) @@ -211,6 +211,17 @@ void cPrefab::Draw(cChunkDesc & a_Dest, const Vector3i & a_Placement, int a_NumR int ChunkStartZ = a_Dest.GetChunkZ() * cChunkDef::Width; Placement.Move(-ChunkStartX, 0, -ChunkStartZ); const cBlockArea & Image = m_BlockArea[a_NumRotations]; + + // If the placement is outside this chunk, bail out: + if ( + (Placement.x > cChunkDef::Width) || (Placement.x + Image.GetSizeX() < 0) || + (Placement.z > cChunkDef::Width) || (Placement.z + Image.GetSizeZ() < 0) + ) + { + return; + } + + // Write the image: a_Dest.WriteBlockArea(Image, Placement.x, Placement.y, Placement.z, m_MergeStrategy); // If requested, draw the floor (from the bottom of the prefab down to the nearest non-air) diff --git a/src/Generating/Prefab.h b/src/Generating/Prefab.h index 8b4e4b4ef..eb905e78e 100644 --- a/src/Generating/Prefab.h +++ b/src/Generating/Prefab.h @@ -183,7 +183,7 @@ protected: bool m_MoveToGround; - // cPiece overrides: + // cPiece overrides: virtual cConnectors GetConnectors(void) const override; virtual Vector3i GetSize(void) const override; virtual cCuboid GetHitBox(void) const override; diff --git a/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp b/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp index eb0d30fdf..c08e53ef6 100644 --- a/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp +++ b/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp @@ -15,7 +15,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = { - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // BarWithBasement: // The data has been exported from the gallery Desert, area index 82, ID 598, created by STR_Warrior { @@ -28,170 +28,172 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = // Block definitions: ".: 0: 0\n" /* air */ - "A:171: 8\n" /* carpet */ - "B:101: 0\n" /* ironbars */ - "C: 64:12\n" /* wooddoorblock */ - "D:128: 2\n" /* sandstonestairs */ - "E: 24: 1\n" /* sandstone */ - "F: 44: 9\n" /* step */ - "G:126: 8\n" /* woodenslab */ - "H:128: 7\n" /* sandstonestairs */ - "I: 44: 1\n" /* step */ - "J: 64: 7\n" /* wooddoorblock */ - "K:128: 6\n" /* sandstonestairs */ - "a: 1: 0\n" /* stone */ - "b: 24: 0\n" /* sandstone */ - "c: 12: 0\n" /* sand */ - "d:134: 4\n" /* 134 */ - "e: 5: 1\n" /* wood */ - "f:134: 5\n" /* 134 */ - "g: 65: 5\n" /* ladder */ - "h: 17: 3\n" /* tree */ - "i: 69:11\n" /* lever */ - "j:134: 0\n" /* 134 */ - "k:134: 1\n" /* 134 */ - "l: 50: 4\n" /* torch */ + "A: 65: 3\n" /* ladder */ + "B: 50: 3\n" /* torch */ + "C:171: 8\n" /* carpet */ + "D:101: 0\n" /* ironbars */ + "E: 64: 8\n" /* wooddoorblock */ + "F:128: 2\n" /* sandstonestairs */ + "G: 24: 1\n" /* sandstone */ + "H: 44: 9\n" /* step */ + "I:126: 8\n" /* woodenslab */ + "J:128: 7\n" /* sandstonestairs */ + "K: 44: 1\n" /* step */ + "L: 64: 3\n" /* wooddoorblock */ + "M:128: 6\n" /* sandstonestairs */ + "a: 24: 2\n" /* sandstone */ + "b: 1: 0\n" /* stone */ + "c: 24: 0\n" /* sandstone */ + "d: 12: 0\n" /* sand */ + "e:134: 4\n" /* 134 */ + "f: 5: 1\n" /* wood */ + "g:134: 5\n" /* 134 */ + "h: 65: 5\n" /* ladder */ + "i: 17: 3\n" /* tree */ + "j: 69:11\n" /* lever */ + "k: 4: 0\n" /* cobblestone */ + "l:134: 0\n" /* 134 */ "m: 19: 0\n" /* sponge */ - "n: 5: 0\n" /* wood */ - "o: 96:12\n" /* trapdoor */ - "p: 24: 2\n" /* sandstone */ - "q:128: 5\n" /* sandstonestairs */ - "r:107: 6\n" /* fencegate */ - "s:128: 4\n" /* sandstonestairs */ - "t:134: 3\n" /* 134 */ - "u: 85: 0\n" /* fence */ - "v:134: 7\n" /* 134 */ - "w:107: 5\n" /* fencegate */ - "x: 64: 5\n" /* wooddoorblock */ - "y: 65: 3\n" /* ladder */ - "z: 50: 3\n" /* torch */, + "n:134: 1\n" /* 134 */ + "o: 50: 4\n" /* torch */ + "p: 13: 0\n" /* gravel */ + "q: 5: 0\n" /* wood */ + "r: 96: 8\n" /* trapdoor */ + "s:128: 5\n" /* sandstonestairs */ + "t:107: 2\n" /* fencegate */ + "u:128: 4\n" /* sandstonestairs */ + "v:134: 3\n" /* 134 */ + "w: 85: 0\n" /* fence */ + "x:134: 7\n" /* 134 */ + "y:107: 5\n" /* fencegate */ + "z: 64: 1\n" /* wooddoorblock */, // Block data: // Level 0 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "aaaaaaaaaaa" - /* 1 */ "aaaaaaaaaaa" - /* 2 */ "aabbbbbbbaa" - /* 3 */ "aabbbbbbbaa" - /* 4 */ "aabbbbbbbaa" - /* 5 */ "aabbbbbbbaa" - /* 6 */ "aabbbbbbbaa" - /* 7 */ "aabbbbbbbaa" - /* 8 */ "aaaaaaaaaaa" - /* 9 */ "aaaaaaaaaaa" + /* 0 */ "mmmabbbammm" + /* 1 */ "mcccccccccm" + /* 2 */ "abcccccccba" + /* 3 */ "cbcccccccbc" + /* 4 */ "cbcccccccbc" + /* 5 */ "cbcccccccbc" + /* 6 */ "cbcccccccbc" + /* 7 */ "cbcccccccbc" + /* 8 */ "abbbbbbbbba" + /* 9 */ "mmmmmmmmmmm" // Level 1 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "ccccccccccc" - /* 1 */ "cbbbbbbbbbc" - /* 2 */ "cbdef.defbc" - /* 3 */ "cbdef.defbc" - /* 4 */ "cbdef.defbc" - /* 5 */ "cb.......bc" - /* 6 */ "cb.......bc" - /* 7 */ "cbg......bc" - /* 8 */ "cbbbbbbbbbc" - /* 9 */ "ccccccccccc" + /* 0 */ "mmmadddammm" + /* 1 */ "mcccccccccm" + /* 2 */ "acefg.efgca" + /* 3 */ "ccefg.efgcc" + /* 4 */ "ccefg.efgcc" + /* 5 */ "cc.......cc" + /* 6 */ "cc.......cc" + /* 7 */ "cch......cc" + /* 8 */ "accccccccca" + /* 9 */ "mmmmmmmmmmm" // Level 2 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "ccccccccccc" - /* 1 */ "cbbbbbbbbbc" - /* 2 */ "cbeee.eeebc" - /* 3 */ "cbeee.eeebc" - /* 4 */ "cbehe.ehebc" - /* 5 */ "cb.i...i.bc" - /* 6 */ "cb.......bc" - /* 7 */ "cbg......bc" - /* 8 */ "cbbbbbbbbbc" - /* 9 */ "ccccccccccc" + /* 0 */ "mmmadddammm" + /* 1 */ "mcccccccccm" + /* 2 */ "acfff.fffca" + /* 3 */ "ccfff.fffcc" + /* 4 */ "ccfif.fifcc" + /* 5 */ "cc.j...j.cc" + /* 6 */ "cc.......cc" + /* 7 */ "cch......cc" + /* 8 */ "accccccccca" + /* 9 */ "mmmmmmmmmmm" // Level 3 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "ccccccccccc" - /* 1 */ "cbbbbbbbbbc" - /* 2 */ "cbjek.jekbc" - /* 3 */ "cbjek.jekbc" - /* 4 */ "cbjek.jekbc" - /* 5 */ "cb.......bc" - /* 6 */ "cb.......bc" - /* 7 */ "cbg..l...bc" - /* 8 */ "cbbbbbbbbbc" - /* 9 */ "ccccccccccc" + /* 0 */ "mmmakkkammm" + /* 1 */ "mcccccccccm" + /* 2 */ "aclfn.lfnca" + /* 3 */ "cclfn.lfncc" + /* 4 */ "cclfn.lfncc" + /* 5 */ "cc.......cc" + /* 6 */ "cc.......cc" + /* 7 */ "cch..o...cc" + /* 8 */ "accccccccca" + /* 9 */ "mmmmmmmmmmm" // Level 4 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "ccccccccccc" - /* 1 */ "ccccccccccc" - /* 2 */ "ccnnnnnnncc" - /* 3 */ "cnnnnnnnnnc" - /* 4 */ "cnnnnnnnnnc" - /* 5 */ "cnnnnnnnnnc" - /* 6 */ "cnnnnnnnnnc" - /* 7 */ "cnonnnnnnnc" - /* 8 */ "cnccccccccc" - /* 9 */ "ccccccccccc" + /* 0 */ "mmmapppammm" + /* 1 */ "mmmmpppmmmm" + /* 2 */ "acccqqqccca" + /* 3 */ "cqqqqqqqqqc" + /* 4 */ "cqqqqqqqqqc" + /* 5 */ "cqqqqqqqqqc" + /* 6 */ "cqqqqqqqqqc" + /* 7 */ "cqrqqqqqqqc" + /* 8 */ "aqcccccccca" + /* 9 */ "mmmmmmmmmmm" // Level 5 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "...p...p..." - /* 1 */ "..........." - /* 2 */ "pbbbqrsbbbp" - /* 3 */ "bkt.....ttb" - /* 4 */ "bku.....ujb" - /* 5 */ "b.........b" - /* 6 */ "bfvvd.....b" - /* 7 */ "b...w..kujb" - /* 8 */ "pxbbbbbbbbp" - /* 9 */ "..y........" + /* 0 */ "mmma...ammm" + /* 1 */ "mmm.....mmm" + /* 2 */ "acccstuccca" + /* 3 */ "cnv.....vvc" + /* 4 */ "cnw.....wlc" + /* 5 */ "c.........c" + /* 6 */ "cgxxe.....c" + /* 7 */ "c...y..nwlc" + /* 8 */ "azcccccccca" + /* 9 */ "mmAmmmmmmmm" // Level 6 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "...p...p..." - /* 1 */ "..........." - /* 2 */ "pbbb...bbbp" - /* 3 */ "b..z...z..b" - /* 4 */ "b.A.....A.b" - /* 5 */ "B.........B" - /* 6 */ "b.........b" - /* 7 */ "b.......A.b" - /* 8 */ "pCbbBBBbbbp" - /* 9 */ "..y........" + /* 0 */ "mmma...ammm" + /* 1 */ "mmm.....mmm" + /* 2 */ "accc...ccca" + /* 3 */ "c..B...B..c" + /* 4 */ "c.C.....C.c" + /* 5 */ "D.........D" + /* 6 */ "c.........c" + /* 7 */ "c.......C.c" + /* 8 */ "aEccDDDccca" + /* 9 */ "mmAmmmmmmmm" // Level 7 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "...D...D..." - /* 1 */ "...E...b..." - /* 2 */ "pbbbqFsbbbp" - /* 3 */ "bGGGGGGGGGb" - /* 4 */ "bGGGGGGGGGb" - /* 5 */ "sGGGGGGGGGq" - /* 6 */ "bGGGGGGGGGb" - /* 7 */ "bGGGGGGGGGb" - /* 8 */ "pbbbHHHbbbp" - /* 9 */ "..y........" + /* 0 */ "mmmF...Fmmm" + /* 1 */ "mmmG...cmmm" + /* 2 */ "acccsHuccca" + /* 3 */ "cIIIIIIIIIc" + /* 4 */ "cIIIIIIIIIc" + /* 5 */ "uIIIIIIIIIs" + /* 6 */ "cIIIIIIIIIc" + /* 7 */ "cIIIIIIIIIc" + /* 8 */ "acccJJJccca" + /* 9 */ "mmAmmmmmmmm" // Level 8 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "bIIIIbIIIIb" - /* 3 */ "IpbbbbbbbpI" - /* 4 */ "Ib.......bI" - /* 5 */ "bb.......bb" - /* 6 */ "Ib.......bI" - /* 7 */ "IpJbbbbbbpI" - /* 8 */ "bI.IIbIIIIb" - /* 9 */ "..........." + /* 0 */ "mmm.....mmm" + /* 1 */ "mmm.....mmm" + /* 2 */ "cKKKKcKKKKc" + /* 3 */ "KacccccccaK" + /* 4 */ "Kc.......cK" + /* 5 */ "cc.......cc" + /* 6 */ "Kc.......cK" + /* 7 */ "KaLccccccaK" + /* 8 */ "cK.KKcKKKKc" + /* 9 */ "mmmmmmmmmmm" // Level 9 /* z\x* 1 */ @@ -199,11 +201,11 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 0 */ "..........." /* 1 */ "..........." /* 2 */ "..........." - /* 3 */ ".pbbBBBbbp." - /* 4 */ ".b.......b." - /* 5 */ ".B.......B." - /* 6 */ ".b.......b." - /* 7 */ ".pCbBBBbbp." + /* 3 */ ".accDDDcca." + /* 4 */ ".c.......c." + /* 5 */ ".D.......D." + /* 6 */ ".c.......c." + /* 7 */ ".aEcDDDcca." /* 8 */ "..........." /* 9 */ "..........." @@ -213,11 +215,11 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 0 */ "..........." /* 1 */ "..........." /* 2 */ "..........." - /* 3 */ ".pbbKKKbbp." - /* 4 */ ".bGGGGGGGb." - /* 5 */ ".sGGGGGGGq." - /* 6 */ ".bGGGGGGGb." - /* 7 */ ".pbbHHHbbp." + /* 3 */ ".accMMMcca." + /* 4 */ ".cIIIIIIIc." + /* 5 */ ".uIIIIIIIs." + /* 6 */ ".cIIIIIIIc." + /* 7 */ ".accJJJcca." /* 8 */ "..........." /* 9 */ "..........." @@ -227,11 +229,11 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 0 */ "..........." /* 1 */ "..........." /* 2 */ "..........." - /* 3 */ ".bIIIbIIIb." - /* 4 */ ".I.......I." - /* 5 */ ".b.......b." - /* 6 */ ".I.......I." - /* 7 */ ".bIIIbIIIb." + /* 3 */ ".cKKKcKKKc." + /* 4 */ ".K.......K." + /* 5 */ ".c.......c." + /* 6 */ ".K.......K." + /* 7 */ ".cKKKcKKKc." /* 8 */ "..........." /* 9 */ "...........", @@ -262,166 +264,180 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // BarWithoutBasement: // The data has been exported from the gallery Desert, area index 81, ID 597, created by STR_Warrior { // Size: - 11, 8, 10, // SizeX = 11, SizeY = 8, SizeZ = 10 + 11, 9, 10, // SizeX = 11, SizeY = 9, SizeZ = 10 // Hitbox (relative to bounding box): -1, 0, 0, // MinX, MinY, MinZ - 11, 7, 10, // MaxX, MaxY, MaxZ + 11, 8, 10, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "A:128: 7\n" /* sandstonestairs */ - "B: 44: 1\n" /* step */ - "C: 64: 3\n" /* wooddoorblock */ - "D: 64: 8\n" /* wooddoorblock */ + "A:126: 8\n" /* woodenslab */ + "B:128: 7\n" /* sandstonestairs */ + "C: 44: 1\n" /* step */ + "D: 64: 3\n" /* wooddoorblock */ "E:128: 6\n" /* sandstonestairs */ - "a: 12: 0\n" /* sand */ - "b: 5: 0\n" /* wood */ - "c: 24: 2\n" /* sandstone */ - "d: 24: 0\n" /* sandstone */ - "e:128: 5\n" /* sandstonestairs */ - "f:107: 6\n" /* fencegate */ - "g:128: 4\n" /* sandstonestairs */ - "h:134: 1\n" /* 134 */ - "i:134: 3\n" /* 134 */ - "j: 85: 0\n" /* fence */ - "k:134: 0\n" /* 134 */ - "l:134: 5\n" /* 134 */ + "a: 24: 2\n" /* sandstone */ + "b: 4: 0\n" /* cobblestone */ + "c: 24: 0\n" /* sandstone */ + "d: 13: 0\n" /* gravel */ + "e: 5: 0\n" /* wood */ + "f:128: 5\n" /* sandstonestairs */ + "g:107: 2\n" /* fencegate */ + "h:128: 4\n" /* sandstonestairs */ + "i:134: 1\n" /* 134 */ + "j:134: 3\n" /* 134 */ + "k: 85: 0\n" /* fence */ + "l:134: 0\n" /* 134 */ "m: 19: 0\n" /* sponge */ - "n:134: 7\n" /* 134 */ - "o:134: 4\n" /* 134 */ - "p:107: 5\n" /* fencegate */ - "q: 64: 5\n" /* wooddoorblock */ - "r: 65: 3\n" /* ladder */ - "s: 50: 3\n" /* torch */ - "t:171: 8\n" /* carpet */ - "u:101: 0\n" /* ironbars */ - "v: 64:12\n" /* wooddoorblock */ - "w:128: 2\n" /* sandstonestairs */ - "x: 24: 1\n" /* sandstone */ - "y: 44: 9\n" /* step */ - "z:126: 8\n" /* woodenslab */, + "n:134: 5\n" /* 134 */ + "o:134: 7\n" /* 134 */ + "p:134: 4\n" /* 134 */ + "q:107: 1\n" /* fencegate */ + "r: 64: 1\n" /* wooddoorblock */ + "s: 65: 3\n" /* ladder */ + "t: 50: 3\n" /* torch */ + "u:171: 8\n" /* carpet */ + "v:101: 0\n" /* ironbars */ + "w: 64: 8\n" /* wooddoorblock */ + "x:128: 2\n" /* sandstonestairs */ + "y: 24: 1\n" /* sandstone */ + "z: 44: 9\n" /* step */, // Block data: // Level 0 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "aaaaaaaaaaa" - /* 1 */ "aaaaaaaaaaa" - /* 2 */ "aaaabbbaaaa" - /* 3 */ "abbbbbbbbba" - /* 4 */ "abbbbbbbbba" - /* 5 */ "abbbbbbbbba" - /* 6 */ "abbbbbbbbba" - /* 7 */ "abbbbbbbbba" - /* 8 */ "abaaaaaaaaa" - /* 9 */ "aaaaaaaaaaa" + /* 0 */ "mmmabbbammm" + /* 1 */ "mmmmbbbmmmm" + /* 2 */ "accccccccca" + /* 3 */ "ccccccccccc" + /* 4 */ "ccccccccccc" + /* 5 */ "ccccccccccc" + /* 6 */ "ccccccccccc" + /* 7 */ "ccccccccccc" + /* 8 */ "accccccccca" + /* 9 */ "mmmmmmmmmmm" // Level 1 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "...c...c..." - /* 1 */ "..........." - /* 2 */ "cdddefgdddc" - /* 3 */ "dhi.....iid" - /* 4 */ "dhj.....jkd" - /* 5 */ "d.........d" - /* 6 */ "dlnno.....d" - /* 7 */ "d...p..hjkd" - /* 8 */ "cqddddddddc" - /* 9 */ "..r........" + /* 0 */ "mmmadddammm" + /* 1 */ "mmmmdddmmmm" + /* 2 */ "accceeeccca" + /* 3 */ "ceeeeeeeeec" + /* 4 */ "ceeeeeeeeec" + /* 5 */ "ceeeeeeeeec" + /* 6 */ "ceeeeeeeeec" + /* 7 */ "ceeeeeeeeec" + /* 8 */ "aecccccccca" + /* 9 */ "mmmmmmmmmmm" // Level 2 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "...c...c..." - /* 1 */ "..........." - /* 2 */ "cddd...dddc" - /* 3 */ "d..s...s..d" - /* 4 */ "d.t.....t.d" - /* 5 */ "u.........u" - /* 6 */ "d.........d" - /* 7 */ "d.......t.d" - /* 8 */ "cvdduuudddc" - /* 9 */ "..r........" + /* 0 */ "mmma...ammm" + /* 1 */ "mmm.....mmm" + /* 2 */ "acccfghccca" + /* 3 */ "cij.....jjc" + /* 4 */ "cik.....klc" + /* 5 */ "c.........c" + /* 6 */ "cnoop.....c" + /* 7 */ "c...q..iklc" + /* 8 */ "arcccccccca" + /* 9 */ "mmsmmmmmmmm" // Level 3 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "...w...w..." - /* 1 */ "...x...d..." - /* 2 */ "cdddeygdddc" - /* 3 */ "dzzzzzzzzzd" - /* 4 */ "dzzzzzzzzzd" - /* 5 */ "gzzzzzzzzze" - /* 6 */ "dzzzzzzzzzd" - /* 7 */ "dzzzzzzzzzd" - /* 8 */ "cdddAAAdddc" - /* 9 */ "..r........" + /* 0 */ "mmma...ammm" + /* 1 */ "mmm.....mmm" + /* 2 */ "accc...ccca" + /* 3 */ "c..t...t..c" + /* 4 */ "c.u.....u.c" + /* 5 */ "v.........v" + /* 6 */ "c.........c" + /* 7 */ "c.......u.c" + /* 8 */ "awccvvvccca" + /* 9 */ "mmsmmmmmmmm" // Level 4 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "dBBBBdBBBBd" - /* 3 */ "BcdddddddcB" - /* 4 */ "Bd.......dB" - /* 5 */ "dd.......dd" - /* 6 */ "Bd.......dB" - /* 7 */ "BcCddddddcB" - /* 8 */ "dB.BBdBBBBd" - /* 9 */ "..........." + /* 0 */ "mmmx...xmmm" + /* 1 */ "mmmy...cmmm" + /* 2 */ "acccfzhccca" + /* 3 */ "cAAAAAAAAAc" + /* 4 */ "cAAAAAAAAAc" + /* 5 */ "hAAAAAAAAAf" + /* 6 */ "cAAAAAAAAAc" + /* 7 */ "cAAAAAAAAAc" + /* 8 */ "acccBBBccca" + /* 9 */ "mmsmmmmmmmm" // Level 5 /* z\x* 1 */ /* * 01234567890 */ + /* 0 */ "mmm.....mmm" + /* 1 */ "mmm.....mmm" + /* 2 */ "cCCCCcCCCCc" + /* 3 */ "CacccccccaC" + /* 4 */ "Cc.......cC" + /* 5 */ "cc.......cc" + /* 6 */ "Cc.......cC" + /* 7 */ "CaDccccccaC" + /* 8 */ "cC.CCcCCCCc" + /* 9 */ "mmmmmmmmmmm" + + // Level 6 + /* z\x* 1 */ + /* * 01234567890 */ /* 0 */ "..........." /* 1 */ "..........." /* 2 */ "..........." - /* 3 */ ".cdduuuddc." - /* 4 */ ".d.......d." - /* 5 */ ".u.......u." - /* 6 */ ".d.......d." - /* 7 */ ".cDduuuddc." + /* 3 */ ".accvvvcca." + /* 4 */ ".c.......c." + /* 5 */ ".v.......v." + /* 6 */ ".c.......c." + /* 7 */ ".awcvvvcca." /* 8 */ "..........." /* 9 */ "..........." - // Level 6 + // Level 7 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "..........." /* 1 */ "..........." /* 2 */ "..........." - /* 3 */ ".cddEEEddc." - /* 4 */ ".dzzzzzzzd." - /* 5 */ ".gzzzzzzze." - /* 6 */ ".dzzzzzzzd." - /* 7 */ ".cddAAAddc." + /* 3 */ ".accEEEcca." + /* 4 */ ".cAAAAAAAc." + /* 5 */ ".hAAAAAAAf." + /* 6 */ ".cAAAAAAAc." + /* 7 */ ".accBBBcca." /* 8 */ "..........." /* 9 */ "..........." - // Level 7 + // Level 8 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "..........." /* 1 */ "..........." /* 2 */ "..........." - /* 3 */ ".dBBBdBBBd." - /* 4 */ ".B.......B." - /* 5 */ ".d.......d." - /* 6 */ ".B.......B." - /* 7 */ ".dBBBdBBBd." + /* 3 */ ".cCCCcCCCc." + /* 4 */ ".C.......C." + /* 5 */ ".c.......c." + /* 6 */ ".C.......C." + /* 7 */ ".cCCCcCCCc." /* 8 */ "..........." /* 9 */ "...........", // Connectors: - "-1: 5, 1, 0: 2\n" /* Type -1, direction Z- */, + "-1: 5, 2, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -447,132 +463,151 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // BlackSmith: // The data has been exported from the gallery Desert, area index 97, ID 642, created by STR_Warrior { // Size: - 11, 5, 13, // SizeX = 11, SizeY = 5, SizeZ = 13 + 11, 6, 13, // SizeX = 11, SizeY = 6, SizeZ = 13 // Hitbox (relative to bounding box): -1, 0, 0, // MinX, MinY, MinZ - 11, 4, 13, // MaxX, MaxY, MaxZ + 11, 5, 13, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 12: 0\n" /* sand */ - "b: 5: 0\n" /* wood */ + "a: 24: 2\n" /* sandstone */ + "b: 4: 0\n" /* cobblestone */ "c: 24: 0\n" /* sandstone */ - "d: 24: 2\n" /* sandstone */ - "e: 64: 7\n" /* wooddoorblock */ - "f: 43: 0\n" /* doubleslab */ - "g: 53: 5\n" /* woodstairs */ - "h: 53: 4\n" /* woodstairs */ - "i: 10: 0\n" /* lava */ - "j: 54: 5\n" /* chest */ - "k: 64:12\n" /* wooddoorblock */ - "l: 50: 3\n" /* torch */ + "d: 13: 0\n" /* gravel */ + "e: 5: 0\n" /* wood */ + "f: 12: 0\n" /* sand */ + "g: 64: 3\n" /* wooddoorblock */ + "h: 43: 0\n" /* doubleslab */ + "i: 53: 5\n" /* woodstairs */ + "j: 53: 4\n" /* woodstairs */ + "k: 10: 0\n" /* lava */ + "l: 54: 5\n" /* chest */ "m: 19: 0\n" /* sponge */ - "n:101: 0\n" /* ironbars */ - "o: 50: 1\n" /* torch */ - "p: 50: 2\n" /* torch */ - "q:128: 2\n" /* sandstonestairs */ - "r: 44: 9\n" /* step */ - "s:126: 8\n" /* woodenslab */ - "t:128: 4\n" /* sandstonestairs */ - "u:128: 5\n" /* sandstonestairs */ - "v:128: 7\n" /* sandstonestairs */ - "w: 44: 1\n" /* step */ - "x: 43: 1\n" /* doubleslab */, + "n: 64: 8\n" /* wooddoorblock */ + "o: 50: 3\n" /* torch */ + "p:101: 0\n" /* ironbars */ + "q: 50: 1\n" /* torch */ + "r: 50: 2\n" /* torch */ + "s:128: 2\n" /* sandstonestairs */ + "t: 44: 9\n" /* step */ + "u:126: 8\n" /* woodenslab */ + "v:128: 4\n" /* sandstonestairs */ + "w:128: 5\n" /* sandstonestairs */ + "x:128: 7\n" /* sandstonestairs */ + "y: 44: 1\n" /* step */ + "z: 43: 1\n" /* doubleslab */, // Block data: // Level 0 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "aaaaaaaaaaa" - /* 1 */ "aaaaaaaaaaa" - /* 2 */ "aaaaaaaabaa" - /* 3 */ "acacacabbba" - /* 4 */ "acaccaabbba" - /* 5 */ "acccccabbba" - /* 6 */ "acaadddbbba" - /* 7 */ "aaacdddbbba" - /* 8 */ "aaaadddbbba" - /* 9 */ "abbbbbbbbba" - /* 10 */ "abbbbbbbbba" - /* 11 */ "abbbbbbbbba" - /* 12 */ "aaaaaaaaaaa" + /* 0 */ "mmmmmmabbba" + /* 1 */ "mmmmmmbbbbm" + /* 2 */ "mmmmmmaccca" + /* 3 */ "maccccccccc" + /* 4 */ "mcccccccccc" + /* 5 */ "mcccccccccc" + /* 6 */ "mcccccacccc" + /* 7 */ "mcccccacccc" + /* 8 */ "acccaaacccc" + /* 9 */ "ccccccccccc" + /* 10 */ "ccccccccccc" + /* 11 */ "ccccccccccc" + /* 12 */ "accccccccca" // Level 1 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "......d...d" - /* 1 */ "..........." - /* 2 */ "......dcecd" - /* 3 */ ".d....c...c" - /* 4 */ "..f...c...c" - /* 5 */ "......c...c" - /* 6 */ "....ddc...c" - /* 7 */ ".gh.dic...c" - /* 8 */ "dcccccd...c" - /* 9 */ "cj........c" - /* 10 */ "c.........c" - /* 11 */ "c.........c" - /* 12 */ "dcccccccccd" + /* 0 */ "mmmmmmaddda" + /* 1 */ "mmmmmmddddm" + /* 2 */ "mmmmmmaceca" + /* 3 */ "mafcfcceeec" + /* 4 */ "mcfccfceeec" + /* 5 */ "mcccccceeec" + /* 6 */ "mcffaaaeeec" + /* 7 */ "mffcaaaeeec" + /* 8 */ "acccaaaeeec" + /* 9 */ "ceeeeeeeeec" + /* 10 */ "ceeeeeeeeec" + /* 11 */ "ceeeeeeeeec" + /* 12 */ "accccccccca" // Level 2 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "......d...d" - /* 1 */ "..........." - /* 2 */ "......dckcd" - /* 3 */ ".d....c..lc" - /* 4 */ "......n...c" - /* 5 */ "......c...c" - /* 6 */ "....nnc...n" - /* 7 */ "....n.c...n" - /* 8 */ "dcccccd...n" - /* 9 */ "co........c" - /* 10 */ "n.........c" - /* 11 */ "c........pc" - /* 12 */ "dcccnnncccd" + /* 0 */ "mmmmmma...a" + /* 1 */ "mmmmmm....." + /* 2 */ "mmmmmmacgca" + /* 3 */ "ma....c...c" + /* 4 */ "m.h...c...c" + /* 5 */ "m.....c...c" + /* 6 */ "m...aac...c" + /* 7 */ "mij.akc...c" + /* 8 */ "accccca...c" + /* 9 */ "cl........c" + /* 10 */ "c.........c" + /* 11 */ "c.........c" + /* 12 */ "accccccccca" // Level 3 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "......q...q" - /* 1 */ "......c...c" - /* 2 */ "......dcccd" - /* 3 */ ".drrrrcsssc" - /* 4 */ ".rsssstsssc" - /* 5 */ ".rsssscsssc" - /* 6 */ ".rssddcsssu" - /* 7 */ ".rssd.csssu" - /* 8 */ "dcccccdsssu" - /* 9 */ "csssssssssc" - /* 10 */ "tsssssssssc" - /* 11 */ "csssssssssc" - /* 12 */ "dcccvvvcccd" + /* 0 */ "mmmmmma...a" + /* 1 */ "mmmmmm....." + /* 2 */ "mmmmmmacnca" + /* 3 */ "ma....c..oc" + /* 4 */ "m.....p...c" + /* 5 */ "m.....c...c" + /* 6 */ "m...ppc...p" + /* 7 */ "m...p.c...p" + /* 8 */ "accccca...p" + /* 9 */ "cq........c" + /* 10 */ "p.........c" + /* 11 */ "c........rc" + /* 12 */ "acccpppccca" // Level 4 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "......cwwwc" - /* 3 */ ".w.w.ww...w" - /* 4 */ "......w...w" - /* 5 */ ".w....w...w" - /* 6 */ "....xwx...w" - /* 7 */ ".w..w.w...c" - /* 8 */ "cwwwxwc...w" - /* 9 */ "w.........w" - /* 10 */ "w.........w" - /* 11 */ "w.........w" - /* 12 */ "cwwwwcwwwwc", + /* 0 */ "mmmmmms...s" + /* 1 */ "mmmmmmc...c" + /* 2 */ "mmmmmmaccca" + /* 3 */ "mattttcuuuc" + /* 4 */ "mtuuuuvuuuc" + /* 5 */ "mtuuuucuuuc" + /* 6 */ "mtuuaacuuuw" + /* 7 */ "mtuua.cuuuw" + /* 8 */ "acccccauuuw" + /* 9 */ "cuuuuuuuuuc" + /* 10 */ "vuuuuuuuuuc" + /* 11 */ "cuuuuuuuuuc" + /* 12 */ "acccxxxccca" + + // Level 5 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "mmmmmm....." + /* 1 */ "mmmmmm....." + /* 2 */ "mmmmmmcyyyc" + /* 3 */ "my.y.yy...y" + /* 4 */ "m.....y...y" + /* 5 */ "my....y...y" + /* 6 */ "m...zyz...y" + /* 7 */ "my..y.y...c" + /* 8 */ "cyyyzyc...y" + /* 9 */ "y.........y" + /* 10 */ "y.........y" + /* 11 */ "y.........y" + /* 12 */ "cyyyycyyyyc", // Connectors: - "-1: 8, 1, 0: 2\n" /* Type -1, direction Z- */, + "-1: 8, 2, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -598,185 +633,201 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // LargeHouse1: // The data has been exported from the gallery Desert, area index 77, ID 577, created by STR_Warrior { // Size: - 15, 13, 11, // SizeX = 15, SizeY = 13, SizeZ = 11 + 15, 14, 11, // SizeX = 15, SizeY = 14, SizeZ = 11 // Hitbox (relative to bounding box): -1, 0, -1, // MinX, MinY, MinZ - 14, 12, 11, // MaxX, MaxY, MaxZ + 14, 13, 11, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "A:128: 4\n" /* sandstonestairs */ - "B:128: 5\n" /* sandstonestairs */ - "C:128: 7\n" /* sandstonestairs */ - "D: 44: 1\n" /* step */ - "E:128: 2\n" /* sandstonestairs */ - "F:128: 0\n" /* sandstonestairs */ - "G: 87: 0\n" /* netherstone */ - "H:128: 3\n" /* sandstonestairs */ - "I: 51: 0\n" /* fire */ - "J: 44: 9\n" /* step */ - "a: 12: 0\n" /* sand */ - "b: 5: 0\n" /* wood */ - "c: 24: 2\n" /* sandstone */ - "d: 24: 0\n" /* sandstone */ - "e: 85: 0\n" /* fence */ - "f: 5: 1\n" /* wood */ - "g: 64: 6\n" /* wooddoorblock */ - "h: 64: 0\n" /* wooddoorblock */ - "i: 61: 2\n" /* furnace */ - "j:118: 0\n" /* cauldronblock */ - "k:134: 4\n" /* 134 */ - "l: 65: 2\n" /* ladder */ + "A: 96:10\n" /* trapdoor */ + "B:128: 4\n" /* sandstonestairs */ + "C:128: 5\n" /* sandstonestairs */ + "D:128: 7\n" /* sandstonestairs */ + "E: 44: 1\n" /* step */ + "F:128: 2\n" /* sandstonestairs */ + "G:128: 0\n" /* sandstonestairs */ + "H: 87: 0\n" /* netherstone */ + "I:128: 3\n" /* sandstonestairs */ + "J: 51: 0\n" /* fire */ + "K: 44: 9\n" /* step */ + "a: 24: 2\n" /* sandstone */ + "b: 24: 0\n" /* sandstone */ + "c: 12: 0\n" /* sand */ + "d: 4: 0\n" /* cobblestone */ + "e: 5: 0\n" /* wood */ + "f: 13: 0\n" /* gravel */ + "g: 85: 0\n" /* fence */ + "h: 5: 1\n" /* wood */ + "i: 64: 2\n" /* wooddoorblock */ + "j: 64: 0\n" /* wooddoorblock */ + "k: 61: 2\n" /* furnace */ + "l:118: 0\n" /* cauldronblock */ "m: 19: 0\n" /* sponge */ - "n:101: 0\n" /* ironbars */ - "o: 50: 1\n" /* torch */ - "p:140: 0\n" /* flowerpotblock */ - "q: 64:12\n" /* wooddoorblock */ - "r: 50: 3\n" /* torch */ + "n:134: 4\n" /* 134 */ + "o: 65: 2\n" /* ladder */ + "p:101: 0\n" /* ironbars */ + "q: 50: 1\n" /* torch */ + "r:140: 0\n" /* flowerpotblock */ "s: 64: 8\n" /* wooddoorblock */ - "t: 69:12\n" /* lever */ - "u: 50: 4\n" /* torch */ - "v:128: 6\n" /* sandstonestairs */ - "w: 44:10\n" /* step */ - "x:128: 1\n" /* sandstonestairs */ - "y: 47: 0\n" /* bookshelf */ - "z: 96:10\n" /* trapdoor */, + "t: 50: 3\n" /* torch */ + "u: 69:12\n" /* lever */ + "v: 50: 4\n" /* torch */ + "w:128: 6\n" /* sandstonestairs */ + "x: 44:10\n" /* step */ + "y:128: 1\n" /* sandstonestairs */ + "z: 47: 0\n" /* bookshelf */, // Block data: // Level 0 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "aaaaaaaaaaaaaaa" - /* 1 */ "aaaaabbbbbbbaaa" - /* 2 */ "aaaabbbbbbbbaaa" - /* 3 */ "aaaaabbbbbbbbaa" - /* 4 */ "aaaaabbbbbbbaaa" - /* 5 */ "aaaaabbbbbbbaaa" - /* 6 */ "aaaaabbbbbbbaaa" - /* 7 */ "aaaaabbbbbbbaaa" - /* 8 */ "aaaaabbbbbbbaaa" - /* 9 */ "aaaaabbbbbbbaaa" - /* 10 */ "aaaaaaaaaaaaaaa" + /* 0 */ "mmmmabbbbbbbamm" + /* 1 */ "ccccbbbbbbbbbma" + /* 2 */ "ccccbbbbbbbbbdd" + /* 3 */ "ccccbbbbbbbbbdd" + /* 4 */ "ccccbbbbbbbbbdd" + /* 5 */ "ccccbbbbbbbbbma" + /* 6 */ "ccccbbbbbbbbbmm" + /* 7 */ "mmmmbbbbbbbbbmm" + /* 8 */ "mmmmbbbbbbbbbmm" + /* 9 */ "mmmmbbbbbbbbbmm" + /* 10 */ "mmmmabbbbbbbamm" // Level 1 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "....cdddddddc.." - /* 1 */ "eeeed......fd.c" - /* 2 */ "e...g.......d.." - /* 3 */ "e...d.......h.." - /* 4 */ "e...dijk..l.d.." - /* 5 */ "e...dddd.dddd.c" - /* 6 */ "eeeed.......d.." - /* 7 */ "mmmmd.......d.." - /* 8 */ "mmmmd.......d.." - /* 9 */ "mmmmd.......d.." - /* 10 */ "mmmmcdddddddc.." + /* 0 */ "mmmmabbbbbbbamm" + /* 1 */ "ccccbeeeeeeebma" + /* 2 */ "cccceeeeeeeebff" + /* 3 */ "ccccbeeeeeeeeff" + /* 4 */ "ccccbeeeeeeebff" + /* 5 */ "ccccbeeeeeeebma" + /* 6 */ "ccccbeeeeeeebmm" + /* 7 */ "mmmmbeeeeeeebmm" + /* 8 */ "mmmmbeeeeeeebmm" + /* 9 */ "mmmmbeeeeeeebmm" + /* 10 */ "mmmmabbbbbbbamm" // Level 2 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "....cddnnnddc.." - /* 1 */ "....do.....pd.c" - /* 2 */ "....q.......d.r" - /* 3 */ "....d.......s.." - /* 4 */ "....d.t...l.d.u" - /* 5 */ "....dddd.dddd.c" - /* 6 */ "....n..r.r..n.." - /* 7 */ "mmmmn.......n.." - /* 8 */ "mmmmn.......n.." - /* 9 */ "mmmmd.......d.." - /* 10 */ "mmmmcddnnnddc.." + /* 0 */ "mmmmabbbbbbbamm" + /* 1 */ "ggggb......hb.a" + /* 2 */ "g...i.......b.." + /* 3 */ "g...b.......j.." + /* 4 */ "g...bkln..o.b.." + /* 5 */ "g...bbbb.bbbb.a" + /* 6 */ "ggggb.......bmm" + /* 7 */ "mmmmb.......bmm" + /* 8 */ "mmmmb.......bmm" + /* 9 */ "mmmmb.......bmm" + /* 10 */ "mmmmabbbbbbbamm" // Level 3 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "....cddvvvddc.." - /* 1 */ "....dwwwwwwwddx" - /* 2 */ "....dwwwwwwwd.." - /* 3 */ "....dwwwwwwwd.." - /* 4 */ "....dyyywwzwd.." - /* 5 */ "....ddddddddddx" - /* 6 */ "....AwwwwwwwB.." - /* 7 */ "mmmmAwwwwwwwB.." - /* 8 */ "mmmmAwwwwwwwB.." - /* 9 */ "mmmmdwwwwwwwd.." - /* 10 */ "mmmmcddCCCddc.." + /* 0 */ "mmmmabbpppbbamm" + /* 1 */ "....bq.....rb.a" + /* 2 */ "....s.......b.t" + /* 3 */ "....b.......s.." + /* 4 */ "....b.u...o.b.v" + /* 5 */ "....bbbb.bbbb.a" + /* 6 */ "....p..t.t..pmm" + /* 7 */ "mmmmp.......pmm" + /* 8 */ "mmmmp.......pmm" + /* 9 */ "mmmmb.......bmm" + /* 10 */ "mmmmabbpppbbamm" // Level 4 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "....dDDDdDDDd.." - /* 1 */ "....DcdddddcD.." - /* 2 */ "....Dd.....dD.." - /* 3 */ "....Dd.....dD.." - /* 4 */ "....Dd.....dD.." - /* 5 */ "....dcdd.ddcd.." - /* 6 */ "....D.......D.." - /* 7 */ "mmmmD.......D.." - /* 8 */ "mmmmD.......D.." - /* 9 */ "mmmmD.......D.." - /* 10 */ "mmmmdDDDdDDDd.." + /* 0 */ "mmmmabbwwwbbamm" + /* 1 */ "....bxxxxxxxbby" + /* 2 */ "....bxxxxxxxb.." + /* 3 */ "....bxxxxxxxb.." + /* 4 */ "....bzzzxxAxb.." + /* 5 */ "....bbbbbbbbbby" + /* 6 */ "....BxxxxxxxCmm" + /* 7 */ "mmmmBxxxxxxxCmm" + /* 8 */ "mmmmBxxxxxxxCmm" + /* 9 */ "mmmmbxxxxxxxbmm" + /* 10 */ "mmmmabbDDDbbamm" // Level 5 /* z\x* 11111 */ /* * 012345678901234 */ + /* 0 */ "mmmmbEEEbEEEbmm" + /* 1 */ "....EabbbbbaE.." + /* 2 */ "....Eb.....bE.." + /* 3 */ "....Eb.....bE.." + /* 4 */ "....Eb.....bE.." + /* 5 */ "....babb.bbab.." + /* 6 */ "....E.......Emm" + /* 7 */ "mmmmE.......Emm" + /* 8 */ "mmmmE.......Emm" + /* 9 */ "mmmmE.......Emm" + /* 10 */ "mmmmbEEEbEEEbmm" + + // Level 6 + /* z\x* 11111 */ + /* * 012345678901234 */ /* 0 */ "..............." - /* 1 */ ".....cddnddc..." - /* 2 */ ".....n.....n..." - /* 3 */ ".....n.....n..." - /* 4 */ ".....n.....n..." - /* 5 */ ".....cdd.ddc..." + /* 1 */ ".....abbpbba..." + /* 2 */ ".....p.....p..." + /* 3 */ ".....p.....p..." + /* 4 */ ".....p.....p..." + /* 5 */ ".....abb.bba..." /* 6 */ "..............." /* 7 */ "..............." /* 8 */ "..............." /* 9 */ "..............." /* 10 */ "..............." - // Level 6 + // Level 7 /* z\x* 11111 */ /* * 012345678901234 */ /* 0 */ "..............." - /* 1 */ ".....cddvddc..." - /* 2 */ ".....AwwwwwB..." - /* 3 */ ".....AwwwwwB..." - /* 4 */ ".....AwwwwwB..." - /* 5 */ ".....cdddddc..." + /* 1 */ ".....abbwbba..." + /* 2 */ ".....BxxxxxC..." + /* 3 */ ".....BxxxxxC..." + /* 4 */ ".....BxxxxxC..." + /* 5 */ ".....abbbbba..." /* 6 */ "..............." /* 7 */ "..............." /* 8 */ "..............." /* 9 */ "..............." /* 10 */ "..............." - // Level 7 + // Level 8 /* z\x* 11111 */ /* * 012345678901234 */ /* 0 */ "..............." - /* 1 */ ".....dDDdDDd..." - /* 2 */ ".....D.ddd.D..." - /* 3 */ ".....d.ddd.d..." - /* 4 */ ".....D.ddd.D..." - /* 5 */ ".....dDDdDDd..." + /* 1 */ ".....bEEbEEb..." + /* 2 */ ".....E.bbb.E..." + /* 3 */ ".....b.bbb.b..." + /* 4 */ ".....E.bbb.E..." + /* 5 */ ".....bEEbEEb..." /* 6 */ "..............." /* 7 */ "..............." /* 8 */ "..............." /* 9 */ "..............." /* 10 */ "..............." - // Level 8 + // Level 9 /* z\x* 11111 */ /* * 012345678901234 */ /* 0 */ "..............." /* 1 */ "..............." - /* 2 */ ".......cEc....." - /* 3 */ ".......FGx....." - /* 4 */ ".......cHc....." + /* 2 */ ".......aFa....." + /* 3 */ ".......GHy....." + /* 4 */ ".......aIa....." /* 5 */ "..............." /* 6 */ "..............." /* 7 */ "..............." @@ -784,14 +835,14 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 9 */ "..............." /* 10 */ "..............." - // Level 9 + // Level 10 /* z\x* 11111 */ /* * 012345678901234 */ /* 0 */ "..............." /* 1 */ "..............." - /* 2 */ ".......c.c....." - /* 3 */ "........I......" - /* 4 */ ".......c.c....." + /* 2 */ ".......a.a....." + /* 3 */ "........J......" + /* 4 */ ".......a.a....." /* 5 */ "..............." /* 6 */ "..............." /* 7 */ "..............." @@ -799,14 +850,14 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 9 */ "..............." /* 10 */ "..............." - // Level 10 + // Level 11 /* z\x* 11111 */ /* * 012345678901234 */ /* 0 */ "..............." /* 1 */ "..............." - /* 2 */ ".......cvc....." - /* 3 */ ".......A.B....." - /* 4 */ ".......cCc....." + /* 2 */ ".......awa....." + /* 3 */ ".......B.C....." + /* 4 */ ".......aDa....." /* 5 */ "..............." /* 6 */ "..............." /* 7 */ "..............." @@ -814,14 +865,14 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 9 */ "..............." /* 10 */ "..............." - // Level 11 + // Level 12 /* z\x* 11111 */ /* * 012345678901234 */ /* 0 */ "..............." /* 1 */ "..............." - /* 2 */ ".......ddd....." - /* 3 */ ".......dJd....." - /* 4 */ ".......ddd....." + /* 2 */ ".......bbb....." + /* 3 */ ".......bKb....." + /* 4 */ ".......bbb....." /* 5 */ "..............." /* 6 */ "..............." /* 7 */ "..............." @@ -829,14 +880,14 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 9 */ "..............." /* 10 */ "..............." - // Level 12 + // Level 13 /* z\x* 11111 */ /* * 012345678901234 */ /* 0 */ "..............." /* 1 */ "..............." - /* 2 */ ".......D.D....." + /* 2 */ ".......E.E....." /* 3 */ "..............." - /* 4 */ ".......D.D....." + /* 4 */ ".......E.E....." /* 5 */ "..............." /* 6 */ "..............." /* 7 */ "..............." @@ -845,7 +896,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 10 */ "...............", // Connectors: - "-1: 14, 1, 3: 5\n" /* Type -1, direction X+ */, + "-1: 14, 2, 3: 5\n" /* Type -1, direction X+ */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -871,154 +922,167 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // LargeTower: // The data has been exported from the gallery Desert, area index 80, ID 596, created by STR_Warrior { // Size: - 7, 11, 7, // SizeX = 7, SizeY = 11, SizeZ = 7 + 7, 12, 7, // SizeX = 7, SizeY = 12, SizeZ = 7 // Hitbox (relative to bounding box): -1, 0, 0, // MinX, MinY, MinZ - 7, 10, 7, // MaxX, MaxY, MaxZ + 7, 11, 7, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 12: 0\n" /* sand */ - "b: 5: 0\n" /* wood */ - "c:128: 2\n" /* sandstonestairs */ - "d:128: 0\n" /* sandstonestairs */ - "e: 24: 2\n" /* sandstone */ - "f: 24: 0\n" /* sandstone */ - "g: 71: 3\n" /* irondoorblock */ - "h:128: 1\n" /* sandstonestairs */ - "i:128: 3\n" /* sandstonestairs */ - "j: 77: 4\n" /* stonebutton */ - "k: 71: 8\n" /* irondoorblock */ - "l:128: 6\n" /* sandstonestairs */ + "a: 24: 0\n" /* sandstone */ + "b: 4: 0\n" /* cobblestone */ + "c: 12: 0\n" /* sand */ + "d: 5: 0\n" /* wood */ + "e: 13: 0\n" /* gravel */ + "f:128: 2\n" /* sandstonestairs */ + "g:128: 0\n" /* sandstonestairs */ + "h: 24: 2\n" /* sandstone */ + "i: 71: 3\n" /* irondoorblock */ + "j:128: 1\n" /* sandstonestairs */ + "k:128: 3\n" /* sandstonestairs */ + "l: 77: 4\n" /* stonebutton */ "m: 19: 0\n" /* sponge */ - "n:128: 4\n" /* sandstonestairs */ - "o:128: 5\n" /* sandstonestairs */ - "p: 50: 4\n" /* torch */ - "q:128: 7\n" /* sandstonestairs */ - "r: 85: 0\n" /* fence */ - "s: 24: 1\n" /* sandstone */ - "t: 44: 1\n" /* step */ - "u: 89: 0\n" /* lightstone */, + "n: 71: 8\n" /* irondoorblock */ + "o: 77: 3\n" /* stonebutton */ + "p:128: 6\n" /* sandstonestairs */ + "q:128: 4\n" /* sandstonestairs */ + "r:128: 5\n" /* sandstonestairs */ + "s: 50: 4\n" /* torch */ + "t:128: 7\n" /* sandstonestairs */ + "u: 85: 0\n" /* fence */ + "v: 24: 1\n" /* sandstone */ + "w: 44: 1\n" /* step */ + "x: 89: 0\n" /* lightstone */, // Block data: // Level 0 /* z\x* 0123456 */ - /* 0 */ "aaaaaaa" - /* 1 */ "aaabaaa" - /* 2 */ "aabbbaa" - /* 3 */ "aabbbaa" - /* 4 */ "aabbbaa" + /* 0 */ "mabbbam" + /* 1 */ "aacdcaa" + /* 2 */ "madddam" + /* 3 */ "madddam" + /* 4 */ "madddam" /* 5 */ "aaaaaaa" - /* 6 */ "aaaaaaa" + /* 6 */ "mammmam" // Level 1 /* z\x* 0123456 */ - /* 0 */ "mc...cm" - /* 1 */ "defgfeh" - /* 2 */ ".f...f." - /* 3 */ ".f...f." - /* 4 */ ".f...f." - /* 5 */ "defffeh" - /* 6 */ "mi...im" + /* 0 */ "maeeeam" + /* 1 */ "aacdcaa" + /* 2 */ "madddam" + /* 3 */ "madddam" + /* 4 */ "madddam" + /* 5 */ "aaaaaaa" + /* 6 */ "mammmam" // Level 2 /* z\x* 0123456 */ - /* 0 */ "m.j...m" - /* 1 */ ".efkfe." - /* 2 */ ".f...f." - /* 3 */ ".f...f." - /* 4 */ ".f...f." - /* 5 */ ".efffe." - /* 6 */ "m.....m" + /* 0 */ "mf...fm" + /* 1 */ "ghaiahj" + /* 2 */ "ma...am" + /* 3 */ "ma...am" + /* 4 */ "ma...am" + /* 5 */ "ghaaahj" + /* 6 */ "mkmmmkm" // Level 3 /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "..lfl.." - /* 2 */ ".n...o." - /* 3 */ ".f...f." - /* 4 */ ".n.p.o." - /* 5 */ "..qfq.." - /* 6 */ "......." + /* 0 */ "m.l...m" + /* 1 */ ".hanah." + /* 2 */ ".ao..a." + /* 3 */ ".a...a." + /* 4 */ ".a...a." + /* 5 */ ".haaah." + /* 6 */ "m.....m" // Level 4 /* z\x* 0123456 */ /* 0 */ "......." - /* 1 */ "..frf.." - /* 2 */ ".f...f." - /* 3 */ ".r...r." - /* 4 */ ".f...f." - /* 5 */ "..frf.." + /* 1 */ "..pap.." + /* 2 */ ".q...r." + /* 3 */ ".a...a." + /* 4 */ ".q.s.r." + /* 5 */ "..tat.." /* 6 */ "......." // Level 5 /* z\x* 0123456 */ /* 0 */ "......." - /* 1 */ "..frf.." - /* 2 */ ".f...f." - /* 3 */ ".r...r." - /* 4 */ ".f...f." - /* 5 */ "..frf.." + /* 1 */ "..aua.." + /* 2 */ ".a...a." + /* 3 */ ".u...u." + /* 4 */ ".a...a." + /* 5 */ "..aua.." /* 6 */ "......." // Level 6 /* z\x* 0123456 */ /* 0 */ "......." - /* 1 */ "..frf.." - /* 2 */ ".f...f." - /* 3 */ ".r...r." - /* 4 */ ".f...f." - /* 5 */ "..frf.." + /* 1 */ "..aua.." + /* 2 */ ".a...a." + /* 3 */ ".u...u." + /* 4 */ ".a...a." + /* 5 */ "..aua.." /* 6 */ "......." // Level 7 /* z\x* 0123456 */ /* 0 */ "......." - /* 1 */ "..cfc.." - /* 2 */ ".d...h." - /* 3 */ ".f...f." - /* 4 */ ".d...h." - /* 5 */ "..ifi.." + /* 1 */ "..aua.." + /* 2 */ ".a...a." + /* 3 */ ".u...u." + /* 4 */ ".a...a." + /* 5 */ "..aua.." /* 6 */ "......." // Level 8 /* z\x* 0123456 */ /* 0 */ "......." - /* 1 */ ".ffsff." - /* 2 */ ".f...f." - /* 3 */ ".s...s." - /* 4 */ ".f...f." - /* 5 */ ".ffsff." + /* 1 */ "..faf.." + /* 2 */ ".g...j." + /* 3 */ ".a...a." + /* 4 */ ".g...j." + /* 5 */ "..kak.." /* 6 */ "......." // Level 9 /* z\x* 0123456 */ - /* 0 */ "...l..." - /* 1 */ ".efffe." - /* 2 */ ".ftttf." - /* 3 */ "nftftfo" - /* 4 */ ".ftttf." - /* 5 */ ".efffe." - /* 6 */ "...q..." + /* 0 */ "......." + /* 1 */ ".aavaa." + /* 2 */ ".a...a." + /* 3 */ ".v...v." + /* 4 */ ".a...a." + /* 5 */ ".aavaa." + /* 6 */ "......." // Level 10 /* z\x* 0123456 */ - /* 0 */ "...t..." - /* 1 */ ".t...t." + /* 0 */ "...p..." + /* 1 */ ".haaah." + /* 2 */ ".awwwa." + /* 3 */ "qawawar" + /* 4 */ ".awwwa." + /* 5 */ ".haaah." + /* 6 */ "...t..." + + // Level 11 + /* z\x* 0123456 */ + /* 0 */ "...w..." + /* 1 */ ".w...w." /* 2 */ "......." - /* 3 */ "t..u..t" + /* 3 */ "w..x..w" /* 4 */ "......." - /* 5 */ ".t...t." - /* 6 */ "...t...", + /* 5 */ ".w...w." + /* 6 */ "...w...", // Connectors: - "-1: 3, 1, 0: 2\n" /* Type -1, direction Z- */, + "-1: 3, 2, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1044,91 +1108,102 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // LittleHouse: // The data has been exported from the gallery Desert, area index 65, ID 551, created by STR_Warrior { // Size: - 5, 5, 7, // SizeX = 5, SizeY = 5, SizeZ = 7 + 5, 6, 7, // SizeX = 5, SizeY = 6, SizeZ = 7 // Hitbox (relative to bounding box): -1, 0, 0, // MinX, MinY, MinZ - 5, 4, 7, // MaxX, MaxY, MaxZ + 5, 5, 7, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 12: 0\n" /* sand */ - "b: 5: 0\n" /* wood */ - "c: 24: 2\n" /* sandstone */ - "d: 24: 0\n" /* sandstone */ - "e: 64: 3\n" /* wooddoorblock */ - "f: 61: 2\n" /* furnace */ - "g: 65: 2\n" /* ladder */ - "h: 64: 8\n" /* wooddoorblock */ - "i:101: 0\n" /* ironbars */ - "j: 50: 4\n" /* torch */ - "k:128: 2\n" /* sandstonestairs */ - "l:126: 8\n" /* woodenslab */ + "a: 24: 2\n" /* sandstone */ + "b: 4: 0\n" /* cobblestone */ + "c: 24: 0\n" /* sandstone */ + "d: 13: 0\n" /* gravel */ + "e: 5: 0\n" /* wood */ + "f: 64: 3\n" /* wooddoorblock */ + "g: 61: 2\n" /* furnace */ + "h: 65: 2\n" /* ladder */ + "i: 64: 8\n" /* wooddoorblock */ + "j:101: 0\n" /* ironbars */ + "k: 50: 4\n" /* torch */ + "l:128: 2\n" /* sandstonestairs */ "m: 19: 0\n" /* sponge */ - "n:128: 4\n" /* sandstonestairs */ - "o:128: 5\n" /* sandstonestairs */ - "p:128: 7\n" /* sandstonestairs */ - "q: 44: 1\n" /* step */ - "r: 96: 6\n" /* trapdoor */, + "n:126: 8\n" /* woodenslab */ + "o:128: 4\n" /* sandstonestairs */ + "p:128: 5\n" /* sandstonestairs */ + "q:128: 7\n" /* sandstonestairs */ + "r: 44: 1\n" /* step */ + "s: 96: 2\n" /* trapdoor */, // Block data: // Level 0 /* z\x* 01234 */ - /* 0 */ "aaaaa" - /* 1 */ "aaaaa" - /* 2 */ "aabaa" - /* 3 */ "abbba" - /* 4 */ "abbba" - /* 5 */ "abbba" - /* 6 */ "aaaaa" + /* 0 */ "abbba" + /* 1 */ "mbbbm" + /* 2 */ "accca" + /* 3 */ "ccccc" + /* 4 */ "ccccc" + /* 5 */ "ccccc" + /* 6 */ "accca" // Level 1 /* z\x* 01234 */ - /* 0 */ "c...c" - /* 1 */ "....." - /* 2 */ "cdedc" - /* 3 */ "d...d" - /* 4 */ "d...d" - /* 5 */ "df.gd" - /* 6 */ "cdddc" + /* 0 */ "addda" + /* 1 */ "mdddm" + /* 2 */ "aceca" + /* 3 */ "ceeec" + /* 4 */ "ceeec" + /* 5 */ "ceeec" + /* 6 */ "accca" // Level 2 /* z\x* 01234 */ - /* 0 */ "c...c" + /* 0 */ "a...a" /* 1 */ "....." - /* 2 */ "cdhdc" - /* 3 */ "d...d" - /* 4 */ "i...i" - /* 5 */ "dj.gd" - /* 6 */ "cdidc" + /* 2 */ "acfca" + /* 3 */ "c...c" + /* 4 */ "c...c" + /* 5 */ "cg.hc" + /* 6 */ "accca" // Level 3 /* z\x* 01234 */ - /* 0 */ "k...k" - /* 1 */ "d...d" - /* 2 */ "cdddc" - /* 3 */ "dllld" - /* 4 */ "nlllo" - /* 5 */ "dllgd" - /* 6 */ "cdpdc" + /* 0 */ "a...a" + /* 1 */ "....." + /* 2 */ "acica" + /* 3 */ "c...c" + /* 4 */ "j...j" + /* 5 */ "ck.hc" + /* 6 */ "acjca" // Level 4 /* z\x* 01234 */ + /* 0 */ "l...l" + /* 1 */ "c...c" + /* 2 */ "accca" + /* 3 */ "cnnnc" + /* 4 */ "onnnp" + /* 5 */ "cnnhc" + /* 6 */ "acqca" + + // Level 5 + /* z\x* 01234 */ /* 0 */ "....." /* 1 */ "....." - /* 2 */ "dqdqd" - /* 3 */ "q...q" - /* 4 */ "d...d" - /* 5 */ "q..rq" - /* 6 */ "dqdqd", + /* 2 */ "crcrc" + /* 3 */ "r...r" + /* 4 */ "c...c" + /* 5 */ "r..sr" + /* 6 */ "crcrc", // Connectors: - "-1: 2, 1, 0: 2\n" /* Type -1, direction Z- */, + "-1: 2, 2, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1154,112 +1229,128 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // LittleHouse2: // The data has been exported from the gallery Desert, area index 72, ID 562, created by STR_Warrior { // Size: - 7, 5, 11, // SizeX = 7, SizeY = 5, SizeZ = 11 + 7, 6, 11, // SizeX = 7, SizeY = 6, SizeZ = 11 // Hitbox (relative to bounding box): -1, 0, 0, // MinX, MinY, MinZ - 7, 4, 11, // MaxX, MaxY, MaxZ + 7, 5, 11, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 12: 0\n" /* sand */ - "b: 5: 0\n" /* wood */ - "c: 24: 2\n" /* sandstone */ - "d: 24: 0\n" /* sandstone */ - "e: 64: 3\n" /* wooddoorblock */ - "f: 65: 5\n" /* ladder */ - "g: 85: 0\n" /* fence */ - "h:101: 0\n" /* ironbars */ - "i: 64: 8\n" /* wooddoorblock */ - "j: 50: 3\n" /* torch */ - "k:128: 2\n" /* sandstonestairs */ - "l:128: 6\n" /* sandstonestairs */ + "a: 24: 2\n" /* sandstone */ + "b: 4: 0\n" /* cobblestone */ + "c: 24: 0\n" /* sandstone */ + "d: 12: 0\n" /* sand */ + "e: 13: 0\n" /* gravel */ + "f: 5: 0\n" /* wood */ + "g: 64: 3\n" /* wooddoorblock */ + "h: 65: 5\n" /* ladder */ + "i: 85: 0\n" /* fence */ + "j:101: 0\n" /* ironbars */ + "k: 64: 8\n" /* wooddoorblock */ + "l: 50: 3\n" /* torch */ "m: 19: 0\n" /* sponge */ - "n:126: 8\n" /* woodenslab */ - "o:128: 4\n" /* sandstonestairs */ - "p:128: 5\n" /* sandstonestairs */ - "q:128: 7\n" /* sandstonestairs */ - "r: 44: 1\n" /* step */ - "s: 96: 0\n" /* trapdoor */, + "n:128: 2\n" /* sandstonestairs */ + "o:128: 6\n" /* sandstonestairs */ + "p:126: 8\n" /* woodenslab */ + "q:128: 4\n" /* sandstonestairs */ + "r:128: 5\n" /* sandstonestairs */ + "s:128: 7\n" /* sandstonestairs */ + "t: 44: 1\n" /* step */ + "u: 96: 0\n" /* trapdoor */, // Block data: // Level 0 /* z\x* 0123456 */ - /* 0 */ "aaaaaaa" - /* 1 */ "aaaaaaa" - /* 2 */ "aaaabaa" - /* 3 */ "abbbbba" - /* 4 */ "abbbbba" - /* 5 */ "abbbbba" - /* 6 */ "aabaaaa" - /* 7 */ "aaaaaaa" - /* 8 */ "aaaaaaa" - /* 9 */ "aaaaaaa" - /* 10 */ "aaaaaaa" + /* 0 */ "mabbbam" + /* 1 */ "mmbbbmm" + /* 2 */ "accccca" + /* 3 */ "ccccccc" + /* 4 */ "ccccccc" + /* 5 */ "ccccccc" + /* 6 */ "accccca" + /* 7 */ "ddddddd" + /* 8 */ "ddddddd" + /* 9 */ "ddddddd" + /* 10 */ "ddddddd" // Level 1 /* z\x* 0123456 */ - /* 0 */ ".c...c." - /* 1 */ "......." - /* 2 */ "cdddedc" - /* 3 */ "d.....d" - /* 4 */ "d.....d" - /* 5 */ "df....d" - /* 6 */ "cd.dddc" - /* 7 */ "g.....g" - /* 8 */ "g.....g" - /* 9 */ "g.....g" - /* 10 */ "ggggggg" + /* 0 */ "maeeeam" + /* 1 */ "mmeeemm" + /* 2 */ "acccfca" + /* 3 */ "cfffffc" + /* 4 */ "cfffffc" + /* 5 */ "cfffffc" + /* 6 */ "acfccca" + /* 7 */ "ddddddd" + /* 8 */ "ddddddd" + /* 9 */ "ddddddd" + /* 10 */ "ddddddd" // Level 2 /* z\x* 0123456 */ - /* 0 */ ".c...c." - /* 1 */ "......." - /* 2 */ "cdhdidc" - /* 3 */ "d..j..d" - /* 4 */ "h.....h" - /* 5 */ "df....d" - /* 6 */ "cd.dhdc" + /* 0 */ "ma...am" + /* 1 */ "m.....m" + /* 2 */ "acccgca" + /* 3 */ "c.....c" + /* 4 */ "c.....c" + /* 5 */ "ch....c" + /* 6 */ "ac.ccca" + /* 7 */ "i.....i" + /* 8 */ "i.....i" + /* 9 */ "i.....i" + /* 10 */ "iiiiiii" + + // Level 3 + /* z\x* 0123456 */ + /* 0 */ "ma...am" + /* 1 */ "m.....m" + /* 2 */ "acjckca" + /* 3 */ "c..l..c" + /* 4 */ "j.....j" + /* 5 */ "ch....c" + /* 6 */ "ac.cjca" /* 7 */ "......." /* 8 */ "......." /* 9 */ "......." /* 10 */ "......." - // Level 3 + // Level 4 /* z\x* 0123456 */ - /* 0 */ ".k...k." - /* 1 */ ".d...d." - /* 2 */ "cdldddc" - /* 3 */ "dnnnnnd" - /* 4 */ "onnnnnp" - /* 5 */ "dfnnnnd" - /* 6 */ "cdddqdc" + /* 0 */ "mn...nm" + /* 1 */ "mc...cm" + /* 2 */ "acoccca" + /* 3 */ "cpppppc" + /* 4 */ "qpppppr" + /* 5 */ "chppppc" + /* 6 */ "acccsca" /* 7 */ "......." /* 8 */ "......." /* 9 */ "......." /* 10 */ "......." - // Level 4 + // Level 5 /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "......." - /* 2 */ "drrdrrd" - /* 3 */ "r.....r" - /* 4 */ "d.....d" - /* 5 */ "rs....r" - /* 6 */ "drrdrrd" + /* 0 */ "m.....m" + /* 1 */ "m.....m" + /* 2 */ "cttcttc" + /* 3 */ "t.....t" + /* 4 */ "c.....c" + /* 5 */ "tu....t" + /* 6 */ "cttcttc" /* 7 */ "......." /* 8 */ "......." /* 9 */ "......." /* 10 */ ".......", // Connectors: - "-1: 3, 1, 0: 2\n" /* Type -1, direction Z- */, + "-1: 3, 2, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1285,90 +1376,101 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // LittleHouse3: // The data has been exported from the gallery Desert, area index 66, ID 553, created by STR_Warrior { // Size: - 9, 5, 7, // SizeX = 9, SizeY = 5, SizeZ = 7 + 9, 6, 7, // SizeX = 9, SizeY = 6, SizeZ = 7 // Hitbox (relative to bounding box): -1, 0, 0, // MinX, MinY, MinZ - 9, 4, 7, // MaxX, MaxY, MaxZ + 9, 5, 7, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 12: 0\n" /* sand */ - "b: 5: 0\n" /* wood */ - "c: 24: 2\n" /* sandstone */ - "d: 24: 0\n" /* sandstone */ - "e: 64: 7\n" /* wooddoorblock */ - "f: 65: 2\n" /* ladder */ - "g: 64:12\n" /* wooddoorblock */ - "h:101: 0\n" /* ironbars */ - "i: 50: 4\n" /* torch */ - "j:128: 2\n" /* sandstonestairs */ - "k:126: 8\n" /* woodenslab */ - "l:128: 4\n" /* sandstonestairs */ + "a: 24: 2\n" /* sandstone */ + "b: 4: 0\n" /* cobblestone */ + "c: 24: 0\n" /* sandstone */ + "d: 13: 0\n" /* gravel */ + "e: 5: 0\n" /* wood */ + "f: 64: 3\n" /* wooddoorblock */ + "g: 65: 2\n" /* ladder */ + "h: 64: 8\n" /* wooddoorblock */ + "i:101: 0\n" /* ironbars */ + "j: 50: 4\n" /* torch */ + "k:128: 2\n" /* sandstonestairs */ + "l:126: 8\n" /* woodenslab */ "m: 19: 0\n" /* sponge */ - "n:128: 5\n" /* sandstonestairs */ - "o:128: 7\n" /* sandstonestairs */ - "p: 44: 1\n" /* step */ - "q: 96: 2\n" /* trapdoor */, + "n:128: 4\n" /* sandstonestairs */ + "o:128: 5\n" /* sandstonestairs */ + "p:128: 7\n" /* sandstonestairs */ + "q: 44: 1\n" /* step */ + "r: 96: 2\n" /* trapdoor */, // Block data: // Level 0 /* z\x* 012345678 */ - /* 0 */ "aaaaaaaaa" - /* 1 */ "aaaaaaaaa" - /* 2 */ "aaaabaaaa" - /* 3 */ "abbbbbbba" - /* 4 */ "abbbbbbba" - /* 5 */ "abbbbbbba" - /* 6 */ "aaaaaaaaa" + /* 0 */ "mmabbbamm" + /* 1 */ "mmmbbbmmm" + /* 2 */ "accccccca" + /* 3 */ "ccccccccc" + /* 4 */ "ccccccccc" + /* 5 */ "ccccccccc" + /* 6 */ "accccccca" // Level 1 /* z\x* 012345678 */ - /* 0 */ "..c...c.." - /* 1 */ "........." - /* 2 */ "cdddedddc" - /* 3 */ "d.......d" - /* 4 */ "d.......d" - /* 5 */ "d......fd" - /* 6 */ "cdddddddc" + /* 0 */ "mmadddamm" + /* 1 */ "mmmdddmmm" + /* 2 */ "accceccca" + /* 3 */ "ceeeeeeec" + /* 4 */ "ceeeeeeec" + /* 5 */ "ceeeeeeec" + /* 6 */ "accccccca" // Level 2 /* z\x* 012345678 */ - /* 0 */ "..c...c.." - /* 1 */ "........." - /* 2 */ "cdddgdddc" - /* 3 */ "d.......d" - /* 4 */ "h.......h" - /* 5 */ "d.i....fd" - /* 6 */ "cddhhhddc" + /* 0 */ "mma...amm" + /* 1 */ "mm.....mm" + /* 2 */ "acccfccca" + /* 3 */ "c.......c" + /* 4 */ "c.......c" + /* 5 */ "c......gc" + /* 6 */ "accccccca" // Level 3 /* z\x* 012345678 */ - /* 0 */ "..j...j.." - /* 1 */ "..d...d.." - /* 2 */ "cdddddddc" - /* 3 */ "dkkkkkkkd" - /* 4 */ "lkkkkkkkn" - /* 5 */ "dkkkkkkfd" - /* 6 */ "cddoooddc" + /* 0 */ "mma...amm" + /* 1 */ "mm.....mm" + /* 2 */ "accchccca" + /* 3 */ "c.......c" + /* 4 */ "i.......i" + /* 5 */ "c.j....gc" + /* 6 */ "acciiicca" // Level 4 /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ "........." - /* 2 */ "dpppdpppd" - /* 3 */ "p.......p" - /* 4 */ "d.......d" - /* 5 */ "p......qp" - /* 6 */ "dpppdpppd", + /* 0 */ "mmk...kmm" + /* 1 */ "mmc...cmm" + /* 2 */ "accccccca" + /* 3 */ "clllllllc" + /* 4 */ "nlllllllo" + /* 5 */ "cllllllgc" + /* 6 */ "accpppcca" + + // Level 5 + /* z\x* 012345678 */ + /* 0 */ "mm.....mm" + /* 1 */ "mm.....mm" + /* 2 */ "cqqqcqqqc" + /* 3 */ "q.......q" + /* 4 */ "c.......c" + /* 5 */ "q......rq" + /* 6 */ "cqqqcqqqc", // Connectors: - "-1: 4, 1, 0: 2\n" /* Type -1, direction Z- */, + "-1: 4, 2, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1394,117 +1496,132 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // LittleHouse4: // The data has been exported from the gallery Desert, area index 70, ID 560, created by STR_Warrior { // Size: - 5, 5, 11, // SizeX = 5, SizeY = 5, SizeZ = 11 + 5, 6, 11, // SizeX = 5, SizeY = 6, SizeZ = 11 // Hitbox (relative to bounding box): -1, 0, 0, // MinX, MinY, MinZ - 5, 4, 11, // MaxX, MaxY, MaxZ + 5, 5, 11, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 12: 0\n" /* sand */ - "b: 5: 0\n" /* wood */ - "c: 24: 2\n" /* sandstone */ - "d: 24: 0\n" /* sandstone */ - "e: 64: 7\n" /* wooddoorblock */ - "f: 65: 5\n" /* ladder */ - "g:134: 3\n" /* 134 */ - "h: 85: 0\n" /* fence */ - "i:134: 2\n" /* 134 */ - "j: 61: 2\n" /* furnace */ - "k:134: 6\n" /* 134 */ - "l:134: 4\n" /* 134 */ + "a: 24: 2\n" /* sandstone */ + "b: 4: 0\n" /* cobblestone */ + "c: 24: 0\n" /* sandstone */ + "d: 13: 0\n" /* gravel */ + "e: 5: 0\n" /* wood */ + "f: 64: 3\n" /* wooddoorblock */ + "g: 65: 5\n" /* ladder */ + "h:134: 3\n" /* 134 */ + "i: 85: 0\n" /* fence */ + "j:134: 2\n" /* 134 */ + "k: 61: 2\n" /* furnace */ + "l:134: 6\n" /* 134 */ "m: 19: 0\n" /* sponge */ - "n: 64:12\n" /* wooddoorblock */ - "o: 50: 2\n" /* torch */ - "p:101: 0\n" /* ironbars */ - "q:171: 8\n" /* carpet */ - "r:128: 2\n" /* sandstonestairs */ - "s:126: 8\n" /* woodenslab */ - "t:128: 4\n" /* sandstonestairs */ - "u:128: 5\n" /* sandstonestairs */ - "v:128: 7\n" /* sandstonestairs */ - "w: 44: 1\n" /* step */ - "x: 96: 1\n" /* trapdoor */, + "n:134: 4\n" /* 134 */ + "o: 64: 8\n" /* wooddoorblock */ + "p: 50: 2\n" /* torch */ + "q:101: 0\n" /* ironbars */ + "r:171: 8\n" /* carpet */ + "s:128: 2\n" /* sandstonestairs */ + "t:126: 8\n" /* woodenslab */ + "u:128: 4\n" /* sandstonestairs */ + "v:128: 5\n" /* sandstonestairs */ + "w:128: 7\n" /* sandstonestairs */ + "x: 44: 1\n" /* step */ + "y: 96: 1\n" /* trapdoor */, // Block data: // Level 0 /* z\x* 01234 */ - /* 0 */ "aaaaa" - /* 1 */ "aaaaa" - /* 2 */ "aabaa" - /* 3 */ "abbba" - /* 4 */ "abbba" - /* 5 */ "abbba" - /* 6 */ "abbba" - /* 7 */ "abbba" - /* 8 */ "abbba" - /* 9 */ "abbba" - /* 10 */ "aaaaa" + /* 0 */ "abbba" + /* 1 */ "mbbbm" + /* 2 */ "accca" + /* 3 */ "ccccc" + /* 4 */ "ccccc" + /* 5 */ "ccccc" + /* 6 */ "ccccc" + /* 7 */ "ccccc" + /* 8 */ "ccccc" + /* 9 */ "ccccc" + /* 10 */ "accca" // Level 1 /* z\x* 01234 */ - /* 0 */ "c...c" - /* 1 */ "....." - /* 2 */ "cdedc" - /* 3 */ "df..d" - /* 4 */ "d...d" - /* 5 */ "d..gd" - /* 6 */ "d..hd" - /* 7 */ "d..id" - /* 8 */ "d...d" - /* 9 */ "djkld" - /* 10 */ "cdddc" + /* 0 */ "addda" + /* 1 */ "mdddm" + /* 2 */ "aceca" + /* 3 */ "ceeec" + /* 4 */ "ceeec" + /* 5 */ "ceeec" + /* 6 */ "ceeec" + /* 7 */ "ceeec" + /* 8 */ "ceeec" + /* 9 */ "ceeec" + /* 10 */ "accca" // Level 2 /* z\x* 01234 */ - /* 0 */ "c...c" + /* 0 */ "a...a" /* 1 */ "....." - /* 2 */ "cdndc" - /* 3 */ "df..d" - /* 4 */ "d..od" - /* 5 */ "p...p" - /* 6 */ "p..qp" - /* 7 */ "p...p" - /* 8 */ "d...d" - /* 9 */ "d...d" - /* 10 */ "cdpdc" + /* 2 */ "acfca" + /* 3 */ "cg..c" + /* 4 */ "c...c" + /* 5 */ "c..hc" + /* 6 */ "c..ic" + /* 7 */ "c..jc" + /* 8 */ "c...c" + /* 9 */ "cklnc" + /* 10 */ "accca" // Level 3 /* z\x* 01234 */ - /* 0 */ "r...r" - /* 1 */ "d...d" - /* 2 */ "cdddc" - /* 3 */ "dfssd" - /* 4 */ "dsssd" - /* 5 */ "tsssu" - /* 6 */ "tsssu" - /* 7 */ "tsssu" - /* 8 */ "dsssd" - /* 9 */ "dsssd" - /* 10 */ "cdvdc" + /* 0 */ "a...a" + /* 1 */ "....." + /* 2 */ "acoca" + /* 3 */ "cg..c" + /* 4 */ "c..pc" + /* 5 */ "q...q" + /* 6 */ "q..rq" + /* 7 */ "q...q" + /* 8 */ "c...c" + /* 9 */ "c...c" + /* 10 */ "acqca" // Level 4 /* z\x* 01234 */ + /* 0 */ "s...s" + /* 1 */ "c...c" + /* 2 */ "accca" + /* 3 */ "cgttc" + /* 4 */ "ctttc" + /* 5 */ "utttv" + /* 6 */ "utttv" + /* 7 */ "utttv" + /* 8 */ "ctttc" + /* 9 */ "ctttc" + /* 10 */ "acwca" + + // Level 5 + /* z\x* 01234 */ /* 0 */ "....." /* 1 */ "....." - /* 2 */ "dwdwd" - /* 3 */ "wx..w" - /* 4 */ "w...w" - /* 5 */ "w...w" - /* 6 */ "d...d" - /* 7 */ "w...w" - /* 8 */ "w...w" - /* 9 */ "w...w" - /* 10 */ "dwdwd", + /* 2 */ "cxcxc" + /* 3 */ "xy..x" + /* 4 */ "x...x" + /* 5 */ "x...x" + /* 6 */ "c...c" + /* 7 */ "x...x" + /* 8 */ "x...x" + /* 9 */ "x...x" + /* 10 */ "cxcxc", // Connectors: - "-1: 2, 1, 0: 2\n" /* Type -1, direction Z- */, + "-1: 2, 2, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1530,102 +1647,115 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // LittleHouse5: // The data has been exported from the gallery Desert, area index 68, ID 558, created by STR_Warrior { // Size: - 9, 5, 9, // SizeX = 9, SizeY = 5, SizeZ = 9 + 9, 6, 9, // SizeX = 9, SizeY = 6, SizeZ = 9 // Hitbox (relative to bounding box): -1, 0, 0, // MinX, MinY, MinZ - 9, 4, 9, // MaxX, MaxY, MaxZ + 9, 5, 9, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 12: 0\n" /* sand */ - "b: 5: 0\n" /* wood */ - "c: 24: 2\n" /* sandstone */ - "d: 24: 0\n" /* sandstone */ - "e: 64: 7\n" /* wooddoorblock */ - "f: 65: 2\n" /* ladder */ - "g: 64:12\n" /* wooddoorblock */ - "h:101: 0\n" /* ironbars */ - "i: 50: 1\n" /* torch */ - "j: 50: 4\n" /* torch */ - "k:128: 2\n" /* sandstonestairs */ - "l:126: 8\n" /* woodenslab */ + "a: 24: 2\n" /* sandstone */ + "b: 4: 0\n" /* cobblestone */ + "c: 24: 0\n" /* sandstone */ + "d: 13: 0\n" /* gravel */ + "e: 5: 0\n" /* wood */ + "f: 64: 3\n" /* wooddoorblock */ + "g: 65: 2\n" /* ladder */ + "h: 64: 8\n" /* wooddoorblock */ + "i:101: 0\n" /* ironbars */ + "j: 50: 1\n" /* torch */ + "k: 50: 4\n" /* torch */ + "l:128: 2\n" /* sandstonestairs */ "m: 19: 0\n" /* sponge */ - "n:128: 6\n" /* sandstonestairs */ - "o:128: 5\n" /* sandstonestairs */ - "p:128: 4\n" /* sandstonestairs */ - "q:128: 7\n" /* sandstonestairs */ - "r: 44: 1\n" /* step */ - "s: 96: 6\n" /* trapdoor */, + "n:126: 8\n" /* woodenslab */ + "o:128: 6\n" /* sandstonestairs */ + "p:128: 5\n" /* sandstonestairs */ + "q:128: 4\n" /* sandstonestairs */ + "r:128: 7\n" /* sandstonestairs */ + "s: 44: 1\n" /* step */ + "t: 96: 2\n" /* trapdoor */, // Block data: // Level 0 /* z\x* 012345678 */ - /* 0 */ "aaaaaaaaa" - /* 1 */ "aaaaaaaaa" - /* 2 */ "aaaaaabaa" - /* 3 */ "aaaaabbba" - /* 4 */ "aaaaabbba" - /* 5 */ "abbbbbbba" - /* 6 */ "abbbbbbba" - /* 7 */ "abbbbbbba" - /* 8 */ "aaaaaaaaa" + /* 0 */ "mmmmabbba" + /* 1 */ "mmmmmbbbm" + /* 2 */ "mmmmaccca" + /* 3 */ "mmmmccccc" + /* 4 */ "acccacccc" + /* 5 */ "ccccccccc" + /* 6 */ "ccccccccc" + /* 7 */ "ccccccccc" + /* 8 */ "accccccca" // Level 1 /* z\x* 012345678 */ - /* 0 */ "mmmmc...c" - /* 1 */ "mmmm....." - /* 2 */ "mmmmcdedc" - /* 3 */ "mmmmd...d" - /* 4 */ "cdddd...d" - /* 5 */ "d.......d" - /* 6 */ "d.......d" - /* 7 */ "d......fd" - /* 8 */ "cdddddddc" + /* 0 */ "mmmmaddda" + /* 1 */ "mmmmmdddm" + /* 2 */ "mmmmaceca" + /* 3 */ "mmmmceeec" + /* 4 */ "acccaeeec" + /* 5 */ "ceeeeeeec" + /* 6 */ "ceeeeeeec" + /* 7 */ "ceeeeeeec" + /* 8 */ "accccccca" // Level 2 /* z\x* 012345678 */ - /* 0 */ "mmmmc...c" + /* 0 */ "mmmma...a" /* 1 */ "mmmm....." - /* 2 */ "mmmmcdgdc" - /* 3 */ "mmmmd...d" - /* 4 */ "cdhdd...h" - /* 5 */ "d.......h" - /* 6 */ "h.......d" - /* 7 */ "di....jfd" - /* 8 */ "cddhhhddc" + /* 2 */ "mmmmacfca" + /* 3 */ "mmmmc...c" + /* 4 */ "accca...c" + /* 5 */ "c.......c" + /* 6 */ "c.......c" + /* 7 */ "c......gc" + /* 8 */ "accccccca" // Level 3 /* z\x* 012345678 */ - /* 0 */ "mmmmk...k" - /* 1 */ "mmmmd...d" - /* 2 */ "mmmmcdddc" - /* 3 */ "mmmmdllld" - /* 4 */ "cdnddlllo" - /* 5 */ "dlllllllo" - /* 6 */ "pllllllld" - /* 7 */ "dllllllfd" - /* 8 */ "cddqqqddc" + /* 0 */ "mmmma...a" + /* 1 */ "mmmm....." + /* 2 */ "mmmmachca" + /* 3 */ "mmmmc...c" + /* 4 */ "acica...i" + /* 5 */ "c.......i" + /* 6 */ "i.......i" + /* 7 */ "cj....kgc" + /* 8 */ "acciiicca" // Level 4 /* z\x* 012345678 */ + /* 0 */ "mmmml...l" + /* 1 */ "mmmmc...c" + /* 2 */ "mmmmaccca" + /* 3 */ "mmmmcnnnc" + /* 4 */ "acocannnp" + /* 5 */ "cnnnnnnnp" + /* 6 */ "qnnnnnnnp" + /* 7 */ "cnnnnnngc" + /* 8 */ "accrrrcca" + + // Level 5 + /* z\x* 012345678 */ /* 0 */ "mmmm....." /* 1 */ "mmmm....." - /* 2 */ "mmmmcrdrd" - /* 3 */ "mmmmr...r" - /* 4 */ "drrrd...d" - /* 5 */ "r.......r" - /* 6 */ "r.......r" - /* 7 */ "r......sr" - /* 8 */ "drrrdrrrd", + /* 2 */ "mmmmcscsc" + /* 3 */ "mmmms...s" + /* 4 */ "csssc...c" + /* 5 */ "s.......s" + /* 6 */ "s.......s" + /* 7 */ "s......ts" + /* 8 */ "cssscsssc", // Connectors: - "-1: 6, 1, 0: 2\n" /* Type -1, direction Z- */, + "-1: 6, 2, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1651,107 +1781,122 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // LittleHouse6: // The data has been exported from the gallery Desert, area index 69, ID 559, created by STR_Warrior { // Size: - 9, 5, 9, // SizeX = 9, SizeY = 5, SizeZ = 9 + 9, 6, 9, // SizeX = 9, SizeY = 6, SizeZ = 9 // Hitbox (relative to bounding box): -1, 0, 0, // MinX, MinY, MinZ - 9, 4, 9, // MaxX, MaxY, MaxZ + 9, 5, 9, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ + "A: 96: 2\n" /* trapdoor */ "a: 12: 0\n" /* sand */ - "b: 2: 0\n" /* grass */ - "c: 5: 0\n" /* wood */ - "d: 85: 0\n" /* fence */ - "e: 24: 2\n" /* sandstone */ - "f: 24: 0\n" /* sandstone */ - "g: 64: 7\n" /* wooddoorblock */ - "h: 38: 1\n" /* rose */ - "i: 38: 2\n" /* rose */ - "j: 38: 5\n" /* rose */ - "k: 65: 2\n" /* ladder */ - "l: 64:12\n" /* wooddoorblock */ + "b: 24: 2\n" /* sandstone */ + "c: 4: 0\n" /* cobblestone */ + "d: 3: 0\n" /* dirt */ + "e: 24: 0\n" /* sandstone */ + "f: 13: 0\n" /* gravel */ + "g: 2: 0\n" /* grass */ + "h: 5: 0\n" /* wood */ + "i: 85: 0\n" /* fence */ + "j: 64: 3\n" /* wooddoorblock */ + "k: 38: 1\n" /* rose */ + "l: 38: 2\n" /* rose */ "m: 19: 0\n" /* sponge */ - "n:101: 0\n" /* ironbars */ - "o: 50: 1\n" /* torch */ - "p: 50: 4\n" /* torch */ - "q:128: 2\n" /* sandstonestairs */ - "r:126: 8\n" /* woodenslab */ - "s:128: 6\n" /* sandstonestairs */ - "t:128: 5\n" /* sandstonestairs */ - "u:128: 4\n" /* sandstonestairs */ - "v:128: 7\n" /* sandstonestairs */ - "w: 44: 1\n" /* step */ - "x: 96: 6\n" /* trapdoor */, + "n: 38: 5\n" /* rose */ + "o: 65: 2\n" /* ladder */ + "p: 64: 8\n" /* wooddoorblock */ + "q:101: 0\n" /* ironbars */ + "r: 50: 1\n" /* torch */ + "s: 50: 4\n" /* torch */ + "t:128: 2\n" /* sandstonestairs */ + "u:126: 8\n" /* woodenslab */ + "v:128: 6\n" /* sandstonestairs */ + "w:128: 5\n" /* sandstonestairs */ + "x:128: 4\n" /* sandstonestairs */ + "y:128: 7\n" /* sandstonestairs */ + "z: 44: 1\n" /* step */, // Block data: // Level 0 /* z\x* 012345678 */ - /* 0 */ "aaaaaaaaa" - /* 1 */ "abbbaaaaa" - /* 2 */ "abbbaacaa" - /* 3 */ "abbbaccca" - /* 4 */ "aaaaaccca" - /* 5 */ "accccccca" - /* 6 */ "accccccca" - /* 7 */ "accccccca" - /* 8 */ "aaaaaaaaa" + /* 0 */ "aaaabcccb" + /* 1 */ "adddccccm" + /* 2 */ "adddbeeeb" + /* 3 */ "adddeeeee" + /* 4 */ "beeebeeee" + /* 5 */ "eeeeeeeee" + /* 6 */ "eeeeeeeee" + /* 7 */ "eeeeeeeee" + /* 8 */ "beeeeeeeb" // Level 1 /* z\x* 012345678 */ - /* 0 */ "dddde...e" - /* 1 */ "d........" - /* 2 */ "d...efgfe" - /* 3 */ "dhijf...f" - /* 4 */ "effff...f" - /* 5 */ "f.......f" - /* 6 */ "f.......f" - /* 7 */ "f......kf" - /* 8 */ "efffffffe" + /* 0 */ "aaaabfffb" + /* 1 */ "agggffffm" + /* 2 */ "agggbeheb" + /* 3 */ "agggehhhe" + /* 4 */ "beeebhhhe" + /* 5 */ "ehhhhhhhe" + /* 6 */ "ehhhhhhhe" + /* 7 */ "ehhhhhhhe" + /* 8 */ "beeeeeeeb" // Level 2 /* z\x* 012345678 */ - /* 0 */ "....e...e" - /* 1 */ "........." - /* 2 */ "....eflfe" - /* 3 */ "....f...f" - /* 4 */ "efnff...n" - /* 5 */ "f.......n" - /* 6 */ "n.......f" - /* 7 */ "fo....pkf" - /* 8 */ "effnnnffe" + /* 0 */ "iiiib...b" + /* 1 */ "i........" + /* 2 */ "i...bejeb" + /* 3 */ "iklne...e" + /* 4 */ "beeeb...e" + /* 5 */ "e.......e" + /* 6 */ "e.......e" + /* 7 */ "e......oe" + /* 8 */ "beeeeeeeb" // Level 3 /* z\x* 012345678 */ - /* 0 */ "....q...q" - /* 1 */ "....f...f" - /* 2 */ "....efffe" - /* 3 */ "....frrrf" - /* 4 */ "efsffrrrt" - /* 5 */ "frrrrrrrt" - /* 6 */ "urrrrrrrf" - /* 7 */ "frrrrrrkf" - /* 8 */ "effvvvffe" + /* 0 */ "....b...b" + /* 1 */ "........." + /* 2 */ "....bepeb" + /* 3 */ "....e...e" + /* 4 */ "beqeb...q" + /* 5 */ "e.......q" + /* 6 */ "q.......q" + /* 7 */ "er....soe" + /* 8 */ "beeqqqeeb" // Level 4 /* z\x* 012345678 */ + /* 0 */ "....t...t" + /* 1 */ "....e...e" + /* 2 */ "....beeeb" + /* 3 */ "....euuue" + /* 4 */ "bevebuuuw" + /* 5 */ "euuuuuuuw" + /* 6 */ "xuuuuuuuw" + /* 7 */ "euuuuuuoe" + /* 8 */ "beeyyyeeb" + + // Level 5 + /* z\x* 012345678 */ /* 0 */ "........." /* 1 */ "........." - /* 2 */ "....ewfwf" - /* 3 */ "....w...w" - /* 4 */ "fwwwf...f" - /* 5 */ "w.......w" - /* 6 */ "w.......w" - /* 7 */ "w......xw" - /* 8 */ "fwwwfwwwf", + /* 2 */ "....ezeze" + /* 3 */ "....z...z" + /* 4 */ "ezzze...e" + /* 5 */ "z.......z" + /* 6 */ "z.......z" + /* 7 */ "z......Az" + /* 8 */ "ezzzezzze", // Connectors: - "-1: 6, 1, 0: 2\n" /* Type -1, direction Z- */, + "-1: 6, 2, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1777,112 +1922,127 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // LittleHouse7: // The data has been exported from the gallery Desert, area index 73, ID 563, created by xoft { // Size: - 9, 5, 11, // SizeX = 9, SizeY = 5, SizeZ = 11 + 9, 6, 11, // SizeX = 9, SizeY = 6, SizeZ = 11 // Hitbox (relative to bounding box): -1, 0, 0, // MinX, MinY, MinZ - 9, 4, 11, // MaxX, MaxY, MaxZ + 9, 5, 11, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 12: 0\n" /* sand */ - "b: 5: 0\n" /* wood */ - "c: 24: 2\n" /* sandstone */ - "d: 24: 0\n" /* sandstone */ - "e: 64: 7\n" /* wooddoorblock */ - "f: 65: 2\n" /* ladder */ - "g:101: 0\n" /* ironbars */ - "h: 64:12\n" /* wooddoorblock */ - "i: 50: 1\n" /* torch */ - "j: 50: 2\n" /* torch */ - "k:128: 2\n" /* sandstonestairs */ - "l:128: 6\n" /* sandstonestairs */ + "a: 24: 2\n" /* sandstone */ + "b: 4: 0\n" /* cobblestone */ + "c: 24: 0\n" /* sandstone */ + "d: 13: 0\n" /* gravel */ + "e: 5: 0\n" /* wood */ + "f: 64: 3\n" /* wooddoorblock */ + "g: 65: 2\n" /* ladder */ + "h:101: 0\n" /* ironbars */ + "i: 64: 8\n" /* wooddoorblock */ + "j: 50: 1\n" /* torch */ + "k: 50: 2\n" /* torch */ + "l:128: 2\n" /* sandstonestairs */ "m: 19: 0\n" /* sponge */ - "n:126: 8\n" /* woodenslab */ - "o:128: 4\n" /* sandstonestairs */ - "p:128: 5\n" /* sandstonestairs */ - "q:128: 7\n" /* sandstonestairs */ - "r: 44: 1\n" /* step */ - "s: 96: 6\n" /* trapdoor */, + "n:128: 6\n" /* sandstonestairs */ + "o:126: 8\n" /* woodenslab */ + "p:128: 4\n" /* sandstonestairs */ + "q:128: 5\n" /* sandstonestairs */ + "r:128: 7\n" /* sandstonestairs */ + "s: 44: 1\n" /* step */ + "t: 96: 2\n" /* trapdoor */, // Block data: // Level 0 /* z\x* 012345678 */ - /* 0 */ "aaaaaaaaa" - /* 1 */ "aaaaaaaaa" - /* 2 */ "aaaaaabaa" - /* 3 */ "abbbbbbba" - /* 4 */ "abbbbbbba" - /* 5 */ "abbbbbbba" - /* 6 */ "aaaaabbba" - /* 7 */ "aaaaabbba" - /* 8 */ "aaaaabbba" - /* 9 */ "aaaaabbba" - /* 10 */ "aaaaaaaaa" + /* 0 */ "mmmmabbba" + /* 1 */ "mmmmmbbbm" + /* 2 */ "accccccca" + /* 3 */ "ccccccccc" + /* 4 */ "ccccccccc" + /* 5 */ "ccccccccc" + /* 6 */ "acccacccc" + /* 7 */ "mmmmccccc" + /* 8 */ "mmmmccccc" + /* 9 */ "mmmmccccc" + /* 10 */ "mmmmaccca" // Level 1 /* z\x* 012345678 */ - /* 0 */ "....c...c" - /* 1 */ "........." - /* 2 */ "cdddddedc" - /* 3 */ "d.......d" - /* 4 */ "d.......d" - /* 5 */ "d.......d" - /* 6 */ "cdddd...d" - /* 7 */ "mmmmd...d" - /* 8 */ "mmmmd...d" - /* 9 */ "mmmmd..fd" - /* 10 */ "mmmmddddc" + /* 0 */ "mmmmaddda" + /* 1 */ "mmmmmdddm" + /* 2 */ "accccceca" + /* 3 */ "ceeeeeeec" + /* 4 */ "ceeeeeeec" + /* 5 */ "ceeeeeeec" + /* 6 */ "acccaeeec" + /* 7 */ "mmmmceeec" + /* 8 */ "mmmmceeec" + /* 9 */ "mmmmceeec" + /* 10 */ "mmmmaccca" // Level 2 /* z\x* 012345678 */ - /* 0 */ "....c...c" - /* 1 */ "........." - /* 2 */ "cdgdddhdc" - /* 3 */ "d.......d" - /* 4 */ "g.......d" - /* 5 */ "di......g" - /* 6 */ "cdgdd...g" - /* 7 */ "mmmmd...g" - /* 8 */ "mmmmg..jd" - /* 9 */ "mmmmd..fd" - /* 10 */ "mmmmddgdc" + /* 0 */ "mmmma...a" + /* 1 */ "mmmm....." + /* 2 */ "acccccfca" + /* 3 */ "c.......c" + /* 4 */ "c.......c" + /* 5 */ "c.......c" + /* 6 */ "accca...c" + /* 7 */ "mmmmc...c" + /* 8 */ "mmmmc...c" + /* 9 */ "mmmmc..gc" + /* 10 */ "mmmmaccca" // Level 3 /* z\x* 012345678 */ - /* 0 */ "....k...k" - /* 1 */ "....d...d" - /* 2 */ "cdldddddc" - /* 3 */ "dnnnnnnnd" - /* 4 */ "onnnnnnnd" - /* 5 */ "dnnnnnnnp" - /* 6 */ "cdqddnnnp" - /* 7 */ "mmmmdnnnp" - /* 8 */ "mmmmonnnd" - /* 9 */ "mmmmdnnfd" - /* 10 */ "mmmmddqdc" + /* 0 */ "mmmma...a" + /* 1 */ "mmmm....." + /* 2 */ "achcccica" + /* 3 */ "c.......c" + /* 4 */ "h.......c" + /* 5 */ "cj......h" + /* 6 */ "achca...h" + /* 7 */ "mmmmc...h" + /* 8 */ "mmmmh..kc" + /* 9 */ "mmmmc..gc" + /* 10 */ "mmmmachca" // Level 4 /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ "........." - /* 2 */ "drrrdrdrd" - /* 3 */ "r.......r" - /* 4 */ "r.......r" - /* 5 */ "r.......r" - /* 6 */ "drrrd...d" - /* 7 */ "mmmmr...r" - /* 8 */ "mmmmr...r" - /* 9 */ "mmmmr..sr" - /* 10 */ "mmmmdrrrd", + /* 0 */ "mmmml...l" + /* 1 */ "mmmmc...c" + /* 2 */ "acnccccca" + /* 3 */ "coooooooc" + /* 4 */ "poooooooc" + /* 5 */ "coooooooq" + /* 6 */ "acrcaoooq" + /* 7 */ "mmmmcoooq" + /* 8 */ "mmmmpoooc" + /* 9 */ "mmmmcoogc" + /* 10 */ "mmmmacrca" + + // Level 5 + /* z\x* 012345678 */ + /* 0 */ "mmmm....." + /* 1 */ "mmmm....." + /* 2 */ "cssscscsc" + /* 3 */ "s.......s" + /* 4 */ "s.......s" + /* 5 */ "s.......s" + /* 6 */ "csssc...c" + /* 7 */ "mmmms...s" + /* 8 */ "mmmms...s" + /* 9 */ "mmmms..ts" + /* 10 */ "mmmmcsssc", // Connectors: - "-1: 6, 1, 0: 2\n" /* Type -1, direction Z- */, + "-1: 6, 2, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1908,121 +2068,264 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // LittleTower: - // The data has been exported from the gallery Desert, area index 79, ID 595, created by STR_Warrior + //////////////////////////////////////////////////////////////////////////////// + // LittleHouse8: + // The data has been exported from the gallery Desert, area index 99, ID 739, created by STR_Warrior { // Size: - 5, 8, 7, // SizeX = 5, SizeY = 8, SizeZ = 7 + 9, 6, 9, // SizeX = 9, SizeY = 6, SizeZ = 9 // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 5, 7, 7, // MaxX, MaxY, MaxZ + 0, 0, -1, // MinX, MinY, MinZ + 9, 5, 9, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 12: 0\n" /* sand */ - "b: 5: 0\n" /* wood */ - "c: 24: 2\n" /* sandstone */ - "d: 24: 0\n" /* sandstone */ - "e: 64: 7\n" /* wooddoorblock */ - "f: 65: 5\n" /* ladder */ - "g: 64:12\n" /* wooddoorblock */ + "a: 24: 2\n" /* sandstone */ + "b: 24: 0\n" /* sandstone */ + "c: 4: 0\n" /* cobblestone */ + "d: 13: 0\n" /* gravel */ + "e: 5: 0\n" /* wood */ + "f: 64: 2\n" /* wooddoorblock */ + "g: 65: 2\n" /* ladder */ "h:101: 0\n" /* ironbars */ - "i: 50: 4\n" /* torch */ - "j:128: 2\n" /* sandstonestairs */ - "k:126: 8\n" /* woodenslab */ - "l:128: 4\n" /* sandstonestairs */ + "i: 64: 8\n" /* wooddoorblock */ + "j: 50: 1\n" /* torch */ + "k:128: 6\n" /* sandstonestairs */ + "l:126: 8\n" /* woodenslab */ "m: 19: 0\n" /* sponge */ "n:128: 5\n" /* sandstonestairs */ - "o:128: 7\n" /* sandstonestairs */ - "p:128: 6\n" /* sandstonestairs */ + "o:128: 4\n" /* sandstonestairs */ + "p:128: 7\n" /* sandstonestairs */ "q: 44: 1\n" /* step */ - "r: 96: 5\n" /* trapdoor */, + "r: 96: 2\n" /* trapdoor */, + + // Block data: + // Level 0 + /* z\x* 012345678 */ + /* 0 */ "mmmmabbba" + /* 1 */ "ccccbbbbb" + /* 2 */ "ccccbbbbb" + /* 3 */ "ccccbbbbb" + /* 4 */ "abbbabbbb" + /* 5 */ "bbbbbbbbb" + /* 6 */ "bbbbbbbbb" + /* 7 */ "bbbbbbbbb" + /* 8 */ "abbbbbbba" + + // Level 1 + /* z\x* 012345678 */ + /* 0 */ "mmmmabbba" + /* 1 */ "ddddbeeeb" + /* 2 */ "ddddeeeeb" + /* 3 */ "ddddbeeeb" + /* 4 */ "abbbaeeeb" + /* 5 */ "beeeeeeeb" + /* 6 */ "beeeeeeeb" + /* 7 */ "beeeeeeeb" + /* 8 */ "abbbbbbba" + + // Level 2 + /* z\x* 012345678 */ + /* 0 */ "mmmmabbba" + /* 1 */ "....b...b" + /* 2 */ "....f...b" + /* 3 */ "....b...b" + /* 4 */ "abbba...b" + /* 5 */ "b.......b" + /* 6 */ "b.......b" + /* 7 */ "b......gb" + /* 8 */ "abbbbbbba" + + // Level 3 + /* z\x* 012345678 */ + /* 0 */ "mmmmabhba" + /* 1 */ "....b...b" + /* 2 */ "....i...b" + /* 3 */ "....b...h" + /* 4 */ "abhbaj..h" + /* 5 */ "b.......h" + /* 6 */ "h.......b" + /* 7 */ "b......gb" + /* 8 */ "abbhhhbba" + + // Level 4 + /* z\x* 012345678 */ + /* 0 */ "mmmmabkba" + /* 1 */ "....blllb" + /* 2 */ "....blllb" + /* 3 */ "....bllln" + /* 4 */ "abkballln" + /* 5 */ "bllllllln" + /* 6 */ "olllllllb" + /* 7 */ "bllllllgb" + /* 8 */ "abbpppbba" + + // Level 5 + /* z\x* 012345678 */ + /* 0 */ "mmmmbqbqb" + /* 1 */ "....q...q" + /* 2 */ "....q...q" + /* 3 */ "....q...q" + /* 4 */ "bqqqb...b" + /* 5 */ "q.......q" + /* 6 */ "b.......q" + /* 7 */ "q......rq" + /* 8 */ "bqqqbqqqb", + + // Connectors: + "-1: 0, 2, 2: 4\n" /* Type -1, direction X- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + true, + }, // LittleHouse8 + + + + //////////////////////////////////////////////////////////////////////////////// + // LittleTower: + // The data has been exported from the gallery Desert, area index 79, ID 595, created by STR_Warrior + { + // Size: + 5, 9, 7, // SizeX = 5, SizeY = 9, SizeZ = 7 + + // Hitbox (relative to bounding box): + -1, 0, 0, // MinX, MinY, MinZ + 5, 8, 7, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 24: 2\n" /* sandstone */ + "b: 4: 0\n" /* cobblestone */ + "c: 24: 0\n" /* sandstone */ + "d: 13: 0\n" /* gravel */ + "e: 5: 0\n" /* wood */ + "f: 64: 3\n" /* wooddoorblock */ + "g: 65: 5\n" /* ladder */ + "h: 64: 8\n" /* wooddoorblock */ + "i:101: 0\n" /* ironbars */ + "j: 50: 4\n" /* torch */ + "k:128: 2\n" /* sandstonestairs */ + "l:126: 8\n" /* woodenslab */ + "m: 19: 0\n" /* sponge */ + "n:128: 4\n" /* sandstonestairs */ + "o:128: 5\n" /* sandstonestairs */ + "p:128: 7\n" /* sandstonestairs */ + "q:128: 6\n" /* sandstonestairs */ + "r: 44: 1\n" /* step */ + "s: 96: 1\n" /* trapdoor */, // Block data: // Level 0 /* z\x* 01234 */ - /* 0 */ "aaaaa" - /* 1 */ "aaaaa" - /* 2 */ "aabaa" - /* 3 */ "abbba" - /* 4 */ "abbba" - /* 5 */ "abbba" - /* 6 */ "aaaaa" + /* 0 */ "abbba" + /* 1 */ "mbbbm" + /* 2 */ "accca" + /* 3 */ "ccccc" + /* 4 */ "ccccc" + /* 5 */ "ccccc" + /* 6 */ "accca" // Level 1 /* z\x* 01234 */ - /* 0 */ "c...c" - /* 1 */ "....." - /* 2 */ "cdedc" - /* 3 */ "df..d" - /* 4 */ "d...d" - /* 5 */ "d...d" - /* 6 */ "cdddc" + /* 0 */ "addda" + /* 1 */ "mdddm" + /* 2 */ "aceca" + /* 3 */ "ceeec" + /* 4 */ "ceeec" + /* 5 */ "ceeec" + /* 6 */ "accca" // Level 2 /* z\x* 01234 */ - /* 0 */ "c...c" + /* 0 */ "a...a" /* 1 */ "....." - /* 2 */ "cdgdc" - /* 3 */ "df..d" - /* 4 */ "h...h" - /* 5 */ "d..id" - /* 6 */ "cdhdc" + /* 2 */ "acfca" + /* 3 */ "cg..c" + /* 4 */ "c...c" + /* 5 */ "c...c" + /* 6 */ "accca" // Level 3 /* z\x* 01234 */ - /* 0 */ "j...j" - /* 1 */ "d...d" - /* 2 */ "cdddc" - /* 3 */ "dfkkd" - /* 4 */ "lkkkn" - /* 5 */ "dkkkd" - /* 6 */ "cdodc" + /* 0 */ "a...a" + /* 1 */ "....." + /* 2 */ "achca" + /* 3 */ "cg..c" + /* 4 */ "i...i" + /* 5 */ "c..jc" + /* 6 */ "acica" // Level 4 /* z\x* 01234 */ - /* 0 */ "....." - /* 1 */ "....." - /* 2 */ "cdddc" - /* 3 */ "df..d" - /* 4 */ "d...d" - /* 5 */ "d...d" - /* 6 */ "cdddc" + /* 0 */ "k...k" + /* 1 */ "c...c" + /* 2 */ "accca" + /* 3 */ "cgllc" + /* 4 */ "nlllo" + /* 5 */ "clllc" + /* 6 */ "acpca" // Level 5 /* z\x* 01234 */ /* 0 */ "....." /* 1 */ "....." - /* 2 */ "cdhdc" - /* 3 */ "df..d" - /* 4 */ "h...h" - /* 5 */ "d..id" - /* 6 */ "cdhdc" + /* 2 */ "accca" + /* 3 */ "cg..c" + /* 4 */ "c...c" + /* 5 */ "c...c" + /* 6 */ "accca" // Level 6 /* z\x* 01234 */ /* 0 */ "....." /* 1 */ "....." - /* 2 */ "cdpdc" - /* 3 */ "dfkkd" - /* 4 */ "lkkkn" - /* 5 */ "dkkkd" - /* 6 */ "cdodc" + /* 2 */ "acica" + /* 3 */ "cg..c" + /* 4 */ "i...i" + /* 5 */ "c..jc" + /* 6 */ "acica" // Level 7 /* z\x* 01234 */ /* 0 */ "....." /* 1 */ "....." - /* 2 */ "dqdqd" - /* 3 */ "qr..q" - /* 4 */ "d...d" - /* 5 */ "q...q" - /* 6 */ "dqdqd", + /* 2 */ "acqca" + /* 3 */ "cgllc" + /* 4 */ "nlllo" + /* 5 */ "clllc" + /* 6 */ "acpca" + + // Level 8 + /* z\x* 01234 */ + /* 0 */ "....." + /* 1 */ "....." + /* 2 */ "crcrc" + /* 3 */ "rs..r" + /* 4 */ "c...c" + /* 5 */ "r...r" + /* 6 */ "crcrc", // Connectors: - "-1: 2, 1, 0: 2\n" /* Type -1, direction Z- */, + "-1: 2, 2, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -2048,146 +2351,161 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // MediumHouse1: // The data has been exported from the gallery Desert, area index 71, ID 561, created by STR_Warrior { // Size: - 15, 8, 9, // SizeX = 15, SizeY = 8, SizeZ = 9 + 15, 9, 9, // SizeX = 15, SizeY = 9, SizeZ = 9 // Hitbox (relative to bounding box): -1, 0, 0, // MinX, MinY, MinZ - 15, 7, 9, // MaxX, MaxY, MaxZ + 15, 8, 9, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 12: 0\n" /* sand */ - "b: 5: 0\n" /* wood */ - "c: 24: 2\n" /* sandstone */ - "d: 24: 0\n" /* sandstone */ - "e: 64: 3\n" /* wooddoorblock */ - "f: 85: 0\n" /* fence */ - "g: 64: 0\n" /* wooddoorblock */ - "h: 65: 5\n" /* ladder */ - "i: 64: 8\n" /* wooddoorblock */ - "j:101: 0\n" /* ironbars */ - "k: 50: 4\n" /* torch */ - "l:128: 2\n" /* sandstonestairs */ + "a: 24: 2\n" /* sandstone */ + "b: 4: 0\n" /* cobblestone */ + "c: 24: 0\n" /* sandstone */ + "d: 13: 0\n" /* gravel */ + "e: 5: 0\n" /* wood */ + "f: 12: 0\n" /* sand */ + "g: 64: 3\n" /* wooddoorblock */ + "h: 85: 0\n" /* fence */ + "i: 64: 0\n" /* wooddoorblock */ + "j: 65: 5\n" /* ladder */ + "k: 64: 8\n" /* wooddoorblock */ + "l:101: 0\n" /* ironbars */ "m: 19: 0\n" /* sponge */ - "n:126: 8\n" /* woodenslab */ - "o:128: 4\n" /* sandstonestairs */ - "p:128: 7\n" /* sandstonestairs */ - "q: 44: 1\n" /* step */ - "r: 50: 3\n" /* torch */ - "s:128: 6\n" /* sandstonestairs */, + "n: 50: 4\n" /* torch */ + "o:128: 2\n" /* sandstonestairs */ + "p:126: 8\n" /* woodenslab */ + "q:128: 4\n" /* sandstonestairs */ + "r:128: 7\n" /* sandstonestairs */ + "s: 44: 1\n" /* step */ + "t: 50: 3\n" /* torch */ + "u:128: 6\n" /* sandstonestairs */, // Block data: // Level 0 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "aaaaaaaaaaaaaaa" - /* 1 */ "aaaaaaaaaaaaaaa" - /* 2 */ "aaaaabaaaaaaaaa" - /* 3 */ "abbbbbbbbbaaaaa" - /* 4 */ "abbbbbbbbbaaaaa" - /* 5 */ "abbbbbbbbbbaaaa" - /* 6 */ "abbbbbbbbbaaaaa" - /* 7 */ "abbbbbbbbbaaaaa" - /* 8 */ "aaaaaaaaaaaaaaa" + /* 0 */ "mmmabbbammmmmmm" + /* 1 */ "mmmmbbbmmmmmmmm" + /* 2 */ "acccccccccacccc" + /* 3 */ "ccccccccccccccc" + /* 4 */ "ccccccccccccccc" + /* 5 */ "ccccccccccccccc" + /* 6 */ "ccccccccccccccc" + /* 7 */ "ccccccccccccccc" + /* 8 */ "acccccccccacccc" // Level 1 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "...c...c......." - /* 1 */ "..............." - /* 2 */ "cddddeddddcffff" - /* 3 */ "d.........d...f" - /* 4 */ "d.........d...f" - /* 5 */ "d.........g...f" - /* 6 */ "d.........d...f" - /* 7 */ "d.........dh..f" - /* 8 */ "cdddddddddcffff" + /* 0 */ "mmmadddammmmmmm" + /* 1 */ "mmmmdddmmmmmmmm" + /* 2 */ "acccceccccaffff" + /* 3 */ "ceeeeeeeeecffff" + /* 4 */ "ceeeeeeeeecffff" + /* 5 */ "ceeeeeeeeeeffff" + /* 6 */ "ceeeeeeeeecffff" + /* 7 */ "ceeeeeeeeecffff" + /* 8 */ "acccccccccaffff" // Level 2 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "...c...c......." - /* 1 */ "..............." - /* 2 */ "cddddiddddc...." - /* 3 */ "d.........d...." - /* 4 */ "j.........d...." - /* 5 */ "j.........i...." - /* 6 */ "j.........d...." - /* 7 */ "d..k...k..dh..." - /* 8 */ "cdddjjjdddc...." + /* 0 */ "mmma...ammmmmmm" + /* 1 */ "mmm.....mmmmmmm" + /* 2 */ "accccgccccahhhh" + /* 3 */ "c.........c...h" + /* 4 */ "c.........c...h" + /* 5 */ "c.........i...h" + /* 6 */ "c.........c...h" + /* 7 */ "c.........cj..h" + /* 8 */ "acccccccccahhhh" // Level 3 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "...l...l......." - /* 1 */ "...d...d......." - /* 2 */ "cdddddddddc...." - /* 3 */ "dnnnnnnnnnd...." - /* 4 */ "onnnnnnnnnd...." - /* 5 */ "onnnnnnnnnd...." - /* 6 */ "onnnnnnnnnd...." - /* 7 */ "dnnnnnnnnndh..." - /* 8 */ "cdddpppdddc...." + /* 0 */ "mmma...ammmmmmm" + /* 1 */ "mmm.....mmmmmmm" + /* 2 */ "acccckcccca...." + /* 3 */ "c.........c...." + /* 4 */ "l.........c...." + /* 5 */ "l.........k...." + /* 6 */ "l.........c...." + /* 7 */ "c..n...n..cj..." + /* 8 */ "accclllccca...." // Level 4 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ "dqqqqdqqqqd...." - /* 3 */ "q..cdddc..q...." - /* 4 */ "q..d...d..q...." - /* 5 */ "d.........d...." - /* 6 */ "q..d...d..q...." - /* 7 */ "q..cdddc..q...." - /* 8 */ "dqqqqdqqqqd...." + /* 0 */ "mmmo...ommmmmmm" + /* 1 */ "mmmc...cmmmmmmm" + /* 2 */ "accccccccca...." + /* 3 */ "cpppppppppc...." + /* 4 */ "qpppppppppc...." + /* 5 */ "qpppppppppc...." + /* 6 */ "qpppppppppc...." + /* 7 */ "cpppppppppcj..." + /* 8 */ "acccrrrccca...." // Level 5 /* z\x* 11111 */ /* * 012345678901234 */ + /* 0 */ "mmm.....mmmmmmm" + /* 1 */ "mmm.....mmmmmmm" + /* 2 */ "csssscssssc...." + /* 3 */ "s..accca..s...." + /* 4 */ "s..c...c..s...." + /* 5 */ "c.........c...." + /* 6 */ "s..c...c..s...." + /* 7 */ "s..accca..s...." + /* 8 */ "csssscssssc...." + + // Level 6 + /* z\x* 11111 */ + /* * 012345678901234 */ /* 0 */ "..............." /* 1 */ "..............." /* 2 */ "..............." - /* 3 */ "...cdjdc......." - /* 4 */ "...dr..d......." + /* 3 */ "...aclca......." + /* 4 */ "...ct..c......." /* 5 */ "..............." - /* 6 */ "...d...d......." - /* 7 */ "...cdjdc......." + /* 6 */ "...c...c......." + /* 7 */ "...aclca......." /* 8 */ "..............." - // Level 6 + // Level 7 /* z\x* 11111 */ /* * 012345678901234 */ /* 0 */ "..............." /* 1 */ "..............." /* 2 */ "..............." - /* 3 */ "...cdsdc......." - /* 4 */ "...dnnnd......." - /* 5 */ "...dnnnd......." - /* 6 */ "...dnnnd......." - /* 7 */ "...cdpdc......." + /* 3 */ "...acuca......." + /* 4 */ "...cpppc......." + /* 5 */ "...cpppc......." + /* 6 */ "...cpppc......." + /* 7 */ "...acrca......." /* 8 */ "..............." - // Level 7 + // Level 8 /* z\x* 11111 */ /* * 012345678901234 */ /* 0 */ "..............." /* 1 */ "..............." /* 2 */ "..............." - /* 3 */ "...dqdqd......." - /* 4 */ "...q...q......." - /* 5 */ "...d...d......." - /* 6 */ "...q...q......." - /* 7 */ "...dqdqd......." + /* 3 */ "...cscsc......." + /* 4 */ "...s...s......." + /* 5 */ "...c...c......." + /* 6 */ "...s...s......." + /* 7 */ "...cscsc......." /* 8 */ "...............", // Connectors: - "-1: 5, 1, 0: 2\n" /* Type -1, direction Z- */, + "-1: 5, 2, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -2213,135 +2531,150 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // MediumHouse2: // The data has been exported from the gallery Desert, area index 74, ID 573, created by STR_Warrior { // Size: - 11, 9, 9, // SizeX = 11, SizeY = 9, SizeZ = 9 + 11, 10, 9, // SizeX = 11, SizeY = 10, SizeZ = 9 // Hitbox (relative to bounding box): -1, 0, 0, // MinX, MinY, MinZ - 11, 8, 9, // MaxX, MaxY, MaxZ + 11, 9, 9, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "A: 96: 3\n" /* trapdoor */ - "B: 96: 6\n" /* trapdoor */ - "C:128: 2\n" /* sandstonestairs */ - "D:128: 0\n" /* sandstonestairs */ - "E: 87: 0\n" /* netherstone */ - "F:128: 1\n" /* sandstonestairs */ - "G:128: 3\n" /* sandstonestairs */ - "H: 51: 0\n" /* fire */ - "I: 44: 9\n" /* step */ - "a: 12: 0\n" /* sand */ - "b: 5: 0\n" /* wood */ - "c: 24: 2\n" /* sandstone */ - "d: 24: 0\n" /* sandstone */ - "e: 65: 3\n" /* ladder */ - "f: 85: 0\n" /* fence */ - "g: 64: 7\n" /* wooddoorblock */ - "h:134: 1\n" /* 134 */ - "i:134: 2\n" /* 134 */ - "j: 61: 2\n" /* furnace */ - "k:134: 6\n" /* 134 */ - "l:134: 4\n" /* 134 */ + "A:128: 7\n" /* sandstonestairs */ + "B: 44: 1\n" /* step */ + "C: 96: 3\n" /* trapdoor */ + "D: 96: 2\n" /* trapdoor */ + "E:128: 2\n" /* sandstonestairs */ + "F:128: 0\n" /* sandstonestairs */ + "G: 87: 0\n" /* netherstone */ + "H:128: 1\n" /* sandstonestairs */ + "I:128: 3\n" /* sandstonestairs */ + "J: 51: 0\n" /* fire */ + "K: 44: 9\n" /* step */ + "a: 24: 2\n" /* sandstone */ + "b: 24: 0\n" /* sandstone */ + "c: 4: 0\n" /* cobblestone */ + "d: 12: 0\n" /* sand */ + "e: 13: 0\n" /* gravel */ + "f: 5: 0\n" /* wood */ + "g: 65: 3\n" /* ladder */ + "h: 85: 0\n" /* fence */ + "i: 64: 3\n" /* wooddoorblock */ + "j:134: 1\n" /* 134 */ + "k:134: 2\n" /* 134 */ + "l: 61: 2\n" /* furnace */ "m: 19: 0\n" /* sponge */ - "n: 65: 2\n" /* ladder */ - "o:101: 0\n" /* ironbars */ - "p: 50: 2\n" /* torch */ - "q: 47: 0\n" /* bookshelf */ - "r: 64:12\n" /* wooddoorblock */ - "s: 50: 3\n" /* torch */ - "t:171: 8\n" /* carpet */ - "u:128: 6\n" /* sandstonestairs */ - "v:126: 8\n" /* woodenslab */ - "w:128: 5\n" /* sandstonestairs */ - "x:128: 4\n" /* sandstonestairs */ - "y:128: 7\n" /* sandstonestairs */ - "z: 44: 1\n" /* step */, + "n:134: 6\n" /* 134 */ + "o:134: 4\n" /* 134 */ + "p: 65: 2\n" /* ladder */ + "q:101: 0\n" /* ironbars */ + "r: 50: 2\n" /* torch */ + "s: 47: 0\n" /* bookshelf */ + "t: 64: 8\n" /* wooddoorblock */ + "u: 50: 3\n" /* torch */ + "v:171: 8\n" /* carpet */ + "w:128: 6\n" /* sandstonestairs */ + "x:126: 8\n" /* woodenslab */ + "y:128: 5\n" /* sandstonestairs */ + "z:128: 4\n" /* sandstonestairs */, // Block data: // Level 0 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "aaaaaaaaaaa" - /* 1 */ "abbbaaaaaaa" - /* 2 */ "abbbaaaaaaa" - /* 3 */ "abbbaaaaaaa" - /* 4 */ "abbbaaaabaa" - /* 5 */ "abbbbbbbbba" - /* 6 */ "abbbbbbbbba" - /* 7 */ "abbbbbbbbba" - /* 8 */ "aaaaaaaaaaa" + /* 0 */ "abbbammmcmm" + /* 1 */ "bbbbbdddcdm" + /* 2 */ "bbbbbmmmcdm" + /* 3 */ "bbbbbmmmcdm" + /* 4 */ "bbbbabbbbba" + /* 5 */ "bbbbbbbbbbb" + /* 6 */ "bbbbbbbbbbb" + /* 7 */ "bbbbbbbbbbb" + /* 8 */ "abbbbbbbbba" // Level 1 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "cdddc......" - /* 1 */ "de..dfff.f." - /* 2 */ "d...d....f." - /* 3 */ "d...d....f." - /* 4 */ "d...ddddgdc" - /* 5 */ "d.........d" - /* 6 */ "dhf.......d" - /* 7 */ "dhi.jkl..nd" - /* 8 */ "cdddddddddc" + /* 0 */ "abbbammmemm" + /* 1 */ "bfffbdddedm" + /* 2 */ "bfffbmmmedm" + /* 3 */ "bfffbmmmedm" + /* 4 */ "bfffabbbfba" + /* 5 */ "bfffffffffb" + /* 6 */ "bfffffffffb" + /* 7 */ "bfffffffffb" + /* 8 */ "abbbbbbbbba" // Level 2 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "cdodc......" - /* 1 */ "de..o......" - /* 2 */ "d...o......" - /* 3 */ "o..pd......" - /* 4 */ "o...qdodrdc" - /* 5 */ "o......s..d" - /* 6 */ "d.t.......o" - /* 7 */ "d........nd" - /* 8 */ "cdddooodddc" + /* 0 */ "abbba......" + /* 1 */ "bg..bhhh.h." + /* 2 */ "b...b....h." + /* 3 */ "b...b....h." + /* 4 */ "b...abbbiba" + /* 5 */ "b.........b" + /* 6 */ "bjh.......b" + /* 7 */ "bjk.lno..pb" + /* 8 */ "abbbbbbbbba" // Level 3 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "cdudc......" - /* 1 */ "devvw......" - /* 2 */ "dvvvw......" - /* 3 */ "xvvvd......" - /* 4 */ "xvvvddudddc" - /* 5 */ "xvvvvvvvvvd" - /* 6 */ "dvvvvvvvvvw" - /* 7 */ "dvvvqqqvvnd" - /* 8 */ "cdddyyydddc" + /* 0 */ "abqba......" + /* 1 */ "bg..q......" + /* 2 */ "b...q......" + /* 3 */ "q..rb......" + /* 4 */ "q...sbqbtba" + /* 5 */ "q......u..b" + /* 6 */ "b.v.......q" + /* 7 */ "b........pb" + /* 8 */ "abbbqqqbbba" // Level 4 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "dzzzd......" - /* 1 */ "zA..z......" - /* 2 */ "z...z......" - /* 3 */ "z...z......" - /* 4 */ "d...dzzzzzd" - /* 5 */ "zddd......z" - /* 6 */ "zddd......z" - /* 7 */ "zddd.....Bz" - /* 8 */ "dzzzzdzzzzd" + /* 0 */ "abwba......" + /* 1 */ "bgxxy......" + /* 2 */ "bxxxy......" + /* 3 */ "zxxxb......" + /* 4 */ "zxxxabwbbba" + /* 5 */ "zxxxxxxxxxb" + /* 6 */ "bxxxxxxxxxy" + /* 7 */ "bxxxsssxxpb" + /* 8 */ "abbbAAAbbba" // Level 5 /* z\x* 1 */ /* * 01234567890 */ + /* 0 */ "bBBBb......" + /* 1 */ "BC..B......" + /* 2 */ "B...B......" + /* 3 */ "B...B......" + /* 4 */ "b...bBBBBBb" + /* 5 */ "Bbbb......B" + /* 6 */ "Bbbb......B" + /* 7 */ "Bbbb.....DB" + /* 8 */ "bBBBBbBBBBb" + + // Level 6 + /* z\x* 1 */ + /* * 01234567890 */ /* 0 */ "..........." /* 1 */ "..........." /* 2 */ "..........." /* 3 */ "..........." /* 4 */ "..........." - /* 5 */ ".cCc......." - /* 6 */ ".DEF......." - /* 7 */ ".cGc......." + /* 5 */ ".aEa......." + /* 6 */ ".FGH......." + /* 7 */ ".aIa......." /* 8 */ "..........." - // Level 6 + // Level 7 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "..........." @@ -2349,12 +2682,12 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 2 */ "..........." /* 3 */ "..........." /* 4 */ "..........." - /* 5 */ ".c.c......." - /* 6 */ "..H........" - /* 7 */ ".c.c......." + /* 5 */ ".a.a......." + /* 6 */ "..J........" + /* 7 */ ".a.a......." /* 8 */ "..........." - // Level 7 + // Level 8 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "..........." @@ -2362,12 +2695,12 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 2 */ "..........." /* 3 */ "..........." /* 4 */ "..........." - /* 5 */ ".ddd......." - /* 6 */ ".dId......." - /* 7 */ ".ddd......." + /* 5 */ ".bbb......." + /* 6 */ ".bKb......." + /* 7 */ ".bbb......." /* 8 */ "..........." - // Level 8 + // Level 9 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "..........." @@ -2375,13 +2708,13 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 2 */ "..........." /* 3 */ "..........." /* 4 */ "..........." - /* 5 */ ".z.z......." + /* 5 */ ".B.B......." /* 6 */ "..........." - /* 7 */ ".z.z......." + /* 7 */ ".B.B......." /* 8 */ "...........", // Connectors: - "-1: 8, 1, 0: 2\n" /* Type -1, direction Z- */, + "-1: 8, 2, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -2407,7 +2740,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // MediumHouse3: // The data has been exported from the gallery Desert, area index 76, ID 575, created by STR_Warrior { @@ -2420,30 +2753,30 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = // Block definitions: ".: 0: 0\n" /* air */ - "a: 12: 0\n" /* sand */ - "b: 3: 0\n" /* dirt */ - "c: 2: 0\n" /* grass */ - "d: 5: 0\n" /* wood */ - "e: 24: 0\n" /* sandstone */ - "f: 24: 2\n" /* sandstone */ - "g: 85: 0\n" /* fence */ - "h: 64: 3\n" /* wooddoorblock */ - "i: 64: 6\n" /* wooddoorblock */ - "j: 65: 4\n" /* ladder */ - "k: 65: 2\n" /* ladder */ - "l: 50: 1\n" /* torch */ + "a: 24: 2\n" /* sandstone */ + "b: 4: 0\n" /* cobblestone */ + "c: 3: 0\n" /* dirt */ + "d: 24: 0\n" /* sandstone */ + "e: 13: 0\n" /* gravel */ + "f: 2: 0\n" /* grass */ + "g: 5: 0\n" /* wood */ + "h: 85: 0\n" /* fence */ + "i: 64: 3\n" /* wooddoorblock */ + "j: 64: 2\n" /* wooddoorblock */ + "k: 65: 4\n" /* ladder */ + "l: 65: 2\n" /* ladder */ "m: 19: 0\n" /* sponge */ - "n: 50: 2\n" /* torch */ - "o:101: 0\n" /* ironbars */ - "p: 64: 8\n" /* wooddoorblock */ - "q: 64:12\n" /* wooddoorblock */ + "n: 50: 1\n" /* torch */ + "o: 50: 2\n" /* torch */ + "p:101: 0\n" /* ironbars */ + "q: 64: 8\n" /* wooddoorblock */ "r:128: 2\n" /* sandstonestairs */ "s:128: 6\n" /* sandstonestairs */ "t:126: 8\n" /* woodenslab */ "u:128: 5\n" /* sandstonestairs */ "v:128: 7\n" /* sandstonestairs */ "w: 44: 1\n" /* step */ - "x: 96: 4\n" /* trapdoor */ + "x: 96: 0\n" /* trapdoor */ "y:126: 0\n" /* woodenslab */ "z:128: 4\n" /* sandstonestairs */, @@ -2451,92 +2784,92 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = // Level 0 /* z\x* 11 */ /* * 012345678901 */ - /* 0 */ "aaaaaaaaaaaa" - /* 1 */ "aaaaaaaaaaaa" - /* 2 */ "bbbbbaaaaaaa" - /* 3 */ "bbbbbaaaaaaa" - /* 4 */ "bbbbbaaaaaaa" - /* 5 */ "bbbbbaaaaaaa" - /* 6 */ "bbbaaaaaaaaa" - /* 7 */ "aaaaaaaaaaaa" - /* 8 */ "aaaaaaaaaaaa" - /* 9 */ "aaaaaaaaaaaa" - /* 10 */ "aaaaaaaaaaaa" + /* 0 */ "mmmmmammbbba" + /* 1 */ "mmmmmmmmbbbm" + /* 2 */ "cccccaddddda" + /* 3 */ "cccccddddddd" + /* 4 */ "cccccddddddd" + /* 5 */ "cccccddddddd" + /* 6 */ "cccddddddddd" + /* 7 */ "mmmddddddddd" + /* 8 */ "mmmdddddddda" + /* 9 */ "mmmdddddmmmm" + /* 10 */ "mmmadddammmm" // Level 1 /* z\x* 11 */ /* * 012345678901 */ - /* 0 */ "aaaaaaaaaaaa" - /* 1 */ "aaaaaaaaaaaa" - /* 2 */ "cccccaaaadaa" - /* 3 */ "cccccaddddda" - /* 4 */ "cccccdddddda" - /* 5 */ "cccccaddddda" - /* 6 */ "cccaadddddda" - /* 7 */ "aaaaddddddda" - /* 8 */ "aaaadddaaaaa" - /* 9 */ "aaaadddaaaaa" - /* 10 */ "aaaaaaaaaaaa" + /* 0 */ "mmmmmammeeea" + /* 1 */ "mmmmmmmmeeem" + /* 2 */ "fffffadddgda" + /* 3 */ "fffffdgggggd" + /* 4 */ "fffffggggggd" + /* 5 */ "fffffdgggggd" + /* 6 */ "fffddggggggd" + /* 7 */ "mmmdgggggggd" + /* 8 */ "mmmdggggddda" + /* 9 */ "mmmdgggdmmmm" + /* 10 */ "mmmadddammmm" // Level 2 /* z\x* 11 */ /* * 012345678901 */ - /* 0 */ ".....e.....f" - /* 1 */ "............" - /* 2 */ "gggggfeeehef" - /* 3 */ "g....e.....e" - /* 4 */ "g....i.....e" - /* 5 */ "g....e.....e" - /* 6 */ "gggfe......e" - /* 7 */ "mmme......je" - /* 8 */ "mmme...eeeef" - /* 9 */ "mmme..kemmmm" - /* 10 */ "mmmfeeefmmmm" + /* 0 */ "mmmmma.....a" + /* 1 */ "mmmmm......." + /* 2 */ "hhhhhadddida" + /* 3 */ "h....d.....d" + /* 4 */ "h....j.....d" + /* 5 */ "h....d.....d" + /* 6 */ "hhhad......d" + /* 7 */ "mmmd......kd" + /* 8 */ "mmmd....ddda" + /* 9 */ "mmmd..ldmmmm" + /* 10 */ "mmmadddammmm" // Level 3 /* z\x* 11 */ /* * 012345678901 */ - /* 0 */ ".....el...nf" - /* 1 */ "............" - /* 2 */ ".....fooepef" - /* 3 */ ".....e.....e" - /* 4 */ ".....q.....e" - /* 5 */ ".....e.....o" - /* 6 */ "...ge......e" - /* 7 */ "mmme......je" - /* 8 */ "mmme...eeoof" - /* 9 */ "mmme..kemmmm" - /* 10 */ "mmmgeeegmmmm" + /* 0 */ "mmmmman...oa" + /* 1 */ "mmmmm......." + /* 2 */ ".....appdqda" + /* 3 */ ".....d.....d" + /* 4 */ ".....q.....d" + /* 5 */ ".....d.....p" + /* 6 */ "...hd......d" + /* 7 */ "mmmd......kd" + /* 8 */ "mmmd....dppa" + /* 9 */ "mmmd..ldmmmm" + /* 10 */ "mmmhdddhmmmm" // Level 4 /* z\x* 11 */ /* * 012345678901 */ - /* 0 */ ".....r.....r" - /* 1 */ ".....e.....e" - /* 2 */ ".....fsseeef" - /* 3 */ ".....ettttte" - /* 4 */ ".....ettttte" - /* 5 */ ".....etttttu" - /* 6 */ "...getttttte" - /* 7 */ "mmmettttttje" - /* 8 */ "mmmettteevvf" - /* 9 */ "mmmettkemmmm" - /* 10 */ "mmmgeeegmmmm" + /* 0 */ "mmmmmr.....r" + /* 1 */ "mmmmmd.....d" + /* 2 */ ".....assddda" + /* 3 */ ".....dtttttd" + /* 4 */ ".....dtttttd" + /* 5 */ ".....dtttttu" + /* 6 */ "...hdatttttd" + /* 7 */ "mmmdttttttkd" + /* 8 */ "mmmdtttadvva" + /* 9 */ "mmmdttldmmmm" + /* 10 */ "mmmhdddhmmmm" // Level 5 /* z\x* 11 */ /* * 012345678901 */ /* 0 */ "............" /* 1 */ "............" - /* 2 */ ".....ewwewwe" + /* 2 */ ".....dwwdwwd" /* 3 */ ".....w.....w" /* 4 */ ".....w.....w" - /* 5 */ ".....w.....e" - /* 6 */ "...geeeg...w" - /* 7 */ "mmme...e..xw" - /* 8 */ "mmme...ewwwe" - /* 9 */ "mmme..kemmmm" - /* 10 */ "mmmgeeegmmmm" + /* 5 */ ".....w.....d" + /* 6 */ "...hdadh...w" + /* 7 */ "mmmd...d..xw" + /* 8 */ "mmmd...awwwd" + /* 9 */ "mmmd..ldmmmm" + /* 10 */ "mmmhdddhmmmm" // Level 6 /* z\x* 11 */ @@ -2547,11 +2880,11 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 3 */ "............" /* 4 */ "............" /* 5 */ "............" - /* 6 */ "...ge.eg...." - /* 7 */ "mmme...e...." - /* 8 */ "mmmo........" - /* 9 */ "mmme..kemmmm" - /* 10 */ "mmmgeoegmmmm" + /* 6 */ "...hd.dh...." + /* 7 */ "mmmd...d...." + /* 8 */ "mmmp........" + /* 9 */ "mmmd..ldmmmm" + /* 10 */ "mmmhdpdhmmmm" // Level 7 /* z\x* 11 */ @@ -2562,11 +2895,11 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 3 */ "............" /* 4 */ "............" /* 5 */ "............" - /* 6 */ "...ge.eg...." - /* 7 */ "mmme...e...." - /* 8 */ "mmmo........" - /* 9 */ "mmmel.kemmmm" - /* 10 */ "mmmgeoegmmmm" + /* 6 */ "...hd.dh...." + /* 7 */ "mmmd...d...." + /* 8 */ "mmmp........" + /* 9 */ "mmmdn.ldmmmm" + /* 10 */ "mmmhdpdhmmmm" // Level 8 /* z\x* 11 */ @@ -2577,11 +2910,11 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 3 */ "............" /* 4 */ "............" /* 5 */ "............" - /* 6 */ "...fesef...." - /* 7 */ "mmmeyyye...." + /* 6 */ "...adsda...." + /* 7 */ "mmmdyyyd...." /* 8 */ "mmmzyyyu...." - /* 9 */ "mmmeyykemmmm" - /* 10 */ "mmmfevefmmmm" + /* 9 */ "mmmdyyldmmmm" + /* 10 */ "mmmadvdammmm" // Level 9 /* z\x* 11 */ @@ -2625,112 +2958,127 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // SmallHouse9: // The data has been exported from the gallery Desert, area index 67, ID 556, created by STR_Warrior { // Size: - 9, 5, 11, // SizeX = 9, SizeY = 5, SizeZ = 11 + 9, 6, 11, // SizeX = 9, SizeY = 6, SizeZ = 11 // Hitbox (relative to bounding box): -1, 0, 0, // MinX, MinY, MinZ - 9, 4, 11, // MaxX, MaxY, MaxZ + 9, 5, 11, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 12: 0\n" /* sand */ - "b: 5: 0\n" /* wood */ - "c: 24: 2\n" /* sandstone */ - "d: 24: 0\n" /* sandstone */ - "e: 64: 7\n" /* wooddoorblock */ - "f: 65: 2\n" /* ladder */ - "g: 64:12\n" /* wooddoorblock */ - "h:101: 0\n" /* ironbars */ - "i: 50: 2\n" /* torch */ - "j: 50: 1\n" /* torch */ - "k:128: 2\n" /* sandstonestairs */ - "l:126: 8\n" /* woodenslab */ + "a: 24: 2\n" /* sandstone */ + "b: 4: 0\n" /* cobblestone */ + "c: 24: 0\n" /* sandstone */ + "d: 13: 0\n" /* gravel */ + "e: 5: 0\n" /* wood */ + "f: 64: 3\n" /* wooddoorblock */ + "g: 65: 2\n" /* ladder */ + "h: 64: 8\n" /* wooddoorblock */ + "i:101: 0\n" /* ironbars */ + "j: 50: 2\n" /* torch */ + "k: 50: 1\n" /* torch */ + "l:128: 2\n" /* sandstonestairs */ "m: 19: 0\n" /* sponge */ - "n:128: 5\n" /* sandstonestairs */ - "o:128: 6\n" /* sandstonestairs */ - "p:128: 4\n" /* sandstonestairs */ - "q:128: 7\n" /* sandstonestairs */ - "r: 44: 1\n" /* step */ - "s: 96: 6\n" /* trapdoor */, + "n:126: 8\n" /* woodenslab */ + "o:128: 5\n" /* sandstonestairs */ + "p:128: 6\n" /* sandstonestairs */ + "q:128: 4\n" /* sandstonestairs */ + "r:128: 7\n" /* sandstonestairs */ + "s: 44: 1\n" /* step */ + "t: 96: 2\n" /* trapdoor */, // Block data: // Level 0 /* z\x* 012345678 */ - /* 0 */ "aaaaaaaaa" - /* 1 */ "aaaaaaaaa" - /* 2 */ "aaaaaabaa" - /* 3 */ "aaaaabbba" - /* 4 */ "aaaaabbba" - /* 5 */ "aaaaabbba" - /* 6 */ "aaaaabbba" - /* 7 */ "abbbbbbba" - /* 8 */ "abbbbbbba" - /* 9 */ "abbbbbbba" - /* 10 */ "aaaaaaaaa" + /* 0 */ "mmmmabbba" + /* 1 */ "mmmmmbbbm" + /* 2 */ "mmmmaccca" + /* 3 */ "mmmmccccc" + /* 4 */ "mmmmccccc" + /* 5 */ "mmmmccccc" + /* 6 */ "acccacccc" + /* 7 */ "ccccccccc" + /* 8 */ "ccccccccc" + /* 9 */ "ccccccccc" + /* 10 */ "accccccca" // Level 1 /* z\x* 012345678 */ - /* 0 */ "mmmmc...c" - /* 1 */ "mmmm....." - /* 2 */ "mmmmcdedc" - /* 3 */ "mmmmd...d" - /* 4 */ "mmmmd...d" - /* 5 */ "mmmmd...d" - /* 6 */ "cdddd...d" - /* 7 */ "d.......d" - /* 8 */ "d.......d" - /* 9 */ "d......fd" - /* 10 */ "cdddddddc" + /* 0 */ "mmmmaddda" + /* 1 */ "mmmmmdddm" + /* 2 */ "mmmmaceca" + /* 3 */ "mmmmceeec" + /* 4 */ "mmmmceeec" + /* 5 */ "mmmmceeec" + /* 6 */ "acccaeeec" + /* 7 */ "ceeeeeeec" + /* 8 */ "ceeeeeeec" + /* 9 */ "ceeeeeeec" + /* 10 */ "accccccca" // Level 2 /* z\x* 012345678 */ - /* 0 */ "mmmmc...c" + /* 0 */ "mmmma...a" /* 1 */ "mmmm....." - /* 2 */ "mmmmcdgdc" - /* 3 */ "mmmmd...d" - /* 4 */ "mmmmd...d" - /* 5 */ "mmmmd...h" - /* 6 */ "cdhdd...h" - /* 7 */ "d.......h" - /* 8 */ "h......id" - /* 9 */ "dj.....fd" - /* 10 */ "cddhhhddc" + /* 2 */ "mmmmacfca" + /* 3 */ "mmmmc...c" + /* 4 */ "mmmmc...c" + /* 5 */ "mmmmc...c" + /* 6 */ "accca...c" + /* 7 */ "c.......c" + /* 8 */ "c.......c" + /* 9 */ "c......gc" + /* 10 */ "accccccca" // Level 3 /* z\x* 012345678 */ - /* 0 */ "mmmmk...k" - /* 1 */ "mmmmd...d" - /* 2 */ "mmmmcdddc" - /* 3 */ "mmmmdllld" - /* 4 */ "mmmmdllld" - /* 5 */ "mmmmdllln" - /* 6 */ "cdoddllln" - /* 7 */ "dllllllln" - /* 8 */ "pllllllld" - /* 9 */ "dllllllfd" - /* 10 */ "cddqqqddc" + /* 0 */ "mmmma...a" + /* 1 */ "mmmm....." + /* 2 */ "mmmmachca" + /* 3 */ "mmmmc...c" + /* 4 */ "mmmmc...c" + /* 5 */ "mmmmc...i" + /* 6 */ "acica...i" + /* 7 */ "c.......i" + /* 8 */ "i......jc" + /* 9 */ "ck.....gc" + /* 10 */ "acciiicca" // Level 4 /* z\x* 012345678 */ + /* 0 */ "mmmml...l" + /* 1 */ "mmmmc...c" + /* 2 */ "mmmmaccca" + /* 3 */ "mmmmcnnnc" + /* 4 */ "mmmmcnnnc" + /* 5 */ "mmmmcnnno" + /* 6 */ "acpcannno" + /* 7 */ "cnnnnnnno" + /* 8 */ "qnnnnnnnc" + /* 9 */ "cnnnnnngc" + /* 10 */ "accrrrcca" + + // Level 5 + /* z\x* 012345678 */ /* 0 */ "mmmm....." /* 1 */ "mmmm....." - /* 2 */ "mmmmdrdrd" - /* 3 */ "mmmmr...r" - /* 4 */ "mmmmr...r" - /* 5 */ "mmmmr...r" - /* 6 */ "drrrd...d" - /* 7 */ "r.......r" - /* 8 */ "r.......r" - /* 9 */ "r......sr" - /* 10 */ "drrrdrrrd", + /* 2 */ "mmmmcscsc" + /* 3 */ "mmmms...s" + /* 4 */ "mmmms...s" + /* 5 */ "mmmms...s" + /* 6 */ "csssc...c" + /* 7 */ "s.......s" + /* 8 */ "s.......s" + /* 9 */ "s......ts" + /* 10 */ "cssscsssc", // Connectors: - "-1: 6, 1, 0: 2\n" /* Type -1, direction Z- */, + "-1: 6, 2, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -2756,167 +3104,181 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // Temple: // The data has been exported from the gallery Desert, area index 83, ID 599, created by STR_Warrior { // Size: - 13, 9, 9, // SizeX = 13, SizeY = 9, SizeZ = 9 + 13, 10, 9, // SizeX = 13, SizeY = 10, SizeZ = 9 // Hitbox (relative to bounding box): -1, 0, 0, // MinX, MinY, MinZ - 13, 8, 9, // MaxX, MaxY, MaxZ + 13, 9, 9, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "A: 44: 9\n" /* step */ - "a: 12: 0\n" /* sand */ - "b: 5: 0\n" /* wood */ - "c: 24: 2\n" /* sandstone */ - "d: 24: 0\n" /* sandstone */ - "e: 64: 7\n" /* wooddoorblock */ - "f: 17: 0\n" /* tree */ - "g:128: 5\n" /* sandstonestairs */ - "h:128: 4\n" /* sandstonestairs */ - "i:128: 7\n" /* sandstonestairs */ - "j:128: 6\n" /* sandstonestairs */ - "k:118: 3\n" /* cauldronblock */ - "l:155: 1\n" /* quartzblock */ + "A: 51: 0\n" /* fire */ + "B: 44: 9\n" /* step */ + "a: 24: 2\n" /* sandstone */ + "b: 4: 0\n" /* cobblestone */ + "c: 24: 0\n" /* sandstone */ + "d: 13: 0\n" /* gravel */ + "e: 5: 0\n" /* wood */ + "f: 64: 3\n" /* wooddoorblock */ + "g: 17: 0\n" /* tree */ + "h:128: 5\n" /* sandstonestairs */ + "i:128: 4\n" /* sandstonestairs */ + "j:128: 7\n" /* sandstonestairs */ + "k:128: 6\n" /* sandstonestairs */ + "l:118: 3\n" /* cauldronblock */ "m: 19: 0\n" /* sponge */ - "n: 64:12\n" /* wooddoorblock */ - "o: 50: 3\n" /* torch */ - "p:101: 0\n" /* ironbars */ - "q:140: 0\n" /* flowerpotblock */ - "r: 24: 1\n" /* sandstone */ - "s:128: 2\n" /* sandstonestairs */ - "t:126: 8\n" /* woodenslab */ - "u: 44: 1\n" /* step */ - "v:128: 0\n" /* sandstonestairs */ - "w: 87: 0\n" /* netherstone */ - "x:128: 1\n" /* sandstonestairs */ - "y:128: 3\n" /* sandstonestairs */ - "z: 51: 0\n" /* fire */, + "n:155: 1\n" /* quartzblock */ + "o: 64: 8\n" /* wooddoorblock */ + "p: 50: 3\n" /* torch */ + "q:101: 0\n" /* ironbars */ + "r:140: 0\n" /* flowerpotblock */ + "s: 24: 1\n" /* sandstone */ + "t:128: 2\n" /* sandstonestairs */ + "u:126: 8\n" /* woodenslab */ + "v: 44: 1\n" /* step */ + "w:128: 0\n" /* sandstonestairs */ + "x: 87: 0\n" /* netherstone */ + "y:128: 1\n" /* sandstonestairs */ + "z:128: 3\n" /* sandstonestairs */, // Block data: // Level 0 /* z\x* 111 */ /* * 0123456789012 */ - /* 0 */ "aaaaaaaaaaaaa" - /* 1 */ "aaaaaaaaaaaaa" - /* 2 */ "aaabbababbaaa" - /* 3 */ "abbbbbbbbbbba" - /* 4 */ "abbbbbbbbbbba" - /* 5 */ "abbbbbbbbbbba" - /* 6 */ "abbbbbbbbbbba" - /* 7 */ "abbbbbbbbbbba" - /* 8 */ "aaaaaaaaaaaaa" + /* 0 */ "mmmmabbbammmm" + /* 1 */ "mmmmmbbbmmmmm" + /* 2 */ "accccccccccca" + /* 3 */ "ccccccccccccc" + /* 4 */ "ccccccccccccc" + /* 5 */ "ccccccccccccc" + /* 6 */ "ccccccccccccc" + /* 7 */ "ccccccccccccc" + /* 8 */ "accccccccccca" // Level 1 /* z\x* 111 */ /* * 0123456789012 */ - /* 0 */ "....c...c...." - /* 1 */ "............." - /* 2 */ "cdddddedddddc" - /* 3 */ "dfg.......hfd" - /* 4 */ "di.........id" - /* 5 */ "d...........d" - /* 6 */ "dj.........jd" - /* 7 */ "dfg.khlgk.hfd" - /* 8 */ "cdddddddddddc" + /* 0 */ "mmmmadddammmm" + /* 1 */ "mmmmmdddmmmmm" + /* 2 */ "accccceccccca" + /* 3 */ "ceeeeeeeeeeec" + /* 4 */ "ceeeeeeeeeeec" + /* 5 */ "ceeeeeeeeeeec" + /* 6 */ "ceeeeeeeeeeec" + /* 7 */ "ceeeeeeeeeeec" + /* 8 */ "accccccccccca" // Level 2 /* z\x* 111 */ /* * 0123456789012 */ - /* 0 */ "....c...c...." - /* 1 */ "............." - /* 2 */ "cdddddndddddc" - /* 3 */ "df...o.o...fd" - /* 4 */ "d...........d" - /* 5 */ "p...........p" - /* 6 */ "d...........d" - /* 7 */ "df...qrq...fd" - /* 8 */ "cdpppdddpppdc" + /* 0 */ "mmmma...ammmm" + /* 1 */ "mmmm.....mmmm" + /* 2 */ "acccccfccccca" + /* 3 */ "cgh.......igc" + /* 4 */ "cj.........jc" + /* 5 */ "c...........c" + /* 6 */ "ck.........kc" + /* 7 */ "cgh.linhl.igc" + /* 8 */ "accccccccccca" // Level 3 /* z\x* 111 */ /* * 0123456789012 */ - /* 0 */ "....s...s...." - /* 1 */ "....r...d...." - /* 2 */ "cdddddddddddc" - /* 3 */ "dftttttttttfd" - /* 4 */ "dtttttttttttd" - /* 5 */ "htttttttttttg" - /* 6 */ "dtttttttttttd" - /* 7 */ "dftttttttttfd" - /* 8 */ "cdiiidddiiidc" + /* 0 */ "mmmma...ammmm" + /* 1 */ "mmmm.....mmmm" + /* 2 */ "acccccoccccca" + /* 3 */ "cg...p.p...gc" + /* 4 */ "c...........c" + /* 5 */ "q...........q" + /* 6 */ "c...........c" + /* 7 */ "cg...rsr...gc" + /* 8 */ "acqqqcccqqqca" // Level 4 /* z\x* 111 */ /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ "............." - /* 2 */ "duuuuuduuuuud" - /* 3 */ "u...........u" - /* 4 */ "u.ddd...ddd.u" - /* 5 */ "d.ddd...ddd.d" - /* 6 */ "u.ddd...ddd.u" - /* 7 */ "u...........u" - /* 8 */ "duuuuuduuuuud" + /* 0 */ "mmmmt...tmmmm" + /* 1 */ "mmmms...cmmmm" + /* 2 */ "accccccccccca" + /* 3 */ "cguuuuuuuuugc" + /* 4 */ "cuuuuuuuuuuuc" + /* 5 */ "iuuuuuuuuuuuh" + /* 6 */ "cuuuuuuuuuuuc" + /* 7 */ "cguuuuuuuuugc" + /* 8 */ "acjjjcccjjjca" // Level 5 /* z\x* 111 */ /* * 0123456789012 */ + /* 0 */ "mmmm.....mmmm" + /* 1 */ "mmmm.....mmmm" + /* 2 */ "cvvvvvcvvvvvc" + /* 3 */ "v...........v" + /* 4 */ "v.ccc...ccc.v" + /* 5 */ "c.ccc...ccc.c" + /* 6 */ "v.ccc...ccc.v" + /* 7 */ "v...........v" + /* 8 */ "cvvvvvcvvvvvc" + + // Level 6 + /* z\x* 111 */ + /* * 0123456789012 */ /* 0 */ "............." /* 1 */ "............." /* 2 */ "............." /* 3 */ "............." - /* 4 */ "..csc...csc.." - /* 5 */ "..vwx...vwx.." - /* 6 */ "..cyc...cyc.." + /* 4 */ "..ata...ata.." + /* 5 */ "..wxy...wxy.." + /* 6 */ "..aza...aza.." /* 7 */ "............." /* 8 */ "............." - // Level 6 + // Level 7 /* z\x* 111 */ /* * 0123456789012 */ /* 0 */ "............." /* 1 */ "............." /* 2 */ "............." /* 3 */ "............." - /* 4 */ "..c.c...c.c.." - /* 5 */ "...z.....z..." - /* 6 */ "..c.c...c.c.." + /* 4 */ "..a.a...a.a.." + /* 5 */ "...A.....A..." + /* 6 */ "..a.a...a.a.." /* 7 */ "............." /* 8 */ "............." - // Level 7 + // Level 8 /* z\x* 111 */ /* * 0123456789012 */ /* 0 */ "............." /* 1 */ "............." /* 2 */ "............." /* 3 */ "............." - /* 4 */ "..ddd...ddd.." - /* 5 */ "..dAd...dAd.." - /* 6 */ "..ddd...ddd.." + /* 4 */ "..ccc...ccc.." + /* 5 */ "..cBc...cBc.." + /* 6 */ "..ccc...ccc.." /* 7 */ "............." /* 8 */ "............." - // Level 8 + // Level 9 /* z\x* 111 */ /* * 0123456789012 */ /* 0 */ "............." /* 1 */ "............." /* 2 */ "............." /* 3 */ "............." - /* 4 */ "..u.u...u.u.." + /* 4 */ "..v.v...v.v.." /* 5 */ "............." - /* 6 */ "..u.u...u.u.." + /* 6 */ "..v.v...v.v.." /* 7 */ "............." /* 8 */ ".............", // Connectors: - "-1: 6, 1, 0: 2\n" /* Type -1, direction Z- */, + "-1: 6, 2, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -2948,206 +3310,250 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = const cPrefab::sDef g_AlchemistVillageStartingPrefabs[] = { - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // Well: // The data has been exported from the gallery Desert, area index 90, ID 631, created by STR_Warrior { // Size: - 5, 21, 5, // SizeX = 5, SizeY = 21, SizeZ = 5 + 7, 21, 7, // SizeX = 7, SizeY = 21, SizeZ = 7 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 4, 20, 4, // MaxX, MaxY, MaxZ + 6, 20, 6, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ "a: 1: 0\n" /* stone */ - "b: 24: 0\n" /* sandstone */ - "c: 8: 0\n" /* water */ - "d: 24: 2\n" /* sandstone */ - "e:128: 1\n" /* sandstonestairs */ - "f: 44: 1\n" /* step */ - "g:128: 0\n" /* sandstonestairs */ - "h:128: 3\n" /* sandstonestairs */ - "i:128: 2\n" /* sandstonestairs */ - "j: 44: 9\n" /* step */ - "k:126: 0\n" /* woodenslab */ - "m: 19: 0\n" /* sponge */, + "b: 24: 2\n" /* sandstone */ + "c: 24: 0\n" /* sandstone */ + "d: 8: 0\n" /* water */ + "e: 4: 0\n" /* cobblestone */ + "f: 13: 0\n" /* gravel */ + "g:128: 1\n" /* sandstonestairs */ + "h: 44: 1\n" /* step */ + "i:128: 0\n" /* sandstonestairs */ + "j:128: 3\n" /* sandstonestairs */ + "k:128: 2\n" /* sandstonestairs */ + "l: 44: 9\n" /* step */ + "m: 19: 0\n" /* sponge */ + "n:126: 0\n" /* woodenslab */, // Block data: // Level 0 - /* z\x* 01234 */ - /* 0 */ "aaaaa" - /* 1 */ "aaaaa" - /* 2 */ "aaaaa" - /* 3 */ "aaaaa" - /* 4 */ "aaaaa" + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "maaaaam" + /* 2 */ "maaaaam" + /* 3 */ "maaaaam" + /* 4 */ "maaaaam" + /* 5 */ "maaaaam" + /* 6 */ "mmmmmmm" // Level 1 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bcccb" - /* 2 */ "bcccb" - /* 3 */ "bcccb" - /* 4 */ "bbbbb" + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mbcccbm" + /* 2 */ "mcdddcm" + /* 3 */ "mcdddcm" + /* 4 */ "mcdddcm" + /* 5 */ "mbcccbm" + /* 6 */ "mmmmmmm" // Level 2 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bcccb" - /* 2 */ "bcccb" - /* 3 */ "bcccb" - /* 4 */ "bbbbb" + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mbcccbm" + /* 2 */ "mcdddcm" + /* 3 */ "mcdddcm" + /* 4 */ "mcdddcm" + /* 5 */ "mbcccbm" + /* 6 */ "mmmmmmm" // Level 3 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bcccb" - /* 2 */ "bcccb" - /* 3 */ "bcccb" - /* 4 */ "bbbbb" + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mbcccbm" + /* 2 */ "mcdddcm" + /* 3 */ "mcdddcm" + /* 4 */ "mcdddcm" + /* 5 */ "mbcccbm" + /* 6 */ "mmmmmmm" // Level 4 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bcccb" - /* 2 */ "bcccb" - /* 3 */ "bcccb" - /* 4 */ "bbbbb" + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mbcccbm" + /* 2 */ "mcdddcm" + /* 3 */ "mcdddcm" + /* 4 */ "mcdddcm" + /* 5 */ "mbcccbm" + /* 6 */ "mmmmmmm" // Level 5 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bcccb" - /* 2 */ "bcccb" - /* 3 */ "bcccb" - /* 4 */ "bbbbb" + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mbcccbm" + /* 2 */ "mcdddcm" + /* 3 */ "mcdddcm" + /* 4 */ "mcdddcm" + /* 5 */ "mbcccbm" + /* 6 */ "mmmmmmm" // Level 6 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bcccb" - /* 2 */ "bcccb" - /* 3 */ "bcccb" - /* 4 */ "bbbbb" + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mbcccbm" + /* 2 */ "mcdddcm" + /* 3 */ "mcdddcm" + /* 4 */ "mcdddcm" + /* 5 */ "mbcccbm" + /* 6 */ "mmmmmmm" // Level 7 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bcccb" - /* 2 */ "bcccb" - /* 3 */ "bcccb" - /* 4 */ "bbbbb" + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mbcccbm" + /* 2 */ "mcdddcm" + /* 3 */ "mcdddcm" + /* 4 */ "mcdddcm" + /* 5 */ "mbcccbm" + /* 6 */ "mmmmmmm" // Level 8 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bcccb" - /* 2 */ "bcccb" - /* 3 */ "bcccb" - /* 4 */ "bbbbb" + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mbcccbm" + /* 2 */ "mcdddcm" + /* 3 */ "mcdddcm" + /* 4 */ "mcdddcm" + /* 5 */ "mbcccbm" + /* 6 */ "mmmmmmm" // Level 9 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bcccb" - /* 2 */ "bcccb" - /* 3 */ "bcccb" - /* 4 */ "bbbbb" + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mbcccbm" + /* 2 */ "mcdddcm" + /* 3 */ "mcdddcm" + /* 4 */ "mcdddcm" + /* 5 */ "mbcccbm" + /* 6 */ "mmmmmmm" // Level 10 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bcccb" - /* 2 */ "bcccb" - /* 3 */ "bcccb" - /* 4 */ "bbbbb" + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mbcccbm" + /* 2 */ "mcdddcm" + /* 3 */ "mcdddcm" + /* 4 */ "mcdddcm" + /* 5 */ "mbcccbm" + /* 6 */ "mmmmmmm" // Level 11 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bcccb" - /* 2 */ "bcccb" - /* 3 */ "bcccb" - /* 4 */ "bbbbb" + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mbcccbm" + /* 2 */ "mcdddcm" + /* 3 */ "mcdddcm" + /* 4 */ "mcdddcm" + /* 5 */ "mbcccbm" + /* 6 */ "mmmmmmm" // Level 12 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bcccb" - /* 2 */ "bcccb" - /* 3 */ "bcccb" - /* 4 */ "bbbbb" + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mbcccbm" + /* 2 */ "mcdddcm" + /* 3 */ "mcdddcm" + /* 4 */ "mcdddcm" + /* 5 */ "mbcccbm" + /* 6 */ "mmmmmmm" // Level 13 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bcccb" - /* 2 */ "bcccb" - /* 3 */ "bcccb" - /* 4 */ "bbbbb" + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mbcccbm" + /* 2 */ "mcdddcm" + /* 3 */ "mcdddcm" + /* 4 */ "mcdddcm" + /* 5 */ "mbcccbm" + /* 6 */ "mmmmmmm" // Level 14 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bcccb" - /* 2 */ "bcccb" - /* 3 */ "bcccb" - /* 4 */ "bbbbb" + /* z\x* 0123456 */ + /* 0 */ "mmeeemm" + /* 1 */ "mbcccbm" + /* 2 */ "ecdddce" + /* 3 */ "ecdddce" + /* 4 */ "ecdddce" + /* 5 */ "mbcccbm" + /* 6 */ "mmeeemm" // Level 15 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bcccb" - /* 2 */ "bcccb" - /* 3 */ "bcccb" - /* 4 */ "bbbbb" + /* z\x* 0123456 */ + /* 0 */ "mmfffmm" + /* 1 */ "mbcccbm" + /* 2 */ "fcdddcf" + /* 3 */ "fcdddcf" + /* 4 */ "fcdddcf" + /* 5 */ "mbcccbm" + /* 6 */ "mmfffmm" // Level 16 - /* z\x* 01234 */ - /* 0 */ "defgd" - /* 1 */ "h...h" - /* 2 */ "f...f" - /* 3 */ "i...i" - /* 4 */ "defgd" + /* z\x* 0123456 */ + /* 0 */ "mm...mm" + /* 1 */ "mbghibm" + /* 2 */ ".j...j." + /* 3 */ ".h...h." + /* 4 */ ".k...k." + /* 5 */ "mbghibm" + /* 6 */ "mm...mm" // Level 17 - /* z\x* 01234 */ - /* 0 */ "d...d" - /* 1 */ "....." - /* 2 */ "....." - /* 3 */ "....." - /* 4 */ "d...d" + /* z\x* 0123456 */ + /* 0 */ "mm...mm" + /* 1 */ "mb...bm" + /* 2 */ "......." + /* 3 */ "......." + /* 4 */ "......." + /* 5 */ "mb...bm" + /* 6 */ "mm...mm" // Level 18 - /* z\x* 01234 */ - /* 0 */ "djjjd" - /* 1 */ "j...j" - /* 2 */ "j...j" - /* 3 */ "j...j" - /* 4 */ "djjjd" + /* z\x* 0123456 */ + /* 0 */ "mm...mm" + /* 1 */ "mblllbm" + /* 2 */ ".l...l." + /* 3 */ ".l...l." + /* 4 */ ".l...l." + /* 5 */ "mblllbm" + /* 6 */ "mm...mm" // Level 19 - /* z\x* 01234 */ - /* 0 */ "bbbbb" - /* 1 */ "bkkkb" - /* 2 */ "bkkkb" - /* 3 */ "bkkkb" - /* 4 */ "bbbbb" + /* z\x* 0123456 */ + /* 0 */ "mm...mm" + /* 1 */ "mcccccm" + /* 2 */ ".cnnnc." + /* 3 */ ".cnnnc." + /* 4 */ ".cnnnc." + /* 5 */ "mcccccm" + /* 6 */ "mm...mm" // Level 20 - /* z\x* 01234 */ - /* 0 */ "f.f.f" - /* 1 */ "....." - /* 2 */ "f...f" - /* 3 */ "....." - /* 4 */ "f.f.f", + /* z\x* 0123456 */ + /* 0 */ "mm...mm" + /* 1 */ "mh.h.hm" + /* 2 */ "......." + /* 3 */ ".h...h." + /* 4 */ "......." + /* 5 */ "mh.h.hm" + /* 6 */ "mm...mm", // Connectors: - "2: 2, 16, 4: 3\n" /* Type 2, direction Z+ */ - "2: 0, 16, 2: 4\n" /* Type 2, direction X- */ - "2: 2, 16, 0: 2\n" /* Type 2, direction Z- */ - "2: 4, 16, 2: 5\n" /* Type 2, direction X+ */, + "2: 3, 16, 6: 3\n" /* Type 2, direction Z+ */ + "2: 0, 16, 3: 4\n" /* Type 2, direction X- */ + "2: 3, 16, 0: 2\n" /* Type 2, direction Z- */ + "2: 6, 16, 3: 5\n" /* Type 2, direction X+ */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ diff --git a/src/Generating/Prefabs/CMakeLists.txt b/src/Generating/Prefabs/CMakeLists.txt index a1f09112d..2c62aa73d 100644 --- a/src/Generating/Prefabs/CMakeLists.txt +++ b/src/Generating/Prefabs/CMakeLists.txt @@ -4,11 +4,30 @@ project (MCServer) include_directories ("${PROJECT_SOURCE_DIR}/../../") -file(GLOB SOURCE - "*.cpp" - "*.h" -) +SET (SRCS + AlchemistVillagePrefabs.cpp + JapaneseVillagePrefabs.cpp + NetherFortPrefabs.cpp + PlainsVillagePrefabs.cpp + RainbowRoadPrefabs.cpp + SandFlatRoofVillagePrefabs.cpp + SandVillagePrefabs.cpp + TestRailsPrefabs.cpp + UnderwaterBasePrefabs.cpp) -add_library(Generating_Prefabs ${SOURCE}) +SET (HDRS + AlchemistVillagePrefabs.h + JapaneseVillagePrefabs.h + NetherFortPrefabs.h + PlainsVillagePrefabs.h + RainbowRoadPrefabs.h + SandFlatRoofVillagePrefabs.h + SandVillagePrefabs.h + TestRailsPrefabs.h + UnderwaterBasePrefabs.h) -target_link_libraries(Generating_Prefabs OSSupport iniFile Blocks) +if(NOT MSVC) + add_library(Generating_Prefabs ${SRCS} ${HDRS}) + + target_link_libraries(Generating_Prefabs OSSupport iniFile Blocks) +endif() diff --git a/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp b/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp index 5ec222f84..0362c9406 100644 --- a/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp +++ b/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp @@ -15,7 +15,7 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = { - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // Arch: // The data has been exported from the gallery Plains, area index 144, ID 488, created by Aloe_vera { @@ -129,7 +129,195 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + // Farm: + // The data has been exported from the gallery Plains, area index 166, ID 554, created by Aloe_vera + { + // Size: + 11, 8, 13, // SizeX = 11, SizeY = 8, SizeZ = 13 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 10, 7, 12, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 3: 0\n" /* dirt */ + "b: 60: 7\n" /* tilleddirt */ + "c: 8: 0\n" /* water */ + "d: 43: 0\n" /* doubleslab */ + "e: 44: 0\n" /* step */ + "f: 59: 7\n" /* crops */ + "g: 83: 0\n" /* reedblock */ + "h:113: 0\n" /* netherbrickfence */ + "i: 50: 5\n" /* torch */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "mmmmmmmmmmm" + /* 1 */ "maaaaaaaaam" + /* 2 */ "maaaaaaaaam" + /* 3 */ "maaaaaaaaam" + /* 4 */ "maaaaaaaaam" + /* 5 */ "maaaaaaaaam" + /* 6 */ "maaaaaaaaam" + /* 7 */ "maaaaaaaaam" + /* 8 */ "maaaaaaaaam" + /* 9 */ "maaaaaaaaam" + /* 10 */ "maaaaaaaaam" + /* 11 */ "maaaaaaaaam" + /* 12 */ "mmmmmmmmmmm" + + // Level 1 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "mmmmmmmmmmm" + /* 1 */ "maaaaaaaaam" + /* 2 */ "mabbbbbbbam" + /* 3 */ "mabbbbbbbam" + /* 4 */ "mabbbbbbbam" + /* 5 */ "mabbbbbbbam" + /* 6 */ "mabcccccaam" + /* 7 */ "mabbbbbbbam" + /* 8 */ "mabbbbbbbam" + /* 9 */ "mabbbbbbbam" + /* 10 */ "mabbbbbbbam" + /* 11 */ "maaaaaaaaam" + /* 12 */ "mmmmmmmmmmm" + + // Level 2 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".deeeeeeed." + /* 2 */ ".efffffffe." + /* 3 */ ".efffffffe." + /* 4 */ ".efffffffe." + /* 5 */ ".efgggggfe." + /* 6 */ ".eg.....ge." + /* 7 */ ".efgggggfe." + /* 8 */ ".efffffffe." + /* 9 */ ".efffffffe." + /* 10 */ ".efffffffe." + /* 11 */ ".deeeeeeed." + /* 12 */ "..........." + + // Level 3 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".h.......h." + /* 2 */ "..........." + /* 3 */ "..........." + /* 4 */ "..........." + /* 5 */ "...ggggg..." + /* 6 */ "..g.....g.." + /* 7 */ "...ggggg..." + /* 8 */ "..........." + /* 9 */ "..........." + /* 10 */ "..........." + /* 11 */ ".h.......h." + /* 12 */ "..........." + + // Level 4 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".h.......h." + /* 2 */ "..........." + /* 3 */ "..........." + /* 4 */ "..........." + /* 5 */ "...ggggg..." + /* 6 */ "..g.....g.." + /* 7 */ "...ggggg..." + /* 8 */ "..........." + /* 9 */ "..........." + /* 10 */ "..........." + /* 11 */ ".h.......h." + /* 12 */ "..........." + + // Level 5 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".h.......h." + /* 2 */ "..........." + /* 3 */ "..........." + /* 4 */ "..........." + /* 5 */ "..........." + /* 6 */ "..........." + /* 7 */ "..........." + /* 8 */ "..........." + /* 9 */ "..........." + /* 10 */ "..........." + /* 11 */ ".h.......h." + /* 12 */ "..........." + + // Level 6 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ ".h.......h." + /* 1 */ "hhh.....hhh" + /* 2 */ ".h.......h." + /* 3 */ "..........." + /* 4 */ "..........." + /* 5 */ "..........." + /* 6 */ "..........." + /* 7 */ "..........." + /* 8 */ "..........." + /* 9 */ "..........." + /* 10 */ ".h.......h." + /* 11 */ "hhh.....hhh" + /* 12 */ ".h.......h." + + // Level 7 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ ".i.......i." + /* 1 */ "i.i.....i.i" + /* 2 */ ".i.......i." + /* 3 */ "..........." + /* 4 */ "..........." + /* 5 */ "..........." + /* 6 */ "..........." + /* 7 */ "..........." + /* 8 */ "..........." + /* 9 */ "..........." + /* 10 */ ".i.......i." + /* 11 */ "i.i.....i.i" + /* 12 */ ".i.......i.", + + // Connectors: + "-1: 10, 2, 6: 5\n" /* Type -1, direction X+ */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + true, + }, // Farm + + + + //////////////////////////////////////////////////////////////////////////////// // Forge: // The data has been exported from the gallery Plains, area index 79, ID 145, created by Aloe_vera { @@ -395,7 +583,7 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // Garden2: // The data has been exported from the gallery Plains, area index 147, ID 491, created by Aloe_vera { @@ -547,7 +735,7 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // HouseMid: // The data has been exported from the gallery Plains, area index 62, ID 119, created by Aloe_vera { @@ -723,7 +911,7 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // HouseSmall: // The data has been exported from the gallery Plains, area index 68, ID 131, created by Aloe_vera { @@ -834,7 +1022,7 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // HouseSmallDblWithDoor: // The data has been exported from the gallery Plains, area index 113, ID 265, created by Aloe_vera { @@ -958,7 +1146,7 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // HouseSmallDouble: // The data has been exported from the gallery Plains, area index 72, ID 135, created by Aloe_vera { @@ -1079,7 +1267,7 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // HouseSmallWithDoor: // The data has been exported from the gallery Plains, area index 112, ID 264, created by Aloe_vera { @@ -1192,7 +1380,7 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // HouseWide: // The data has been exported from the gallery Plains, area index 64, ID 121, created by STR_Warrior { @@ -1340,7 +1528,7 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // HouseWithGarden: // The data has been exported from the gallery Plains, area index 67, ID 130, created by Aloe_vera { @@ -1586,7 +1774,7 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // HouseWithSakura1: // The data has been exported from the gallery Plains, area index 75, ID 141, created by Aloe_vera { @@ -1780,7 +1968,7 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // HouseWithSpa: // The data has been exported from the gallery Plains, area index 73, ID 139, created by Aloe_vera { @@ -1988,7 +2176,7 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // MediumSakuraTree: // The data has been exported from the gallery Plains, area index 146, ID 490, created by STR_Warrior { @@ -2035,23 +2223,23 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = // Level 2 /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "..c.c.." + /* 0 */ "mm...mm" + /* 1 */ "m.c...m" /* 2 */ ".dccdc." /* 3 */ "..cefc." /* 4 */ ".ccfgh." - /* 5 */ "..ccc.." - /* 6 */ "......." + /* 5 */ "m.ccc.m" + /* 6 */ "mm...mm" // Level 3 /* z\x* 0123456 */ - /* 0 */ "......." + /* 0 */ "m.....m" /* 1 */ "......." /* 2 */ "......." /* 3 */ "...e..." /* 4 */ "......." /* 5 */ "......." - /* 6 */ "......." + /* 6 */ "m.....m" // Level 4 /* z\x* 0123456 */ @@ -2142,7 +2330,7 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // Restaurant: // The data has been exported from the gallery Plains, area index 61, ID 117, created by Aloe_vera { @@ -2396,7 +2584,7 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // SakuraDouble: // The data has been exported from the gallery Plains, area index 76, ID 142, created by Aloe_vera { @@ -2527,7 +2715,7 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // SakuraSmall: // The data has been exported from the gallery Plains, area index 145, ID 489, created by Aloe_vera { @@ -2638,7 +2826,7 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = const cPrefab::sDef g_JapaneseVillageStartingPrefabs[] = { - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // HighTemple: // The data has been exported from the gallery Plains, area index 70, ID 133, created by Aloe_vera { @@ -2989,7 +3177,7 @@ const cPrefab::sDef g_JapaneseVillageStartingPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // Well: // The data has been exported from the gallery Plains, area index 143, ID 487, created by STR_Warrior { @@ -3005,159 +3193,157 @@ const cPrefab::sDef g_JapaneseVillageStartingPrefabs[] = "a: 1: 0\n" /* stone */ "b: 4: 0\n" /* cobblestone */ "c: 8: 0\n" /* water */ - "d: 3: 0\n" /* dirt */ - "e: 2: 0\n" /* grass */ - "f: 13: 0\n" /* gravel */ - "g: 67: 1\n" /* stairs */ - "h: 67: 2\n" /* stairs */ - "i: 67: 0\n" /* stairs */ - "j: 67: 3\n" /* stairs */ - "k: 85: 0\n" /* fence */ - "l: 44: 8\n" /* step */ - "m: 19: 0\n" /* sponge */ - "n: 44: 0\n" /* step */ - "o: 43: 0\n" /* doubleslab */, + "d: 13: 0\n" /* gravel */ + "e: 67: 1\n" /* stairs */ + "f: 67: 2\n" /* stairs */ + "g: 67: 0\n" /* stairs */ + "h: 67: 3\n" /* stairs */ + "i: 85: 0\n" /* fence */ + "j: 44: 8\n" /* step */ + "k: 44: 0\n" /* step */ + "l: 43: 0\n" /* doubleslab */ + "m: 19: 0\n" /* sponge */, // Block data: // Level 0 /* z\x* 0123456 */ - /* 0 */ "aaaaaaa" - /* 1 */ "aaaaaaa" - /* 2 */ "aaaaaaa" - /* 3 */ "aaaaaaa" - /* 4 */ "aaaaaaa" - /* 5 */ "aaaaaaa" - /* 6 */ "aaaaaaa" + /* 0 */ "mmmmmmm" + /* 1 */ "maaaaam" + /* 2 */ "maaaaam" + /* 3 */ "maaaaam" + /* 4 */ "maaaaam" + /* 5 */ "maaaaam" + /* 6 */ "mmmmmmm" // Level 1 /* z\x* 0123456 */ - /* 0 */ "aaaaaaa" - /* 1 */ "abbbbba" - /* 2 */ "abcc.ba" - /* 3 */ "abcccba" - /* 4 */ "abcccba" - /* 5 */ "abbbbba" - /* 6 */ "aaaaaaa" + /* 0 */ "mmmmmmm" + /* 1 */ "mbbbbbm" + /* 2 */ "mbcc.bm" + /* 3 */ "mbcccbm" + /* 4 */ "mbcccbm" + /* 5 */ "mbbbbbm" + /* 6 */ "mmmmmmm" // Level 2 /* z\x* 0123456 */ - /* 0 */ "aaaaaaa" - /* 1 */ "abbbbba" - /* 2 */ "abcccba" - /* 3 */ "abcccba" - /* 4 */ "abcccba" - /* 5 */ "abbbbba" - /* 6 */ "aaaaaaa" + /* 0 */ "mmmmmmm" + /* 1 */ "mbbbbbm" + /* 2 */ "mbcccbm" + /* 3 */ "mbcccbm" + /* 4 */ "mbcccbm" + /* 5 */ "mbbbbbm" + /* 6 */ "mmmmmmm" // Level 3 /* z\x* 0123456 */ - /* 0 */ "aaaaaaa" - /* 1 */ "abbbbba" - /* 2 */ "abcccba" - /* 3 */ "abcccba" - /* 4 */ "abcccba" - /* 5 */ "abbbbba" - /* 6 */ "aaaaaaa" + /* 0 */ "mmmmmmm" + /* 1 */ "mbbbbbm" + /* 2 */ "mbcccbm" + /* 3 */ "mbcccbm" + /* 4 */ "mbcccbm" + /* 5 */ "mbbbbbm" + /* 6 */ "mmmmmmm" // Level 4 /* z\x* 0123456 */ - /* 0 */ "aaaaaaa" - /* 1 */ "abbbbba" - /* 2 */ "abcccba" - /* 3 */ "abcccba" - /* 4 */ "abcccba" - /* 5 */ "abbbbba" - /* 6 */ "aaaaaaa" + /* 0 */ "mmmmmmm" + /* 1 */ "mbbbbbm" + /* 2 */ "mbcccbm" + /* 3 */ "mbcccbm" + /* 4 */ "mbcccbm" + /* 5 */ "mbbbbbm" + /* 6 */ "mmmmmmm" // Level 5 /* z\x* 0123456 */ - /* 0 */ "ddddddd" - /* 1 */ "dbbbbbd" - /* 2 */ "dbcccbd" - /* 3 */ "dbcccbd" - /* 4 */ "dbcccbd" - /* 5 */ "dbbbbbd" - /* 6 */ "ddddddd" + /* 0 */ "mmmmmmm" + /* 1 */ "mbbbbbm" + /* 2 */ "mbcccbm" + /* 3 */ "mbcccbm" + /* 4 */ "mbcccbm" + /* 5 */ "mbbbbbm" + /* 6 */ "mmmmmmm" // Level 6 /* z\x* 0123456 */ - /* 0 */ "ddddddd" - /* 1 */ "dbbbbbd" - /* 2 */ "dbcccbd" - /* 3 */ "dbcccbd" - /* 4 */ "dbcccbd" - /* 5 */ "dbbbbbd" - /* 6 */ "ddddddd" + /* 0 */ "mmmmmmm" + /* 1 */ "mbbbbbm" + /* 2 */ "mbcccbm" + /* 3 */ "mbcccbm" + /* 4 */ "mbcccbm" + /* 5 */ "mbbbbbm" + /* 6 */ "mmmmmmm" // Level 7 /* z\x* 0123456 */ - /* 0 */ "ddddddd" - /* 1 */ "dbbbbbd" - /* 2 */ "dbcccbd" - /* 3 */ "dbcccbd" - /* 4 */ "dbcccbd" - /* 5 */ "dbbbbbd" - /* 6 */ "ddddddd" + /* 0 */ "mmbbbmm" + /* 1 */ "mbbbbbm" + /* 2 */ "bbcccbb" + /* 3 */ "bbcccbb" + /* 4 */ "bbcccbb" + /* 5 */ "mbbbbbm" + /* 6 */ "mmbbbmm" // Level 8 /* z\x* 0123456 */ - /* 0 */ "eefffee" - /* 1 */ "ebbbbbe" - /* 2 */ "fbcccbf" - /* 3 */ "fbcccbf" - /* 4 */ "fbcccbf" - /* 5 */ "ebbbbbe" - /* 6 */ "eefffee" + /* 0 */ "mmdddmm" + /* 1 */ "mbbbbbm" + /* 2 */ "dbcccbd" + /* 3 */ "dbcccbd" + /* 4 */ "dbcccbd" + /* 5 */ "mbbbbbm" + /* 6 */ "mmdddmm" // Level 9 /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".bghib." - /* 2 */ ".j...j." - /* 3 */ ".i...g." - /* 4 */ ".h...h." - /* 5 */ ".bgjib." - /* 6 */ "......." + /* 0 */ "mm...mm" + /* 1 */ "mbefgbm" + /* 2 */ ".h...h." + /* 3 */ ".g...e." + /* 4 */ ".f...f." + /* 5 */ "mbehgbm" + /* 6 */ "mm...mm" // Level 10 /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".k...k." + /* 0 */ "mm...mm" + /* 1 */ "mi...im" /* 2 */ "......." /* 3 */ "......." /* 4 */ "......." - /* 5 */ ".k...k." - /* 6 */ "......." + /* 5 */ "mi...im" + /* 6 */ "mm...mm" // Level 11 /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".k...k." + /* 0 */ "mm...mm" + /* 1 */ "mi...im" /* 2 */ "......." /* 3 */ "......." /* 4 */ "......." - /* 5 */ ".k...k." - /* 6 */ "......." + /* 5 */ "mi...im" + /* 6 */ "mm...mm" // Level 12 /* z\x* 0123456 */ - /* 0 */ ".lnnnl." - /* 1 */ "loooool" - /* 2 */ "nooooon" - /* 3 */ "nooooon" - /* 4 */ "nooooon" - /* 5 */ "loooool" - /* 6 */ ".lnnnl." + /* 0 */ "mjkkkjm" + /* 1 */ "jlllllj" + /* 2 */ "klllllk" + /* 3 */ "klllllk" + /* 4 */ "klllllk" + /* 5 */ "jlllllj" + /* 6 */ "mjkkkjm" // Level 13 /* z\x* 0123456 */ - /* 0 */ "n.....n" + /* 0 */ "k.....k" /* 1 */ "......." - /* 2 */ "..nnn.." - /* 3 */ "..non.." - /* 4 */ "..nnn.." + /* 2 */ "..kkk.." + /* 3 */ "..klk.." + /* 4 */ "..kkk.." /* 5 */ "......." - /* 6 */ "n.....n", + /* 6 */ "k.....k", // Connectors: "2: 0, 9, 3: 4\n" /* Type 2, direction X- */ diff --git a/src/Generating/Prefabs/NetherFortPrefabs.cpp b/src/Generating/Prefabs/NetherFortPrefabs.cpp index 2c97f28ea..a3e3da158 100644 --- a/src/Generating/Prefabs/NetherFortPrefabs.cpp +++ b/src/Generating/Prefabs/NetherFortPrefabs.cpp @@ -15,7 +15,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = { - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // BalconyCorridor: // The data has been exported from the gallery Nether, area index 37, ID 288, created by Aloe_vera { @@ -162,7 +162,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // BalconyTee2: // The data has been exported from the gallery Nether, area index 38, ID 289, created by Aloe_vera { @@ -325,7 +325,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // BlazePlatform: // The data has been exported from the gallery Nether, area index 26, ID 276, created by tonibm1999 { @@ -448,7 +448,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // BlazePlatformOverhang: // The data has been exported from the gallery Nether, area index 20, ID 162, created by STR_Warrior { @@ -621,7 +621,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // BridgeCircleCrossing: // The data has been exported from the gallery Nether, area index 49, ID 308, created by Aloe_vera { @@ -824,7 +824,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // BridgeCrossing: // The data has been exported from the gallery Nether, area index 17, ID 159, created by Aloe_vera { @@ -1028,7 +1028,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // BridgeCrumble1: // The data has been exported from the gallery Nether, area index 19, ID 161, created by Aloe_vera { @@ -1125,7 +1125,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // BridgeCrumble2: // The data has been exported from the gallery Nether, area index 18, ID 160, created by Aloe_vera { @@ -1228,7 +1228,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // BridgeDoubleCrumble: // The data has been exported from the gallery Nether, area index 46, ID 305, created by STR_Warrior { @@ -1410,7 +1410,384 @@ const cPrefab::sDef g_NetherFortPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + // BridgeDoubleStairs: + // The data has been exported from the gallery Nether, area index 115, ID 810, created by STR_Warrior + { + // Size: + 15, 16, 16, // SizeX = 15, SizeY = 16, SizeZ = 16 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 14, 15, 15, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a:112: 0\n" /* netherbrick */ + "b:114: 7\n" /* netherbrickstairs */ + "c:114: 6\n" /* netherbrickstairs */ + "d:114: 4\n" /* netherbrickstairs */ + "e:114: 5\n" /* netherbrickstairs */ + "f:114: 2\n" /* netherbrickstairs */ + "g:114: 3\n" /* netherbrickstairs */ + "h:114: 1\n" /* netherbrickstairs */ + "i: 44:14\n" /* step */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "mmmmmmmmmmmaaam" + /* 1 */ "aammmmmmmmmaaaa" + /* 2 */ "aammmmmmmmmmmma" + /* 3 */ "aammmmmmmmmmmma" + /* 4 */ "mmmmmmmmmmmmmmm" + /* 5 */ "mmmmmmmmmmmmmmm" + /* 6 */ "mmmmmmmmmmmmmmm" + /* 7 */ "mmmmmmmmmmmmmmm" + /* 8 */ "mmmmmmmmmmmmmmm" + /* 9 */ "mmmmmmmmmmmmmmm" + /* 10 */ "mmmmmmmmmmmmmmm" + /* 11 */ "mmmmmmmmmmmmmmm" + /* 12 */ "aammmmmmmmmmmma" + /* 13 */ "aammmmmmmmmmmma" + /* 14 */ "aammmmmmmmmaaaa" + /* 15 */ "mmmmmmmmmmmaaam" + + // Level 1 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "mmmmmmmmmmmaaam" + /* 1 */ "aammmmmmmmmaaaa" + /* 2 */ "aammmmmmmmmmmma" + /* 3 */ "aammmmmmmmmmmma" + /* 4 */ "mmmmmmmmmmmmmmm" + /* 5 */ "mmmmmmmmmmmmmmm" + /* 6 */ "mmmmmmmmmmmmmmm" + /* 7 */ "mmmmmmmmmmmmmmm" + /* 8 */ "mmmmmmmmmmmmmmm" + /* 9 */ "mmmmmmmmmmmmmmm" + /* 10 */ "mmmmmmmmmmmmmmm" + /* 11 */ "mmmmmmmmmmmmmmm" + /* 12 */ "aammmmmmmmmmmma" + /* 13 */ "aammmmmmmmmmmma" + /* 14 */ "aammmmmmmmmaaaa" + /* 15 */ "mmmmmmmmmmmaaam" + + // Level 2 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "mmmmmmmmmmmaaam" + /* 1 */ "aammmmmmmmmaaaa" + /* 2 */ "aammmmmmmmmmmma" + /* 3 */ "aammmmmmmmmmmma" + /* 4 */ "mmmmmmmmmmmmmmm" + /* 5 */ "mmmmmmmmmmmmmmm" + /* 6 */ "mmmmmmmmmmmmmmm" + /* 7 */ "mmmmmmmmmmmmmmm" + /* 8 */ "mmmmmmmmmmmmmmm" + /* 9 */ "mmmmmmmmmmmmmmm" + /* 10 */ "mmmmmmmmmmmmmmm" + /* 11 */ "mmmmmmmmmmmmmmm" + /* 12 */ "aammmmmmmmmmmma" + /* 13 */ "aammmmmmmmmmmma" + /* 14 */ "aammmmmmmmmaaaa" + /* 15 */ "mmmmmmmmmmmaaam" + + // Level 3 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "mmmmmmmmmmmaaam" + /* 1 */ "aammmmmmmmmaaaa" + /* 2 */ "aammmmmmmmmbbba" + /* 3 */ "aammmmmmmmmmmma" + /* 4 */ "mmmmmmmmmmmmmmm" + /* 5 */ "mmmmmmmmmmmmmmm" + /* 6 */ "mmmmmmmmmmmmmmm" + /* 7 */ "mmmmmmmmmmmmmmm" + /* 8 */ "mmmmmmmmmmmmmmm" + /* 9 */ "mmmmmmmmmmmmmmm" + /* 10 */ "mmmmmmmmmmmmmmm" + /* 11 */ "mmmmmmmmmmmmmmm" + /* 12 */ "aammmmmmmmmmmma" + /* 13 */ "aammmmmmmmmccca" + /* 14 */ "aammmmmmmmmaaaa" + /* 15 */ "mmmmmmmmmmmaaam" + + // Level 4 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "mmmmmmmmmmmaaam" + /* 1 */ "aammmmmmmmmaaaa" + /* 2 */ "aammmmmmmmmaaaa" + /* 3 */ "aammmmmmmmmbbba" + /* 4 */ "mmmmmmmmmmmmmmm" + /* 5 */ "mmmmmmmmmmmmmmm" + /* 6 */ "mmmmmmmmmmmmmmm" + /* 7 */ "mmmmmmmmmmmmmmm" + /* 8 */ "mmmmmmmmmmmmmmm" + /* 9 */ "mmmmmmmmmmmmmmm" + /* 10 */ "mmmmmmmmmmmmmmm" + /* 11 */ "mmmmmmmmmmmmmmm" + /* 12 */ "aammmmmmmmmccca" + /* 13 */ "aammmmmmmmmaaaa" + /* 14 */ "aammmmmmmmmaaaa" + /* 15 */ "mmmmmmmmmmmaaam" + + // Level 5 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "mmmmmmmmmmdaaae" + /* 1 */ "aammmmmmmmdaaaa" + /* 2 */ "aammmmmmmmdaaaa" + /* 3 */ "aammmmmmmmdaaaa" + /* 4 */ "mmmmmmmmmmdaaae" + /* 5 */ "mmmmmmmmmmmmmmm" + /* 6 */ "mmmmmmmmmmmmmmm" + /* 7 */ "mmmmmmmmmmmmmmm" + /* 8 */ "mmmmmmmmmmmmmmm" + /* 9 */ "mmmmmmmmmmmmmmm" + /* 10 */ "mmmmmmmmmmmmmmm" + /* 11 */ "mmmmmmmmmmdaaae" + /* 12 */ "aammmmmmmmdaaaa" + /* 13 */ "aammmmmmmmdaaaa" + /* 14 */ "aammmmmmmmdaaaa" + /* 15 */ "mmmmmmmmmmdaaae" + + // Level 6 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "mmmmmmmmmmaaaaa" + /* 1 */ "aammmmmmmmaaaaa" + /* 2 */ "aammmmmmmmaaaaa" + /* 3 */ "aammmmmmmmaaaaa" + /* 4 */ "mmmmmmmmmmaaaaa" + /* 5 */ "mmmmmmmmmmdaaae" + /* 6 */ "mmmmmmmmmmmmmmm" + /* 7 */ "mmmmmmmmmmmmmmm" + /* 8 */ "mmmmmmmmmmmmmmm" + /* 9 */ "mmmmmmmmmmmmmmm" + /* 10 */ "mmmmmmmmmmdaaae" + /* 11 */ "mmmmmmmmmmaaaaa" + /* 12 */ "aammmmmmmmaaaaa" + /* 13 */ "aammmmmmmmaaaaa" + /* 14 */ "aammmmmmmmaaaaa" + /* 15 */ "mmmmmmmmmmaaaaa" + + // Level 7 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "mmmmmmmmmma...a" + /* 1 */ "aammmmmmmma...a" + /* 2 */ "aammmmmmmma...a" + /* 3 */ "aammmmmmmma...a" + /* 4 */ "mmmmmmmmmmafffa" + /* 5 */ "mmmmmmmmmaaaaaa" + /* 6 */ "mmmmmmmmmaaaaae" + /* 7 */ "mmmmmmmmmaaaaae" + /* 8 */ "mmmmmmmmmaaaaae" + /* 9 */ "mmmmmmmmmaaaaae" + /* 10 */ "mmmmmmmmmaaaaaa" + /* 11 */ "mmmmmmmmmmaggga" + /* 12 */ "aammmmmmmma...a" + /* 13 */ "aammmmmmmma...a" + /* 14 */ "aammmmmmmma...a" + /* 15 */ "mmmmmmmmmma...a" + + // Level 8 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "mmmmmmmmmmm...m" + /* 1 */ "aammmmmmmma...a" + /* 2 */ "aammmmmmmma...a" + /* 3 */ "aammmmmmmma...a" + /* 4 */ "mmmmmmmmmma...a" + /* 5 */ "mmmmmmmmmaafffa" + /* 6 */ "mmmmmmmmaaaaaaa" + /* 7 */ "mmmmmmmmaaaaaaa" + /* 8 */ "mmmmmmmmaaaaaaa" + /* 9 */ "mmmmmmmmaaaaaaa" + /* 10 */ "mmmmmmmmmaaggga" + /* 11 */ "mmmmmmmmmma...a" + /* 12 */ "aammmmmmmma...a" + /* 13 */ "aammmmmmmma...a" + /* 14 */ "aammmmmmmma...a" + /* 15 */ "mmmmmmmmmmm...m" + + // Level 9 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "mmmmmmmmmmm...m" + /* 1 */ "aaemmmmmmma...a" + /* 2 */ "aaemmmmmmma...a" + /* 3 */ "aaemmmmmmma...a" + /* 4 */ "mmmmmmmmmma...a" + /* 5 */ "mmmmmmmmmaa...a" + /* 6 */ "mmmmaaaaah....a" + /* 7 */ "mmmmaaaaah....a" + /* 8 */ "mmmmaaaaah....a" + /* 9 */ "mmmmaaaaah....a" + /* 10 */ "mmmmmmmmmaa...a" + /* 11 */ "mmmmmmmmmma...a" + /* 12 */ "aaemmmmmmma...a" + /* 13 */ "aaemmmmmmma...a" + /* 14 */ "aaemmmmmmma...a" + /* 15 */ "mmmmmmmmmmm...m" + + // Level 10 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "mmmmmmmmmmmmmmm" + /* 1 */ "aaaeimmmmmammma" + /* 2 */ "aaaeimmmmmammma" + /* 3 */ "aaaeimmmmma...a" + /* 4 */ "mmmmmmmmmmm...m" + /* 5 */ "mmmmaaaaaam...m" + /* 6 */ "mmmmaaaah.....m" + /* 7 */ "mmmmaaaah.....m" + /* 8 */ "mmmmaaaah.....m" + /* 9 */ "mmmmaaaah.....m" + /* 10 */ "mmmmaaaaaam...m" + /* 11 */ "mmmmmmmmmmm...m" + /* 12 */ "aaaeimmmmma...a" + /* 13 */ "aaaeimmmmmammma" + /* 14 */ "aaaeimmmmmammma" + /* 15 */ "mmmmmmmmmmmmmmm" + + // Level 11 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "ccccccccccccccc" + /* 1 */ "aaaaaaaaaaaaaaa" + /* 2 */ "aaaaaaaaaaaaaaa" + /* 3 */ "aaaaaaaaaaaaaaa" + /* 4 */ "bbbbaaaaabbbbbb" + /* 5 */ "mmmmagggamm...m" + /* 6 */ "mmmma.........m" + /* 7 */ "mmmma.........m" + /* 8 */ "mmmma.........m" + /* 9 */ "mmmma.........m" + /* 10 */ "mmmmafffamm...m" + /* 11 */ "ccccaaaahcccccc" + /* 12 */ "aaaaaaaaaaaaaaa" + /* 13 */ "aaaaaaaaaaaaaaa" + /* 14 */ "aaaaaaaaaaaaaaa" + /* 15 */ "bbbbbbbbbbbbbbb" + + // Level 12 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "aaaaaaaaaaaaaaa" + /* 1 */ "aaaaaaaaaaaaaaa" + /* 2 */ "aaaaaaaaaaaaaaa" + /* 3 */ "aaaaaaaaaaaaaaa" + /* 4 */ "aaaaagggaaaaaaa" + /* 5 */ "mmmma...ammmmmm" + /* 6 */ "mmmma.........m" + /* 7 */ "mmmmm.........m" + /* 8 */ "mmmmm.........m" + /* 9 */ "mmmma.........m" + /* 10 */ "mmmma...ammmmmm" + /* 11 */ "aaaaafffaaaaaaa" + /* 12 */ "aaaaaaaaaaaaaaa" + /* 13 */ "aaaaaaaaaaaaaaa" + /* 14 */ "aaaaaaaaaaaaaaa" + /* 15 */ "aaaaaaaaaaaaaaa" + + // Level 13 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "aaaaaaaaaaaaaaa" + /* 1 */ "..............." + /* 2 */ "..............." + /* 3 */ "..............." + /* 4 */ "aaaaa...aaaaaaa" + /* 5 */ "mmmma...ammmmmm" + /* 6 */ "mmmmm.....mmmmm" + /* 7 */ "mmmmm.....mmmmm" + /* 8 */ "mmmmm.....mmmmm" + /* 9 */ "mmmmm.....mmmmm" + /* 10 */ "mmmma...ammmmmm" + /* 11 */ "aaaaa...aaaaaaa" + /* 12 */ "..............." + /* 13 */ "..............." + /* 14 */ "..............." + /* 15 */ "aaaaaaaaaaaaaaa" + + // Level 14 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "mmmmmmmmmmmmmmm" + /* 1 */ "..............." + /* 2 */ "..............." + /* 3 */ "..............." + /* 4 */ "mmmmm...mmmmmmm" + /* 5 */ "mmmmm...mmmmmmm" + /* 6 */ "mmmmm...mmmmmmm" + /* 7 */ "mmmmm...mmmmmmm" + /* 8 */ "mmmmm...mmmmmmm" + /* 9 */ "mmmmm...mmmmmmm" + /* 10 */ "mmmmm...mmmmmmm" + /* 11 */ "mmmmm...mmmmmmm" + /* 12 */ "..............." + /* 13 */ "..............." + /* 14 */ "..............." + /* 15 */ "mmmmmmmmmmmmmmm" + + // Level 15 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "mmmmmmmmmmmmmmm" + /* 1 */ "..............." + /* 2 */ "..............." + /* 3 */ "..............." + /* 4 */ "mmmmm...mmmmmmm" + /* 5 */ "mmmmm...mmmmmmm" + /* 6 */ "mmmmmmmmmmmmmmm" + /* 7 */ "mmmmmmmmmmmmmmm" + /* 8 */ "mmmmmmmmmmmmmmm" + /* 9 */ "mmmmmmmmmmmmmmm" + /* 10 */ "mmmmm...mmmmmmm" + /* 11 */ "mmmmm...mmmmmmm" + /* 12 */ "..............." + /* 13 */ "..............." + /* 14 */ "..............." + /* 15 */ "mmmmmmmmmmmmmmm", + + // Connectors: + "0: 0, 13, 13: 4\n" /* Type 0, direction X- */ + "0: 14, 13, 13: 5\n" /* Type 0, direction X+ */ + "0: 0, 13, 2: 4\n" /* Type 0, direction X- */ + "0: 14, 13, 2: 5\n" /* Type 0, direction X+ */ + "0: 12, 7, 15: 3\n" /* Type 0, direction Z+ */ + "0: 12, 7, 0: 2\n" /* Type 0, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 20, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + false, + }, // BridgeDoubleStairs + + + + //////////////////////////////////////////////////////////////////////////////// // BridgeFunnelDown: // The data has been exported from the gallery Nether, area index 0, ID 2, created by Aloe_vera { @@ -1653,7 +2030,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // BridgeLevelCrossing: // The data has been exported from the gallery Nether, area index 61, ID 321, created by Aloe_vera { @@ -1985,7 +2362,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // BridgeSegment: // The data has been exported from the gallery Nether, area index 16, ID 158, created by Aloe_vera { @@ -2107,7 +2484,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // BridgeTee: // The data has been exported from the gallery Nether, area index 39, ID 290, created by STR_Warrior { @@ -2270,7 +2647,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // Corridor11: // The data has been exported from the gallery Nether, area index 36, ID 287, created by Aloe_vera { @@ -2374,7 +2751,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // Corridor13: // The data has been exported from the gallery Nether, area index 35, ID 286, created by Aloe_vera { @@ -2478,7 +2855,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // Corridor5: // The data has been exported from the gallery Nether, area index 65, ID 330, created by xoft { @@ -2576,7 +2953,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // CorridorCorner5: // The data has been exported from the gallery Nether, area index 10, ID 40, created by xoft { @@ -2606,12 +2983,12 @@ const cPrefab::sDef g_NetherFortPrefabs[] = /* 2 */ "aaaaaaaaaaa" /* 3 */ "aaaaaaaaaaa" /* 4 */ "aaaaaaaaaaa" - /* 5 */ "aaaaa......" - /* 6 */ "aaaaa......" - /* 7 */ "aaaaa......" - /* 8 */ "aaaaa......" - /* 9 */ "aaaaa......" - /* 10 */ "aaaaa......" + /* 5 */ "aaaaammmmmm" + /* 6 */ "aaaaammmmmm" + /* 7 */ "aaaaammmmmm" + /* 8 */ "aaaaammmmmm" + /* 9 */ "aaaaammmmmm" + /* 10 */ "aaaaammmmmm" // Level 1 /* z\x* 1 */ @@ -2621,12 +2998,12 @@ const cPrefab::sDef g_NetherFortPrefabs[] = /* 2 */ "a.........." /* 3 */ "a.........." /* 4 */ "a...aaaaaaa" - /* 5 */ "a...a......" - /* 6 */ "a...a......" - /* 7 */ "a...a......" - /* 8 */ "a...a......" - /* 9 */ "a...a......" - /* 10 */ "a...a......" + /* 5 */ "a...ammmmmm" + /* 6 */ "a...ammmmmm" + /* 7 */ "a...ammmmmm" + /* 8 */ "a...ammmmmm" + /* 9 */ "a...ammmmmm" + /* 10 */ "a...ammmmmm" // Level 2 /* z\x* 1 */ @@ -2636,12 +3013,12 @@ const cPrefab::sDef g_NetherFortPrefabs[] = /* 2 */ "a.........." /* 3 */ "b.........." /* 4 */ "a...abababa" - /* 5 */ "b...b......" - /* 6 */ "a...a......" - /* 7 */ "b...b......" - /* 8 */ "a...a......" - /* 9 */ "b...b......" - /* 10 */ "a...a......" + /* 5 */ "b...bmmmmmm" + /* 6 */ "a...ammmmmm" + /* 7 */ "b...bmmmmmm" + /* 8 */ "a...ammmmmm" + /* 9 */ "b...bmmmmmm" + /* 10 */ "a...ammmmmm" // Level 3 /* z\x* 1 */ @@ -2651,12 +3028,12 @@ const cPrefab::sDef g_NetherFortPrefabs[] = /* 2 */ "a.........." /* 3 */ "b.........." /* 4 */ "a...abababa" - /* 5 */ "b...b......" - /* 6 */ "a...a......" - /* 7 */ "b...b......" - /* 8 */ "a...a......" - /* 9 */ "b...b......" - /* 10 */ "a...a......" + /* 5 */ "b...bmmmmmm" + /* 6 */ "a...ammmmmm" + /* 7 */ "b...bmmmmmm" + /* 8 */ "a...ammmmmm" + /* 9 */ "b...bmmmmmm" + /* 10 */ "a...ammmmmm" // Level 4 /* z\x* 1 */ @@ -2666,12 +3043,12 @@ const cPrefab::sDef g_NetherFortPrefabs[] = /* 2 */ "a.........." /* 3 */ "b.........." /* 4 */ "a...abababa" - /* 5 */ "b...b......" - /* 6 */ "a...a......" - /* 7 */ "b...b......" - /* 8 */ "a...a......" - /* 9 */ "b...b......" - /* 10 */ "a...a......" + /* 5 */ "b...bmmmmmm" + /* 6 */ "a...ammmmmm" + /* 7 */ "b...bmmmmmm" + /* 8 */ "a...ammmmmm" + /* 9 */ "b...bmmmmmm" + /* 10 */ "a...ammmmmm" // Level 5 /* z\x* 1 */ @@ -2681,12 +3058,12 @@ const cPrefab::sDef g_NetherFortPrefabs[] = /* 2 */ "daaaaaaaaaa" /* 3 */ "daaaaaaaaaa" /* 4 */ "daaaeeeeeee" - /* 5 */ "daaaf......" - /* 6 */ "daaaf......" - /* 7 */ "daaaf......" - /* 8 */ "daaaf......" - /* 9 */ "daaaf......" - /* 10 */ "daaaf......", + /* 5 */ "daaafmmmmmm" + /* 6 */ "daaafmmmmmm" + /* 7 */ "daaafmmmmmm" + /* 8 */ "daaafmmmmmm" + /* 9 */ "daaafmmmmmm" + /* 10 */ "daaafmmmmmm", // Connectors: "1: 2, 1, 10: 3\n" /* Type 1, direction Z+ */ @@ -2718,7 +3095,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // CorridorCornerChest5: // The data has been exported from the gallery Nether, area index 42, ID 293, created by STR_Warrior { @@ -2861,7 +3238,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // CorridorCrossing: // The data has been exported from the gallery Nether, area index 63, ID 328, created by xoft { @@ -2989,7 +3366,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // CorridorStairs: // The data has been exported from the gallery Nether, area index 12, ID 42, created by xoft { @@ -3144,7 +3521,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // DarkCorridor: // The data has been exported from the gallery Nether, area index 3, ID 30, created by STR_Warrior { @@ -3248,7 +3625,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // LavaStaircase: // The data has been exported from the gallery Nether, area index 28, ID 278, created by Aloe_vera { @@ -3508,7 +3885,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // LavaStaircaseBig: // The data has been exported from the gallery Nether, area index 31, ID 282, created by STR_Warrior { @@ -3842,7 +4219,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // LavaStairsBridge: // The data has been exported from the gallery Nether, area index 30, ID 281, created by STR_Warrior { @@ -4097,7 +4474,12 @@ const cPrefab::sDef g_NetherFortPrefabs[] = /* 14 */ "abbaabbaabbaabba", // Connectors: - "", + "1: 0, 6, 7: 4\n" /* Type 1, direction X- */ + "-1: 0, 6, 7: 4\n" /* Type -1, direction X- */ + "1: 9, 1, 0: 2\n" /* Type 1, direction Z- */ + "-1: 9, 1, 0: 2\n" /* Type -1, direction Z- */ + "1: 9, 1, 14: 3\n" /* Type 1, direction Z+ */ + "-1: 9, 1, 14: 3\n" /* Type -1, direction Z+ */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -4123,7 +4505,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // MidStaircase: // The data has been exported from the gallery Nether, area index 23, ID 165, created by Aloe_vera { @@ -4314,7 +4696,340 @@ const cPrefab::sDef g_NetherFortPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + // SlabbedBridgeStairs: + // The data has been exported from the gallery Nether, area index 116, ID 811, created by Aloe_vera + { + // Size: + 16, 14, 16, // SizeX = 16, SizeY = 14, SizeZ = 16 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 15, 13, 15, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a:112: 0\n" /* netherbrick */ + "b:114: 5\n" /* netherbrickstairs */ + "c:114: 4\n" /* netherbrickstairs */ + "d: 44:14\n" /* step */ + "e:114: 6\n" /* netherbrickstairs */ + "f:114: 7\n" /* netherbrickstairs */ + "g: 44: 6\n" /* step */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmmmmmmmmmmm" + /* 1 */ "aammmmmmmmmmmmaa" + /* 2 */ "aammmmmmmmmmmmaa" + /* 3 */ "aammmmmmmmmmmmaa" + /* 4 */ "mmmmmmmmmmmmmmmm" + /* 5 */ "mmmmmmmmmmmmmmmm" + /* 6 */ "mmmmmmmmmmmmmmmm" + /* 7 */ "mmmmmmmmmmmmmmmm" + /* 8 */ "mmmmmmmmmmmmmmmm" + /* 9 */ "mmmmmmmmmmmmmmmm" + /* 10 */ "mmmmmmmmmmmmmmmm" + /* 11 */ "mmmmmmmmmmmmmmmm" + /* 12 */ "maaammmmmmmmmmmm" + /* 13 */ "maaammmmmmmmmmmm" + /* 14 */ "maaammmmmmmmaaam" + /* 15 */ "mmmmmmmmmmmmaaam" + + // Level 1 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmmmmmmmmmmm" + /* 1 */ "aabmmmmmmmmmmcaa" + /* 2 */ "aabmmmmmmmmmmcaa" + /* 3 */ "aabmmmmmmmmmmcaa" + /* 4 */ "mmmmmmmmmmmmmmmm" + /* 5 */ "mmmmmmmmmmmmmmmm" + /* 6 */ "mmmmmmmmmmmmmmmm" + /* 7 */ "mmmmmmmmmmmmmmmm" + /* 8 */ "mmmmmmmmmmmmmmmm" + /* 9 */ "mmmmmmmmmmmmmmmm" + /* 10 */ "mmmmmmmmmmmmmmmm" + /* 11 */ "mmmmmmmmmmmmmmmm" + /* 12 */ "maaammmmmmmmmmmm" + /* 13 */ "maaammmmmmmmmmmm" + /* 14 */ "maaammmmmmmmaaam" + /* 15 */ "mmmmmmmmmmmmaaam" + + // Level 2 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmmmmmmmmmmm" + /* 1 */ "aaabdmmmmmmdcaaa" + /* 2 */ "aaabdmmmmmmdcaaa" + /* 3 */ "aaabdmmmmmmdcaaa" + /* 4 */ "mmmmmmmmmmmmmmmm" + /* 5 */ "mmmmmmmmmmmmmmmm" + /* 6 */ "mmmmmmmmmmmmmmmm" + /* 7 */ "mmmmmmmmmmmmmmmm" + /* 8 */ "mmmmmmmmmmmmmmmm" + /* 9 */ "mmmmmmmmmmmmmmmm" + /* 10 */ "mmmmmmmmmmmmmmmm" + /* 11 */ "mmmmmmmmmmmmmmmm" + /* 12 */ "maaammmmmmmmmmmm" + /* 13 */ "maaammmmmmmmmmmm" + /* 14 */ "maaammmmmmmmaaam" + /* 15 */ "mmmmmmmmmmmmaaam" + + // Level 3 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "eeeeeeeeeeeeeeee" + /* 1 */ "aaaaaaaaaaaaaaaa" + /* 2 */ "aaaaaaaaaaaaaaaa" + /* 3 */ "aaaaaaaaaaaaaaaa" + /* 4 */ "ffffffffffffffff" + /* 5 */ "mmmmmmmmmmmmmmmm" + /* 6 */ "mmmmmmmmmmmmmmmm" + /* 7 */ "mmmmmmmmmmmmmmmm" + /* 8 */ "mmmmmmmmmmmmmmmm" + /* 9 */ "mmmmmmmmmmmmmmmm" + /* 10 */ "mmmmmmmmmmmmmmmm" + /* 11 */ "mmmmmmmmmmmmmmmm" + /* 12 */ "maaammmmmmmmmmmm" + /* 13 */ "maaammmmmmmmmmmm" + /* 14 */ "maaammmmmmmmaaam" + /* 15 */ "mmmmmmmmmmmmaaam" + + // Level 4 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "aaaaaaaaaaaaaaaa" + /* 1 */ "aaaaaaaaaaaaaaaa" + /* 2 */ "aaaaaaaaaaaaaaaa" + /* 3 */ "aaaaaaaaaaaaaaaa" + /* 4 */ "aaaaaaaaaaaaaaaa" + /* 5 */ "faaabmmmmmmmmmmm" + /* 6 */ "caaabmmmmmmmmmmm" + /* 7 */ "caaabmmmmmmmmmmm" + /* 8 */ "mmmmmmmmmmmmmmmm" + /* 9 */ "mmmmmmmmmmmmmmmm" + /* 10 */ "mmmmmmmmmmmmmmmm" + /* 11 */ "mmmmmmmmmmmmmmmm" + /* 12 */ "maaammmmmmmmmmmm" + /* 13 */ "maaammmmmmmmmmmm" + /* 14 */ "maaammmmmmmmaaam" + /* 15 */ "mmmmmmmmmmmmaaam" + + // Level 5 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "aaaaaaaaaaaaaaaa" + /* 1 */ "................" + /* 2 */ "................" + /* 3 */ "................" + /* 4 */ "a...aaaaaaaaaaaa" + /* 5 */ "agggammmmmmmmmmm" + /* 6 */ "aaaaammmmmmmmmmm" + /* 7 */ "aaaaammmmmmmmmmm" + /* 8 */ "caaabmmmmmmmmmmm" + /* 9 */ "caaabmmmmmmmmmmm" + /* 10 */ "mmmmmmmmmmmmmmmm" + /* 11 */ "mmmmmmmmmmmmmmmm" + /* 12 */ "maaammmmmmmmmmmm" + /* 13 */ "maaammmmmmmmmmmm" + /* 14 */ "maaammmmmmmmaaam" + /* 15 */ "mmmmmmmmmmmmaaam" + + // Level 6 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmmmmmmmaaam" + /* 1 */ "................" + /* 2 */ "................" + /* 3 */ "................" + /* 4 */ "m...mmmmmmmmaaam" + /* 5 */ "a...ammmmmmmmmmm" + /* 6 */ "a...ammmmmmmmmmm" + /* 7 */ "agggammmmmmmmmmm" + /* 8 */ "aaaaammmmmmmmmmm" + /* 9 */ "aaaaammmmmmmmmmm" + /* 10 */ "caaabmmmmmmmmmmm" + /* 11 */ "caaabmmmmmmmmmmm" + /* 12 */ "maaabmmmmmmmmmmm" + /* 13 */ "maaabmmmmmmmmmmm" + /* 14 */ "maaafmmmmmmmaaam" + /* 15 */ "mmmmmmmmmmmmaaam" + + // Level 7 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmmmmmmmaaam" + /* 1 */ "................" + /* 2 */ "................" + /* 3 */ "................" + /* 4 */ "m...mmmmmmmmaaam" + /* 5 */ "m...mmmmmmmmmmmm" + /* 6 */ "m...mmmmmmmmmmmm" + /* 7 */ "a...ammmmmmmmmmm" + /* 8 */ "a...ammmmmmmmmmm" + /* 9 */ "agggammmmmmmmmmm" + /* 10 */ "aaaaammmmmmmmmmm" + /* 11 */ "aaaaaeemmmmmmmmm" + /* 12 */ "caaaaaammmmmmmmm" + /* 13 */ "caaaaaammmmmmmmm" + /* 14 */ "caaaaaammmmmaaam" + /* 15 */ "fffffffmmmmmaaam" + + // Level 8 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmmmmmmmaaam" + /* 1 */ "mmmmmmmmmmmmmmmm" + /* 2 */ "mmmmmmmmmmmmmmmm" + /* 3 */ "mmmmmmmmmmmmmmmm" + /* 4 */ "m...mmmmmmmmaaam" + /* 5 */ "m...mmmmmmmmmmmm" + /* 6 */ "m...mmmmmmmmmmmm" + /* 7 */ "m...mmmmmmmmmmmm" + /* 8 */ "m...mmmmmmmmmmmm" + /* 9 */ "a...ammmmmmmmmmm" + /* 10 */ "a...ammmmmmmmmmm" + /* 11 */ "a...aaaeemmmmmmm" + /* 12 */ "a....gaaammmmmmm" + /* 13 */ "a....gaaammmmmmm" + /* 14 */ "a....gaaammmaaam" + /* 15 */ "aaaaaaaffmmmaaam" + + // Level 9 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmmmmmmcaaab" + /* 1 */ "mmmmmmmmmmmcaaab" + /* 2 */ "mmmmmmmmmmmcaaab" + /* 3 */ "mmmmmmmmmmmcaaab" + /* 4 */ "mmmmmmmmmmmcaaab" + /* 5 */ "mmmmmmmmmmmcaaab" + /* 6 */ "m...mmmmmmmcaaab" + /* 7 */ "m...mmmmmmmcaaab" + /* 8 */ "m...mmmmmmmcaaab" + /* 9 */ "m...mmmmmmmcaaab" + /* 10 */ "m...mmmmmmmcaaab" + /* 11 */ "m...maaaaeecaaab" + /* 12 */ "m......gaaaaaaab" + /* 13 */ "m......gaaaaaaab" + /* 14 */ "m......gaaaaaaab" + /* 15 */ "mmmmmaaaafffaaab" + + // Level 10 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmmmmmmaaaaa" + /* 1 */ "mmmmmmmmmmmaaaaa" + /* 2 */ "mmmmmmmmmmmaaaaa" + /* 3 */ "mmmmmmmmmmmaaaaa" + /* 4 */ "mmmmmmmmmmmaaaaa" + /* 5 */ "mmmmmmmmmmmaaaaa" + /* 6 */ "mmmmmmmmmmmaaaaa" + /* 7 */ "mmmmmmmmmmmaaaaa" + /* 8 */ "m...mmmmmmmaaaaa" + /* 9 */ "m...mmmmmmmaaaaa" + /* 10 */ "m...mmmmmmmaaaaa" + /* 11 */ "m...mmmaaaaaaaaa" + /* 12 */ "m........gaaaaaa" + /* 13 */ "m........gaaaaaa" + /* 14 */ "m........gaaaaaa" + /* 15 */ "mmmmmmmaaaaaaaaa" + + // Level 11 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmmmmmma...a" + /* 1 */ "mmmmmmmmmmma...a" + /* 2 */ "mmmmmmmmmmma...a" + /* 3 */ "mmmmmmmmmmma...a" + /* 4 */ "mmmmmmmmmmma...a" + /* 5 */ "mmmmmmmmmmma...a" + /* 6 */ "mmmmmmmmmmma...a" + /* 7 */ "mmmmmmmmmmma...a" + /* 8 */ "mmmmmmmmmmma...a" + /* 9 */ "mmmmmmmmmmma...a" + /* 10 */ "mmmmmmmmmmma...a" + /* 11 */ "mmmmmmmmmaaa...a" + /* 12 */ "mmmm...........a" + /* 13 */ "mmmm...........a" + /* 14 */ "mmmm...........a" + /* 15 */ "mmmmmmmmmaaa...a" + + // Level 12 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmmmmmmm...m" + /* 1 */ "mmmmmmmmmmmm...m" + /* 2 */ "mmmmmmmmmmmm...m" + /* 3 */ "mmmmmmmmmmmm...m" + /* 4 */ "mmmmmmmmmmmm...m" + /* 5 */ "mmmmmmmmmmmm...m" + /* 6 */ "mmmmmmmmmmmm...m" + /* 7 */ "mmmmmmmmmmmm...m" + /* 8 */ "mmmmmmmmmmmm...m" + /* 9 */ "mmmmmmmmmmmm...m" + /* 10 */ "mmmmmmmmmmmm...m" + /* 11 */ "mmmmmmmmmmmm...m" + /* 12 */ "mmmmmm.........m" + /* 13 */ "mmmmmm.........m" + /* 14 */ "mmmmmm.........m" + /* 15 */ "mmmmmmmmmmmm...m" + + // Level 13 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmmmmmmm...m" + /* 1 */ "mmmmmmmmmmmm...m" + /* 2 */ "mmmmmmmmmmmm...m" + /* 3 */ "mmmmmmmmmmmm...m" + /* 4 */ "mmmmmmmmmmmm...m" + /* 5 */ "mmmmmmmmmmmm...m" + /* 6 */ "mmmmmmmmmmmm...m" + /* 7 */ "mmmmmmmmmmmm...m" + /* 8 */ "mmmmmmmmmmmm...m" + /* 9 */ "mmmmmmmmmmmm...m" + /* 10 */ "mmmmmmmmmmmm...m" + /* 11 */ "mmmmmmmmmmmm...m" + /* 12 */ "mmmmmmmm.......m" + /* 13 */ "mmmmmmmm.......m" + /* 14 */ "mmmmmmmm.......m" + /* 15 */ "mmmmmmmmmmmm...m", + + // Connectors: + "0: 13, 11, 0: 2\n" /* Type 0, direction Z- */ + "0: 13, 11, 15: 3\n" /* Type 0, direction Z+ */ + "0: 0, 5, 2: 4\n" /* Type 0, direction X- */ + "0: 15, 5, 2: 5\n" /* Type 0, direction X+ */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 20, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + false, + }, // SlabbedBridgeStairs + + + + //////////////////////////////////////////////////////////////////////////////// // StairsToOpen1: // The data has been exported from the gallery Nether, area index 27, ID 277, created by Aloe_vera { @@ -4460,7 +5175,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // StairsToOpen2: // The data has been exported from the gallery Nether, area index 8, ID 35, created by xoft { @@ -4606,7 +5321,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // Tee2x4: // The data has been exported from the gallery Nether, area index 40, ID 291, created by Aloe_vera { @@ -4726,7 +5441,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // Tee4x4: // The data has been exported from the gallery Nether, area index 41, ID 292, created by Aloe_vera { @@ -4858,7 +5573,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // TinyCorridorCorner: // The data has been exported from the gallery Nether, area index 66, ID 331, created by xoft { @@ -4957,7 +5672,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // TinyCorridorCornerChest: // The data has been exported from the gallery Nether, area index 67, ID 332, created by Aloe_vera { @@ -5057,7 +5772,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // TinyCorridorCrossing: // The data has been exported from the gallery Nether, area index 64, ID 329, created by xoft { @@ -5159,7 +5874,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // Turret: // The data has been exported from the gallery Nether, area index 7, ID 34, created by xoft { @@ -5283,7 +5998,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = const cPrefab::sDef g_NetherFortStartingPrefabs[] = { - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // CentralRoom: // The data has been exported from the gallery Nether, area index 22, ID 164, created by Aloe_vera { diff --git a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp index f5c5b7a20..4613f76e2 100644 --- a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp +++ b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp @@ -15,7 +15,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = { - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // BigPlantBed: // The data has been exported from the gallery Plains, area index 26, ID 70, created by Taugrammaton { @@ -195,7 +195,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // CobbleHouse10x5Library: // The data has been exported from the gallery Plains, area index 23, ID 66, created by xoft { @@ -336,7 +336,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // DoublePlantBed: // The data has been exported from the gallery Plains, area index 5, ID 20, created by tonibm1999 { @@ -356,35 +356,37 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = "e: 8: 0\n" /* water */ "f: 50: 5\n" /* torch */ "g: 59: 7\n" /* crops */ + "h: 59: 3\n" /* crops */ + "i: 59: 5\n" /* crops */ "m: 19: 0\n" /* sponge */, // Block data: // Level 0 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "aaaaaaaaaaaaaaa" + /* 0 */ "aaaaaaabaaaaaaa" /* 1 */ "aaaaaaaaaaaaaaa" /* 2 */ "aaaaaaaaaaaaaaa" /* 3 */ "aaaaaaaaaaaaaaa" - /* 4 */ "aaaaaaaaaaaaaaa" - /* 5 */ "aaaaaaaaaaaaaaa" - /* 6 */ "aaaaaaaaaaaaaaa" - /* 7 */ "aaaaaaaaaaaaaaa" - /* 8 */ "aaaaaaaaaaaaaaa" - - // Level 1 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "aaaaaaabaaaaaaa" - /* 1 */ "aaaaaaabaaaaaaa" - /* 2 */ "aaaaaaabaaaaaaa" - /* 3 */ "aaaaaaabaaaaaaa" /* 4 */ "aaaaaaabaaaaaaa" /* 5 */ "aaaaaaabaaaaaaa" /* 6 */ "aaaaaaabaaaaaaa" /* 7 */ "aaaaaaabaaaaaaa" /* 8 */ "aaaaaaabaaaaaaa" + // Level 1 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "aaaaaaamaaaaaaa" + /* 1 */ "aaaaaaamaaaaaaa" + /* 2 */ "aaaaaaamaaaaaaa" + /* 3 */ "aaaaaaamaaaaaaa" + /* 4 */ "aaaaaaamaaaaaaa" + /* 5 */ "aaaaaaamaaaaaaa" + /* 6 */ "aaaaaaamaaaaaaa" + /* 7 */ "aaaaaaamaaaaaaa" + /* 8 */ "aaaaaaamaaaaaaa" + // Level 2 /* z\x* 11111 */ /* * 012345678901234 */ @@ -403,12 +405,12 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* * 012345678901234 */ /* 0 */ "f.....f.f.....f" /* 1 */ ".gg.gg...gg.gg." - /* 2 */ ".g...g...gg.gg." - /* 3 */ ".g.......gg.gg." - /* 4 */ ".gg..g...gg.gg." - /* 5 */ ".gg..g...gg.gg." - /* 6 */ "..g..g...gg.gg." - /* 7 */ "..g.g....gg.gg." + /* 2 */ ".gg.hg...gg.gg." + /* 3 */ ".gg.gi...gg.gg." + /* 4 */ ".gg.gg...gg.gg." + /* 5 */ ".gg.gg...gg.gg." + /* 6 */ ".gg.gg...gg.gg." + /* 7 */ ".gg.gg...gg.gg." /* 8 */ "f.....f.f.....f" // Level 4 @@ -490,7 +492,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // Forge: // The data has been exported from the gallery Plains, area index 51, ID 102, created by Aloe_vera { @@ -509,12 +511,12 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = "d: 67: 1\n" /* stairs */ "e: 17: 0\n" /* tree */ "f: 5: 0\n" /* wood */ - "g: 64: 6\n" /* wooddoorblock */ + "g: 64: 2\n" /* wooddoorblock */ "h: 10: 0\n" /* lava */ "i: 54: 2\n" /* chest */ "j: 61: 2\n" /* furnace */ "k:102: 0\n" /* glasspane */ - "l: 64:12\n" /* wooddoorblock */ + "l: 64: 8\n" /* wooddoorblock */ "m: 19: 0\n" /* sponge */ "n:139: 0\n" /* cobblestonewall */ "o:101: 0\n" /* ironbars */ @@ -690,7 +692,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // LampPost: // The data has been exported from the gallery Plains, area index 28, ID 73, created by STR_Warrior { @@ -782,7 +784,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // MineshaftCorridor: // The data has been exported from the gallery Plains, area index 139, ID 447, created by STR_Warrior { @@ -859,7 +861,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // MineshaftCrossing: // The data has been exported from the gallery Plains, area index 171, ID 578, created by Aloe_vera { @@ -944,7 +946,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // MineshaftCrossing: // The data has been exported from the gallery Plains, area index 193, ID 657, created by Aloe_vera { @@ -1062,7 +1064,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // MineshaftDoubleCrossing: // The data has been exported from the gallery Plains, area index 172, ID 579, created by Aloe_vera { @@ -1187,7 +1189,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // MineshaftSpiral: // The data has been exported from the gallery Plains, area index 198, ID 662, created by Aloe_vera { @@ -1368,7 +1370,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // MineshaftStairs: // The data has been exported from the gallery Plains, area index 195, ID 659, created by Aloe_vera { @@ -1467,7 +1469,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // MineshaftStairsCrossing: // The data has been exported from the gallery Plains, area index 199, ID 663, created by Aloe_vera { @@ -1717,7 +1719,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // MineshaftTee: // The data has been exported from the gallery Plains, area index 194, ID 658, created by Aloe_vera { @@ -1817,7 +1819,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // MineshaftsCorridor5: // The data has been exported from the gallery Plains, area index 200, ID 664, created by Aloe_vera { @@ -1896,7 +1898,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // Scarecrow: // The data has been exported from the gallery Plains, area index 150, ID 494, created by STR_Warrior { @@ -1981,7 +1983,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // SinglePlantBed: // The data has been exported from the gallery Plains, area index 17, ID 60, created by Aloe_vera { @@ -2106,7 +2108,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // WoodenChurchMid: // The data has been exported from the gallery Plains, area index 58, ID 109, created by Aloe_vera { @@ -2416,7 +2418,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // WoodenGranary: // The data has been exported from the gallery Plains, area index 54, ID 105, created by Aloe_vera { @@ -2544,7 +2546,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = true, // DefaultWeight: - 100, + 20, // DepthWeight: "", @@ -2558,7 +2560,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // WoodenHouse10x7Library: // The data has been exported from the gallery Plains, area index 47, ID 98, created by Aloe_vera { @@ -2727,7 +2729,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // WoodenHouse5x5: // The data has been exported from the gallery Plains, area index 49, ID 100, created by Aloe_vera { @@ -2746,8 +2748,8 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = "d: 67: 1\n" /* stairs */ "e: 17: 0\n" /* tree */ "f: 5: 0\n" /* wood */ - "g: 64: 7\n" /* wooddoorblock */ - "h: 64:12\n" /* wooddoorblock */ + "g: 64: 3\n" /* wooddoorblock */ + "h: 64: 8\n" /* wooddoorblock */ "i:102: 0\n" /* glasspane */ "j: 53: 2\n" /* woodstairs */ "k: 53: 7\n" /* woodstairs */ @@ -2854,7 +2856,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // WoodenHouse7x5: // The data has been exported from the gallery Plains, area index 40, ID 91, created by xoft { @@ -2981,7 +2983,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // WoodenHouse9x5: // The data has been exported from the gallery Plains, area index 41, ID 92, created by xoft { @@ -3000,9 +3002,9 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = "d: 67: 1\n" /* stairs */ "e: 17: 0\n" /* tree */ "f: 5: 0\n" /* wood */ - "g: 64: 7\n" /* wooddoorblock */ + "g: 64: 3\n" /* wooddoorblock */ "h:102: 0\n" /* glasspane */ - "i: 64:12\n" /* wooddoorblock */ + "i: 64: 8\n" /* wooddoorblock */ "j: 53: 2\n" /* woodstairs */ "k: 53: 7\n" /* woodstairs */ "l: 50: 3\n" /* torch */ @@ -3115,7 +3117,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // WoodenHouse9x5Fence: // The data has been exported from the gallery Plains, area index 9, ID 26, created by Aloe_vera { @@ -3141,31 +3143,32 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = "k: 85: 0\n" /* fence */ "l: 53: 0\n" /* woodstairs */ "m: 19: 0\n" /* sponge */ - "n: 64: 6\n" /* wooddoorblock */ + "n: 64: 2\n" /* wooddoorblock */ "o: 64: 4\n" /* wooddoorblock */ "p:102: 0\n" /* glasspane */ "q: 72: 0\n" /* woodplate */ - "r: 64:12\n" /* wooddoorblock */ - "s: 53: 5\n" /* woodstairs */ - "t: 53: 4\n" /* woodstairs */ - "u: 50: 1\n" /* torch */ - "v: 50: 2\n" /* torch */, + "r: 64: 8\n" /* wooddoorblock */ + "s: 64:12\n" /* wooddoorblock */ + "t: 53: 5\n" /* woodstairs */ + "u: 53: 4\n" /* woodstairs */ + "v: 50: 1\n" /* torch */ + "w: 50: 2\n" /* torch */, // Block data: // Level 0 /* z\x* */ /* * 0123456789 */ - /* 0 */ ".........." - /* 1 */ ".aaaaa...." - /* 2 */ ".aaaaa...." - /* 3 */ ".aaaaabbbb" + /* 0 */ "mmmmmmmmmm" + /* 1 */ "maaaaammmm" + /* 2 */ "maaaaammmm" + /* 3 */ "maaaaabbbb" /* 4 */ "aaaaaabbbb" /* 5 */ "aaaaaabbbb" /* 6 */ "aaaaaabbbb" - /* 7 */ ".aaaaabbbb" - /* 8 */ ".aaaaabbbb" - /* 9 */ ".aaaaa...." - /* 10 */ ".........." + /* 7 */ "maaaaabbbb" + /* 8 */ "maaaaabbbb" + /* 9 */ "maaaaammmm" + /* 10 */ "mmmmmmmmmm" // Level 1 /* z\x* */ @@ -3205,7 +3208,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 2 */ ".p.q.pmmmm" /* 3 */ ".p...p...." /* 4 */ ".c...c...." - /* 5 */ ".r...r...." + /* 5 */ ".r...s...." /* 6 */ ".c...c...." /* 7 */ ".p...p...." /* 8 */ ".p...p...." @@ -3215,47 +3218,47 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // Level 4 /* z\x* */ /* * 0123456789 */ - /* 0 */ "ls...tjmmm" + /* 0 */ "lt...ujmmm" /* 1 */ "licccijmmm" /* 2 */ "lc...cjmmm" /* 3 */ "lc...cj..." - /* 4 */ "lcu.vcj..." + /* 4 */ "lcv.wcj..." /* 5 */ "lc...cj..." - /* 6 */ "lcu.vcj..." + /* 6 */ "lcv.wcj..." /* 7 */ "lc...cj..." /* 8 */ "lc...cj..." /* 9 */ "licccijmmm" - /* 10 */ "ls...tjmmm" + /* 10 */ "lt...ujmmm" // Level 5 /* z\x* */ /* * 0123456789 */ - /* 0 */ "mls.tjmmmm" - /* 1 */ "mlcccjmmmm" - /* 2 */ "mlc.cjmmmm" - /* 3 */ "mlc.cjm..." - /* 4 */ "mlc.cjm..." - /* 5 */ "mlc.cjm..." - /* 6 */ "mlc.cjm..." - /* 7 */ "mlc.cjm..." - /* 8 */ "mlc.cjm..." - /* 9 */ "mlcccjmmmm" - /* 10 */ "mls.tjmmmm" + /* 0 */ ".lt.uj.mmm" + /* 1 */ ".lcccj.mmm" + /* 2 */ ".lc.cj.mmm" + /* 3 */ ".lc.cj...." + /* 4 */ ".lc.cj...." + /* 5 */ ".lc.cj...." + /* 6 */ ".lc.cj...." + /* 7 */ ".lc.cj...." + /* 8 */ ".lc.cj...." + /* 9 */ ".lcccj.mmm" + /* 10 */ ".lt.uj.mmm" // Level 6 /* z\x* */ /* * 0123456789 */ - /* 0 */ "mmlcjmmmmm" - /* 1 */ "mmlcjmmmmm" - /* 2 */ "mmlcjmmmmm" - /* 3 */ "mmlcjmm..." - /* 4 */ "mmlcjmm..." - /* 5 */ "mmlcjmm..." - /* 6 */ "mmlcjmm..." - /* 7 */ "mmlcjmm..." - /* 8 */ "mmlcjmm..." - /* 9 */ "mmlcjmmmmm" - /* 10 */ "mmlcjmmmmm", + /* 0 */ "..lcj..mmm" + /* 1 */ "..lcj..mmm" + /* 2 */ "..lcj..mmm" + /* 3 */ "..lcj....." + /* 4 */ "..lcj....." + /* 5 */ "..lcj....." + /* 6 */ "..lcj....." + /* 7 */ "..lcj....." + /* 8 */ "..lcj....." + /* 9 */ "..lcj..mmm" + /* 10 */ "..lcj..mmm", // Connectors: "-1: 0, 1, 5: 4\n" /* Type -1, direction X- */, @@ -3284,7 +3287,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // WoodenHouse9x5Library: // The data has been exported from the gallery Plains, area index 46, ID 97, created by Aloe_vera { @@ -3425,7 +3428,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // WoodenHouse9x7: // The data has been exported from the gallery Plains, area index 52, ID 103, created by Aloe_vera { @@ -3587,7 +3590,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // WoodenHouse9x7Butcher: // The data has been exported from the gallery Plains, area index 48, ID 99, created by Aloe_vera { @@ -3600,8 +3603,8 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // Block definitions: ".: 0: 0\n" /* air */ - "a: 2: 0\n" /* grass */ - "b: 3: 0\n" /* dirt */ + "a: 3: 0\n" /* dirt */ + "b: 2: 0\n" /* grass */ "c: 4: 0\n" /* cobblestone */ "d: 67: 0\n" /* stairs */ "e: 67: 2\n" /* stairs */ @@ -3626,19 +3629,19 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // Level 0 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "aaabbbbaaaa" - /* 1 */ "abbbbbbbbba" - /* 2 */ "abbbbbbbbba" - /* 3 */ "abbbbbbbbba" - /* 4 */ "abbbbbbbbba" - /* 5 */ "abbbbbbbbba" - /* 6 */ "abbbbbbbbba" - /* 7 */ "abbbbbbbbba" - /* 8 */ "aabbbbbbbaa" - /* 9 */ "aabbbbbbbaa" - /* 10 */ "aabbbbbbbaa" - /* 11 */ "aabbbbbbbaa" - /* 12 */ "aabbbbbbbaa" + /* 0 */ "aaaaaaaaaaa" + /* 1 */ "aaaaaaaaaaa" + /* 2 */ "aaaaaaaaaaa" + /* 3 */ "aaaaaaaaaaa" + /* 4 */ "aaaaaaaaaab" + /* 5 */ "baaaaaaaaab" + /* 6 */ "aaaaaaaaaaa" + /* 7 */ "baaaaaaaaaa" + /* 8 */ "baaaaaaaaaa" + /* 9 */ "baaaaaaaaab" + /* 10 */ "aaaaaaaaaaa" + /* 11 */ "aaaaaaaaaba" + /* 12 */ "aaaaaaaaaba" // Level 1 /* z\x* 1 */ @@ -3651,11 +3654,11 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 5 */ "mcccccccccm" /* 6 */ "mcccccccccm" /* 7 */ "mcccccccccm" - /* 8 */ "mmbbbbbbbmm" - /* 9 */ "mmbbbbbbbmm" - /* 10 */ "mmbbbbbbbmm" - /* 11 */ "mmbbbbbbbmm" - /* 12 */ "mmbbbbbbbmm" + /* 8 */ "mmaaaaaaamm" + /* 9 */ "mmaaaaaaamm" + /* 10 */ "mmaaaaaaamm" + /* 11 */ "mmaaaaaaamm" + /* 12 */ "mmaaaaaaamm" // Level 2 /* z\x* 1 */ @@ -3668,11 +3671,11 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 5 */ ".cggggcccc." /* 6 */ ".cggggcccc." /* 7 */ ".ccccccccc." - /* 8 */ "..aaaaaaa.." - /* 9 */ "..aaaaaaa.." - /* 10 */ "..aaaaaaa.." - /* 11 */ "..aaaaaaa.." - /* 12 */ "..aaaaaaa.." + /* 8 */ "..bbbbbbb.." + /* 9 */ "mmbbbbbbbmm" + /* 10 */ "mmbbbbbbbmm" + /* 11 */ "mmbbbbbbbmm" + /* 12 */ "mmbbbbbbbmm" // Level 3 /* z\x* 1 */ @@ -3686,10 +3689,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 6 */ ".i.......i." /* 7 */ ".hiiijiiih." /* 8 */ "..l.....l.." - /* 9 */ "..l.....l.." - /* 10 */ "..l.....l.." - /* 11 */ "..l.....l.." - /* 12 */ "..lllllll.." + /* 9 */ "mml.....lmm" + /* 10 */ "mml.....lmm" + /* 11 */ "mml.....lmm" + /* 12 */ "mmlllllllmm" // Level 4 /* z\x* 1 */ @@ -3703,10 +3706,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 6 */ ".o.......o." /* 7 */ ".hooipiooh." /* 8 */ "..........." - /* 9 */ "..........." - /* 10 */ "..........." - /* 11 */ "..........." - /* 12 */ "..........." + /* 9 */ "mm.......mm" + /* 10 */ "mm.......mm" + /* 11 */ "mm.......mm" + /* 12 */ "mm.......mm" // Level 5 /* z\x* 1 */ @@ -3720,10 +3723,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 6 */ ".i.......i." /* 7 */ "uiiiiiiiiiu" /* 8 */ "kkkkkkkkkkk" - /* 9 */ "..........." - /* 10 */ "..........." - /* 11 */ "..........." - /* 12 */ "..........." + /* 9 */ "mm.......mm" + /* 10 */ "mm.......mm" + /* 11 */ "mm.......mm" + /* 12 */ "mm.......mm" // Level 6 /* z\x* 1 */ @@ -3737,10 +3740,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 6 */ "uiiiiiiiiiu" /* 7 */ "kkkkkkkkkkk" /* 8 */ "..........." - /* 9 */ "..........." - /* 10 */ "..........." - /* 11 */ "..........." - /* 12 */ "..........." + /* 9 */ "mm.......mm" + /* 10 */ "mm.......mm" + /* 11 */ "mm.......mm" + /* 12 */ "mm.......mm" // Level 7 /* z\x* 1 */ @@ -3754,10 +3757,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 6 */ "kkkkkkkkkkk" /* 7 */ "..........." /* 8 */ "..........." - /* 9 */ "..........." - /* 10 */ "..........." - /* 11 */ "..........." - /* 12 */ "..........." + /* 9 */ "mm.......mm" + /* 10 */ "mm.......mm" + /* 11 */ "mm.......mm" + /* 12 */ "mm.......mm" // Level 8 /* z\x* 1 */ @@ -3771,10 +3774,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 6 */ "..........." /* 7 */ "..........." /* 8 */ "..........." - /* 9 */ "..........." - /* 10 */ "..........." - /* 11 */ "..........." - /* 12 */ "...........", + /* 9 */ "mm.......mm" + /* 10 */ "mm.......mm" + /* 11 */ "mm.......mm" + /* 12 */ "mm.......mm", // Connectors: "-1: 5, 2, 0: 2\n" /* Type -1, direction Z- */, @@ -3803,7 +3806,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // WoodenHouse9x7DoubleDoor: // The data has been exported from the gallery Plains, area index 38, ID 87, created by Aloe_vera { @@ -3968,7 +3971,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // WoodenHouseL13x14: // The data has been exported from the gallery Plains, area index 39, ID 90, created by STR_Warrior { @@ -4220,7 +4223,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // WoodenHouseL14x14: // The data has been exported from the gallery Plains, area index 0, ID 4, created by Aloe_vera { @@ -4234,30 +4237,29 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // Block definitions: ".: 0: 0\n" /* air */ "a: 4: 0\n" /* cobblestone */ - "b: 2: 0\n" /* grass */ - "c: 67: 0\n" /* stairs */ - "d: 67: 2\n" /* stairs */ - "e: 67: 1\n" /* stairs */ - "f: 5: 0\n" /* wood */ - "g: 67: 3\n" /* stairs */ - "h: 17: 0\n" /* tree */ - "i: 64: 7\n" /* wooddoorblock */ - "j: 64: 5\n" /* wooddoorblock */ - "k:102: 0\n" /* glasspane */ - "l: 64:12\n" /* wooddoorblock */ + "b: 67: 0\n" /* stairs */ + "c: 67: 2\n" /* stairs */ + "d: 67: 1\n" /* stairs */ + "e: 5: 0\n" /* wood */ + "f: 67: 3\n" /* stairs */ + "g: 17: 0\n" /* tree */ + "h: 64: 7\n" /* wooddoorblock */ + "i: 64: 5\n" /* wooddoorblock */ + "j:102: 0\n" /* glasspane */ + "k: 64:12\n" /* wooddoorblock */ + "l: 53: 2\n" /* woodstairs */ "m: 19: 0\n" /* sponge */ - "n: 53: 2\n" /* woodstairs */ - "o: 53: 1\n" /* woodstairs */ - "p: 53: 7\n" /* woodstairs */ - "q: 53: 6\n" /* woodstairs */ - "r: 53: 3\n" /* woodstairs */ - "s: 53: 0\n" /* woodstairs */ - "t: 53: 5\n" /* woodstairs */ - "u: 53: 4\n" /* woodstairs */ - "v: 50: 3\n" /* torch */ - "w: 50: 2\n" /* torch */ - "x: 50: 4\n" /* torch */ - "y: 50: 1\n" /* torch */, + "n: 53: 1\n" /* woodstairs */ + "o: 53: 7\n" /* woodstairs */ + "p: 53: 6\n" /* woodstairs */ + "q: 53: 3\n" /* woodstairs */ + "r: 53: 0\n" /* woodstairs */ + "s: 53: 5\n" /* woodstairs */ + "t: 53: 4\n" /* woodstairs */ + "u: 50: 3\n" /* torch */ + "v: 50: 2\n" /* torch */ + "w: 50: 4\n" /* torch */ + "x: 50: 1\n" /* torch */, // Block data: // Level 0 @@ -4271,134 +4273,134 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 5 */ "maaaaaaaaaaaaaam" /* 6 */ "maaaaaaaaaaaaaam" /* 7 */ "maaaaaaaaaaaaaam" - /* 8 */ "bbbbbaaaaaaaaaam" - /* 9 */ "bbbbbbbbaaaaaaam" - /* 10 */ "bbbbbbbbaaaaaaam" - /* 11 */ "bbbbbbbbaaaaaaam" - /* 12 */ "bbbbbbbbaaaaaaam" - /* 13 */ "bbbbbbbbaaaaaaam" - /* 14 */ "bbbbbbbbaaaaaaam" - /* 15 */ "bbbbbbbbmmmmmmmm" + /* 8 */ "mmmmmaaaaaaaaaam" + /* 9 */ "mmmmmmmmaaaaaaam" + /* 10 */ "mmmmmmmmaaaaaaam" + /* 11 */ "mmmmmmmmaaaaaaam" + /* 12 */ "mmmmmmmmaaaaaaam" + /* 13 */ "mmmmmmmmaaaaaaam" + /* 14 */ "mmmmmmmmaaaaaaam" + /* 15 */ "mmmmmmmmmmmmmmmm" // Level 1 /* z\x* 111111 */ /* * 0123456789012345 */ - /* 0 */ "........cde....." + /* 0 */ "........bcd....." /* 1 */ ".aaaaaaaaaaaaaa." - /* 2 */ ".affffffffffffa." - /* 3 */ ".affffffffffffa." - /* 4 */ ".affffffffffffa." - /* 5 */ ".affffffffffffa." - /* 6 */ ".affffffffffffa." - /* 7 */ ".aaaaaaaafffffa." - /* 8 */ ".....cgeafffffa." - /* 9 */ "........afffffa." - /* 10 */ "........afffffa." - /* 11 */ "........afffffa." - /* 12 */ "........afffffa." - /* 13 */ "........afffffa." - /* 14 */ "........aaaaaaa." - /* 15 */ "................" + /* 2 */ ".aeeeeeeeeeeeea." + /* 3 */ ".aeeeeeeeeeeeea." + /* 4 */ ".aeeeeeeeeeeeea." + /* 5 */ ".aeeeeeeeeeeeea." + /* 6 */ ".aeeeeeeeeeeeea." + /* 7 */ ".aaaaaaaaeeeeea." + /* 8 */ ".....bfdaeeeeea." + /* 9 */ "mmmm....aeeeeea." + /* 10 */ "mmmmmmm.aeeeeea." + /* 11 */ "mmmmmmm.aeeeeea." + /* 12 */ "mmmmmmm.aeeeeea." + /* 13 */ "mmmmmmm.aeeeeea." + /* 14 */ "mmmmmmm.aaaaaaa." + /* 15 */ "mmmmmmm........." // Level 2 /* z\x* 111111 */ /* * 0123456789012345 */ /* 0 */ "................" - /* 1 */ ".hffffffhihfffh." - /* 2 */ ".f............f." - /* 3 */ ".f............f." - /* 4 */ ".f............f." - /* 5 */ ".f............f." - /* 6 */ ".f............f." - /* 7 */ ".hffffjfh.....f." - /* 8 */ "........f.....f." - /* 9 */ "........f.....f." - /* 10 */ "........f.....f." - /* 11 */ "........f.....f." - /* 12 */ "........f.....f." - /* 13 */ "........f.....f." - /* 14 */ "........hfffffh." - /* 15 */ "................" + /* 1 */ ".geeeeeeghgeeeg." + /* 2 */ ".e............e." + /* 3 */ ".e............e." + /* 4 */ ".e............e." + /* 5 */ ".e............e." + /* 6 */ ".e............e." + /* 7 */ ".geeeeieg.....e." + /* 8 */ "........e.....e." + /* 9 */ "mmmm....e.....e." + /* 10 */ "mmmmmmm.e.....e." + /* 11 */ "mmmmmmm.e.....e." + /* 12 */ "mmmmmmm.e.....e." + /* 13 */ "mmmmmmm.e.....e." + /* 14 */ "mmmmmmm.geeeeeg." + /* 15 */ "mmmmmmm........." // Level 3 /* z\x* 111111 */ /* * 0123456789012345 */ /* 0 */ "................" - /* 1 */ ".hfkkfkkhlhkkfh." - /* 2 */ ".k............f." - /* 3 */ ".k............k." - /* 4 */ ".k............k." - /* 5 */ ".k............f." - /* 6 */ ".k............k." - /* 7 */ ".hfkkflfh.....k." - /* 8 */ "........f.....f." - /* 9 */ "........k.....k." - /* 10 */ "........k.....k." - /* 11 */ "........f.....f." - /* 12 */ "........k.....k." - /* 13 */ "........k.....k." - /* 14 */ "........hkkkkkh." - /* 15 */ "................" + /* 1 */ ".gejjejjgkgjjeg." + /* 2 */ ".j............e." + /* 3 */ ".j............j." + /* 4 */ ".j............j." + /* 5 */ ".j............e." + /* 6 */ ".j............j." + /* 7 */ ".gejjekeg.....j." + /* 8 */ "........e.....e." + /* 9 */ "mmmm....j.....j." + /* 10 */ "mmmmmmm.j.....j." + /* 11 */ "mmmmmmm.e.....e." + /* 12 */ "mmmmmmm.j.....j." + /* 13 */ "mmmmmmm.j.....j." + /* 14 */ "mmmmmmm.gjjjjjg." + /* 15 */ "mmmmmmm........." // Level 4 /* z\x* 111111 */ /* * 0123456789012345 */ - /* 0 */ "nnnnnnnnnnnnnnno" - /* 1 */ "phffffffhfhfffho" - /* 2 */ ".f............fo" - /* 3 */ ".f............fo" - /* 4 */ ".f............fo" - /* 5 */ ".f............fo" - /* 6 */ ".f............fo" - /* 7 */ "qhffffffh.....fo" - /* 8 */ "rrrrrrrsf.....fo" - /* 9 */ ".......sf.....fo" - /* 10 */ ".......sf.....fo" - /* 11 */ ".......sf.....fo" - /* 12 */ ".......sf.....fo" - /* 13 */ ".......sf.....fo" - /* 14 */ ".......shfffffho" - /* 15 */ ".......st.....uo" + /* 0 */ "llllllllllllllln" + /* 1 */ "ogeeeeeegegeeegn" + /* 2 */ ".e............en" + /* 3 */ ".e............en" + /* 4 */ ".e............en" + /* 5 */ ".e............en" + /* 6 */ ".e............en" + /* 7 */ "pgeeeeeeg.....en" + /* 8 */ "qqqqqqqre.....en" + /* 9 */ "mmmm...re.....en" + /* 10 */ "mmmmmmmre.....en" + /* 11 */ "mmmmmmmre.....en" + /* 12 */ "mmmmmmmre.....en" + /* 13 */ "mmmmmmmre.....en" + /* 14 */ "mmmmmmmrgeeeeegn" + /* 15 */ "mmmmmmmrs.....tn" // Level 5 /* z\x* 111111 */ /* * 0123456789012345 */ /* 0 */ "................" - /* 1 */ "nnnnnnnnnnnnnnn." - /* 2 */ "pfffffffffffffo." - /* 3 */ ".f.........v.fo." - /* 4 */ ".f..........wfo." - /* 5 */ ".f......x....fo." - /* 6 */ "qfffffffff...fo." - /* 7 */ "rrrrrrrrsfy..fo." - /* 8 */ "........sf...fo." - /* 9 */ "........sf...fo." - /* 10 */ "........sf...fo." - /* 11 */ "........sf...fo." - /* 12 */ "........sf...fo." - /* 13 */ "........sf...fo." - /* 14 */ "........sfffffo." - /* 15 */ "........st...uo." + /* 1 */ "lllllllllllllll." + /* 2 */ "oeeeeeeeeeeeeen." + /* 3 */ ".e.........u.en." + /* 4 */ ".e..........ven." + /* 5 */ ".e......w....en." + /* 6 */ "peeeeeeeee...en." + /* 7 */ "qqqqqqqqrex..en." + /* 8 */ "........re...en." + /* 9 */ "mmmm....re...en." + /* 10 */ "mmmmmmm.re...en." + /* 11 */ "mmmmmmm.re...en." + /* 12 */ "mmmmmmm.re...en." + /* 13 */ "mmmmmmm.re...en." + /* 14 */ "mmmmmmm.reeeeen." + /* 15 */ "mmmmmmm.rs...tn." // Level 6 /* z\x* 111111 */ /* * 0123456789012345 */ /* 0 */ "................" /* 1 */ "................" - /* 2 */ "nnnnnnnnnnnnno.." - /* 3 */ "pffffffffffffo.." - /* 4 */ ".fy.........fo.." - /* 5 */ "qffffffffff.fo.." - /* 6 */ "rrrrrrrrrsf.fo.." - /* 7 */ ".........sf.fo.." - /* 8 */ ".........sf.fo.." - /* 9 */ ".........sf.fo.." - /* 10 */ ".........sf.fo.." - /* 11 */ ".........sf.fo.." - /* 12 */ ".........sf.fo.." - /* 13 */ ".........sfxfo.." - /* 14 */ ".........sfffo.." - /* 15 */ ".........st.uo.." + /* 2 */ "llllllllllllln.." + /* 3 */ "oeeeeeeeeeeeen.." + /* 4 */ ".ex.........en.." + /* 5 */ "peeeeeeeeee.en.." + /* 6 */ "qqqqqqqqqre.en.." + /* 7 */ ".........re.en.." + /* 8 */ ".........re.en.." + /* 9 */ "mmmm.....re.en.." + /* 10 */ "mmmmmmm..re.en.." + /* 11 */ "mmmmmmm..re.en.." + /* 12 */ "mmmmmmm..re.en.." + /* 13 */ "mmmmmmm..rewen.." + /* 14 */ "mmmmmmm..reeen.." + /* 15 */ "mmmmmmm..rs.tn.." // Level 7 /* z\x* 111111 */ @@ -4406,19 +4408,19 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 0 */ "................" /* 1 */ "................" /* 2 */ "................" - /* 3 */ "nnnnnnnnnnnnn..." - /* 4 */ "ffffffffffffo..." - /* 5 */ "rrrrrrrrrrsfo..." - /* 6 */ "..........sfo..." - /* 7 */ "..........sfo..." - /* 8 */ "..........sfo..." - /* 9 */ "..........sfo..." - /* 10 */ "..........sfo..." - /* 11 */ "..........sfo..." - /* 12 */ "..........sfo..." - /* 13 */ "..........sfo..." - /* 14 */ "..........sfo..." - /* 15 */ "..........sfo...", + /* 3 */ "lllllllllllll..." + /* 4 */ "eeeeeeeeeeeen..." + /* 5 */ "qqqqqqqqqqren..." + /* 6 */ "..........ren..." + /* 7 */ "..........ren..." + /* 8 */ "..........ren..." + /* 9 */ "mmmm......ren..." + /* 10 */ "mmmmmmm...ren..." + /* 11 */ "mmmmmmm...ren..." + /* 12 */ "mmmmmmm...ren..." + /* 13 */ "mmmmmmm...ren..." + /* 14 */ "mmmmmmm...ren..." + /* 15 */ "mmmmmmm...ren...", // Connectors: "-1: 9, 1, 0: 2\n" /* Type -1, direction Z- */, @@ -4447,7 +4449,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // WoodenHouseL9x9: // The data has been exported from the gallery Plains, area index 42, ID 93, created by xoft { @@ -4509,10 +4511,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 4 */ ".aaaaaaaaa." /* 5 */ ".aaaaaaaaa." /* 6 */ ".....aaaaa." - /* 7 */ ".....aaaaa." - /* 8 */ ".....aaaaa." - /* 9 */ ".....aaaaa." - /* 10 */ "..........." + /* 7 */ "mmmm.aaaaa." + /* 8 */ "mmmm.aaaaa." + /* 9 */ "mmmm.aaaaa." + /* 10 */ "mmmm......." // Level 2 /* z\x* 1 */ @@ -4524,10 +4526,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 4 */ ".f.......f." /* 5 */ ".efffe...f." /* 6 */ ".....f...f." - /* 7 */ ".....f...f." - /* 8 */ ".....f...f." - /* 9 */ ".....efffe." - /* 10 */ "..........." + /* 7 */ "mmmm.f...f." + /* 8 */ "mmmm.f...f." + /* 9 */ "mmmm.efffe." + /* 10 */ "mmmm......." // Level 3 /* z\x* 1 */ @@ -4539,10 +4541,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 4 */ ".h.......h." /* 5 */ ".ehhhe...f." /* 6 */ ".....h...h." - /* 7 */ ".....h...h." - /* 8 */ ".....h...h." - /* 9 */ ".....ehhhe." - /* 10 */ "..........." + /* 7 */ "mmmm.h...h." + /* 8 */ "mmmm.h...h." + /* 9 */ "mmmm.ehhhe." + /* 10 */ "mmmm......." // Level 4 /* z\x* 1 */ @@ -4554,10 +4556,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 4 */ ".f...o...fl" /* 5 */ "pfffffq.rfl" /* 6 */ "sssssf...fl" - /* 7 */ "....tf...fl" - /* 8 */ "....tf...fl" - /* 9 */ "....tfffffl" - /* 10 */ "....tu...vl" + /* 7 */ "mmmmtf...fl" + /* 8 */ "mmmmtf...fl" + /* 9 */ "mmmmtfffffl" + /* 10 */ "mmmmtu...vl" // Level 5 /* z\x* 1 */ @@ -4569,10 +4571,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 4 */ "pffffff.fl." /* 5 */ "ssssssf.fl." /* 6 */ ".....tf.fl." - /* 7 */ ".....tf.fl." - /* 8 */ ".....tf.fl." - /* 9 */ ".....tfffl." - /* 10 */ ".....tu.vl." + /* 7 */ "mmmm.tf.fl." + /* 8 */ "mmmm.tf.fl." + /* 9 */ "mmmm.tfffl." + /* 10 */ "mmmm.tu.vl." // Level 6 /* z\x* 1 */ @@ -4584,10 +4586,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 4 */ "sssssstfl.." /* 5 */ "......tfl.." /* 6 */ "......tfl.." - /* 7 */ "......tfl.." - /* 8 */ "......tfl.." - /* 9 */ "......tfl.." - /* 10 */ "......tfl..", + /* 7 */ "mmmm..tfl.." + /* 8 */ "mmmm..tfl.." + /* 9 */ "mmmm..tfl.." + /* 10 */ "mmmm..tfl..", // Connectors: "-1: 5, 1, 0: 2\n" /* Type -1, direction Z- */, @@ -4616,7 +4618,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // WoodenHouseU13x9: // The data has been exported from the gallery Plains, area index 43, ID 94, created by xoft { @@ -4783,7 +4785,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // WoodenMill5x5: // The data has been exported from the gallery Plains, area index 60, ID 111, created by Aloe_vera { @@ -4837,9 +4839,9 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // Level 1 /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ "........." - /* 2 */ "........." + /* 0 */ "mmmmmmm.." + /* 1 */ "mmmmmmm.." + /* 2 */ "mmmmmmm.." /* 3 */ "........." /* 4 */ ".aaaaa..." /* 5 */ ".aaaaab.." @@ -4847,15 +4849,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 7 */ ".aaaaad.." /* 8 */ ".aaaaa..." /* 9 */ "........." - /* 10 */ "........." - /* 11 */ "........." - /* 12 */ "........." + /* 10 */ "mmmmmmm.." + /* 11 */ "mmmmmmm.." + /* 12 */ "mmmmmmm.." // Level 2 /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ "........." - /* 2 */ "........." + /* 0 */ "mmmmmmm.." + /* 1 */ "mmmmmmm.." + /* 2 */ "mmmmmmm.." /* 3 */ "........." /* 4 */ ".efffe..." /* 5 */ ".f...f..." @@ -4863,15 +4865,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 7 */ ".f...f..." /* 8 */ ".efffe..." /* 9 */ "........." - /* 10 */ "........." - /* 11 */ "........." - /* 12 */ "........." + /* 10 */ "mmmmmmm.." + /* 11 */ "mmmmmmm.." + /* 12 */ "mmmmmmm.." // Level 3 /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ "........." - /* 2 */ "........." + /* 0 */ "mmmmmmm.." + /* 1 */ "mmmmmmm.." + /* 2 */ "mmmmmmm.." /* 3 */ "........." /* 4 */ ".ejjje..." /* 5 */ ".j...f..." @@ -4879,15 +4881,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 7 */ ".j...f..." /* 8 */ ".ejjje..." /* 9 */ "........." - /* 10 */ "........." - /* 11 */ "........." - /* 12 */ "........." + /* 10 */ "mmmmmmm.." + /* 11 */ "mmmmmmm.." + /* 12 */ "mmmmmmm.." // Level 4 /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ "........." - /* 2 */ "........." + /* 0 */ "mmmmmmm.." + /* 1 */ "mmmmmmm.." + /* 2 */ "mmmmmmm.." /* 3 */ "........." /* 4 */ ".efffe..." /* 5 */ ".f..nf..." @@ -4895,15 +4897,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 7 */ ".f..nf..k" /* 8 */ ".efffe..o" /* 9 */ "........." - /* 10 */ "........." - /* 11 */ "........." - /* 12 */ "........." + /* 10 */ "mmmmmmm.." + /* 11 */ "mmmmmmm.." + /* 12 */ "mmmmmmm.." // Level 5 /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ "........." - /* 2 */ "........." + /* 0 */ "mmmmmmm.." + /* 1 */ "mmmmmmm.." + /* 2 */ "mmmmmmm.." /* 3 */ "........." /* 4 */ ".epppe..." /* 5 */ ".q...q..." @@ -4911,15 +4913,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 7 */ ".q...q..k" /* 8 */ ".epppe..o" /* 9 */ "........." - /* 10 */ "........." - /* 11 */ "........." - /* 12 */ "........." + /* 10 */ "mmmmmmm.." + /* 11 */ "mmmmmmm.." + /* 12 */ "mmmmmmm.." // Level 6 /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ "........." - /* 2 */ "........." + /* 0 */ "mmmmmmm.." + /* 1 */ "mmmmmmm.." + /* 2 */ "mmmmmmm.." /* 3 */ "........." /* 4 */ ".efffe..." /* 5 */ ".f...f..." @@ -4927,15 +4929,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 7 */ ".f...f..o" /* 8 */ ".efffe..o" /* 9 */ "........." - /* 10 */ "........." - /* 11 */ "........." - /* 12 */ "........." + /* 10 */ "mmmmmmm.." + /* 11 */ "mmmmmmm.." + /* 12 */ "mmmmmmm.." // Level 7 /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ "........." - /* 2 */ "........." + /* 0 */ "mmmmmmm.." + /* 1 */ "mmmmmmm.." + /* 2 */ "mmmmmmm.." /* 3 */ "........." /* 4 */ ".ejjje..." /* 5 */ ".j...j..." @@ -4943,15 +4945,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 7 */ ".j...j..o" /* 8 */ ".ejjje..." /* 9 */ "........." - /* 10 */ "........." - /* 11 */ "........." - /* 12 */ "........." + /* 10 */ "mmmmmmm.." + /* 11 */ "mmmmmmm.." + /* 12 */ "mmmmmmm.." // Level 8 /* z\x* 012345678 */ - /* 0 */ "........o" - /* 1 */ "........o" - /* 2 */ "........o" + /* 0 */ "mmmmmmm.o" + /* 1 */ "mmmmmmm.o" + /* 2 */ "mmmmmmm.o" /* 3 */ "........." /* 4 */ ".efffe..." /* 5 */ ".f...f..k" @@ -4959,15 +4961,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 7 */ ".f...f..o" /* 8 */ ".efffe..." /* 9 */ "........." - /* 10 */ "........." - /* 11 */ "........." - /* 12 */ "........." + /* 10 */ "mmmmmmm.." + /* 11 */ "mmmmmmm.." + /* 12 */ "mmmmmmm.." // Level 9 /* z\x* 012345678 */ - /* 0 */ "........k" - /* 1 */ "........k" - /* 2 */ "........o" + /* 0 */ "mmmmmmm.k" + /* 1 */ "mmmmmmm.k" + /* 2 */ "mmmmmmm.o" /* 3 */ "........o" /* 4 */ ".epppe..o" /* 5 */ ".q...q..k" @@ -4975,15 +4977,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 7 */ ".q...q..k" /* 8 */ ".epppe..k" /* 9 */ "........." - /* 10 */ "........." - /* 11 */ "........." - /* 12 */ "........." + /* 10 */ "mmmmmmm.." + /* 11 */ "mmmmmmm.." + /* 12 */ "mmmmmmm.." // Level 10 /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ "........." - /* 2 */ "........k" + /* 0 */ "mmmmmmm.." + /* 1 */ "mmmmmmm.." + /* 2 */ "mmmmmmm.k" /* 3 */ "rrrrrrr.k" /* 4 */ "sfffffs.o" /* 5 */ ".f...f..o" @@ -4991,15 +4993,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 7 */ ".f...f..o" /* 8 */ "tffffft.o" /* 9 */ "uuuuuuu.k" - /* 10 */ "........k" - /* 11 */ "........." - /* 12 */ "........." + /* 10 */ "mmmmmmm.k" + /* 11 */ "mmmmmmm.." + /* 12 */ "mmmmmmm.." // Level 11 /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ "........." - /* 2 */ "........." + /* 0 */ "mmmmmmm.." + /* 1 */ "mmmmmmm.." + /* 2 */ "mmmmmmm.." /* 3 */ "........." /* 4 */ "rrrrrrr.k" /* 5 */ "sfffffs.k" @@ -5007,15 +5009,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 7 */ "tffffft.k" /* 8 */ "uuuuuuu.o" /* 9 */ "........o" - /* 10 */ "........o" - /* 11 */ "........k" - /* 12 */ "........k" + /* 10 */ "mmmmmmm.o" + /* 11 */ "mmmmmmm.k" + /* 12 */ "mmmmmmm.k" // Level 12 /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ "........." - /* 2 */ "........." + /* 0 */ "mmmmmmm.." + /* 1 */ "mmmmmmm.." + /* 2 */ "mmmmmmm.." /* 3 */ "........." /* 4 */ "........." /* 5 */ "rrrrrrr.o" @@ -5023,15 +5025,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 7 */ "uuuuuuu.k" /* 8 */ "........." /* 9 */ "........." - /* 10 */ "........o" - /* 11 */ "........o" - /* 12 */ "........o" + /* 10 */ "mmmmmmm.o" + /* 11 */ "mmmmmmm.o" + /* 12 */ "mmmmmmm.o" // Level 13 /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ "........." - /* 2 */ "........." + /* 0 */ "mmmmmmm.." + /* 1 */ "mmmmmmm.." + /* 2 */ "mmmmmmm.." /* 3 */ "........." /* 4 */ "........." /* 5 */ "........o" @@ -5039,15 +5041,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 7 */ "........." /* 8 */ "........." /* 9 */ "........." - /* 10 */ "........." - /* 11 */ "........." - /* 12 */ "........." + /* 10 */ "mmmmmmm.." + /* 11 */ "mmmmmmm.." + /* 12 */ "mmmmmmm.." // Level 14 /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ "........." - /* 2 */ "........." + /* 0 */ "mmmmmmm.." + /* 1 */ "mmmmmmm.." + /* 2 */ "mmmmmmm.." /* 3 */ "........." /* 4 */ "........o" /* 5 */ "........o" @@ -5055,15 +5057,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 7 */ "........." /* 8 */ "........." /* 9 */ "........." - /* 10 */ "........." - /* 11 */ "........." - /* 12 */ "........." + /* 10 */ "mmmmmmm.." + /* 11 */ "mmmmmmm.." + /* 12 */ "mmmmmmm.." // Level 15 /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ "........." - /* 2 */ "........." + /* 0 */ "mmmmmmm.." + /* 1 */ "mmmmmmm.." + /* 2 */ "mmmmmmm.." /* 3 */ "........." /* 4 */ "........o" /* 5 */ "........k" @@ -5071,15 +5073,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 7 */ "........." /* 8 */ "........." /* 9 */ "........." - /* 10 */ "........." - /* 11 */ "........." - /* 12 */ "........." + /* 10 */ "mmmmmmm.." + /* 11 */ "mmmmmmm.." + /* 12 */ "mmmmmmm.." // Level 16 /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ "........." - /* 2 */ "........." + /* 0 */ "mmmmmmm.." + /* 1 */ "mmmmmmm.." + /* 2 */ "mmmmmmm.." /* 3 */ "........." /* 4 */ "........o" /* 5 */ "........k" @@ -5087,9 +5089,9 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 7 */ "........." /* 8 */ "........." /* 9 */ "........." - /* 10 */ "........." - /* 11 */ "........." - /* 12 */ ".........", + /* 10 */ "mmmmmmm.." + /* 11 */ "mmmmmmm.." + /* 12 */ "mmmmmmm..", // Connectors: "-1: 8, 1, 6: 5\n" /* Type -1, direction X+ */, @@ -5118,7 +5120,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // WoodenStables: // The data has been exported from the gallery Plains, area index 55, ID 106, created by Aloe_vera { @@ -5304,7 +5306,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = const cPrefab::sDef g_PlainsVillageStartingPrefabs[] = { - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // CobbleWell4x4: // The data has been exported from the gallery Plains, area index 1, ID 5, created by Aloe_vera { @@ -5445,7 +5447,7 @@ const cPrefab::sDef g_PlainsVillageStartingPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // MineEntrance: // The data has been exported from the gallery Plains, area index 138, ID 446, created by STR_Warrior { @@ -5472,13 +5474,15 @@ const cPrefab::sDef g_PlainsVillageStartingPrefabs[] = "l: 66: 7\n" /* tracks */ "m: 19: 0\n" /* sponge */ "n: 50: 2\n" /* torch */ - "o: 2: 0\n" /* grass */ - "p: 53: 2\n" /* woodstairs */ - "q: 77: 1\n" /* stonebutton */ - "r: 27: 0\n" /* poweredrail */ - "s: 53: 7\n" /* woodstairs */ - "t: 53: 6\n" /* woodstairs */ - "u: 53: 3\n" /* woodstairs */, + "o: 4: 0\n" /* cobblestone */ + "p: 2: 0\n" /* grass */ + "q: 13: 0\n" /* gravel */ + "r: 53: 2\n" /* woodstairs */ + "s: 77: 1\n" /* stonebutton */ + "t: 27: 0\n" /* poweredrail */ + "u: 53: 7\n" /* woodstairs */ + "v: 53: 6\n" /* woodstairs */ + "w: 53: 3\n" /* woodstairs */, // Block data: // Level 0 @@ -5783,28 +5787,28 @@ const cPrefab::sDef g_PlainsVillageStartingPrefabs[] = // Level 30 /* z\x* 0123456 */ - /* 0 */ "mmmmmmm" + /* 0 */ "mmooomm" /* 1 */ "mmmammm" - /* 2 */ "mm...mm" - /* 3 */ "ma..aam" - /* 4 */ "mmfgamm" + /* 2 */ "om...mo" + /* 3 */ "oa..aao" + /* 4 */ "omfgamo" /* 5 */ "mmmammm" - /* 6 */ "mmmmmmm" + /* 6 */ "mmooomm" // Level 31 /* z\x* 0123456 */ - /* 0 */ "ooomooo" - /* 1 */ "oaaaaao" - /* 2 */ "oa.aaao" - /* 3 */ "oa..iao" - /* 4 */ "oa..jao" - /* 5 */ "oaaaaao" - /* 6 */ "ooooooo" + /* 0 */ "ppqqqpp" + /* 1 */ "paaaaap" + /* 2 */ "qa.aaaq" + /* 3 */ "qa..iaq" + /* 4 */ "qa..jaq" + /* 5 */ "paaaaap" + /* 6 */ "ppqqqpp" // Level 32 /* z\x* 0123456 */ - /* 0 */ "...p..." - /* 1 */ ".aqrba." + /* 0 */ "...r..." + /* 1 */ ".astba." /* 2 */ "...fl.." /* 3 */ "......." /* 4 */ "......." @@ -5833,31 +5837,31 @@ const cPrefab::sDef g_PlainsVillageStartingPrefabs[] = // Level 35 /* z\x* 0123456 */ - /* 0 */ "ppppppp" - /* 1 */ "saaaaas" + /* 0 */ "rrrrrrr" + /* 1 */ "uaaaaau" /* 2 */ ".a...a." /* 3 */ ".a...a." /* 4 */ ".a...a." - /* 5 */ "taaaaat" - /* 6 */ "uuuuuuu" + /* 5 */ "vaaaaav" + /* 6 */ "wwwwwww" // Level 36 /* z\x* 0123456 */ /* 0 */ "......." - /* 1 */ "ppppppp" - /* 2 */ "saaaaas" + /* 1 */ "rrrrrrr" + /* 2 */ "uaaaaau" /* 3 */ ".aaaaa." - /* 4 */ "taaaaat" - /* 5 */ "uuuuuuu" + /* 4 */ "vaaaaav" + /* 5 */ "wwwwwww" /* 6 */ "......." // Level 37 /* z\x* 0123456 */ /* 0 */ "......." /* 1 */ "......." - /* 2 */ "ppppppp" + /* 2 */ "rrrrrrr" /* 3 */ "aaaaaaa" - /* 4 */ "uuuuuuu" + /* 4 */ "wwwwwww" /* 5 */ "......." /* 6 */ ".......", @@ -5892,7 +5896,7 @@ const cPrefab::sDef g_PlainsVillageStartingPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // RoofedWell: // The data has been exported from the gallery Plains, area index 119, ID 271, created by STR_Warrior { diff --git a/src/Generating/Prefabs/RainbowRoadPrefabs.cpp b/src/Generating/Prefabs/RainbowRoadPrefabs.cpp index 1a3765c5a..bf7b1b096 100644 --- a/src/Generating/Prefabs/RainbowRoadPrefabs.cpp +++ b/src/Generating/Prefabs/RainbowRoadPrefabs.cpp @@ -15,7 +15,7 @@ const cPrefab::sDef g_RainbowRoadPrefabs[] = { - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // CurveDouble: // The data has been exported from the gallery Cube, area index 89, ID 467, created by Aloe_vera { @@ -85,7 +85,7 @@ const cPrefab::sDef g_RainbowRoadPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // CurveDownFromTopSingle: // The data has been exported from the gallery Cube, area index 100, ID 478, created by Aloe_vera { @@ -255,7 +255,7 @@ const cPrefab::sDef g_RainbowRoadPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // CurveSingle: // The data has been exported from the gallery Cube, area index 84, ID 462, created by Aloe_vera { @@ -320,7 +320,7 @@ const cPrefab::sDef g_RainbowRoadPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // CurveSingleLeft: // The data has been exported from the gallery Cube, area index 97, ID 475, created by Aloe_vera { @@ -385,7 +385,7 @@ const cPrefab::sDef g_RainbowRoadPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // CurveUpDouble: // The data has been exported from the gallery Cube, area index 92, ID 470, created by Aloe_vera { @@ -581,7 +581,7 @@ const cPrefab::sDef g_RainbowRoadPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // CurveUpSingle: // The data has been exported from the gallery Cube, area index 87, ID 465, created by Aloe_vera { @@ -751,7 +751,7 @@ const cPrefab::sDef g_RainbowRoadPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // SlopeDownFromTopSingle: // The data has been exported from the gallery Cube, area index 98, ID 476, created by Aloe_vera { @@ -881,7 +881,7 @@ const cPrefab::sDef g_RainbowRoadPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // SlopeUpDouble: // The data has been exported from the gallery Cube, area index 90, ID 468, created by Aloe_vera { @@ -1061,7 +1061,7 @@ const cPrefab::sDef g_RainbowRoadPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // SlopeUpSingle: // The data has been exported from the gallery Cube, area index 85, ID 463, created by Aloe_vera { @@ -1191,7 +1191,7 @@ const cPrefab::sDef g_RainbowRoadPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // SplitTee: // The data has been exported from the gallery Cube, area index 93, ID 471, created by Aloe_vera { @@ -1261,7 +1261,7 @@ const cPrefab::sDef g_RainbowRoadPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // StraightDouble: // The data has been exported from the gallery Cube, area index 88, ID 466, created by Aloe_vera { @@ -1335,7 +1335,7 @@ const cPrefab::sDef g_RainbowRoadPrefabs[] = const cPrefab::sDef g_RainbowRoadStartingPrefabs[] = { - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // StraightSingle: // The data has been exported from the gallery Cube, area index 83, ID 461, created by Aloe_vera { diff --git a/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.cpp b/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.cpp index eb01cf59e..3328ee210 100644 --- a/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.cpp +++ b/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.cpp @@ -15,7 +15,7 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = { - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // Forge: // The data has been exported from the gallery Desert, area index 32, ID 173, created by Aloe_vera { @@ -23,8 +23,8 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = 12, 6, 10, // SizeX = 12, SizeY = 6, SizeZ = 10 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 11, 5, 9, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 12, 5, 10, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -162,7 +162,7 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // House11x7: // The data has been exported from the gallery Desert, area index 31, ID 172, created by Aloe_vera { @@ -170,8 +170,8 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = 13, 6, 9, // SizeX = 13, SizeY = 6, SizeZ = 9 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 12, 5, 8, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 13, 5, 9, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -301,7 +301,7 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // House5x4: // The data has been exported from the gallery Desert, area index 25, ID 166, created by Aloe_vera { @@ -309,8 +309,8 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = 7, 6, 6, // SizeX = 7, SizeY = 6, SizeZ = 6 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 6, 5, 5, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 7, 5, 6, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -412,7 +412,7 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // House5x5: // The data has been exported from the gallery Desert, area index 26, ID 167, created by Aloe_vera { @@ -420,8 +420,8 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = 7, 6, 7, // SizeX = 7, SizeY = 6, SizeZ = 7 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 6, 5, 6, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 7, 5, 7, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -530,7 +530,7 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // House7x5: // The data has been exported from the gallery Desert, area index 27, ID 168, created by Aloe_vera { @@ -538,8 +538,8 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = 9, 6, 7, // SizeX = 9, SizeY = 6, SizeZ = 7 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 8, 5, 6, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 9, 5, 7, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -648,7 +648,7 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // House8x5: // The data has been exported from the gallery Desert, area index 28, ID 169, created by Aloe_vera { @@ -656,8 +656,8 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = 10, 6, 7, // SizeX = 10, SizeY = 6, SizeZ = 7 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 9, 5, 6, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 10, 5, 7, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -772,7 +772,7 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // House8x7: // The data has been exported from the gallery Desert, area index 29, ID 170, created by Aloe_vera { @@ -780,8 +780,8 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = 10, 6, 9, // SizeX = 10, SizeY = 6, SizeZ = 9 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 9, 5, 8, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 10, 5, 9, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -910,7 +910,7 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // House9x7: // The data has been exported from the gallery Desert, area index 30, ID 171, created by Aloe_vera { @@ -918,8 +918,8 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = 11, 6, 9, // SizeX = 11, SizeY = 6, SizeZ = 9 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 10, 5, 8, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 11, 5, 9, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -1049,23 +1049,23 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // HouseL13x12: // The data has been exported from the gallery Desert, area index 53, ID 345, created by jakibaki { // Size: - 15, 5, 14, // SizeX = 15, SizeY = 5, SizeZ = 14 + 15, 6, 14, // SizeX = 15, SizeY = 6, SizeZ = 14 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 14, 4, 13, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 15, 5, 14, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a:128: 0\n" /* sandstonestairs */ - "b:128: 2\n" /* sandstonestairs */ - "c:128: 1\n" /* sandstonestairs */ - "d: 24: 0\n" /* sandstone */ + "a: 24: 0\n" /* sandstone */ + "b:128: 0\n" /* sandstonestairs */ + "c:128: 2\n" /* sandstonestairs */ + "d:128: 1\n" /* sandstonestairs */ "e: 43: 1\n" /* doubleslab */ "f: 64: 7\n" /* wooddoorblock */ "g:171: 0\n" /* carpet */ @@ -1088,43 +1088,61 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = // Level 0 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "...abc........." - /* 1 */ ".ddddddddddddd." - /* 2 */ ".ddddddddddddd." - /* 3 */ ".ddddddddddddd." - /* 4 */ ".ddddddddddddd." - /* 5 */ ".ddddddddddded." - /* 6 */ ".ddddddddddddd." - /* 7 */ ".ddddddddddddd." - /* 8 */ ".......deddddd." - /* 9 */ "mmmmmm.ddddddd." - /* 10 */ "mmmmmm.ddddddd." - /* 11 */ "mmmmmm.ddddddd." - /* 12 */ "mmmmmm.ddddddd." - /* 13 */ "..............." + /* 0 */ "mmmaaammmmmmmmm" + /* 1 */ "maaaaaaaaaaaaam" + /* 2 */ "maaaaaaaaaaaaam" + /* 3 */ "maaaaaaaaaaaaam" + /* 4 */ "maaaaaaaaaaaaam" + /* 5 */ "maaaaaaaaaaaaam" + /* 6 */ "maaaaaaaaaaaaam" + /* 7 */ "maaaaaaaaaaaaam" + /* 8 */ "mmmmmmmaaaaaaam" + /* 9 */ "mmmmmmmaaaaaaam" + /* 10 */ "mmmmmmmaaaaaaam" + /* 11 */ "mmmmmmmaaaaaaam" + /* 12 */ "mmmmmmmaaaaaaam" + /* 13 */ "mmmmmmmmmmmmmmm" // Level 1 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".dddfddddddddd." - /* 2 */ ".dgghhhhhhhhgd." - /* 3 */ ".dghiiiiiiiihd." - /* 4 */ ".dghiggggggihd." - /* 5 */ ".dghiiiiiigihd." - /* 6 */ ".dgghhhhhigihd." - /* 7 */ ".dddddddhigihd." - /* 8 */ ".......dhigihd." - /* 9 */ "mmmmmm.dhiiihd." - /* 10 */ "mmmmmm.dghhhgd." - /* 11 */ "mmmmmm.dggggjd." - /* 12 */ "mmmmmm.ddddddd." + /* 0 */ "...bcd........." + /* 1 */ ".aaaaaaaaaaaaa." + /* 2 */ ".aaaaaaaaaaaaa." + /* 3 */ ".aaaaaaaaaaaaa." + /* 4 */ ".aaaaaaaaaaaaa." + /* 5 */ ".aaaaaaaaaaaea." + /* 6 */ ".aaaaaaaaaaaaa." + /* 7 */ ".aaaaaaaaaaaaa." + /* 8 */ ".......aeaaaaa." + /* 9 */ "mmmmmm.aaaaaaa." + /* 10 */ "mmmmmm.aaaaaaa." + /* 11 */ "mmmmmm.aaaaaaa." + /* 12 */ "mmmmmm.aaaaaaa." /* 13 */ "..............." // Level 2 /* z\x* 11111 */ /* * 012345678901234 */ /* 0 */ "..............." + /* 1 */ ".aaafaaaaaaaaa." + /* 2 */ ".agghhhhhhhhga." + /* 3 */ ".aghiiiiiiiiha." + /* 4 */ ".aghiggggggiha." + /* 5 */ ".aghiiiiiigiha." + /* 6 */ ".agghhhhhigiha." + /* 7 */ ".aaaaaaahigiha." + /* 8 */ ".......ahigiha." + /* 9 */ "mmmmmm.ahiiiha." + /* 10 */ "mmmmmm.aghhhga." + /* 11 */ "mmmmmm.aggggja." + /* 12 */ "mmmmmm.aaaaaaa." + /* 13 */ "..............." + + // Level 3 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." /* 1 */ ".kkklkkkk.kkkk." /* 2 */ ".k...........k." /* 3 */ ".k...........k." @@ -1139,44 +1157,44 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = /* 12 */ "mmmmmm.kkk.kkk." /* 13 */ "..............." - // Level 3 + // Level 4 /* z\x* 11111 */ /* * 012345678901234 */ /* 0 */ "..............." - /* 1 */ ".ddddddddddddd." - /* 2 */ ".d......n....d." - /* 3 */ ".d...........d." - /* 4 */ ".do..........d." - /* 5 */ ".d...........d." - /* 6 */ ".d..........pd." - /* 7 */ ".ddddddd.....d." - /* 8 */ ".......d.....d." - /* 9 */ "mmmmmm.d.....d." - /* 10 */ "mmmmmm.d.....d." - /* 11 */ "mmmmmm.d..q..d." - /* 12 */ "mmmmmm.ddddddd." + /* 1 */ ".aaaaaaaaaaaaa." + /* 2 */ ".a......n....a." + /* 3 */ ".a...........a." + /* 4 */ ".ao..........a." + /* 5 */ ".a...........a." + /* 6 */ ".a..........pa." + /* 7 */ ".aaaaaaa.....a." + /* 8 */ ".......a.....a." + /* 9 */ "mmmmmm.a.....a." + /* 10 */ "mmmmmm.a.....a." + /* 11 */ "mmmmmm.a..q..a." + /* 12 */ "mmmmmm.aaaaaaa." /* 13 */ "..............." - // Level 4 + // Level 5 /* z\x* 11111 */ /* * 012345678901234 */ /* 0 */ "rrrrrrrrrrrrrrs" - /* 1 */ "tddddddddddddds" - /* 2 */ "tddddddddddddds" - /* 3 */ "tddddddddddddds" - /* 4 */ "tddddddddddddds" - /* 5 */ "tddddddddddddds" - /* 6 */ "tddddddddddddds" - /* 7 */ "tddddddddddddds" - /* 8 */ "tuuuuutddddddds" - /* 9 */ "mmmmmmtddddddds" - /* 10 */ "mmmmmmtddddddds" - /* 11 */ "mmmmmmtddddddds" - /* 12 */ "mmmmmmtddddddds" + /* 1 */ "taaaaaaaaaaaaas" + /* 2 */ "taaaaaaaaaaaaas" + /* 3 */ "taaaaaaaaaaaaas" + /* 4 */ "taaaaaaaaaaaaas" + /* 5 */ "taaaaaaaaaaaaas" + /* 6 */ "taaaaaaaaaaaaas" + /* 7 */ "taaaaaaaaaaaaas" + /* 8 */ "tuuuuutaaaaaaas" + /* 9 */ "mmmmmmtaaaaaaas" + /* 10 */ "mmmmmmtaaaaaaas" + /* 11 */ "mmmmmmtaaaaaaas" + /* 12 */ "mmmmmmtaaaaaaas" /* 13 */ "......tuuuuuuuu", // Connectors: - "-1: 4, 0, 0: 2\n" /* Type -1, direction Z- */, + "-1: 4, 1, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1202,7 +1220,7 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // MarketStall: // The data has been exported from the gallery Desert, area index 34, ID 175, created by Aloe_vera { @@ -1210,8 +1228,8 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = 7, 6, 7, // SizeX = 7, SizeY = 6, SizeZ = 7 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 6, 5, 6, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 7, 5, 7, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -1312,7 +1330,7 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // Marketplace: // The data has been exported from the gallery Desert, area index 38, ID 261, created by Aloe_vera { @@ -1320,8 +1338,8 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = 14, 4, 16, // SizeX = 14, SizeY = 4, SizeZ = 16 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 13, 3, 15, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 14, 3, 16, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -1454,7 +1472,7 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = const cPrefab::sDef g_SandFlatRoofVillageStartingPrefabs[] = { - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // Well: // The data has been exported from the gallery Desert, area index 44, ID 275, created by Aloe_vera { diff --git a/src/Generating/Prefabs/SandVillagePrefabs.cpp b/src/Generating/Prefabs/SandVillagePrefabs.cpp index a062f8cd4..c63f8161b 100644 --- a/src/Generating/Prefabs/SandVillagePrefabs.cpp +++ b/src/Generating/Prefabs/SandVillagePrefabs.cpp @@ -15,16 +15,16 @@ const cPrefab::sDef g_SandVillagePrefabs[] = { - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // DoubleField: // The data has been exported from the gallery Desert, area index 5, ID 75, created by tonibm1999 { // Size: - 13, 2, 9, // SizeX = 13, SizeY = 2, SizeZ = 9 + 13, 3, 9, // SizeX = 13, SizeY = 3, SizeZ = 9 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 12, 1, 8, // MaxX, MaxY, MaxZ + -1, 0, -1, // MinX, MinY, MinZ + 13, 2, 8, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -40,6 +40,19 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* z\x* 111 */ /* * 0123456789012 */ /* 0 */ "aaaaaaaaaaaaa" + /* 1 */ "aaaaaaaaaaaaa" + /* 2 */ "aaaaaaaaaaaaa" + /* 3 */ "aaaaaaaaaaaaa" + /* 4 */ "aaaaaaaaaaaaa" + /* 5 */ "aaaaaaaaaaaaa" + /* 6 */ "aaaaaaaaaaaaa" + /* 7 */ "aaaaaaaaaaaaa" + /* 8 */ "aaaaaaaaaaaaa" + + // Level 1 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "aaaaaaaaaaaaa" /* 1 */ "abbcbbabbcbba" /* 2 */ "abbcbbabbcbba" /* 3 */ "abbcbbabbcbba" @@ -49,21 +62,21 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* 7 */ "abbcbbabbcbba" /* 8 */ "aaaaaaaaaaaaa" - // Level 1 + // Level 2 /* z\x* 111 */ /* * 0123456789012 */ /* 0 */ "d.....d.....d" - /* 1 */ ".......ee.ee." - /* 2 */ ".......ee.ee." - /* 3 */ ".......ee.ee." - /* 4 */ ".......ee.ee." - /* 5 */ ".......ee.ee." - /* 6 */ ".......ee.ee." - /* 7 */ ".......ee.ee." + /* 1 */ ".ee.ee.ee.ee." + /* 2 */ ".ee.ee.ee.ee." + /* 3 */ ".ee.ee.ee.ee." + /* 4 */ ".ee.ee.ee.ee." + /* 5 */ ".ee.ee.ee.ee." + /* 6 */ ".ee.ee.ee.ee." + /* 7 */ ".ee.ee.ee.ee." /* 8 */ "d.....d.....d", // Connectors: - "-1: 6, 0, 8: 3\n" /* Type -1, direction Z+ */, + "-1: 6, 1, 8: 3\n" /* Type -1, direction Z+ */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -89,23 +102,23 @@ const cPrefab::sDef g_SandVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // House11x7: // The data has been exported from the gallery Desert, area index 6, ID 81, created by Aloe_vera { // Size: - 11, 6, 7, // SizeX = 11, SizeY = 6, SizeZ = 7 + 11, 7, 7, // SizeX = 11, SizeY = 7, SizeZ = 7 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 10, 5, 6, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 11, 6, 7, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a:128: 0\n" /* sandstonestairs */ - "b:128: 2\n" /* sandstonestairs */ - "c:128: 1\n" /* sandstonestairs */ - "d: 24: 0\n" /* sandstone */ + "a: 24: 0\n" /* sandstone */ + "b:128: 0\n" /* sandstonestairs */ + "c:128: 2\n" /* sandstonestairs */ + "d:128: 1\n" /* sandstonestairs */ "e: 64: 7\n" /* wooddoorblock */ "f:102: 0\n" /* glasspane */ "g: 64:12\n" /* wooddoorblock */ @@ -122,71 +135,82 @@ const cPrefab::sDef g_SandVillagePrefabs[] = // Level 0 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "....abc...." - /* 1 */ ".ddddddddd." - /* 2 */ ".ddddddddd." - /* 3 */ ".ddddddddd." - /* 4 */ ".ddddddddd." - /* 5 */ ".ddddddddd." - /* 6 */ "..........." + /* 0 */ "mmmmaaammmm" + /* 1 */ "maaaaaaaaam" + /* 2 */ "maaaaaaaaam" + /* 3 */ "maaaaaaaaam" + /* 4 */ "maaaaaaaaam" + /* 5 */ "maaaaaaaaam" + /* 6 */ "mmmmmmmmmmm" // Level 1 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".ddddedddd." - /* 2 */ ".d.......d." - /* 3 */ ".d.......d." - /* 4 */ ".d.......d." - /* 5 */ ".ddddddddd." + /* 0 */ "....bcd...." + /* 1 */ ".aaaaaaaaa." + /* 2 */ ".aaaaaaaaa." + /* 3 */ ".aaaaaaaaa." + /* 4 */ ".aaaaaaaaa." + /* 5 */ ".aaaaaaaaa." /* 6 */ "..........." // Level 2 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "..........." - /* 1 */ ".dffdgdffd." + /* 1 */ ".aaaaeaaaa." + /* 2 */ ".a.......a." + /* 3 */ ".a.......a." + /* 4 */ ".a.......a." + /* 5 */ ".aaaaaaaaa." + /* 6 */ "..........." + + // Level 3 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".affagaffa." /* 2 */ ".f.......f." /* 3 */ ".f.......f." /* 4 */ ".f.......f." - /* 5 */ ".dffdfdffd." + /* 5 */ ".affafaffa." /* 6 */ "..........." - // Level 3 + // Level 4 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "bbbbbbbbbbb" - /* 1 */ "hdddddddddh" - /* 2 */ ".d..i.i..d." - /* 3 */ ".d.......d." - /* 4 */ ".d..j.j..d." - /* 5 */ "kdddddddddk" + /* 0 */ "ccccccccccc" + /* 1 */ "haaaaaaaaah" + /* 2 */ ".a..i.i..a." + /* 3 */ ".a.......a." + /* 4 */ ".a..j.j..a." + /* 5 */ "kaaaaaaaaak" /* 6 */ "lllllllllll" - // Level 4 + // Level 5 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "..........." - /* 1 */ "bbbbbbbbbbb" - /* 2 */ "hdddddddddh" - /* 3 */ ".dn.....od." - /* 4 */ "kdddddddddk" + /* 1 */ "ccccccccccc" + /* 2 */ "haaaaaaaaah" + /* 3 */ ".an.....oa." + /* 4 */ "kaaaaaaaaak" /* 5 */ "lllllllllll" /* 6 */ "..........." - // Level 5 + // Level 6 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "..........." /* 1 */ "..........." - /* 2 */ "bbbbbbbbbbb" - /* 3 */ "ddddddddddd" + /* 2 */ "ccccccccccc" + /* 3 */ "aaaaaaaaaaa" /* 4 */ "lllllllllll" /* 5 */ "..........." /* 6 */ "...........", // Connectors: - "-1: 5, 0, 0: 2\n" /* Type -1, direction Z- */, + "-1: 5, 1, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -212,23 +236,23 @@ const cPrefab::sDef g_SandVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // House11x9: // The data has been exported from the gallery Desert, area index 11, ID 115, created by xoft { // Size: - 11, 7, 9, // SizeX = 11, SizeY = 7, SizeZ = 9 + 11, 8, 9, // SizeX = 11, SizeY = 8, SizeZ = 9 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 10, 6, 8, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 11, 7, 9, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a:128: 0\n" /* sandstonestairs */ - "b:128: 2\n" /* sandstonestairs */ - "c:128: 1\n" /* sandstonestairs */ - "d: 24: 0\n" /* sandstone */ + "a: 24: 0\n" /* sandstone */ + "b:128: 0\n" /* sandstonestairs */ + "c:128: 2\n" /* sandstonestairs */ + "d:128: 1\n" /* sandstonestairs */ "e: 64: 7\n" /* wooddoorblock */ "f:102: 0\n" /* glasspane */ "g: 64:12\n" /* wooddoorblock */ @@ -243,96 +267,109 @@ const cPrefab::sDef g_SandVillagePrefabs[] = // Level 0 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "....abc...." - /* 1 */ ".ddddddddd." - /* 2 */ ".ddddddddd." - /* 3 */ ".ddddddddd." - /* 4 */ ".ddddddddd." - /* 5 */ ".ddddddddd." - /* 6 */ ".ddddddddd." - /* 7 */ ".ddddddddd." - /* 8 */ "..........." + /* 0 */ "mmmmaaammmm" + /* 1 */ "maaaaaaaaam" + /* 2 */ "maaaaaaaaam" + /* 3 */ "maaaaaaaaam" + /* 4 */ "maaaaaaaaam" + /* 5 */ "maaaaaaaaam" + /* 6 */ "maaaaaaaaam" + /* 7 */ "maaaaaaaaam" + /* 8 */ "mmmmmmmmmmm" // Level 1 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".ddddedddd." - /* 2 */ ".d.......d." - /* 3 */ ".d.......d." - /* 4 */ ".d.......d." - /* 5 */ ".d.......d." - /* 6 */ ".d.......d." - /* 7 */ ".ddddddddd." + /* 0 */ "....bcd...." + /* 1 */ ".aaaaaaaaa." + /* 2 */ ".aaaaaaaaa." + /* 3 */ ".aaaaaaaaa." + /* 4 */ ".aaaaaaaaa." + /* 5 */ ".aaaaaaaaa." + /* 6 */ ".aaaaaaaaa." + /* 7 */ ".aaaaaaaaa." /* 8 */ "..........." // Level 2 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "..........." - /* 1 */ ".dffdgdffd." + /* 1 */ ".aaaaeaaaa." + /* 2 */ ".a.......a." + /* 3 */ ".a.......a." + /* 4 */ ".a.......a." + /* 5 */ ".a.......a." + /* 6 */ ".a.......a." + /* 7 */ ".aaaaaaaaa." + /* 8 */ "..........." + + // Level 3 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".affagaffa." /* 2 */ ".f.......f." /* 3 */ ".f.......f." - /* 4 */ ".d.......d." + /* 4 */ ".a.......a." /* 5 */ ".f.......f." /* 6 */ ".f.......f." - /* 7 */ ".dfffdfffd." + /* 7 */ ".afffafffa." /* 8 */ "..........." - // Level 3 + // Level 4 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "bbbbbbbbbbb" - /* 1 */ "hdddddddddh" - /* 2 */ ".d..i.i..d." - /* 3 */ ".d.......d." - /* 4 */ ".d.......d." - /* 5 */ ".d.......d." - /* 6 */ ".d...j...d." - /* 7 */ "kdddddddddk" + /* 0 */ "ccccccccccc" + /* 1 */ "haaaaaaaaah" + /* 2 */ ".a..i.i..a." + /* 3 */ ".a.......a." + /* 4 */ ".a.......a." + /* 5 */ ".a.......a." + /* 6 */ ".a...j...a." + /* 7 */ "kaaaaaaaaak" /* 8 */ "lllllllllll" - // Level 4 + // Level 5 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "..........." - /* 1 */ "bbbbbbbbbbb" - /* 2 */ "hdddddddddh" - /* 3 */ ".d.......d." - /* 4 */ ".d.......d." - /* 5 */ ".d.......d." - /* 6 */ "kdddddddddk" + /* 1 */ "ccccccccccc" + /* 2 */ "haaaaaaaaah" + /* 3 */ ".a.......a." + /* 4 */ ".a.......a." + /* 5 */ ".a.......a." + /* 6 */ "kaaaaaaaaak" /* 7 */ "lllllllllll" /* 8 */ "..........." - // Level 5 + // Level 6 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "..........." /* 1 */ "..........." - /* 2 */ "bbbbbbbbbbb" - /* 3 */ "hdddddddddh" - /* 4 */ ".d.......d." - /* 5 */ "kdddddddddk" + /* 2 */ "ccccccccccc" + /* 3 */ "haaaaaaaaah" + /* 4 */ ".a.......a." + /* 5 */ "kaaaaaaaaak" /* 6 */ "lllllllllll" /* 7 */ "..........." /* 8 */ "..........." - // Level 6 + // Level 7 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "..........." /* 1 */ "..........." /* 2 */ "..........." - /* 3 */ "bbbbbbbbbbb" - /* 4 */ "ddddddddddd" + /* 3 */ "ccccccccccc" + /* 4 */ "aaaaaaaaaaa" /* 5 */ "lllllllllll" /* 6 */ "..........." /* 7 */ "..........." /* 8 */ "...........", // Connectors: - "-1: 5, 0, 0: 2\n" /* Type -1, direction Z- */, + "-1: 5, 1, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -358,23 +395,23 @@ const cPrefab::sDef g_SandVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // House13x7: // The data has been exported from the gallery Desert, area index 15, ID 125, created by Aloe_vera { // Size: - 13, 6, 7, // SizeX = 13, SizeY = 6, SizeZ = 7 + 13, 7, 7, // SizeX = 13, SizeY = 7, SizeZ = 7 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 12, 5, 6, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 13, 6, 7, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a:128: 0\n" /* sandstonestairs */ - "b:128: 2\n" /* sandstonestairs */ - "c:128: 1\n" /* sandstonestairs */ - "d: 24: 0\n" /* sandstone */ + "a: 24: 0\n" /* sandstone */ + "b:128: 0\n" /* sandstonestairs */ + "c:128: 2\n" /* sandstonestairs */ + "d:128: 1\n" /* sandstonestairs */ "e: 64: 7\n" /* wooddoorblock */ "f:102: 0\n" /* glasspane */ "g: 64:12\n" /* wooddoorblock */ @@ -389,71 +426,82 @@ const cPrefab::sDef g_SandVillagePrefabs[] = // Level 0 /* z\x* 111 */ /* * 0123456789012 */ - /* 0 */ ".....abc....." - /* 1 */ ".ddddddddddd." - /* 2 */ ".ddddddddddd." - /* 3 */ ".ddddddddddd." - /* 4 */ ".ddddddddddd." - /* 5 */ ".ddddddddddd." - /* 6 */ "............." + /* 0 */ "mmmmmaaammmmm" + /* 1 */ "maaaaaaaaaaam" + /* 2 */ "maaaaaaaaaaam" + /* 3 */ "maaaaaaaaaaam" + /* 4 */ "maaaaaaaaaaam" + /* 5 */ "maaaaaaaaaaam" + /* 6 */ "mmmmmmmmmmmmm" // Level 1 /* z\x* 111 */ /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ ".dddddeddddd." - /* 2 */ ".d.........d." - /* 3 */ ".d.........d." - /* 4 */ ".d.........d." - /* 5 */ ".ddddddddddd." + /* 0 */ ".....bcd....." + /* 1 */ ".aaaaaaaaaaa." + /* 2 */ ".aaaaaaaaaaa." + /* 3 */ ".aaaaaaaaaaa." + /* 4 */ ".aaaaaaaaaaa." + /* 5 */ ".aaaaaaaaaaa." /* 6 */ "............." // Level 2 /* z\x* 111 */ /* * 0123456789012 */ /* 0 */ "............." - /* 1 */ ".dfffdgdfffd." + /* 1 */ ".aaaaaeaaaaa." + /* 2 */ ".a.........a." + /* 3 */ ".a.........a." + /* 4 */ ".a.........a." + /* 5 */ ".aaaaaaaaaaa." + /* 6 */ "............." + + // Level 3 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "............." + /* 1 */ ".afffagafffa." /* 2 */ ".f.........f." /* 3 */ ".f.........f." /* 4 */ ".f.........f." - /* 5 */ ".dffdfffdffd." + /* 5 */ ".affafffaffa." /* 6 */ "............." - // Level 3 + // Level 4 /* z\x* 111 */ /* * 0123456789012 */ - /* 0 */ "bbbbbbbbbbbbb" - /* 1 */ "hdddddddddddh" - /* 2 */ ".d...i.i...d." - /* 3 */ ".d.........d." - /* 4 */ ".d..j...j..d." - /* 5 */ "kdddddddddddk" + /* 0 */ "ccccccccccccc" + /* 1 */ "haaaaaaaaaaah" + /* 2 */ ".a...i.i...a." + /* 3 */ ".a.........a." + /* 4 */ ".a..j...j..a." + /* 5 */ "kaaaaaaaaaaak" /* 6 */ "lllllllllllll" - // Level 4 + // Level 5 /* z\x* 111 */ /* * 0123456789012 */ /* 0 */ "............." - /* 1 */ "bbbbbbbbbbbbb" - /* 2 */ "hdddddddddddh" - /* 3 */ ".d.........d." - /* 4 */ "kdddddddddddk" + /* 1 */ "ccccccccccccc" + /* 2 */ "haaaaaaaaaaah" + /* 3 */ ".a.........a." + /* 4 */ "kaaaaaaaaaaak" /* 5 */ "lllllllllllll" /* 6 */ "............." - // Level 5 + // Level 6 /* z\x* 111 */ /* * 0123456789012 */ /* 0 */ "............." /* 1 */ "............." - /* 2 */ "bbbbbbbbbbbbb" - /* 3 */ "ddddddddddddd" + /* 2 */ "ccccccccccccc" + /* 3 */ "aaaaaaaaaaaaa" /* 4 */ "lllllllllllll" /* 5 */ "............." /* 6 */ ".............", // Connectors: - "-1: 6, 0, 0: 2\n" /* Type -1, direction Z- */, + "-1: 6, 1, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -479,23 +527,23 @@ const cPrefab::sDef g_SandVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // House13x9: // The data has been exported from the gallery Desert, area index 12, ID 116, created by xoft { // Size: - 13, 7, 9, // SizeX = 13, SizeY = 7, SizeZ = 9 + 13, 8, 9, // SizeX = 13, SizeY = 8, SizeZ = 9 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 12, 6, 8, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 13, 7, 9, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a:128: 0\n" /* sandstonestairs */ - "b:128: 2\n" /* sandstonestairs */ - "c:128: 1\n" /* sandstonestairs */ - "d: 24: 0\n" /* sandstone */ + "a: 24: 0\n" /* sandstone */ + "b:128: 0\n" /* sandstonestairs */ + "c:128: 2\n" /* sandstonestairs */ + "d:128: 1\n" /* sandstonestairs */ "e: 64: 7\n" /* wooddoorblock */ "f:102: 0\n" /* glasspane */ "g: 64:12\n" /* wooddoorblock */ @@ -510,96 +558,109 @@ const cPrefab::sDef g_SandVillagePrefabs[] = // Level 0 /* z\x* 111 */ /* * 0123456789012 */ - /* 0 */ ".....abc....." - /* 1 */ ".ddddddddddd." - /* 2 */ ".ddddddddddd." - /* 3 */ ".ddddddddddd." - /* 4 */ ".ddddddddddd." - /* 5 */ ".ddddddddddd." - /* 6 */ ".ddddddddddd." - /* 7 */ ".ddddddddddd." - /* 8 */ "............." + /* 0 */ "mmmmmaaammmmm" + /* 1 */ "maaaaaaaaaaam" + /* 2 */ "maaaaaaaaaaam" + /* 3 */ "maaaaaaaaaaam" + /* 4 */ "maaaaaaaaaaam" + /* 5 */ "maaaaaaaaaaam" + /* 6 */ "maaaaaaaaaaam" + /* 7 */ "maaaaaaaaaaam" + /* 8 */ "mmmmmmmmmmmmm" // Level 1 /* z\x* 111 */ /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ ".dddddeddddd." - /* 2 */ ".d.........d." - /* 3 */ ".d.........d." - /* 4 */ ".d.........d." - /* 5 */ ".d.........d." - /* 6 */ ".d.........d." - /* 7 */ ".ddddddddddd." + /* 0 */ ".....bcd....." + /* 1 */ ".aaaaaaaaaaa." + /* 2 */ ".aaaaaaaaaaa." + /* 3 */ ".aaaaaaaaaaa." + /* 4 */ ".aaaaaaaaaaa." + /* 5 */ ".aaaaaaaaaaa." + /* 6 */ ".aaaaaaaaaaa." + /* 7 */ ".aaaaaaaaaaa." /* 8 */ "............." // Level 2 /* z\x* 111 */ /* * 0123456789012 */ /* 0 */ "............." - /* 1 */ ".dfffdgdfffd." + /* 1 */ ".aaaaaeaaaaa." + /* 2 */ ".a.........a." + /* 3 */ ".a.........a." + /* 4 */ ".a.........a." + /* 5 */ ".a.........a." + /* 6 */ ".a.........a." + /* 7 */ ".aaaaaaaaaaa." + /* 8 */ "............." + + // Level 3 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "............." + /* 1 */ ".afffagafffa." /* 2 */ ".f.........f." /* 3 */ ".f.........f." - /* 4 */ ".d.........d." + /* 4 */ ".a.........a." /* 5 */ ".f.........f." /* 6 */ ".f.........f." - /* 7 */ ".dffdffdfffd." + /* 7 */ ".affaffafffa." /* 8 */ "............." - // Level 3 + // Level 4 /* z\x* 111 */ /* * 0123456789012 */ - /* 0 */ "bbbbbbbbbbbbb" - /* 1 */ "hdddddddddddh" - /* 2 */ ".d...i.i...d." - /* 3 */ ".d.........d." - /* 4 */ ".d.........d." - /* 5 */ ".d.........d." - /* 6 */ ".d..j..j...d." - /* 7 */ "kdddddddddddk" + /* 0 */ "ccccccccccccc" + /* 1 */ "haaaaaaaaaaah" + /* 2 */ ".a...i.i...a." + /* 3 */ ".a.........a." + /* 4 */ ".a.........a." + /* 5 */ ".a.........a." + /* 6 */ ".a..j..j...a." + /* 7 */ "kaaaaaaaaaaak" /* 8 */ "lllllllllllll" - // Level 4 + // Level 5 /* z\x* 111 */ /* * 0123456789012 */ /* 0 */ "............." - /* 1 */ "bbbbbbbbbbbbb" - /* 2 */ "hdddddddddddh" - /* 3 */ ".d.........d." - /* 4 */ ".d.........d." - /* 5 */ ".d.........d." - /* 6 */ "kdddddddddddk" + /* 1 */ "ccccccccccccc" + /* 2 */ "haaaaaaaaaaah" + /* 3 */ ".a.........a." + /* 4 */ ".a.........a." + /* 5 */ ".a.........a." + /* 6 */ "kaaaaaaaaaaak" /* 7 */ "lllllllllllll" /* 8 */ "............." - // Level 5 + // Level 6 /* z\x* 111 */ /* * 0123456789012 */ /* 0 */ "............." /* 1 */ "............." - /* 2 */ "bbbbbbbbbbbbb" - /* 3 */ "hdddddddddddh" - /* 4 */ ".d.........d." - /* 5 */ "kdddddddddddk" + /* 2 */ "ccccccccccccc" + /* 3 */ "haaaaaaaaaaah" + /* 4 */ ".a.........a." + /* 5 */ "kaaaaaaaaaaak" /* 6 */ "lllllllllllll" /* 7 */ "............." /* 8 */ "............." - // Level 6 + // Level 7 /* z\x* 111 */ /* * 0123456789012 */ /* 0 */ "............." /* 1 */ "............." /* 2 */ "............." - /* 3 */ "bbbbbbbbbbbbb" - /* 4 */ "ddddddddddddd" + /* 3 */ "ccccccccccccc" + /* 4 */ "aaaaaaaaaaaaa" /* 5 */ "lllllllllllll" /* 6 */ "............." /* 7 */ "............." /* 8 */ ".............", // Connectors: - "-1: 6, 0, 0: 2\n" /* Type -1, direction Z- */, + "-1: 6, 1, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -625,23 +686,23 @@ const cPrefab::sDef g_SandVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // House15x9: // The data has been exported from the gallery Desert, area index 13, ID 118, created by xoft { // Size: - 15, 7, 9, // SizeX = 15, SizeY = 7, SizeZ = 9 + 15, 8, 9, // SizeX = 15, SizeY = 8, SizeZ = 9 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 14, 6, 8, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 15, 7, 9, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a:128: 0\n" /* sandstonestairs */ - "b:128: 2\n" /* sandstonestairs */ - "c:128: 1\n" /* sandstonestairs */ - "d: 24: 0\n" /* sandstone */ + "a: 24: 0\n" /* sandstone */ + "b:128: 0\n" /* sandstonestairs */ + "c:128: 2\n" /* sandstonestairs */ + "d:128: 1\n" /* sandstonestairs */ "e: 64: 7\n" /* wooddoorblock */ "f:102: 0\n" /* glasspane */ "g: 64:12\n" /* wooddoorblock */ @@ -656,96 +717,109 @@ const cPrefab::sDef g_SandVillagePrefabs[] = // Level 0 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ ".....abc......." - /* 1 */ ".ddddddddddddd." - /* 2 */ ".ddddddddddddd." - /* 3 */ ".ddddddddddddd." - /* 4 */ ".ddddddddddddd." - /* 5 */ ".ddddddddddddd." - /* 6 */ ".ddddddddddddd." - /* 7 */ ".ddddddddddddd." - /* 8 */ "..............." + /* 0 */ "mmmmmaaammmmmmm" + /* 1 */ "maaaaaaaaaaaaam" + /* 2 */ "maaaaaaaaaaaaam" + /* 3 */ "maaaaaaaaaaaaam" + /* 4 */ "maaaaaaaaaaaaam" + /* 5 */ "maaaaaaaaaaaaam" + /* 6 */ "maaaaaaaaaaaaam" + /* 7 */ "maaaaaaaaaaaaam" + /* 8 */ "mmmmmmmmmmmmmmm" // Level 1 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".dddddeddddddd." - /* 2 */ ".d...........d." - /* 3 */ ".d...........d." - /* 4 */ ".d...........d." - /* 5 */ ".d...........d." - /* 6 */ ".d...........d." - /* 7 */ ".ddddddddddddd." + /* 0 */ ".....bcd......." + /* 1 */ ".aaaaaaaaaaaaa." + /* 2 */ ".aaaaaaaaaaaaa." + /* 3 */ ".aaaaaaaaaaaaa." + /* 4 */ ".aaaaaaaaaaaaa." + /* 5 */ ".aaaaaaaaaaaaa." + /* 6 */ ".aaaaaaaaaaaaa." + /* 7 */ ".aaaaaaaaaaaaa." /* 8 */ "..............." // Level 2 /* z\x* 11111 */ /* * 012345678901234 */ /* 0 */ "..............." - /* 1 */ ".dfffdgdffdffd." + /* 1 */ ".aaaaaeaaaaaaa." + /* 2 */ ".a...........a." + /* 3 */ ".a...........a." + /* 4 */ ".a...........a." + /* 5 */ ".a...........a." + /* 6 */ ".a...........a." + /* 7 */ ".aaaaaaaaaaaaa." + /* 8 */ "..............." + + // Level 3 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ ".afffagaffaffa." /* 2 */ ".f...........f." /* 3 */ ".f...........f." - /* 4 */ ".d...........d." + /* 4 */ ".a...........a." /* 5 */ ".f...........f." /* 6 */ ".f...........f." - /* 7 */ ".dffdffdffdffd." + /* 7 */ ".affaffaffaffa." /* 8 */ "..............." - // Level 3 + // Level 4 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "bbbbbbbbbbbbbbb" - /* 1 */ "hdddddddddddddh" - /* 2 */ ".d...i.i..i..d." - /* 3 */ ".d...........d." - /* 4 */ ".d...........d." - /* 5 */ ".d...........d." - /* 6 */ ".d..j..j..j..d." - /* 7 */ "kdddddddddddddk" + /* 0 */ "ccccccccccccccc" + /* 1 */ "haaaaaaaaaaaaah" + /* 2 */ ".a...i.i..i..a." + /* 3 */ ".a...........a." + /* 4 */ ".a...........a." + /* 5 */ ".a...........a." + /* 6 */ ".a..j..j..j..a." + /* 7 */ "kaaaaaaaaaaaaak" /* 8 */ "lllllllllllllll" - // Level 4 + // Level 5 /* z\x* 11111 */ /* * 012345678901234 */ /* 0 */ "..............." - /* 1 */ "bbbbbbbbbbbbbbb" - /* 2 */ "hdddddddddddddh" - /* 3 */ ".d...........d." - /* 4 */ ".d...........d." - /* 5 */ ".d...........d." - /* 6 */ "kdddddddddddddk" + /* 1 */ "ccccccccccccccc" + /* 2 */ "haaaaaaaaaaaaah" + /* 3 */ ".a...........a." + /* 4 */ ".a...........a." + /* 5 */ ".a...........a." + /* 6 */ "kaaaaaaaaaaaaak" /* 7 */ "lllllllllllllll" /* 8 */ "..............." - // Level 5 + // Level 6 /* z\x* 11111 */ /* * 012345678901234 */ /* 0 */ "..............." /* 1 */ "..............." - /* 2 */ "bbbbbbbbbbbbbbb" - /* 3 */ "hdddddddddddddh" - /* 4 */ ".d...........d." - /* 5 */ "kdddddddddddddk" + /* 2 */ "ccccccccccccccc" + /* 3 */ "haaaaaaaaaaaaah" + /* 4 */ ".a...........a." + /* 5 */ "kaaaaaaaaaaaaak" /* 6 */ "lllllllllllllll" /* 7 */ "..............." /* 8 */ "..............." - // Level 6 + // Level 7 /* z\x* 11111 */ /* * 012345678901234 */ /* 0 */ "..............." /* 1 */ "..............." /* 2 */ "..............." - /* 3 */ "bbbbbbbbbbbbbbb" - /* 4 */ "ddddddddddddddd" + /* 3 */ "ccccccccccccccc" + /* 4 */ "aaaaaaaaaaaaaaa" /* 5 */ "lllllllllllllll" /* 6 */ "..............." /* 7 */ "..............." /* 8 */ "...............", // Connectors: - "-1: 6, 0, 0: 2\n" /* Type -1, direction Z- */, + "-1: 6, 1, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -771,23 +845,23 @@ const cPrefab::sDef g_SandVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // House16x9: // The data has been exported from the gallery Desert, area index 16, ID 126, created by Aloe_vera { // Size: - 16, 7, 9, // SizeX = 16, SizeY = 7, SizeZ = 9 + 16, 8, 9, // SizeX = 16, SizeY = 8, SizeZ = 9 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 15, 6, 8, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 16, 7, 9, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a:128: 0\n" /* sandstonestairs */ - "b:128: 2\n" /* sandstonestairs */ - "c:128: 1\n" /* sandstonestairs */ - "d: 24: 0\n" /* sandstone */ + "a: 24: 0\n" /* sandstone */ + "b:128: 0\n" /* sandstonestairs */ + "c:128: 2\n" /* sandstonestairs */ + "d:128: 1\n" /* sandstonestairs */ "e: 64: 7\n" /* wooddoorblock */ "f:102: 0\n" /* glasspane */ "g: 64:12\n" /* wooddoorblock */ @@ -802,96 +876,109 @@ const cPrefab::sDef g_SandVillagePrefabs[] = // Level 0 /* z\x* 111111 */ /* * 0123456789012345 */ - /* 0 */ "........abc....." - /* 1 */ ".dddddddddddddd." - /* 2 */ ".dddddddddddddd." - /* 3 */ ".dddddddddddddd." - /* 4 */ ".dddddddddddddd." - /* 5 */ ".dddddddddddddd." - /* 6 */ ".dddddddddddddd." - /* 7 */ ".dddddddddddddd." - /* 8 */ "................" + /* 0 */ "mmmmmmmmaaammmmm" + /* 1 */ "maaaaaaaaaaaaaam" + /* 2 */ "maaaaaaaaaaaaaam" + /* 3 */ "maaaaaaaaaaaaaam" + /* 4 */ "maaaaaaaaaaaaaam" + /* 5 */ "maaaaaaaaaaaaaam" + /* 6 */ "maaaaaaaaaaaaaam" + /* 7 */ "maaaaaaaaaaaaaam" + /* 8 */ "mmmmmmmmmmmmmmmm" // Level 1 /* z\x* 111111 */ /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ ".ddddddddeddddd." - /* 2 */ ".d............d." - /* 3 */ ".d............d." - /* 4 */ ".d............d." - /* 5 */ ".d............d." - /* 6 */ ".d............d." - /* 7 */ ".dddddddddddddd." + /* 0 */ "........bcd....." + /* 1 */ ".aaaaaaaaaaaaaa." + /* 2 */ ".aaaaaaaaaaaaaa." + /* 3 */ ".aaaaaaaaaaaaaa." + /* 4 */ ".aaaaaaaaaaaaaa." + /* 5 */ ".aaaaaaaaaaaaaa." + /* 6 */ ".aaaaaaaaaaaaaa." + /* 7 */ ".aaaaaaaaaaaaaa." /* 8 */ "................" // Level 2 /* z\x* 111111 */ /* * 0123456789012345 */ /* 0 */ "................" - /* 1 */ ".dffdfffdgdfffd." + /* 1 */ ".aaaaaaaaeaaaaa." + /* 2 */ ".a............a." + /* 3 */ ".a............a." + /* 4 */ ".a............a." + /* 5 */ ".a............a." + /* 6 */ ".a............a." + /* 7 */ ".aaaaaaaaaaaaaa." + /* 8 */ "................" + + // Level 3 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "................" + /* 1 */ ".affafffagafffa." /* 2 */ ".f............f." /* 3 */ ".f............f." - /* 4 */ ".d............d." + /* 4 */ ".a............a." /* 5 */ ".f............f." /* 6 */ ".f............f." - /* 7 */ ".dffdffdfffdffd." + /* 7 */ ".affaffafffaffa." /* 8 */ "................" - // Level 3 + // Level 4 /* z\x* 111111 */ /* * 0123456789012345 */ - /* 0 */ "bbbbbbbbbbbbbbbb" - /* 1 */ "hddddddddddddddh" - /* 2 */ ".d..i...i.i...d." - /* 3 */ ".d............d." - /* 4 */ ".d............d." - /* 5 */ ".d............d." - /* 6 */ ".d..j..j...j..d." - /* 7 */ "kddddddddddddddk" + /* 0 */ "cccccccccccccccc" + /* 1 */ "haaaaaaaaaaaaaah" + /* 2 */ ".a..i...i.i...a." + /* 3 */ ".a............a." + /* 4 */ ".a............a." + /* 5 */ ".a............a." + /* 6 */ ".a..j..j...j..a." + /* 7 */ "kaaaaaaaaaaaaaak" /* 8 */ "llllllllllllllll" - // Level 4 + // Level 5 /* z\x* 111111 */ /* * 0123456789012345 */ /* 0 */ "................" - /* 1 */ "bbbbbbbbbbbbbbbb" - /* 2 */ "hddddddddddddddh" - /* 3 */ ".d............d." - /* 4 */ ".d............d." - /* 5 */ ".d............d." - /* 6 */ "kddddddddddddddk" + /* 1 */ "cccccccccccccccc" + /* 2 */ "haaaaaaaaaaaaaah" + /* 3 */ ".a............a." + /* 4 */ ".a............a." + /* 5 */ ".a............a." + /* 6 */ "kaaaaaaaaaaaaaak" /* 7 */ "llllllllllllllll" /* 8 */ "................" - // Level 5 + // Level 6 /* z\x* 111111 */ /* * 0123456789012345 */ /* 0 */ "................" /* 1 */ "................" - /* 2 */ "bbbbbbbbbbbbbbbb" - /* 3 */ "hddddddddddddddh" - /* 4 */ ".d............d." - /* 5 */ "kddddddddddddddk" + /* 2 */ "cccccccccccccccc" + /* 3 */ "haaaaaaaaaaaaaah" + /* 4 */ ".a............a." + /* 5 */ "kaaaaaaaaaaaaaak" /* 6 */ "llllllllllllllll" /* 7 */ "................" /* 8 */ "................" - // Level 6 + // Level 7 /* z\x* 111111 */ /* * 0123456789012345 */ /* 0 */ "................" /* 1 */ "................" /* 2 */ "................" - /* 3 */ "bbbbbbbbbbbbbbbb" - /* 4 */ "dddddddddddddddd" + /* 3 */ "cccccccccccccccc" + /* 4 */ "aaaaaaaaaaaaaaaa" /* 5 */ "llllllllllllllll" /* 6 */ "................" /* 7 */ "................" /* 8 */ "................", // Connectors: - "-1: 9, 0, 0: 2\n" /* Type -1, direction Z- */, + "-1: 9, 1, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -917,23 +1004,23 @@ const cPrefab::sDef g_SandVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // House7x7: // The data has been exported from the gallery Desert, area index 8, ID 112, created by Aloe_vera { // Size: - 7, 6, 7, // SizeX = 7, SizeY = 6, SizeZ = 7 + 7, 7, 7, // SizeX = 7, SizeY = 7, SizeZ = 7 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 6, 5, 6, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 7, 6, 7, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a:128: 0\n" /* sandstonestairs */ - "b:128: 2\n" /* sandstonestairs */ - "c:128: 1\n" /* sandstonestairs */ - "d: 24: 0\n" /* sandstone */ + "a: 24: 0\n" /* sandstone */ + "b:128: 0\n" /* sandstonestairs */ + "c:128: 2\n" /* sandstonestairs */ + "d:128: 1\n" /* sandstonestairs */ "e: 64: 7\n" /* wooddoorblock */ "f:102: 0\n" /* glasspane */ "g: 64:12\n" /* wooddoorblock */ @@ -946,66 +1033,76 @@ const cPrefab::sDef g_SandVillagePrefabs[] = // Block data: // Level 0 /* z\x* 0123456 */ - /* 0 */ "...abc." - /* 1 */ ".ddddd." - /* 2 */ ".ddddd." - /* 3 */ ".ddddd." - /* 4 */ ".ddddd." - /* 5 */ ".ddddd." - /* 6 */ "......." + /* 0 */ "mmmaaam" + /* 1 */ "maaaaam" + /* 2 */ "maaaaam" + /* 3 */ "maaaaam" + /* 4 */ "maaaaam" + /* 5 */ "maaaaam" + /* 6 */ "mmmmmmm" // Level 1 /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".ddded." - /* 2 */ ".d...d." - /* 3 */ ".d...d." - /* 4 */ ".d...d." - /* 5 */ ".ddddd." + /* 0 */ "...bcd." + /* 1 */ ".aaaaa." + /* 2 */ ".aaaaa." + /* 3 */ ".aaaaa." + /* 4 */ ".aaaaa." + /* 5 */ ".aaaaa." /* 6 */ "......." // Level 2 /* z\x* 0123456 */ /* 0 */ "......." - /* 1 */ ".dfdgd." + /* 1 */ ".aaaea." + /* 2 */ ".a...a." + /* 3 */ ".a...a." + /* 4 */ ".a...a." + /* 5 */ ".aaaaa." + /* 6 */ "......." + + // Level 3 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".afaga." /* 2 */ ".f...f." /* 3 */ ".f...f." /* 4 */ ".f...f." - /* 5 */ ".dfffd." + /* 5 */ ".afffa." /* 6 */ "......." - // Level 3 + // Level 4 /* z\x* 0123456 */ - /* 0 */ "bbbbbbb" - /* 1 */ "hdddddh" - /* 2 */ ".d.i.d." - /* 3 */ ".d...d." - /* 4 */ ".d...d." - /* 5 */ "jdddddj" + /* 0 */ "ccccccc" + /* 1 */ "haaaaah" + /* 2 */ ".a.i.a." + /* 3 */ ".a...a." + /* 4 */ ".a...a." + /* 5 */ "jaaaaaj" /* 6 */ "kkkkkkk" - // Level 4 + // Level 5 /* z\x* 0123456 */ /* 0 */ "......." - /* 1 */ "bbbbbbb" - /* 2 */ "hdddddh" - /* 3 */ ".d...d." - /* 4 */ "jdddddj" + /* 1 */ "ccccccc" + /* 2 */ "haaaaah" + /* 3 */ ".a...a." + /* 4 */ "jaaaaaj" /* 5 */ "kkkkkkk" /* 6 */ "......." - // Level 5 + // Level 6 /* z\x* 0123456 */ /* 0 */ "......." /* 1 */ "......." - /* 2 */ "bbbbbbb" - /* 3 */ "ddddddd" + /* 2 */ "ccccccc" + /* 3 */ "aaaaaaa" /* 4 */ "kkkkkkk" /* 5 */ "......." /* 6 */ ".......", // Connectors: - "-1: 4, 0, 0: 2\n" /* Type -1, direction Z- */, + "-1: 4, 1, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1031,23 +1128,23 @@ const cPrefab::sDef g_SandVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // House9x7: // The data has been exported from the gallery Desert, area index 9, ID 113, created by xoft { // Size: - 9, 6, 7, // SizeX = 9, SizeY = 6, SizeZ = 7 + 9, 7, 7, // SizeX = 9, SizeY = 7, SizeZ = 7 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 8, 5, 6, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 9, 6, 7, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a:128: 0\n" /* sandstonestairs */ - "b:128: 2\n" /* sandstonestairs */ - "c:128: 1\n" /* sandstonestairs */ - "d: 24: 0\n" /* sandstone */ + "a: 24: 0\n" /* sandstone */ + "b:128: 0\n" /* sandstonestairs */ + "c:128: 2\n" /* sandstonestairs */ + "d:128: 1\n" /* sandstonestairs */ "e: 64: 7\n" /* wooddoorblock */ "f:102: 0\n" /* glasspane */ "g: 64:12\n" /* wooddoorblock */ @@ -1061,66 +1158,76 @@ const cPrefab::sDef g_SandVillagePrefabs[] = // Block data: // Level 0 /* z\x* 012345678 */ - /* 0 */ "...abc..." - /* 1 */ ".ddddddd." - /* 2 */ ".ddddddd." - /* 3 */ ".ddddddd." - /* 4 */ ".ddddddd." - /* 5 */ ".ddddddd." - /* 6 */ "........." + /* 0 */ "mmmaaammm" + /* 1 */ "maaaaaaam" + /* 2 */ "maaaaaaam" + /* 3 */ "maaaaaaam" + /* 4 */ "maaaaaaam" + /* 5 */ "maaaaaaam" + /* 6 */ "mmmmmmmmm" // Level 1 /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ ".dddeddd." - /* 2 */ ".d.....d." - /* 3 */ ".d.....d." - /* 4 */ ".d.....d." - /* 5 */ ".ddddddd." + /* 0 */ "...bcd..." + /* 1 */ ".aaaaaaa." + /* 2 */ ".aaaaaaa." + /* 3 */ ".aaaaaaa." + /* 4 */ ".aaaaaaa." + /* 5 */ ".aaaaaaa." /* 6 */ "........." // Level 2 /* z\x* 012345678 */ /* 0 */ "........." - /* 1 */ ".dfdgdfd." + /* 1 */ ".aaaeaaa." + /* 2 */ ".a.....a." + /* 3 */ ".a.....a." + /* 4 */ ".a.....a." + /* 5 */ ".aaaaaaa." + /* 6 */ "........." + + // Level 3 + /* z\x* 012345678 */ + /* 0 */ "........." + /* 1 */ ".afagafa." /* 2 */ ".f.....f." /* 3 */ ".f.....f." /* 4 */ ".f.....f." - /* 5 */ ".dffdffd." + /* 5 */ ".affaffa." /* 6 */ "........." - // Level 3 + // Level 4 /* z\x* 012345678 */ - /* 0 */ "bbbbbbbbb" - /* 1 */ "hdddddddh" - /* 2 */ ".d.i.i.d." - /* 3 */ ".d.....d." - /* 4 */ ".d..j..d." - /* 5 */ "kdddddddk" + /* 0 */ "ccccccccc" + /* 1 */ "haaaaaaah" + /* 2 */ ".a.i.i.a." + /* 3 */ ".a.....a." + /* 4 */ ".a..j..a." + /* 5 */ "kaaaaaaak" /* 6 */ "lllllllll" - // Level 4 + // Level 5 /* z\x* 012345678 */ /* 0 */ "........." - /* 1 */ "bbbbbbbbb" - /* 2 */ "hdddddddh" - /* 3 */ ".d.....d." - /* 4 */ "kdddddddk" + /* 1 */ "ccccccccc" + /* 2 */ "haaaaaaah" + /* 3 */ ".a.....a." + /* 4 */ "kaaaaaaak" /* 5 */ "lllllllll" /* 6 */ "........." - // Level 5 + // Level 6 /* z\x* 012345678 */ /* 0 */ "........." /* 1 */ "........." - /* 2 */ "bbbbbbbbb" - /* 3 */ "ddddddddd" + /* 2 */ "ccccccccc" + /* 3 */ "aaaaaaaaa" /* 4 */ "lllllllll" /* 5 */ "........." /* 6 */ ".........", // Connectors: - "-1: 4, 0, 0: 2\n" /* Type -1, direction Z- */, + "-1: 4, 1, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1146,23 +1253,23 @@ const cPrefab::sDef g_SandVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // House9x9: // The data has been exported from the gallery Desert, area index 10, ID 114, created by xoft { // Size: - 9, 7, 9, // SizeX = 9, SizeY = 7, SizeZ = 9 + 9, 8, 9, // SizeX = 9, SizeY = 8, SizeZ = 9 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 8, 6, 8, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 9, 7, 9, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a:128: 0\n" /* sandstonestairs */ - "b:128: 2\n" /* sandstonestairs */ - "c:128: 1\n" /* sandstonestairs */ - "d: 24: 0\n" /* sandstone */ + "a: 24: 0\n" /* sandstone */ + "b:128: 0\n" /* sandstonestairs */ + "c:128: 2\n" /* sandstonestairs */ + "d:128: 1\n" /* sandstonestairs */ "e: 64: 7\n" /* wooddoorblock */ "f:102: 0\n" /* glasspane */ "g: 64:12\n" /* wooddoorblock */ @@ -1176,90 +1283,102 @@ const cPrefab::sDef g_SandVillagePrefabs[] = // Block data: // Level 0 /* z\x* 012345678 */ - /* 0 */ "...abc..." - /* 1 */ ".ddddddd." - /* 2 */ ".ddddddd." - /* 3 */ ".ddddddd." - /* 4 */ ".ddddddd." - /* 5 */ ".ddddddd." - /* 6 */ ".ddddddd." - /* 7 */ ".ddddddd." - /* 8 */ "........." + /* 0 */ "mmmaaammm" + /* 1 */ "maaaaaaam" + /* 2 */ "maaaaaaam" + /* 3 */ "maaaaaaam" + /* 4 */ "maaaaaaam" + /* 5 */ "maaaaaaam" + /* 6 */ "maaaaaaam" + /* 7 */ "maaaaaaam" + /* 8 */ "mmmmmmmmm" // Level 1 /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ ".dddeddd." - /* 2 */ ".d.....d." - /* 3 */ ".d.....d." - /* 4 */ ".d.....d." - /* 5 */ ".d.....d." - /* 6 */ ".d.....d." - /* 7 */ ".ddddddd." + /* 0 */ "...bcd..." + /* 1 */ ".aaaaaaa." + /* 2 */ ".aaaaaaa." + /* 3 */ ".aaaaaaa." + /* 4 */ ".aaaaaaa." + /* 5 */ ".aaaaaaa." + /* 6 */ ".aaaaaaa." + /* 7 */ ".aaaaaaa." /* 8 */ "........." // Level 2 /* z\x* 012345678 */ /* 0 */ "........." - /* 1 */ ".dfdgdfd." + /* 1 */ ".aaaeaaa." + /* 2 */ ".a.....a." + /* 3 */ ".a.....a." + /* 4 */ ".a.....a." + /* 5 */ ".a.....a." + /* 6 */ ".a.....a." + /* 7 */ ".aaaaaaa." + /* 8 */ "........." + + // Level 3 + /* z\x* 012345678 */ + /* 0 */ "........." + /* 1 */ ".afagafa." /* 2 */ ".f.....f." /* 3 */ ".f.....f." - /* 4 */ ".d.....d." + /* 4 */ ".a.....a." /* 5 */ ".f.....f." /* 6 */ ".f.....f." - /* 7 */ ".dffdffd." + /* 7 */ ".affaffa." /* 8 */ "........." - // Level 3 + // Level 4 /* z\x* 012345678 */ - /* 0 */ "bbbbbbbbb" - /* 1 */ "hdddddddh" - /* 2 */ ".d.i.i.d." - /* 3 */ ".d.....d." - /* 4 */ ".d.....d." - /* 5 */ ".d.....d." - /* 6 */ ".d..j..d." - /* 7 */ "kdddddddk" + /* 0 */ "ccccccccc" + /* 1 */ "haaaaaaah" + /* 2 */ ".a.i.i.a." + /* 3 */ ".a.....a." + /* 4 */ ".a.....a." + /* 5 */ ".a.....a." + /* 6 */ ".a..j..a." + /* 7 */ "kaaaaaaak" /* 8 */ "lllllllll" - // Level 4 + // Level 5 /* z\x* 012345678 */ /* 0 */ "........." - /* 1 */ "bbbbbbbbb" - /* 2 */ "hdddddddh" - /* 3 */ ".d.....d." - /* 4 */ ".d.....d." - /* 5 */ ".d.....d." - /* 6 */ "kdddddddk" + /* 1 */ "ccccccccc" + /* 2 */ "haaaaaaah" + /* 3 */ ".a.....a." + /* 4 */ ".a.....a." + /* 5 */ ".a.....a." + /* 6 */ "kaaaaaaak" /* 7 */ "lllllllll" /* 8 */ "........." - // Level 5 + // Level 6 /* z\x* 012345678 */ /* 0 */ "........." /* 1 */ "........." - /* 2 */ "bbbbbbbbb" - /* 3 */ "hdddddddh" - /* 4 */ ".d.....d." - /* 5 */ "kdddddddk" + /* 2 */ "ccccccccc" + /* 3 */ "haaaaaaah" + /* 4 */ ".a.....a." + /* 5 */ "kaaaaaaak" /* 6 */ "lllllllll" /* 7 */ "........." /* 8 */ "........." - // Level 6 + // Level 7 /* z\x* 012345678 */ /* 0 */ "........." /* 1 */ "........." /* 2 */ "........." - /* 3 */ "bbbbbbbbb" - /* 4 */ "ddddddddd" + /* 3 */ "ccccccccc" + /* 4 */ "aaaaaaaaa" /* 5 */ "lllllllll" /* 6 */ "........." /* 7 */ "........." /* 8 */ ".........", // Connectors: - "-1: 4, 0, 0: 2\n" /* Type -1, direction Z- */, + "-1: 4, 1, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1285,152 +1404,169 @@ const cPrefab::sDef g_SandVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // HouseL14x12: // The data has been exported from the gallery Desert, area index 14, ID 124, created by Aloe_vera { // Size: - 14, 7, 12, // SizeX = 14, SizeY = 7, SizeZ = 12 + 14, 8, 12, // SizeX = 14, SizeY = 8, SizeZ = 12 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 13, 6, 11, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 14, 7, 12, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a:128: 0\n" /* sandstonestairs */ - "b:128: 2\n" /* sandstonestairs */ - "c:128: 1\n" /* sandstonestairs */ - "d: 24: 0\n" /* sandstone */ + "a: 24: 0\n" /* sandstone */ + "b:128: 0\n" /* sandstonestairs */ + "c:128: 2\n" /* sandstonestairs */ + "d:128: 1\n" /* sandstonestairs */ "e:128: 3\n" /* sandstonestairs */ - "f: 64: 7\n" /* wooddoorblock */ - "g:102: 0\n" /* glasspane */ - "h: 64:12\n" /* wooddoorblock */ - "i:128: 7\n" /* sandstonestairs */ - "j: 50: 3\n" /* torch */ - "k: 50: 2\n" /* torch */ - "l: 50: 4\n" /* torch */ + "f: 64: 3\n" /* wooddoorblock */ + "g: 64: 1\n" /* wooddoorblock */ + "h:102: 0\n" /* glasspane */ + "i: 64: 8\n" /* wooddoorblock */ + "j:128: 7\n" /* sandstonestairs */ + "k: 50: 3\n" /* torch */ + "l: 50: 2\n" /* torch */ "m: 19: 0\n" /* sponge */ - "n:128: 6\n" /* sandstonestairs */ - "o: 50: 1\n" /* torch */ - "p:128: 5\n" /* sandstonestairs */ - "q:128: 4\n" /* sandstonestairs */, + "n: 50: 4\n" /* torch */ + "o:128: 6\n" /* sandstonestairs */ + "p: 50: 1\n" /* torch */ + "q:128: 5\n" /* sandstonestairs */ + "r:128: 4\n" /* sandstonestairs */, // Block data: // Level 0 /* z\x* 1111 */ /* * 01234567890123 */ - /* 0 */ "....abc......." - /* 1 */ ".dddddddddddd." - /* 2 */ ".dddddddddddd." - /* 3 */ ".dddddddddddd." - /* 4 */ ".dddddddddddd." - /* 5 */ ".dddddddddddd." - /* 6 */ ".dddddddddddd." - /* 7 */ ".dddddddddddd." - /* 8 */ "....aeddddddd." - /* 9 */ "mmmmm.ddddddd." - /* 10 */ "mmmmm.ddddddd." - /* 11 */ "mmmmm........." + /* 0 */ "mmmmaaammmmmmm" + /* 1 */ "maaaaaaaaaaaam" + /* 2 */ "maaaaaaaaaaaam" + /* 3 */ "maaaaaaaaaaaam" + /* 4 */ "maaaaaaaaaaaam" + /* 5 */ "maaaaaaaaaaaam" + /* 6 */ "maaaaaaaaaaaam" + /* 7 */ "maaaaaaaaaaaam" + /* 8 */ "mmmmaaaaaaaaam" + /* 9 */ "mmmmmmaaaaaaam" + /* 10 */ "mmmmmmaaaaaaam" + /* 11 */ "mmmmmmmmmmmmmm" // Level 1 /* z\x* 1111 */ /* * 01234567890123 */ - /* 0 */ ".............." - /* 1 */ ".ddddfddddddd." - /* 2 */ ".d..........d." - /* 3 */ ".d..........d." - /* 4 */ ".d..........d." - /* 5 */ ".d..........d." - /* 6 */ ".d..........d." - /* 7 */ ".ddddfd.....d." - /* 8 */ "......d.....d." - /* 9 */ "mmmmm.d.....d." - /* 10 */ "mmmmm.ddddddd." + /* 0 */ "....bcd......." + /* 1 */ ".aaaaaaaaaaaa." + /* 2 */ ".aaaaaaaaaaaa." + /* 3 */ ".aaaaaaaaaaaa." + /* 4 */ ".aaaaaaaaaaaa." + /* 5 */ ".aaaaaaaaaaaa." + /* 6 */ ".aaaaaaaaaaaa." + /* 7 */ ".aaaaaaaaaaaa." + /* 8 */ "....beaaaaaaa." + /* 9 */ "mmmmm.aaaaaaa." + /* 10 */ "mmmmm.aaaaaaa." /* 11 */ "mmmmm........." // Level 2 /* z\x* 1111 */ /* * 01234567890123 */ /* 0 */ ".............." - /* 1 */ ".dggdhdggdggd." - /* 2 */ ".g..........g." - /* 3 */ ".g..........g." - /* 4 */ ".d..........d." - /* 5 */ ".g..........g." - /* 6 */ ".g..........g." - /* 7 */ ".dggdhd.....d." - /* 8 */ "......g.....g." - /* 9 */ "mmmmm.g.....g." - /* 10 */ "mmmmm.dggdggd." + /* 1 */ ".aaaafaaaaaaa." + /* 2 */ ".a..........a." + /* 3 */ ".a..........a." + /* 4 */ ".a..........a." + /* 5 */ ".a..........a." + /* 6 */ ".a..........a." + /* 7 */ ".aaaaga.....a." + /* 8 */ "......a.....a." + /* 9 */ "mmmmm.a.....a." + /* 10 */ "mmmmm.aaaaaaa." /* 11 */ "mmmmm........." // Level 3 /* z\x* 1111 */ /* * 01234567890123 */ - /* 0 */ "bbbbbbbbbbbbbb" - /* 1 */ "iddddddddddddc" - /* 2 */ ".d..j.j.....dc" - /* 3 */ ".d..........dc" - /* 4 */ ".d.........kdc" - /* 5 */ ".d..........dc" - /* 6 */ ".d..l.l.....dc" - /* 7 */ "nddddddo...kdc" - /* 8 */ "eeeeead.....dc" - /* 9 */ "mmmmmad.....dc" - /* 10 */ "mmmmmadddddddc" - /* 11 */ "mmmmmap.....qc" + /* 0 */ ".............." + /* 1 */ ".ahhaiahhahha." + /* 2 */ ".h..........h." + /* 3 */ ".h..........h." + /* 4 */ ".a..........a." + /* 5 */ ".h..........h." + /* 6 */ ".h..........h." + /* 7 */ ".ahhaia.....a." + /* 8 */ "......h.....h." + /* 9 */ "mmmmm.h.....h." + /* 10 */ "mmmmm.ahhahha." + /* 11 */ "mmmmm........." // Level 4 /* z\x* 1111 */ /* * 01234567890123 */ - /* 0 */ ".............." - /* 1 */ "bbbbbbbbbbbbc." - /* 2 */ "idddddddddddc." - /* 3 */ ".d.........dc." - /* 4 */ ".d.........dc." - /* 5 */ ".d.........dc." - /* 6 */ "nddddddd...dc." - /* 7 */ "eeeeeead...dc." - /* 8 */ "......ad...dc." - /* 9 */ "mmmmm.ad...dc." - /* 10 */ "mmmmm.adddddc." - /* 11 */ "mmmmm.ap...qc." + /* 0 */ "cccccccccccccc" + /* 1 */ "jaaaaaaaaaaaad" + /* 2 */ ".a..k.k.....ad" + /* 3 */ ".a..........ad" + /* 4 */ ".a.........lad" + /* 5 */ ".a..........ad" + /* 6 */ ".a..n.n.....ad" + /* 7 */ "oaaaaaap...lad" + /* 8 */ "eeeeeba.....ad" + /* 9 */ "mmmmmba.....ad" + /* 10 */ "mmmmmbaaaaaaad" + /* 11 */ "mmmmmbq.....rd" // Level 5 /* z\x* 1111 */ /* * 01234567890123 */ /* 0 */ ".............." - /* 1 */ ".............." - /* 2 */ "bbbbbbbbbbbb.." - /* 3 */ "iddddddddddc.." - /* 4 */ ".d........dc.." - /* 5 */ "ndddddddd.dc.." - /* 6 */ "eeeeeeeed.dc.." - /* 7 */ ".......ad.dc.." - /* 8 */ ".......ad.dc.." - /* 9 */ "mmmmm..ad.dc.." - /* 10 */ "mmmmm..adddc.." - /* 11 */ "mmmmm..ap.qc.." + /* 1 */ "ccccccccccccd." + /* 2 */ "jaaaaaaaaaaad." + /* 3 */ ".a.........ad." + /* 4 */ ".a.........ad." + /* 5 */ ".a.........ad." + /* 6 */ "oaaaaaaa...ad." + /* 7 */ "eeeeeeba...ad." + /* 8 */ "......ba...ad." + /* 9 */ "mmmmm.ba...ad." + /* 10 */ "mmmmm.baaaaad." + /* 11 */ "mmmmm.bq...rd." // Level 6 /* z\x* 1111 */ /* * 01234567890123 */ /* 0 */ ".............." /* 1 */ ".............." + /* 2 */ "cccccccccccc.." + /* 3 */ "jaaaaaaaaaad.." + /* 4 */ ".a........ad.." + /* 5 */ "oaaaaaaaa.ad.." + /* 6 */ "eeeeeeeea.ad.." + /* 7 */ ".......ba.ad.." + /* 8 */ ".......ba.ad.." + /* 9 */ "mmmmm..ba.ad.." + /* 10 */ "mmmmm..baaad.." + /* 11 */ "mmmmm..bq.rd.." + + // Level 7 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ ".............." + /* 1 */ ".............." /* 2 */ ".............." - /* 3 */ "bbbbbbbbbbb..." - /* 4 */ "ddddddddddc..." - /* 5 */ "eeeeeeeeadc..." - /* 6 */ "........adc..." - /* 7 */ "........adc..." - /* 8 */ "........adc..." - /* 9 */ "mmmmm...adc..." - /* 10 */ "mmmmm...adc..." - /* 11 */ "mmmmm...adc...", + /* 3 */ "ccccccccccc..." + /* 4 */ "aaaaaaaaaad..." + /* 5 */ "eeeeeeeebad..." + /* 6 */ "........bad..." + /* 7 */ "........bad..." + /* 8 */ "........bad..." + /* 9 */ "mmmmm...bad..." + /* 10 */ "mmmmm...bad..." + /* 11 */ "mmmmm...bad...", // Connectors: - "-1: 5, 0, 0: 2\n" /* Type -1, direction Z- */, + "-1: 5, 1, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1456,23 +1592,23 @@ const cPrefab::sDef g_SandVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // HouseL14x12: // The data has been exported from the gallery Desert, area index 7, ID 82, created by Aloe_vera { // Size: - 14, 6, 12, // SizeX = 14, SizeY = 6, SizeZ = 12 + 14, 7, 12, // SizeX = 14, SizeY = 7, SizeZ = 12 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 13, 5, 11, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 14, 6, 12, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a:128: 0\n" /* sandstonestairs */ - "b:128: 2\n" /* sandstonestairs */ - "c:128: 1\n" /* sandstonestairs */ - "d: 24: 0\n" /* sandstone */ + "a: 24: 0\n" /* sandstone */ + "b:128: 0\n" /* sandstonestairs */ + "c:128: 2\n" /* sandstonestairs */ + "d:128: 1\n" /* sandstonestairs */ "e:128: 3\n" /* sandstonestairs */ "f: 64: 7\n" /* wooddoorblock */ "g: 64: 5\n" /* wooddoorblock */ @@ -1491,101 +1627,117 @@ const cPrefab::sDef g_SandVillagePrefabs[] = // Level 0 /* z\x* 1111 */ /* * 01234567890123 */ - /* 0 */ ".......abc...." - /* 1 */ ".dddddddddddd." - /* 2 */ ".dddddddddddd." - /* 3 */ ".dddddddddddd." - /* 4 */ ".dddddddddddd." - /* 5 */ ".dddddddddddd." - /* 6 */ "....aec.ddddd." - /* 7 */ "mmmmmmm.ddddd." - /* 8 */ "mmmmmmm.ddddd." - /* 9 */ "mmmmmmm.ddddd." - /* 10 */ "mmmmmmm.ddddd." - /* 11 */ "mmmmmmm......." + /* 0 */ "mmmmmmmaaammmm" + /* 1 */ "maaaaaaaaaaaam" + /* 2 */ "maaaaaaaaaaaam" + /* 3 */ "maaaaaaaaaaaam" + /* 4 */ "maaaaaaaaaaaam" + /* 5 */ "maaaaaaaaaaaam" + /* 6 */ "mmmmaaamaaaaam" + /* 7 */ "mmmmmmmmaaaaam" + /* 8 */ "mmmmmmmmaaaaam" + /* 9 */ "mmmmmmmmaaaaam" + /* 10 */ "mmmmmmmmaaaaam" + /* 11 */ "mmmmmmmmmmmmmm" // Level 1 /* z\x* 1111 */ /* * 01234567890123 */ - /* 0 */ ".............." - /* 1 */ ".dddddddfdddd." - /* 2 */ ".d..........d." - /* 3 */ ".d..........d." - /* 4 */ ".d..........d." - /* 5 */ ".ddddgddd...d." - /* 6 */ "........d...d." - /* 7 */ "mmmmmmm.d...d." - /* 8 */ "mmmmmmm.d...d." - /* 9 */ "mmmmmmm.d...d." - /* 10 */ "mmmmmmm.ddddd." - /* 11 */ "mmmmmmm......." + /* 0 */ ".......bcd...." + /* 1 */ ".aaaaaaaaaaaa." + /* 2 */ ".aaaaaaaaaaaa." + /* 3 */ ".aaaaaaaaaaaa." + /* 4 */ ".aaaaaaaaaaaa." + /* 5 */ ".aaaaaaaaaaaa." + /* 6 */ "....bed.aaaaa." + /* 7 */ "........aaaaa." + /* 8 */ "........aaaaa." + /* 9 */ "........aaaaa." + /* 10 */ "........aaaaa." + /* 11 */ ".............." // Level 2 /* z\x* 1111 */ /* * 01234567890123 */ /* 0 */ ".............." - /* 1 */ ".dhhdhhdidhhd." + /* 1 */ ".aaaaaaafaaaa." + /* 2 */ ".a..........a." + /* 3 */ ".a..........a." + /* 4 */ ".a..........a." + /* 5 */ ".aaaagaaa...a." + /* 6 */ "........a...a." + /* 7 */ "........a...a." + /* 8 */ "........a...a." + /* 9 */ "........a...a." + /* 10 */ "........aaaaa." + /* 11 */ ".............." + + // Level 3 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ ".............." + /* 1 */ ".ahhahhaiahha." /* 2 */ ".h..........h." /* 3 */ ".h..........h." - /* 4 */ ".h..........d." - /* 5 */ ".dhhdidhh...h." + /* 4 */ ".h..........a." + /* 5 */ ".ahhaiahh...h." /* 6 */ "........h...h." - /* 7 */ "mmmmmmm.d...d." - /* 8 */ "mmmmmmm.h...h." - /* 9 */ "mmmmmmm.h...h." - /* 10 */ "mmmmmmm.dhhhd." - /* 11 */ "mmmmmmm......." + /* 7 */ "........a...a." + /* 8 */ "........h...h." + /* 9 */ "........h...h." + /* 10 */ "........ahhha." + /* 11 */ ".............." - // Level 3 + // Level 4 /* z\x* 1111 */ /* * 01234567890123 */ - /* 0 */ "bbbbbbbbbbbbbb" - /* 1 */ "jddddddddddddc" - /* 2 */ ".d.....k.k..dc" - /* 3 */ ".d..........dc" - /* 4 */ ".d..l.l.....dc" - /* 5 */ "ndddddddd...dc" - /* 6 */ "eeeeeeead...dc" - /* 7 */ "mmmmmmmad...dc" - /* 8 */ "mmmmmmmad...dc" - /* 9 */ "mmmmmmmad...dc" - /* 10 */ "mmmmmmmadddddc" - /* 11 */ "mmmmmmmao...pc" + /* 0 */ "cccccccccccccc" + /* 1 */ "jaaaaaaaaaaaad" + /* 2 */ ".a.....k.k..ad" + /* 3 */ ".a..........ad" + /* 4 */ ".a..l.l.....ad" + /* 5 */ "naaaaaaaa...ad" + /* 6 */ "eeeeeeeba...ad" + /* 7 */ ".......ba...ad" + /* 8 */ ".......ba...ad" + /* 9 */ ".......ba...ad" + /* 10 */ ".......baaaaad" + /* 11 */ ".......bo...pd" - // Level 4 + // Level 5 /* z\x* 1111 */ /* * 01234567890123 */ /* 0 */ ".............." - /* 1 */ "bbbbbbbbbbbbb." - /* 2 */ "jdddddddddddc." - /* 3 */ ".dq........dc." - /* 4 */ "nddddddddd.dc." - /* 5 */ "eeeeeeeead.dc." - /* 6 */ "........ad.dc." - /* 7 */ "mmmmmmm.ad.dc." - /* 8 */ "mmmmmmm.ad.dc." - /* 9 */ "mmmmmmm.adldc." - /* 10 */ "mmmmmmm.adddc." - /* 11 */ "mmmmmmm.ao.pc." + /* 1 */ "ccccccccccccc." + /* 2 */ "jaaaaaaaaaaad." + /* 3 */ ".aq........ad." + /* 4 */ "naaaaaaaaa.ad." + /* 5 */ "eeeeeeeeba.ad." + /* 6 */ "........ba.ad." + /* 7 */ "........ba.ad." + /* 8 */ "........ba.ad." + /* 9 */ "........balad." + /* 10 */ "........baaad." + /* 11 */ "........bo.pd." - // Level 5 + // Level 6 /* z\x* 1111 */ /* * 01234567890123 */ /* 0 */ ".............." /* 1 */ ".............." - /* 2 */ "bbbbbbbbbbbb.." - /* 3 */ "dddddddddddc.." - /* 4 */ "eeeeeeeeeadc.." - /* 5 */ ".........adc.." - /* 6 */ ".........adc.." - /* 7 */ "mmmmmmm..adc.." - /* 8 */ "mmmmmmm..adc.." - /* 9 */ "mmmmmmm..adc.." - /* 10 */ "mmmmmmm..adc.." - /* 11 */ "mmmmmmm..adc..", + /* 2 */ "cccccccccccc.." + /* 3 */ "aaaaaaaaaaad.." + /* 4 */ "eeeeeeeeebad.." + /* 5 */ ".........bad.." + /* 6 */ ".........bad.." + /* 7 */ ".........bad.." + /* 8 */ ".........bad.." + /* 9 */ ".........bad.." + /* 10 */ ".........bad.." + /* 11 */ ".........bad..", // Connectors: - "-1: 8, 0, 0: 2\n" /* Type -1, direction Z- */, + "-1: 8, 1, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1611,16 +1763,16 @@ const cPrefab::sDef g_SandVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // SingleField: // The data has been exported from the gallery Desert, area index 17, ID 127, created by Aloe_vera { // Size: - 10, 2, 7, // SizeX = 10, SizeY = 2, SizeZ = 7 + 10, 3, 7, // SizeX = 10, SizeY = 3, SizeZ = 7 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 9, 1, 6, // MaxX, MaxY, MaxZ + 0, 0, -1, // MinX, MinY, MinZ + 10, 2, 7, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -1636,6 +1788,17 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* z\x* */ /* * 0123456789 */ /* 0 */ "aaaaaaaaaa" + /* 1 */ "aaaaaaaaaa" + /* 2 */ "aaaaaaaaaa" + /* 3 */ "aaaaaaaaaa" + /* 4 */ "aaaaaaaaaa" + /* 5 */ "aaaaaaaaaa" + /* 6 */ "aaaaaaaaaa" + + // Level 1 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ "aaaaaaaaaa" /* 1 */ "abbbbbbbba" /* 2 */ "abbbbbbbba" /* 3 */ "acccccccca" @@ -1643,7 +1806,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* 5 */ "abbbbbbbba" /* 6 */ "aaaaaaaaaa" - // Level 1 + // Level 2 /* z\x* */ /* * 0123456789 */ /* 0 */ "d........d" @@ -1655,7 +1818,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* 6 */ "d........d", // Connectors: - "-1: 0, 0, 3: 4\n" /* Type -1, direction X- */, + "-1: 0, 1, 3: 4\n" /* Type -1, direction X- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1681,16 +1844,16 @@ const cPrefab::sDef g_SandVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // SmallHut: // The data has been exported from the gallery Desert, area index 4, ID 68, created by tonibm1999 { // Size: - 5, 5, 6, // SizeX = 5, SizeY = 5, SizeZ = 6 + 5, 6, 6, // SizeX = 5, SizeY = 6, SizeZ = 6 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 4, 4, 5, // MaxX, MaxY, MaxZ + -1, 0, -1, // MinX, MinY, MinZ + 5, 5, 5, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -1712,10 +1875,19 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* 2 */ "aaaaa" /* 3 */ "aaaaa" /* 4 */ "aaaaa" - /* 5 */ "..b.." + /* 5 */ "mmamm" // Level 1 /* z\x* 01234 */ + /* 0 */ "aaaaa" + /* 1 */ "aaaaa" + /* 2 */ "aaaaa" + /* 3 */ "aaaaa" + /* 4 */ "aaaaa" + /* 5 */ "..b.." + + // Level 2 + /* z\x* 01234 */ /* 0 */ "accca" /* 1 */ "cdedc" /* 2 */ "c.f.c" @@ -1723,7 +1895,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* 4 */ "acgca" /* 5 */ "....." - // Level 2 + // Level 3 /* z\x* 01234 */ /* 0 */ "ac.ca" /* 1 */ "c...c" @@ -1732,7 +1904,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* 4 */ "achca" /* 5 */ "....." - // Level 3 + // Level 4 /* z\x* 01234 */ /* 0 */ "accca" /* 1 */ "c...c" @@ -1741,7 +1913,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* 4 */ "accca" /* 5 */ "....." - // Level 4 + // Level 5 /* z\x* 01234 */ /* 0 */ ".aaa." /* 1 */ "aaaaa" @@ -1751,7 +1923,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* 5 */ ".....", // Connectors: - "-1: 2, 0, 5: 3\n" /* Type -1, direction Z+ */, + "-1: 2, 1, 5: 3\n" /* Type -1, direction Z+ */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1783,7 +1955,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = const cPrefab::sDef g_SandVillageStartingPrefabs[] = { - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // RoofedWell: // The data has been exported from the gallery Desert, area index 43, ID 274, created by Aloe_vera { @@ -1800,15 +1972,17 @@ const cPrefab::sDef g_SandVillageStartingPrefabs[] = "b: 24: 0\n" /* sandstone */ "c: 8: 0\n" /* water */ "d: 12: 0\n" /* sand */ - "e:118: 3\n" /* cauldronblock */ - "f: 85: 0\n" /* fence */ - "g:128: 2\n" /* sandstonestairs */ - "h:128: 7\n" /* sandstonestairs */ - "i:128: 4\n" /* sandstonestairs */ - "j:128: 5\n" /* sandstonestairs */ - "k:128: 6\n" /* sandstonestairs */ - "l:128: 3\n" /* sandstonestairs */ - "m: 19: 0\n" /* sponge */, + "e: 4: 0\n" /* cobblestone */ + "f: 13: 0\n" /* gravel */ + "g:118: 3\n" /* cauldronblock */ + "h: 85: 0\n" /* fence */ + "i:128: 2\n" /* sandstonestairs */ + "j:128: 7\n" /* sandstonestairs */ + "k:128: 4\n" /* sandstonestairs */ + "l:128: 5\n" /* sandstonestairs */ + "m: 19: 0\n" /* sponge */ + "n:128: 6\n" /* sandstonestairs */ + "o:128: 3\n" /* sandstonestairs */, // Block data: // Level 0 @@ -1873,30 +2047,30 @@ const cPrefab::sDef g_SandVillageStartingPrefabs[] = // Level 6 /* z\x* 0123456 */ - /* 0 */ "ddddddd" + /* 0 */ "ddeeedd" /* 1 */ "dbbbbbd" - /* 2 */ "dbcccbd" - /* 3 */ "dbcccbd" - /* 4 */ "dbcccbd" + /* 2 */ "ebcccbe" + /* 3 */ "ebcccbe" + /* 4 */ "ebcccbe" /* 5 */ "dbbbbbd" - /* 6 */ "ddddddd" + /* 6 */ "ddeeedd" // Level 7 /* z\x* 0123456 */ - /* 0 */ "ddbbbdd" + /* 0 */ "ddfffdd" /* 1 */ "dbbbbbd" - /* 2 */ "bbcccbb" - /* 3 */ "bbcccbb" - /* 4 */ "bbcccbb" + /* 2 */ "fbcccbf" + /* 3 */ "fbcccbf" + /* 4 */ "fbcccbf" /* 5 */ "dbbbbbd" - /* 6 */ "ddbbbdd" + /* 6 */ "ddfffdd" // Level 8 /* z\x* 0123456 */ /* 0 */ "......." /* 1 */ ".bbbbb." /* 2 */ ".b...b." - /* 3 */ ".b.e.b." + /* 3 */ ".b.g.b." /* 4 */ ".b...b." /* 5 */ ".bbbbb." /* 6 */ "......." @@ -1904,50 +2078,50 @@ const cPrefab::sDef g_SandVillageStartingPrefabs[] = // Level 9 /* z\x* 0123456 */ /* 0 */ "......." - /* 1 */ ".f...f." + /* 1 */ ".h...h." /* 2 */ "......." - /* 3 */ "...f..." + /* 3 */ "...h..." /* 4 */ "......." - /* 5 */ ".f...f." + /* 5 */ ".h...h." /* 6 */ "......." // Level 10 /* z\x* 0123456 */ /* 0 */ "......." - /* 1 */ ".f...f." + /* 1 */ ".h...h." /* 2 */ "......." - /* 3 */ "...f..." + /* 3 */ "...h..." /* 4 */ "......." - /* 5 */ ".f...f." + /* 5 */ ".h...h." /* 6 */ "......." // Level 11 /* z\x* 0123456 */ - /* 0 */ "ggggggg" - /* 1 */ "hbhhhbh" - /* 2 */ ".i...j." - /* 3 */ ".i.f.j." - /* 4 */ ".i...j." - /* 5 */ "kbkkkbk" - /* 6 */ "lllllll" + /* 0 */ "iiiiiii" + /* 1 */ "jbjjjbj" + /* 2 */ ".k...l." + /* 3 */ ".k.h.l." + /* 4 */ ".k...l." + /* 5 */ "nbnnnbn" + /* 6 */ "ooooooo" // Level 12 /* z\x* 0123456 */ /* 0 */ "......." - /* 1 */ "ggggggg" - /* 2 */ "hb...bh" - /* 3 */ ".b.f.b." - /* 4 */ "kb...bk" - /* 5 */ "lllllll" + /* 1 */ "iiiiiii" + /* 2 */ "jb...bj" + /* 3 */ ".b.h.b." + /* 4 */ "nb...bn" + /* 5 */ "ooooooo" /* 6 */ "......." // Level 13 /* z\x* 0123456 */ /* 0 */ "......." /* 1 */ "......." - /* 2 */ "ggggggg" + /* 2 */ "iiiiiii" /* 3 */ "bbbbbbb" - /* 4 */ "lllllll" + /* 4 */ "ooooooo" /* 5 */ "......." /* 6 */ ".......", @@ -1981,7 +2155,7 @@ const cPrefab::sDef g_SandVillageStartingPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // Well: // The data has been exported from the gallery Desert, area index 0, ID 1, created by Aloe_vera { diff --git a/src/Generating/Prefabs/TestRailsPrefabs.cpp b/src/Generating/Prefabs/TestRailsPrefabs.cpp new file mode 100644 index 000000000..f58b95225 --- /dev/null +++ b/src/Generating/Prefabs/TestRailsPrefabs.cpp @@ -0,0 +1,484 @@ + +// TestRailsPrefabs.cpp + +// Defines the prefabs in the group TestRails + +// NOTE: This file has been generated automatically by GalExport! +// Any manual changes will be overwritten by the next automatic export! + +#include "Globals.h" +#include "TestRailsPrefabs.h" + + + + + +const cPrefab::sDef g_TestRailsPrefabs[] = +{ + //////////////////////////////////////////////////////////////////////////////// + // ActivatorRail: + // The data has been exported from the gallery Plains, area index 251, ID 746, created by Aloe_vera + { + // Size: + 7, 3, 7, // SizeX = 7, SizeY = 3, SizeZ = 7 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 6, 2, 6, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 1: 0\n" /* stone */ + "b: 5: 0\n" /* wood */ + "c:157: 0\n" /* activatorrail */ + "d:157: 2\n" /* activatorrail */ + "e:157: 3\n" /* activatorrail */ + "f:157: 5\n" /* activatorrail */ + "g: 50: 5\n" /* torch */ + "h:157: 4\n" /* activatorrail */ + "i:157: 1\n" /* activatorrail */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 0123456 */ + /* 0 */ "aaab..." + /* 1 */ "abbbbb." + /* 2 */ "abbb.b." + /* 3 */ "bbbb.bb" + /* 4 */ ".b...b." + /* 5 */ ".bbbbb." + /* 6 */ "...b..." + + // Level 1 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".cdbec." + /* 2 */ ".fg..f." + /* 3 */ ".b.g.b." + /* 4 */ ".h...h." + /* 5 */ ".cdbec." + /* 6 */ "......." + + // Level 2 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ "...i..." + /* 2 */ "......." + /* 3 */ ".c...c." + /* 4 */ "......." + /* 5 */ "...i..." + /* 6 */ ".......", + + // Connectors: + "1: 6, 1, 3: 5\n" /* Type 1, direction X+ */ + "-1: 6, 1, 3: 5\n" /* Type -1, direction X+ */ + "1: 3, 1, 6: 3\n" /* Type 1, direction Z+ */ + "-1: 3, 1, 6: 3\n" /* Type -1, direction Z+ */ + "1: 0, 1, 3: 4\n" /* Type 1, direction X- */ + "-1: 0, 1, 3: 4\n" /* Type -1, direction X- */ + "1: 3, 1, 0: 2\n" /* Type 1, direction Z- */ + "-1: 3, 1, 0: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + false, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + false, + }, // ActivatorRail + + + + //////////////////////////////////////////////////////////////////////////////// + // DetectorRail: + // The data has been exported from the gallery Plains, area index 250, ID 745, created by Aloe_vera + { + // Size: + 7, 3, 7, // SizeX = 7, SizeY = 3, SizeZ = 7 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 6, 2, 6, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 1: 0\n" /* stone */ + "b: 5: 0\n" /* wood */ + "c: 28: 0\n" /* detectorrail */ + "d: 28: 2\n" /* detectorrail */ + "e: 28: 3\n" /* detectorrail */ + "f: 28: 5\n" /* detectorrail */ + "g: 50: 5\n" /* torch */ + "h: 28: 4\n" /* detectorrail */ + "i: 28: 1\n" /* detectorrail */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 0123456 */ + /* 0 */ "aaab..." + /* 1 */ "abbbbb." + /* 2 */ "abbb.b." + /* 3 */ "bbbb.bb" + /* 4 */ ".b...b." + /* 5 */ ".bbbbb." + /* 6 */ "...b..." + + // Level 1 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".cdbec." + /* 2 */ ".fg..f." + /* 3 */ ".b.g.b." + /* 4 */ ".h...h." + /* 5 */ ".cdbec." + /* 6 */ "......." + + // Level 2 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ "...i..." + /* 2 */ "......." + /* 3 */ ".c...c." + /* 4 */ "......." + /* 5 */ "...i..." + /* 6 */ ".......", + + // Connectors: + "1: 6, 1, 3: 5\n" /* Type 1, direction X+ */ + "-1: 6, 1, 3: 5\n" /* Type -1, direction X+ */ + "1: 3, 1, 0: 2\n" /* Type 1, direction Z- */ + "-1: 3, 1, 0: 2\n" /* Type -1, direction Z- */ + "1: 0, 1, 3: 4\n" /* Type 1, direction X- */ + "-1: 0, 1, 3: 4\n" /* Type -1, direction X- */ + "1: 3, 1, 6: 3\n" /* Type 1, direction Z+ */ + "-1: 3, 1, 6: 3\n" /* Type -1, direction Z+ */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + false, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + false, + }, // DetectorRail + + + + //////////////////////////////////////////////////////////////////////////////// + // PowerRail: + // The data has been exported from the gallery Plains, area index 248, ID 743, created by Aloe_vera + { + // Size: + 7, 3, 7, // SizeX = 7, SizeY = 3, SizeZ = 7 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 6, 2, 6, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 1: 0\n" /* stone */ + "b: 5: 0\n" /* wood */ + "c: 27: 0\n" /* poweredrail */ + "d: 27: 2\n" /* poweredrail */ + "e: 27: 3\n" /* poweredrail */ + "f: 27: 5\n" /* poweredrail */ + "g: 50: 5\n" /* torch */ + "h: 27: 4\n" /* poweredrail */ + "i: 27: 1\n" /* poweredrail */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 0123456 */ + /* 0 */ "aaab..." + /* 1 */ "abbbbb." + /* 2 */ "abbb.b." + /* 3 */ "bbbb.bb" + /* 4 */ ".b...b." + /* 5 */ ".bbbbb." + /* 6 */ "...b..." + + // Level 1 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".cdbec." + /* 2 */ ".fg..f." + /* 3 */ ".b.g.b." + /* 4 */ ".h...h." + /* 5 */ ".cdbec." + /* 6 */ "......." + + // Level 2 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ "...i..." + /* 2 */ "......." + /* 3 */ ".c...c." + /* 4 */ "......." + /* 5 */ "...i..." + /* 6 */ ".......", + + // Connectors: + "1: 6, 1, 3: 5\n" /* Type 1, direction X+ */ + "-1: 6, 1, 3: 5\n" /* Type -1, direction X+ */ + "1: 3, 1, 6: 3\n" /* Type 1, direction Z+ */ + "-1: 3, 1, 6: 3\n" /* Type -1, direction Z+ */ + "1: 0, 1, 3: 4\n" /* Type 1, direction X- */ + "-1: 0, 1, 3: 4\n" /* Type -1, direction X- */ + "1: 3, 1, 0: 2\n" /* Type 1, direction Z- */ + "-1: 3, 1, 0: 2\n" /* Type -1, direction Z- */ + "1: 6, 1, 3: 5\n" /* Type 1, direction X+ */ + "-1: 6, 1, 3: 5\n" /* Type -1, direction X+ */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + false, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + false, + }, // PowerRail + + + + //////////////////////////////////////////////////////////////////////////////// + // RegularRail: + // The data has been exported from the gallery Plains, area index 247, ID 742, created by Aloe_vera + { + // Size: + 7, 3, 7, // SizeX = 7, SizeY = 3, SizeZ = 7 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 6, 2, 6, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 1: 0\n" /* stone */ + "b: 5: 0\n" /* wood */ + "c: 66: 6\n" /* tracks */ + "d: 66: 2\n" /* tracks */ + "e: 66: 3\n" /* tracks */ + "f: 66: 7\n" /* tracks */ + "g: 66: 5\n" /* tracks */ + "h: 50: 5\n" /* torch */ + "i: 66: 4\n" /* tracks */ + "j: 66: 9\n" /* tracks */ + "k: 66: 8\n" /* tracks */ + "l: 66: 1\n" /* tracks */ + "m: 19: 0\n" /* sponge */ + "n: 66: 0\n" /* tracks */, + + // Block data: + // Level 0 + /* z\x* 0123456 */ + /* 0 */ "aaab..." + /* 1 */ "abbbbb." + /* 2 */ "abbb.b." + /* 3 */ "bbbb.bb" + /* 4 */ ".b...b." + /* 5 */ ".bbbbb." + /* 6 */ "...b..." + + // Level 1 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".cdbef." + /* 2 */ ".gh..g." + /* 3 */ ".b.h.b." + /* 4 */ ".i...i." + /* 5 */ ".jdbek." + /* 6 */ "......." + + // Level 2 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ "...l..." + /* 2 */ "......." + /* 3 */ ".n...n." + /* 4 */ "......." + /* 5 */ "...l..." + /* 6 */ ".......", + + // Connectors: + "1: 6, 1, 3: 5\n" /* Type 1, direction X+ */ + "-1: 6, 1, 3: 5\n" /* Type -1, direction X+ */ + "1: 3, 1, 6: 3\n" /* Type 1, direction Z+ */ + "-1: 3, 1, 6: 3\n" /* Type -1, direction Z+ */ + "1: 0, 1, 3: 4\n" /* Type 1, direction X- */ + "-1: 0, 1, 3: 4\n" /* Type -1, direction X- */ + "1: 3, 1, 0: 2\n" /* Type 1, direction Z- */ + "-1: 3, 1, 0: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + false, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + false, + }, // RegularRail +}; // g_TestRailsPrefabs + + + + + + +const cPrefab::sDef g_TestRailsStartingPrefabs[] = +{ + //////////////////////////////////////////////////////////////////////////////// + // CentralPiece: + // The data has been exported from the gallery Plains, area index 249, ID 744, created by Aloe_vera + { + // Size: + 6, 3, 6, // SizeX = 6, SizeY = 3, SizeZ = 6 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 5, 2, 5, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 1: 0\n" /* stone */ + "b: 5: 0\n" /* wood */ + "c: 66: 6\n" /* tracks */ + "d: 66: 2\n" /* tracks */ + "e: 66: 3\n" /* tracks */ + "f: 66: 7\n" /* tracks */ + "g: 66: 5\n" /* tracks */ + "h: 50: 5\n" /* torch */ + "i: 66: 4\n" /* tracks */ + "j: 66: 9\n" /* tracks */ + "k: 66: 8\n" /* tracks */ + "l: 66: 1\n" /* tracks */ + "m: 19: 0\n" /* sponge */ + "n: 66: 0\n" /* tracks */, + + // Block data: + // Level 0 + /* z\x* 012345 */ + /* 0 */ "aaab.." + /* 1 */ "abbbbb" + /* 2 */ "abbb.b" + /* 3 */ "bbbb.b" + /* 4 */ ".b...b" + /* 5 */ ".bbbbb" + + // Level 1 + /* z\x* 012345 */ + /* 0 */ "......" + /* 1 */ ".cdbef" + /* 2 */ ".gh..g" + /* 3 */ ".b.h.b" + /* 4 */ ".i...i" + /* 5 */ ".jdbek" + + // Level 2 + /* z\x* 012345 */ + /* 0 */ "......" + /* 1 */ "...l.." + /* 2 */ "......" + /* 3 */ ".n...n" + /* 4 */ "......" + /* 5 */ "...l..", + + // Connectors: + "1: 3, 1, 6: 3\n" /* Type 1, direction Z+ */ + "1: 0, 1, 3: 4\n" /* Type 1, direction X- */ + "-1: 0, 1, 3: 4\n" /* Type -1, direction X- */ + "-1: 3, 1, 6: 3\n" /* Type -1, direction Z+ */ + "1: 6, 1, 3: 5\n" /* Type 1, direction X+ */ + "-1: 6, 1, 3: 5\n" /* Type -1, direction X+ */ + "1: 3, 1, 0: 2\n" /* Type 1, direction Z- */ + "-1: 3, 1, 0: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + false, + }, // CentralPiece +}; + + + + + +// The prefab counts: + +const size_t g_TestRailsPrefabsCount = ARRAYCOUNT(g_TestRailsPrefabs); + +const size_t g_TestRailsStartingPrefabsCount = ARRAYCOUNT(g_TestRailsStartingPrefabs); + diff --git a/src/Generating/Prefabs/TestRailsPrefabs.h b/src/Generating/Prefabs/TestRailsPrefabs.h new file mode 100644 index 000000000..24b84de74 --- /dev/null +++ b/src/Generating/Prefabs/TestRailsPrefabs.h @@ -0,0 +1,15 @@ + +// TestRailsPrefabs.h + +// Declares the prefabs in the group TestRails + +#include "../Prefab.h" + + + + + +extern const cPrefab::sDef g_TestRailsPrefabs[]; +extern const cPrefab::sDef g_TestRailsStartingPrefabs[]; +extern const size_t g_TestRailsPrefabsCount; +extern const size_t g_TestRailsStartingPrefabsCount; diff --git a/src/Generating/Prefabs/UnderwaterBasePrefabs.cpp b/src/Generating/Prefabs/UnderwaterBasePrefabs.cpp index 39748a223..1655f50b9 100644 --- a/src/Generating/Prefabs/UnderwaterBasePrefabs.cpp +++ b/src/Generating/Prefabs/UnderwaterBasePrefabs.cpp @@ -15,7 +15,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = { - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // BrokenRoom: // The data has been exported from the gallery Water, area index 49, ID 680, created by STR_Warrior { @@ -178,7 +178,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // Corridor16: // The data has been exported from the gallery Water, area index 25, ID 566, created by xoft { @@ -265,7 +265,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // CorridorCorner: // The data has been exported from the gallery Water, area index 26, ID 569, created by xoft { @@ -366,7 +366,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = true, // DefaultWeight: - 100, + 200, // DepthWeight: "", @@ -380,7 +380,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // CorridorCrossing: // The data has been exported from the gallery Water, area index 31, ID 581, created by LO1ZB { @@ -526,7 +526,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // CorridorStairs: // The data has been exported from the gallery Water, area index 32, ID 582, created by LO1ZB { @@ -656,7 +656,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // CorridorTee: // The data has been exported from the gallery Water, area index 29, ID 576, created by LO1ZB { @@ -775,7 +775,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // ViewingCorner: // The data has been exported from the gallery Water, area index 40, ID 613, created by LO1ZB { @@ -958,7 +958,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // ViewingCorridor: // The data has been exported from the gallery Water, area index 27, ID 571, created by LO1ZB { @@ -1065,7 +1065,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // ViewingCorridorBulge: // The data has been exported from the gallery Water, area index 42, ID 615, created by LO1ZB { @@ -1280,7 +1280,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // ViewingCrossing: // The data has been exported from the gallery Water, area index 38, ID 611, created by LO1ZB { @@ -1483,7 +1483,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // ViewingEnd: // The data has been exported from the gallery Water, area index 41, ID 614, created by LO1ZB { @@ -1648,7 +1648,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // ViewingTee: // The data has been exported from the gallery Water, area index 39, ID 612, created by LO1ZB { @@ -1850,7 +1850,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // WaterfallRoom: // The data has been exported from the gallery Water, area index 50, ID 681, created by Aloe_vera { @@ -2059,7 +2059,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = const cPrefab::sDef g_UnderwaterBaseStartingPrefabs[] = { - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // CentralRoom: // The data has been exported from the gallery Water, area index 24, ID 564, created by xoft { diff --git a/src/Generating/RainbowRoadsGen.cpp b/src/Generating/RainbowRoadsGen.cpp index 3b0ff7df8..c3c07cdec 100644 --- a/src/Generating/RainbowRoadsGen.cpp +++ b/src/Generating/RainbowRoadsGen.cpp @@ -18,7 +18,7 @@ static cPrefabPiecePool g_RainbowRoads(g_RainbowRoadPrefabs, g_RainbowRoadPrefab -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cRainbowRoadsGen::cRainbowRoads: class cRainbowRoadsGen::cRainbowRoads : @@ -86,7 +86,7 @@ protected: -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cRainbowRoadsGen: diff --git a/src/Generating/Ravines.cpp b/src/Generating/Ravines.cpp index 24f2cc3ab..70b9d0b62 100644 --- a/src/Generating/Ravines.cpp +++ b/src/Generating/Ravines.cpp @@ -77,7 +77,7 @@ protected: -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cStructGenRavines: cStructGenRavines::cStructGenRavines(int a_Seed, int a_Size) : @@ -101,7 +101,7 @@ cGridStructGen::cStructurePtr cStructGenRavines::CreateStructure(int a_GridX, in -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cStructGenRavines::cRavine cStructGenRavines::cRavine::cRavine(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ, int a_Size, cNoise & a_Noise) : @@ -283,38 +283,38 @@ void cStructGenRavines::cRavine::FinishLinear(void) AString cStructGenRavines::cRavine::ExportAsSVG(int a_Color, int a_OffsetX, int a_OffsetZ) const { AString SVG; - AppendPrintf(SVG, "<path style=\"fill:none;stroke:#%06x;stroke-width:1px;\"\nd=\"", a_Color); - char Prefix = 'M'; // The first point needs "M" prefix, all the others need "L" - for (cRavDefPoints::const_iterator itr = m_Points.begin(); itr != m_Points.end(); ++itr) - { - AppendPrintf(SVG, "%c %d,%d ", Prefix, a_OffsetX + itr->m_BlockX, a_OffsetZ + itr->m_BlockZ); + AppendPrintf(SVG, "<path style=\"fill:none;stroke:#%06x;stroke-width:1px;\"\nd=\"", a_Color); + char Prefix = 'M'; // The first point needs "M" prefix, all the others need "L" + for (cRavDefPoints::const_iterator itr = m_Points.begin(); itr != m_Points.end(); ++itr) + { + AppendPrintf(SVG, "%c %d, %d ", Prefix, a_OffsetX + itr->m_BlockX, a_OffsetZ + itr->m_BlockZ); Prefix = 'L'; - } - SVG.append("\"/>\n"); - - // Base point highlight: - AppendPrintf(SVG, "<path style=\"fill:none;stroke:#ff0000;stroke-width:1px;\"\nd=\"M %d,%d L %d,%d\"/>\n", + } + SVG.append("\"/>\n"); + + // Base point highlight: + AppendPrintf(SVG, "<path style=\"fill:none;stroke:#ff0000;stroke-width:1px;\"\nd=\"M %d, %d L %d, %d\"/>\n", a_OffsetX + m_OriginX - 5, a_OffsetZ + m_OriginZ, a_OffsetX + m_OriginX + 5, a_OffsetZ + m_OriginZ ); - AppendPrintf(SVG, "<path style=\"fill:none;stroke:#ff0000;stroke-width:1px;\"\nd=\"M %d,%d L %d,%d\"/>\n", + AppendPrintf(SVG, "<path style=\"fill:none;stroke:#ff0000;stroke-width:1px;\"\nd=\"M %d, %d L %d, %d\"/>\n", a_OffsetX + m_OriginX, a_OffsetZ + m_OriginZ - 5, a_OffsetX + m_OriginX, a_OffsetZ + m_OriginZ + 5 ); // A gray line from the base point to the first point of the ravine, for identification: - AppendPrintf(SVG, "<path style=\"fill:none;stroke:#cfcfcf;stroke-width:1px;\"\nd=\"M %d,%d L %d,%d\"/>\n", + AppendPrintf(SVG, "<path style=\"fill:none;stroke:#cfcfcf;stroke-width:1px;\"\nd=\"M %d, %d L %d, %d\"/>\n", a_OffsetX + m_OriginX, a_OffsetZ + m_OriginZ, a_OffsetX + m_Points.front().m_BlockX, a_OffsetZ + m_Points.front().m_BlockZ ); // Offset guides: if (a_OffsetX > 0) { - AppendPrintf(SVG, "<path style=\"fill:none;stroke:#0000ff;stroke-width:1px;\"\nd=\"M %d,0 L %d,1024\"/>\n", + AppendPrintf(SVG, "<path style=\"fill:none;stroke:#0000ff;stroke-width:1px;\"\nd=\"M %d, 0 L %d, 1024\"/>\n", a_OffsetX, a_OffsetX ); } if (a_OffsetZ > 0) { - AppendPrintf(SVG, "<path style=\"fill:none;stroke:#0000ff;stroke-width:1px;\"\nd=\"M 0,%d L 1024,%d\"/>\n", + AppendPrintf(SVG, "<path style=\"fill:none;stroke:#0000ff;stroke-width:1px;\"\nd=\"M 0, %d L 1024, %d\"/>\n", a_OffsetZ, a_OffsetZ ); } diff --git a/src/Generating/RoughRavines.cpp b/src/Generating/RoughRavines.cpp new file mode 100644 index 000000000..2ee3704b3 --- /dev/null +++ b/src/Generating/RoughRavines.cpp @@ -0,0 +1,300 @@ + +// RoughRavines.cpp + +// Implements the cRoughRavines class representing the rough ravine generator + +#include "Globals.h" + +#include "RoughRavines.h" + + + + + +//////////////////////////////////////////////////////////////////////////////// +// cRoughRavine: + +class cRoughRavine : + public cGridStructGen::cStructure +{ + typedef cGridStructGen::cStructure super; + +public: + cRoughRavine( + int a_Seed, int a_Size, + float a_CenterWidth, float a_Roughness, + float a_FloorHeightEdge1, float a_FloorHeightEdge2, float a_FloorHeightCenter, + float a_CeilingHeightEdge1, float a_CeilingHeightEdge2, float a_CeilingHeightCenter, + int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ + ) : + super(a_GridX, a_GridZ, a_OriginX, a_OriginZ), + m_Seed(a_Seed + 100), + m_Noise(a_Seed + 100), + m_Roughness(a_Roughness) + { + // Create the basic structure - 2 lines meeting at the centerpoint: + int Max = 2 * a_Size; + int Half = a_Size; // m_DefPoints[Half] will be the centerpoint + m_DefPoints.resize(Max + 1); + int rnd = m_Noise.IntNoise2DInt(a_OriginX, a_OriginZ) / 7; + float Len = (float)a_Size; + float Angle = (float)rnd; // Angle is in radians, will be wrapped in the "sin" and "cos" operations + float OfsX = sin(Angle) * Len; + float OfsZ = cos(Angle) * Len; + m_DefPoints[0].Set (a_OriginX - OfsX, a_OriginZ - OfsZ, 1, a_CeilingHeightEdge1, a_FloorHeightEdge1); + m_DefPoints[Half].Set((float)a_OriginX, (float)a_OriginZ, a_CenterWidth, a_CeilingHeightCenter, a_FloorHeightCenter); + m_DefPoints[Max].Set (a_OriginX + OfsX, a_OriginZ + OfsZ, 1, a_CeilingHeightEdge2, a_FloorHeightEdge2); + + // Calculate the points in between, recursively: + SubdivideLine(0, Half); + SubdivideLine(Half, Max); + + // Initialize the per-height radius modifiers: + InitPerHeightRadius(a_GridX, a_GridZ); + } + +protected: + struct sRavineDefPoint + { + float m_X; + float m_Z; + float m_Radius; + float m_Top; + float m_Bottom; + + void Set(float a_X, float a_Z, float a_Radius, float a_Top, float a_Bottom) + { + m_X = a_X; + m_Z = a_Z; + m_Radius = a_Radius; + m_Top = a_Top; + m_Bottom = a_Bottom; + } + }; + typedef std::vector<sRavineDefPoint> sRavineDefPoints; + + int m_Seed; + + cNoise m_Noise; + + int m_MaxSize; + + sRavineDefPoints m_DefPoints; + + float m_Roughness; + + /** Number to add to the radius based on the height. This creates the "ledges" in the ravine walls. */ + float m_PerHeightRadius[cChunkDef::Height]; + + + /** Recursively subdivides the line between the points of the specified index. + Sets the midpoint to the center of the line plus or minus a random offset, then calls itself for each half + of the new line. */ + void SubdivideLine(int a_Idx1, int a_Idx2) + { + // Calculate the midpoint: + const sRavineDefPoint & p1 = m_DefPoints[a_Idx1]; + const sRavineDefPoint & p2 = m_DefPoints[a_Idx2]; + float MidX = (p1.m_X + p2.m_X) / 2; + float MidZ = (p1.m_Z + p2.m_Z) / 2; + float MidR = (p1.m_Radius + p2.m_Radius) / 2 + 0.1f; + float MidT = (p1.m_Top + p2.m_Top) / 2; + float MidB = (p1.m_Bottom + p2.m_Bottom) / 2; + + // Adjust the midpoint by a small amount of perpendicular vector in a random one of its two directions: + float dx = p2.m_X - p1.m_X; + float dz = p2.m_Z - p1.m_Z; + if ((m_Noise.IntNoise2DInt((int)MidX, (int)MidZ) / 11) % 2 == 0) + { + MidX += dz * m_Roughness; + MidZ -= dx * m_Roughness; + } + else + { + MidX -= dz * m_Roughness; + MidZ += dx * m_Roughness; + } + int MidIdx = (a_Idx1 + a_Idx2) / 2; + m_DefPoints[MidIdx].Set(MidX, MidZ, MidR, MidT, MidB); + + // Recurse the two halves, if they are worth recursing: + if (MidIdx - a_Idx1 > 1) + { + SubdivideLine(a_Idx1, MidIdx); + } + if (a_Idx2 - MidIdx > 1) + { + SubdivideLine(MidIdx, a_Idx2); + } + } + + + void InitPerHeightRadius(int a_GridX, int a_GridZ) + { + int h = 0; + while (h < cChunkDef::Height) + { + m_Noise.SetSeed(m_Seed + h); + int rnd = m_Noise.IntNoise2DInt(a_GridX, a_GridZ) / 13; + int NumBlocks = (rnd % 3) + 2; + rnd = rnd / 4; + float Val = (float)(rnd % 256) / 128 - 1; // Random float in range [-1, +1] + if (h + NumBlocks > cChunkDef::Height) + { + NumBlocks = cChunkDef::Height - h; + } + for (int i = 0; i < NumBlocks; i++) + { + m_PerHeightRadius[h + i] = Val; + } + h += NumBlocks; + } + } + + + virtual void DrawIntoChunk(cChunkDesc & a_ChunkDesc) override + { + int BlockStartX = a_ChunkDesc.GetChunkX() * cChunkDef::Width; + int BlockStartZ = a_ChunkDesc.GetChunkZ() * cChunkDef::Width; + int BlockEndX = BlockStartX + cChunkDef::Width; + int BlockEndZ = BlockStartZ + cChunkDef::Width; + for (sRavineDefPoints::const_iterator itr = m_DefPoints.begin(), end = m_DefPoints.end(); itr != end; ++itr) + { + if ( + (ceilf (itr->m_X + itr->m_Radius + 2) < BlockStartX) || + (floorf(itr->m_X - itr->m_Radius - 2) > BlockEndX) || + (ceilf (itr->m_Z + itr->m_Radius + 2) < BlockStartZ) || + (floorf(itr->m_Z - itr->m_Radius - 2) > BlockEndZ) + ) + { + // Cannot intersect, bail out early + continue; + } + + // Carve out a cylinder around the xz point, up to (m_Radius + 2) in diameter, from Bottom to Top: + // On each height level, use m_PerHeightRadius[] to modify the actual radius used + // EnlargedRadiusSq is the square of the radius enlarged by the maximum m_PerHeightRadius offset - anything outside it will never be touched. + float RadiusSq = (itr->m_Radius + 2) * (itr->m_Radius + 2); + float DifX = BlockStartX - itr->m_X; // substitution for faster calc + float DifZ = BlockStartZ - itr->m_Z; // substitution for faster calc + for (int x = 0; x < cChunkDef::Width; x++) for (int z = 0; z < cChunkDef::Width; z++) + { + #ifdef _DEBUG + // DEBUG: Make the roughravine shapepoints visible on a single layer (so that we can see with Minutor what's going on) + if ((DifX + x == 0) && (DifZ + z == 0)) + { + a_ChunkDesc.SetBlockType(x, 4, z, E_BLOCK_LAPIS_ORE); + } + #endif // _DEBUG + + // If the column is outside the enlarged radius, bail out completely + float DistSq = (DifX + x) * (DifX + x) + (DifZ + z) * (DifZ + z); + if (DistSq > RadiusSq) + { + continue; + } + + int Top = std::min((int)ceilf(itr->m_Top), +cChunkDef::Height); + for (int y = std::max((int)floorf(itr->m_Bottom), 1); y <= Top; y++) + { + if ((itr->m_Radius + m_PerHeightRadius[y]) * (itr->m_Radius + m_PerHeightRadius[y]) < DistSq) + { + continue; + } + + if (cBlockInfo::CanBeTerraformed(a_ChunkDesc.GetBlockType(x, y, z))) + { + a_ChunkDesc.SetBlockType(x, y, z, E_BLOCK_AIR); + } + } // for y + } // for x, z - a_BlockTypes + } // for itr - m_Points[] + } +}; + + + + + +//////////////////////////////////////////////////////////////////////////////// +// cRoughRavines: + +cRoughRavines::cRoughRavines( + int a_Seed, + int a_MaxSize, int a_MinSize, + float a_MaxCenterWidth, float a_MinCenterWidth, + float a_MaxRoughness, float a_MinRoughness, + float a_MaxFloorHeightEdge, float a_MinFloorHeightEdge, + float a_MaxFloorHeightCenter, float a_MinFloorHeightCenter, + float a_MaxCeilingHeightEdge, float a_MinCeilingHeightEdge, + float a_MaxCeilingHeightCenter, float a_MinCeilingHeightCenter, + int a_GridSize, int a_MaxOffset +) : + super(a_Seed, a_GridSize, a_GridSize, a_MaxOffset, a_MaxOffset, a_MaxSize, a_MaxSize, 64), + m_Seed(a_Seed), + m_MaxSize(a_MaxSize), + m_MinSize(a_MinSize), + m_MaxCenterWidth(a_MaxCenterWidth), + m_MinCenterWidth(a_MinCenterWidth), + m_MaxRoughness(a_MaxRoughness), + m_MinRoughness(a_MinRoughness), + m_MaxFloorHeightEdge(a_MaxFloorHeightEdge), + m_MinFloorHeightEdge(a_MinFloorHeightEdge), + m_MaxFloorHeightCenter(a_MaxFloorHeightCenter), + m_MinFloorHeightCenter(a_MinFloorHeightCenter), + m_MaxCeilingHeightEdge(a_MaxCeilingHeightEdge), + m_MinCeilingHeightEdge(a_MinCeilingHeightEdge), + m_MaxCeilingHeightCenter(a_MaxCeilingHeightCenter), + m_MinCeilingHeightCenter(a_MinCeilingHeightCenter) +{ + if (m_MinSize > m_MaxSize) + { + std::swap(m_MinSize, m_MaxSize); + std::swap(a_MinSize, a_MaxSize); + } + if (m_MaxSize < 16) + { + m_MaxSize = 16; + LOGWARNING("RoughRavines: MaxSize too small, adjusting request from %d to %d", a_MaxSize, m_MaxSize); + } + if (m_MinSize < 16) + { + m_MinSize = 16; + LOGWARNING("RoughRavines: MinSize too small, adjusting request from %d to %d", a_MinSize, m_MinSize); + } + if (m_MinSize == m_MaxSize) + { + m_MaxSize = m_MinSize + 1; + } +} + + + + + +cGridStructGen::cStructurePtr cRoughRavines::CreateStructure(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ) +{ + // Pick a random value for each of the ravine's parameters: + int Size = m_MinSize + (m_Noise.IntNoise2DInt(a_GridX, a_GridZ) / 7) % (m_MaxSize - m_MinSize); // Random int from m_MinSize to m_MaxSize + float CenterWidth = m_Noise.IntNoise2DInRange(a_GridX + 10, a_GridZ, m_MinCenterWidth, m_MaxCenterWidth); + float Roughness = m_Noise.IntNoise2DInRange(a_GridX + 20, a_GridZ, m_MinRoughness, m_MaxRoughness); + float FloorHeightEdge1 = m_Noise.IntNoise2DInRange(a_GridX + 30, a_GridZ, m_MinFloorHeightEdge, m_MaxFloorHeightEdge); + float FloorHeightEdge2 = m_Noise.IntNoise2DInRange(a_GridX + 40, a_GridZ, m_MinFloorHeightEdge, m_MaxFloorHeightEdge); + float FloorHeightCenter = m_Noise.IntNoise2DInRange(a_GridX + 50, a_GridZ, m_MinFloorHeightCenter, m_MaxFloorHeightCenter); + float CeilingHeightEdge1 = m_Noise.IntNoise2DInRange(a_GridX + 60, a_GridZ, m_MinCeilingHeightEdge, m_MaxCeilingHeightEdge); + float CeilingHeightEdge2 = m_Noise.IntNoise2DInRange(a_GridX + 70, a_GridZ, m_MinCeilingHeightEdge, m_MaxCeilingHeightEdge); + float CeilingHeightCenter = m_Noise.IntNoise2DInRange(a_GridX + 80, a_GridZ, m_MinCeilingHeightCenter, m_MaxCeilingHeightCenter); + + // Create a ravine: + return cStructurePtr(new cRoughRavine( + m_Seed, + Size, CenterWidth, Roughness, + FloorHeightEdge1, FloorHeightEdge2, FloorHeightCenter, + CeilingHeightEdge1, CeilingHeightEdge2, CeilingHeightCenter, + a_GridX, a_GridZ, a_OriginX, a_OriginZ + )); +} + + + + diff --git a/src/Generating/RoughRavines.h b/src/Generating/RoughRavines.h new file mode 100644 index 000000000..4c905b641 --- /dev/null +++ b/src/Generating/RoughRavines.h @@ -0,0 +1,86 @@ + +// RoughRavines.h + +// Declares the cRoughRavines class representing the rough ravine generator + + + + +#pragma once + +#include "GridStructGen.h" + + + + + +class cRoughRavines : + public cGridStructGen +{ + typedef cGridStructGen super; + +public: + cRoughRavines( + int a_Seed, + int a_MaxSize, int a_MinSize, + float a_MaxCenterWidth, float a_MinCenterWidth, + float a_MaxRoughness, float a_MinRoughness, + float a_MaxFloorHeightEdge, float a_MinFloorHeightEdge, + float a_MaxFloorHeightCenter, float a_MinFloorHeightCenter, + float a_MaxCeilingHeightEdge, float a_MinCeilingHeightEdge, + float a_MaxCeilingHeightCenter, float a_MinCeilingHeightCenter, + int a_GridSize, int a_MaxOffset + ); + +protected: + int m_Seed; + + /** Maximum size of the ravine, in each of the X / Z axis */ + int m_MaxSize; + + /** Minimum size of the ravine */ + int m_MinSize; + + /** Maximum width of the ravine's center, in blocks */ + float m_MaxCenterWidth; + + /** Minimum width of the ravine's center, in blocks */ + float m_MinCenterWidth; + + /** Maximum roughness of the ravine */ + float m_MaxRoughness; + + /** Minimum roughness of the ravine */ + float m_MinRoughness; + + /** Maximum floor height at the ravine's edge */ + float m_MaxFloorHeightEdge; + + /** Minimum floor height at the ravine's edge */ + float m_MinFloorHeightEdge; + + /** Maximum floor height at the ravine's center */ + float m_MaxFloorHeightCenter; + + /** Minimum floor height at the ravine's center */ + float m_MinFloorHeightCenter; + + /** Maximum ceiling height at the ravine's edge */ + float m_MaxCeilingHeightEdge; + + /** Minimum ceiling height at the ravine's edge */ + float m_MinCeilingHeightEdge; + + /** Maximum ceiling height at the ravine's center */ + float m_MaxCeilingHeightCenter; + + /** Minimum ceiling height at the ravine's center */ + float m_MinCeilingHeightCenter; + + // cGridStructGen overrides: + virtual cStructurePtr CreateStructure(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ) override; +}; + + + + diff --git a/src/Generating/StructGen.cpp b/src/Generating/StructGen.cpp index 636364e17..054eec345 100644 --- a/src/Generating/StructGen.cpp +++ b/src/Generating/StructGen.cpp @@ -12,7 +12,7 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cStructGenOreNests configuration: const int MAX_HEIGHT_COAL = 127; @@ -51,7 +51,7 @@ const int NEST_SIZE_GRAVEL = 32; -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cStructGenTrees: void cStructGenTrees::GenFinish(cChunkDesc & a_ChunkDesc) @@ -151,7 +151,7 @@ void cStructGenTrees::GenerateSingleTree( sSetBlockVector TreeLogs, TreeOther; GetTreeImageByBiome( a_ChunkX * cChunkDef::Width + x, Height + 1, a_ChunkZ * cChunkDef::Width + z, - m_Noise, a_Seq, + m_Noise, a_Seq, a_ChunkDesc.GetBiome(x, z), TreeLogs, TreeOther ); @@ -181,7 +181,7 @@ void cStructGenTrees::GenerateSingleTree( } ApplyTreeImage(a_ChunkX, a_ChunkZ, a_ChunkDesc, TreeOther, a_OutsideOther); - ApplyTreeImage(a_ChunkX, a_ChunkZ, a_ChunkDesc, TreeLogs, a_OutsideLogs); + ApplyTreeImage(a_ChunkX, a_ChunkZ, a_ChunkDesc, TreeLogs, a_OutsideLogs); } @@ -303,7 +303,7 @@ int cStructGenTrees::GetNumTrees( -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cStructGenOreNests: void cStructGenOreNests::GenFinish(cChunkDesc & a_ChunkDesc) @@ -410,7 +410,7 @@ void cStructGenOreNests::GenerateOre(int a_ChunkX, int a_ChunkZ, BLOCKTYPE a_Ore -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cStructGenLakes: void cStructGenLakes::GenFinish(cChunkDesc & a_ChunkDesc) @@ -484,7 +484,6 @@ void cStructGenLakes::CreateLakeImage(int a_ChunkX, int a_ChunkZ, cBlockArea & a const int BubbleY = 4 + (Rnd & 0x01); // 4 .. 5 Rnd >>= 1; const int BubbleZ = BubbleR + (Rnd % Range); - Rnd >>= 4; const int HalfR = BubbleR / 2; // 1 .. 2 const int RSquared = BubbleR * BubbleR; for (int y = -HalfR; y <= HalfR; y++) @@ -500,7 +499,7 @@ void cStructGenLakes::CreateLakeImage(int a_ChunkX, int a_ChunkZ, cBlockArea & a continue; } int IdxYZ = BubbleX + IdxY + (BubbleZ + z) * 16; - for (int x = -BubbleR; x <= BubbleR; x++) + for (int x = -BubbleR; x <= BubbleR; x++) { if (x * x + DistYZ < RSquared) { @@ -511,10 +510,10 @@ void cStructGenLakes::CreateLakeImage(int a_ChunkX, int a_ChunkZ, cBlockArea & a } // for y } // for i - bubbles - // Turn air in the bottom half into liquid: + // Turn air in the bottom half into liquid: for (int y = 0; y < 4; y++) { - for (int z = 0; z < 16; z++) for (int x = 0; x < 16; x++) + for (int z = 0; z < 16; z++) for (int x = 0; x < 16; x++) { if (BlockTypes[x + z * 16 + y * 16 * 16] == E_BLOCK_AIR) { @@ -532,7 +531,7 @@ void cStructGenLakes::CreateLakeImage(int a_ChunkX, int a_ChunkZ, cBlockArea & a -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cStructGenDirectOverhangs: cStructGenDirectOverhangs::cStructGenDirectOverhangs(int a_Seed) : @@ -573,8 +572,8 @@ void cStructGenDirectOverhangs::GenFinish(cChunkDesc & a_ChunkDesc) // Interpolate the lowest floor: for (int z = 0; z <= 16 / INTERPOL_Z; z++) for (int x = 0; x <= 16 / INTERPOL_X; x++) { - FloorLo[INTERPOL_X * x + 17 * INTERPOL_Z * z] = - m_Noise1.IntNoise3DInt(BaseX + INTERPOL_X * x, BaseY, BaseZ + INTERPOL_Z * z) * + FloorLo[INTERPOL_X * x + 17 * INTERPOL_Z * z] = + m_Noise1.IntNoise3DInt(BaseX + INTERPOL_X * x, BaseY, BaseZ + INTERPOL_Z * z) * m_Noise2.IntNoise3DInt(BaseX + INTERPOL_X * x, BaseY, BaseZ + INTERPOL_Z * z) / 256; } // for x, z - FloorLo[] @@ -648,7 +647,7 @@ bool cStructGenDirectOverhangs::HasWantedBiome(cChunkDesc & a_ChunkDesc) const -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cStructGenDistortedMembraneOverhangs: cStructGenDistortedMembraneOverhangs::cStructGenDistortedMembraneOverhangs(int a_Seed) : diff --git a/src/Generating/TestRailsGen.cpp b/src/Generating/TestRailsGen.cpp new file mode 100644 index 000000000..66ab8b33f --- /dev/null +++ b/src/Generating/TestRailsGen.cpp @@ -0,0 +1,116 @@ + +// TestRailsGen.cpp + +// Implements the cTestRailsGen class representing the testing rails generator + +#include "Globals.h" +#include "TestRailsGen.h" +#include "Prefabs/TestRailsPrefabs.h" +#include "PieceGenerator.h" + + + + + +static cPrefabPiecePool g_TestRails(g_TestRailsPrefabs, g_TestRailsPrefabsCount, g_TestRailsStartingPrefabs, g_TestRailsStartingPrefabsCount); + + + + + +//////////////////////////////////////////////////////////////////////////////// +// cTestRailsGen::cTestRails: + +class cTestRailsGen::cTestRails : + public cGridStructGen::cStructure +{ + typedef cGridStructGen::cStructure super; + +public: + cTestRails( + int a_Seed, + int a_GridX, int a_GridZ, + int a_OriginX, int a_OriginZ, + int a_MaxDepth, + int a_MaxSize + ) : + super(a_GridX, a_GridZ, a_OriginX, a_OriginZ), + m_Seed(a_Seed), + m_Noise(a_Seed), + m_MaxSize(a_MaxSize), + m_Borders(a_OriginX - a_MaxSize, 0, a_OriginZ - a_MaxSize, a_OriginX + a_MaxSize, 255, a_OriginZ + a_MaxSize) + { + // Generate the pieces for this test: + cBFSPieceGenerator pg(g_TestRails, a_Seed); + pg.PlacePieces(a_OriginX, 150, a_OriginZ, a_MaxDepth, m_Pieces); + if (m_Pieces.empty()) + { + return; + } + } + + ~cTestRails() + { + cPieceGenerator::FreePieces(m_Pieces); + } + +protected: + /** Seed for the random functions */ + int m_Seed; + + /** The noise used as a pseudo-random generator */ + cNoise m_Noise; + + /** Maximum size, in X/Z blocks, of the structure (radius from the origin) */ + int m_MaxSize; + + /** Borders of the structure - no item may reach out of this cuboid. */ + cCuboid m_Borders; + + /** The rails pieces, placed by the generator. */ + cPlacedPieces m_Pieces; + + + // cGridStructGen::cStructure overrides: + virtual void DrawIntoChunk(cChunkDesc & a_Chunk) override + { + for (cPlacedPieces::iterator itr = m_Pieces.begin(), end = m_Pieces.end(); itr != end; ++itr) + { + cPrefab & Prefab = (cPrefab &)((*itr)->GetPiece()); + Prefab.Draw(a_Chunk, *itr); + } // for itr - m_PlacedPieces[] + } +} ; + + + + + +//////////////////////////////////////////////////////////////////////////////// +// cTestRailsGen: + + + + + +cTestRailsGen::cTestRailsGen(int a_Seed, int a_GridSize, int a_MaxOffset, int a_MaxDepth, int a_MaxSize) : + super(a_Seed, a_GridSize, a_GridSize, a_MaxOffset, a_MaxOffset, a_MaxSize, a_MaxSize, 100), + m_Noise(a_Seed + 1000), + m_MaxDepth(a_MaxDepth), + m_MaxSize(a_MaxSize) +{ +} + + + + + +cGridStructGen::cStructurePtr cTestRailsGen::CreateStructure(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ) +{ + // Create a base based on the chosen prefabs: + return cStructurePtr(new cTestRails(m_Seed, a_GridX, a_GridZ, a_OriginX, a_OriginZ, m_MaxDepth, m_MaxSize)); +} + + + + diff --git a/src/Generating/TestRailsGen.h b/src/Generating/TestRailsGen.h new file mode 100644 index 000000000..5b0ce95f4 --- /dev/null +++ b/src/Generating/TestRailsGen.h @@ -0,0 +1,47 @@ + +// TestRailsGen.h + +// Declares the cTestRailsGen class representing the testing rails generator + + + + + +#pragma once + +#include "GridStructGen.h" +#include "PrefabPiecePool.h" + + + + + +class cTestRailsGen : + public cGridStructGen +{ + typedef cGridStructGen super; + +public: + cTestRailsGen(int a_Seed, int a_GridSize, int a_MaxOffset, int a_MaxDepth, int a_MaxSize); + +protected: + class cTestRails; // fwd: TestRailsGen.cpp + + + /** The noise used for generating random numbers */ + cNoise m_Noise; + + /** Maximum depth of the generator tree*/ + int m_MaxDepth; + + /** Maximum size, in X/Z blocks, of the base (radius from the origin) */ + int m_MaxSize; + + + // cGridStructGen overrides: + virtual cStructurePtr CreateStructure(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ) override; +} ; + + + + diff --git a/src/Generating/Trees.cpp b/src/Generating/Trees.cpp index 522f45148..32594d0b4 100644 --- a/src/Generating/Trees.cpp +++ b/src/Generating/Trees.cpp @@ -10,13 +10,6 @@ -// DEBUG: -int gTotalLargeJungleTrees = 0; -int gOversizeLargeJungleTrees = 0; - - - - typedef struct { @@ -41,49 +34,49 @@ static const sCoords Corners[] = static const sCoords BigO1[] = { - {0, -1}, - {-1, 0}, {1, 0}, - {0, 1}, + /* -1 */ {0, -1}, + /* 0 */ {-1, 0}, {1, 0}, + /* 1 */ {0, 1}, } ; static const sCoords BigO2[] = { - {-1, -2}, {0, -2}, {1, -2}, - {-2, -1}, {-1, -1}, {0, -1}, {1, -1}, {2, -1}, - {-2, 0}, {-1, 0}, {1, 0}, {2, 0}, - {-2, 1}, {-1, 1}, {0, 1}, {1, 1}, {2, 1}, - {-1, 2}, {0, 2}, {1, 2}, + /* -2 */ {-1, -2}, {0, -2}, {1, -2}, + /* -1 */ {-2, -1}, {-1, -1}, {0, -1}, {1, -1}, {2, -1}, + /* 0 */ {-2, 0}, {-1, 0}, {1, 0}, {2, 0}, + /* 1 */ {-2, 1}, {-1, 1}, {0, 1}, {1, 1}, {2, 1}, + /* 2 */ {-1, 2}, {0, 2}, {1, 2}, } ; static const sCoords BigO3[] = { - {-2, -3}, {-1, -3}, {0, -3}, {1, -3}, {2, -3}, - {-3, -2}, {-2, -2}, {-1, -2}, {0, -2}, {1, -2}, {2, -2}, {3, -2}, - {-3, -1}, {-2, -1}, {-1, -1}, {0, -1}, {1, -1}, {2, -1}, {3, -1}, - {-3, 0}, {-2, 0}, {-1, 0}, {1, 0}, {2, 0}, {3, 0}, - {-3, 1}, {-2, 1}, {-1, 1}, {0, 1}, {1, 1}, {2, 1}, {3, 1}, - {-3, 2}, {-2, 2}, {-1, 2}, {0, 2}, {1, 2}, {2, 2}, {3, 2}, - {-2, 3}, {-1, 3}, {0, 3}, {1, 3}, {2, 3}, + /* -3 */ {-2, -3}, {-1, -3}, {0, -3}, {1, -3}, {2, -3}, + /* -2 */ {-3, -2}, {-2, -2}, {-1, -2}, {0, -2}, {1, -2}, {2, -2}, {3, -2}, + /* -1 */ {-3, -1}, {-2, -1}, {-1, -1}, {0, -1}, {1, -1}, {2, -1}, {3, -1}, + /* 0 */ {-3, 0}, {-2, 0}, {-1, 0}, {1, 0}, {2, 0}, {3, 0}, + /* 1 */ {-3, 1}, {-2, 1}, {-1, 1}, {0, 1}, {1, 1}, {2, 1}, {3, 1}, + /* 2 */ {-3, 2}, {-2, 2}, {-1, 2}, {0, 2}, {1, 2}, {2, 2}, {3, 2}, + /* 3 */ {-2, 3}, {-1, 3}, {0, 3}, {1, 3}, {2, 3}, } ; -static const sCoords BigO4[] = // Part of Big Jungle tree +static const sCoords BigO4[] = // Part of Big Jungle tree { - {-2, -4}, {-1, -4}, {0, -4}, {1, -4}, {2, -4}, - {-3, -3}, {-2, -3}, {-1, -3}, {0, -3}, {1, -3}, {2, -3}, {3, -3}, - {-4, -2}, {-3, -2}, {-2, -2}, {-1, -2}, {0, -2}, {1, -2}, {2, -2}, {3, -2}, {4, -2}, - {-4, -1}, {-3, -1}, {-2, -1}, {-1, -1}, {0, -1}, {1, -1}, {2, -1}, {3, -1}, {4, -1}, - {-4, 0}, {-3, 0}, {-2, 0}, {-1, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}, - {-4, 1}, {-3, 1}, {-2, 1}, {-1, 1}, {0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}, - {-4, 2}, {-3, 2}, {-2, 2}, {-1, 2}, {0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2}, - {-3, 3}, {-2, 3}, {-1, 3}, {0, 3}, {1, 3}, {2, 3}, {3, 3}, - {-2, 4}, {-1, 4}, {0, 4}, {1, 4}, {2, 4}, + /* -4 */ {-2, -4}, {-1, -4}, {0, -4}, {1, -4}, {2, -4}, + /* -3 */ {-3, -3}, {-2, -3}, {-1, -3}, {0, -3}, {1, -3}, {2, -3}, {3, -3}, + /* -2 */ {-4, -2}, {-3, -2}, {-2, -2}, {-1, -2}, {0, -2}, {1, -2}, {2, -2}, {3, -2}, {4, -2}, + /* -1 */ {-4, -1}, {-3, -1}, {-2, -1}, {-1, -1}, {0, -1}, {1, -1}, {2, -1}, {3, -1}, {4, -1}, + /* 0 */ {-4, 0}, {-3, 0}, {-2, 0}, {-1, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}, + /* 1 */ {-4, 1}, {-3, 1}, {-2, 1}, {-1, 1}, {0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}, + /* 2 */ {-4, 2}, {-3, 2}, {-2, 2}, {-1, 2}, {0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2}, + /* 3 */ {-3, 3}, {-2, 3}, {-1, 3}, {0, 3}, {1, 3}, {2, 3}, {3, 3}, + /* 4 */ {-2, 4}, {-1, 4}, {0, 4}, {1, 4}, {2, 4}, } ; -typedef struct +typedef struct { const sCoords * Coords; size_t Count; @@ -113,6 +106,7 @@ inline void PushCoordBlocks(int a_BlockX, int a_Height, int a_BlockZ, sSetBlockV + inline void PushCornerBlocks(int a_BlockX, int a_Height, int a_BlockZ, int a_Seq, cNoise & a_Noise, int a_Chance, sSetBlockVector & a_Blocks, int a_CornersDist, BLOCKTYPE a_BlockType, NIBBLETYPE a_Meta) { for (size_t i = 0; i < ARRAYCOUNT(Corners); i++) @@ -203,7 +197,7 @@ void GetTreeImageByBiome(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_No { GetAppleBushImage(a_BlockX, a_BlockY, a_BlockZ, a_Noise, a_Seq, a_LogBlocks, a_OtherBlocks); } - else + else { GetJungleTreeImage(a_BlockX, a_BlockY, a_BlockZ, a_Noise, a_Seq, a_LogBlocks, a_OtherBlocks); } @@ -224,7 +218,6 @@ void GetTreeImageByBiome(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_No return; } - case biRoofedForest: case biColdTaiga: case biColdTaigaHills: case biMegaTaiga: @@ -244,7 +237,6 @@ void GetTreeImageByBiome(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_No case biIcePlainsSpikes: case biJungleM: case biJungleEdgeM: - case biRoofedForestM: case biColdTaigaM: case biMegaSpruceTaiga: case biMegaSpruceTaigaHills: @@ -259,6 +251,13 @@ void GetTreeImageByBiome(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_No GetBirchTreeImage(a_BlockX, a_BlockY, a_BlockZ, a_Noise, a_Seq, a_LogBlocks, a_OtherBlocks); return; } + + case biRoofedForest: + case biRoofedForestM: + { + GetDarkoakTreeImage(a_BlockX, a_BlockY, a_BlockZ, a_Noise, a_Seq, a_LogBlocks, a_OtherBlocks); + return; + } case biDesert: case biDesertHills: @@ -413,7 +412,60 @@ void GetAcaciaTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_Noi void GetDarkoakTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_Noise, int a_Seq, sSetBlockVector & a_LogBlocks, sSetBlockVector & a_OtherBlocks) { - // TODO + // Pick a height + int Height = 5 + (a_Noise.IntNoise3DInt(a_BlockX + 32 * a_Seq, a_BlockY, a_BlockZ + 32 * a_Seq) / 11) % 4; + + // Create the trunk + for (int i = 0; i < Height; i++) + { + a_LogBlocks.push_back(sSetBlock(a_BlockX, a_BlockY + i, a_BlockZ, E_BLOCK_NEW_LOG, E_META_NEW_LOG_DARK_OAK_WOOD)); + a_LogBlocks.push_back(sSetBlock(a_BlockX + 1, a_BlockY + i, a_BlockZ, E_BLOCK_NEW_LOG, E_META_NEW_LOG_DARK_OAK_WOOD)); + a_LogBlocks.push_back(sSetBlock(a_BlockX, a_BlockY + i, a_BlockZ + 1, E_BLOCK_NEW_LOG, E_META_NEW_LOG_DARK_OAK_WOOD)); + a_LogBlocks.push_back(sSetBlock(a_BlockX + 1, a_BlockY + i, a_BlockZ + 1, E_BLOCK_NEW_LOG, E_META_NEW_LOG_DARK_OAK_WOOD)); + } + + // Create branches + for (int i = 0; i < 3; i++) + { + int x = (a_Noise.IntNoise3DInt(a_BlockX + 32 * a_Seq, a_BlockY * i, a_BlockZ + 32 * a_Seq) % 3) - 1; + int z = (a_Noise.IntNoise3DInt(a_BlockX - 32 * a_Seq, a_BlockY * i, a_BlockZ - 32 * a_Seq) % 3) - 1; + + // The branches would end up in the trunk. + if ((x >= a_BlockX) && (x <= a_BlockX + 1) && (z >= a_BlockZ) && (z <= a_BlockZ + 1)) + { + NOISE_DATATYPE Val1 = a_Noise.IntNoise2D(x, z); + if (Val1 < 0) + { + x = a_BlockX + ((Val1 < -0.5) ? -1 : 3); + } + else + { + z = a_BlockZ + ((Val1 < 0.5) ? -1 : 3); + } + } + + int y = Height - (a_Noise.IntNoise3DInt(a_BlockX + x, a_BlockY * i, a_BlockZ - z) % (Height - (Height / 4))); + + for (int Y = y; Y < Height; Y++) + { + a_LogBlocks.push_back(sSetBlock(a_BlockX + x, a_BlockY + Y, a_BlockZ + z, E_BLOCK_NEW_LOG, E_META_NEW_LOG_DARK_OAK_WOOD)); + } + } + + int hei = a_BlockY + Height - 2; + + // The lower two leaves layers are BigO4 with log in the middle and possibly corners: + for (int i = 0; i < 2; i++) + { + PushCoordBlocks(a_BlockX, hei, a_BlockZ, a_OtherBlocks, BigO4, ARRAYCOUNT(BigO4), E_BLOCK_NEW_LEAVES, E_META_NEW_LEAVES_DARK_OAK_WOOD); + PushCornerBlocks(a_BlockX, hei, a_BlockZ, a_Seq, a_Noise, 0x5fffffff, a_OtherBlocks, 3, E_BLOCK_NEW_LEAVES, E_META_NEW_LEAVES_DARK_OAK_WOOD); + hei++; + } // for i < 2 + + // The top leaves layer is a BigO3 with leaves in the middle and possibly corners: + PushCoordBlocks(a_BlockX, hei, a_BlockZ, a_OtherBlocks, BigO3, ARRAYCOUNT(BigO3), E_BLOCK_NEW_LEAVES, E_META_NEW_LEAVES_DARK_OAK_WOOD); + PushCornerBlocks(a_BlockX, hei, a_BlockZ, a_Seq, a_Noise, 0x5fffffff, a_OtherBlocks, 3, E_BLOCK_NEW_LEAVES, E_META_NEW_LEAVES_DARK_OAK_WOOD); + a_OtherBlocks.push_back(sSetBlock(a_BlockX, hei, a_BlockZ, E_BLOCK_NEW_LEAVES, E_META_NEW_LEAVES_DARK_OAK_WOOD)); } @@ -598,11 +650,11 @@ void GetPineTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_Noise } int h = a_BlockY + TrunkHeight + 2; - // Top layer - just a single leaves block: + // Top layer - just a single leaves block: a_OtherBlocks.push_back(sSetBlock(a_BlockX, h, a_BlockZ, E_BLOCK_LEAVES, E_META_LEAVES_CONIFER)); h--; - // One more layer is above the trunk, push the central leaves: + // One more layer is above the trunk, push the central leaves: a_OtherBlocks.push_back(sSetBlock(a_BlockX, h, a_BlockZ, E_BLOCK_LEAVES, E_META_LEAVES_CONIFER)); // Layers expanding in size, then collapsing again: @@ -773,10 +825,10 @@ void GetSmallJungleTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_LogBlocks.reserve(Height); a_OtherBlocks.reserve( - 2 * ARRAYCOUNT(BigO3) + // O3 layer, 2x - 2 * ARRAYCOUNT(BigO2) + // O2 layer, 2x - ARRAYCOUNT(BigO1) + 1 + // Plus on the top - Height * ARRAYCOUNT(Vines) + // Vines + 2 * ARRAYCOUNT(BigO3) + // O3 layer, 2x + 2 * ARRAYCOUNT(BigO2) + // O2 layer, 2x + ARRAYCOUNT(BigO1) + 1 + // Plus on the top + Height * ARRAYCOUNT(Vines) + // Vines 50 // some safety ); diff --git a/src/Generating/Trees.h b/src/Generating/Trees.h index 00f343a3d..1f6ac4dff 100644 --- a/src/Generating/Trees.h +++ b/src/Generating/Trees.h @@ -70,7 +70,7 @@ void GetAcaciaTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_Noi void GetDarkoakTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_Noise, int a_Seq, sSetBlockVector & a_LogBlocks, sSetBlockVector & a_OtherBlocks); /// Generates an image of a random large birch tree -void GetTallBirchTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_Noise, int a_Seq, sSetBlockVector & a_LogBlocks,sSetBlockVector & a_OtherBlocks); +void GetTallBirchTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_Noise, int a_Seq, sSetBlockVector & a_LogBlocks, sSetBlockVector & a_OtherBlocks); /// Generates an image of a random conifer tree void GetConiferTreeImage(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_Noise, int a_Seq, sSetBlockVector & a_LogBlocks, sSetBlockVector & a_OtherBlocks); diff --git a/src/Generating/UnderwaterBaseGen.cpp b/src/Generating/UnderwaterBaseGen.cpp index d3abae9b7..9278ea546 100644 --- a/src/Generating/UnderwaterBaseGen.cpp +++ b/src/Generating/UnderwaterBaseGen.cpp @@ -18,7 +18,7 @@ static cPrefabPiecePool g_UnderwaterBase(g_UnderwaterBasePrefabs, g_UnderwaterBa -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cUnderwaterBaseGen::cUnderwaterBase: class cUnderwaterBaseGen::cUnderwaterBase : @@ -86,7 +86,7 @@ protected: -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cUnderwaterBaseGen: diff --git a/src/Generating/VillageGen.cpp b/src/Generating/VillageGen.cpp index 2b7ecc837..cade923c9 100644 --- a/src/Generating/VillageGen.cpp +++ b/src/Generating/VillageGen.cpp @@ -95,7 +95,7 @@ public: return ((const cPrefab &)a_NewPiece).GetPieceWeight(a_PlacedPiece, a_ExistingConnector); } -} ; +}; @@ -333,7 +333,7 @@ protected: -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cVillageGen: static cVillagePiecePool g_SandVillage(g_SandVillagePrefabs, g_SandVillagePrefabsCount, g_SandVillageStartingPrefabs, g_SandVillageStartingPrefabsCount); |