From 25d933883a24c97b67f90ae6839ce3d6b8d630d5 Mon Sep 17 00:00:00 2001 From: Tycho Date: Sun, 27 Apr 2014 13:07:21 -0700 Subject: Removed unneeded assert Fixed CID 43610 --- src/Generating/Prefab.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/Generating') diff --git a/src/Generating/Prefab.cpp b/src/Generating/Prefab.cpp index c0c9e8a13..44d5097de 100644 --- a/src/Generating/Prefab.cpp +++ b/src/Generating/Prefab.cpp @@ -283,7 +283,7 @@ void cPrefab::ParseCharMap(CharMap & a_CharMapOut, const char * a_CharMapDef) if ((NumElements >= 3) && !CharDef[2].empty()) { BlockMeta = (NIBBLETYPE)atoi(CharDef[2].c_str()); - ASSERT((BlockMeta >= 0) && (BlockMeta <= 15)); + ASSERT((BlockMeta <= 15)); } a_CharMapOut[Src].m_BlockMeta = BlockMeta; } // for itr - Lines[] -- cgit v1.2.3 From e4af9a21af44a7c5d4e02ac17a1b694858c8a39d Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Mon, 5 May 2014 22:28:54 +0200 Subject: Prefabs can specify that they don't want flooring. Previously the flag was ignored. --- src/Generating/Prefab.cpp | 63 +++++++++++++++++++++++++---------------------- 1 file changed, 33 insertions(+), 30 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/Prefab.cpp b/src/Generating/Prefab.cpp index 44d5097de..0f20603be 100644 --- a/src/Generating/Prefab.cpp +++ b/src/Generating/Prefab.cpp @@ -174,44 +174,47 @@ void cPrefab::Draw(cChunkDesc & a_Dest, const cPlacedPiece * a_Placement) const 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) - int MaxX = Image.GetSizeX(); - int MaxZ = Image.GetSizeZ(); - for (int z = 0; z < MaxZ; z++) + if (m_ShouldExtendFloor) { - int RelZ = Placement.z + z; - if ((RelZ < 0) || (RelZ >= cChunkDef::Width)) + int MaxX = Image.GetSizeX(); + int MaxZ = Image.GetSizeZ(); + for (int z = 0; z < MaxZ; z++) { - // Z coord outside the chunk - continue; - } - for (int x = 0; x < MaxX; x++) - { - int RelX = Placement.x + x; - if ((RelX < 0) || (RelX >= cChunkDef::Width)) - { - // X coord outside the chunk - continue; - } - BLOCKTYPE BlockType; - NIBBLETYPE BlockMeta; - Image.GetRelBlockTypeMeta(x, 0, z, BlockType, BlockMeta); - if ((BlockType == E_BLOCK_AIR) || (BlockType == E_BLOCK_SPONGE)) + int RelZ = Placement.z + z; + if ((RelZ < 0) || (RelZ >= cChunkDef::Width)) { - // Do not expand air nor sponge blocks + // Z coord outside the chunk continue; } - for (int y = Placement.y - 1; y >= 0; y--) + for (int x = 0; x < MaxX; x++) { - BLOCKTYPE ExistingBlock = a_Dest.GetBlockType(RelX, y, RelZ); - if (ExistingBlock != E_BLOCK_AIR) + int RelX = Placement.x + x; + if ((RelX < 0) || (RelX >= cChunkDef::Width)) + { + // X coord outside the chunk + continue; + } + BLOCKTYPE BlockType; + NIBBLETYPE BlockMeta; + Image.GetRelBlockTypeMeta(x, 0, z, BlockType, BlockMeta); + if ((BlockType == E_BLOCK_AIR) || (BlockType == E_BLOCK_SPONGE)) { - // End the expansion for this column, reached the end - break; + // Do not expand air nor sponge blocks + continue; } - a_Dest.SetBlockTypeMeta(RelX, y, RelZ, BlockType, BlockMeta); - } // for y - } // for x - } // for z + for (int y = Placement.y - 1; y >= 0; y--) + { + BLOCKTYPE ExistingBlock = a_Dest.GetBlockType(RelX, y, RelZ); + if (ExistingBlock != E_BLOCK_AIR) + { + // End the expansion for this column, reached the end + break; + } + a_Dest.SetBlockTypeMeta(RelX, y, RelZ, BlockType, BlockMeta); + } // for y + } // for x + } // for z + } } -- cgit v1.2.3 From 9542b0b8755e89040823632b05ef07c8e39912b8 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Mon, 5 May 2014 23:05:30 +0200 Subject: Changed cPieceGenerator to support pairings. Fixes #982. --- src/Generating/PieceGenerator.cpp | 5 +- src/Generating/PieceGenerator.h | 3 +- src/Generating/Prefabs/NetherFortPrefabs.cpp | 153 +++++++++++++++++---------- 3 files changed, 104 insertions(+), 57 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/PieceGenerator.cpp b/src/Generating/PieceGenerator.cpp index 8e9a48be6..db45cd08b 100644 --- a/src/Generating/PieceGenerator.cpp +++ b/src/Generating/PieceGenerator.cpp @@ -388,7 +388,8 @@ bool cPieceGenerator::TryPlacePieceAtConnector( // Get a list of available connections: const int * RotTable = DirectionRotationTable[a_Connector.m_Direction]; cConnections Connections; - cPieces AvailablePieces = m_PiecePool.GetPiecesWithConnector(a_Connector.m_Type); + int WantedConnectorType = -a_Connector.m_Type; + cPieces AvailablePieces = m_PiecePool.GetPiecesWithConnector(WantedConnectorType); Connections.reserve(AvailablePieces.size()); Vector3i ConnPos = a_Connector.m_Pos; // The position at which the new connector should be placed - 1 block away from the connector AddFaceDirection(ConnPos.x, ConnPos.y, ConnPos.z, a_Connector.m_Direction); @@ -406,7 +407,7 @@ bool cPieceGenerator::TryPlacePieceAtConnector( cPiece::cConnectors Connectors = (*itrP)->GetConnectors(); for (cPiece::cConnectors::iterator itrC = Connectors.begin(), endC = Connectors.end(); itrC != endC; ++itrC) { - if (itrC->m_Type != a_Connector.m_Type) + if (itrC->m_Type != WantedConnectorType) { continue; } diff --git a/src/Generating/PieceGenerator.h b/src/Generating/PieceGenerator.h index f4433b947..16bec3bb4 100644 --- a/src/Generating/PieceGenerator.h +++ b/src/Generating/PieceGenerator.h @@ -38,7 +38,8 @@ public: /** Position relative to the piece */ Vector3i m_Pos; - /** Type of the connector. Any arbitrary number; the generator connects only connectors of the same type. */ + /** Type of the connector. Any arbitrary number; the generator connects only connectors of opposite + (negative) types. */ int m_Type; /** Direction in which the connector is facing. diff --git a/src/Generating/Prefabs/NetherFortPrefabs.cpp b/src/Generating/Prefabs/NetherFortPrefabs.cpp index d2ef5663d..088340391 100644 --- a/src/Generating/Prefabs/NetherFortPrefabs.cpp +++ b/src/Generating/Prefabs/NetherFortPrefabs.cpp @@ -134,7 +134,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // Connectors: "1: 12, 2, 2: 5\n" /* Type 1, direction X+ */ - "1: 0, 2, 2: 4\n" /* Type 1, direction X- */, + "1: 0, 2, 2: 4\n" /* Type 1, direction X- */ + "-1: 12, 2, 2: 5\n" /* Type -1, direction X+ */ + "-1: 0, 2, 2: 4\n" /* Type -1, direction X- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -143,7 +145,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = cBlockArea::msSpongePrint, // ShouldExtendFloor: - false, + true, // DefaultWeight: 20, @@ -291,7 +293,10 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // Connectors: "1: 12, 2, 4: 5\n" /* Type 1, direction X+ */ "1: 6, 2, 0: 2\n" /* Type 1, direction Z- */ - "1: 0, 2, 4: 4\n" /* Type 1, direction X- */, + "1: 0, 2, 4: 4\n" /* Type 1, direction X- */ + "-1: 12, 2, 4: 5\n" /* Type -1, direction X+ */ + "-1: 6, 2, 0: 2\n" /* Type -1, direction Z- */ + "-1: 0, 2, 4: 4\n" /* Type -1, direction X- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -300,7 +305,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = cBlockArea::msSpongePrint, // ShouldExtendFloor: - false, + true, // DefaultWeight: 20, @@ -420,7 +425,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = cBlockArea::msSpongePrint, // ShouldExtendFloor: - false, + true, // DefaultWeight: 100, @@ -590,7 +595,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = cBlockArea::msSpongePrint, // ShouldExtendFloor: - false, + true, // DefaultWeight: 100, @@ -790,7 +795,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = cBlockArea::msSpongePrint, // ShouldExtendFloor: - false, + true, // DefaultWeight: 5, @@ -991,7 +996,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = cBlockArea::msSpongePrint, // ShouldExtendFloor: - false, + true, // DefaultWeight: 10, @@ -1085,7 +1090,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = cBlockArea::msSpongePrint, // ShouldExtendFloor: - false, + true, // DefaultWeight: 100, @@ -1185,7 +1190,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = cBlockArea::msSpongePrint, // ShouldExtendFloor: - false, + true, // DefaultWeight: 100, @@ -1208,7 +1213,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 4, 6, 15, // MaxX, MaxY, MaxZ + 4, 16, 15, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -1364,7 +1369,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = cBlockArea::msSpongePrint, // ShouldExtendFloor: - false, + true, // DefaultWeight: 10, @@ -1604,7 +1609,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = cBlockArea::msSpongePrint, // ShouldExtendFloor: - false, + true, // DefaultWeight: 5, @@ -1933,7 +1938,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = cBlockArea::msSpongePrint, // ShouldExtendFloor: - false, + true, // DefaultWeight: 20, @@ -2052,7 +2057,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = cBlockArea::msSpongePrint, // ShouldExtendFloor: - false, + true, // DefaultWeight: 500, @@ -2212,7 +2217,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = cBlockArea::msSpongePrint, // ShouldExtendFloor: - false, + true, // DefaultWeight: 10, @@ -2302,7 +2307,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // Connectors: "1: 10, 1, 2: 5\n" /* Type 1, direction X+ */ - "1: 0, 1, 2: 4\n" /* Type 1, direction X- */, + "1: 0, 1, 2: 4\n" /* Type 1, direction X- */ + "-1: 10, 1, 2: 5\n" /* Type -1, direction X+ */ + "-1: 0, 1, 2: 4\n" /* Type -1, direction X- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -2311,7 +2318,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = cBlockArea::msSpongePrint, // ShouldExtendFloor: - false, + true, // DefaultWeight: 300, @@ -2401,7 +2408,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // Connectors: "1: 12, 1, 2: 5\n" /* Type 1, direction X+ */ - "1: 0, 1, 2: 4\n" /* Type 1, direction X- */, + "1: 0, 1, 2: 4\n" /* Type 1, direction X- */ + "-1: 12, 1, 2: 5\n" /* Type -1, direction X+ */ + "-1: 0, 1, 2: 4\n" /* Type -1, direction X- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -2410,7 +2419,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = cBlockArea::msSpongePrint, // ShouldExtendFloor: - false, + true, // DefaultWeight: 300, @@ -2494,7 +2503,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // Connectors: "1: 4, 1, 2: 5\n" /* Type 1, direction X+ */ - "1: 0, 1, 2: 4\n" /* Type 1, direction X- */, + "1: 0, 1, 2: 4\n" /* Type 1, direction X- */ + "-1: 4, 1, 2: 5\n" /* Type -1, direction X+ */ + "-1: 0, 1, 2: 4\n" /* Type -1, direction X- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -2503,7 +2514,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = cBlockArea::msSpongePrint, // ShouldExtendFloor: - false, + true, // DefaultWeight: 500, @@ -2631,7 +2642,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // Connectors: "1: 2, 1, 10: 3\n" /* Type 1, direction Z+ */ - "1: 10, 1, 2: 5\n" /* Type 1, direction X+ */, + "1: 10, 1, 2: 5\n" /* Type 1, direction X+ */ + "-1: 2, 1, 10: 3\n" /* Type -1, direction Z+ */ + "-1: 10, 1, 2: 5\n" /* Type -1, direction X+ */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -2640,7 +2653,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = cBlockArea::msSpongePrint, // ShouldExtendFloor: - false, + true, // DefaultWeight: 100, @@ -2769,7 +2782,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // Connectors: "1: 10, 1, 2: 5\n" /* Type 1, direction X+ */ - "1: 2, 1, 10: 3\n" /* Type 1, direction Z+ */, + "1: 2, 1, 10: 3\n" /* Type 1, direction Z+ */ + "-1: 2, 1, 10: 3\n" /* Type -1, direction Z+ */ + "-1: 10, 1, 2: 5\n" /* Type -1, direction X+ */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -2778,7 +2793,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = cBlockArea::msSpongePrint, // ShouldExtendFloor: - false, + true, // DefaultWeight: 100, @@ -2890,7 +2905,11 @@ const cPrefab::sDef g_NetherFortPrefabs[] = "1: 8, 1, 4: 5\n" /* Type 1, direction X+ */ "1: 4, 1, 0: 2\n" /* Type 1, direction Z- */ "1: 4, 1, 8: 3\n" /* Type 1, direction Z+ */ - "1: 0, 1, 4: 4\n" /* Type 1, direction X- */, + "1: 0, 1, 4: 4\n" /* Type 1, direction X- */ + "-1: 8, 1, 4: 5\n" /* Type -1, direction X+ */ + "-1: 4, 1, 8: 3\n" /* Type -1, direction Z+ */ + "-1: 0, 1, 4: 4\n" /* Type -1, direction X- */ + "-1: 4, 1, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -2899,7 +2918,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = cBlockArea::msSpongePrint, // ShouldExtendFloor: - false, + true, // DefaultWeight: 100, @@ -3040,7 +3059,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // Connectors: "1: 0, 1, 2: 4\n" /* Type 1, direction X- */ - "1: 8, 8, 2: 5\n" /* Type 1, direction X+ */, + "1: 8, 8, 2: 5\n" /* Type 1, direction X+ */ + "-1: 0, 1, 2: 4\n" /* Type -1, direction X- */ + "-1: 8, 8, 2: 5\n" /* Type -1, direction X+ */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -3049,7 +3070,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = cBlockArea::msSpongePrint, // ShouldExtendFloor: - false, + true, // DefaultWeight: 1000, @@ -3139,7 +3160,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // Connectors: "1: 0, 1, 2: 4\n" /* Type 1, direction X- */ - "1: 13, 1, 2: 5\n" /* Type 1, direction X+ */, + "1: 13, 1, 2: 5\n" /* Type 1, direction X+ */ + "-1: 0, 1, 2: 4\n" /* Type -1, direction X- */ + "-1: 13, 1, 2: 5\n" /* Type -1, direction X+ */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -3148,7 +3171,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = cBlockArea::msSpongePrint, // ShouldExtendFloor: - false, + true, // DefaultWeight: 100, @@ -3393,7 +3416,10 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // Connectors: "1: 0, 6, 7: 4\n" /* Type 1, direction X- */ "1: 9, 1, 14: 3\n" /* Type 1, direction Z+ */ - "1: 9, 1, 0: 2\n" /* Type 1, direction Z- */, + "1: 9, 1, 0: 2\n" /* Type 1, direction Z- */ + "-1: 0, 6, 7: 4\n" /* Type -1, direction X- */ + "-1: 9, 1, 14: 3\n" /* Type -1, direction Z+ */ + "-1: 9, 1, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -3402,7 +3428,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = cBlockArea::msSpongePrint, // ShouldExtendFloor: - false, + true, // DefaultWeight: 10, @@ -3722,7 +3748,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // Connectors: "1: 11, 1, 7: 5\n" /* Type 1, direction X+ */ - "1: 0, 9, 7: 4\n" /* Type 1, direction X- */, + "1: 0, 9, 7: 4\n" /* Type 1, direction X- */ + "-1: 11, 1, 7: 5\n" /* Type -1, direction X+ */ + "-1: 0, 9, 7: 4\n" /* Type -1, direction X- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -3731,7 +3759,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = cBlockArea::msSpongePrint, // ShouldExtendFloor: - false, + true, // DefaultWeight: 10, @@ -4009,7 +4037,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = cBlockArea::msSpongePrint, // ShouldExtendFloor: - false, + true, // DefaultWeight: 10, @@ -4186,7 +4214,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // Connectors: "1: 12, 1, 6: 5\n" /* Type 1, direction X+ */ - "1: 0, 1, 6: 4\n" /* Type 1, direction X- */, + "1: 0, 1, 6: 4\n" /* Type 1, direction X- */ + "-1: 12, 1, 6: 5\n" /* Type -1, direction X+ */ + "-1: 0, 1, 6: 4\n" /* Type -1, direction X- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -4195,7 +4225,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = cBlockArea::msSpongePrint, // ShouldExtendFloor: - false, + true, // DefaultWeight: 100, @@ -4338,7 +4368,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = cBlockArea::msSpongePrint, // ShouldExtendFloor: - false, + true, // DefaultWeight: 100, @@ -4481,7 +4511,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = cBlockArea::msSpongePrint, // ShouldExtendFloor: - false, + true, // DefaultWeight: 100, @@ -4586,7 +4616,10 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // Connectors: "1: 0, 1, 4: 4\n" /* Type 1, direction X- */ "1: 6, 1, 0: 2\n" /* Type 1, direction Z- */ - "1: 12, 1, 4: 5\n" /* Type 1, direction X+ */, + "1: 12, 1, 4: 5\n" /* Type 1, direction X+ */ + "-1: 0, 1, 4: 4\n" /* Type -1, direction X- */ + "-1: 12, 1, 4: 5\n" /* Type -1, direction X+ */ + "-1: 6, 1, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -4595,7 +4628,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = cBlockArea::msSpongePrint, // ShouldExtendFloor: - false, + true, // DefaultWeight: 100, @@ -4712,7 +4745,10 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // Connectors: "1: 0, 1, 6: 4\n" /* Type 1, direction X- */ "1: 6, 1, 0: 2\n" /* Type 1, direction Z- */ - "1: 12, 1, 6: 5\n" /* Type 1, direction X+ */, + "1: 12, 1, 6: 5\n" /* Type 1, direction X+ */ + "-1: 0, 1, 6: 4\n" /* Type -1, direction X- */ + "-1: 6, 1, 0: 2\n" /* Type -1, direction Z- */ + "-1: 12, 1, 6: 5\n" /* Type -1, direction X+ */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -4721,7 +4757,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = cBlockArea::msSpongePrint, // ShouldExtendFloor: - false, + true, // DefaultWeight: 100, @@ -4806,7 +4842,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // Connectors: "1: 2, 1, 4: 3\n" /* Type 1, direction Z+ */ - "1: 0, 1, 2: 4\n" /* Type 1, direction X- */, + "1: 0, 1, 2: 4\n" /* Type 1, direction X- */ + "-1: 2, 1, 4: 3\n" /* Type -1, direction Z+ */ + "-1: 0, 1, 2: 4\n" /* Type -1, direction X- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -4815,7 +4853,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = cBlockArea::msSpongePrint, // ShouldExtendFloor: - false, + true, // DefaultWeight: 100, @@ -4901,7 +4939,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // Connectors: "1: 2, 1, 4: 3\n" /* Type 1, direction Z+ */ - "1: 0, 1, 2: 4\n" /* Type 1, direction X- */, + "1: 0, 1, 2: 4\n" /* Type 1, direction X- */ + "-1: 2, 1, 4: 3\n" /* Type -1, direction Z+ */ + "-1: 0, 1, 2: 4\n" /* Type -1, direction X- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -4910,7 +4950,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = cBlockArea::msSpongePrint, // ShouldExtendFloor: - false, + true, // DefaultWeight: 100, @@ -4996,7 +5036,11 @@ const cPrefab::sDef g_NetherFortPrefabs[] = "1: 4, 1, 2: 5\n" /* Type 1, direction X+ */ "1: 2, 1, 4: 3\n" /* Type 1, direction Z+ */ "1: 0, 1, 2: 4\n" /* Type 1, direction X- */ - "1: 2, 1, 0: 2\n" /* Type 1, direction Z- */, + "1: 2, 1, 0: 2\n" /* Type 1, direction Z- */ + "-1: 4, 1, 2: 5\n" /* Type -1, direction X+ */ + "-1: 2, 1, 4: 3\n" /* Type -1, direction Z+ */ + "-1: 0, 1, 2: 4\n" /* Type -1, direction X- */ + "-1: 2, 1, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -5005,7 +5049,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = cBlockArea::msSpongePrint, // ShouldExtendFloor: - false, + true, // DefaultWeight: 100, @@ -5120,7 +5164,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = cBlockArea::msSpongePrint, // ShouldExtendFloor: - false, + true, // DefaultWeight: 100, @@ -5314,7 +5358,8 @@ const cPrefab::sDef g_NetherFortStartingPrefabs[] = // Connectors: "0: 6, 1, 0: 2\n" /* Type 0, direction Z- */ - "1: 6, 1, 12: 3\n" /* Type 1, direction Z+ */, + "1: 6, 1, 12: 3\n" /* Type 1, direction Z+ */ + "-1: 6, 1, 12: 3\n" /* Type -1, direction Z+ */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -5323,7 +5368,7 @@ const cPrefab::sDef g_NetherFortStartingPrefabs[] = cBlockArea::msSpongePrint, // ShouldExtendFloor: - false, + true, // DefaultWeight: 100, -- cgit v1.2.3 From 8f262d8a9d2d520a9c92dc0f270a88c554cb3778 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Tue, 6 May 2014 16:41:55 +0200 Subject: Initial cGridStructGen refactoring. Ref.: #987. --- src/Generating/GridStructGen.cpp | 138 +++++++++++++++++++++++++++++++++++++++ src/Generating/GridStructGen.h | 124 +++++++++++++++++++++++++++++++++++ 2 files changed, 262 insertions(+) create mode 100644 src/Generating/GridStructGen.cpp create mode 100644 src/Generating/GridStructGen.h (limited to 'src/Generating') diff --git a/src/Generating/GridStructGen.cpp b/src/Generating/GridStructGen.cpp new file mode 100644 index 000000000..975fd3fdc --- /dev/null +++ b/src/Generating/GridStructGen.cpp @@ -0,0 +1,138 @@ + +// GridStructGen.cpp + +// Implements the cGridStructGen class representing a common base class for structure generators that place structures in a semi-random grid + +#include "Globals.h" +#include "GridStructGen.h" + + + + +cGridStructGen::cGridStructGen( + int a_Seed, + int a_GridSizeX, int a_GridSizeZ, + int a_MaxStructureSizeX, int a_MaxStructureSizeZ, + size_t a_MaxCacheSize +) : + m_Seed(a_Seed), + m_GridSizeX(a_GridSizeX), + m_GridSizeZ(a_GridSizeZ), + m_MaxStructureSizeX(a_MaxStructureSizeX), + m_MaxStructureSizeZ(a_MaxStructureSizeZ), + m_MaxCacheSize(a_MaxCacheSize) +{ +} + + + + + +void cGridStructGen::GetStructuresForChunk(int a_ChunkX, int a_ChunkZ, cStructurePtrs & a_Structures) +{ + // Calculate the min and max grid coords of the structures to be returned: + int MinBlockX = a_ChunkX * cChunkDef::Width - m_MaxStructureSizeX; + int MinBlockZ = a_ChunkZ * cChunkDef::Width - m_MaxStructureSizeZ; + int MaxBlockX = a_ChunkX * cChunkDef::Width + m_MaxStructureSizeX + cChunkDef::Width - 1; + int MaxBlockZ = a_ChunkZ * cChunkDef::Width + m_MaxStructureSizeZ + cChunkDef::Width - 1; + int MinGridX = MinBlockX / m_GridSizeX; + int MinGridZ = MinBlockZ / m_GridSizeZ; + int MaxGridX = MaxBlockX / m_GridSizeX; + int MaxGridZ = MaxBlockX / m_GridSizeZ; + if (MinGridX < 0) + { + --MinGridX; + } + if (MinGridZ < 0) + { + --MinGridZ; + } + if (MaxGridX < 0) + { + --MaxGridX; + } + if (MaxGridZ < 0) + { + --MaxGridZ; + } + + // Walk the cache, move each structure that we want into a_Structures: + for (cStructurePtrs::iterator itr = m_Cache.begin(), end = m_Cache.end(); itr != end;) + { + if ( + ((*itr)->m_OriginX >= MinBlockX) && ((*itr)->m_OriginX < MaxBlockX) && + ((*itr)->m_OriginZ >= MinBlockZ) && ((*itr)->m_OriginZ < MaxBlockZ) + ) + { + // want + a_Structures.push_back(*itr); + itr = m_Cache.erase(itr); + } + else + { + // don't want + ++itr; + } + } // for itr - m_Cache[] + + // Create those structures that haven't been in the cache: + for (int x = MinGridX; x < MaxGridX; x++) + { + int OriginX = x * m_GridSizeX; + for (int z = MinGridZ; z < MaxGridZ; z++) + { + int OriginZ = z * m_GridSizeZ; + bool Found = false; + for (cStructurePtrs::const_iterator itr = a_Structures.begin(), end = a_Structures.end(); itr != end; ++itr) + { + if (((*itr)->m_OriginX == OriginX) && ((*itr)->m_OriginZ == OriginZ)) + { + Found = true; + break; + } + } // for itr - a_Structures[] + if (!Found) + { + a_Structures.push_back(CreateStructure(OriginX, OriginZ)); + } + } // for z + } // for x + + // Copy a_Forts into m_Cache to the beginning: + cStructurePtrs StructuresCopy (a_Structures); + m_Cache.splice(m_Cache.begin(), StructuresCopy, StructuresCopy.begin(), StructuresCopy.end()); + + // Trim the cache if it's too long: + size_t CacheSize = 0; + for (cStructurePtrs::iterator itr = m_Cache.begin(), end = m_Cache.end(); itr != end; ++itr) + { + CacheSize += (*itr)->GetCacheCost(); + if (CacheSize > m_MaxCacheSize) + { + // Erase all items from this one till the cache end + m_Cache.erase(itr, m_Cache.end()); + break; + } + } +} + + + + + +void cGridStructGen::GenFinish(cChunkDesc & a_ChunkDesc) +{ + int ChunkX = a_ChunkDesc.GetChunkX(); + int ChunkZ = a_ChunkDesc.GetChunkZ(); + cStructurePtrs Structures; + GetStructuresForChunk(ChunkX, ChunkZ, Structures); + for (cStructurePtrs::const_iterator itr = Structures.begin(); itr != Structures.end(); ++itr) + { + (*itr)->DrawIntoChunk(a_ChunkDesc); + } // for itr - Structures[] +} + + + + + diff --git a/src/Generating/GridStructGen.h b/src/Generating/GridStructGen.h new file mode 100644 index 000000000..234cc75c5 --- /dev/null +++ b/src/Generating/GridStructGen.h @@ -0,0 +1,124 @@ + +// GridStructGen.h + +// Declares the cGridStructGen class representing a common base class for structure generators that place structures in a semi-random grid + + + + + +#pragma once + +#include "ComposableGenerator.h" + + + + + +/** Generates structures in a semi-random grid. +Defines a grid in the XZ space with predefined cell size in each direction. Each cell then receives exactly +one structure (provided by the descendant class). The structure is placed within the cell, but doesn't need +to be bounded by the cell, it can be well outside the cell; the generator uses the MaxStructureSize parameter +to determine how far away from the cell the structure can be at most. +This class provides a cache for the structures generated for successive chunks and manages that cache. It +also provides the cFinishGen override that uses the cache to actually generate the structure into chunk data. + +After generating each chunk the cache is checked for size, each item in the cache has a cost associated with +it and the cache is trimmed (from its least-recently-used end) so that the sum of the cost in the cache is +less than m_MaxCacheSize + +To use this class, declare a descendant class that implements the overridable methods, then create an +instance of that class. The descendant must provide the CreateStructure() function that is called to generate +a structure at the specific grid cell. + +The descendant must use a specific cStructure descendant to provide the actual structure that gets generated. +The structure must provide the DrawIntoChunk() function that generates the structure into the chunk data, and +can override the GetCacheCost() function that returns the cost of that structure in the cache. +*/ +class cGridStructGen : + public cFinishGen +{ +public: + cGridStructGen( + int a_Seed, + int a_GridSizeX, int a_GridSizeZ, + int a_MaxStructureSizeX, int a_MaxStructureSizeZ, + size_t a_MaxCacheSize + ); + +protected: + /** Represents a single structure that occupies the grid point. Knows how to draw itself into a chunk. */ + class cStructure + { + public: + /** The origin (the coords of the gridpoint for which the structure is generated) */ + int m_OriginX, m_OriginZ; + + + /** Creates a structure that has its originset at the specified coords. */ + cStructure (int a_OriginX, int a_OriginZ) : + m_OriginX(a_OriginX), + m_OriginZ(a_OriginZ) + { + } + + // Force a virtual destructor in descendants: + virtual ~cStructure() {} + + /** Draws self into the specified chunk */ + virtual void DrawIntoChunk(cChunkDesc & a_ChunkDesc) = 0; + + /** Returns the cost of keeping this structure in the cache */ + virtual size_t GetCacheCost(void) const { return 1; } + } ; + typedef SharedPtr cStructurePtr; + typedef std::list cStructurePtrs; + + + /** Seed for generating the semi-random grid. */ + int m_Seed; + + /** The size of each grid's cell in the X axis */ + int m_GridSizeX; + + /** The size of each grid's cell in the Z axis */ + int m_GridSizeZ; + + /** Maximum theoretical size of the structure in the X axis. + This limits the structures considered for a single chunk, so the lesser the number, the better performance. + Structures large than this may get cropped. */ + int m_MaxStructureSizeX; + + /** Maximum theoretical size of the structure in the Z axis. + This limits the structures considered for a single chunk, so the lesser the number, the better performance. + Structures large than this may get cropped. */ + int m_MaxStructureSizeZ; + + /** Maximum allowed sum of costs for items in the cache. Items that are over this cost are removed from the + cache, oldest-first */ + size_t m_MaxCacheSize; + + /** Cache for the most recently generated structures, ordered by the recentness. */ + cStructurePtrs m_Cache; + + + /** Clears everything from the cache */ + void ClearCache(void); + + /** Returns all structures that may intersect the given chunk. + The structures are considered as intersecting iff their bounding box (defined by m_MaxStructureSize) + around their gridpoint intersects the chunk. */ + void GetStructuresForChunk(int a_ChunkX, int a_ChunkZ, cStructurePtrs & a_Structures); + + // cFinishGen overrides: + virtual void GenFinish(cChunkDesc & a_ChunkDesc) override; + + // Functions for the descendants to override: + /** Create a new structure at the specified gridpoint */ + virtual cStructurePtr CreateStructure(int a_OriginX, int a_OriginZ) = 0; +} ; + + + + + -- cgit v1.2.3 From da5db2ddf9897d977716261e216e90ee8d61f2e7 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Wed, 7 May 2014 11:01:30 +0200 Subject: Initial cPrefabPiecePool refactoring. Ref.: #986. --- src/Generating/PrefabPiecePool.cpp | 121 +++++++++++++++++++++++++++++++++++++ src/Generating/PrefabPiecePool.h | 75 +++++++++++++++++++++++ 2 files changed, 196 insertions(+) create mode 100644 src/Generating/PrefabPiecePool.cpp create mode 100644 src/Generating/PrefabPiecePool.h (limited to 'src/Generating') diff --git a/src/Generating/PrefabPiecePool.cpp b/src/Generating/PrefabPiecePool.cpp new file mode 100644 index 000000000..ed9340815 --- /dev/null +++ b/src/Generating/PrefabPiecePool.cpp @@ -0,0 +1,121 @@ + +// PrefabPiecePool.cpp + +// Implements the cPrefabPiecePool class that represents a cPiecePool descendant that uses cPrefab instances as the pieces + +#include "Globals.h" +#include "PrefabPiecePool.h" + + + + + +cPrefabPiecePool::cPrefabPiecePool( + const cPrefab::sDef * a_PieceDefs, size_t a_NumPieceDefs, + const cPrefab::sDef * a_StartingPieceDefs, size_t a_NumStartingPieceDefs +) +{ + AddPieceDefs(a_PieceDefs, a_NumPieceDefs); + if (a_StartingPieceDefs != NULL) + { + AddStartingPieceDefs(a_StartingPieceDefs, a_NumStartingPieceDefs); + } +} + + + + + +void cPrefabPiecePool::AddPieceDefs(const cPrefab::sDef * a_PieceDefs, size_t a_NumPieceDefs) +{ + ASSERT(a_PieceDefs != NULL); + for (size_t i = 0; i < a_NumPieceDefs; i++) + { + cPrefab * Prefab = new cPrefab(a_PieceDefs[i]); + m_AllPieces.push_back(Prefab); + AddToPerConnectorMap(Prefab); + } +} + + + + + +void cPrefabPiecePool::AddStartingPieceDefs(const cPrefab::sDef * a_StartingPieceDefs, size_t a_NumStartingPieceDefs) +{ + ASSERT(a_StartingPieceDefs != NULL); + for (size_t i = 0; i < a_NumStartingPieceDefs; i++) + { + cPrefab * Prefab = new cPrefab(a_StartingPieceDefs[i]); + m_StartingPieces.push_back(Prefab); + } +} + + + + + +void cPrefabPiecePool::AddToPerConnectorMap(cPrefab * a_Prefab) +{ + cPiece::cConnectors Connectors = ((const cPiece *)a_Prefab)->GetConnectors(); + for (cPiece::cConnectors::const_iterator itr = Connectors.begin(), end = Connectors.end(); itr != end; ++itr) + { + m_PiecesByConnector[itr->m_Type].push_back(a_Prefab); + } +} + + + + +cPieces cPrefabPiecePool::GetPiecesWithConnector(int a_ConnectorType) +{ + return m_PiecesByConnector[a_ConnectorType]; +} + + + + + +cPieces cPrefabPiecePool::GetStartingPieces(void) +{ + if (m_StartingPieces.empty()) + { + return m_AllPieces; + } + else + { + return m_StartingPieces; + } +} + + + + + +int cPrefabPiecePool::GetPieceWeight(const cPlacedPiece & a_PlacedPiece, const cPiece::cConnector & a_ExistingConnector, const cPiece & a_NewPiece) +{ + return ((const cPrefab &)a_NewPiece).GetPieceWeight(a_PlacedPiece, a_ExistingConnector); +} + + + + + +void cPrefabPiecePool::PiecePlaced(const cPiece & a_Piece) +{ + // Do nothing + UNUSED(a_Piece); +} + + + + + +void cPrefabPiecePool::Reset(void) +{ + // Do nothing +} + + + + diff --git a/src/Generating/PrefabPiecePool.h b/src/Generating/PrefabPiecePool.h new file mode 100644 index 000000000..2a7993063 --- /dev/null +++ b/src/Generating/PrefabPiecePool.h @@ -0,0 +1,75 @@ + +// PrefabPiecePool.h + +// Declares the cPrefabPiecePool class that represents a cPiecePool descendant that uses cPrefab instances as the pieces + + + + + +#pragma once + +#include "PieceGenerator.h" +#include "Prefab.h" + + + + + +class cPrefabPiecePool : + public cPiecePool +{ +public: + /** Creates a piece pool with prefabs from the specified definitions. + If both a_PieceDefs and a_StartingPieceDefs are given, only the a_StartingPieceDefs are used as starting + pieces for the pool, and they do not participate in the generation any further. + If only a_PieceDefs is given, any such piece can be chosen as a starting piece, and all the pieces are used + for generating. */ + cPrefabPiecePool( + const cPrefab::sDef * a_PieceDefs, size_t a_NumPieceDefs, + const cPrefab::sDef * a_StartingPieceDefs, size_t a_NumStartingPieceDefs + ); + + /** Adds pieces from the specified definitions into m_AllPieces. Also adds the pieces into + the m_PiecesByConnector map. + May be called multiple times with different PieceDefs, will add all such pieces. */ + void AddPieceDefs(const cPrefab::sDef * a_PieceDefs, size_t a_NumPieceDefs); + + /** Adds pieces from the specified definitions into m_StartingPieces. Doesn't add to + the m_PiecesByConnector map. + May be called multiple times with different PieceDefs, will add all such pieces. */ + void AddStartingPieceDefs(const cPrefab::sDef * a_StartingPieceDefs, size_t a_NumStartingPieceDefs); + + +protected: + + /** The type used to map a connector type to the list of pieces with that connector */ + typedef std::map cPiecesMap; + + /** All the pieces that are allowed for building. + This is the list that's used for memory allocation and deallocation for the pieces. */ + cPieces m_AllPieces; + + /** The pieces that are used as starting pieces. + This list is not shared and the pieces need deallocation. */ + cPieces m_StartingPieces; + + /** The map that has all pieces by their connector types + The pieces are copies out of m_AllPieces and shouldn't be ever delete-d. */ + cPiecesMap m_PiecesByConnector; + + + /** Adds the prefab to the m_PiecesByConnector map for all its connectors. */ + void AddToPerConnectorMap(cPrefab * a_Prefab); + + // cPiecePool overrides: + virtual cPieces GetPiecesWithConnector(int a_ConnectorType) override; + virtual cPieces GetStartingPieces(void) override; + virtual int GetPieceWeight(const cPlacedPiece & a_PlacedPiece, const cPiece::cConnector & a_ExistingConnector, const cPiece & a_NewPiece) override; + virtual void PiecePlaced(const cPiece & a_Piece) override; + virtual void Reset(void) override; +} ; + + + + -- cgit v1.2.3 From 564261cfd9e385dfe6331c0585cae3b46989dd17 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Wed, 7 May 2014 22:34:06 +0200 Subject: cNetherFortGen uses cGridStructGen. WIP, this doesn't work properly yet. --- src/Generating/Caves.h | 2 +- src/Generating/GridStructGen.cpp | 12 +-- src/Generating/NetherFortGen.cpp | 223 ++++----------------------------------- src/Generating/NetherFortGen.h | 61 ++--------- src/Generating/PrefabPiecePool.h | 8 +- 5 files changed, 42 insertions(+), 264 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/Caves.h b/src/Generating/Caves.h index 7c45c056b..2a9fa01b8 100644 --- a/src/Generating/Caves.h +++ b/src/Generating/Caves.h @@ -93,7 +93,7 @@ protected: /// Returns all caves that *may* intersect the given chunk. All the caves are valid until the next call to this function. void GetCavesForChunk(int a_ChunkX, int a_ChunkZ, cCaveSystems & a_Caves); - // cStructGen override: + // cFinishGen override: virtual void GenFinish(cChunkDesc & a_ChunkDesc) override; } ; diff --git a/src/Generating/GridStructGen.cpp b/src/Generating/GridStructGen.cpp index 975fd3fdc..2f064d3a0 100644 --- a/src/Generating/GridStructGen.cpp +++ b/src/Generating/GridStructGen.cpp @@ -37,21 +37,21 @@ void cGridStructGen::GetStructuresForChunk(int a_ChunkX, int a_ChunkZ, cStructur int MaxBlockZ = a_ChunkZ * cChunkDef::Width + m_MaxStructureSizeZ + cChunkDef::Width - 1; int MinGridX = MinBlockX / m_GridSizeX; int MinGridZ = MinBlockZ / m_GridSizeZ; - int MaxGridX = MaxBlockX / m_GridSizeX; - int MaxGridZ = MaxBlockX / m_GridSizeZ; - if (MinGridX < 0) + int MaxGridX = (MaxBlockX + m_GridSizeX - 1) / m_GridSizeX; + int MaxGridZ = (MaxBlockZ + m_GridSizeZ - 1) / m_GridSizeZ; + if (MinBlockX < 0) { --MinGridX; } - if (MinGridZ < 0) + if (MinBlockZ < 0) { --MinGridZ; } - if (MaxGridX < 0) + if (MaxBlockX < 0) { --MaxGridX; } - if (MaxGridZ < 0) + if (MaxBlockZ < 0) { --MaxGridZ; } diff --git a/src/Generating/NetherFortGen.cpp b/src/Generating/NetherFortGen.cpp index d90fdeb0a..ac7fd0b7b 100644 --- a/src/Generating/NetherFortGen.cpp +++ b/src/Generating/NetherFortGen.cpp @@ -20,20 +20,21 @@ static const int NEIGHBORHOOD_SIZE = 3; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // cNetherFortGen::cNetherFort: -class cNetherFortGen::cNetherFort +class cNetherFortGen::cNetherFort : + public cGridStructGen::cStructure { + typedef cGridStructGen::cStructure super; + public: cNetherFortGen & m_ParentGen; - int m_BlockX, m_BlockZ; int m_GridSize; int m_Seed; cPlacedPieces m_Pieces; - cNetherFort(cNetherFortGen & a_ParentGen, int a_BlockX, int a_BlockZ, int a_GridSize, int a_MaxDepth, int a_Seed) : + cNetherFort(cNetherFortGen & a_ParentGen, int a_OriginX, int a_OriginZ, int a_GridSize, int a_MaxDepth, int a_Seed) : + super(a_OriginX, a_OriginZ), m_ParentGen(a_ParentGen), - m_BlockX(a_BlockX), - m_BlockZ(a_BlockZ), m_GridSize(a_GridSize), m_Seed(a_Seed) { @@ -43,8 +44,8 @@ public: // Generate pieces: for (int i = 0; m_Pieces.size() < (size_t)(a_MaxDepth * a_MaxDepth / 8 + a_MaxDepth); i++) { - cBFSPieceGenerator pg(m_ParentGen, a_Seed + i); - pg.PlacePieces(a_BlockX, BlockY, a_BlockZ, a_MaxDepth, m_Pieces); + cBFSPieceGenerator pg(cNetherFortGen::m_PiecePool, a_Seed + i); + pg.PlacePieces(a_OriginX, BlockY, a_OriginZ, a_MaxDepth, m_Pieces); } } @@ -56,7 +57,7 @@ public: /** Carves the system into the chunk data */ - void ProcessChunk(cChunkDesc & a_Chunk) + virtual void DrawIntoChunk(cChunkDesc & a_Chunk) { for (cPlacedPieces::const_iterator itr = m_Pieces.begin(), end = m_Pieces.end(); itr != end; ++itr) { @@ -107,214 +108,30 @@ public: /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // cNetherFortGen: +cPrefabPiecePool cNetherFortGen::m_PiecePool(g_NetherFortPrefabs, g_NetherFortPrefabsCount, g_NetherFortStartingPrefabs, g_NetherFortStartingPrefabsCount); + + + + + cNetherFortGen::cNetherFortGen(int a_Seed, int a_GridSize, int a_MaxDepth) : - m_Seed(a_Seed), - m_Noise(a_Seed), - m_GridSize(a_GridSize), + super(a_Seed, a_GridSize, a_GridSize, a_MaxDepth * 10, a_MaxDepth * 10, 200), m_MaxDepth(a_MaxDepth) { - // Initialize the prefabs: - for (size_t i = 0; i < g_NetherFortPrefabsCount; i++) - { - cPrefab * Prefab = new cPrefab(g_NetherFortPrefabs[i]); - m_AllPieces.push_back(Prefab); - if (Prefab->HasConnectorType(0)) - { - m_OuterPieces.push_back(Prefab); - } - if (Prefab->HasConnectorType(1)) - { - m_InnerPieces.push_back(Prefab); - } - } - - // Initialize the starting piece prefabs: - for (size_t i = 0; i < g_NetherFortStartingPrefabsCount; i++) - { - m_StartingPieces.push_back(new cPrefab(g_NetherFortStartingPrefabs[i])); - } - /* // DEBUG: Try one round of placement: cPlacedPieces Pieces; - cBFSPieceGenerator pg(*this, a_Seed); + cBFSPieceGenerator pg(m_PiecePool, a_Seed); pg.PlacePieces(0, 64, 0, a_MaxDepth, Pieces); - */ -} - - - - - -cNetherFortGen::~cNetherFortGen() -{ - ClearCache(); - for (cPieces::iterator itr = m_AllPieces.begin(), end = m_AllPieces.end(); itr != end; ++itr) - { - delete *itr; - } // for itr - m_AllPieces[] - m_AllPieces.clear(); + //*/ } -void cNetherFortGen::ClearCache(void) +cGridStructGen::cStructurePtr cNetherFortGen::CreateStructure(int a_OriginX, int a_OriginZ) { - // TODO + return cStructurePtr(new cNetherFort(*this, a_OriginX, a_OriginZ, m_GridSizeX, m_MaxDepth, m_Seed)); } - - - - -void cNetherFortGen::GetFortsForChunk(int a_ChunkX, int a_ChunkZ, cNetherForts & a_Forts) -{ - int BaseX = a_ChunkX * cChunkDef::Width / m_GridSize; - int BaseZ = a_ChunkZ * cChunkDef::Width / m_GridSize; - if (BaseX < 0) - { - --BaseX; - } - if (BaseZ < 0) - { - --BaseZ; - } - BaseX -= NEIGHBORHOOD_SIZE / 2; - BaseZ -= NEIGHBORHOOD_SIZE / 2; - - // Walk the cache, move each cave system that we want into a_Forts: - int StartX = BaseX * m_GridSize; - int EndX = (BaseX + NEIGHBORHOOD_SIZE + 1) * m_GridSize; - int StartZ = BaseZ * m_GridSize; - int EndZ = (BaseZ + NEIGHBORHOOD_SIZE + 1) * m_GridSize; - for (cNetherForts::iterator itr = m_Cache.begin(), end = m_Cache.end(); itr != end;) - { - if ( - ((*itr)->m_BlockX >= StartX) && ((*itr)->m_BlockX < EndX) && - ((*itr)->m_BlockZ >= StartZ) && ((*itr)->m_BlockZ < EndZ) - ) - { - // want - a_Forts.push_back(*itr); - itr = m_Cache.erase(itr); - } - else - { - // don't want - ++itr; - } - } // for itr - m_Cache[] - - // Create those forts that haven't been in the cache: - for (int x = 0; x < NEIGHBORHOOD_SIZE; x++) - { - int RealX = (BaseX + x) * m_GridSize; - for (int z = 0; z < NEIGHBORHOOD_SIZE; z++) - { - int RealZ = (BaseZ + z) * m_GridSize; - bool Found = false; - for (cNetherForts::const_iterator itr = a_Forts.begin(), end = a_Forts.end(); itr != end; ++itr) - { - if (((*itr)->m_BlockX == RealX) && ((*itr)->m_BlockZ == RealZ)) - { - Found = true; - break; - } - } // for itr - a_Mineshafts - if (!Found) - { - a_Forts.push_back(new cNetherFort(*this, RealX, RealZ, m_GridSize, m_MaxDepth, m_Seed)); - } - } // for z - } // for x - - // Copy a_Forts into m_Cache to the beginning: - cNetherForts FortsCopy (a_Forts); - m_Cache.splice(m_Cache.begin(), FortsCopy, FortsCopy.begin(), FortsCopy.end()); - - // Trim the cache if it's too long: - if (m_Cache.size() > 100) - { - cNetherForts::iterator itr = m_Cache.begin(); - std::advance(itr, 100); - for (cNetherForts::iterator end = m_Cache.end(); itr != end; ++itr) - { - delete *itr; - } - itr = m_Cache.begin(); - std::advance(itr, 100); - m_Cache.erase(itr, m_Cache.end()); - } -} - - - - - -void cNetherFortGen::GenFinish(cChunkDesc & a_ChunkDesc) -{ - int ChunkX = a_ChunkDesc.GetChunkX(); - int ChunkZ = a_ChunkDesc.GetChunkZ(); - cNetherForts Forts; - GetFortsForChunk(ChunkX, ChunkZ, Forts); - for (cNetherForts::const_iterator itr = Forts.begin(); itr != Forts.end(); ++itr) - { - (*itr)->ProcessChunk(a_ChunkDesc); - } // for itr - Forts[] -} - - - - - -cPieces cNetherFortGen::GetPiecesWithConnector(int a_ConnectorType) -{ - switch (a_ConnectorType) - { - case 0: return m_OuterPieces; - case 1: return m_InnerPieces; - default: return cPieces(); - } -} - - - - - -cPieces cNetherFortGen::GetStartingPieces(void) -{ - return m_StartingPieces; -} - - - - - -int cNetherFortGen::GetPieceWeight(const cPlacedPiece & a_PlacedPiece, const cPiece::cConnector & a_ExistingConnector, const cPiece & a_NewPiece) -{ - return ((const cPrefab &)a_NewPiece).GetPieceWeight(a_PlacedPiece, a_ExistingConnector); -} - - - - - -void cNetherFortGen::PiecePlaced(const cPiece & a_Piece) -{ - UNUSED(a_Piece); -} - - - - - -void cNetherFortGen::Reset(void) -{ - // Nothing needed -} - - - - diff --git a/src/Generating/NetherFortGen.h b/src/Generating/NetherFortGen.h index d51596b9e..f35801a3c 100644 --- a/src/Generating/NetherFortGen.h +++ b/src/Generating/NetherFortGen.h @@ -10,77 +10,34 @@ #pragma once #include "ComposableGenerator.h" -#include "PieceGenerator.h" +#include "PrefabPiecePool.h" +#include "GridStructGen.h" class cNetherFortGen : - public cFinishGen, - public cPiecePool + public cGridStructGen { + typedef cGridStructGen super; + public: cNetherFortGen(int a_Seed, int a_GridSize, int a_MaxDepth); - virtual ~cNetherFortGen(); - protected: friend class cNetherFortPerfTest; // fwd: NetherFortGen.cpp class cNetherFort; // fwd: NetherFortGen.cpp - typedef std::list cNetherForts; - - - /** The seed used for generating*/ - int m_Seed; - - /** The noise used for generating */ - cNoise m_Noise; - - /** Average spacing between the fortresses*/ - int m_GridSize; /** Maximum depth of the piece-generator tree */ int m_MaxDepth; - - /** Cache of the most recently used systems. MoveToFront used. */ - cNetherForts m_Cache; - /** All the pieces that are allowed for building. - This is the list that's used for memory allocation and deallocation for the pieces. */ - cPieces m_AllPieces; + /** The pool of pieces to use for generating. Static, so that it's shared by multiple generators. */ + static cPrefabPiecePool m_PiecePool; - /** The pieces that are used as starting pieces. - This list is not shared and the pieces need deallocation. */ - cPieces m_StartingPieces; - - /** The pieces that have an "outer" connector. - The pieces are copies out of m_AllPieces and shouldn't be ever delete-d. */ - cPieces m_OuterPieces; - - /** The pieces that have an "inner" connector. - The pieces are copies out of m_AllPieces and shouldn't be ever delete-d. */ - cPieces m_InnerPieces; - - /** Clears everything from the cache. - Also invalidates the forst returned by GetFortsForChunk(). */ - void ClearCache(void); - - /** Returns all forts that *may* intersect the given chunk. - The returned forts live within m_Cache.They are valid until the next call - to this function (which may delete some of the pointers). */ - void GetFortsForChunk(int a_ChunkX, int a_ChunkZ, cNetherForts & a_Forts); - - // cFinishGen overrides: - virtual void GenFinish(cChunkDesc & a_ChunkDesc) override; - - // cPiecePool overrides: - virtual cPieces GetPiecesWithConnector(int a_ConnectorType) override; - virtual cPieces GetStartingPieces(void) override; - virtual int GetPieceWeight(const cPlacedPiece & a_PlacedPiece, const cPiece::cConnector & a_ExistingConnector, const cPiece & a_NewPiece) override; - virtual void PiecePlaced(const cPiece & a_Piece) override; - virtual void Reset(void) override; + // cGridStructGen overrides: + virtual cStructurePtr CreateStructure(int a_OriginX, int a_OriginZ) override; } ; diff --git a/src/Generating/PrefabPiecePool.h b/src/Generating/PrefabPiecePool.h index 2a7993063..c6a5ad360 100644 --- a/src/Generating/PrefabPiecePool.h +++ b/src/Generating/PrefabPiecePool.h @@ -20,11 +20,15 @@ class cPrefabPiecePool : public cPiecePool { public: + /** Creates an empty instance. Prefabs can be added by calling AddPieceDefs() and AddStartingPieceDefs(). */ + cPrefabPiecePool(void); + /** Creates a piece pool with prefabs from the specified definitions. If both a_PieceDefs and a_StartingPieceDefs are given, only the a_StartingPieceDefs are used as starting pieces for the pool, and they do not participate in the generation any further. If only a_PieceDefs is given, any such piece can be chosen as a starting piece, and all the pieces are used - for generating. */ + for generating. + More pieces can be added to the instance afterwards by calling AddPieceDefs() and AddStartingPieceDefs(). */ cPrefabPiecePool( const cPrefab::sDef * a_PieceDefs, size_t a_NumPieceDefs, const cPrefab::sDef * a_StartingPieceDefs, size_t a_NumStartingPieceDefs @@ -35,7 +39,7 @@ public: May be called multiple times with different PieceDefs, will add all such pieces. */ void AddPieceDefs(const cPrefab::sDef * a_PieceDefs, size_t a_NumPieceDefs); - /** Adds pieces from the specified definitions into m_StartingPieces. Doesn't add to + /** Adds pieces from the specified definitions into m_StartingPieces. Doesn't add them to the m_PiecesByConnector map. May be called multiple times with different PieceDefs, will add all such pieces. */ void AddStartingPieceDefs(const cPrefab::sDef * a_StartingPieceDefs, size_t a_NumStartingPieceDefs); -- cgit v1.2.3 From c4ea25e136026004526a63516cbed498e2b6fabe Mon Sep 17 00:00:00 2001 From: Mattes D Date: Thu, 8 May 2014 20:16:35 +0200 Subject: Fixed MSVC 64-bit build warnings. --- src/Generating/Caves.cpp | 10 ++++++++-- src/Generating/MineShafts.cpp | 6 +++--- src/Generating/PieceGenerator.cpp | 4 ++-- src/Generating/Ravines.cpp | 10 ++++++++-- src/Generating/Trees.cpp | 2 +- 5 files changed, 22 insertions(+), 10 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/Caves.cpp b/src/Generating/Caves.cpp index 5cad11d2a..6df22a14a 100644 --- a/src/Generating/Caves.cpp +++ b/src/Generating/Caves.cpp @@ -239,9 +239,15 @@ void cCaveTunnel::Randomize(cNoise & a_Noise) bool cCaveTunnel::RefineDefPoints(const cCaveDefPoints & a_Src, cCaveDefPoints & a_Dst) { + if (a_Src.size() < 2) + { + // There are no midpoints, nothing to smooth + return true; + } + // Smoothing: for each line segment, add points on its 1/4 lengths bool res = false; - int Num = a_Src.size() - 2; // this many intermediary points + size_t Num = a_Src.size() - 2; // this many intermediary points a_Dst.clear(); a_Dst.reserve(Num * 2 + 2); cCaveDefPoints::const_iterator itr = a_Src.begin() + 1; @@ -251,7 +257,7 @@ bool cCaveTunnel::RefineDefPoints(const cCaveDefPoints & a_Src, cCaveDefPoints & int PrevY = Source.m_BlockY; int PrevZ = Source.m_BlockZ; int PrevR = Source.m_Radius; - for (int i = 0; i <= Num; ++i, ++itr) + for (size_t i = 0; i <= Num; ++i, ++itr) { int dx = itr->m_BlockX - PrevX; int dy = itr->m_BlockY - PrevY; diff --git a/src/Generating/MineShafts.cpp b/src/Generating/MineShafts.cpp index 231295c3f..af63e549b 100644 --- a/src/Generating/MineShafts.cpp +++ b/src/Generating/MineShafts.cpp @@ -543,7 +543,7 @@ cMineShaft * cMineShaftCorridor::CreateAndFit( { cCuboid BoundingBox(a_PivotX, a_PivotY - 1, a_PivotZ); BoundingBox.p2.y += 3; - int rnd = a_Noise.IntNoise3DInt(a_PivotX, a_PivotY + a_ParentSystem.m_MineShafts.size(), a_PivotZ) / 7; + int rnd = a_Noise.IntNoise3DInt(a_PivotX, a_PivotY + (int)a_ParentSystem.m_MineShafts.size(), a_PivotZ) / 7; int NumSegments = 2 + (rnd) % (MAX_SEGMENTS - 1); // 2 .. MAX_SEGMENTS switch (a_Direction) { @@ -985,7 +985,7 @@ cMineShaft * cMineShaftCrossing::CreateAndFit( ) { cCuboid BoundingBox(a_PivotX, a_PivotY - 1, a_PivotZ); - int rnd = a_Noise.IntNoise3DInt(a_PivotX, a_PivotY + a_ParentSystem.m_MineShafts.size(), a_PivotZ) / 7; + int rnd = a_Noise.IntNoise3DInt(a_PivotX, a_PivotY + (int)a_ParentSystem.m_MineShafts.size(), a_PivotZ) / 7; BoundingBox.p2.y += 3; if ((rnd % 4) < 2) { @@ -1127,7 +1127,7 @@ cMineShaft * cMineShaftStaircase::CreateAndFit( cNoise & a_Noise ) { - int rnd = a_Noise.IntNoise3DInt(a_PivotX, a_PivotY + a_ParentSystem.m_MineShafts.size(), a_PivotZ) / 7; + int rnd = a_Noise.IntNoise3DInt(a_PivotX, a_PivotY + (int)a_ParentSystem.m_MineShafts.size(), a_PivotZ) / 7; cCuboid Box; switch (a_Direction) { diff --git a/src/Generating/PieceGenerator.cpp b/src/Generating/PieceGenerator.cpp index db45cd08b..ce19c1c95 100644 --- a/src/Generating/PieceGenerator.cpp +++ b/src/Generating/PieceGenerator.cpp @@ -339,9 +339,9 @@ cPlacedPiece * cPieceGenerator::PlaceStartingPiece(int a_BlockX, int a_BlockY, i int NumRotations = 1; for (size_t i = 1; i < ARRAYCOUNT(Rotations); i++) { - if (StartingPiece->CanRotateCCW(i)) + if (StartingPiece->CanRotateCCW((int)i)) { - Rotations[NumRotations] = i; + Rotations[NumRotations] = (int)i; NumRotations += 1; } } diff --git a/src/Generating/Ravines.cpp b/src/Generating/Ravines.cpp index 267dcbbf9..a036cf25f 100644 --- a/src/Generating/Ravines.cpp +++ b/src/Generating/Ravines.cpp @@ -306,8 +306,14 @@ void cStructGenRavines::cRavine::GenerateBaseDefPoints(int a_BlockX, int a_Block void cStructGenRavines::cRavine::RefineDefPoints(const cRavDefPoints & a_Src, cRavDefPoints & a_Dst) { + if (a_Src.size() < 2) + { + // No midpoints, nothing to refine + return; + } + // Smoothing: for each line segment, add points on its 1/4 lengths - int Num = a_Src.size() - 2; // this many intermediary points + size_t Num = a_Src.size() - 2; // this many intermediary points a_Dst.clear(); a_Dst.reserve(Num * 2 + 2); cRavDefPoints::const_iterator itr = a_Src.begin() + 1; @@ -318,7 +324,7 @@ void cStructGenRavines::cRavine::RefineDefPoints(const cRavDefPoints & a_Src, cR int PrevR = Source.m_Radius; int PrevT = Source.m_Top; int PrevB = Source.m_Bottom; - for (int i = 0; i <= Num; ++i, ++itr) + for (size_t i = 0; i <= Num; ++i, ++itr) { int dx = itr->m_BlockX - PrevX; int dz = itr->m_BlockZ - PrevZ; diff --git a/src/Generating/Trees.cpp b/src/Generating/Trees.cpp index 4909587b1..4f1553c36 100644 --- a/src/Generating/Trees.cpp +++ b/src/Generating/Trees.cpp @@ -136,7 +136,7 @@ inline void PushSomeColumns(int a_BlockX, int a_Height, int a_BlockZ, int a_Colu { int x = a_BlockX + a_Coords[i].x; int z = a_BlockZ + a_Coords[i].z; - if (a_Noise.IntNoise3DInt(x + 64 * a_Seq, a_Height + i, z + 64 * a_Seq) <= a_Chance) + if (a_Noise.IntNoise3DInt(x + 64 * a_Seq, a_Height + (int)i, z + 64 * a_Seq) <= a_Chance) { for (int j = 0; j < a_ColumnHeight; j++) { -- cgit v1.2.3 From ee680990ba12b8d272a34e45f372893f2525c868 Mon Sep 17 00:00:00 2001 From: Mattes D Date: Thu, 8 May 2014 21:10:55 +0200 Subject: Fixed cGridStructGen. Now cNetherFortGen works with the new architecture. --- src/Generating/GridStructGen.cpp | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/GridStructGen.cpp b/src/Generating/GridStructGen.cpp index 2f064d3a0..3bbc89054 100644 --- a/src/Generating/GridStructGen.cpp +++ b/src/Generating/GridStructGen.cpp @@ -39,29 +39,17 @@ void cGridStructGen::GetStructuresForChunk(int a_ChunkX, int a_ChunkZ, cStructur int MinGridZ = MinBlockZ / m_GridSizeZ; int MaxGridX = (MaxBlockX + m_GridSizeX - 1) / m_GridSizeX; int MaxGridZ = (MaxBlockZ + m_GridSizeZ - 1) / m_GridSizeZ; - if (MinBlockX < 0) - { - --MinGridX; - } - if (MinBlockZ < 0) - { - --MinGridZ; - } - if (MaxBlockX < 0) - { - --MaxGridX; - } - if (MaxBlockZ < 0) - { - --MaxGridZ; - } + int MinX = MinGridX * m_GridSizeX; + int MaxX = MaxGridX * m_GridSizeX; + int MinZ = MinGridZ * m_GridSizeZ; + int MaxZ = MaxGridZ * m_GridSizeZ; // Walk the cache, move each structure that we want into a_Structures: for (cStructurePtrs::iterator itr = m_Cache.begin(), end = m_Cache.end(); itr != end;) { if ( - ((*itr)->m_OriginX >= MinBlockX) && ((*itr)->m_OriginX < MaxBlockX) && - ((*itr)->m_OriginZ >= MinBlockZ) && ((*itr)->m_OriginZ < MaxBlockZ) + ((*itr)->m_OriginX >= MinX) && ((*itr)->m_OriginX < MaxX) && + ((*itr)->m_OriginZ >= MinZ) && ((*itr)->m_OriginZ < MaxZ) ) { // want -- cgit v1.2.3 From 14543aa3fc204f38d0ab402d4c257d533619a983 Mon Sep 17 00:00:00 2001 From: Mattes D Date: Fri, 9 May 2014 10:59:33 +0200 Subject: Mineshafts generator rewritten to use GridStructGen. --- src/Generating/MineShafts.cpp | 155 ++++++------------------------------------ src/Generating/MineShafts.h | 34 ++++----- 2 files changed, 33 insertions(+), 156 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/MineShafts.cpp b/src/Generating/MineShafts.cpp index af63e549b..7b26c2b62 100644 --- a/src/Generating/MineShafts.cpp +++ b/src/Generating/MineShafts.cpp @@ -234,10 +234,12 @@ protected: -class cStructGenMineShafts::cMineShaftSystem +class cStructGenMineShafts::cMineShaftSystem : + public cGridStructGen::cStructure { + typedef cGridStructGen::cStructure super; + public: - int m_BlockX, m_BlockZ; ///< The pivot point on which the system is generated int m_GridSize; ///< Maximum offset of the dirtroom from grid center, * 2, in each direction int m_MaxRecursion; ///< Maximum recursion level (initialized from cStructGenMineShafts::m_MaxRecursion) int m_ProbLevelCorridor; ///< Probability level of a branch object being the corridor @@ -249,17 +251,15 @@ public: cMineShafts m_MineShafts; ///< List of cMineShaft descendants that comprise this system cCuboid m_BoundingBox; ///< Bounding box into which all of the components need to fit - /// Creates and generates the entire system + + /** Creates and generates the entire system */ cMineShaftSystem( - int a_BlockX, int a_BlockZ, int a_GridSize, int a_MaxSystemSize, cNoise & a_Noise, + int a_OriginX, int a_OriginZ, int a_GridSize, int a_MaxSystemSize, cNoise & a_Noise, int a_ProbLevelCorridor, int a_ProbLevelCrossing, int a_ProbLevelStaircase ); ~cMineShaftSystem(); - /// Carves the system into the chunk data - void ProcessChunk(cChunkDesc & a_Chunk); - /** Creates new cMineShaft descendant connected at the specified point, heading the specified direction, if it fits, appends it to the list and calls its AppendBranches() */ @@ -269,8 +269,11 @@ public: int a_RecursionLevel ); - /// Returns true if none of the objects in m_MineShafts intersect with the specified bounding box and the bounding box is valid + /** Returns true if none of the objects in m_MineShafts intersect with the specified bounding box and the bounding box is valid */ bool CanAppend(const cCuboid & a_BoundingBox); + + // cGridStructGen::cStructure overrides: + virtual void DrawIntoChunk(cChunkDesc & a_Chunk); } ; @@ -281,11 +284,10 @@ public: // cStructGenMineShafts::cMineShaftSystem: cStructGenMineShafts::cMineShaftSystem::cMineShaftSystem( - int a_BlockX, int a_BlockZ, int a_GridSize, int a_MaxSystemSize, cNoise & a_Noise, + int a_OriginX, int a_OriginZ, int a_GridSize, int a_MaxSystemSize, cNoise & a_Noise, int a_ProbLevelCorridor, int a_ProbLevelCrossing, int a_ProbLevelStaircase ) : - m_BlockX(a_BlockX), - m_BlockZ(a_BlockZ), + super(a_OriginX, a_OriginZ), m_GridSize(a_GridSize), m_MaxRecursion(8), // TODO: settable m_ProbLevelCorridor(a_ProbLevelCorridor), @@ -330,7 +332,7 @@ cStructGenMineShafts::cMineShaftSystem::~cMineShaftSystem() -void cStructGenMineShafts::cMineShaftSystem::ProcessChunk(cChunkDesc & a_Chunk) +void cStructGenMineShafts::cMineShaftSystem::DrawIntoChunk(cChunkDesc & a_Chunk) { for (cMineShafts::const_iterator itr = m_MineShafts.begin(), end = m_MineShafts.end(); itr != end; ++itr) { @@ -409,15 +411,15 @@ cMineShaftDirtRoom::cMineShaftDirtRoom(cStructGenMineShafts::cMineShaftSystem & super(a_Parent, mskDirtRoom) { // Make the room of random size, min 10 x 4 x 10; max 18 x 12 x 18: - int rnd = a_Noise.IntNoise3DInt(a_Parent.m_BlockX, 0, a_Parent.m_BlockZ) / 7; + int rnd = a_Noise.IntNoise3DInt(a_Parent.m_OriginX, 0, a_Parent.m_OriginZ) / 7; int OfsX = (rnd % a_Parent.m_GridSize) - a_Parent.m_GridSize / 2; rnd >>= 12; int OfsZ = (rnd % a_Parent.m_GridSize) - a_Parent.m_GridSize / 2; - rnd = a_Noise.IntNoise3DInt(a_Parent.m_BlockX, 1000, a_Parent.m_BlockZ) / 11; - m_BoundingBox.p1.x = a_Parent.m_BlockX + OfsX; + rnd = a_Noise.IntNoise3DInt(a_Parent.m_OriginX, 1000, a_Parent.m_OriginZ) / 11; + m_BoundingBox.p1.x = a_Parent.m_OriginX + OfsX; m_BoundingBox.p2.x = m_BoundingBox.p1.x + 10 + (rnd % 8); rnd >>= 4; - m_BoundingBox.p1.z = a_Parent.m_BlockZ + OfsZ; + m_BoundingBox.p1.z = a_Parent.m_OriginZ + OfsZ; m_BoundingBox.p2.z = m_BoundingBox.p1.z + 10 + (rnd % 8); rnd >>= 4; m_BoundingBox.p1.y = 20; @@ -1287,6 +1289,7 @@ cStructGenMineShafts::cStructGenMineShafts( int a_Seed, int a_GridSize, int a_MaxSystemSize, int a_ChanceCorridor, int a_ChanceCrossing, int a_ChanceStaircase ) : + super(a_Seed, a_GridSize, a_GridSize, 120 + a_MaxSystemSize * 10, 120 + a_MaxSystemSize * 10, 100), m_Noise(a_Seed), m_GridSize(a_GridSize), m_MaxSystemSize(a_MaxSystemSize), @@ -1300,125 +1303,9 @@ cStructGenMineShafts::cStructGenMineShafts( -cStructGenMineShafts::~cStructGenMineShafts() -{ - ClearCache(); -} - - - - - -void cStructGenMineShafts::ClearCache(void) +cGridStructGen::cStructurePtr cStructGenMineShafts::CreateStructure(int a_OriginX, int a_OriginZ) { - for (cMineShaftSystems::const_iterator itr = m_Cache.begin(), end = m_Cache.end(); itr != end; ++itr) - { - delete *itr; - } // for itr - m_Cache[] - m_Cache.clear(); -} - - - - - -void cStructGenMineShafts::GetMineShaftSystemsForChunk( - int a_ChunkX, int a_ChunkZ, - cStructGenMineShafts::cMineShaftSystems & a_MineShafts -) -{ - int BaseX = a_ChunkX * cChunkDef::Width / m_GridSize; - int BaseZ = a_ChunkZ * cChunkDef::Width / m_GridSize; - if (BaseX < 0) - { - --BaseX; - } - if (BaseZ < 0) - { - --BaseZ; - } - BaseX -= NEIGHBORHOOD_SIZE / 2; - BaseZ -= NEIGHBORHOOD_SIZE / 2; - - // Walk the cache, move each cave system that we want into a_Mineshafts: - int StartX = BaseX * m_GridSize; - int EndX = (BaseX + NEIGHBORHOOD_SIZE + 1) * m_GridSize; - int StartZ = BaseZ * m_GridSize; - int EndZ = (BaseZ + NEIGHBORHOOD_SIZE + 1) * m_GridSize; - for (cMineShaftSystems::iterator itr = m_Cache.begin(), end = m_Cache.end(); itr != end;) - { - if ( - ((*itr)->m_BlockX >= StartX) && ((*itr)->m_BlockX < EndX) && - ((*itr)->m_BlockZ >= StartZ) && ((*itr)->m_BlockZ < EndZ) - ) - { - // want - a_MineShafts.push_back(*itr); - itr = m_Cache.erase(itr); - } - else - { - // don't want - ++itr; - } - } // for itr - m_Cache[] - - for (int x = 0; x < NEIGHBORHOOD_SIZE; x++) - { - int RealX = (BaseX + x) * m_GridSize; - for (int z = 0; z < NEIGHBORHOOD_SIZE; z++) - { - int RealZ = (BaseZ + z) * m_GridSize; - bool Found = false; - for (cMineShaftSystems::const_iterator itr = a_MineShafts.begin(), end = a_MineShafts.end(); itr != end; ++itr) - { - if (((*itr)->m_BlockX == RealX) && ((*itr)->m_BlockZ == RealZ)) - { - Found = true; - break; - } - } // for itr - a_Mineshafts - if (!Found) - { - a_MineShafts.push_back(new cMineShaftSystem(RealX, RealZ, m_GridSize, m_MaxSystemSize, m_Noise, m_ProbLevelCorridor, m_ProbLevelCrossing, m_ProbLevelStaircase)); - } - } // for z - } // for x - - // Copy a_MineShafts into m_Cache to the beginning: - cMineShaftSystems MineShaftsCopy(a_MineShafts); - m_Cache.splice(m_Cache.begin(), MineShaftsCopy, MineShaftsCopy.begin(), MineShaftsCopy.end()); - - // Trim the cache if it's too long: - if (m_Cache.size() > 100) - { - cMineShaftSystems::iterator itr = m_Cache.begin(); - std::advance(itr, 100); - for (cMineShaftSystems::iterator end = m_Cache.end(); itr != end; ++itr) - { - delete *itr; - } - itr = m_Cache.begin(); - std::advance(itr, 100); - m_Cache.erase(itr, m_Cache.end()); - } -} - - - - - - -void cStructGenMineShafts::GenFinish(cChunkDesc & a_ChunkDesc) -{ - int ChunkX = a_ChunkDesc.GetChunkX(); - int ChunkZ = a_ChunkDesc.GetChunkZ(); - cMineShaftSystems MineShafts; - GetMineShaftSystemsForChunk(ChunkX, ChunkZ, MineShafts); - for (cMineShaftSystems::const_iterator itr = MineShafts.begin(); itr != MineShafts.end(); ++itr) - { - (*itr)->ProcessChunk(a_ChunkDesc); - } // for itr - MineShafts[] + return cStructurePtr(new cMineShaftSystem(a_OriginX, a_OriginZ, m_GridSize, m_MaxSystemSize, m_Noise, m_ProbLevelCorridor, m_ProbLevelCrossing, m_ProbLevelStaircase)); } diff --git a/src/Generating/MineShafts.h b/src/Generating/MineShafts.h index ba32e75ad..c29b6cdac 100644 --- a/src/Generating/MineShafts.h +++ b/src/Generating/MineShafts.h @@ -9,7 +9,7 @@ #pragma once -#include "ComposableGenerator.h" +#include "GridStructGen.h" #include "../Noise.h" @@ -17,16 +17,16 @@ class cStructGenMineShafts : - public cFinishGen + public cGridStructGen { + typedef cGridStructGen super; + public: cStructGenMineShafts( int a_Seed, int a_GridSize, int a_MaxSystemSize, int a_ChanceCorridor, int a_ChanceCrossing, int a_ChanceStaircase ); - virtual ~cStructGenMineShafts(); - protected: friend class cMineShaft; friend class cMineShaftDirtRoom; @@ -34,26 +34,16 @@ protected: friend class cMineShaftCrossing; friend class cMineShaftStaircase; class cMineShaftSystem; // fwd: MineShafts.cpp - typedef std::list cMineShaftSystems; - cNoise m_Noise; - int m_GridSize; ///< Average spacing of the systems - int m_MaxSystemSize; ///< Maximum blcok size of a mineshaft system - int m_ProbLevelCorridor; ///< Probability level of a branch object being the corridor - int m_ProbLevelCrossing; ///< Probability level of a branch object being the crossing, minus Corridor - int m_ProbLevelStaircase; ///< Probability level of a branch object being the staircase, minus Crossing - cMineShaftSystems m_Cache; ///< Cache of the most recently used systems. MoveToFront used. + cNoise m_Noise; + int m_GridSize; ///< Average spacing of the systems + int m_MaxSystemSize; ///< Maximum blcok size of a mineshaft system + int m_ProbLevelCorridor; ///< Probability level of a branch object being the corridor + int m_ProbLevelCrossing; ///< Probability level of a branch object being the crossing, minus Corridor + int m_ProbLevelStaircase; ///< Probability level of a branch object being the staircase, minus Crossing - /// Clears everything from the cache - void ClearCache(void); - - /** Returns all systems that *may* intersect the given chunk. - All the systems are valid until the next call to this function (which may delete some of the pointers). - */ - void GetMineShaftSystemsForChunk(int a_ChunkX, int a_ChunkZ, cMineShaftSystems & a_MineShaftSystems); - - // cFinishGen overrides: - virtual void GenFinish(cChunkDesc & a_ChunkDesc) override; + // cGridStructGen overrides: + virtual cStructurePtr CreateStructure(int a_OriginX, int a_OriginZ) override; } ; -- cgit v1.2.3 From 95ead1128f85b2f0935c6c0b575a13acbec27b6b Mon Sep 17 00:00:00 2001 From: Mattes D Date: Fri, 9 May 2014 11:16:13 +0200 Subject: cWormNestCaves rewritten using cGridStructGen. Ref.: #987. --- src/Generating/Caves.cpp | 230 +++++------------------------------------------ src/Generating/Caves.h | 22 ++--- 2 files changed, 29 insertions(+), 223 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/Caves.cpp b/src/Generating/Caves.cpp index 6df22a14a..48663c21a 100644 --- a/src/Generating/Caves.cpp +++ b/src/Generating/Caves.cpp @@ -122,27 +122,19 @@ typedef std::vector cCaveTunnels; /// A collection of connected tunnels, possibly branching. -class cStructGenWormNestCaves::cCaveSystem +class cStructGenWormNestCaves::cCaveSystem : + public cGridStructGen::cStructure { + typedef cGridStructGen::cStructure super; + public: // The generating block position; is read directly in cStructGenWormNestCaves::GetCavesForChunk() int m_BlockX; int m_BlockZ; - cCaveSystem(int a_BlockX, int a_BlockZ, int a_MaxOffset, int a_Size, cNoise & a_Noise); + cCaveSystem(int a_OriginX, int a_OriginZ, int a_MaxOffset, int a_Size, cNoise & a_Noise); ~cCaveSystem(); - /// Carves the cave system into the chunk specified - void ProcessChunk( - int a_ChunkX, int a_ChunkZ, - cChunkDef::BlockTypes & a_BlockTypes, - cChunkDef::HeightMap & a_HeightMap - ); - - #ifdef _DEBUG - AString ExportAsSVG(int a_Color, int a_OffsetX, int a_OffsetZ) const; - #endif // _DEBUG - protected: int m_Size; cCaveTunnels m_Tunnels; @@ -157,6 +149,9 @@ protected: /// Returns a radius based on the location provided. int GetRadius(cNoise & a_Noise, int a_OriginX, int a_OriginY, int a_OriginZ); + + // cGridStructGen::cStructure overrides: + virtual void DrawIntoChunk(cChunkDesc & a_ChunkDesc) override; } ; @@ -586,17 +581,16 @@ AString cCaveTunnel::ExportAsSVG(int a_Color, int a_OffsetX, int a_OffsetZ) cons /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // cStructGenWormNestCaves::cCaveSystem: -cStructGenWormNestCaves::cCaveSystem::cCaveSystem(int a_BlockX, int a_BlockZ, int a_MaxOffset, int a_Size, cNoise & a_Noise) : - m_BlockX(a_BlockX), - m_BlockZ(a_BlockZ), +cStructGenWormNestCaves::cCaveSystem::cCaveSystem(int a_OriginX, int a_OriginZ, int a_MaxOffset, int a_Size, cNoise & a_Noise) : + super(a_OriginX, a_OriginZ), m_Size(a_Size) { - int Num = 1 + a_Noise.IntNoise2DInt(a_BlockX, a_BlockZ) % 3; + int Num = 1 + a_Noise.IntNoise2DInt(a_OriginX, a_OriginZ) % 3; for (int i = 0; i < Num; i++) { - int OriginX = a_BlockX + (a_Noise.IntNoise3DInt(13 * a_BlockX, 17 * a_BlockZ, 11 * i) / 19) % a_MaxOffset; - int OriginZ = a_BlockZ + (a_Noise.IntNoise3DInt(17 * a_BlockX, 13 * a_BlockZ, 11 * i) / 23) % a_MaxOffset; - int OriginY = 20 + (a_Noise.IntNoise3DInt(19 * a_BlockX, 13 * a_BlockZ, 11 * i) / 17) % 20; + int OriginX = a_OriginX + (a_Noise.IntNoise3DInt(13 * a_OriginX, 17 * a_OriginZ, 11 * i) / 19) % a_MaxOffset; + int OriginZ = a_OriginZ + (a_Noise.IntNoise3DInt(17 * a_OriginX, 13 * a_OriginZ, 11 * i) / 23) % a_MaxOffset; + int OriginY = 20 + (a_Noise.IntNoise3DInt(19 * a_OriginX, 13 * a_OriginZ, 11 * i) / 17) % 20; // Generate three branches from the origin point: // The tunnels generated depend on X, Y, Z and Branches, @@ -622,64 +616,17 @@ cStructGenWormNestCaves::cCaveSystem::~cCaveSystem() -void cStructGenWormNestCaves::cCaveSystem::ProcessChunk( - int a_ChunkX, int a_ChunkZ, - cChunkDef::BlockTypes & a_BlockTypes, - cChunkDef::HeightMap & a_HeightMap -) -{ - for (cCaveTunnels::const_iterator itr = m_Tunnels.begin(), end = m_Tunnels.end(); itr != end; ++itr) - { - (*itr)->ProcessChunk(a_ChunkX, a_ChunkZ, a_BlockTypes, a_HeightMap); - } // for itr - m_Tunnels[] -} - - - - - -#ifdef _DEBUG -AString cStructGenWormNestCaves::cCaveSystem::ExportAsSVG(int a_Color, int a_OffsetX, int a_OffsetZ) const +void cStructGenWormNestCaves::cCaveSystem::DrawIntoChunk(cChunkDesc & a_ChunkDesc) { - AString SVG; - SVG.reserve(512 * 1024); + int ChunkX = a_ChunkDesc.GetChunkX(); + int ChunkZ = a_ChunkDesc.GetChunkZ(); + cChunkDef::BlockTypes & BlockTypes = a_ChunkDesc.GetBlockTypes(); + cChunkDef::HeightMap & HeightMap = a_ChunkDesc.GetHeightMap(); for (cCaveTunnels::const_iterator itr = m_Tunnels.begin(), end = m_Tunnels.end(); itr != end; ++itr) { - SVG.append((*itr)->ExportAsSVG(a_Color, a_OffsetX, a_OffsetZ)); + (*itr)->ProcessChunk(ChunkX, ChunkZ, BlockTypes, HeightMap); } // for itr - m_Tunnels[] - - // Base point highlight: - AppendPrintf(SVG, "\n", - a_OffsetX + m_BlockX - 5, a_OffsetZ + m_BlockZ, a_OffsetX + m_BlockX + 5, a_OffsetZ + m_BlockZ - ); - AppendPrintf(SVG, "\n", - a_OffsetX + m_BlockX, a_OffsetZ + m_BlockZ - 5, a_OffsetX + m_BlockX, a_OffsetZ + m_BlockZ + 5 - ); - - // A gray line from the base point to the first point of the ravine, for identification: - AppendPrintf(SVG, "\n", - a_OffsetX + m_BlockX, a_OffsetZ + m_BlockZ, - a_OffsetX + m_Tunnels.front()->m_Points.front().m_BlockX, - a_OffsetZ + m_Tunnels.front()->m_Points.front().m_BlockZ - ); - - // Offset guides: - if (a_OffsetX > 0) - { - AppendPrintf(SVG, "\n", - a_OffsetX, a_OffsetX - ); - } - if (a_OffsetZ > 0) - { - AppendPrintf(SVG, "\n", - a_OffsetZ, a_OffsetZ - ); - } - - return SVG; } -#endif // _DEBUG @@ -750,142 +697,9 @@ int cStructGenWormNestCaves::cCaveSystem::GetRadius(cNoise & a_Noise, int a_Orig /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // cStructGenWormNestCaves: -cStructGenWormNestCaves::~cStructGenWormNestCaves() -{ - ClearCache(); -} - - - - - -void cStructGenWormNestCaves::ClearCache(void) -{ - for (cCaveSystems::const_iterator itr = m_Cache.begin(), end = m_Cache.end(); itr != end; ++itr) - { - delete *itr; - } // for itr - m_Cache[] - m_Cache.clear(); -} - - - - - -void cStructGenWormNestCaves::GenFinish(cChunkDesc & a_ChunkDesc) +cGridStructGen::cStructurePtr cStructGenWormNestCaves::CreateStructure(int a_OriginX, int a_OriginZ) { - int ChunkX = a_ChunkDesc.GetChunkX(); - int ChunkZ = a_ChunkDesc.GetChunkZ(); - cCaveSystems Caves; - GetCavesForChunk(ChunkX, ChunkZ, Caves); - for (cCaveSystems::const_iterator itr = Caves.begin(); itr != Caves.end(); ++itr) - { - (*itr)->ProcessChunk(ChunkX, ChunkZ, a_ChunkDesc.GetBlockTypes(), a_ChunkDesc.GetHeightMap()); - } // for itr - Caves[] -} - - - - - -void cStructGenWormNestCaves::GetCavesForChunk(int a_ChunkX, int a_ChunkZ, cStructGenWormNestCaves::cCaveSystems & a_Caves) -{ - int BaseX = a_ChunkX * cChunkDef::Width / m_Grid; - int BaseZ = a_ChunkZ * cChunkDef::Width / m_Grid; - if (BaseX < 0) - { - --BaseX; - } - if (BaseZ < 0) - { - --BaseZ; - } - BaseX -= NEIGHBORHOOD_SIZE / 2; - BaseZ -= NEIGHBORHOOD_SIZE / 2; - - // Walk the cache, move each cave system that we want into a_Caves: - int StartX = BaseX * m_Grid; - int EndX = (BaseX + NEIGHBORHOOD_SIZE + 1) * m_Grid; - int StartZ = BaseZ * m_Grid; - int EndZ = (BaseZ + NEIGHBORHOOD_SIZE + 1) * m_Grid; - for (cCaveSystems::iterator itr = m_Cache.begin(), end = m_Cache.end(); itr != end;) - { - if ( - ((*itr)->m_BlockX >= StartX) && ((*itr)->m_BlockX < EndX) && - ((*itr)->m_BlockZ >= StartZ) && ((*itr)->m_BlockZ < EndZ) - ) - { - // want - a_Caves.push_back(*itr); - itr = m_Cache.erase(itr); - } - else - { - // don't want - ++itr; - } - } // for itr - m_Cache[] - - for (int x = 0; x < NEIGHBORHOOD_SIZE; x++) - { - int RealX = (BaseX + x) * m_Grid; - for (int z = 0; z < NEIGHBORHOOD_SIZE; z++) - { - int RealZ = (BaseZ + z) * m_Grid; - bool Found = false; - for (cCaveSystems::const_iterator itr = a_Caves.begin(), end = a_Caves.end(); itr != end; ++itr) - { - if (((*itr)->m_BlockX == RealX) && ((*itr)->m_BlockZ == RealZ)) - { - Found = true; - break; - } - } - if (!Found) - { - a_Caves.push_back(new cCaveSystem(RealX, RealZ, m_MaxOffset, m_Size, m_Noise)); - } - } - } - - // Copy a_Caves into m_Cache to the beginning: - cCaveSystems CavesCopy(a_Caves); - m_Cache.splice(m_Cache.begin(), CavesCopy, CavesCopy.begin(), CavesCopy.end()); - - // Trim the cache if it's too long: - if (m_Cache.size() > 100) - { - cCaveSystems::iterator itr = m_Cache.begin(); - std::advance(itr, 100); - for (cCaveSystems::iterator end = m_Cache.end(); itr != end; ++itr) - { - delete *itr; - } - itr = m_Cache.begin(); - std::advance(itr, 100); - m_Cache.erase(itr, m_Cache.end()); - } - - /* - // Uncomment this block for debugging the caves' shapes in 2D using an SVG export - #ifdef _DEBUG - AString SVG; - SVG.append("\n\n"); - SVG.reserve(2 * 1024 * 1024); - for (cCaveSystems::const_iterator itr = a_Caves.begin(), end = a_Caves.end(); itr != end; ++itr) - { - int Color = 0x10 * abs((*itr)->m_BlockX / m_Grid); - Color |= 0x1000 * abs((*itr)->m_BlockZ / m_Grid); - SVG.append((*itr)->ExportAsSVG(Color, 512, 512)); - } - SVG.append("\n"); - - AString fnam; - Printf(fnam, "wnc\\%03d_%03d.svg", a_ChunkX, a_ChunkZ); - cFile File(fnam, cFile::fmWrite); - File.Write(SVG.c_str(), SVG.size()); - #endif // _DEBUG - //*/ + return cStructurePtr(new cCaveSystem(a_OriginX, a_OriginZ, m_MaxOffset, m_Size, m_Noise)); } diff --git a/src/Generating/Caves.h b/src/Generating/Caves.h index 2a9fa01b8..254dcddbd 100644 --- a/src/Generating/Caves.h +++ b/src/Generating/Caves.h @@ -12,7 +12,7 @@ #pragma once -#include "ComposableGenerator.h" +#include "GridStructGen.h" #include "../Noise.h" @@ -64,10 +64,12 @@ protected: class cStructGenWormNestCaves : - public cFinishGen + public cGridStructGen { + typedef cGridStructGen super; public: cStructGenWormNestCaves(int a_Seed, int a_Size = 64, int a_Grid = 96, int a_MaxOffset = 128) : + super(a_Seed, a_Grid, a_Grid, a_Size + a_MaxOffset, a_Size + a_MaxOffset, 100), m_Noise(a_Seed), m_Size(a_Size), m_MaxOffset(a_MaxOffset), @@ -75,26 +77,16 @@ public: { } - ~cStructGenWormNestCaves(); - protected: class cCaveSystem; // fwd: Caves.cpp - typedef std::list cCaveSystems; cNoise m_Noise; int m_Size; // relative size of the cave systems' caves. Average number of blocks of each initial tunnel int m_MaxOffset; // maximum offset of the cave nest origin from the grid cell the nest belongs to int m_Grid; // average spacing of the nests - cCaveSystems m_Cache; - - /// Clears everything from the cache - void ClearCache(void); - - /// Returns all caves that *may* intersect the given chunk. All the caves are valid until the next call to this function. - void GetCavesForChunk(int a_ChunkX, int a_ChunkZ, cCaveSystems & a_Caves); - - // cFinishGen override: - virtual void GenFinish(cChunkDesc & a_ChunkDesc) override; + + // cGridStructGen override: + virtual cStructurePtr CreateStructure(int a_OriginX, int a_OriginZ) override; } ; -- cgit v1.2.3 From ea593dcaad59bf6e91da59ec5dadc64b9b803580 Mon Sep 17 00:00:00 2001 From: Mattes D Date: Fri, 9 May 2014 18:30:39 +0200 Subject: Ravines rewritten using cGridStructGen. Ref.: #987. --- src/Generating/Ravines.cpp | 198 +++++++-------------------------------------- src/Generating/Ravines.h | 24 +++--- 2 files changed, 40 insertions(+), 182 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/Ravines.cpp b/src/Generating/Ravines.cpp index a036cf25f..78093f5ee 100644 --- a/src/Generating/Ravines.cpp +++ b/src/Generating/Ravines.cpp @@ -42,40 +42,38 @@ typedef std::vector cRavDefPoints; -class cStructGenRavines::cRavine +class cStructGenRavines::cRavine : + public cGridStructGen::cStructure { + typedef cGridStructGen::cStructure super; + cRavDefPoints m_Points; + - /// Generates the shaping defpoints for the ravine, based on the ravine block coords and noise + /** Generates the shaping defpoints for the ravine, based on the ravine block coords and noise */ void GenerateBaseDefPoints(int a_BlockX, int a_BlockZ, int a_Size, cNoise & a_Noise); - /// Refines (adds and smooths) defpoints from a_Src into a_Dst + /** Refines (adds and smooths) defpoints from a_Src into a_Dst */ void RefineDefPoints(const cRavDefPoints & a_Src, cRavDefPoints & a_Dst); - /// Does one round of smoothing, two passes of RefineDefPoints() + /** Does one round of smoothing, two passes of RefineDefPoints() */ void Smooth(void); - /// Linearly interpolates the points so that the maximum distance between two neighbors is max 1 block + /** Linearly interpolates the points so that the maximum distance between two neighbors is max 1 block */ void FinishLinear(void); public: - // Coords for which the ravine was generated (not necessarily the center) - int m_BlockX; - int m_BlockZ; cRavine(int a_BlockX, int a_BlockZ, int a_Size, cNoise & a_Noise); - /// Carves the ravine into the chunk specified - void ProcessChunk( - int a_ChunkX, int a_ChunkZ, - cChunkDef::BlockTypes & a_BlockTypes, - cChunkDef::HeightMap & a_HeightMap - ); - #ifdef _DEBUG /// Exports itself as a SVG line definition AString ExportAsSVG(int a_Color, int a_OffsetX = 0, int a_OffsetZ = 0) const; #endif // _DEBUG + +protected: + // cGridStructGen::cStructure overrides: + virtual void DrawIntoChunk(cChunkDesc & a_ChunkDesc) override; } ; @@ -86,6 +84,7 @@ public: // cStructGenRavines: cStructGenRavines::cStructGenRavines(int a_Seed, int a_Size) : + super(a_Seed, a_Size, a_Size, a_Size * 2, a_Size * 2, 100), m_Noise(a_Seed), m_Size(a_Size) { @@ -95,139 +94,9 @@ cStructGenRavines::cStructGenRavines(int a_Seed, int a_Size) : -cStructGenRavines::~cStructGenRavines() +cGridStructGen::cStructurePtr cStructGenRavines::CreateStructure(int a_OriginX, int a_OriginZ) { - ClearCache(); -} - - - - - -void cStructGenRavines::ClearCache(void) -{ - for (cRavines::const_iterator itr = m_Cache.begin(), end = m_Cache.end(); itr != end; ++itr) - { - delete *itr; - } // for itr - m_Cache[] - m_Cache.clear(); -} - - - - - -void cStructGenRavines::GenFinish(cChunkDesc & a_ChunkDesc) -{ - int ChunkX = a_ChunkDesc.GetChunkX(); - int ChunkZ = a_ChunkDesc.GetChunkZ(); - cRavines Ravines; - GetRavinesForChunk(ChunkX, ChunkZ, Ravines); - for (cRavines::const_iterator itr = Ravines.begin(), end = Ravines.end(); itr != end; ++itr) - { - (*itr)->ProcessChunk(ChunkX, ChunkZ, a_ChunkDesc.GetBlockTypes(), a_ChunkDesc.GetHeightMap()); - } // for itr - Ravines[] -} - - - - - -void cStructGenRavines::GetRavinesForChunk(int a_ChunkX, int a_ChunkZ, cStructGenRavines::cRavines & a_Ravines) -{ - int BaseX = a_ChunkX * cChunkDef::Width / m_Size; - int BaseZ = a_ChunkZ * cChunkDef::Width / m_Size; - if (BaseX < 0) - { - --BaseX; - } - if (BaseZ < 0) - { - --BaseZ; - } - BaseX -= 4; - BaseZ -= 4; - - // Walk the cache, move each ravine that we want into a_Ravines: - int StartX = BaseX * m_Size; - int EndX = (BaseX + NEIGHBORHOOD_SIZE + 1) * m_Size; - int StartZ = BaseZ * m_Size; - int EndZ = (BaseZ + NEIGHBORHOOD_SIZE + 1) * m_Size; - for (cRavines::iterator itr = m_Cache.begin(), end = m_Cache.end(); itr != end;) - { - if ( - ((*itr)->m_BlockX >= StartX) && ((*itr)->m_BlockX < EndX) && - ((*itr)->m_BlockZ >= StartZ) && ((*itr)->m_BlockZ < EndZ) - ) - { - // want - a_Ravines.push_back(*itr); - itr = m_Cache.erase(itr); - } - else - { - // don't want - ++itr; - } - } // for itr - m_Cache[] - - for (int x = 0; x < NEIGHBORHOOD_SIZE; x++) - { - int RealX = (BaseX + x) * m_Size; - for (int z = 0; z < NEIGHBORHOOD_SIZE; z++) - { - int RealZ = (BaseZ + z) * m_Size; - bool Found = false; - for (cRavines::const_iterator itr = a_Ravines.begin(), end = a_Ravines.end(); itr != end; ++itr) - { - if (((*itr)->m_BlockX == RealX) && ((*itr)->m_BlockZ == RealZ)) - { - Found = true; - break; - } - } - if (!Found) - { - a_Ravines.push_back(new cRavine(RealX, RealZ, m_Size, m_Noise)); - } - } - } - - // Copy a_Ravines into m_Cache to the beginning: - cRavines RavinesCopy(a_Ravines); - m_Cache.splice(m_Cache.begin(), RavinesCopy, RavinesCopy.begin(), RavinesCopy.end()); - - // Trim the cache if it's too long: - if (m_Cache.size() > 100) - { - cRavines::iterator itr = m_Cache.begin(); - std::advance(itr, 100); - for (cRavines::iterator end = m_Cache.end(); itr != end; ++itr) - { - delete *itr; - } - itr = m_Cache.begin(); - std::advance(itr, 100); - m_Cache.erase(itr, m_Cache.end()); - } - - /* - #ifdef _DEBUG - // DEBUG: Export as SVG into a file specific for the chunk, for visual verification: - AString SVG; - SVG.append("\n\n"); - for (cRavines::const_iterator itr = a_Ravines.begin(), end = a_Ravines.end(); itr != end; ++itr) - { - SVG.append((*itr)->ExportAsSVG(0, 512, 512)); - } - SVG.append("\n"); - - AString fnam; - Printf(fnam, "ravines\\%03d_%03d.svg", a_ChunkX, a_ChunkZ); - cFile File(fnam, cFile::fmWrite); - File.Write(SVG.c_str(), SVG.size()); - #endif // _DEBUG - //*/ + return cStructurePtr(new cRavine(a_OriginX, a_OriginZ, m_Size, m_Noise)); } @@ -238,14 +107,13 @@ void cStructGenRavines::GetRavinesForChunk(int a_ChunkX, int a_ChunkZ, cStructGe /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // cStructGenRavines::cRavine -cStructGenRavines::cRavine::cRavine(int a_BlockX, int a_BlockZ, int a_Size, cNoise & a_Noise) : - m_BlockX(a_BlockX), - m_BlockZ(a_BlockZ) +cStructGenRavines::cRavine::cRavine(int a_OriginX, int a_OriginZ, int a_Size, cNoise & a_Noise) : + super(a_OriginX, a_OriginZ) { // Calculate the ravine shape-defining points: - GenerateBaseDefPoints(a_BlockX, a_BlockZ, a_Size, a_Noise); + GenerateBaseDefPoints(a_OriginX, a_OriginZ, a_Size, a_Noise); - // Smooth the ravine. A two passes are needed: + // Smooth the ravine. Two passes are needed: Smooth(); Smooth(); @@ -263,8 +131,8 @@ void cStructGenRavines::cRavine::GenerateBaseDefPoints(int a_BlockX, int a_Block a_Size = (512 + ((a_Noise.IntNoise3DInt(19 * a_BlockX, 11 * a_BlockZ, a_BlockX + a_BlockZ) / 17) % 512)) * a_Size / 1024; // The complete offset of the ravine from its cellpoint, up to 2 * a_Size in each direction - int OffsetX = (((a_Noise.IntNoise3DInt(50 * a_BlockX, 30 * a_BlockZ, 0) / 9) % (2 * a_Size)) + ((a_Noise.IntNoise3DInt(30 * a_BlockX, 50 * m_BlockZ, 1000) / 7) % (2 * a_Size)) - 2 * a_Size) / 2; - int OffsetZ = (((a_Noise.IntNoise3DInt(50 * a_BlockX, 30 * a_BlockZ, 2000) / 7) % (2 * a_Size)) + ((a_Noise.IntNoise3DInt(30 * a_BlockX, 50 * m_BlockZ, 3000) / 9) % (2 * a_Size)) - 2 * a_Size) / 2; + int OffsetX = (((a_Noise.IntNoise3DInt(50 * a_BlockX, 30 * a_BlockZ, 0) / 9) % (2 * a_Size)) + ((a_Noise.IntNoise3DInt(30 * a_BlockX, 50 * a_BlockZ, 1000) / 7) % (2 * a_Size)) - 2 * a_Size) / 2; + int OffsetZ = (((a_Noise.IntNoise3DInt(50 * a_BlockX, 30 * a_BlockZ, 2000) / 7) % (2 * a_Size)) + ((a_Noise.IntNoise3DInt(30 * a_BlockX, 50 * a_BlockZ, 3000) / 9) % (2 * a_Size)) - 2 * a_Size) / 2; int CenterX = a_BlockX + OffsetX; int CenterZ = a_BlockZ + OffsetZ; @@ -429,15 +297,15 @@ AString cStructGenRavines::cRavine::ExportAsSVG(int a_Color, int a_OffsetX, int // Base point highlight: AppendPrintf(SVG, "\n", - a_OffsetX + m_BlockX - 5, a_OffsetZ + m_BlockZ, a_OffsetX + m_BlockX + 5, a_OffsetZ + m_BlockZ + a_OffsetX + m_OriginX - 5, a_OffsetZ + m_OriginZ, a_OffsetX + m_OriginX + 5, a_OffsetZ + m_OriginZ ); AppendPrintf(SVG, "\n", - a_OffsetX + m_BlockX, a_OffsetZ + m_BlockZ - 5, a_OffsetX + m_BlockX, a_OffsetZ + m_BlockZ + 5 + 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, "\n", - a_OffsetX + m_BlockX, a_OffsetZ + m_BlockZ, a_OffsetX + m_Points.front().m_BlockX, a_OffsetZ + m_Points.front().m_BlockZ + a_OffsetX + m_OriginX, a_OffsetZ + m_OriginZ, a_OffsetX + m_Points.front().m_BlockX, a_OffsetZ + m_Points.front().m_BlockZ ); // Offset guides: @@ -461,14 +329,10 @@ AString cStructGenRavines::cRavine::ExportAsSVG(int a_Color, int a_OffsetX, int -void cStructGenRavines::cRavine::ProcessChunk( - int a_ChunkX, int a_ChunkZ, - cChunkDef::BlockTypes & a_BlockTypes, - cChunkDef::HeightMap & a_HeightMap -) +void cStructGenRavines::cRavine::DrawIntoChunk(cChunkDesc & a_ChunkDesc) { - int BlockStartX = a_ChunkX * cChunkDef::Width; - int BlockStartZ = a_ChunkZ * cChunkDef::Width; + 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 (cRavDefPoints::const_iterator itr = m_Points.begin(), end = m_Points.end(); itr != end; ++itr) @@ -494,7 +358,7 @@ void cStructGenRavines::cRavine::ProcessChunk( // DEBUG: Make the ravine shapepoints visible on a single layer (so that we can see with Minutor what's going on) if ((DifX + x == 0) && (DifZ + z == 0)) { - cChunkDef::SetBlock(a_BlockTypes, x, 4, z, E_BLOCK_LAPIS_ORE); + a_ChunkDesc.SetBlockType(x, 4, z, E_BLOCK_LAPIS_ORE); } #endif // _DEBUG @@ -504,7 +368,7 @@ void cStructGenRavines::cRavine::ProcessChunk( int Top = std::min(itr->m_Top, (int)(cChunkDef::Height)); // Stupid gcc needs int cast for (int y = std::max(itr->m_Bottom, 1); y <= Top; y++) { - switch (cChunkDef::GetBlock(a_BlockTypes, x, y, z)) + switch (a_ChunkDesc.GetBlockType(x, y, z)) { // Only carve out these specific block types case E_BLOCK_DIRT: @@ -522,7 +386,7 @@ void cStructGenRavines::cRavine::ProcessChunk( case E_BLOCK_REDSTONE_ORE: case E_BLOCK_REDSTONE_ORE_GLOWING: { - cChunkDef::SetBlock(a_BlockTypes, x, y, z, E_BLOCK_AIR); + a_ChunkDesc.SetBlockType(x, y, z, E_BLOCK_AIR); break; } default: break; diff --git a/src/Generating/Ravines.h b/src/Generating/Ravines.h index c76b9f19f..30b47e9ec 100644 --- a/src/Generating/Ravines.h +++ b/src/Generating/Ravines.h @@ -9,7 +9,7 @@ #pragma once -#include "ComposableGenerator.h" +#include "GridStructGen.h" #include "../Noise.h" @@ -17,28 +17,22 @@ class cStructGenRavines : - public cFinishGen + public cGridStructGen { + typedef cGridStructGen super; + public: cStructGenRavines(int a_Seed, int a_Size); - ~cStructGenRavines(); protected: class cRavine; // fwd: Ravines.cpp - typedef std::list cRavines; - - cNoise m_Noise; - int m_Size; // Max size, in blocks, of the ravines generated - cRavines m_Cache; - /// Clears everything from the cache - void ClearCache(void); + cNoise m_Noise; + int m_Size; // Max size, in blocks, of the ravines generated - /// Returns all ravines that *may* intersect the given chunk. All the ravines are valid until the next call to this function. - void GetRavinesForChunk(int a_ChunkX, int a_ChunkZ, cRavines & a_Ravines); - - // cFinishGen override: - virtual void GenFinish(cChunkDesc & a_ChunkDesc) override; + + // cGridStructGen overrides: + virtual cStructurePtr CreateStructure(int a_OriginX, int a_OriginZ) override; } ; -- cgit v1.2.3 From b997fbaf4577f0c3ff4f60f1a9ab2ca93c5f0d71 Mon Sep 17 00:00:00 2001 From: Mattes D Date: Fri, 9 May 2014 19:35:35 +0200 Subject: Removed an unused macro. --- src/Generating/Caves.cpp | 7 ------- 1 file changed, 7 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/Caves.cpp b/src/Generating/Caves.cpp index 48663c21a..872e3341d 100644 --- a/src/Generating/Caves.cpp +++ b/src/Generating/Caves.cpp @@ -35,13 +35,6 @@ reduced in complexity in order for this generator to be useful, so the caves' sh -/// How many nests in each direction are generated for a given chunk. Must be an even number -#define NEIGHBORHOOD_SIZE 8 - - - - - const int MIN_RADIUS = 3; const int MAX_RADIUS = 8; -- cgit v1.2.3 From 0fc60edaeb4bc54b87bc3d7af4631802c0331303 Mon Sep 17 00:00:00 2001 From: Mattes D Date: Fri, 9 May 2014 19:53:57 +0200 Subject: Removed an unused NetherFortGen variable. --- src/Generating/NetherFortGen.cpp | 6 ------ 1 file changed, 6 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/NetherFortGen.cpp b/src/Generating/NetherFortGen.cpp index ac7fd0b7b..3867ec80c 100644 --- a/src/Generating/NetherFortGen.cpp +++ b/src/Generating/NetherFortGen.cpp @@ -11,12 +11,6 @@ -static const int NEIGHBORHOOD_SIZE = 3; - - - - - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // cNetherFortGen::cNetherFort: -- cgit v1.2.3 From a936736acd822b29d09b4344ece768656b4d24db Mon Sep 17 00:00:00 2001 From: Mattes D Date: Fri, 9 May 2014 20:13:20 +0200 Subject: Removed unused constants from MineShafts and Ravines. --- src/Generating/MineShafts.cpp | 6 ------ src/Generating/Ravines.cpp | 3 --- 2 files changed, 9 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/MineShafts.cpp b/src/Generating/MineShafts.cpp index 7b26c2b62..391e4c04f 100644 --- a/src/Generating/MineShafts.cpp +++ b/src/Generating/MineShafts.cpp @@ -25,12 +25,6 @@ in a depth-first processing. Each of the descendants will branch randomly, if no -static const int NEIGHBORHOOD_SIZE = 3; - - - - - class cMineShaft abstract { public: diff --git a/src/Generating/Ravines.cpp b/src/Generating/Ravines.cpp index 78093f5ee..2722e4ca3 100644 --- a/src/Generating/Ravines.cpp +++ b/src/Generating/Ravines.cpp @@ -9,9 +9,6 @@ -/// How many ravines in each direction are generated for a given chunk. Must be an even number -static const int NEIGHBORHOOD_SIZE = 8; - static const int NUM_RAVINE_POINTS = 4; -- cgit v1.2.3 From c0727c426572745c72a61d26a84754d5a641d562 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Sun, 11 May 2014 22:35:41 +0200 Subject: Initial VillageGen implementation. WIP, doesn't generate anything yet. Ref.: 740. --- src/Generating/Prefabs/PlainsVillagePrefabs.cpp | 3726 +++++++++++++++++++++++ src/Generating/Prefabs/PlainsVillagePrefabs.h | 15 + src/Generating/Prefabs/SandVillagePrefabs.cpp | 1887 ++++++++++++ src/Generating/Prefabs/SandVillagePrefabs.h | 15 + src/Generating/VillageGen.cpp | 116 + src/Generating/VillageGen.h | 48 + 6 files changed, 5807 insertions(+) create mode 100644 src/Generating/Prefabs/PlainsVillagePrefabs.cpp create mode 100644 src/Generating/Prefabs/PlainsVillagePrefabs.h create mode 100644 src/Generating/Prefabs/SandVillagePrefabs.cpp create mode 100644 src/Generating/Prefabs/SandVillagePrefabs.h create mode 100644 src/Generating/VillageGen.cpp create mode 100644 src/Generating/VillageGen.h (limited to 'src/Generating') diff --git a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp new file mode 100644 index 000000000..f59e22fb3 --- /dev/null +++ b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp @@ -0,0 +1,3726 @@ + +// PlainsVillagePrefabs.cpp + +// Defines the prefabs in the group PlainsVillage + +// NOTE: This file has been generated automatically by GalExport! +// Any manual changes will be overwritten by the next automatic export! + +#include "Globals.h" +#include "PlainsVillagePrefabs.h" + + + + + +const cPrefab::sDef g_PlainsVillagePrefabs[] = +{ + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Forge: + // The data has been exported from the gallery Plains, area index 51, ID 102, created by Aloe_vera + { + // Size: + 12, 8, 11, // SizeX = 12, SizeY = 8, SizeZ = 11 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 11, 7, 10, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 67: 0\n" /* stairs */ + "b: 67: 2\n" /* stairs */ + "c: 67: 1\n" /* stairs */ + "d: 4: 0\n" /* cobblestone */ + "e: 17: 0\n" /* tree */ + "f: 5: 0\n" /* wood */ + "g: 64: 6\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 */ + "m: 19: 0\n" /* sponge */ + "n:139: 0\n" /* cobblestonewall */ + "o:101: 0\n" /* ironbars */ + "p: 53: 2\n" /* woodstairs */ + "q: 53: 7\n" /* woodstairs */ + "r: 50: 2\n" /* torch */ + "s: 50: 1\n" /* torch */ + "t: 53: 6\n" /* woodstairs */ + "u: 53: 3\n" /* woodstairs */ + "v: 43: 0\n" /* doubleslab */ + "w: 44: 0\n" /* step */, + + // Block data: + // Level 0 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ ".....abbbc.." + /* 1 */ ".ddddddddc.." + /* 2 */ ".ddddddddc.." + /* 3 */ ".ddddddddddd" + /* 4 */ ".ddddddddddd" + /* 5 */ ".ddddddddddd" + /* 6 */ ".ddddddddddd" + /* 7 */ ".ddddddddddd" + /* 8 */ ".ddddd.mmmmm" + /* 9 */ ".ddddd.mmmmm" + /* 10 */ ".......mmmmm" + + // Level 1 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ ".efffe......" + /* 2 */ ".f...g......" + /* 3 */ ".f...ed..ddd" + /* 4 */ ".f...f...dhd" + /* 5 */ ".f...f...dhd" + /* 6 */ ".f...fijjdhd" + /* 7 */ ".f...edddddd" + /* 8 */ ".f...f.mmmmm" + /* 9 */ ".efffe.mmmmm" + /* 10 */ ".......mmmmm" + + // Level 2 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ ".ekkke......" + /* 2 */ ".k...l......" + /* 3 */ ".k...en..n.d" + /* 4 */ ".k...k.....o" + /* 5 */ ".f...k.....o" + /* 6 */ ".k...k.....o" + /* 7 */ ".k...edooood" + /* 8 */ ".k...f.mmmmm" + /* 9 */ ".ekkke.mmmmm" + /* 10 */ ".......mmmmm" + + // Level 3 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "ppppppp....." + /* 1 */ "qfffffq....." + /* 2 */ ".f...f......" + /* 3 */ ".f..rfd..dod" + /* 4 */ ".f...f...o.d" + /* 5 */ ".f...f...o.d" + /* 6 */ ".fs..f...o.d" + /* 7 */ ".f...fdddddd" + /* 8 */ ".f...f.mmmmm" + /* 9 */ "tffffftmmmmm" + /* 10 */ "uuuuuuummmmm" + + // Level 4 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ "ppppppp....." + /* 2 */ "qfffffq....." + /* 3 */ ".f...fvvvvvv" + /* 4 */ ".f...fvwwwwv" + /* 5 */ ".f...fvwwwwv" + /* 6 */ ".f...fvwwwwv" + /* 7 */ ".f...fvvvvvv" + /* 8 */ "tffffftmmmmm" + /* 9 */ "uuuuuuummmmm" + /* 10 */ ".......mmmmm" + + // Level 5 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ "............" + /* 2 */ "ppppppp....." + /* 3 */ "qfffffq....." + /* 4 */ ".f...f......" + /* 5 */ ".f...f......" + /* 6 */ ".f...f......" + /* 7 */ "tffffft....." + /* 8 */ "uuuuuuummmmm" + /* 9 */ ".......mmmmm" + /* 10 */ ".......mmmmm" + + // Level 6 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ "............" + /* 2 */ "............" + /* 3 */ "ppppppp....." + /* 4 */ "qfffffq....." + /* 5 */ ".f...f......" + /* 6 */ "tffffft....." + /* 7 */ "uuuuuuu....." + /* 8 */ ".......mmmmm" + /* 9 */ ".......mmmmm" + /* 10 */ ".......mmmmm" + + // Level 7 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ "............" + /* 2 */ "............" + /* 3 */ "............" + /* 4 */ "ppppppp....." + /* 5 */ "fffffff....." + /* 6 */ "uuuuuuu....." + /* 7 */ "............" + /* 8 */ ".......mmmmm" + /* 9 */ ".......mmmmm" + /* 10 */ ".......mmmmm", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // Forge + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // PlainsVillage_100: + // The data has been exported from the gallery Plains, area index 49, ID 100, created by Aloe_vera + { + // Size: + 7, 6, 7, // SizeX = 7, SizeY = 6, SizeZ = 7 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 6, 5, 6, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 67: 0\n" /* stairs */ + "b: 67: 2\n" /* stairs */ + "c: 67: 1\n" /* stairs */ + "d: 4: 0\n" /* cobblestone */ + "e: 17: 0\n" /* tree */ + "f: 5: 0\n" /* wood */ + "g: 64: 5\n" /* wooddoorblock */ + "h: 64:12\n" /* wooddoorblock */ + "i:102: 0\n" /* glasspane */ + "j: 53: 2\n" /* woodstairs */ + "k: 53: 7\n" /* woodstairs */ + "l: 50: 3\n" /* torch */ + "m: 19: 0\n" /* sponge */ + "n: 53: 6\n" /* woodstairs */ + "o: 53: 3\n" /* woodstairs */, + + // Block data: + // Level 0 + /* z\x* 0123456 */ + /* 0 */ "..abc.." + /* 1 */ ".ddddd." + /* 2 */ ".ddddd." + /* 3 */ ".ddddd." + /* 4 */ ".ddddd." + /* 5 */ ".ddddd." + /* 6 */ "......." + + // Level 1 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".efgfe." + /* 2 */ ".f...f." + /* 3 */ ".f...f." + /* 4 */ ".f...f." + /* 5 */ ".efffe." + /* 6 */ "......." + + // Level 2 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".efhfe." + /* 2 */ ".i...i." + /* 3 */ ".i...i." + /* 4 */ ".i...i." + /* 5 */ ".eiiie." + /* 6 */ "......." + + // Level 3 + /* z\x* 0123456 */ + /* 0 */ "jjjjjjj" + /* 1 */ "kfffffk" + /* 2 */ ".fl.lf." + /* 3 */ ".f...f." + /* 4 */ ".f...f." + /* 5 */ "nfffffn" + /* 6 */ "ooooooo" + + // Level 4 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ "jjjjjjj" + /* 2 */ "kfffffk" + /* 3 */ ".f...f." + /* 4 */ "nfffffn" + /* 5 */ "ooooooo" + /* 6 */ "......." + + // Level 5 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ "......." + /* 2 */ "jjjjjjj" + /* 3 */ "fffffff" + /* 4 */ "ooooooo" + /* 5 */ "......." + /* 6 */ ".......", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // PlainsVillage_100 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // PlainsVillage_103: + // The data has been exported from the gallery Plains, area index 52, ID 103, created by Aloe_vera + { + // Size: + 11, 7, 9, // SizeX = 11, SizeY = 7, SizeZ = 9 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 10, 6, 8, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 67: 0\n" /* stairs */ + "b: 67: 2\n" /* stairs */ + "c: 67: 1\n" /* stairs */ + "d: 4: 0\n" /* cobblestone */ + "e: 17: 0\n" /* tree */ + "f: 5: 0\n" /* wood */ + "g: 64: 5\n" /* wooddoorblock */ + "h:102: 0\n" /* glasspane */ + "i: 64:12\n" /* wooddoorblock */ + "j: 53: 2\n" /* woodstairs */ + "k: 53: 7\n" /* woodstairs */ + "l: 50: 3\n" /* torch */ + "m: 19: 0\n" /* sponge */ + "n: 50: 4\n" /* torch */ + "o: 53: 6\n" /* woodstairs */ + "p: 53: 3\n" /* woodstairs */, + + // Block data: + // Level 0 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "....abc...." + /* 1 */ ".ddddddddd." + /* 2 */ ".ddddddddd." + /* 3 */ ".ddddddddd." + /* 4 */ ".ddddddddd." + /* 5 */ ".ddddddddd." + /* 6 */ ".ddddddddd." + /* 7 */ ".ddddddddd." + /* 8 */ "..........." + + // Level 1 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".efffgfffe." + /* 2 */ ".f.......f." + /* 3 */ ".f.......f." + /* 4 */ ".f.......f." + /* 5 */ ".f.......f." + /* 6 */ ".f.......f." + /* 7 */ ".efffffffe." + /* 8 */ "..........." + + // Level 2 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".ehhfifhhe." + /* 2 */ ".h.......h." + /* 3 */ ".h.......h." + /* 4 */ ".f.......f." + /* 5 */ ".h.......h." + /* 6 */ ".h.......h." + /* 7 */ ".ehhhfhhhe." + /* 8 */ "..........." + + // Level 3 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "jjjjjjjjjjj" + /* 1 */ "kfffffffffk" + /* 2 */ ".f..l.l..f." + /* 3 */ ".f.......f." + /* 4 */ ".f.......f." + /* 5 */ ".f.......f." + /* 6 */ ".f...n...f." + /* 7 */ "offfffffffo" + /* 8 */ "ppppppppppp" + + // Level 4 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "jjjjjjjjjjj" + /* 2 */ "kfffffffffk" + /* 3 */ ".f.......f." + /* 4 */ ".f.......f." + /* 5 */ ".f.......f." + /* 6 */ "offfffffffo" + /* 7 */ "ppppppppppp" + /* 8 */ "..........." + + // Level 5 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "jjjjjjjjjjj" + /* 3 */ "kfffffffffk" + /* 4 */ ".f.......f." + /* 5 */ "offfffffffo" + /* 6 */ "ppppppppppp" + /* 7 */ "..........." + /* 8 */ "..........." + + // Level 6 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "..........." + /* 3 */ "jjjjjjjjjjj" + /* 4 */ "fffffffffff" + /* 5 */ "ppppppppppp" + /* 6 */ "..........." + /* 7 */ "..........." + /* 8 */ "...........", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // PlainsVillage_103 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // PlainsVillage_105: + // The data has been exported from the gallery Plains, area index 54, ID 105, created by Aloe_vera + { + // Size: + 7, 6, 9, // SizeX = 7, SizeY = 6, SizeZ = 9 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 6, 5, 8, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a:170: 0\n" /* haybale */ + "b: 67: 0\n" /* stairs */ + "c: 67: 2\n" /* stairs */ + "d: 67: 1\n" /* stairs */ + "e: 4: 0\n" /* cobblestone */ + "f: 17: 0\n" /* tree */ + "g: 5: 0\n" /* wood */ + "h:170: 4\n" /* haybale */ + "i:170: 8\n" /* haybale */ + "j: 54: 2\n" /* chest */ + "k: 50: 4\n" /* torch */ + "l: 53: 0\n" /* woodstairs */ + "m: 19: 0\n" /* sponge */ + "n: 53: 5\n" /* woodstairs */ + "o: 53: 4\n" /* woodstairs */ + "p: 53: 1\n" /* woodstairs */, + + // Block data: + // Level 0 + /* z\x* 0123456 */ + /* 0 */ "abcccd." + /* 1 */ ".eeeee." + /* 2 */ ".eeeee." + /* 3 */ ".eeeee." + /* 4 */ ".eeeee." + /* 5 */ ".eeeee." + /* 6 */ ".eeeee." + /* 7 */ ".eeeee." + /* 8 */ "......." + + // Level 1 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".f..af." + /* 2 */ ".g...g." + /* 3 */ ".ga.hg." + /* 4 */ ".fihif." + /* 5 */ ".gaaag." + /* 6 */ ".gijag." + /* 7 */ ".fgfgf." + /* 8 */ "......." + + // Level 2 + /* z\x* 0123456 */ + /* 0 */ ".k...k." + /* 1 */ ".f...f." + /* 2 */ ".g...g." + /* 3 */ ".g...g." + /* 4 */ ".fh..f." + /* 5 */ ".ghiag." + /* 6 */ ".ghiig." + /* 7 */ ".fgfgf." + /* 8 */ "......." + + // Level 3 + /* z\x* 0123456 */ + /* 0 */ "ln...op" + /* 1 */ "lgggggp" + /* 2 */ "lg...gp" + /* 3 */ "lg...gp" + /* 4 */ "lg...gp" + /* 5 */ "lgaa.gp" + /* 6 */ "lgiaigp" + /* 7 */ "lgggggp" + /* 8 */ "ln...op" + + // Level 4 + /* z\x* 0123456 */ + /* 0 */ ".ln.op." + /* 1 */ ".lgggp." + /* 2 */ ".lg.gp." + /* 3 */ ".lg.gp." + /* 4 */ ".lg.gp." + /* 5 */ ".lg.gp." + /* 6 */ ".lg.gp." + /* 7 */ ".lgggp." + /* 8 */ ".ln.op." + + // Level 5 + /* z\x* 0123456 */ + /* 0 */ "..lgp.." + /* 1 */ "..lgp.." + /* 2 */ "..lgp.." + /* 3 */ "..lgp.." + /* 4 */ "..lgp.." + /* 5 */ "..lgp.." + /* 6 */ "..lgp.." + /* 7 */ "..lgp.." + /* 8 */ "..lgp..", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // PlainsVillage_105 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // PlainsVillage_106: + // The data has been exported from the gallery Plains, area index 55, ID 106, created by Aloe_vera + { + // Size: + 15, 8, 9, // SizeX = 15, SizeY = 8, SizeZ = 9 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 14, 7, 8, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 67: 0\n" /* stairs */ + "b: 67: 2\n" /* stairs */ + "c: 67: 1\n" /* stairs */ + "d: 4: 0\n" /* cobblestone */ + "e: 3: 0\n" /* dirt */ + "f: 17: 0\n" /* tree */ + "g:107: 0\n" /* fencegate */ + "h:107: 4\n" /* fencegate */ + "i: 5: 0\n" /* wood */ + "j:107: 6\n" /* fencegate */ + "k: 85: 0\n" /* fence */ + "l:170: 0\n" /* haybale */ + "m: 19: 0\n" /* sponge */ + "n:170: 4\n" /* haybale */ + "o:170: 8\n" /* haybale */ + "p: 50: 1\n" /* torch */ + "q: 50: 2\n" /* torch */ + "r: 53: 2\n" /* woodstairs */ + "s: 53: 7\n" /* woodstairs */ + "t: 53: 6\n" /* woodstairs */ + "u: 53: 3\n" /* woodstairs */, + + // Block data: + // Level 0 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ ".abbbbbbbbbbbc." + /* 1 */ ".ddddddddddddd." + /* 2 */ ".deeeeeeeeeeed." + /* 3 */ ".deeeeeeeeeeed." + /* 4 */ ".deeeeeeeeeeed." + /* 5 */ ".deeeeeeeeeeed." + /* 6 */ ".deeeeeeeeeeed." + /* 7 */ ".ddddddddddddd." + /* 8 */ "..............." + + // Level 1 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ ".fghgighgigjgf." + /* 2 */ ".k...k...k...k." + /* 3 */ ".k...k...k...k." + /* 4 */ ".k...k...k...k." + /* 5 */ ".k...k...k...k." + /* 6 */ ".kl..k..nko..k." + /* 7 */ ".fkkkikkkikkkf." + /* 8 */ "..............." + + // Level 2 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ ".f...i...i...f." + /* 2 */ "..............." + /* 3 */ "..............." + /* 4 */ "..............." + /* 5 */ "..............." + /* 6 */ "..............." + /* 7 */ ".f...i...i...f." + /* 8 */ "..............." + + // Level 3 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ ".fp.qip.qip.qf." + /* 2 */ "..............." + /* 3 */ "..............." + /* 4 */ "..............." + /* 5 */ "..............." + /* 6 */ "..............." + /* 7 */ ".f...i...i...f." + /* 8 */ "..............." + + // Level 4 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "rrrrrrrrrrrrrrr" + /* 1 */ "siiiiiiiiiiiiis" + /* 2 */ ".i...........i." + /* 3 */ ".i...........i." + /* 4 */ ".i...........i." + /* 5 */ ".i...........i." + /* 6 */ ".i...........i." + /* 7 */ "tiiiiiiiiiiiiit" + /* 8 */ "uuuuuuuuuuuuuuu" + + // Level 5 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ "rrrrrrrrrrrrrrr" + /* 2 */ "siiiiiiiiiiiiis" + /* 3 */ ".i...........i." + /* 4 */ ".i...........i." + /* 5 */ ".i...........i." + /* 6 */ "tiiiiiiiiiiiiit" + /* 7 */ "uuuuuuuuuuuuuuu" + /* 8 */ "..............." + + // Level 6 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ "..............." + /* 2 */ "rrrrrrrrrrrrrrr" + /* 3 */ "siiiiiiiiiiiiis" + /* 4 */ ".i...........i." + /* 5 */ "tiiiiiiiiiiiiit" + /* 6 */ "uuuuuuuuuuuuuuu" + /* 7 */ "..............." + /* 8 */ "..............." + + // Level 7 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ "..............." + /* 2 */ "..............." + /* 3 */ "rrrrrrrrrrrrrrr" + /* 4 */ "iiiiiiiiiiiiiii" + /* 5 */ "uuuuuuuuuuuuuuu" + /* 6 */ "..............." + /* 7 */ "..............." + /* 8 */ "...............", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // PlainsVillage_106 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // PlainsVillage_109: + // The data has been exported from the gallery Plains, area index 58, ID 109, created by Aloe_vera + { + // Size: + 7, 14, 13, // SizeX = 7, SizeY = 14, SizeZ = 13 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 6, 13, 12, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "A: 85: 0\n" /* fence */ + "B:126: 8\n" /* woodenslab */ + "a: 67: 0\n" /* stairs */ + "b: 67: 2\n" /* stairs */ + "c: 67: 1\n" /* stairs */ + "d: 4: 0\n" /* cobblestone */ + "e: 17: 0\n" /* tree */ + "f: 5: 0\n" /* wood */ + "g: 64: 7\n" /* wooddoorblock */ + "h: 65: 3\n" /* ladder */ + "i: 53: 3\n" /* woodstairs */ + "j: 53: 7\n" /* woodstairs */ + "k: 64:12\n" /* wooddoorblock */ + "l:102: 0\n" /* glasspane */ + "m: 19: 0\n" /* sponge */ + "n: 50: 1\n" /* torch */ + "o: 50: 2\n" /* torch */ + "p:171:14\n" /* carpet */ + "q: 50: 3\n" /* torch */ + "r: 53: 2\n" /* woodstairs */ + "s: 53: 0\n" /* woodstairs */ + "t: 53: 1\n" /* woodstairs */ + "u: 53: 5\n" /* woodstairs */ + "v: 53: 4\n" /* woodstairs */ + "w: 17: 4\n" /* tree */ + "x: 17: 8\n" /* tree */ + "y: 54: 2\n" /* chest */ + "z: 50: 4\n" /* torch */, + + // Block data: + // Level 0 + /* z\x* 0123456 */ + /* 0 */ "..abc.." + /* 1 */ ".ddddd." + /* 2 */ ".ddddd." + /* 3 */ ".ddddd." + /* 4 */ ".ddddd." + /* 5 */ ".ddddd." + /* 6 */ ".ddddd." + /* 7 */ ".ddddd." + /* 8 */ ".ddddd." + /* 9 */ ".ddddd." + /* 10 */ ".ddddd." + /* 11 */ ".ddddd." + /* 12 */ "......." + + // Level 1 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".efgfe." + /* 2 */ ".f..hf." + /* 3 */ ".f...f." + /* 4 */ ".f...f." + /* 5 */ ".ei.ie." + /* 6 */ ".f...f." + /* 7 */ ".fi.if." + /* 8 */ ".f...f." + /* 9 */ ".f.j.f." + /* 10 */ ".f...f." + /* 11 */ ".efffe." + /* 12 */ "......." + + // Level 2 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".efkfe." + /* 2 */ ".l..hl." + /* 3 */ ".l...l." + /* 4 */ ".l...l." + /* 5 */ ".e...e." + /* 6 */ ".l...l." + /* 7 */ ".l...l." + /* 8 */ ".fn.of." + /* 9 */ ".l.p.l." + /* 10 */ ".l...l." + /* 11 */ ".ellle." + /* 12 */ "......." + + // Level 3 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".efffe." + /* 2 */ ".f.qhf." + /* 3 */ ".f...f." + /* 4 */ ".f...f." + /* 5 */ "re...er" + /* 6 */ "sf...ft" + /* 7 */ "sf...ft" + /* 8 */ "sf...ft" + /* 9 */ "sf...ft" + /* 10 */ "sf...ft" + /* 11 */ "sefffft" + /* 12 */ "su...vt" + + // Level 4 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".ewwwe." + /* 2 */ ".xffhx." + /* 3 */ ".xfffx." + /* 4 */ ".xfffx." + /* 5 */ ".ewwwe." + /* 6 */ ".sf.ft." + /* 7 */ ".sf.ft." + /* 8 */ ".sf.ft." + /* 9 */ ".sf.ft." + /* 10 */ ".sf.ft." + /* 11 */ ".sffft." + /* 12 */ ".su.vt." + + // Level 5 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".eflfe." + /* 2 */ ".f..hf." + /* 3 */ ".f...f." + /* 4 */ ".f.y.f." + /* 5 */ ".efffe." + /* 6 */ "..sft.." + /* 7 */ "..sft.." + /* 8 */ "..sft.." + /* 9 */ "..sft.." + /* 10 */ "..sft.." + /* 11 */ "..sft.." + /* 12 */ "..sft.." + + // Level 6 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".eflfe." + /* 2 */ ".f..hf." + /* 3 */ ".l...l." + /* 4 */ ".f...f." + /* 5 */ ".efffe." + /* 6 */ "......." + /* 7 */ "......." + /* 8 */ "......." + /* 9 */ "......." + /* 10 */ "......." + /* 11 */ "......." + /* 12 */ "......." + + // Level 7 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".eflfe." + /* 2 */ ".f..hf." + /* 3 */ ".f...f." + /* 4 */ ".f.z.f." + /* 5 */ ".efffe." + /* 6 */ "......." + /* 7 */ "......." + /* 8 */ "......." + /* 9 */ "......." + /* 10 */ "......." + /* 11 */ "......." + /* 12 */ "......." + + // Level 8 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".ewwwe." + /* 2 */ ".xffhx." + /* 3 */ ".xfffx." + /* 4 */ ".xfffx." + /* 5 */ ".ewwwe." + /* 6 */ "......." + /* 7 */ "......." + /* 8 */ "......." + /* 9 */ "......." + /* 10 */ "......." + /* 11 */ "......." + /* 12 */ "......." + + // Level 9 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".eAAAe." + /* 2 */ ".A...A." + /* 3 */ ".A...A." + /* 4 */ ".A...A." + /* 5 */ ".eAAAe." + /* 6 */ "......." + /* 7 */ "......." + /* 8 */ "......." + /* 9 */ "......." + /* 10 */ "......." + /* 11 */ "......." + /* 12 */ "......." + + // Level 10 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".e...e." + /* 2 */ "......." + /* 3 */ "......." + /* 4 */ "......." + /* 5 */ ".e...e." + /* 6 */ "......." + /* 7 */ "......." + /* 8 */ "......." + /* 9 */ "......." + /* 10 */ "......." + /* 11 */ "......." + /* 12 */ "......." + + // Level 11 + /* z\x* 0123456 */ + /* 0 */ "su...vt" + /* 1 */ "sefffet" + /* 2 */ "sfBBBft" + /* 3 */ "sfBBBft" + /* 4 */ "sfBBBft" + /* 5 */ "sffffft" + /* 6 */ "su...vt" + /* 7 */ "......." + /* 8 */ "......." + /* 9 */ "......." + /* 10 */ "......." + /* 11 */ "......." + /* 12 */ "......." + + // Level 12 + /* z\x* 0123456 */ + /* 0 */ ".su.vt." + /* 1 */ ".sffft." + /* 2 */ ".sffft." + /* 3 */ ".sffft." + /* 4 */ ".sffft." + /* 5 */ ".sffft." + /* 6 */ ".su.vt." + /* 7 */ "......." + /* 8 */ "......." + /* 9 */ "......." + /* 10 */ "......." + /* 11 */ "......." + /* 12 */ "......." + + // Level 13 + /* z\x* 0123456 */ + /* 0 */ "..sft.." + /* 1 */ "..sft.." + /* 2 */ "..sft.." + /* 3 */ "..sft.." + /* 4 */ "..sft.." + /* 5 */ "..sft.." + /* 6 */ "..sft.." + /* 7 */ "......." + /* 8 */ "......." + /* 9 */ "......." + /* 10 */ "......." + /* 11 */ "......." + /* 12 */ ".......", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // PlainsVillage_109 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // PlainsVillage_20: + // The data has been exported from the gallery Plains, area index 5, ID 20, created by tonibm1999 + { + // Size: + 15, 2, 9, // SizeX = 15, SizeY = 2, SizeZ = 9 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 14, 1, 8, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 17: 0\n" /* tree */ + "b: 60: 7\n" /* tilleddirt */ + "c: 8: 0\n" /* water */ + "d: 50: 5\n" /* torch */ + "e: 59: 7\n" /* crops */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "aaaaaaamaaaaaaa" + /* 1 */ "abbcbbamabbcbba" + /* 2 */ "abbcbbamabbcbba" + /* 3 */ "abbcbbamabbcbba" + /* 4 */ "abbcbbamabbcbba" + /* 5 */ "abbcbbamabbcbba" + /* 6 */ "abbcbbamabbcbba" + /* 7 */ "abbcbbamabbcbba" + /* 8 */ "aaaaaaamaaaaaaa" + + // Level 1 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "dmmmmmdmdmmmmmd" + /* 1 */ "meemeemmmeemeem" + /* 2 */ "memmmemmmeemeem" + /* 3 */ "memmmmmmmeemeem" + /* 4 */ "meemmemmmeemeem" + /* 5 */ "meemmemmmeemeem" + /* 6 */ "mmemmemmmeemeem" + /* 7 */ "mmememmmmeemeem" + /* 8 */ "dmmmmmdmdmmmmmd", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // PlainsVillage_20 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // PlainsVillage_26: + // The data has been exported from the gallery Plains, area index 9, ID 26, created by Aloe_vera + { + // Size: + 10, 6, 11, // SizeX = 10, SizeY = 6, SizeZ = 11 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 9, 5, 10, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 4: 0\n" /* cobblestone */ + "b: 5: 0\n" /* wood */ + "c: 2: 0\n" /* grass */ + "d: 67: 2\n" /* stairs */ + "e: 43: 0\n" /* doubleslab */ + "f: 67: 0\n" /* stairs */ + "g: 67: 3\n" /* stairs */ + "h: 17: 0\n" /* tree */ + "i: 53: 1\n" /* woodstairs */ + "j: 85: 0\n" /* fence */ + "k: 53: 0\n" /* woodstairs */ + "l: 64: 4\n" /* wooddoorblock */ + "m: 19: 0\n" /* sponge */ + "n: 64: 0\n" /* wooddoorblock */ + "o:102: 0\n" /* glasspane */ + "p: 72: 0\n" /* woodplate */ + "q: 64:12\n" /* wooddoorblock */ + "r: 64: 8\n" /* wooddoorblock */ + "s: 53: 5\n" /* woodstairs */ + "t: 53: 4\n" /* woodstairs */ + "u: 50: 1\n" /* torch */ + "v: 50: 2\n" /* torch */, + + // Block data: + // Level 0 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ "......mmmm" + /* 1 */ ".aaaaammmm" + /* 2 */ ".abbbammmm" + /* 3 */ ".abbbacccc" + /* 4 */ "daeeeacccc" + /* 5 */ "faeeeecccc" + /* 6 */ "gaeeeacccc" + /* 7 */ ".aeeeacccc" + /* 8 */ ".aeeeacccc" + /* 9 */ ".aaaaammmm" + /* 10 */ "......mmmm" + + // Level 1 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ "......mmmm" + /* 1 */ ".hbbbhmmmm" + /* 2 */ ".bijkbmmmm" + /* 3 */ ".b...bjjjj" + /* 4 */ ".b...b...j" + /* 5 */ ".l...n...j" + /* 6 */ ".b...b...j" + /* 7 */ ".bee.b...j" + /* 8 */ ".b...bjjjj" + /* 9 */ ".hbbbhmmmm" + /* 10 */ "......mmmm" + + // Level 2 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ "......mmmm" + /* 1 */ ".hooohmmmm" + /* 2 */ ".o.p.ommmm" + /* 3 */ ".o...o...." + /* 4 */ ".b...b...." + /* 5 */ ".q...r...." + /* 6 */ ".b...b...." + /* 7 */ ".o...o...." + /* 8 */ ".o...o...." + /* 9 */ ".hooohmmmm" + /* 10 */ "......mmmm" + + // Level 3 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ "ks...timmm" + /* 1 */ "khbbbhimmm" + /* 2 */ "kb...bimmm" + /* 3 */ "kb...bi..." + /* 4 */ "kbu.vbi..." + /* 5 */ "kb...bi..." + /* 6 */ "kbu.vbi..." + /* 7 */ "kb...bi..." + /* 8 */ "kb...bi..." + /* 9 */ "khbbbhimmm" + /* 10 */ "ks...timmm" + + // Level 4 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ "mks.timmmm" + /* 1 */ "mkbbbimmmm" + /* 2 */ "mkb.bimmmm" + /* 3 */ "mkb.bim..." + /* 4 */ "mkb.bim..." + /* 5 */ "mkb.bim..." + /* 6 */ "mkb.bim..." + /* 7 */ "mkb.bim..." + /* 8 */ "mkb.bim..." + /* 9 */ "mkbbbimmmm" + /* 10 */ "mks.timmmm" + + // Level 5 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ "mmkbimmmmm" + /* 1 */ "mmkbimmmmm" + /* 2 */ "mmkbimmmmm" + /* 3 */ "mmkbimm..." + /* 4 */ "mmkbimm..." + /* 5 */ "mmkbimm..." + /* 6 */ "mmkbimm..." + /* 7 */ "mmkbimm..." + /* 8 */ "mmkbimm..." + /* 9 */ "mmkbimmmmm" + /* 10 */ "mmkbimmmmm", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // PlainsVillage_26 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // PlainsVillage_4: + // The data has been exported from the gallery Plains, area index 0, ID 4, created by Aloe_vera + { + // Size: + 16, 7, 16, // SizeX = 16, SizeY = 7, SizeZ = 16 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 15, 6, 15, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 67: 0\n" /* stairs */ + "b: 67: 2\n" /* stairs */ + "c: 67: 1\n" /* stairs */ + "d: 4: 0\n" /* cobblestone */ + "e: 5: 0\n" /* wood */ + "f: 67: 3\n" /* stairs */ + "g: 17: 0\n" /* tree */ + "h: 64: 5\n" /* wooddoorblock */ + "i:102: 0\n" /* glasspane */ + "j: 64:12\n" /* wooddoorblock */ + "k: 53: 2\n" /* woodstairs */ + "l: 53: 1\n" /* woodstairs */ + "m: 19: 0\n" /* sponge */ + "n: 53: 7\n" /* woodstairs */ + "o: 53: 6\n" /* woodstairs */ + "p: 53: 3\n" /* woodstairs */ + "q: 53: 0\n" /* woodstairs */ + "r: 53: 5\n" /* woodstairs */ + "s: 53: 4\n" /* woodstairs */ + "t: 50: 3\n" /* torch */ + "u: 50: 2\n" /* torch */ + "v: 50: 4\n" /* torch */ + "w: 50: 1\n" /* torch */, + + // Block data: + // Level 0 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "........abc....." + /* 1 */ ".dddddddddddddd." + /* 2 */ ".deeeeeeeeeeeed." + /* 3 */ ".deeeeeeeeeeeed." + /* 4 */ ".deeeeeeeeeeeed." + /* 5 */ ".deeeeeeeeeeeed." + /* 6 */ ".deeeeeeeeeeeed." + /* 7 */ ".ddddddddeeeeed." + /* 8 */ "mmmmmafcdeeeeed." + /* 9 */ "mmmmmmmmdeeeeed." + /* 10 */ "mmmmmmmmdeeeeed." + /* 11 */ "mmmmmmmmdeeeeed." + /* 12 */ "mmmmmmmmdeeeeed." + /* 13 */ "mmmmmmmmdeeeeed." + /* 14 */ "mmmmmmmmddddddd." + /* 15 */ "mmmmmmmm........" + + // Level 1 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "................" + /* 1 */ ".geeeeeeghgeeeg." + /* 2 */ ".e............e." + /* 3 */ ".e............e." + /* 4 */ ".e............e." + /* 5 */ ".e............e." + /* 6 */ ".e............e." + /* 7 */ ".geeeeheg.....e." + /* 8 */ "mmmmmm.me.....e." + /* 9 */ "mmmmmmmme.....e." + /* 10 */ "mmmmmmmme.....e." + /* 11 */ "mmmmmmmme.....e." + /* 12 */ "mmmmmmmme.....e." + /* 13 */ "mmmmmmmme.....e." + /* 14 */ "mmmmmmmmgeeeeeg." + /* 15 */ "mmmmmmmm........" + + // Level 2 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "................" + /* 1 */ ".geiieiigjgiieg." + /* 2 */ ".i............e." + /* 3 */ ".i............i." + /* 4 */ ".i............i." + /* 5 */ ".i............e." + /* 6 */ ".i............i." + /* 7 */ ".geiiejeg.....i." + /* 8 */ "mmmmmm.me.....e." + /* 9 */ "mmmmmmmmi.....i." + /* 10 */ "mmmmmmmmi.....i." + /* 11 */ "mmmmmmmme.....e." + /* 12 */ "mmmmmmmmi.....i." + /* 13 */ "mmmmmmmmi.....i." + /* 14 */ "mmmmmmmmgiiiiig." + /* 15 */ "mmmmmmmm........" + + // Level 3 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "kkkkkkkkkkkkkkkl" + /* 1 */ "ngeeeeeegegeeegl" + /* 2 */ ".e............el" + /* 3 */ ".e............el" + /* 4 */ ".e............el" + /* 5 */ ".e............el" + /* 6 */ ".e............el" + /* 7 */ "ogeeeeeeg.....el" + /* 8 */ "pppppppqe.....el" + /* 9 */ "mmmmmmmqe.....el" + /* 10 */ "mmmmmmmqe.....el" + /* 11 */ "mmmmmmmqe.....el" + /* 12 */ "mmmmmmmqe.....el" + /* 13 */ "mmmmmmmqe.....el" + /* 14 */ "mmmmmmmqgeeeeegl" + /* 15 */ "mmmmmmmqr.....sl" + + // Level 4 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "................" + /* 1 */ "kkkkkkkkkkkkkkk." + /* 2 */ "neeeeeeeeeeeeel." + /* 3 */ ".e.........t.el." + /* 4 */ ".e..........uel." + /* 5 */ ".e......v....el." + /* 6 */ "oeeeeeeeee...el." + /* 7 */ "ppppppppqew..el." + /* 8 */ "mmmmmmmmqe...el." + /* 9 */ "mmmmmmmmqe...el." + /* 10 */ "mmmmmmmmqe...el." + /* 11 */ "mmmmmmmmqe...el." + /* 12 */ "mmmmmmmmqe...el." + /* 13 */ "mmmmmmmmqe...el." + /* 14 */ "mmmmmmmmqeeeeel." + /* 15 */ "mmmmmmmmqr...sl." + + // Level 5 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "................" + /* 1 */ "................" + /* 2 */ "kkkkkkkkkkkkkl.." + /* 3 */ "neeeeeeeeeeeel.." + /* 4 */ ".ew.........el.." + /* 5 */ "oeeeeeeeeee.el.." + /* 6 */ "pppppppppqe.el.." + /* 7 */ ".........qe.el.." + /* 8 */ "mmmmmmmm.qe.el.." + /* 9 */ "mmmmmmmm.qe.el.." + /* 10 */ "mmmmmmmm.qe.el.." + /* 11 */ "mmmmmmmm.qe.el.." + /* 12 */ "mmmmmmmm.qe.el.." + /* 13 */ "mmmmmmmm.qevel.." + /* 14 */ "mmmmmmmm.qeeel.." + /* 15 */ "mmmmmmmm.qr.sl.." + + // Level 6 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "................" + /* 1 */ "................" + /* 2 */ "................" + /* 3 */ "kkkkkkkkkkkkk..." + /* 4 */ "eeeeeeeeeeeel..." + /* 5 */ "ppppppppppqel..." + /* 6 */ "mmmmmmmmmmqel..." + /* 7 */ "mmmmmmmmmmqel..." + /* 8 */ "mmmmmmmmmmqel..." + /* 9 */ "mmmmmmmmmmqel..." + /* 10 */ "mmmmmmmmmmqel..." + /* 11 */ "mmmmmmmmmmqel..." + /* 12 */ "mmmmmmmmmmqel..." + /* 13 */ "mmmmmmmmmmqel..." + /* 14 */ "mmmmmmmmmmqel..." + /* 15 */ "mmmmmmmmmmqel...", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // PlainsVillage_4 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // PlainsVillage_60: + // The data has been exported from the gallery Plains, area index 17, ID 60, created by Aloe_vera + { + // Size: + 10, 2, 7, // SizeX = 10, SizeY = 2, SizeZ = 7 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 9, 1, 6, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 17: 0\n" /* tree */ + "b: 60: 7\n" /* tilleddirt */ + "c: 8: 0\n" /* water */ + "d: 59: 7\n" /* crops */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ "aaaaaaaaaa" + /* 1 */ "abbbbbbbba" + /* 2 */ "abbbbbbbba" + /* 3 */ "acccccccca" + /* 4 */ "abbbbbbbba" + /* 5 */ "abbbbbbbba" + /* 6 */ "aaaaaaaaaa" + + // Level 1 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ ".........." + /* 1 */ ".dddddddd." + /* 2 */ ".dddddddd." + /* 3 */ ".........." + /* 4 */ ".dddddddd." + /* 5 */ ".dddddddd." + /* 6 */ "..........", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // PlainsVillage_60 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // PlainsVillage_66: + // The data has been exported from the gallery Plains, area index 23, ID 66, created by xoft + { + // Size: + 12, 7, 7, // SizeX = 12, SizeY = 7, SizeZ = 7 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 11, 6, 6, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 2: 0\n" /* grass */ + "b: 3: 0\n" /* dirt */ + "c: 67: 0\n" /* stairs */ + "d: 67: 2\n" /* stairs */ + "e: 67: 1\n" /* stairs */ + "f: 4: 0\n" /* cobblestone */ + "g: 64: 1\n" /* wooddoorblock */ + "h: 53: 3\n" /* woodstairs */ + "i: 53: 1\n" /* woodstairs */ + "j: 85: 0\n" /* fence */ + "k: 53: 0\n" /* woodstairs */ + "l: 53: 2\n" /* woodstairs */ + "m: 19: 0\n" /* sponge */ + "n:102: 0\n" /* glasspane */ + "o: 64: 8\n" /* wooddoorblock */ + "p: 50: 3\n" /* torch */ + "q: 72: 0\n" /* woodplate */ + "r: 50: 4\n" /* torch */ + "s: 53: 7\n" /* woodstairs */ + "t: 47: 0\n" /* bookshelf */ + "u: 50: 1\n" /* torch */ + "v: 50: 2\n" /* torch */ + "w: 53: 6\n" /* woodstairs */ + "x: 5: 0\n" /* wood */, + + // Block data: + // Level 0 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "aaaaaaabbbaa" + /* 1 */ "abbbbbbbbbba" + /* 2 */ "abbbbbbbbbba" + /* 3 */ "abbbbbbbbbba" + /* 4 */ "abbbbbbbbbba" + /* 5 */ "abbbbbbbbbba" + /* 6 */ "aaaaaaaaaaaa" + + // Level 1 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ ".......cde.." + /* 1 */ ".ffffffffff." + /* 2 */ ".ffffffffff." + /* 3 */ ".ffffffffff." + /* 4 */ ".ffffffffff." + /* 5 */ ".ffffffffff." + /* 6 */ "............" + + // Level 2 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ ".fffffffgff." + /* 2 */ ".fh.ijk...f." + /* 3 */ ".fj.......f." + /* 4 */ ".fl.ijkijkf." + /* 5 */ ".ffffffffff." + /* 6 */ "............" + + // Level 3 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ ".fnnfnnfoff." + /* 2 */ ".n..pq.p.pn." + /* 3 */ ".nq.......n." + /* 4 */ ".n..rq.rq.n." + /* 5 */ ".fnnfnnfnnf." + /* 6 */ "............" + + // Level 4 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "llllllllllll" + /* 1 */ "sffffffffffs" + /* 2 */ ".fttttttttf." + /* 3 */ ".fu......vf." + /* 4 */ ".fttttttttf." + /* 5 */ "wffffffffffw" + /* 6 */ "hhhhhhhhhhhh" + + // Level 5 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ "llllllllllll" + /* 2 */ "sxxxxxxxxxxs" + /* 3 */ ".xxxxxxxxxx." + /* 4 */ "wxxxxxxxxxxw" + /* 5 */ "hhhhhhhhhhhh" + /* 6 */ "............" + + // Level 6 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ "............" + /* 2 */ "llllllllllll" + /* 3 */ "xxxxxxxxxxxx" + /* 4 */ "hhhhhhhhhhhh" + /* 5 */ "............" + /* 6 */ "............", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // PlainsVillage_66 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // PlainsVillage_87: + // The data has been exported from the gallery Plains, area index 38, ID 87, created by Aloe_vera + { + // Size: + 11, 7, 9, // SizeX = 11, SizeY = 7, SizeZ = 9 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 10, 6, 8, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 67: 0\n" /* stairs */ + "b: 67: 2\n" /* stairs */ + "c: 67: 1\n" /* stairs */ + "d: 4: 0\n" /* cobblestone */ + "e: 67: 3\n" /* stairs */ + "f: 17: 0\n" /* tree */ + "g: 5: 0\n" /* wood */ + "h: 64: 5\n" /* wooddoorblock */ + "i: 64: 7\n" /* wooddoorblock */ + "j:102: 0\n" /* glasspane */ + "k: 64:12\n" /* wooddoorblock */ + "l: 53: 2\n" /* woodstairs */ + "m: 19: 0\n" /* sponge */ + "n: 53: 7\n" /* woodstairs */ + "o: 17: 4\n" /* tree */ + "p: 17: 8\n" /* tree */ + "q: 50: 3\n" /* torch */ + "r: 50: 4\n" /* torch */ + "s: 53: 6\n" /* woodstairs */ + "t: 53: 3\n" /* woodstairs */, + + // Block data: + // Level 0 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "....abc...." + /* 1 */ ".ddddddddd." + /* 2 */ ".ddddddddd." + /* 3 */ ".ddddddddd." + /* 4 */ ".ddddddddd." + /* 5 */ ".ddddddddd." + /* 6 */ ".ddddddddd." + /* 7 */ ".ddddddddd." + /* 8 */ "....aec...." + + // Level 1 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".fggfhfggf." + /* 2 */ ".g.......g." + /* 3 */ ".g.......g." + /* 4 */ ".f.......f." + /* 5 */ ".g.......g." + /* 6 */ ".g.......g." + /* 7 */ ".fggfifggf." + /* 8 */ "..........." + + // Level 2 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".fjjfkfjjf." + /* 2 */ ".j.......j." + /* 3 */ ".j.......j." + /* 4 */ ".f.......f." + /* 5 */ ".j.......j." + /* 6 */ ".j.......j." + /* 7 */ ".fjjfkfjjf." + /* 8 */ "..........." + + // Level 3 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "lllllllllll" + /* 1 */ "nfooooooofn" + /* 2 */ ".p..q.q..p." + /* 3 */ ".p.......p." + /* 4 */ ".p.......p." + /* 5 */ ".p.......p." + /* 6 */ ".p..r.r..p." + /* 7 */ "sfooooooofs" + /* 8 */ "ttttttttttt" + + // Level 4 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "lllllllllll" + /* 2 */ "ngggggggggn" + /* 3 */ ".g.......g." + /* 4 */ ".g.......g." + /* 5 */ ".g.......g." + /* 6 */ "sgggggggggs" + /* 7 */ "ttttttttttt" + /* 8 */ "..........." + + // Level 5 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "lllllllllll" + /* 3 */ "ngggggggggn" + /* 4 */ ".g.......g." + /* 5 */ "sgggggggggs" + /* 6 */ "ttttttttttt" + /* 7 */ "..........." + /* 8 */ "..........." + + // Level 6 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "..........." + /* 3 */ "lllllllllll" + /* 4 */ "ggggggggggg" + /* 5 */ "ttttttttttt" + /* 6 */ "..........." + /* 7 */ "..........." + /* 8 */ "...........", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // PlainsVillage_87 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // PlainsVillage_90: + // The data has been exported from the gallery Plains, area index 39, ID 90, created by STR_Warrior + { + // Size: + 15, 8, 16, // SizeX = 15, SizeY = 8, SizeZ = 16 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 14, 7, 15, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "A: 53: 7\n" /* woodstairs */ + "B: 53: 4\n" /* woodstairs */ + "C: 53: 5\n" /* woodstairs */ + "D: 53: 6\n" /* woodstairs */ + "a: 67: 0\n" /* stairs */ + "b: 67: 2\n" /* stairs */ + "c: 67: 1\n" /* stairs */ + "d: 4: 0\n" /* cobblestone */ + "e: 43: 0\n" /* doubleslab */ + "f: 17: 0\n" /* tree */ + "g: 5: 0\n" /* wood */ + "h: 64: 7\n" /* wooddoorblock */ + "i: 96: 8\n" /* trapdoor */ + "j: 61: 2\n" /* furnace */ + "k: 53: 3\n" /* woodstairs */ + "l: 85: 0\n" /* fence */ + "m: 19: 0\n" /* sponge */ + "n: 53: 2\n" /* woodstairs */ + "o: 53: 1\n" /* woodstairs */ + "p: 53: 0\n" /* woodstairs */ + "q: 47: 0\n" /* bookshelf */ + "r:102: 0\n" /* glasspane */ + "s: 64:12\n" /* wooddoorblock */ + "t: 72: 0\n" /* woodplate */ + "u: 17: 4\n" /* tree */ + "v: 17: 8\n" /* tree */ + "w: 50: 3\n" /* torch */ + "x: 50: 1\n" /* torch */ + "y: 50: 4\n" /* torch */ + "z: 50: 2\n" /* torch */, + + // Block data: + // Level 0 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "......abc......" + /* 1 */ ".ddddddddddddd." + /* 2 */ ".deeeedddddddd." + /* 3 */ ".deeeedddddddd." + /* 4 */ ".ddddddddddddd." + /* 5 */ ".ddddddddddddd." + /* 6 */ ".ddddddddddddd." + /* 7 */ "mddddddddddddd." + /* 8 */ "mmmmmmmmdddddd." + /* 9 */ "mmmmmmmmdddddd." + /* 10 */ "mmmmmmmmdddddd." + /* 11 */ "mmmmmmmmdddddd." + /* 12 */ "mmmmmmmmdddddd." + /* 13 */ "mmmmmmmmdddddd." + /* 14 */ "mmmmmmmmdddddd." + /* 15 */ "mmmmmmmm......." + + // Level 1 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ ".fggggfhfggggf." + /* 2 */ ".g...i.......g." + /* 3 */ ".gjeee......kg." + /* 4 */ ".f..........lg." + /* 5 */ ".g..........ng." + /* 6 */ ".g.olp..ol...g." + /* 7 */ "mfggggggfn...f." + /* 8 */ "mmmmmmmmg....g." + /* 9 */ "mmmmmmmmgk...g." + /* 10 */ "mmmmmmmmgl..kg." + /* 11 */ "mmmmmmmmgn..lg." + /* 12 */ "mmmmmmmmg...ng." + /* 13 */ "mmmmmmmmgq..qg." + /* 14 */ "mmmmmmmmfggggf." + /* 15 */ "mmmmmmmm......." + + // Level 2 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ ".fgrrgfsfgrrgf." + /* 2 */ ".g...........g." + /* 3 */ ".g...........r." + /* 4 */ ".f..........tr." + /* 5 */ ".g...........r." + /* 6 */ ".g..t....t...g." + /* 7 */ "mfgrrrrgf....f." + /* 8 */ "mmmmmmmmg....g." + /* 9 */ "mmmmmmmmr....r." + /* 10 */ "mmmmmmmmrt...r." + /* 11 */ "mmmmmmmmr...tr." + /* 12 */ "mmmmmmmmr....r." + /* 13 */ "mmmmmmmmgq..qg." + /* 14 */ "mmmmmmmmfgrrgf." + /* 15 */ "mmmmmmmm......." + + // Level 3 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ ".fuuuuuuuuuuuf." + /* 2 */ ".v....w.w....v." + /* 3 */ ".v...........v." + /* 4 */ ".vx..........v." + /* 5 */ ".v...........v." + /* 6 */ ".v......y....v." + /* 7 */ "mfuuuuuufx..zv." + /* 8 */ "mmmmmmmmv....v." + /* 9 */ "mmmmmmmmv....v." + /* 10 */ "mmmmmmmmv....v." + /* 11 */ "mmmmmmmmv....v." + /* 12 */ "mmmmmmmmv....v." + /* 13 */ "mmmmmmmmv.yy.v." + /* 14 */ "mmmmmmmmfuuuuf." + /* 15 */ "mmmmmmmm......." + + // Level 4 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "nnnnnnnnnnnnnno" + /* 1 */ "pgggggggggggggo" + /* 2 */ "pgAAAAAAAAAABgo" + /* 3 */ "pgC.........Bgo" + /* 4 */ "pgC.........Bgo" + /* 5 */ "pgC.........Bgo" + /* 6 */ "pgCDDDDDDD..Bgo" + /* 7 */ "pggggggggC..Bgo" + /* 8 */ "pkkkkkkpgC..Bgo" + /* 9 */ "mmmmmmmpgC..Bgo" + /* 10 */ "mmmmmmmpgC..Bgo" + /* 11 */ "mmmmmmmpgC..Bgo" + /* 12 */ "mmmmmmmpgC..Bgo" + /* 13 */ "mmmmmmmpgCDDBgo" + /* 14 */ "mmmmmmmpggggggo" + /* 15 */ "mmmmmmmpkkkkkkk" + + // Level 5 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "mmmmmmmmmmmmmmm" + /* 1 */ "mpnnnnnnnnnnnom" + /* 2 */ "mpgggggggggggom" + /* 3 */ "mpgggggggggggom" + /* 4 */ "mpgggggggggggom" + /* 5 */ "mpgggggggggggom" + /* 6 */ "mpgggggggggggom" + /* 7 */ "mpkkkkkkkggggom" + /* 8 */ "mmmmmmmmpggggom" + /* 9 */ "mmmmmmmmpggggom" + /* 10 */ "mmmmmmmmpggggom" + /* 11 */ "mmmmmmmmpggggom" + /* 12 */ "mmmmmmmmpggggom" + /* 13 */ "mmmmmmmmpggggom" + /* 14 */ "mmmmmmmmkkkkkom" + /* 15 */ "mmmmmmmmmmmmmmm" + + // Level 6 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "mmmmmmmmmmmmmmm" + /* 1 */ "mmmmmmmmmmmmmmm" + /* 2 */ "mmnnnnnnnnnnnmm" + /* 3 */ "mmpgggggggggomm" + /* 4 */ "mmpgggggggggomm" + /* 5 */ "mmpgggggggggomm" + /* 6 */ "mmkkkkkkkkggomm" + /* 7 */ "mmmmmmmmmpggomm" + /* 8 */ "mmmmmmmmmpggomm" + /* 9 */ "mmmmmmmmmpggomm" + /* 10 */ "mmmmmmmmmpggomm" + /* 11 */ "mmmmmmmmmpggomm" + /* 12 */ "mmmmmmmmmpggomm" + /* 13 */ "mmmmmmmmmkkkomm" + /* 14 */ "mmmmmmmmmmmmmmm" + /* 15 */ "mmmmmmmmmmmmmmm" + + // Level 7 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "mmmmmmmmmmmmmmm" + /* 1 */ "mmmmmmmmmmmmmmm" + /* 2 */ "mmmmmmmmmmmmmmm" + /* 3 */ "mmmpnnnnnnnommm" + /* 4 */ "mmmpgggggggommm" + /* 5 */ "mmmpkkkkkkpommm" + /* 6 */ "mmmmmmmmmmpommm" + /* 7 */ "mmmmmmmmmmpommm" + /* 8 */ "mmmmmmmmmmpommm" + /* 9 */ "mmmmmmmmmmpommm" + /* 10 */ "mmmmmmmmmmpommm" + /* 11 */ "mmmmmmmmmmpommm" + /* 12 */ "mmmmmmmmmmpkmmm" + /* 13 */ "mmmmmmmmmmmmmmm" + /* 14 */ "mmmmmmmmmmmmmmm" + /* 15 */ "mmmmmmmmmmmmmmm", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // PlainsVillage_90 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // PlainsVillage_91: + // The data has been exported from the gallery Plains, area index 40, ID 91, created by xoft + { + // Size: + 9, 7, 7, // SizeX = 9, SizeY = 7, SizeZ = 7 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 8, 6, 6, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 2: 0\n" /* grass */ + "b: 3: 0\n" /* dirt */ + "c: 67: 0\n" /* stairs */ + "d: 67: 2\n" /* stairs */ + "e: 67: 1\n" /* stairs */ + "f: 4: 0\n" /* cobblestone */ + "g: 17: 0\n" /* tree */ + "h: 5: 0\n" /* wood */ + "i: 64: 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: 7\n" /* woodstairs */ + "o: 50: 3\n" /* torch */ + "p: 53: 6\n" /* woodstairs */ + "q: 53: 3\n" /* woodstairs */, + + // Block data: + // Level 0 + /* z\x* 012345678 */ + /* 0 */ "aaabbbaaa" + /* 1 */ "abbbbbbba" + /* 2 */ "abbbbbbba" + /* 3 */ "abbbbbbba" + /* 4 */ "abbbbbbba" + /* 5 */ "abbbbbbba" + /* 6 */ "aaaaaaaaa" + + // Level 1 + /* z\x* 012345678 */ + /* 0 */ "...cde..." + /* 1 */ ".fffffff." + /* 2 */ ".fffffff." + /* 3 */ ".fffffff." + /* 4 */ ".fffffff." + /* 5 */ ".fffffff." + /* 6 */ "........." + + // Level 2 + /* z\x* 012345678 */ + /* 0 */ "........." + /* 1 */ ".ghhihhg." + /* 2 */ ".h.....h." + /* 3 */ ".h.....h." + /* 4 */ ".h.....h." + /* 5 */ ".ghhhhhg." + /* 6 */ "........." + + // Level 3 + /* z\x* 012345678 */ + /* 0 */ "........." + /* 1 */ ".gjhkhjg." + /* 2 */ ".j.....j." + /* 3 */ ".j.....j." + /* 4 */ ".j.....j." + /* 5 */ ".gjjhjjg." + /* 6 */ "........." + + // Level 4 + /* z\x* 012345678 */ + /* 0 */ "lllllllll" + /* 1 */ "nghhhhhgn" + /* 2 */ ".h.o.o.h." + /* 3 */ ".h.....h." + /* 4 */ ".h.....h." + /* 5 */ "pghhhhhgp" + /* 6 */ "qqqqqqqqq" + + // Level 5 + /* z\x* 012345678 */ + /* 0 */ "........." + /* 1 */ "lllllllll" + /* 2 */ "nhhhhhhhn" + /* 3 */ ".h.....h." + /* 4 */ "phhhhhhhp" + /* 5 */ "qqqqqqqqq" + /* 6 */ "........." + + // Level 6 + /* z\x* 012345678 */ + /* 0 */ "........." + /* 1 */ "........." + /* 2 */ "lllllllll" + /* 3 */ "hhhhhhhhh" + /* 4 */ "qqqqqqqqq" + /* 5 */ "........." + /* 6 */ ".........", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // PlainsVillage_91 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // PlainsVillage_92: + // The data has been exported from the gallery Plains, area index 41, ID 92, created by xoft + { + // Size: + 11, 6, 7, // SizeX = 11, SizeY = 6, SizeZ = 7 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 10, 5, 6, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 67: 0\n" /* stairs */ + "b: 67: 2\n" /* stairs */ + "c: 67: 1\n" /* stairs */ + "d: 4: 0\n" /* cobblestone */ + "e: 17: 0\n" /* tree */ + "f: 5: 0\n" /* wood */ + "g: 64: 5\n" /* wooddoorblock */ + "h:102: 0\n" /* glasspane */ + "i: 64:12\n" /* wooddoorblock */ + "j: 53: 2\n" /* woodstairs */ + "k: 53: 7\n" /* woodstairs */ + "l: 50: 3\n" /* torch */ + "m: 19: 0\n" /* sponge */ + "n: 53: 6\n" /* woodstairs */ + "o: 53: 3\n" /* woodstairs */, + + // Block data: + // Level 0 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "....abc...." + /* 1 */ ".ddddddddd." + /* 2 */ ".ddddddddd." + /* 3 */ ".ddddddddd." + /* 4 */ ".ddddddddd." + /* 5 */ ".ddddddddd." + /* 6 */ "..........." + + // Level 1 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".efffgfffe." + /* 2 */ ".f.......f." + /* 3 */ ".f.......f." + /* 4 */ ".f.......f." + /* 5 */ ".efffffffe." + /* 6 */ "..........." + + // Level 2 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".ehhfifhhe." + /* 2 */ ".h.......h." + /* 3 */ ".h.......h." + /* 4 */ ".h.......h." + /* 5 */ ".ehhhfhhhe." + /* 6 */ "..........." + + // Level 3 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "jjjjjjjjjjj" + /* 1 */ "kfffffffffk" + /* 2 */ ".f..l.l.ff." + /* 3 */ ".f......ff." + /* 4 */ ".f......ff." + /* 5 */ "nfffffffffn" + /* 6 */ "ooooooooooo" + + // Level 4 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "jjjjjjjjjjj" + /* 2 */ "kfffffffffk" + /* 3 */ ".fffffffff." + /* 4 */ "nfffffffffn" + /* 5 */ "ooooooooooo" + /* 6 */ "..........." + + // Level 5 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "jjjjjjjjjjj" + /* 3 */ "fffffffffff" + /* 4 */ "ooooooooooo" + /* 5 */ "..........." + /* 6 */ "...........", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // PlainsVillage_92 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // PlainsVillage_93: + // The data has been exported from the gallery Plains, area index 42, ID 93, created by xoft + { + // Size: + 11, 6, 11, // SizeX = 11, SizeY = 6, SizeZ = 11 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 10, 5, 10, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 67: 0\n" /* stairs */ + "b: 67: 2\n" /* stairs */ + "c: 67: 1\n" /* stairs */ + "d: 4: 0\n" /* cobblestone */ + "e: 17: 0\n" /* tree */ + "f: 5: 0\n" /* wood */ + "g: 64: 5\n" /* wooddoorblock */ + "h:102: 0\n" /* glasspane */ + "i: 64:12\n" /* wooddoorblock */ + "j: 53: 2\n" /* woodstairs */ + "k: 53: 7\n" /* woodstairs */ + "l: 53: 1\n" /* woodstairs */ + "m: 19: 0\n" /* sponge */ + "n: 50: 3\n" /* torch */ + "o: 50: 4\n" /* torch */ + "p: 53: 6\n" /* woodstairs */ + "q: 50: 1\n" /* torch */ + "r: 50: 2\n" /* torch */ + "s: 53: 3\n" /* woodstairs */ + "t: 53: 0\n" /* woodstairs */ + "u: 53: 5\n" /* woodstairs */ + "v: 53: 4\n" /* woodstairs */, + + // Block data: + // Level 0 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "....abc...." + /* 1 */ ".ddddddddd." + /* 2 */ ".ddddddddd." + /* 3 */ ".ddddddddd." + /* 4 */ ".ddddddddd." + /* 5 */ ".ddddddddd." + /* 6 */ ".....ddddd." + /* 7 */ "mmmm.ddddd." + /* 8 */ "mmmm.ddddd." + /* 9 */ "mmmm.ddddd." + /* 10 */ "mmmm......." + + // Level 1 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".efffgfffe." + /* 2 */ ".f.......f." + /* 3 */ ".f.......f." + /* 4 */ ".f.......f." + /* 5 */ ".efffe...f." + /* 6 */ ".....f...f." + /* 7 */ "mmmm.f...f." + /* 8 */ "mmmm.f...f." + /* 9 */ "mmmm.efffe." + /* 10 */ "mmmm......." + + // Level 2 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".ehhfifhhe." + /* 2 */ ".h.......h." + /* 3 */ ".h.......h." + /* 4 */ ".h.......h." + /* 5 */ ".ehhhe...f." + /* 6 */ ".....h...h." + /* 7 */ "mmmm.h...h." + /* 8 */ "mmmm.h...h." + /* 9 */ "mmmm.ehhhe." + /* 10 */ "mmmm......." + + // Level 3 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "jjjjjjjjjjj" + /* 1 */ "kfffffffffl" + /* 2 */ ".f..n.n..fl" + /* 3 */ ".f.......fl" + /* 4 */ ".f...o...fl" + /* 5 */ "pfffffq.rfl" + /* 6 */ "sssssf...fl" + /* 7 */ "mmmmtf...fl" + /* 8 */ "mmmmtf...fl" + /* 9 */ "mmmmtfffffl" + /* 10 */ "mmmmtu...vl" + + // Level 4 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "jjjjjjjjjl." + /* 2 */ "kffffffffl." + /* 3 */ ".f......fl." + /* 4 */ "pffffff.fl." + /* 5 */ "ssssssf.fl." + /* 6 */ ".....tf.fl." + /* 7 */ "mmmm.tf.fl." + /* 8 */ "mmmm.tf.fl." + /* 9 */ "mmmm.tfffl." + /* 10 */ "mmmm.tu.vl." + + // Level 5 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "jjjjjjjjj.." + /* 3 */ "ffffffffl.." + /* 4 */ "sssssstfl.." + /* 5 */ "......tfl.." + /* 6 */ "......tfl.." + /* 7 */ "mmmm..tfl.." + /* 8 */ "mmmm..tfl.." + /* 9 */ "mmmm..tfl.." + /* 10 */ "mmmm..tfl..", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // PlainsVillage_93 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // PlainsVillage_94: + // The data has been exported from the gallery Plains, area index 43, ID 94, created by xoft + { + // Size: + 15, 6, 11, // SizeX = 15, SizeY = 6, SizeZ = 11 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 14, 5, 10, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 67: 0\n" /* stairs */ + "b: 67: 2\n" /* stairs */ + "c: 67: 1\n" /* stairs */ + "d: 4: 0\n" /* cobblestone */ + "e: 17: 0\n" /* tree */ + "f: 5: 0\n" /* wood */ + "g: 64: 5\n" /* wooddoorblock */ + "h:102: 0\n" /* glasspane */ + "i: 64:12\n" /* wooddoorblock */ + "j: 53: 2\n" /* woodstairs */ + "k: 53: 0\n" /* woodstairs */ + "l: 53: 1\n" /* woodstairs */ + "m: 19: 0\n" /* sponge */ + "n: 50: 3\n" /* torch */ + "o: 50: 4\n" /* torch */ + "p: 50: 2\n" /* torch */ + "q: 50: 1\n" /* torch */ + "r: 53: 3\n" /* woodstairs */ + "s: 53: 5\n" /* woodstairs */ + "t: 53: 4\n" /* woodstairs */, + + // Block data: + // Level 0 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "......abc......" + /* 1 */ ".ddddddddddddd." + /* 2 */ ".ddddddddddddd." + /* 3 */ ".ddddddddddddd." + /* 4 */ ".ddddddddddddd." + /* 5 */ ".ddddddddddddd." + /* 6 */ ".ddddd...ddddd." + /* 7 */ ".ddddd...ddddd." + /* 8 */ ".ddddd...ddddd." + /* 9 */ ".ddddd...ddddd." + /* 10 */ "..............." + + // Level 1 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ ".efffffgfffffe." + /* 2 */ ".f...........f." + /* 3 */ ".f...........f." + /* 4 */ ".f...........f." + /* 5 */ ".f...efffe...f." + /* 6 */ ".f...f...f...f." + /* 7 */ ".f...f...f...f." + /* 8 */ ".f...f...f...f." + /* 9 */ ".efffe...efffe." + /* 10 */ "..............." + + // Level 2 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ ".ehhhhfifhhhhe." + /* 2 */ ".h...........h." + /* 3 */ ".h...........h." + /* 4 */ ".h...........h." + /* 5 */ ".f...ehhhe...f." + /* 6 */ ".h...h...h...h." + /* 7 */ ".h...h...h...h." + /* 8 */ ".h...h...h...h." + /* 9 */ ".ehhhe...ehhhe." + /* 10 */ "..............." + + // Level 3 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "jjjjjjjjjjjjjjj" + /* 1 */ "kfffffffffffffl" + /* 2 */ "kf....n.n....fl" + /* 3 */ "kf...........fl" + /* 4 */ "kf...o...o...fl" + /* 5 */ "kf..pfffffq..fl" + /* 6 */ "kf...frrrf...fl" + /* 7 */ "kf...fl.kf...fl" + /* 8 */ "kf...fl.kf...fl" + /* 9 */ "kfffffl.kfffffl" + /* 10 */ "ks...tl.ks...tl" + + // Level 4 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ ".jjjjjjjjjjjjl." + /* 2 */ ".kfffffffffffl." + /* 3 */ ".kfffffffffffl." + /* 4 */ ".kfffffffffffl." + /* 5 */ ".kffflrrrrfffl." + /* 6 */ ".kfffl...kfffl." + /* 7 */ ".kfffl...kfffl." + /* 8 */ ".kfffl...kfffl." + /* 9 */ ".kfffl...kfffl." + /* 10 */ ".ks.tl...ks.tl." + + // Level 5 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ "..............." + /* 2 */ "..kjjjjjjjjjj.." + /* 3 */ "..kfffffffffl.." + /* 4 */ "..kflrrrrrkfl.." + /* 5 */ "..kfl.....kfl.." + /* 6 */ "..kfl.....kfl.." + /* 7 */ "..kfl.....kfl.." + /* 8 */ "..kfl.....kfl.." + /* 9 */ "..kfl.....kfl.." + /* 10 */ "..kfl.....kfl..", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // PlainsVillage_94 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // PlainsVillage_97: + // The data has been exported from the gallery Plains, area index 46, ID 97, created by Aloe_vera + { + // Size: + 11, 6, 7, // SizeX = 11, SizeY = 6, SizeZ = 7 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 10, 5, 6, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 67: 0\n" /* stairs */ + "b: 67: 2\n" /* stairs */ + "c: 67: 1\n" /* stairs */ + "d: 4: 0\n" /* cobblestone */ + "e: 17: 0\n" /* tree */ + "f: 5: 0\n" /* wood */ + "g: 64: 5\n" /* wooddoorblock */ + "h: 53: 3\n" /* woodstairs */ + "i: 85: 0\n" /* fence */ + "j: 53: 2\n" /* woodstairs */ + "k: 53: 1\n" /* woodstairs */ + "l: 53: 0\n" /* woodstairs */ + "m: 19: 0\n" /* sponge */ + "n:102: 0\n" /* glasspane */ + "o: 64:12\n" /* wooddoorblock */ + "p: 50: 3\n" /* torch */ + "q: 72: 0\n" /* woodplate */ + "r: 53: 7\n" /* woodstairs */ + "s: 47: 0\n" /* bookshelf */ + "t: 50: 1\n" /* torch */ + "u: 50: 2\n" /* torch */ + "v: 53: 6\n" /* woodstairs */, + + // Block data: + // Level 0 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "....abc...." + /* 1 */ ".ddddddddd." + /* 2 */ ".ddddddddd." + /* 3 */ ".ddddddddd." + /* 4 */ ".ddddddddd." + /* 5 */ ".ddddddddd." + /* 6 */ "..........." + + // Level 1 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".efffgfffe." + /* 2 */ ".fh.....hf." + /* 3 */ ".fi.....if." + /* 4 */ ".fj.kil.jf." + /* 5 */ ".efffffffe." + /* 6 */ "..........." + + // Level 2 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".ennfofnne." + /* 2 */ ".n..p.p..n." + /* 3 */ ".nq.....qn." + /* 4 */ ".n...q...n." + /* 5 */ ".ennnfnnne." + /* 6 */ "..........." + + // Level 3 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "jjjjjjjjjjj" + /* 1 */ "rfffffffffr" + /* 2 */ ".fsssssssf." + /* 3 */ ".ft.....uf." + /* 4 */ ".fsssssssf." + /* 5 */ "vfffffffffv" + /* 6 */ "hhhhhhhhhhh" + + // Level 4 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "jjjjjjjjjjj" + /* 2 */ "rfffffffffr" + /* 3 */ ".f.......f." + /* 4 */ "vfffffffffv" + /* 5 */ "hhhhhhhhhhh" + /* 6 */ "..........." + + // Level 5 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "jjjjjjjjjjj" + /* 3 */ "fffffffffff" + /* 4 */ "hhhhhhhhhhh" + /* 5 */ "..........." + /* 6 */ "...........", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // PlainsVillage_97 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // PlainsVillage_98: + // The data has been exported from the gallery Plains, area index 47, ID 98, created by Aloe_vera + { + // Size: + 12, 7, 9, // SizeX = 12, SizeY = 7, SizeZ = 9 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 11, 6, 8, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 67: 0\n" /* stairs */ + "b: 67: 2\n" /* stairs */ + "c: 67: 1\n" /* stairs */ + "d: 4: 0\n" /* cobblestone */ + "e: 17: 0\n" /* tree */ + "f: 5: 0\n" /* wood */ + "g: 64: 5\n" /* wooddoorblock */ + "h: 53: 3\n" /* woodstairs */ + "i: 85: 0\n" /* fence */ + "j: 53: 2\n" /* woodstairs */ + "k: 53: 1\n" /* woodstairs */ + "l: 53: 0\n" /* woodstairs */ + "m: 19: 0\n" /* sponge */ + "n:102: 0\n" /* glasspane */ + "o: 64:13\n" /* wooddoorblock */ + "p: 64:12\n" /* wooddoorblock */ + "q: 50: 3\n" /* torch */ + "r: 72: 0\n" /* woodplate */ + "s: 53: 7\n" /* woodstairs */ + "t: 47: 0\n" /* bookshelf */ + "u: 50: 1\n" /* torch */ + "v: 50: 2\n" /* torch */ + "w: 53: 6\n" /* woodstairs */, + + // Block data: + // Level 0 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "....abbc...." + /* 1 */ ".dddddddddd." + /* 2 */ ".dddddddddd." + /* 3 */ ".dddddddddd." + /* 4 */ ".dddddddddd." + /* 5 */ ".dddddddddd." + /* 6 */ ".dddddddddd." + /* 7 */ ".dddddddddd." + /* 8 */ "............" + + // Level 1 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ ".efffggfffe." + /* 2 */ ".f........f." + /* 3 */ ".fh......hf." + /* 4 */ ".fi......if." + /* 5 */ ".fj......jf." + /* 6 */ ".f.kilkil.f." + /* 7 */ ".effffffffe." + /* 8 */ "............" + + // Level 2 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ ".ennfopfnne." + /* 2 */ ".n..q..q..n." + /* 3 */ ".n........n." + /* 4 */ ".fr......rf." + /* 5 */ ".n........n." + /* 6 */ ".n..r..r..n." + /* 7 */ ".ennfnnfnne." + /* 8 */ "............" + + // Level 3 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "jjjjjjjjjjjj" + /* 1 */ "sffffffffffs" + /* 2 */ ".fttttttttf." + /* 3 */ ".f........f." + /* 4 */ ".fu......vf." + /* 5 */ ".f........f." + /* 6 */ ".fttttttttf." + /* 7 */ "wffffffffffw" + /* 8 */ "hhhhhhhhhhhh" + + // Level 4 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ "jjjjjjjjjjjj" + /* 2 */ "sffffffffffs" + /* 3 */ ".fttttttttf." + /* 4 */ ".f........f." + /* 5 */ ".fttttttttf." + /* 6 */ "wffffffffffw" + /* 7 */ "hhhhhhhhhhhh" + /* 8 */ "............" + + // Level 5 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ "............" + /* 2 */ "jjjjjjjjjjjj" + /* 3 */ "sffffffffffs" + /* 4 */ ".f........f." + /* 5 */ "wffffffffffw" + /* 6 */ "hhhhhhhhhhhh" + /* 7 */ "............" + /* 8 */ "............" + + // Level 6 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ "............" + /* 2 */ "............" + /* 3 */ "jjjjjjjjjjjj" + /* 4 */ "ffffffffffff" + /* 5 */ "hhhhhhhhhhhh" + /* 6 */ "............" + /* 7 */ "............" + /* 8 */ "............", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // PlainsVillage_98 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // PlainsVillage_99: + // The data has been exported from the gallery Plains, area index 48, ID 99, created by Aloe_vera + { + // Size: + 11, 7, 13, // SizeX = 11, SizeY = 7, SizeZ = 13 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 10, 6, 12, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 67: 0\n" /* stairs */ + "b: 67: 2\n" /* stairs */ + "c: 67: 1\n" /* stairs */ + "d: 4: 0\n" /* cobblestone */ + "e: 43: 0\n" /* doubleslab */ + "f: 2: 0\n" /* grass */ + "g: 17: 0\n" /* tree */ + "h: 5: 0\n" /* wood */ + "i: 64: 5\n" /* wooddoorblock */ + "j: 53: 3\n" /* woodstairs */ + "k: 85: 0\n" /* fence */ + "l: 53: 2\n" /* woodstairs */ + "m: 19: 0\n" /* sponge */ + "n: 64: 7\n" /* wooddoorblock */ + "o:102: 0\n" /* glasspane */ + "p: 64:12\n" /* wooddoorblock */ + "q: 72: 0\n" /* woodplate */ + "r: 53: 7\n" /* woodstairs */ + "s: 50: 1\n" /* torch */ + "t: 50: 2\n" /* torch */ + "u: 53: 6\n" /* woodstairs */, + + // Block data: + // Level 0 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "....abc...." + /* 1 */ ".ddddddddd." + /* 2 */ ".deeeedddd." + /* 3 */ ".deeeedddd." + /* 4 */ ".deeeedddd." + /* 5 */ ".deeeedddd." + /* 6 */ ".deeeedddd." + /* 7 */ ".ddddddddd." + /* 8 */ "..fffffff.." + /* 9 */ "mmfffffffmm" + /* 10 */ "mmfffffffmm" + /* 11 */ "mmfffffffmm" + /* 12 */ "mmfffffffmm" + + // Level 1 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".ghhhihhhg." + /* 2 */ ".h.e....jh." + /* 3 */ ".h.e....kh." + /* 4 */ ".h.e....lh." + /* 5 */ ".h.......h." + /* 6 */ ".h.......h." + /* 7 */ ".ghhhnhhhg." + /* 8 */ "..k.....k.." + /* 9 */ "mmk.....kmm" + /* 10 */ "mmk.....kmm" + /* 11 */ "mmk.....kmm" + /* 12 */ "mmkkkkkkkmm" + + // Level 2 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".goohphoog." + /* 2 */ ".o.......o." + /* 3 */ ".o......qo." + /* 4 */ ".h.......h." + /* 5 */ ".o.......o." + /* 6 */ ".o.......o." + /* 7 */ ".goohphoog." + /* 8 */ "..........." + /* 9 */ "mm.......mm" + /* 10 */ "mm.......mm" + /* 11 */ "mm.......mm" + /* 12 */ "mm.......mm" + + // Level 3 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "lllllllllll" + /* 1 */ "rhhhhhhhhhr" + /* 2 */ ".h.......h." + /* 3 */ ".h.......h." + /* 4 */ ".hs.....th." + /* 5 */ ".h.......h." + /* 6 */ ".h.......h." + /* 7 */ "uhhhhhhhhhu" + /* 8 */ "jjjjjjjjjjj" + /* 9 */ "mm.......mm" + /* 10 */ "mm.......mm" + /* 11 */ "mm.......mm" + /* 12 */ "mm.......mm" + + // Level 4 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "lllllllllll" + /* 2 */ "rhhhhhhhhhr" + /* 3 */ ".h.......h." + /* 4 */ ".h.......h." + /* 5 */ ".h.......h." + /* 6 */ "uhhhhhhhhhu" + /* 7 */ "jjjjjjjjjjj" + /* 8 */ "..........." + /* 9 */ "mm.......mm" + /* 10 */ "mm.......mm" + /* 11 */ "mm.......mm" + /* 12 */ "mm.......mm" + + // Level 5 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "lllllllllll" + /* 3 */ "rhhhhhhhhhr" + /* 4 */ ".h.......h." + /* 5 */ "uhhhhhhhhhu" + /* 6 */ "jjjjjjjjjjj" + /* 7 */ "..........." + /* 8 */ "..........." + /* 9 */ "mm.......mm" + /* 10 */ "mm.......mm" + /* 11 */ "mm.......mm" + /* 12 */ "mm.......mm" + + // Level 6 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "..........." + /* 3 */ "lllllllllll" + /* 4 */ "hhhhhhhhhhh" + /* 5 */ "jjjjjjjjjjj" + /* 6 */ "..........." + /* 7 */ "..........." + /* 8 */ "..........." + /* 9 */ "mm.......mm" + /* 10 */ "mm.......mm" + /* 11 */ "mm.......mm" + /* 12 */ "mm.......mm", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // PlainsVillage_99 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // RoofedWell: + // The data has been exported from the gallery Plains, area index 119, ID 271, created by STR_Warrior + { + // Size: + 7, 15, 7, // SizeX = 7, SizeY = 15, SizeZ = 7 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 6, 14, 6, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 1: 0\n" /* stone */ + "b: 4: 0\n" /* cobblestone */ + "c: 8: 0\n" /* water */ + "d: 3: 0\n" /* dirt */ + "e: 2: 0\n" /* grass */ + "f: 13: 0\n" /* gravel */ + "g:118: 3\n" /* cauldronblock */ + "h: 85: 0\n" /* fence */ + "i: 53: 2\n" /* woodstairs */ + "j: 53: 7\n" /* woodstairs */ + "k: 5: 0\n" /* wood */ + "l: 53: 4\n" /* woodstairs */ + "m: 19: 0\n" /* sponge */ + "n: 53: 5\n" /* woodstairs */ + "o: 53: 6\n" /* woodstairs */ + "p: 53: 3\n" /* woodstairs */, + + // Block data: + // Level 0 + /* z\x* 0123456 */ + /* 0 */ "aaaaaaa" + /* 1 */ "aaaaaaa" + /* 2 */ "aaaaaaa" + /* 3 */ "aaaaaaa" + /* 4 */ "aaaaaaa" + /* 5 */ "aaaaaaa" + /* 6 */ "aaaaaaa" + + // Level 1 + /* z\x* 0123456 */ + /* 0 */ "aaaaaaa" + /* 1 */ "abbbbba" + /* 2 */ "abcccba" + /* 3 */ "abcccba" + /* 4 */ "abcccba" + /* 5 */ "abbbbba" + /* 6 */ "aaaaaaa" + + // Level 2 + /* z\x* 0123456 */ + /* 0 */ "aaaaaaa" + /* 1 */ "abbbbba" + /* 2 */ "abcccba" + /* 3 */ "abcccba" + /* 4 */ "abcccba" + /* 5 */ "abbbbba" + /* 6 */ "aaaaaaa" + + // Level 3 + /* z\x* 0123456 */ + /* 0 */ "aaaaaaa" + /* 1 */ "abbbbba" + /* 2 */ "abcccba" + /* 3 */ "abcccba" + /* 4 */ "abcccba" + /* 5 */ "abbbbba" + /* 6 */ "aaaaaaa" + + // Level 4 + /* z\x* 0123456 */ + /* 0 */ "aaaaaaa" + /* 1 */ "abbbbba" + /* 2 */ "abcccba" + /* 3 */ "abcccba" + /* 4 */ "abcccba" + /* 5 */ "abbbbba" + /* 6 */ "aaaaaaa" + + // Level 5 + /* z\x* 0123456 */ + /* 0 */ "ddddddd" + /* 1 */ "dbbbbbd" + /* 2 */ "dbcccbd" + /* 3 */ "dbcccbd" + /* 4 */ "dbcccbd" + /* 5 */ "dbbbbbd" + /* 6 */ "ddddddd" + + // Level 6 + /* z\x* 0123456 */ + /* 0 */ "ddddddd" + /* 1 */ "dbbbbbd" + /* 2 */ "dbcccbd" + /* 3 */ "dbcccbd" + /* 4 */ "dbcccbd" + /* 5 */ "dbbbbbd" + /* 6 */ "ddddddd" + + // Level 7 + /* z\x* 0123456 */ + /* 0 */ "ddddddd" + /* 1 */ "dbbbbbd" + /* 2 */ "dbcccbd" + /* 3 */ "dbcccbd" + /* 4 */ "dbcccbd" + /* 5 */ "dbbbbbd" + /* 6 */ "ddddddd" + + // Level 8 + /* z\x* 0123456 */ + /* 0 */ "eefffee" + /* 1 */ "ebbbbbe" + /* 2 */ "fbcccbf" + /* 3 */ "fbcccbf" + /* 4 */ "fbcccbf" + /* 5 */ "ebbbbbe" + /* 6 */ "eefffee" + + // Level 9 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".bbbbb." + /* 2 */ ".b...b." + /* 3 */ ".b.g.b." + /* 4 */ ".b...b." + /* 5 */ ".bbbbb." + /* 6 */ "......." + + // Level 10 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".h...h." + /* 2 */ "......." + /* 3 */ "...h..." + /* 4 */ "......." + /* 5 */ ".h...h." + /* 6 */ "......." + + // Level 11 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".h...h." + /* 2 */ "......." + /* 3 */ "...h..." + /* 4 */ "......." + /* 5 */ ".h...h." + /* 6 */ "......." + + // Level 12 + /* z\x* 0123456 */ + /* 0 */ "iiiiiii" + /* 1 */ "jkjjjkj" + /* 2 */ ".l...n." + /* 3 */ ".l.h.n." + /* 4 */ ".l...n." + /* 5 */ "okoooko" + /* 6 */ "ppppppp" + + // Level 13 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ "iiiiiii" + /* 2 */ "jkjjjkj" + /* 3 */ ".k.h.k." + /* 4 */ "okoooko" + /* 5 */ "ppppppp" + /* 6 */ "......." + + // Level 14 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ "......." + /* 2 */ "iiiiiii" + /* 3 */ "kkkkkkk" + /* 4 */ "ppppppp" + /* 5 */ "......." + /* 6 */ ".......", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // RoofedWell + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Windmill: + // The data has been exported from the gallery Plains, area index 60, ID 111, created by Aloe_vera + { + // Size: + 9, 16, 13, // SizeX = 9, SizeY = 16, SizeZ = 13 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 8, 15, 12, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 4: 0\n" /* cobblestone */ + "b: 67: 2\n" /* stairs */ + "c: 67: 1\n" /* stairs */ + "d: 67: 3\n" /* stairs */ + "e: 17: 0\n" /* tree */ + "f: 5: 0\n" /* wood */ + "g: 54: 4\n" /* chest */ + "h:154: 4\n" /* hopper */ + "i: 64: 6\n" /* wooddoorblock */ + "j:102: 0\n" /* glasspane */ + "k: 85: 0\n" /* fence */ + "l: 64:12\n" /* wooddoorblock */ + "m: 19: 0\n" /* sponge */ + "n: 50: 2\n" /* torch */ + "o: 35: 0\n" /* wool */ + "p: 17: 4\n" /* tree */ + "q: 17: 8\n" /* tree */ + "r: 53: 2\n" /* woodstairs */ + "s: 53: 7\n" /* woodstairs */ + "t: 53: 6\n" /* woodstairs */ + "u: 53: 3\n" /* woodstairs */, + + // Block data: + // Level 0 + /* z\x* 012345678 */ + /* 0 */ "mmmmmmm.." + /* 1 */ "mmmmmmm.." + /* 2 */ "mmmmmmm.." + /* 3 */ "........." + /* 4 */ ".aaaaa..." + /* 5 */ ".aaaaab.." + /* 6 */ ".aaaaac.." + /* 7 */ ".aaaaad.." + /* 8 */ ".aaaaa..." + /* 9 */ "........." + /* 10 */ "mmmmmmm.." + /* 11 */ "mmmmmmm.." + /* 12 */ "mmmmmmm.." + + // Level 1 + /* z\x* 012345678 */ + /* 0 */ "mmmmmmm.." + /* 1 */ "mmmmmmm.." + /* 2 */ "mmmmmmm.." + /* 3 */ "........." + /* 4 */ ".efffe..." + /* 5 */ ".f...f..." + /* 6 */ ".fgh.i..." + /* 7 */ ".f...f..." + /* 8 */ ".efffe..." + /* 9 */ "........." + /* 10 */ "mmmmmmm.." + /* 11 */ "mmmmmmm.." + /* 12 */ "mmmmmmm.." + + // Level 2 + /* z\x* 012345678 */ + /* 0 */ "mmmmmmm.." + /* 1 */ "mmmmmmm.." + /* 2 */ "mmmmmmm.." + /* 3 */ "........." + /* 4 */ ".ejjje..." + /* 5 */ ".j...f..." + /* 6 */ ".j.k.l..." + /* 7 */ ".j...f..." + /* 8 */ ".ejjje..." + /* 9 */ "........." + /* 10 */ "mmmmmmm.." + /* 11 */ "mmmmmmm.." + /* 12 */ "mmmmmmm.." + + // Level 3 + /* z\x* 012345678 */ + /* 0 */ "mmmmmmm.." + /* 1 */ "mmmmmmm.." + /* 2 */ "mmmmmmm.." + /* 3 */ "........." + /* 4 */ ".efffe..." + /* 5 */ ".f..nf..." + /* 6 */ ".f.k.f..." + /* 7 */ ".f..nf..k" + /* 8 */ ".efffe..o" + /* 9 */ "........." + /* 10 */ "mmmmmmm.." + /* 11 */ "mmmmmmm.." + /* 12 */ "mmmmmmm.." + + // Level 4 + /* z\x* 012345678 */ + /* 0 */ "mmmmmmm.." + /* 1 */ "mmmmmmm.." + /* 2 */ "mmmmmmm.." + /* 3 */ "........." + /* 4 */ ".epppe..." + /* 5 */ ".q...q..." + /* 6 */ ".q.k.q..." + /* 7 */ ".q...q..k" + /* 8 */ ".epppe..o" + /* 9 */ "........." + /* 10 */ "mmmmmmm.." + /* 11 */ "mmmmmmm.." + /* 12 */ "mmmmmmm.." + + // Level 5 + /* z\x* 012345678 */ + /* 0 */ "mmmmmmm.." + /* 1 */ "mmmmmmm.." + /* 2 */ "mmmmmmm.." + /* 3 */ "........." + /* 4 */ ".efffe..." + /* 5 */ ".f...f..." + /* 6 */ ".f.k.f..k" + /* 7 */ ".f...f..o" + /* 8 */ ".efffe..o" + /* 9 */ "........." + /* 10 */ "mmmmmmm.." + /* 11 */ "mmmmmmm.." + /* 12 */ "mmmmmmm.." + + // Level 6 + /* z\x* 012345678 */ + /* 0 */ "mmmmmmm.." + /* 1 */ "mmmmmmm.." + /* 2 */ "mmmmmmm.." + /* 3 */ "........." + /* 4 */ ".ejjje..." + /* 5 */ ".j...j..." + /* 6 */ ".j.k.j..k" + /* 7 */ ".j...j..o" + /* 8 */ ".ejjje..." + /* 9 */ "........." + /* 10 */ "mmmmmmm.." + /* 11 */ "mmmmmmm.." + /* 12 */ "mmmmmmm.." + + // Level 7 + /* z\x* 012345678 */ + /* 0 */ "mmmmmmm.o" + /* 1 */ "mmmmmmm.o" + /* 2 */ "mmmmmmm.o" + /* 3 */ "........." + /* 4 */ ".efffe..." + /* 5 */ ".f...f..k" + /* 6 */ ".f.k.f..o" + /* 7 */ ".f...f..o" + /* 8 */ ".efffe..." + /* 9 */ "........." + /* 10 */ "mmmmmmm.." + /* 11 */ "mmmmmmm.." + /* 12 */ "mmmmmmm.." + + // Level 8 + /* z\x* 012345678 */ + /* 0 */ "mmmmmmm.k" + /* 1 */ "mmmmmmm.k" + /* 2 */ "mmmmmmm.o" + /* 3 */ "........o" + /* 4 */ ".epppe..o" + /* 5 */ ".q...q..k" + /* 6 */ ".q.k.q..o" + /* 7 */ ".q...q..k" + /* 8 */ ".epppe..k" + /* 9 */ "........." + /* 10 */ "mmmmmmm.." + /* 11 */ "mmmmmmm.." + /* 12 */ "mmmmmmm.." + + // Level 9 + /* z\x* 012345678 */ + /* 0 */ "mmmmmmm.." + /* 1 */ "mmmmmmm.." + /* 2 */ "mmmmmmm.k" + /* 3 */ "rrrrrrr.k" + /* 4 */ "sfffffs.o" + /* 5 */ ".f...f..o" + /* 6 */ ".f.kppppp" + /* 7 */ ".f...f..o" + /* 8 */ "tffffft.o" + /* 9 */ "uuuuuuu.k" + /* 10 */ "mmmmmmm.k" + /* 11 */ "mmmmmmm.." + /* 12 */ "mmmmmmm.." + + // Level 10 + /* z\x* 012345678 */ + /* 0 */ "mmmmmmm.." + /* 1 */ "mmmmmmm.." + /* 2 */ "mmmmmmm.." + /* 3 */ "mmmmmmm.." + /* 4 */ "rrrrrrr.k" + /* 5 */ "sfffffs.k" + /* 6 */ ".f...f..o" + /* 7 */ "tffffft.k" + /* 8 */ "uuuuuuu.o" + /* 9 */ "mmmmmmm.o" + /* 10 */ "mmmmmmm.o" + /* 11 */ "mmmmmmm.k" + /* 12 */ "mmmmmmm.k" + + // Level 11 + /* z\x* 012345678 */ + /* 0 */ "mmmmmmm.." + /* 1 */ "mmmmmmm.." + /* 2 */ "mmmmmmm.." + /* 3 */ "mmmmmmm.." + /* 4 */ "mmmmmmm.." + /* 5 */ "rrrrrrr.o" + /* 6 */ "fffffff.o" + /* 7 */ "uuuuuuu.k" + /* 8 */ "mmmmmmm.." + /* 9 */ "mmmmmmm.." + /* 10 */ "mmmmmmm.o" + /* 11 */ "mmmmmmm.o" + /* 12 */ "mmmmmmm.o" + + // Level 12 + /* z\x* 012345678 */ + /* 0 */ "........." + /* 1 */ "........." + /* 2 */ "........." + /* 3 */ "........." + /* 4 */ "........." + /* 5 */ "........o" + /* 6 */ "........k" + /* 7 */ "........." + /* 8 */ "........." + /* 9 */ "........." + /* 10 */ "........." + /* 11 */ "........." + /* 12 */ "........." + + // Level 13 + /* z\x* 012345678 */ + /* 0 */ "........." + /* 1 */ "........." + /* 2 */ "........." + /* 3 */ "........." + /* 4 */ "........o" + /* 5 */ "........o" + /* 6 */ "........k" + /* 7 */ "........." + /* 8 */ "........." + /* 9 */ "........." + /* 10 */ "........." + /* 11 */ "........." + /* 12 */ "........." + + // Level 14 + /* z\x* 012345678 */ + /* 0 */ "........." + /* 1 */ "........." + /* 2 */ "........." + /* 3 */ "........." + /* 4 */ "........o" + /* 5 */ "........k" + /* 6 */ "........." + /* 7 */ "........." + /* 8 */ "........." + /* 9 */ "........." + /* 10 */ "........." + /* 11 */ "........." + /* 12 */ "........." + + // Level 15 + /* z\x* 012345678 */ + /* 0 */ "........." + /* 1 */ "........." + /* 2 */ "........." + /* 3 */ "........." + /* 4 */ "........o" + /* 5 */ "........k" + /* 6 */ "........." + /* 7 */ "........." + /* 8 */ "........." + /* 9 */ "........." + /* 10 */ "........." + /* 11 */ "........." + /* 12 */ ".........", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // Windmill +}; // g_PlainsVillagePrefabs + + + + + + +const cPrefab::sDef g_PlainsVillageStartingPrefabs[] = +{ + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Well: + // The data has been exported from the gallery Plains, area index 1, ID 5, created by Aloe_vera + { + // Size: + 4, 13, 4, // SizeX = 4, SizeY = 13, SizeZ = 4 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 3, 12, 3, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 1: 0\n" /* stone */ + "b: 4: 0\n" /* cobblestone */ + "c: 8: 0\n" /* water */ + "d: 85: 0\n" /* fence */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 0123 */ + /* 0 */ "aaaa" + /* 1 */ "aaaa" + /* 2 */ "aaaa" + /* 3 */ "aaaa" + + // Level 1 + /* z\x* 0123 */ + /* 0 */ "bbbb" + /* 1 */ "bccb" + /* 2 */ "bccb" + /* 3 */ "bbbb" + + // Level 2 + /* z\x* 0123 */ + /* 0 */ "bbbb" + /* 1 */ "bccb" + /* 2 */ "bccb" + /* 3 */ "bbbb" + + // Level 3 + /* z\x* 0123 */ + /* 0 */ "bbbb" + /* 1 */ "bccb" + /* 2 */ "bccb" + /* 3 */ "bbbb" + + // Level 4 + /* z\x* 0123 */ + /* 0 */ "bbbb" + /* 1 */ "bccb" + /* 2 */ "bccb" + /* 3 */ "bbbb" + + // Level 5 + /* z\x* 0123 */ + /* 0 */ "bbbb" + /* 1 */ "bccb" + /* 2 */ "bccb" + /* 3 */ "bbbb" + + // Level 6 + /* z\x* 0123 */ + /* 0 */ "bbbb" + /* 1 */ "bccb" + /* 2 */ "bccb" + /* 3 */ "bbbb" + + // Level 7 + /* z\x* 0123 */ + /* 0 */ "bbbb" + /* 1 */ "bccb" + /* 2 */ "bccb" + /* 3 */ "bbbb" + + // Level 8 + /* z\x* 0123 */ + /* 0 */ "bbbb" + /* 1 */ "bccb" + /* 2 */ "bccb" + /* 3 */ "bbbb" + + // Level 9 + /* z\x* 0123 */ + /* 0 */ "bbbb" + /* 1 */ "b..b" + /* 2 */ "b..b" + /* 3 */ "bbbb" + + // Level 10 + /* z\x* 0123 */ + /* 0 */ "d..d" + /* 1 */ "...." + /* 2 */ "...." + /* 3 */ "d..d" + + // Level 11 + /* z\x* 0123 */ + /* 0 */ "d..d" + /* 1 */ "...." + /* 2 */ "...." + /* 3 */ "d..d" + + // Level 12 + /* z\x* 0123 */ + /* 0 */ "bbbb" + /* 1 */ "bbbb" + /* 2 */ "bbbb" + /* 3 */ "bbbb", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // Well +}; + + + + + +// The prefab counts: + +const size_t g_PlainsVillagePrefabsCount = ARRAYCOUNT(g_PlainsVillagePrefabs); + +const size_t g_PlainsVillageStartingPrefabsCount = ARRAYCOUNT(g_PlainsVillageStartingPrefabs); + diff --git a/src/Generating/Prefabs/PlainsVillagePrefabs.h b/src/Generating/Prefabs/PlainsVillagePrefabs.h new file mode 100644 index 000000000..087783b1e --- /dev/null +++ b/src/Generating/Prefabs/PlainsVillagePrefabs.h @@ -0,0 +1,15 @@ + +// PlainsVillagePrefabs.h + +// Declares the prefabs in the group PlainsVillage + +#include "../Prefab.h" + + + + + +extern const cPrefab::sDef g_PlainsVillagePrefabs[]; +extern const cPrefab::sDef g_PlainsVillageStartingPrefabs[]; +extern const size_t g_PlainsVillagePrefabsCount; +extern const size_t g_PlainsVillageStartingPrefabsCount; diff --git a/src/Generating/Prefabs/SandVillagePrefabs.cpp b/src/Generating/Prefabs/SandVillagePrefabs.cpp new file mode 100644 index 000000000..23af0f0a6 --- /dev/null +++ b/src/Generating/Prefabs/SandVillagePrefabs.cpp @@ -0,0 +1,1887 @@ + +// SandVillagePrefabs.cpp + +// Defines the prefabs in the group SandVillage + +// NOTE: This file has been generated automatically by GalExport! +// Any manual changes will be overwritten by the next automatic export! + +#include "Globals.h" +#include "SandVillagePrefabs.h" + + + + + +const cPrefab::sDef g_SandVillagePrefabs[] = +{ + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // DoubleField: + // The data has been exported from the gallery Desert, area index 5, ID 75, created by tonibm1999 + { + // Size: + 13, 2, 9, // SizeX = 13, SizeY = 2, SizeZ = 9 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 12, 1, 8, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 24: 0\n" /* sandstone */ + "b: 60: 7\n" /* tilleddirt */ + "c: 8: 0\n" /* water */ + "d: 50: 5\n" /* torch */ + "e: 59: 7\n" /* crops */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "aaaaaaaaaaaaa" + /* 1 */ "abbcbbabbcbba" + /* 2 */ "abbcbbabbcbba" + /* 3 */ "abbcbbabbcbba" + /* 4 */ "abbcbbabbcbba" + /* 5 */ "abbcbbabbcbba" + /* 6 */ "abbcbbabbcbba" + /* 7 */ "abbcbbabbcbba" + /* 8 */ "aaaaaaaaaaaaa" + + // Level 1 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "d.....d.....d" + /* 1 */ ".......ee.ee." + /* 2 */ ".......ee.ee." + /* 3 */ ".......ee.ee." + /* 4 */ ".......ee.ee." + /* 5 */ ".......ee.ee." + /* 6 */ ".......ee.ee." + /* 7 */ ".......ee.ee." + /* 8 */ "d.....d.....d", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // DoubleField + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // House11x7: + // The data has been exported from the gallery Desert, area index 6, ID 81, created by Aloe_vera + { + // Size: + 11, 6, 7, // SizeX = 11, SizeY = 6, SizeZ = 7 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 10, 5, 6, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a:128: 0\n" /* sandstonestairs */ + "b:128: 2\n" /* sandstonestairs */ + "c:128: 1\n" /* sandstonestairs */ + "d: 24: 0\n" /* sandstone */ + "e: 64: 5\n" /* wooddoorblock */ + "f:102: 0\n" /* glasspane */ + "g: 64:12\n" /* wooddoorblock */ + "h:128: 7\n" /* sandstonestairs */ + "i: 50: 3\n" /* torch */ + "j: 50: 4\n" /* torch */ + "k:128: 6\n" /* sandstonestairs */ + "l:128: 3\n" /* sandstonestairs */ + "m: 19: 0\n" /* sponge */ + "n: 50: 1\n" /* torch */ + "o: 50: 2\n" /* torch */, + + // Block data: + // Level 0 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "....abc...." + /* 1 */ ".ddddddddd." + /* 2 */ ".ddddddddd." + /* 3 */ ".ddddddddd." + /* 4 */ ".ddddddddd." + /* 5 */ ".ddddddddd." + /* 6 */ "..........." + + // Level 1 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".ddddedddd." + /* 2 */ ".d.......d." + /* 3 */ ".d.......d." + /* 4 */ ".d.......d." + /* 5 */ ".ddddddddd." + /* 6 */ "..........." + + // Level 2 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".dffdgdffd." + /* 2 */ ".f.......f." + /* 3 */ ".f.......f." + /* 4 */ ".f.......f." + /* 5 */ ".dffdfdffd." + /* 6 */ "..........." + + // Level 3 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "bbbbbbbbbbb" + /* 1 */ "hdddddddddh" + /* 2 */ ".d..i.i..d." + /* 3 */ ".d.......d." + /* 4 */ ".d..j.j..d." + /* 5 */ "kdddddddddk" + /* 6 */ "lllllllllll" + + // Level 4 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "bbbbbbbbbbb" + /* 2 */ "hdddddddddh" + /* 3 */ ".dn.....od." + /* 4 */ "kdddddddddk" + /* 5 */ "lllllllllll" + /* 6 */ "..........." + + // Level 5 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "bbbbbbbbbbb" + /* 3 */ "ddddddddddd" + /* 4 */ "lllllllllll" + /* 5 */ "..........." + /* 6 */ "...........", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // House11x7 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // House11x9: + // The data has been exported from the gallery Desert, area index 11, ID 115, created by xoft + { + // Size: + 11, 7, 9, // SizeX = 11, SizeY = 7, SizeZ = 9 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 10, 6, 8, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a:128: 0\n" /* sandstonestairs */ + "b:128: 2\n" /* sandstonestairs */ + "c:128: 1\n" /* sandstonestairs */ + "d: 24: 0\n" /* sandstone */ + "e: 64: 5\n" /* wooddoorblock */ + "f:102: 0\n" /* glasspane */ + "g: 64:12\n" /* wooddoorblock */ + "h:128: 7\n" /* sandstonestairs */ + "i: 50: 3\n" /* torch */ + "j: 50: 4\n" /* torch */ + "k:128: 6\n" /* sandstonestairs */ + "l:128: 3\n" /* sandstonestairs */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "....abc...." + /* 1 */ ".ddddddddd." + /* 2 */ ".ddddddddd." + /* 3 */ ".ddddddddd." + /* 4 */ ".ddddddddd." + /* 5 */ ".ddddddddd." + /* 6 */ ".ddddddddd." + /* 7 */ ".ddddddddd." + /* 8 */ "..........." + + // Level 1 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".ddddedddd." + /* 2 */ ".d.......d." + /* 3 */ ".d.......d." + /* 4 */ ".d.......d." + /* 5 */ ".d.......d." + /* 6 */ ".d.......d." + /* 7 */ ".ddddddddd." + /* 8 */ "..........." + + // Level 2 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".dffdgdffd." + /* 2 */ ".f.......f." + /* 3 */ ".f.......f." + /* 4 */ ".d.......d." + /* 5 */ ".f.......f." + /* 6 */ ".f.......f." + /* 7 */ ".dfffdfffd." + /* 8 */ "..........." + + // Level 3 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "bbbbbbbbbbb" + /* 1 */ "hdddddddddh" + /* 2 */ ".d..i.i..d." + /* 3 */ ".d.......d." + /* 4 */ ".d.......d." + /* 5 */ ".d.......d." + /* 6 */ ".d...j...d." + /* 7 */ "kdddddddddk" + /* 8 */ "lllllllllll" + + // Level 4 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "bbbbbbbbbbb" + /* 2 */ "hdddddddddh" + /* 3 */ ".d.......d." + /* 4 */ ".d.......d." + /* 5 */ ".d.......d." + /* 6 */ "kdddddddddk" + /* 7 */ "lllllllllll" + /* 8 */ "..........." + + // Level 5 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "bbbbbbbbbbb" + /* 3 */ "hdddddddddh" + /* 4 */ ".d.......d." + /* 5 */ "kdddddddddk" + /* 6 */ "lllllllllll" + /* 7 */ "..........." + /* 8 */ "..........." + + // Level 6 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "..........." + /* 3 */ "bbbbbbbbbbb" + /* 4 */ "ddddddddddd" + /* 5 */ "lllllllllll" + /* 6 */ "..........." + /* 7 */ "..........." + /* 8 */ "...........", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // House11x9 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // House13x7: + // The data has been exported from the gallery Desert, area index 15, ID 125, created by Aloe_vera + { + // Size: + 13, 6, 7, // SizeX = 13, SizeY = 6, SizeZ = 7 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 12, 5, 6, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a:128: 0\n" /* sandstonestairs */ + "b:128: 2\n" /* sandstonestairs */ + "c:128: 1\n" /* sandstonestairs */ + "d: 24: 0\n" /* sandstone */ + "e: 64: 5\n" /* wooddoorblock */ + "f:102: 0\n" /* glasspane */ + "g: 64:12\n" /* wooddoorblock */ + "h:128: 7\n" /* sandstonestairs */ + "i: 50: 3\n" /* torch */ + "j: 50: 4\n" /* torch */ + "k:128: 6\n" /* sandstonestairs */ + "l:128: 3\n" /* sandstonestairs */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ ".....abc....." + /* 1 */ ".ddddddddddd." + /* 2 */ ".ddddddddddd." + /* 3 */ ".ddddddddddd." + /* 4 */ ".ddddddddddd." + /* 5 */ ".ddddddddddd." + /* 6 */ "............." + + // Level 1 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "............." + /* 1 */ ".dddddeddddd." + /* 2 */ ".d.........d." + /* 3 */ ".d.........d." + /* 4 */ ".d.........d." + /* 5 */ ".ddddddddddd." + /* 6 */ "............." + + // Level 2 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "............." + /* 1 */ ".dfffdgdfffd." + /* 2 */ ".f.........f." + /* 3 */ ".f.........f." + /* 4 */ ".f.........f." + /* 5 */ ".dffdfffdffd." + /* 6 */ "............." + + // Level 3 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "bbbbbbbbbbbbb" + /* 1 */ "hdddddddddddh" + /* 2 */ ".d...i.i...d." + /* 3 */ ".d.........d." + /* 4 */ ".d..j...j..d." + /* 5 */ "kdddddddddddk" + /* 6 */ "lllllllllllll" + + // Level 4 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "............." + /* 1 */ "bbbbbbbbbbbbb" + /* 2 */ "hdddddddddddh" + /* 3 */ ".d.........d." + /* 4 */ "kdddddddddddk" + /* 5 */ "lllllllllllll" + /* 6 */ "............." + + // Level 5 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "............." + /* 1 */ "............." + /* 2 */ "bbbbbbbbbbbbb" + /* 3 */ "ddddddddddddd" + /* 4 */ "lllllllllllll" + /* 5 */ "............." + /* 6 */ ".............", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // House13x7 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // House13x9: + // The data has been exported from the gallery Desert, area index 12, ID 116, created by xoft + { + // Size: + 13, 7, 9, // SizeX = 13, SizeY = 7, SizeZ = 9 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 12, 6, 8, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a:128: 0\n" /* sandstonestairs */ + "b:128: 2\n" /* sandstonestairs */ + "c:128: 1\n" /* sandstonestairs */ + "d: 24: 0\n" /* sandstone */ + "e: 64: 5\n" /* wooddoorblock */ + "f:102: 0\n" /* glasspane */ + "g: 64:12\n" /* wooddoorblock */ + "h:128: 7\n" /* sandstonestairs */ + "i: 50: 3\n" /* torch */ + "j: 50: 4\n" /* torch */ + "k:128: 6\n" /* sandstonestairs */ + "l:128: 3\n" /* sandstonestairs */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ ".....abc....." + /* 1 */ ".ddddddddddd." + /* 2 */ ".ddddddddddd." + /* 3 */ ".ddddddddddd." + /* 4 */ ".ddddddddddd." + /* 5 */ ".ddddddddddd." + /* 6 */ ".ddddddddddd." + /* 7 */ ".ddddddddddd." + /* 8 */ "............." + + // Level 1 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "............." + /* 1 */ ".dddddeddddd." + /* 2 */ ".d.........d." + /* 3 */ ".d.........d." + /* 4 */ ".d.........d." + /* 5 */ ".d.........d." + /* 6 */ ".d.........d." + /* 7 */ ".ddddddddddd." + /* 8 */ "............." + + // Level 2 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "............." + /* 1 */ ".dfffdgdfffd." + /* 2 */ ".f.........f." + /* 3 */ ".f.........f." + /* 4 */ ".d.........d." + /* 5 */ ".f.........f." + /* 6 */ ".f.........f." + /* 7 */ ".dffdffdfffd." + /* 8 */ "............." + + // Level 3 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "bbbbbbbbbbbbb" + /* 1 */ "hdddddddddddh" + /* 2 */ ".d...i.i...d." + /* 3 */ ".d.........d." + /* 4 */ ".d.........d." + /* 5 */ ".d.........d." + /* 6 */ ".d..j..j...d." + /* 7 */ "kdddddddddddk" + /* 8 */ "lllllllllllll" + + // Level 4 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "............." + /* 1 */ "bbbbbbbbbbbbb" + /* 2 */ "hdddddddddddh" + /* 3 */ ".d.........d." + /* 4 */ ".d.........d." + /* 5 */ ".d.........d." + /* 6 */ "kdddddddddddk" + /* 7 */ "lllllllllllll" + /* 8 */ "............." + + // Level 5 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "............." + /* 1 */ "............." + /* 2 */ "bbbbbbbbbbbbb" + /* 3 */ "hdddddddddddh" + /* 4 */ ".d.........d." + /* 5 */ "kdddddddddddk" + /* 6 */ "lllllllllllll" + /* 7 */ "............." + /* 8 */ "............." + + // Level 6 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "............." + /* 1 */ "............." + /* 2 */ "............." + /* 3 */ "bbbbbbbbbbbbb" + /* 4 */ "ddddddddddddd" + /* 5 */ "lllllllllllll" + /* 6 */ "............." + /* 7 */ "............." + /* 8 */ ".............", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // House13x9 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // House15x9: + // The data has been exported from the gallery Desert, area index 13, ID 118, created by xoft + { + // Size: + 15, 7, 9, // SizeX = 15, SizeY = 7, SizeZ = 9 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 14, 6, 8, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a:128: 0\n" /* sandstonestairs */ + "b:128: 2\n" /* sandstonestairs */ + "c:128: 1\n" /* sandstonestairs */ + "d: 24: 0\n" /* sandstone */ + "e: 64: 5\n" /* wooddoorblock */ + "f:102: 0\n" /* glasspane */ + "g: 64:12\n" /* wooddoorblock */ + "h:128: 7\n" /* sandstonestairs */ + "i: 50: 3\n" /* torch */ + "j: 50: 4\n" /* torch */ + "k:128: 6\n" /* sandstonestairs */ + "l:128: 3\n" /* sandstonestairs */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ ".....abc......." + /* 1 */ ".ddddddddddddd." + /* 2 */ ".ddddddddddddd." + /* 3 */ ".ddddddddddddd." + /* 4 */ ".ddddddddddddd." + /* 5 */ ".ddddddddddddd." + /* 6 */ ".ddddddddddddd." + /* 7 */ ".ddddddddddddd." + /* 8 */ "..............." + + // Level 1 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ ".dddddeddddddd." + /* 2 */ ".d...........d." + /* 3 */ ".d...........d." + /* 4 */ ".d...........d." + /* 5 */ ".d...........d." + /* 6 */ ".d...........d." + /* 7 */ ".ddddddddddddd." + /* 8 */ "..............." + + // Level 2 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ ".dfffdgdffdffd." + /* 2 */ ".f...........f." + /* 3 */ ".f...........f." + /* 4 */ ".d...........d." + /* 5 */ ".f...........f." + /* 6 */ ".f...........f." + /* 7 */ ".dffdffdffdffd." + /* 8 */ "..............." + + // Level 3 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "bbbbbbbbbbbbbbb" + /* 1 */ "hdddddddddddddh" + /* 2 */ ".d...i.i..i..d." + /* 3 */ ".d...........d." + /* 4 */ ".d...........d." + /* 5 */ ".d...........d." + /* 6 */ ".d..j..j..j..d." + /* 7 */ "kdddddddddddddk" + /* 8 */ "lllllllllllllll" + + // Level 4 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ "bbbbbbbbbbbbbbb" + /* 2 */ "hdddddddddddddh" + /* 3 */ ".d...........d." + /* 4 */ ".d...........d." + /* 5 */ ".d...........d." + /* 6 */ "kdddddddddddddk" + /* 7 */ "lllllllllllllll" + /* 8 */ "..............." + + // Level 5 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ "..............." + /* 2 */ "bbbbbbbbbbbbbbb" + /* 3 */ "hdddddddddddddh" + /* 4 */ ".d...........d." + /* 5 */ "kdddddddddddddk" + /* 6 */ "lllllllllllllll" + /* 7 */ "..............." + /* 8 */ "..............." + + // Level 6 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ "..............." + /* 2 */ "..............." + /* 3 */ "bbbbbbbbbbbbbbb" + /* 4 */ "ddddddddddddddd" + /* 5 */ "lllllllllllllll" + /* 6 */ "..............." + /* 7 */ "..............." + /* 8 */ "...............", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // House15x9 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // House16x9: + // The data has been exported from the gallery Desert, area index 16, ID 126, created by Aloe_vera + { + // Size: + 16, 7, 9, // SizeX = 16, SizeY = 7, SizeZ = 9 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 15, 6, 8, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a:128: 0\n" /* sandstonestairs */ + "b:128: 2\n" /* sandstonestairs */ + "c:128: 1\n" /* sandstonestairs */ + "d: 24: 0\n" /* sandstone */ + "e: 64: 5\n" /* wooddoorblock */ + "f:102: 0\n" /* glasspane */ + "g: 64:12\n" /* wooddoorblock */ + "h:128: 7\n" /* sandstonestairs */ + "i: 50: 3\n" /* torch */ + "j: 50: 4\n" /* torch */ + "k:128: 6\n" /* sandstonestairs */ + "l:128: 3\n" /* sandstonestairs */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "........abc....." + /* 1 */ ".dddddddddddddd." + /* 2 */ ".dddddddddddddd." + /* 3 */ ".dddddddddddddd." + /* 4 */ ".dddddddddddddd." + /* 5 */ ".dddddddddddddd." + /* 6 */ ".dddddddddddddd." + /* 7 */ ".dddddddddddddd." + /* 8 */ "................" + + // Level 1 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "................" + /* 1 */ ".ddddddddeddddd." + /* 2 */ ".d............d." + /* 3 */ ".d............d." + /* 4 */ ".d............d." + /* 5 */ ".d............d." + /* 6 */ ".d............d." + /* 7 */ ".dddddddddddddd." + /* 8 */ "................" + + // Level 2 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "................" + /* 1 */ ".dffdfffdgdfffd." + /* 2 */ ".f............f." + /* 3 */ ".f............f." + /* 4 */ ".d............d." + /* 5 */ ".f............f." + /* 6 */ ".f............f." + /* 7 */ ".dffdffdfffdffd." + /* 8 */ "................" + + // Level 3 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "bbbbbbbbbbbbbbbb" + /* 1 */ "hddddddddddddddh" + /* 2 */ ".d..i...i.i...d." + /* 3 */ ".d............d." + /* 4 */ ".d............d." + /* 5 */ ".d............d." + /* 6 */ ".d..j..j...j..d." + /* 7 */ "kddddddddddddddk" + /* 8 */ "llllllllllllllll" + + // Level 4 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "................" + /* 1 */ "bbbbbbbbbbbbbbbb" + /* 2 */ "hddddddddddddddh" + /* 3 */ ".d............d." + /* 4 */ ".d............d." + /* 5 */ ".d............d." + /* 6 */ "kddddddddddddddk" + /* 7 */ "llllllllllllllll" + /* 8 */ "................" + + // Level 5 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "................" + /* 1 */ "................" + /* 2 */ "bbbbbbbbbbbbbbbb" + /* 3 */ "hddddddddddddddh" + /* 4 */ ".d............d." + /* 5 */ "kddddddddddddddk" + /* 6 */ "llllllllllllllll" + /* 7 */ "................" + /* 8 */ "................" + + // Level 6 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "................" + /* 1 */ "................" + /* 2 */ "................" + /* 3 */ "bbbbbbbbbbbbbbbb" + /* 4 */ "dddddddddddddddd" + /* 5 */ "llllllllllllllll" + /* 6 */ "................" + /* 7 */ "................" + /* 8 */ "................", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // House16x9 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // House7x7: + // The data has been exported from the gallery Desert, area index 8, ID 112, created by Aloe_vera + { + // Size: + 7, 6, 7, // SizeX = 7, SizeY = 6, SizeZ = 7 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 6, 5, 6, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a:128: 0\n" /* sandstonestairs */ + "b:128: 2\n" /* sandstonestairs */ + "c:128: 1\n" /* sandstonestairs */ + "d: 24: 0\n" /* sandstone */ + "e: 64: 5\n" /* wooddoorblock */ + "f:102: 0\n" /* glasspane */ + "g: 64:12\n" /* wooddoorblock */ + "h:128: 7\n" /* sandstonestairs */ + "i: 50: 3\n" /* torch */ + "j:128: 6\n" /* sandstonestairs */ + "k:128: 3\n" /* sandstonestairs */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 0123456 */ + /* 0 */ "...abc." + /* 1 */ ".ddddd." + /* 2 */ ".ddddd." + /* 3 */ ".ddddd." + /* 4 */ ".ddddd." + /* 5 */ ".ddddd." + /* 6 */ "......." + + // Level 1 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".ddded." + /* 2 */ ".d...d." + /* 3 */ ".d...d." + /* 4 */ ".d...d." + /* 5 */ ".ddddd." + /* 6 */ "......." + + // Level 2 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".dfdgd." + /* 2 */ ".f...f." + /* 3 */ ".f...f." + /* 4 */ ".f...f." + /* 5 */ ".dfffd." + /* 6 */ "......." + + // Level 3 + /* z\x* 0123456 */ + /* 0 */ "bbbbbbb" + /* 1 */ "hdddddh" + /* 2 */ ".d.i.d." + /* 3 */ ".d...d." + /* 4 */ ".d...d." + /* 5 */ "jdddddj" + /* 6 */ "kkkkkkk" + + // Level 4 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ "bbbbbbb" + /* 2 */ "hdddddh" + /* 3 */ ".d...d." + /* 4 */ "jdddddj" + /* 5 */ "kkkkkkk" + /* 6 */ "......." + + // Level 5 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ "......." + /* 2 */ "bbbbbbb" + /* 3 */ "ddddddd" + /* 4 */ "kkkkkkk" + /* 5 */ "......." + /* 6 */ ".......", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // House7x7 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // House9x7: + // The data has been exported from the gallery Desert, area index 9, ID 113, created by xoft + { + // Size: + 9, 6, 7, // SizeX = 9, SizeY = 6, SizeZ = 7 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 8, 5, 6, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a:128: 0\n" /* sandstonestairs */ + "b:128: 2\n" /* sandstonestairs */ + "c:128: 1\n" /* sandstonestairs */ + "d: 24: 0\n" /* sandstone */ + "e: 64: 5\n" /* wooddoorblock */ + "f:102: 0\n" /* glasspane */ + "g: 64:12\n" /* wooddoorblock */ + "h:128: 7\n" /* sandstonestairs */ + "i: 50: 3\n" /* torch */ + "j: 50: 4\n" /* torch */ + "k:128: 6\n" /* sandstonestairs */ + "l:128: 3\n" /* sandstonestairs */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 012345678 */ + /* 0 */ "...abc..." + /* 1 */ ".ddddddd." + /* 2 */ ".ddddddd." + /* 3 */ ".ddddddd." + /* 4 */ ".ddddddd." + /* 5 */ ".ddddddd." + /* 6 */ "........." + + // Level 1 + /* z\x* 012345678 */ + /* 0 */ "........." + /* 1 */ ".dddeddd." + /* 2 */ ".d.....d." + /* 3 */ ".d.....d." + /* 4 */ ".d.....d." + /* 5 */ ".ddddddd." + /* 6 */ "........." + + // Level 2 + /* z\x* 012345678 */ + /* 0 */ "........." + /* 1 */ ".dfdgdfd." + /* 2 */ ".f.....f." + /* 3 */ ".f.....f." + /* 4 */ ".f.....f." + /* 5 */ ".dffdffd." + /* 6 */ "........." + + // Level 3 + /* z\x* 012345678 */ + /* 0 */ "bbbbbbbbb" + /* 1 */ "hdddddddh" + /* 2 */ ".d.i.i.d." + /* 3 */ ".d.....d." + /* 4 */ ".d..j..d." + /* 5 */ "kdddddddk" + /* 6 */ "lllllllll" + + // Level 4 + /* z\x* 012345678 */ + /* 0 */ "........." + /* 1 */ "bbbbbbbbb" + /* 2 */ "hdddddddh" + /* 3 */ ".d.....d." + /* 4 */ "kdddddddk" + /* 5 */ "lllllllll" + /* 6 */ "........." + + // Level 5 + /* z\x* 012345678 */ + /* 0 */ "........." + /* 1 */ "........." + /* 2 */ "bbbbbbbbb" + /* 3 */ "ddddddddd" + /* 4 */ "lllllllll" + /* 5 */ "........." + /* 6 */ ".........", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // House9x7 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // House9x9: + // The data has been exported from the gallery Desert, area index 10, ID 114, created by xoft + { + // Size: + 9, 7, 9, // SizeX = 9, SizeY = 7, SizeZ = 9 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 8, 6, 8, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a:128: 0\n" /* sandstonestairs */ + "b:128: 2\n" /* sandstonestairs */ + "c:128: 1\n" /* sandstonestairs */ + "d: 24: 0\n" /* sandstone */ + "e: 64: 1\n" /* wooddoorblock */ + "f:102: 0\n" /* glasspane */ + "g: 64: 8\n" /* wooddoorblock */ + "h:128: 7\n" /* sandstonestairs */ + "i: 50: 3\n" /* torch */ + "j: 50: 4\n" /* torch */ + "k:128: 6\n" /* sandstonestairs */ + "l:128: 3\n" /* sandstonestairs */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 012345678 */ + /* 0 */ "...abc..." + /* 1 */ ".ddddddd." + /* 2 */ ".ddddddd." + /* 3 */ ".ddddddd." + /* 4 */ ".ddddddd." + /* 5 */ ".ddddddd." + /* 6 */ ".ddddddd." + /* 7 */ ".ddddddd." + /* 8 */ "........." + + // Level 1 + /* z\x* 012345678 */ + /* 0 */ "........." + /* 1 */ ".dddeddd." + /* 2 */ ".d.....d." + /* 3 */ ".d.....d." + /* 4 */ ".d.....d." + /* 5 */ ".d.....d." + /* 6 */ ".d.....d." + /* 7 */ ".ddddddd." + /* 8 */ "........." + + // Level 2 + /* z\x* 012345678 */ + /* 0 */ "........." + /* 1 */ ".dfdgdfd." + /* 2 */ ".f.....f." + /* 3 */ ".f.....f." + /* 4 */ ".d.....d." + /* 5 */ ".f.....f." + /* 6 */ ".f.....f." + /* 7 */ ".dffdffd." + /* 8 */ "........." + + // Level 3 + /* z\x* 012345678 */ + /* 0 */ "bbbbbbbbb" + /* 1 */ "hdddddddh" + /* 2 */ ".d.i.i.d." + /* 3 */ ".d.....d." + /* 4 */ ".d.....d." + /* 5 */ ".d.....d." + /* 6 */ ".d..j..d." + /* 7 */ "kdddddddk" + /* 8 */ "lllllllll" + + // Level 4 + /* z\x* 012345678 */ + /* 0 */ "........." + /* 1 */ "bbbbbbbbb" + /* 2 */ "hdddddddh" + /* 3 */ ".d.....d." + /* 4 */ ".d.....d." + /* 5 */ ".d.....d." + /* 6 */ "kdddddddk" + /* 7 */ "lllllllll" + /* 8 */ "........." + + // Level 5 + /* z\x* 012345678 */ + /* 0 */ "........." + /* 1 */ "........." + /* 2 */ "bbbbbbbbb" + /* 3 */ "hdddddddh" + /* 4 */ ".d.....d." + /* 5 */ "kdddddddk" + /* 6 */ "lllllllll" + /* 7 */ "........." + /* 8 */ "........." + + // Level 6 + /* z\x* 012345678 */ + /* 0 */ "........." + /* 1 */ "........." + /* 2 */ "........." + /* 3 */ "bbbbbbbbb" + /* 4 */ "ddddddddd" + /* 5 */ "lllllllll" + /* 6 */ "........." + /* 7 */ "........." + /* 8 */ ".........", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // House9x9 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // HouseL14x12: + // The data has been exported from the gallery Desert, area index 7, ID 82, created by Aloe_vera + { + // Size: + 14, 6, 12, // SizeX = 14, SizeY = 6, SizeZ = 12 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 13, 5, 11, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a:128: 0\n" /* sandstonestairs */ + "b:128: 2\n" /* sandstonestairs */ + "c:128: 1\n" /* sandstonestairs */ + "d: 24: 0\n" /* sandstone */ + "e:128: 3\n" /* sandstonestairs */ + "f: 64: 5\n" /* wooddoorblock */ + "g:102: 0\n" /* glasspane */ + "h: 64:12\n" /* wooddoorblock */ + "i:128: 7\n" /* sandstonestairs */ + "j: 50: 3\n" /* torch */ + "k: 50: 4\n" /* torch */ + "l:128: 6\n" /* sandstonestairs */ + "m: 19: 0\n" /* sponge */ + "n:128: 5\n" /* sandstonestairs */ + "o:128: 4\n" /* sandstonestairs */ + "p: 50: 1\n" /* torch */, + + // Block data: + // Level 0 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ ".......abc...." + /* 1 */ ".dddddddddddd." + /* 2 */ ".dddddddddddd." + /* 3 */ ".dddddddddddd." + /* 4 */ ".dddddddddddd." + /* 5 */ ".dddddddddddd." + /* 6 */ "....aec.ddddd." + /* 7 */ "mmmmmmm.ddddd." + /* 8 */ "mmmmmmm.ddddd." + /* 9 */ "mmmmmmm.ddddd." + /* 10 */ "mmmmmmm.ddddd." + /* 11 */ "mmmmmmm......." + + // Level 1 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ ".............." + /* 1 */ ".dddddddfdddd." + /* 2 */ ".d..........d." + /* 3 */ ".d..........d." + /* 4 */ ".d..........d." + /* 5 */ ".ddddfddd...d." + /* 6 */ "........d...d." + /* 7 */ "mmmmmmm.d...d." + /* 8 */ "mmmmmmm.d...d." + /* 9 */ "mmmmmmm.d...d." + /* 10 */ "mmmmmmm.ddddd." + /* 11 */ "mmmmmmm......." + + // Level 2 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ ".............." + /* 1 */ ".dggdggdhdggd." + /* 2 */ ".g..........g." + /* 3 */ ".g..........g." + /* 4 */ ".g..........d." + /* 5 */ ".dggdhdgg...g." + /* 6 */ "........g...g." + /* 7 */ "mmmmmmm.d...d." + /* 8 */ "mmmmmmm.g...g." + /* 9 */ "mmmmmmm.g...g." + /* 10 */ "mmmmmmm.dgggd." + /* 11 */ "mmmmmmm......." + + // Level 3 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "bbbbbbbbbbbbbb" + /* 1 */ "iddddddddddddc" + /* 2 */ ".d.....j.j..dc" + /* 3 */ ".d..........dc" + /* 4 */ ".d..k.k.....dc" + /* 5 */ "ldddddddd...dc" + /* 6 */ "eeeeeeead...dc" + /* 7 */ "mmmmmmmad...dc" + /* 8 */ "mmmmmmmad...dc" + /* 9 */ "mmmmmmmad...dc" + /* 10 */ "mmmmmmmadddddc" + /* 11 */ "mmmmmmman...oc" + + // Level 4 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ ".............." + /* 1 */ "bbbbbbbbbbbbb." + /* 2 */ "idddddddddddc." + /* 3 */ ".dp........dc." + /* 4 */ "lddddddddd.dc." + /* 5 */ "eeeeeeeead.dc." + /* 6 */ "........ad.dc." + /* 7 */ "mmmmmmm.ad.dc." + /* 8 */ "mmmmmmm.ad.dc." + /* 9 */ "mmmmmmm.adkdc." + /* 10 */ "mmmmmmm.adddc." + /* 11 */ "mmmmmmm.an.oc." + + // Level 5 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ ".............." + /* 1 */ ".............." + /* 2 */ "bbbbbbbbbbbb.." + /* 3 */ "dddddddddddc.." + /* 4 */ "eeeeeeeeeadc.." + /* 5 */ ".........adc.." + /* 6 */ ".........adc.." + /* 7 */ "mmmmmmm..adc.." + /* 8 */ "mmmmmmm..adc.." + /* 9 */ "mmmmmmm..adc.." + /* 10 */ "mmmmmmm..adc.." + /* 11 */ "mmmmmmm..adc..", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // HouseL14x12 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // HouseL14x12: + // The data has been exported from the gallery Desert, area index 14, ID 124, created by Aloe_vera + { + // Size: + 14, 7, 12, // SizeX = 14, SizeY = 7, SizeZ = 12 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 13, 6, 11, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a:128: 0\n" /* sandstonestairs */ + "b:128: 2\n" /* sandstonestairs */ + "c:128: 1\n" /* sandstonestairs */ + "d: 24: 0\n" /* sandstone */ + "e:128: 3\n" /* sandstonestairs */ + "f: 64: 5\n" /* wooddoorblock */ + "g: 64: 7\n" /* wooddoorblock */ + "h:102: 0\n" /* glasspane */ + "i: 64:12\n" /* wooddoorblock */ + "j:128: 7\n" /* sandstonestairs */ + "k: 50: 3\n" /* torch */ + "l: 50: 2\n" /* torch */ + "m: 19: 0\n" /* sponge */ + "n: 50: 4\n" /* torch */ + "o:128: 6\n" /* sandstonestairs */ + "p: 50: 1\n" /* torch */ + "q:128: 5\n" /* sandstonestairs */ + "r:128: 4\n" /* sandstonestairs */, + + // Block data: + // Level 0 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "....abc......." + /* 1 */ ".dddddddddddd." + /* 2 */ ".dddddddddddd." + /* 3 */ ".dddddddddddd." + /* 4 */ ".dddddddddddd." + /* 5 */ ".dddddddddddd." + /* 6 */ ".dddddddddddd." + /* 7 */ ".dddddddddddd." + /* 8 */ "....aeddddddd." + /* 9 */ "mmmmm.ddddddd." + /* 10 */ "mmmmm.ddddddd." + /* 11 */ "mmmmm........." + + // Level 1 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ ".............." + /* 1 */ ".ddddfddddddd." + /* 2 */ ".d..........d." + /* 3 */ ".d..........d." + /* 4 */ ".d..........d." + /* 5 */ ".d..........d." + /* 6 */ ".d..........d." + /* 7 */ ".ddddgd.....d." + /* 8 */ "......d.....d." + /* 9 */ "mmmmm.d.....d." + /* 10 */ "mmmmm.ddddddd." + /* 11 */ "mmmmm........." + + // Level 2 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ ".............." + /* 1 */ ".dhhdidhhdhhd." + /* 2 */ ".h..........h." + /* 3 */ ".h..........h." + /* 4 */ ".d..........d." + /* 5 */ ".h..........h." + /* 6 */ ".h..........h." + /* 7 */ ".dhhdid.....d." + /* 8 */ "......h.....h." + /* 9 */ "mmmmm.h.....h." + /* 10 */ "mmmmm.dhhdhhd." + /* 11 */ "mmmmm........." + + // Level 3 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "bbbbbbbbbbbbbb" + /* 1 */ "jddddddddddddc" + /* 2 */ ".d..k.k.....dc" + /* 3 */ ".d..........dc" + /* 4 */ ".d.........ldc" + /* 5 */ ".d..........dc" + /* 6 */ ".d..n.n.....dc" + /* 7 */ "oddddddp...ldc" + /* 8 */ "eeeeead.....dc" + /* 9 */ "mmmmmad.....dc" + /* 10 */ "mmmmmadddddddc" + /* 11 */ "mmmmmaq.....rc" + + // Level 4 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ ".............." + /* 1 */ "bbbbbbbbbbbbc." + /* 2 */ "jdddddddddddc." + /* 3 */ ".d.........dc." + /* 4 */ ".d.........dc." + /* 5 */ ".d.........dc." + /* 6 */ "oddddddd...dc." + /* 7 */ "eeeeeead...dc." + /* 8 */ "......ad...dc." + /* 9 */ "mmmmm.ad...dc." + /* 10 */ "mmmmm.adddddc." + /* 11 */ "mmmmm.aq...rc." + + // Level 5 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ ".............." + /* 1 */ ".............." + /* 2 */ "bbbbbbbbbbbb.." + /* 3 */ "jddddddddddc.." + /* 4 */ ".d........dc.." + /* 5 */ "odddddddd.dc.." + /* 6 */ "eeeeeeeed.dc.." + /* 7 */ ".......ad.dc.." + /* 8 */ ".......ad.dc.." + /* 9 */ "mmmmm..ad.dc.." + /* 10 */ "mmmmm..adddc.." + /* 11 */ "mmmmm..aq.rc.." + + // Level 6 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ ".............." + /* 1 */ ".............." + /* 2 */ ".............." + /* 3 */ "bbbbbbbbbbb..." + /* 4 */ "ddddddddddc..." + /* 5 */ "eeeeeeeeadc..." + /* 6 */ "........adc..." + /* 7 */ "........adc..." + /* 8 */ "........adc..." + /* 9 */ "mmmmm...adc..." + /* 10 */ "mmmmm...adc..." + /* 11 */ "mmmmm...adc...", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // HouseL14x12 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // SingleField: + // The data has been exported from the gallery Desert, area index 17, ID 127, created by Aloe_vera + { + // Size: + 10, 2, 7, // SizeX = 10, SizeY = 2, SizeZ = 7 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 9, 1, 6, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 24: 0\n" /* sandstone */ + "b: 60: 7\n" /* tilleddirt */ + "c: 8: 0\n" /* water */ + "d: 50: 5\n" /* torch */ + "e: 59: 7\n" /* crops */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ "aaaaaaaaaa" + /* 1 */ "abbbbbbbba" + /* 2 */ "abbbbbbbba" + /* 3 */ "acccccccca" + /* 4 */ "abbbbbbbba" + /* 5 */ "abbbbbbbba" + /* 6 */ "aaaaaaaaaa" + + // Level 1 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ "d........d" + /* 1 */ ".eeeeeeee." + /* 2 */ ".eeeeeeee." + /* 3 */ ".........." + /* 4 */ ".eeeeeeee." + /* 5 */ ".eeeeeeee." + /* 6 */ "d........d", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // SingleField + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // SmallHut: + // The data has been exported from the gallery Desert, area index 4, ID 68, created by tonibm1999 + { + // Size: + 5, 5, 6, // SizeX = 5, SizeY = 5, SizeZ = 6 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 4, 4, 5, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 24: 0\n" /* sandstone */ + "b:128: 3\n" /* sandstonestairs */ + "c: 24: 2\n" /* sandstone */ + "d: 50: 5\n" /* torch */ + "e: 26:10\n" /* bedblock */ + "f: 26: 2\n" /* bedblock */ + "g: 64: 3\n" /* wooddoorblock */ + "h: 64: 8\n" /* wooddoorblock */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 01234 */ + /* 0 */ "aaaaa" + /* 1 */ "aaaaa" + /* 2 */ "aaaaa" + /* 3 */ "aaaaa" + /* 4 */ "aaaaa" + /* 5 */ "..b.." + + // Level 1 + /* z\x* 01234 */ + /* 0 */ "accca" + /* 1 */ "cdedc" + /* 2 */ "c.f.c" + /* 3 */ "c...c" + /* 4 */ "acgca" + /* 5 */ "....." + + // Level 2 + /* z\x* 01234 */ + /* 0 */ "ac.ca" + /* 1 */ "c...c" + /* 2 */ "....." + /* 3 */ "c...c" + /* 4 */ "achca" + /* 5 */ "....." + + // Level 3 + /* z\x* 01234 */ + /* 0 */ "accca" + /* 1 */ "c...c" + /* 2 */ "c...c" + /* 3 */ "c...c" + /* 4 */ "accca" + /* 5 */ "....." + + // Level 4 + /* z\x* 01234 */ + /* 0 */ ".aaa." + /* 1 */ "aaaaa" + /* 2 */ "aaaaa" + /* 3 */ "aaaaa" + /* 4 */ ".aaa." + /* 5 */ ".....", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // SmallHut +}; // g_SandVillagePrefabs + + + + + + +const cPrefab::sDef g_SandVillageStartingPrefabs[] = +{ + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Well: + // The data has been exported from the gallery Desert, area index 0, ID 1, created by Aloe_vera + { + // Size: + 4, 13, 4, // SizeX = 4, SizeY = 13, SizeZ = 4 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 3, 12, 3, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 1: 0\n" /* stone */ + "b: 24: 0\n" /* sandstone */ + "c: 8: 0\n" /* water */ + "d: 85: 0\n" /* fence */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 0123 */ + /* 0 */ "aaaa" + /* 1 */ "aaaa" + /* 2 */ "aaaa" + /* 3 */ "aaaa" + + // Level 1 + /* z\x* 0123 */ + /* 0 */ "bbbb" + /* 1 */ "bccb" + /* 2 */ "bccb" + /* 3 */ "bbbb" + + // Level 2 + /* z\x* 0123 */ + /* 0 */ "bbbb" + /* 1 */ "bccb" + /* 2 */ "bccb" + /* 3 */ "bbbb" + + // Level 3 + /* z\x* 0123 */ + /* 0 */ "bbbb" + /* 1 */ "bccb" + /* 2 */ "bccb" + /* 3 */ "bbbb" + + // Level 4 + /* z\x* 0123 */ + /* 0 */ "bbbb" + /* 1 */ "bccb" + /* 2 */ "bccb" + /* 3 */ "bbbb" + + // Level 5 + /* z\x* 0123 */ + /* 0 */ "bbbb" + /* 1 */ "bccb" + /* 2 */ "bccb" + /* 3 */ "bbbb" + + // Level 6 + /* z\x* 0123 */ + /* 0 */ "bbbb" + /* 1 */ "bccb" + /* 2 */ "bccb" + /* 3 */ "bbbb" + + // Level 7 + /* z\x* 0123 */ + /* 0 */ "bbbb" + /* 1 */ "bccb" + /* 2 */ "bccb" + /* 3 */ "bbbb" + + // Level 8 + /* z\x* 0123 */ + /* 0 */ "bbbb" + /* 1 */ "b..b" + /* 2 */ "b..b" + /* 3 */ "bbbb" + + // Level 9 + /* z\x* 0123 */ + /* 0 */ "d..d" + /* 1 */ "...." + /* 2 */ "...." + /* 3 */ "d..d" + + // Level 10 + /* z\x* 0123 */ + /* 0 */ "d..d" + /* 1 */ "...." + /* 2 */ "...." + /* 3 */ "d..d" + + // Level 11 + /* z\x* 0123 */ + /* 0 */ "d..d" + /* 1 */ "...." + /* 2 */ "...." + /* 3 */ "d..d" + + // Level 12 + /* z\x* 0123 */ + /* 0 */ "bbbb" + /* 1 */ "bbbb" + /* 2 */ "bbbb" + /* 3 */ "bbbb", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // Well +}; + + + + + +// The prefab counts: + +const size_t g_SandVillagePrefabsCount = ARRAYCOUNT(g_SandVillagePrefabs); + +const size_t g_SandVillageStartingPrefabsCount = ARRAYCOUNT(g_SandVillageStartingPrefabs); + diff --git a/src/Generating/Prefabs/SandVillagePrefabs.h b/src/Generating/Prefabs/SandVillagePrefabs.h new file mode 100644 index 000000000..7b00db56f --- /dev/null +++ b/src/Generating/Prefabs/SandVillagePrefabs.h @@ -0,0 +1,15 @@ + +// SandVillagePrefabs.h + +// Declares the prefabs in the group SandVillage + +#include "../Prefab.h" + + + + + +extern const cPrefab::sDef g_SandVillagePrefabs[]; +extern const cPrefab::sDef g_SandVillageStartingPrefabs[]; +extern const size_t g_SandVillagePrefabsCount; +extern const size_t g_SandVillageStartingPrefabsCount; diff --git a/src/Generating/VillageGen.cpp b/src/Generating/VillageGen.cpp new file mode 100644 index 000000000..fb6191df2 --- /dev/null +++ b/src/Generating/VillageGen.cpp @@ -0,0 +1,116 @@ + +// VillageGen.cpp + +// Implements the cVillageGen class representing the village generator + +#include "Globals.h" +#include "VillageGen.h" +#include "Prefabs/PlainsVillagePrefabs.h" +#include "Prefabs/SandVillagePrefabs.h" + + + + + +class cVillageGen::cVillage : + public cGridStructGen::cStructure +{ + typedef cGridStructGen::cStructure super; + +public: + cVillage(int a_Seed, int a_OriginX, int a_OriginZ, cPrefabPiecePool & a_Prefabs) : + super(a_OriginX, a_OriginZ), + m_Seed(a_Seed), + m_Prefabs(a_Prefabs) + { + } + +protected: + /** Seed for the random functions */ + int m_Seed; + + /** Prefabs to use for buildings */ + cPrefabPiecePool & m_Prefabs; + + // cGrdStructGen::cStructure overrides: + virtual void DrawIntoChunk(cChunkDesc & a_Chunk) override + { + // TODO + } +} ; + + + + + +/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// cVillageGen: + +cPrefabPiecePool cVillageGen::m_SandVillage (g_SandVillagePrefabs, g_SandVillagePrefabsCount, g_SandVillageStartingPrefabs, g_SandVillageStartingPrefabsCount); +cPrefabPiecePool cVillageGen::m_PlainsVillage(g_PlainsVillagePrefabs, g_PlainsVillagePrefabsCount, g_PlainsVillageStartingPrefabs, g_PlainsVillageStartingPrefabsCount); + + + + + +cVillageGen::cVillageGen(int a_Seed, int a_GridSize, cBiomeGen & a_BiomeGen, cTerrainHeightGen & a_HeightGen) : + super(a_Seed, a_GridSize, a_GridSize, 128, 128, 100), + m_BiomeGen(a_BiomeGen), + m_HeightGen(a_HeightGen) +{ +} + + + + + +cGridStructGen::cStructurePtr cVillageGen::CreateStructure(int a_OriginX, int a_OriginZ) +{ + // Generate the biomes for the chunk surrounding the origin: + int ChunkX, ChunkZ; + cChunkDef::BlockToChunk(a_OriginX, a_OriginZ, ChunkX, ChunkZ); + cChunkDef::BiomeMap Biomes; + m_BiomeGen.GenBiomes(ChunkX, ChunkZ, Biomes); + + // Check if all the biomes are village-friendly: + // If just one is not, no village is created, because it's likely that an unfriendly biome is too close + cPrefabPiecePool * VillagePrefabs = NULL; + for (size_t i = 0; i < ARRAYCOUNT(Biomes); i++) + { + switch (Biomes[i]) + { + case biDesert: + case biDesertM: + { + // These biomes allow sand villages + VillagePrefabs = &m_SandVillage; + break; + } + case biPlains: + case biSavanna: + case biSavannaM: + case biSunflowerPlains: + { + // These biomes allow plains-style villages + VillagePrefabs = &m_PlainsVillage; + break; + } + default: + { + // Village-unfriendly biome, bail out with zero structure: + return cStructurePtr(); + } + } // switch (Biomes[i]) + } // for i - Biomes[] + + // Create a village based on the chosen prefabs: + if (VillagePrefabs == NULL) + { + return cStructurePtr(); + } + return cStructurePtr(new cVillage(m_Seed, a_OriginX, a_OriginZ, *VillagePrefabs)); +} + + + + diff --git a/src/Generating/VillageGen.h b/src/Generating/VillageGen.h new file mode 100644 index 000000000..d3cc8ef9c --- /dev/null +++ b/src/Generating/VillageGen.h @@ -0,0 +1,48 @@ + +// VillageGen.h + +// Declares the cVillageGen class representing the village generator + + + + + +#pragma once + +#include "GridStructGen.h" +#include "PrefabPiecePool.h" + + + + + +class cVillageGen : + public cGridStructGen +{ + typedef cGridStructGen super; +public: + cVillageGen(int a_Seed, int a_GridSize, cBiomeGen & a_BiomeGen, cTerrainHeightGen & a_HeightGen); + +protected: + class cVillage; // fwd: VillageGen.cpp + + /** The prefabs for the sand village. We're not exactly using the cPiecePool functionality, only the containment. */ + static cPrefabPiecePool m_SandVillage; + + /** The prefabs for the plains village. We're not exactly using the cPiecePool functionality, only the containment. */ + static cPrefabPiecePool m_PlainsVillage; + + /** The underlying biome generator that defines whether the village is created or not */ + cBiomeGen & m_BiomeGen; + + /** The underlying height generator, used to position the prefabs crossing chunk borders */ + cTerrainHeightGen & m_HeightGen; + + + // cGridStructGen overrides: + virtual cStructurePtr CreateStructure(int a_OriginX, int a_OriginZ) override; +} ; + + + + -- cgit v1.2.3 From 3f9e00a3f3486c2845115e495d66f438f90825f3 Mon Sep 17 00:00:00 2001 From: archshift Date: Sun, 11 May 2014 16:25:21 -0700 Subject: Fixed a few more switch warnings. --- src/Generating/StructGen.cpp | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/StructGen.cpp b/src/Generating/StructGen.cpp index db9d5578c..636364e17 100644 --- a/src/Generating/StructGen.cpp +++ b/src/Generating/StructGen.cpp @@ -596,24 +596,22 @@ void cStructGenDirectOverhangs::GenFinish(cChunkDesc & a_ChunkDesc) // Interpolate between FloorLo and FloorHi: for (int z = 0; z < 16; z++) for (int x = 0; x < 16; x++) { - switch (a_ChunkDesc.GetBiome(x, z)) + EMCSBiome biome = a_ChunkDesc.GetBiome(x, z); + + if ((biome == biExtremeHills) || (biome == biExtremeHillsEdge)) { - case biExtremeHills: - case biExtremeHillsEdge: + int Lo = FloorLo[x + 17 * z] / 256; + int Hi = FloorHi[x + 17 * z] / 256; + for (int y = 0; y < SEGMENT_HEIGHT; y++) { - int Lo = FloorLo[x + 17 * z] / 256; - int Hi = FloorHi[x + 17 * z] / 256; - for (int y = 0; y < SEGMENT_HEIGHT; y++) + int Val = Lo + (Hi - Lo) * y / SEGMENT_HEIGHT; + if (Val < 0) { - int Val = Lo + (Hi - Lo) * y / SEGMENT_HEIGHT; - if (Val < 0) - { - a_ChunkDesc.SetBlockType(x, y + Segment, z, E_BLOCK_AIR); - } - } // for y - break; - } - } // switch (biome) + a_ChunkDesc.SetBlockType(x, y + Segment, z, E_BLOCK_AIR); + } + } // for y + break; + } // if (biome) } // for z, x // Swap the floors: -- cgit v1.2.3 From 3a5e04d118a88dc33930866546007f59fdba951f Mon Sep 17 00:00:00 2001 From: archshift Date: Sun, 11 May 2014 16:54:42 -0700 Subject: More switch warnings. --- src/Generating/Trees.cpp | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/Trees.cpp b/src/Generating/Trees.cpp index 4f1553c36..522f45148 100644 --- a/src/Generating/Trees.cpp +++ b/src/Generating/Trees.cpp @@ -174,7 +174,7 @@ 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); } - break; + return; } case biTaiga: @@ -184,14 +184,14 @@ void GetTreeImageByBiome(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_No { // Conifers GetConiferTreeImage(a_BlockX, a_BlockY, a_BlockZ, a_Noise, a_Seq, a_LogBlocks, a_OtherBlocks); - break; + return; } case biSwampland: { // Swamp trees: GetSwampTreeImage(a_BlockX, a_BlockY, a_BlockZ, a_Noise, a_Seq, a_LogBlocks, a_OtherBlocks); - break; + return; } case biJungle: @@ -207,21 +207,21 @@ void GetTreeImageByBiome(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_No { GetJungleTreeImage(a_BlockX, a_BlockY, a_BlockZ, a_Noise, a_Seq, a_LogBlocks, a_OtherBlocks); } - break; + return; } case biBirchForest: case biBirchForestHills: { GetBirchTreeImage(a_BlockX, a_BlockY, a_BlockZ, a_Noise, a_Seq, a_LogBlocks, a_OtherBlocks); - break; + return; } case biBirchForestM: case biBirchForestHillsM: { GetTallBirchTreeImage(a_BlockX, a_BlockY, a_BlockZ, a_Noise, a_Seq, a_LogBlocks, a_OtherBlocks); - break; + return; } case biRoofedForest: @@ -257,9 +257,29 @@ void GetTreeImageByBiome(int a_BlockX, int a_BlockY, int a_BlockZ, cNoise & a_No { // TODO: These need their special trees GetBirchTreeImage(a_BlockX, a_BlockY, a_BlockZ, a_Noise, a_Seq, a_LogBlocks, a_OtherBlocks); - break; + return; + } + + case biDesert: + case biDesertHills: + case biRiver: + case biBeach: + case biHell: + case biSky: + case biOcean: + case biFrozenOcean: + case biFrozenRiver: + case biVariant: + case biNumBiomes: + case biNumVariantBiomes: + case biInvalidBiome: + { + // These biomes have no trees, or are non-biome members of the enum. + return; } } + + ASSERT(!"Invalid biome type!"); } -- cgit v1.2.3 From 9c8e8ef7aece2f881ef97c387600c8a751579b20 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Mon, 12 May 2014 22:43:59 +0200 Subject: VillageGen: Added well placement and the general algorithm description. --- src/Generating/Prefab.h | 3 + src/Generating/VillageGen.cpp | 147 ++++++++++++++++++++++++++++++++++++++++-- src/Generating/VillageGen.h | 8 ++- 3 files changed, 152 insertions(+), 6 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/Prefab.h b/src/Generating/Prefab.h index 37db2ff16..472584c3a 100644 --- a/src/Generating/Prefab.h +++ b/src/Generating/Prefab.h @@ -95,6 +95,9 @@ public: /** Returns the weight (chance) of this prefab generating as the next piece after the specified placed piece. PiecePool implementations can use this for their GetPieceWeight() implementations. */ int GetPieceWeight(const cPlacedPiece & a_PlacedPiece, const cPiece::cConnector & a_ExistingConnector) const; + + /** Returns the unmodified DefaultWeight property for the piece. */ + int GetDefaultWeight(void) const { return m_DefaultWeight; } protected: /** Packs complete definition of a single block, for per-letter assignment. */ diff --git a/src/Generating/VillageGen.cpp b/src/Generating/VillageGen.cpp index fb6191df2..3d89d7aa2 100644 --- a/src/Generating/VillageGen.cpp +++ b/src/Generating/VillageGen.cpp @@ -12,30 +12,167 @@ +/* +How village generating works: +By descending from a cGridStructGen, a semi-random grid is generated. A village may be generated for each of +the grid's cells. Each cell checks the biomes in an entire chunk around it, only generating a village if all +biomes are village-friendly. If yes, the entire village structure is built for that cell. If not, the cell +is left village-less. + +A village is generated starting by its well. The well is placed in the grid's origin point. Then a set of +random lengths roads is generated - 4 roads going from the well, then at the end of each road another set of +roads, crossing them perpendicular, then at the end of those another set, up to a set maximum branching +depth. The roads are placed in a T or L shape, with the old road being the center stem of the T. Roads avoid +crossing each other and going further away from the well than the maximum block size of the village. +Finally, houses are places along the roads, avoiding collisions with already-existing items. + +When the village is about to be drawn into a chunk, it queries the heights for each item intersecting the +chunk. The prefabs are shifted so that their pivot points lie on the surface, and the roads are drawn +directly by turning the surface blocks into gravel / sandstone. +*/ + class cVillageGen::cVillage : public cGridStructGen::cStructure { typedef cGridStructGen::cStructure super; public: - cVillage(int a_Seed, int a_OriginX, int a_OriginZ, cPrefabPiecePool & a_Prefabs) : + cVillage( + int a_Seed, + int a_OriginX, int a_OriginZ, + int a_MaxRoadDepth, + int a_MaxSize, + cPrefabPiecePool & a_Prefabs, + cTerrainHeightGen & a_HeightGen + ) : super(a_OriginX, a_OriginZ), m_Seed(a_Seed), - m_Prefabs(a_Prefabs) + m_Noise(a_Seed), + m_MaxSize(a_MaxSize), + m_Borders(a_OriginX - a_MaxSize, 0, a_OriginZ - a_MaxSize, a_OriginX + a_MaxSize, 255, a_OriginZ + a_MaxSize), + m_Prefabs(a_Prefabs), + m_HeightGen(a_HeightGen) { + PlaceWell(); + BuildRoads(a_MaxRoadDepth); + PlaceHouses(); } protected: + class cItem + { + public: + /* The position of the item, X/Z-wise: */ + int m_MinX, m_MaxX, m_MinZ, m_MaxZ; + + /** The prefab to use. If NULL, this is a road. */ + cPrefab * m_Prefab; + + /** Number of rotations that should be applied to the prefab. */ + int m_NumRotations; + + /* The bottom of the prefab. Only valid if the item is a prefab, not valid for roads. */ + int m_BaseY; + + /** Creates a new item with the specified parameters. + m_BaseY is set to -1 and will be adjusted later on when drawing. */ + cItem(int a_MinX, int a_MaxX, int a_MinZ, int a_MaxZ, cPrefab * a_Prefab, int a_NumRotations) : + m_MinX(a_MinX), + m_MaxX(a_MaxX), + m_MinZ(a_MinZ), + m_MaxZ(a_MaxZ), + m_Prefab(a_Prefab), + m_NumRotations(a_NumRotations), + m_BaseY(-1) + { + } + } ; + typedef SharedPtr cItemPtr; + typedef std::vector cItemPtrs; + + /** Seed for the random functions */ int m_Seed; + /** The noise used as a pseudo-random generator */ + cNoise m_Noise; + + /** Maximum size, in X/Z blocks, of the village (radius from the origin) */ + int m_MaxSize; + + /** Borders of the vilalge - no item may reach out of this cuboid. */ + cCuboid m_Borders; + /** Prefabs to use for buildings */ cPrefabPiecePool & m_Prefabs; + /** The underlying height generator, used for placing the structures on top of the terrain. */ + cTerrainHeightGen & m_HeightGen; + + /** The items that are generated in the village (houses, roads). */ + cItemPtrs m_Items; + + + /** Places the well at the center of the village */ + void PlaceWell(void) + { + // Pick a prefab from the starting pieces: + cPieces StartingPieces = ((cPiecePool &)m_Prefabs).GetStartingPieces(); + ASSERT(!StartingPieces.empty()); + int TotalWeight = 0; + for (cPieces::const_iterator itr = StartingPieces.begin(), end = StartingPieces.end(); itr != end; ++itr) + { + TotalWeight += ((const cPrefab *)(*itr))->GetDefaultWeight(); + } + ASSERT(TotalWeight > 0); + int rnd = (m_Noise.IntNoise2DInt(m_OriginX, m_OriginZ) / 7) % TotalWeight; + cPiece * WellPiece = StartingPieces[0]; + for (cPieces::const_iterator itr = StartingPieces.begin(), end = StartingPieces.end(); itr != end; ++itr) + { + rnd -= ((const cPrefab *)(*itr))->GetDefaultWeight(); + if (rnd <= 0) + { + WellPiece = *itr; + break; + } + } + ASSERT(WellPiece != NULL); + + // Pick a rotation: + // TODO + int NumRotations = 0; + Vector3i Size = WellPiece->GetSize(); + + // Put the well in the placed items array: + m_Items.push_back(cItemPtr(new cItem(m_OriginX, m_OriginX + Size.x, m_OriginZ, m_OriginZ + Size.z, (cPrefab *)WellPiece, NumRotations))); + } + + + /** Places the roads going from the well outwards. */ + void BuildRoads(int a_MaxRoadDepth) + { + /* + ASSERT(m_Items.size() == 1); + const cItem & Well = *m_Items[0]; + */ + // TODO + } + + + /** Places houses along the roads. */ + void PlaceHouses(void) + { + // TODO + } + + // cGrdStructGen::cStructure overrides: virtual void DrawIntoChunk(cChunkDesc & a_Chunk) override { // TODO + // Iterate over all items + // Each intersecting prefab is placed on ground (if not already placed), then drawn + // Each intersecting road is drawn by replacing top soil blocks with gravel / sandstone blocks } } ; @@ -53,8 +190,8 @@ cPrefabPiecePool cVillageGen::m_PlainsVillage(g_PlainsVillagePrefabs, g_PlainsVi -cVillageGen::cVillageGen(int a_Seed, int a_GridSize, cBiomeGen & a_BiomeGen, cTerrainHeightGen & a_HeightGen) : - super(a_Seed, a_GridSize, a_GridSize, 128, 128, 100), +cVillageGen::cVillageGen(int a_Seed, int a_GridSize, int a_MaxRoadDepth, int a_MaxSize, cBiomeGen & a_BiomeGen, cTerrainHeightGen & a_HeightGen) : + super(a_Seed, a_GridSize, a_GridSize, a_MaxSize, a_MaxSize, 100), m_BiomeGen(a_BiomeGen), m_HeightGen(a_HeightGen) { @@ -108,7 +245,7 @@ cGridStructGen::cStructurePtr cVillageGen::CreateStructure(int a_OriginX, int a_ { return cStructurePtr(); } - return cStructurePtr(new cVillage(m_Seed, a_OriginX, a_OriginZ, *VillagePrefabs)); + return cStructurePtr(new cVillage(m_Seed, a_OriginX, a_OriginZ, m_MaxRoadDepth, m_MaxSize, *VillagePrefabs, m_HeightGen)); } diff --git a/src/Generating/VillageGen.h b/src/Generating/VillageGen.h index d3cc8ef9c..acbd76881 100644 --- a/src/Generating/VillageGen.h +++ b/src/Generating/VillageGen.h @@ -21,7 +21,7 @@ class cVillageGen : { typedef cGridStructGen super; public: - cVillageGen(int a_Seed, int a_GridSize, cBiomeGen & a_BiomeGen, cTerrainHeightGen & a_HeightGen); + cVillageGen(int a_Seed, int a_GridSize, int a_MaxRoadDepth, int a_MaxSize, cBiomeGen & a_BiomeGen, cTerrainHeightGen & a_HeightGen); protected: class cVillage; // fwd: VillageGen.cpp @@ -31,6 +31,12 @@ protected: /** The prefabs for the plains village. We're not exactly using the cPiecePool functionality, only the containment. */ static cPrefabPiecePool m_PlainsVillage; + + /** Maximum number of roads generated one from another (tree depth). */ + int m_MaxRoadDepth; + + /** Maximum size, in X/Z blocks, of the village (radius from the origin) */ + int m_MaxSize; /** The underlying biome generator that defines whether the village is created or not */ cBiomeGen & m_BiomeGen; -- cgit v1.2.3 From 3660ce68343ad2e867e49d1650f61fc0eb85ac23 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Thu, 15 May 2014 00:12:01 +0200 Subject: cPrefab can be constructed in code. --- src/Generating/Prefab.cpp | 36 ++++++++++++++++++++++++++++++++++++ src/Generating/Prefab.h | 15 +++++++++++++++ 2 files changed, 51 insertions(+) (limited to 'src/Generating') diff --git a/src/Generating/Prefab.cpp b/src/Generating/Prefab.cpp index 0f20603be..9aef7a94b 100644 --- a/src/Generating/Prefab.cpp +++ b/src/Generating/Prefab.cpp @@ -136,6 +136,33 @@ cPrefab::cPrefab(const cPrefab::sDef & a_Def) : ParseConnectors(a_Def.m_Connectors); ParseDepthWeight(a_Def.m_DepthWeight); + AddRotatedBlockAreas(); +} + + + + + +cPrefab::cPrefab(const cBlockArea & a_Image, int a_AllowedRotations) : + m_Size(a_Image.GetSize()), + m_AllowedRotations(a_AllowedRotations), + m_MergeStrategy(cBlockArea::msOverwrite), + m_ShouldExtendFloor(false), + m_DefaultWeight(1), + m_AddWeightIfSame(0) +{ + m_HitBox.p1.Set(0, 0, 0); + m_HitBox.p2.Set(m_Size.x - 1, m_Size.y - 1, m_Size.z - 1); + m_BlockArea[0].CopyFrom(a_Image); + AddRotatedBlockAreas(); +} + + + + + +void cPrefab::AddRotatedBlockAreas(void) +{ // 1 CCW rotation: if ((m_AllowedRotations & 0x01) != 0) { @@ -257,6 +284,15 @@ int cPrefab::GetPieceWeight(const cPlacedPiece & a_PlacedPiece, const cPiece::cC +void cPrefab::AddConnector(int a_RelX, int a_RelY, int a_RelZ, eBlockFace a_Direction, int a_Type) +{ + m_Connectors.push_back(cConnector(a_RelX, a_RelY, a_RelZ, a_Type, a_Direction)); +} + + + + + void cPrefab::ParseCharMap(CharMap & a_CharMapOut, const char * a_CharMapDef) { ASSERT(a_CharMapDef != NULL); diff --git a/src/Generating/Prefab.h b/src/Generating/Prefab.h index 472584c3a..c08413e87 100644 --- a/src/Generating/Prefab.h +++ b/src/Generating/Prefab.h @@ -84,8 +84,13 @@ public: int m_AddWeightIfSame; }; + + /** Creates a prefab from the provided definition. */ cPrefab(const sDef & a_Def); + /** Creates a prefab based on the given BlockArea and allowed rotations. */ + cPrefab(const cBlockArea & a_Image, int a_AllowedRotations); + /** Draws the prefab into the specified chunk, according to the placement stored in the PlacedPiece. */ void Draw(cChunkDesc & a_Dest, const cPlacedPiece * a_Placement) const; @@ -98,6 +103,12 @@ public: /** Returns the unmodified DefaultWeight property for the piece. */ int GetDefaultWeight(void) const { return m_DefaultWeight; } + + /** Sets the AddWeightIfSame member, that is used to modify the weight when the previous piece is the same prefab */ + void SetAddWeightIfSame(int a_AddWeightIfSame) { m_AddWeightIfSame = a_AddWeightIfSame; } + + /** Adds the specified connector to the list of connectors this piece supports. */ + void AddConnector(int a_RelX, int a_RelY, int a_RelZ, eBlockFace a_Direction, int a_Type); protected: /** Packs complete definition of a single block, for per-letter assignment. */ @@ -160,6 +171,10 @@ protected: virtual cCuboid GetHitBox(void) const override; virtual bool CanRotateCCW(int a_NumRotations) const override; + /** Based on the m_AllowedRotations, adds rotated cBlockAreas to the m_BlockArea array. + To be called only from this class's constructor! */ + void AddRotatedBlockAreas(void); + /** Parses the CharMap in the definition into a CharMap binary data used for translating the definition into BlockArea. */ void ParseCharMap(CharMap & a_CharMapOut, const char * a_CharMapDef); -- cgit v1.2.3 From f5fdbdaf29738f51fdb8a4a0e5aa78631c6540cf Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Thu, 15 May 2014 00:14:06 +0200 Subject: VillageGen rewritten using BFSPieceGenerator. Piece composition is not good yet, the buildings aren't height-adjusted and the road pieces will need special processing. This is mainly for adjusting the per-piece params. --- src/Generating/ComposableGenerator.cpp | 9 + src/Generating/Prefabs/PlainsVillagePrefabs.cpp | 416 ++++++++++++------------ src/Generating/Prefabs/SandVillagePrefabs.cpp | 185 +++++------ src/Generating/VillageGen.cpp | 196 ++++++----- src/Generating/VillageGen.h | 12 +- 5 files changed, 406 insertions(+), 412 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/ComposableGenerator.cpp b/src/Generating/ComposableGenerator.cpp index 2e886336f..1bb836684 100644 --- a/src/Generating/ComposableGenerator.cpp +++ b/src/Generating/ComposableGenerator.cpp @@ -25,6 +25,7 @@ #include "Noise3DGenerator.h" #include "POCPieceGenerator.h" #include "Ravines.h" +#include "VillageGen.h" @@ -32,6 +33,7 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // cTerrainCompositionGen: + cTerrainCompositionGen * cTerrainCompositionGen::CreateCompositionGen(cIniFile & a_IniFile, cBiomeGen & a_BiomeGen, cTerrainHeightGen & a_HeightGen, int a_Seed) { AString CompoGenName = a_IniFile.GetValueSet("Generator", "CompositionGen", ""); @@ -404,6 +406,13 @@ void cComposableGenerator::InitFinishGens(cIniFile & a_IniFile) { m_FinishGens.push_back(new cStructGenTrees(Seed, m_BiomeGen, m_HeightGen, m_CompositionGen)); } + else if (NoCaseCompare(*itr, "Villages") == 0) + { + int GridSize = a_IniFile.GetValueSetI("Generator", "VillageGridSize", 256); + int MaxDepth = a_IniFile.GetValueSetI("Generator", "VillageMaxDepth", 7); + int MaxSize = a_IniFile.GetValueSetI("Generator", "VillageMaxSize", 128); + m_FinishGens.push_back(new cVillageGen(Seed, GridSize, MaxDepth, MaxSize, *m_BiomeGen, *m_HeightGen)); + } else if (NoCaseCompare(*itr, "WaterLakes") == 0) { int Probability = a_IniFile.GetValueSetI("Generator", "WaterLakesProbability", 25); diff --git a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp index f59e22fb3..508f0d3b6 100644 --- a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp +++ b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp @@ -174,7 +174,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 10 */ ".......mmmmm", // Connectors: - "", + "-1: 7, 0, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -216,7 +216,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = "d: 4: 0\n" /* cobblestone */ "e: 17: 0\n" /* tree */ "f: 5: 0\n" /* wood */ - "g: 64: 5\n" /* wooddoorblock */ + "g: 64: 7\n" /* wooddoorblock */ "h: 64:12\n" /* wooddoorblock */ "i:102: 0\n" /* glasspane */ "j: 53: 2\n" /* woodstairs */ @@ -288,7 +288,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 6 */ ".......", // Connectors: - "", + "-1: 3, 0, 1: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -330,7 +330,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = "d: 4: 0\n" /* cobblestone */ "e: 17: 0\n" /* tree */ "f: 5: 0\n" /* wood */ - "g: 64: 5\n" /* wooddoorblock */ + "g: 64: 7\n" /* wooddoorblock */ "h:102: 0\n" /* glasspane */ "i: 64:12\n" /* wooddoorblock */ "j: 53: 2\n" /* woodstairs */ @@ -434,7 +434,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 8 */ "...........", // Connectors: - "", + "-1: 5, 0, 1: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -561,7 +561,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 8 */ "..lgp..", // Connectors: - "", + "-1: 3, 0, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -725,7 +725,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 8 */ "...............", // Connectors: - "", + "-1: 7, 0, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1016,7 +1016,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 12 */ ".......", // Connectors: - "", + "-1: 3, 0, 1: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1087,7 +1087,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 8 */ "dmmmmmdmdmmmmmd", // Connectors: - "", + "-1: 7, 0, 8: 3\n" /* Type -1, direction Z+ */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1134,7 +1134,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = "i: 53: 1\n" /* woodstairs */ "j: 85: 0\n" /* fence */ "k: 53: 0\n" /* woodstairs */ - "l: 64: 4\n" /* wooddoorblock */ + "l: 64: 6\n" /* wooddoorblock */ "m: 19: 0\n" /* sponge */ "n: 64: 0\n" /* wooddoorblock */ "o:102: 0\n" /* glasspane */ @@ -1238,7 +1238,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 10 */ "mmkbimmmmm", // Connectors: - "", + "-1: 1, 0, 5: 4\n" /* Type -1, direction X- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1281,22 +1281,23 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = "e: 5: 0\n" /* wood */ "f: 67: 3\n" /* stairs */ "g: 17: 0\n" /* tree */ - "h: 64: 5\n" /* wooddoorblock */ - "i:102: 0\n" /* glasspane */ - "j: 64:12\n" /* wooddoorblock */ - "k: 53: 2\n" /* woodstairs */ - "l: 53: 1\n" /* woodstairs */ + "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: 7\n" /* woodstairs */ - "o: 53: 6\n" /* woodstairs */ - "p: 53: 3\n" /* woodstairs */ - "q: 53: 0\n" /* woodstairs */ - "r: 53: 5\n" /* woodstairs */ - "s: 53: 4\n" /* woodstairs */ - "t: 50: 3\n" /* torch */ - "u: 50: 2\n" /* torch */ - "v: 50: 4\n" /* torch */ - "w: 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 @@ -1329,7 +1330,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 4 */ ".e............e." /* 5 */ ".e............e." /* 6 */ ".e............e." - /* 7 */ ".geeeeheg.....e." + /* 7 */ ".geeeeieg.....e." /* 8 */ "mmmmmm.me.....e." /* 9 */ "mmmmmmmme.....e." /* 10 */ "mmmmmmmme.....e." @@ -1343,81 +1344,81 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* z\x* 111111 */ /* * 0123456789012345 */ /* 0 */ "................" - /* 1 */ ".geiieiigjgiieg." - /* 2 */ ".i............e." - /* 3 */ ".i............i." - /* 4 */ ".i............i." - /* 5 */ ".i............e." - /* 6 */ ".i............i." - /* 7 */ ".geiiejeg.....i." + /* 1 */ ".gejjejjgkgjjeg." + /* 2 */ ".j............e." + /* 3 */ ".j............j." + /* 4 */ ".j............j." + /* 5 */ ".j............e." + /* 6 */ ".j............j." + /* 7 */ ".gejjekeg.....j." /* 8 */ "mmmmmm.me.....e." - /* 9 */ "mmmmmmmmi.....i." - /* 10 */ "mmmmmmmmi.....i." + /* 9 */ "mmmmmmmmj.....j." + /* 10 */ "mmmmmmmmj.....j." /* 11 */ "mmmmmmmme.....e." - /* 12 */ "mmmmmmmmi.....i." - /* 13 */ "mmmmmmmmi.....i." - /* 14 */ "mmmmmmmmgiiiiig." + /* 12 */ "mmmmmmmmj.....j." + /* 13 */ "mmmmmmmmj.....j." + /* 14 */ "mmmmmmmmgjjjjjg." /* 15 */ "mmmmmmmm........" // Level 3 /* z\x* 111111 */ /* * 0123456789012345 */ - /* 0 */ "kkkkkkkkkkkkkkkl" - /* 1 */ "ngeeeeeegegeeegl" - /* 2 */ ".e............el" - /* 3 */ ".e............el" - /* 4 */ ".e............el" - /* 5 */ ".e............el" - /* 6 */ ".e............el" - /* 7 */ "ogeeeeeeg.....el" - /* 8 */ "pppppppqe.....el" - /* 9 */ "mmmmmmmqe.....el" - /* 10 */ "mmmmmmmqe.....el" - /* 11 */ "mmmmmmmqe.....el" - /* 12 */ "mmmmmmmqe.....el" - /* 13 */ "mmmmmmmqe.....el" - /* 14 */ "mmmmmmmqgeeeeegl" - /* 15 */ "mmmmmmmqr.....sl" + /* 0 */ "llllllllllllllln" + /* 1 */ "ogeeeeeegegeeegn" + /* 2 */ ".e............en" + /* 3 */ ".e............en" + /* 4 */ ".e............en" + /* 5 */ ".e............en" + /* 6 */ ".e............en" + /* 7 */ "pgeeeeeeg.....en" + /* 8 */ "qqqqqqqre.....en" + /* 9 */ "mmmmmmmre.....en" + /* 10 */ "mmmmmmmre.....en" + /* 11 */ "mmmmmmmre.....en" + /* 12 */ "mmmmmmmre.....en" + /* 13 */ "mmmmmmmre.....en" + /* 14 */ "mmmmmmmrgeeeeegn" + /* 15 */ "mmmmmmmrs.....tn" // Level 4 /* z\x* 111111 */ /* * 0123456789012345 */ /* 0 */ "................" - /* 1 */ "kkkkkkkkkkkkkkk." - /* 2 */ "neeeeeeeeeeeeel." - /* 3 */ ".e.........t.el." - /* 4 */ ".e..........uel." - /* 5 */ ".e......v....el." - /* 6 */ "oeeeeeeeee...el." - /* 7 */ "ppppppppqew..el." - /* 8 */ "mmmmmmmmqe...el." - /* 9 */ "mmmmmmmmqe...el." - /* 10 */ "mmmmmmmmqe...el." - /* 11 */ "mmmmmmmmqe...el." - /* 12 */ "mmmmmmmmqe...el." - /* 13 */ "mmmmmmmmqe...el." - /* 14 */ "mmmmmmmmqeeeeel." - /* 15 */ "mmmmmmmmqr...sl." + /* 1 */ "lllllllllllllll." + /* 2 */ "oeeeeeeeeeeeeen." + /* 3 */ ".e.........u.en." + /* 4 */ ".e..........ven." + /* 5 */ ".e......w....en." + /* 6 */ "peeeeeeeee...en." + /* 7 */ "qqqqqqqqrex..en." + /* 8 */ "mmmmmmmmre...en." + /* 9 */ "mmmmmmmmre...en." + /* 10 */ "mmmmmmmmre...en." + /* 11 */ "mmmmmmmmre...en." + /* 12 */ "mmmmmmmmre...en." + /* 13 */ "mmmmmmmmre...en." + /* 14 */ "mmmmmmmmreeeeen." + /* 15 */ "mmmmmmmmrs...tn." // Level 5 /* z\x* 111111 */ /* * 0123456789012345 */ /* 0 */ "................" /* 1 */ "................" - /* 2 */ "kkkkkkkkkkkkkl.." - /* 3 */ "neeeeeeeeeeeel.." - /* 4 */ ".ew.........el.." - /* 5 */ "oeeeeeeeeee.el.." - /* 6 */ "pppppppppqe.el.." - /* 7 */ ".........qe.el.." - /* 8 */ "mmmmmmmm.qe.el.." - /* 9 */ "mmmmmmmm.qe.el.." - /* 10 */ "mmmmmmmm.qe.el.." - /* 11 */ "mmmmmmmm.qe.el.." - /* 12 */ "mmmmmmmm.qe.el.." - /* 13 */ "mmmmmmmm.qevel.." - /* 14 */ "mmmmmmmm.qeeel.." - /* 15 */ "mmmmmmmm.qr.sl.." + /* 2 */ "llllllllllllln.." + /* 3 */ "oeeeeeeeeeeeen.." + /* 4 */ ".ex.........en.." + /* 5 */ "peeeeeeeeee.en.." + /* 6 */ "qqqqqqqqqre.en.." + /* 7 */ ".........re.en.." + /* 8 */ "mmmmmmmm.re.en.." + /* 9 */ "mmmmmmmm.re.en.." + /* 10 */ "mmmmmmmm.re.en.." + /* 11 */ "mmmmmmmm.re.en.." + /* 12 */ "mmmmmmmm.re.en.." + /* 13 */ "mmmmmmmm.rewen.." + /* 14 */ "mmmmmmmm.reeen.." + /* 15 */ "mmmmmmmm.rs.tn.." // Level 6 /* z\x* 111111 */ @@ -1425,22 +1426,22 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 0 */ "................" /* 1 */ "................" /* 2 */ "................" - /* 3 */ "kkkkkkkkkkkkk..." - /* 4 */ "eeeeeeeeeeeel..." - /* 5 */ "ppppppppppqel..." - /* 6 */ "mmmmmmmmmmqel..." - /* 7 */ "mmmmmmmmmmqel..." - /* 8 */ "mmmmmmmmmmqel..." - /* 9 */ "mmmmmmmmmmqel..." - /* 10 */ "mmmmmmmmmmqel..." - /* 11 */ "mmmmmmmmmmqel..." - /* 12 */ "mmmmmmmmmmqel..." - /* 13 */ "mmmmmmmmmmqel..." - /* 14 */ "mmmmmmmmmmqel..." - /* 15 */ "mmmmmmmmmmqel...", + /* 3 */ "lllllllllllll..." + /* 4 */ "eeeeeeeeeeeen..." + /* 5 */ "qqqqqqqqqqren..." + /* 6 */ "mmmmmmmmmmren..." + /* 7 */ "mmmmmmmmmmren..." + /* 8 */ "mmmmmmmmmmren..." + /* 9 */ "mmmmmmmmmmren..." + /* 10 */ "mmmmmmmmmmren..." + /* 11 */ "mmmmmmmmmmren..." + /* 12 */ "mmmmmmmmmmren..." + /* 13 */ "mmmmmmmmmmren..." + /* 14 */ "mmmmmmmmmmren..." + /* 15 */ "mmmmmmmmmmren...", // Connectors: - "", + "-1: 9, 0, 1: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1506,7 +1507,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 6 */ "..........", // Connectors: - "", + "-1: 9, 0, 3: 5\n" /* Type -1, direction X+ */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1548,7 +1549,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = "d: 67: 2\n" /* stairs */ "e: 67: 1\n" /* stairs */ "f: 4: 0\n" /* cobblestone */ - "g: 64: 1\n" /* wooddoorblock */ + "g: 64: 7\n" /* wooddoorblock */ "h: 53: 3\n" /* woodstairs */ "i: 53: 1\n" /* woodstairs */ "j: 85: 0\n" /* fence */ @@ -1556,7 +1557,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = "l: 53: 2\n" /* woodstairs */ "m: 19: 0\n" /* sponge */ "n:102: 0\n" /* glasspane */ - "o: 64: 8\n" /* wooddoorblock */ + "o: 64:12\n" /* wooddoorblock */ "p: 50: 3\n" /* torch */ "q: 72: 0\n" /* woodplate */ "r: 50: 4\n" /* torch */ @@ -1646,7 +1647,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 6 */ "............", // Connectors: - "", + "-1: 8, 1, 1: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1689,19 +1690,18 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = "e: 67: 3\n" /* stairs */ "f: 17: 0\n" /* tree */ "g: 5: 0\n" /* wood */ - "h: 64: 5\n" /* wooddoorblock */ - "i: 64: 7\n" /* wooddoorblock */ - "j:102: 0\n" /* glasspane */ - "k: 64:12\n" /* wooddoorblock */ - "l: 53: 2\n" /* woodstairs */ + "h: 64: 7\n" /* wooddoorblock */ + "i:102: 0\n" /* glasspane */ + "j: 64:12\n" /* wooddoorblock */ + "k: 53: 2\n" /* woodstairs */ + "l: 53: 7\n" /* woodstairs */ "m: 19: 0\n" /* sponge */ - "n: 53: 7\n" /* woodstairs */ - "o: 17: 4\n" /* tree */ - "p: 17: 8\n" /* tree */ - "q: 50: 3\n" /* torch */ - "r: 50: 4\n" /* torch */ - "s: 53: 6\n" /* woodstairs */ - "t: 53: 3\n" /* woodstairs */, + "n: 17: 4\n" /* tree */ + "o: 17: 8\n" /* tree */ + "p: 50: 3\n" /* torch */ + "q: 50: 4\n" /* torch */ + "r: 53: 6\n" /* woodstairs */ + "s: 53: 3\n" /* woodstairs */, // Block data: // Level 0 @@ -1727,46 +1727,46 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 4 */ ".f.......f." /* 5 */ ".g.......g." /* 6 */ ".g.......g." - /* 7 */ ".fggfifggf." + /* 7 */ ".fggfhfggf." /* 8 */ "..........." // Level 2 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "..........." - /* 1 */ ".fjjfkfjjf." - /* 2 */ ".j.......j." - /* 3 */ ".j.......j." + /* 1 */ ".fiifjfiif." + /* 2 */ ".i.......i." + /* 3 */ ".i.......i." /* 4 */ ".f.......f." - /* 5 */ ".j.......j." - /* 6 */ ".j.......j." - /* 7 */ ".fjjfkfjjf." + /* 5 */ ".i.......i." + /* 6 */ ".i.......i." + /* 7 */ ".fiifjfiif." /* 8 */ "..........." // Level 3 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "lllllllllll" - /* 1 */ "nfooooooofn" - /* 2 */ ".p..q.q..p." - /* 3 */ ".p.......p." - /* 4 */ ".p.......p." - /* 5 */ ".p.......p." - /* 6 */ ".p..r.r..p." - /* 7 */ "sfooooooofs" - /* 8 */ "ttttttttttt" + /* 0 */ "kkkkkkkkkkk" + /* 1 */ "lfnnnnnnnfl" + /* 2 */ ".o..p.p..o." + /* 3 */ ".o.......o." + /* 4 */ ".o.......o." + /* 5 */ ".o.......o." + /* 6 */ ".o..q.q..o." + /* 7 */ "rfnnnnnnnfr" + /* 8 */ "sssssssssss" // Level 4 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "..........." - /* 1 */ "lllllllllll" - /* 2 */ "ngggggggggn" + /* 1 */ "kkkkkkkkkkk" + /* 2 */ "lgggggggggl" /* 3 */ ".g.......g." /* 4 */ ".g.......g." /* 5 */ ".g.......g." - /* 6 */ "sgggggggggs" - /* 7 */ "ttttttttttt" + /* 6 */ "rgggggggggr" + /* 7 */ "sssssssssss" /* 8 */ "..........." // Level 5 @@ -1774,11 +1774,11 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* * 01234567890 */ /* 0 */ "..........." /* 1 */ "..........." - /* 2 */ "lllllllllll" - /* 3 */ "ngggggggggn" + /* 2 */ "kkkkkkkkkkk" + /* 3 */ "lgggggggggl" /* 4 */ ".g.......g." - /* 5 */ "sgggggggggs" - /* 6 */ "ttttttttttt" + /* 5 */ "rgggggggggr" + /* 6 */ "sssssssssss" /* 7 */ "..........." /* 8 */ "..........." @@ -1788,15 +1788,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 0 */ "..........." /* 1 */ "..........." /* 2 */ "..........." - /* 3 */ "lllllllllll" + /* 3 */ "kkkkkkkkkkk" /* 4 */ "ggggggggggg" - /* 5 */ "ttttttttttt" + /* 5 */ "sssssssssss" /* 6 */ "..........." /* 7 */ "..........." /* 8 */ "...........", // Connectors: - "", + "-1: 5, 0, 1: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -2025,7 +2025,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 15 */ "mmmmmmmmmmmmmmm", // Connectors: - "", + "-1: 7, 0, 1: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -2069,7 +2069,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = "f: 4: 0\n" /* cobblestone */ "g: 17: 0\n" /* tree */ "h: 5: 0\n" /* wood */ - "i: 64: 5\n" /* wooddoorblock */ + "i: 64: 7\n" /* wooddoorblock */ "j:102: 0\n" /* glasspane */ "k: 64:12\n" /* wooddoorblock */ "l: 53: 2\n" /* woodstairs */ @@ -2151,7 +2151,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 6 */ ".........", // Connectors: - "", + "-1: 4, 1, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -2193,7 +2193,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = "d: 4: 0\n" /* cobblestone */ "e: 17: 0\n" /* tree */ "f: 5: 0\n" /* wood */ - "g: 64: 5\n" /* wooddoorblock */ + "g: 64: 7\n" /* wooddoorblock */ "h:102: 0\n" /* glasspane */ "i: 64:12\n" /* wooddoorblock */ "j: 53: 2\n" /* woodstairs */ @@ -2271,7 +2271,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 6 */ "...........", // Connectors: - "", + "-1: 5, 0, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -2313,7 +2313,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = "d: 4: 0\n" /* cobblestone */ "e: 17: 0\n" /* tree */ "f: 5: 0\n" /* wood */ - "g: 64: 5\n" /* wooddoorblock */ + "g: 64: 7\n" /* wooddoorblock */ "h:102: 0\n" /* glasspane */ "i: 64:12\n" /* wooddoorblock */ "j: 53: 2\n" /* woodstairs */ @@ -2422,7 +2422,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 10 */ "mmmm..tfl..", // Connectors: - "", + "-1: 5, 0, 1: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -2464,7 +2464,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = "d: 4: 0\n" /* cobblestone */ "e: 17: 0\n" /* tree */ "f: 5: 0\n" /* wood */ - "g: 64: 5\n" /* wooddoorblock */ + "g: 64: 7\n" /* wooddoorblock */ "h:102: 0\n" /* glasspane */ "i: 64:12\n" /* wooddoorblock */ "j: 53: 2\n" /* woodstairs */ @@ -2571,7 +2571,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 10 */ "..kfl.....kfl..", // Connectors: - "", + "-1: 7, 0, 1: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -2613,7 +2613,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = "d: 4: 0\n" /* cobblestone */ "e: 17: 0\n" /* tree */ "f: 5: 0\n" /* wood */ - "g: 64: 5\n" /* wooddoorblock */ + "g: 64: 7\n" /* wooddoorblock */ "h: 53: 3\n" /* woodstairs */ "i: 85: 0\n" /* fence */ "j: 53: 2\n" /* woodstairs */ @@ -2698,7 +2698,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 6 */ "...........", // Connectors: - "", + "-1: 5, 0, 1: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -2740,15 +2740,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = "d: 4: 0\n" /* cobblestone */ "e: 17: 0\n" /* tree */ "f: 5: 0\n" /* wood */ - "g: 64: 5\n" /* wooddoorblock */ - "h: 53: 3\n" /* woodstairs */ - "i: 85: 0\n" /* fence */ - "j: 53: 2\n" /* woodstairs */ - "k: 53: 1\n" /* woodstairs */ - "l: 53: 0\n" /* woodstairs */ + "g: 64: 7\n" /* wooddoorblock */ + "h: 64: 5\n" /* wooddoorblock */ + "i: 53: 3\n" /* woodstairs */ + "j: 85: 0\n" /* fence */ + "k: 53: 2\n" /* woodstairs */ + "l: 53: 1\n" /* woodstairs */ "m: 19: 0\n" /* sponge */ - "n:102: 0\n" /* glasspane */ - "o: 64:13\n" /* wooddoorblock */ + "n: 53: 0\n" /* woodstairs */ + "o:102: 0\n" /* glasspane */ "p: 64:12\n" /* wooddoorblock */ "q: 50: 3\n" /* torch */ "r: 72: 0\n" /* woodplate */ @@ -2776,12 +2776,12 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* z\x* 11 */ /* * 012345678901 */ /* 0 */ "............" - /* 1 */ ".efffggfffe." + /* 1 */ ".efffghfffe." /* 2 */ ".f........f." - /* 3 */ ".fh......hf." - /* 4 */ ".fi......if." - /* 5 */ ".fj......jf." - /* 6 */ ".f.kilkil.f." + /* 3 */ ".fi......if." + /* 4 */ ".fj......jf." + /* 5 */ ".fk......kf." + /* 6 */ ".f.ljnljn.f." /* 7 */ ".effffffffe." /* 8 */ "............" @@ -2789,19 +2789,19 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* z\x* 11 */ /* * 012345678901 */ /* 0 */ "............" - /* 1 */ ".ennfopfnne." - /* 2 */ ".n..q..q..n." - /* 3 */ ".n........n." + /* 1 */ ".eoofppfooe." + /* 2 */ ".o..q..q..o." + /* 3 */ ".o........o." /* 4 */ ".fr......rf." - /* 5 */ ".n........n." - /* 6 */ ".n..r..r..n." - /* 7 */ ".ennfnnfnne." + /* 5 */ ".o........o." + /* 6 */ ".o..r..r..o." + /* 7 */ ".eoofoofooe." /* 8 */ "............" // Level 3 /* z\x* 11 */ /* * 012345678901 */ - /* 0 */ "jjjjjjjjjjjj" + /* 0 */ "kkkkkkkkkkkk" /* 1 */ "sffffffffffs" /* 2 */ ".fttttttttf." /* 3 */ ".f........f." @@ -2809,19 +2809,19 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 5 */ ".f........f." /* 6 */ ".fttttttttf." /* 7 */ "wffffffffffw" - /* 8 */ "hhhhhhhhhhhh" + /* 8 */ "iiiiiiiiiiii" // Level 4 /* z\x* 11 */ /* * 012345678901 */ /* 0 */ "............" - /* 1 */ "jjjjjjjjjjjj" + /* 1 */ "kkkkkkkkkkkk" /* 2 */ "sffffffffffs" /* 3 */ ".fttttttttf." /* 4 */ ".f........f." /* 5 */ ".fttttttttf." /* 6 */ "wffffffffffw" - /* 7 */ "hhhhhhhhhhhh" + /* 7 */ "iiiiiiiiiiii" /* 8 */ "............" // Level 5 @@ -2829,11 +2829,11 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* * 012345678901 */ /* 0 */ "............" /* 1 */ "............" - /* 2 */ "jjjjjjjjjjjj" + /* 2 */ "kkkkkkkkkkkk" /* 3 */ "sffffffffffs" /* 4 */ ".f........f." /* 5 */ "wffffffffffw" - /* 6 */ "hhhhhhhhhhhh" + /* 6 */ "iiiiiiiiiiii" /* 7 */ "............" /* 8 */ "............" @@ -2843,15 +2843,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 0 */ "............" /* 1 */ "............" /* 2 */ "............" - /* 3 */ "jjjjjjjjjjjj" + /* 3 */ "kkkkkkkkkkkk" /* 4 */ "ffffffffffff" - /* 5 */ "hhhhhhhhhhhh" + /* 5 */ "iiiiiiiiiiii" /* 6 */ "............" /* 7 */ "............" /* 8 */ "............", // Connectors: - "", + "-1: 5, 0, 1: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -2895,19 +2895,18 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = "f: 2: 0\n" /* grass */ "g: 17: 0\n" /* tree */ "h: 5: 0\n" /* wood */ - "i: 64: 5\n" /* wooddoorblock */ + "i: 64: 7\n" /* wooddoorblock */ "j: 53: 3\n" /* woodstairs */ "k: 85: 0\n" /* fence */ "l: 53: 2\n" /* woodstairs */ "m: 19: 0\n" /* sponge */ - "n: 64: 7\n" /* wooddoorblock */ - "o:102: 0\n" /* glasspane */ - "p: 64:12\n" /* wooddoorblock */ - "q: 72: 0\n" /* woodplate */ - "r: 53: 7\n" /* woodstairs */ - "s: 50: 1\n" /* torch */ - "t: 50: 2\n" /* torch */ - "u: 53: 6\n" /* woodstairs */, + "n:102: 0\n" /* glasspane */ + "o: 64:12\n" /* wooddoorblock */ + "p: 72: 0\n" /* woodplate */ + "q: 53: 7\n" /* woodstairs */ + "r: 50: 1\n" /* torch */ + "s: 50: 2\n" /* torch */ + "t: 53: 6\n" /* woodstairs */, // Block data: // Level 0 @@ -2937,7 +2936,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 4 */ ".h.e....lh." /* 5 */ ".h.......h." /* 6 */ ".h.......h." - /* 7 */ ".ghhhnhhhg." + /* 7 */ ".ghhhihhhg." /* 8 */ "..k.....k.." /* 9 */ "mmk.....kmm" /* 10 */ "mmk.....kmm" @@ -2948,13 +2947,13 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "..........." - /* 1 */ ".goohphoog." - /* 2 */ ".o.......o." - /* 3 */ ".o......qo." + /* 1 */ ".gnnhohnng." + /* 2 */ ".n.......n." + /* 3 */ ".n......pn." /* 4 */ ".h.......h." - /* 5 */ ".o.......o." - /* 6 */ ".o.......o." - /* 7 */ ".goohphoog." + /* 5 */ ".n.......n." + /* 6 */ ".n.......n." + /* 7 */ ".gnnhohnng." /* 8 */ "..........." /* 9 */ "mm.......mm" /* 10 */ "mm.......mm" @@ -2965,13 +2964,13 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "lllllllllll" - /* 1 */ "rhhhhhhhhhr" + /* 1 */ "qhhhhhhhhhq" /* 2 */ ".h.......h." /* 3 */ ".h.......h." - /* 4 */ ".hs.....th." + /* 4 */ ".hr.....sh." /* 5 */ ".h.......h." /* 6 */ ".h.......h." - /* 7 */ "uhhhhhhhhhu" + /* 7 */ "thhhhhhhhht" /* 8 */ "jjjjjjjjjjj" /* 9 */ "mm.......mm" /* 10 */ "mm.......mm" @@ -2983,11 +2982,11 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* * 01234567890 */ /* 0 */ "..........." /* 1 */ "lllllllllll" - /* 2 */ "rhhhhhhhhhr" + /* 2 */ "qhhhhhhhhhq" /* 3 */ ".h.......h." /* 4 */ ".h.......h." /* 5 */ ".h.......h." - /* 6 */ "uhhhhhhhhhu" + /* 6 */ "thhhhhhhhht" /* 7 */ "jjjjjjjjjjj" /* 8 */ "..........." /* 9 */ "mm.......mm" @@ -3001,9 +3000,9 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 0 */ "..........." /* 1 */ "..........." /* 2 */ "lllllllllll" - /* 3 */ "rhhhhhhhhhr" + /* 3 */ "qhhhhhhhhhq" /* 4 */ ".h.......h." - /* 5 */ "uhhhhhhhhhu" + /* 5 */ "thhhhhhhhht" /* 6 */ "jjjjjjjjjjj" /* 7 */ "..........." /* 8 */ "..........." @@ -3030,7 +3029,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 12 */ "mm.......mm", // Connectors: - "", + "-1: 5, 0, 1: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -3279,7 +3278,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = "f: 5: 0\n" /* wood */ "g: 54: 4\n" /* chest */ "h:154: 4\n" /* hopper */ - "i: 64: 6\n" /* wooddoorblock */ + "i: 64: 4\n" /* wooddoorblock */ "j:102: 0\n" /* glasspane */ "k: 85: 0\n" /* fence */ "l: 64:12\n" /* wooddoorblock */ @@ -3551,7 +3550,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 12 */ ".........", // Connectors: - "", + "-1: 5, 0, 6: 5\n" /* Type -1, direction X+ */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -3692,7 +3691,10 @@ const cPrefab::sDef g_PlainsVillageStartingPrefabs[] = /* 3 */ "bbbb", // Connectors: - "", + "1: 1, 9, 3: 3\n" /* Type 1, direction Z+ */ + "1: 2, 9, 0: 2\n" /* Type 1, direction Z- */ + "1: 0, 9, 1: 4\n" /* Type 1, direction X- */ + "1: 3, 9, 2: 5\n" /* Type 1, direction X+ */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ diff --git a/src/Generating/Prefabs/SandVillagePrefabs.cpp b/src/Generating/Prefabs/SandVillagePrefabs.cpp index 23af0f0a6..51411dea2 100644 --- a/src/Generating/Prefabs/SandVillagePrefabs.cpp +++ b/src/Generating/Prefabs/SandVillagePrefabs.cpp @@ -63,7 +63,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* 8 */ "d.....d.....d", // Connectors: - "", + "-1: 6, 0, 8: 3\n" /* Type -1, direction Z+ */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -103,7 +103,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = "b:128: 2\n" /* sandstonestairs */ "c:128: 1\n" /* sandstonestairs */ "d: 24: 0\n" /* sandstone */ - "e: 64: 5\n" /* wooddoorblock */ + "e: 64: 7\n" /* wooddoorblock */ "f:102: 0\n" /* glasspane */ "g: 64:12\n" /* wooddoorblock */ "h:128: 7\n" /* sandstonestairs */ @@ -183,7 +183,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* 6 */ "...........", // Connectors: - "", + "-1: 5, 0, 1: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -223,7 +223,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = "b:128: 2\n" /* sandstonestairs */ "c:128: 1\n" /* sandstonestairs */ "d: 24: 0\n" /* sandstone */ - "e: 64: 5\n" /* wooddoorblock */ + "e: 64: 7\n" /* wooddoorblock */ "f:102: 0\n" /* glasspane */ "g: 64:12\n" /* wooddoorblock */ "h:128: 7\n" /* sandstonestairs */ @@ -326,7 +326,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* 8 */ "...........", // Connectors: - "", + "-1: 5, 0, 1: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -366,7 +366,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = "b:128: 2\n" /* sandstonestairs */ "c:128: 1\n" /* sandstonestairs */ "d: 24: 0\n" /* sandstone */ - "e: 64: 5\n" /* wooddoorblock */ + "e: 64: 7\n" /* wooddoorblock */ "f:102: 0\n" /* glasspane */ "g: 64:12\n" /* wooddoorblock */ "h:128: 7\n" /* sandstonestairs */ @@ -444,7 +444,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* 6 */ ".............", // Connectors: - "", + "-1: 6, 0, 1: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -484,7 +484,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = "b:128: 2\n" /* sandstonestairs */ "c:128: 1\n" /* sandstonestairs */ "d: 24: 0\n" /* sandstone */ - "e: 64: 5\n" /* wooddoorblock */ + "e: 64: 7\n" /* wooddoorblock */ "f:102: 0\n" /* glasspane */ "g: 64:12\n" /* wooddoorblock */ "h:128: 7\n" /* sandstonestairs */ @@ -587,7 +587,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* 8 */ ".............", // Connectors: - "", + "-1: 6, 0, 1: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -627,7 +627,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = "b:128: 2\n" /* sandstonestairs */ "c:128: 1\n" /* sandstonestairs */ "d: 24: 0\n" /* sandstone */ - "e: 64: 5\n" /* wooddoorblock */ + "e: 64: 7\n" /* wooddoorblock */ "f:102: 0\n" /* glasspane */ "g: 64:12\n" /* wooddoorblock */ "h:128: 7\n" /* sandstonestairs */ @@ -730,7 +730,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* 8 */ "...............", // Connectors: - "", + "-1: 6, 0, 1: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -770,7 +770,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = "b:128: 2\n" /* sandstonestairs */ "c:128: 1\n" /* sandstonestairs */ "d: 24: 0\n" /* sandstone */ - "e: 64: 5\n" /* wooddoorblock */ + "e: 64: 7\n" /* wooddoorblock */ "f:102: 0\n" /* glasspane */ "g: 64:12\n" /* wooddoorblock */ "h:128: 7\n" /* sandstonestairs */ @@ -873,7 +873,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* 8 */ "................", // Connectors: - "", + "-1: 9, 0, 1: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -913,7 +913,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = "b:128: 2\n" /* sandstonestairs */ "c:128: 1\n" /* sandstonestairs */ "d: 24: 0\n" /* sandstone */ - "e: 64: 5\n" /* wooddoorblock */ + "e: 64: 7\n" /* wooddoorblock */ "f:102: 0\n" /* glasspane */ "g: 64:12\n" /* wooddoorblock */ "h:128: 7\n" /* sandstonestairs */ @@ -984,7 +984,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* 6 */ ".......", // Connectors: - "", + "-1: 4, 0, 1: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1024,7 +1024,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = "b:128: 2\n" /* sandstonestairs */ "c:128: 1\n" /* sandstonestairs */ "d: 24: 0\n" /* sandstone */ - "e: 64: 5\n" /* wooddoorblock */ + "e: 64: 7\n" /* wooddoorblock */ "f:102: 0\n" /* glasspane */ "g: 64:12\n" /* wooddoorblock */ "h:128: 7\n" /* sandstonestairs */ @@ -1096,7 +1096,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* 6 */ ".........", // Connectors: - "", + "-1: 4, 0, 1: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1136,9 +1136,9 @@ const cPrefab::sDef g_SandVillagePrefabs[] = "b:128: 2\n" /* sandstonestairs */ "c:128: 1\n" /* sandstonestairs */ "d: 24: 0\n" /* sandstone */ - "e: 64: 1\n" /* wooddoorblock */ + "e: 64: 7\n" /* wooddoorblock */ "f:102: 0\n" /* glasspane */ - "g: 64: 8\n" /* wooddoorblock */ + "g: 64:12\n" /* wooddoorblock */ "h:128: 7\n" /* sandstonestairs */ "i: 50: 3\n" /* torch */ "j: 50: 4\n" /* torch */ @@ -1232,7 +1232,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* 8 */ ".........", // Connectors: - "", + "-1: 4, 0, 1: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1273,17 +1273,18 @@ const cPrefab::sDef g_SandVillagePrefabs[] = "c:128: 1\n" /* sandstonestairs */ "d: 24: 0\n" /* sandstone */ "e:128: 3\n" /* sandstonestairs */ - "f: 64: 5\n" /* wooddoorblock */ - "g:102: 0\n" /* glasspane */ - "h: 64:12\n" /* wooddoorblock */ - "i:128: 7\n" /* sandstonestairs */ - "j: 50: 3\n" /* torch */ - "k: 50: 4\n" /* torch */ - "l:128: 6\n" /* sandstonestairs */ + "f: 64: 7\n" /* wooddoorblock */ + "g: 64: 5\n" /* wooddoorblock */ + "h:102: 0\n" /* glasspane */ + "i: 64:12\n" /* wooddoorblock */ + "j:128: 7\n" /* sandstonestairs */ + "k: 50: 3\n" /* torch */ + "l: 50: 4\n" /* torch */ "m: 19: 0\n" /* sponge */ - "n:128: 5\n" /* sandstonestairs */ - "o:128: 4\n" /* sandstonestairs */ - "p: 50: 1\n" /* torch */, + "n:128: 6\n" /* sandstonestairs */ + "o:128: 5\n" /* sandstonestairs */ + "p:128: 4\n" /* sandstonestairs */ + "q: 50: 1\n" /* torch */, // Block data: // Level 0 @@ -1310,7 +1311,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* 2 */ ".d..........d." /* 3 */ ".d..........d." /* 4 */ ".d..........d." - /* 5 */ ".ddddfddd...d." + /* 5 */ ".ddddgddd...d." /* 6 */ "........d...d." /* 7 */ "mmmmmmm.d...d." /* 8 */ "mmmmmmm.d...d." @@ -1322,49 +1323,49 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* z\x* 1111 */ /* * 01234567890123 */ /* 0 */ ".............." - /* 1 */ ".dggdggdhdggd." - /* 2 */ ".g..........g." - /* 3 */ ".g..........g." - /* 4 */ ".g..........d." - /* 5 */ ".dggdhdgg...g." - /* 6 */ "........g...g." + /* 1 */ ".dhhdhhdidhhd." + /* 2 */ ".h..........h." + /* 3 */ ".h..........h." + /* 4 */ ".h..........d." + /* 5 */ ".dhhdidhh...h." + /* 6 */ "........h...h." /* 7 */ "mmmmmmm.d...d." - /* 8 */ "mmmmmmm.g...g." - /* 9 */ "mmmmmmm.g...g." - /* 10 */ "mmmmmmm.dgggd." + /* 8 */ "mmmmmmm.h...h." + /* 9 */ "mmmmmmm.h...h." + /* 10 */ "mmmmmmm.dhhhd." /* 11 */ "mmmmmmm......." // Level 3 /* z\x* 1111 */ /* * 01234567890123 */ /* 0 */ "bbbbbbbbbbbbbb" - /* 1 */ "iddddddddddddc" - /* 2 */ ".d.....j.j..dc" + /* 1 */ "jddddddddddddc" + /* 2 */ ".d.....k.k..dc" /* 3 */ ".d..........dc" - /* 4 */ ".d..k.k.....dc" - /* 5 */ "ldddddddd...dc" + /* 4 */ ".d..l.l.....dc" + /* 5 */ "ndddddddd...dc" /* 6 */ "eeeeeeead...dc" /* 7 */ "mmmmmmmad...dc" /* 8 */ "mmmmmmmad...dc" /* 9 */ "mmmmmmmad...dc" /* 10 */ "mmmmmmmadddddc" - /* 11 */ "mmmmmmman...oc" + /* 11 */ "mmmmmmmao...pc" // Level 4 /* z\x* 1111 */ /* * 01234567890123 */ /* 0 */ ".............." /* 1 */ "bbbbbbbbbbbbb." - /* 2 */ "idddddddddddc." - /* 3 */ ".dp........dc." - /* 4 */ "lddddddddd.dc." + /* 2 */ "jdddddddddddc." + /* 3 */ ".dq........dc." + /* 4 */ "nddddddddd.dc." /* 5 */ "eeeeeeeead.dc." /* 6 */ "........ad.dc." /* 7 */ "mmmmmmm.ad.dc." /* 8 */ "mmmmmmm.ad.dc." - /* 9 */ "mmmmmmm.adkdc." + /* 9 */ "mmmmmmm.adldc." /* 10 */ "mmmmmmm.adddc." - /* 11 */ "mmmmmmm.an.oc." + /* 11 */ "mmmmmmm.ao.pc." // Level 5 /* z\x* 1111 */ @@ -1383,7 +1384,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* 11 */ "mmmmmmm..adc..", // Connectors: - "", + "-1: 8, 0, 1: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1424,19 +1425,18 @@ const cPrefab::sDef g_SandVillagePrefabs[] = "c:128: 1\n" /* sandstonestairs */ "d: 24: 0\n" /* sandstone */ "e:128: 3\n" /* sandstonestairs */ - "f: 64: 5\n" /* wooddoorblock */ - "g: 64: 7\n" /* wooddoorblock */ - "h:102: 0\n" /* glasspane */ - "i: 64:12\n" /* wooddoorblock */ - "j:128: 7\n" /* sandstonestairs */ - "k: 50: 3\n" /* torch */ - "l: 50: 2\n" /* torch */ + "f: 64: 7\n" /* wooddoorblock */ + "g:102: 0\n" /* glasspane */ + "h: 64:12\n" /* wooddoorblock */ + "i:128: 7\n" /* sandstonestairs */ + "j: 50: 3\n" /* torch */ + "k: 50: 2\n" /* torch */ + "l: 50: 4\n" /* torch */ "m: 19: 0\n" /* sponge */ - "n: 50: 4\n" /* torch */ - "o:128: 6\n" /* sandstonestairs */ - "p: 50: 1\n" /* torch */ - "q:128: 5\n" /* sandstonestairs */ - "r:128: 4\n" /* sandstonestairs */, + "n:128: 6\n" /* sandstonestairs */ + "o: 50: 1\n" /* torch */ + "p:128: 5\n" /* sandstonestairs */ + "q:128: 4\n" /* sandstonestairs */, // Block data: // Level 0 @@ -1465,7 +1465,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* 4 */ ".d..........d." /* 5 */ ".d..........d." /* 6 */ ".d..........d." - /* 7 */ ".ddddgd.....d." + /* 7 */ ".ddddfd.....d." /* 8 */ "......d.....d." /* 9 */ "mmmmm.d.....d." /* 10 */ "mmmmm.ddddddd." @@ -1475,49 +1475,49 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* z\x* 1111 */ /* * 01234567890123 */ /* 0 */ ".............." - /* 1 */ ".dhhdidhhdhhd." - /* 2 */ ".h..........h." - /* 3 */ ".h..........h." + /* 1 */ ".dggdhdggdggd." + /* 2 */ ".g..........g." + /* 3 */ ".g..........g." /* 4 */ ".d..........d." - /* 5 */ ".h..........h." - /* 6 */ ".h..........h." - /* 7 */ ".dhhdid.....d." - /* 8 */ "......h.....h." - /* 9 */ "mmmmm.h.....h." - /* 10 */ "mmmmm.dhhdhhd." + /* 5 */ ".g..........g." + /* 6 */ ".g..........g." + /* 7 */ ".dggdhd.....d." + /* 8 */ "......g.....g." + /* 9 */ "mmmmm.g.....g." + /* 10 */ "mmmmm.dggdggd." /* 11 */ "mmmmm........." // Level 3 /* z\x* 1111 */ /* * 01234567890123 */ /* 0 */ "bbbbbbbbbbbbbb" - /* 1 */ "jddddddddddddc" - /* 2 */ ".d..k.k.....dc" + /* 1 */ "iddddddddddddc" + /* 2 */ ".d..j.j.....dc" /* 3 */ ".d..........dc" - /* 4 */ ".d.........ldc" + /* 4 */ ".d.........kdc" /* 5 */ ".d..........dc" - /* 6 */ ".d..n.n.....dc" - /* 7 */ "oddddddp...ldc" + /* 6 */ ".d..l.l.....dc" + /* 7 */ "nddddddo...kdc" /* 8 */ "eeeeead.....dc" /* 9 */ "mmmmmad.....dc" /* 10 */ "mmmmmadddddddc" - /* 11 */ "mmmmmaq.....rc" + /* 11 */ "mmmmmap.....qc" // Level 4 /* z\x* 1111 */ /* * 01234567890123 */ /* 0 */ ".............." /* 1 */ "bbbbbbbbbbbbc." - /* 2 */ "jdddddddddddc." + /* 2 */ "idddddddddddc." /* 3 */ ".d.........dc." /* 4 */ ".d.........dc." /* 5 */ ".d.........dc." - /* 6 */ "oddddddd...dc." + /* 6 */ "nddddddd...dc." /* 7 */ "eeeeeead...dc." /* 8 */ "......ad...dc." /* 9 */ "mmmmm.ad...dc." /* 10 */ "mmmmm.adddddc." - /* 11 */ "mmmmm.aq...rc." + /* 11 */ "mmmmm.ap...qc." // Level 5 /* z\x* 1111 */ @@ -1525,15 +1525,15 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* 0 */ ".............." /* 1 */ ".............." /* 2 */ "bbbbbbbbbbbb.." - /* 3 */ "jddddddddddc.." + /* 3 */ "iddddddddddc.." /* 4 */ ".d........dc.." - /* 5 */ "odddddddd.dc.." + /* 5 */ "ndddddddd.dc.." /* 6 */ "eeeeeeeed.dc.." /* 7 */ ".......ad.dc.." /* 8 */ ".......ad.dc.." /* 9 */ "mmmmm..ad.dc.." /* 10 */ "mmmmm..adddc.." - /* 11 */ "mmmmm..aq.rc.." + /* 11 */ "mmmmm..ap.qc.." // Level 6 /* z\x* 1111 */ @@ -1552,7 +1552,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* 11 */ "mmmmm...adc...", // Connectors: - "", + "-1: 5, 0, 1: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1619,7 +1619,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* 6 */ "d........d", // Connectors: - "", + "-1: 0, 0, 3: 4\n" /* Type -1, direction X- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1661,8 +1661,8 @@ const cPrefab::sDef g_SandVillagePrefabs[] = "d: 50: 5\n" /* torch */ "e: 26:10\n" /* bedblock */ "f: 26: 2\n" /* bedblock */ - "g: 64: 3\n" /* wooddoorblock */ - "h: 64: 8\n" /* wooddoorblock */ + "g: 64: 5\n" /* wooddoorblock */ + "h: 64:12\n" /* wooddoorblock */ "m: 19: 0\n" /* sponge */, // Block data: @@ -1712,7 +1712,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* 5 */ ".....", // Connectors: - "", + "-1: 2, 0, 4: 3\n" /* Type -1, direction Z+ */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1853,7 +1853,10 @@ const cPrefab::sDef g_SandVillageStartingPrefabs[] = /* 3 */ "bbbb", // Connectors: - "", + "1: 2, 8, 0: 2\n" /* Type 1, direction Z- */ + "1: 0, 8, 1: 4\n" /* Type 1, direction X- */ + "1: 1, 8, 3: 3\n" /* Type 1, direction Z+ */ + "1: 3, 8, 2: 5\n" /* Type 1, direction X+ */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ diff --git a/src/Generating/VillageGen.cpp b/src/Generating/VillageGen.cpp index 3d89d7aa2..3358bc531 100644 --- a/src/Generating/VillageGen.cpp +++ b/src/Generating/VillageGen.cpp @@ -7,6 +7,7 @@ #include "VillageGen.h" #include "Prefabs/PlainsVillagePrefabs.h" #include "Prefabs/SandVillagePrefabs.h" +#include "PieceGenerator.h" @@ -19,18 +20,79 @@ the grid's cells. Each cell checks the biomes in an entire chunk around it, only biomes are village-friendly. If yes, the entire village structure is built for that cell. If not, the cell is left village-less. -A village is generated starting by its well. The well is placed in the grid's origin point. Then a set of -random lengths roads is generated - 4 roads going from the well, then at the end of each road another set of -roads, crossing them perpendicular, then at the end of those another set, up to a set maximum branching -depth. The roads are placed in a T or L shape, with the old road being the center stem of the T. Roads avoid -crossing each other and going further away from the well than the maximum block size of the village. -Finally, houses are places along the roads, avoiding collisions with already-existing items. +A village is generated using the regular BFS piece generator. The well piece is used as the starting piece, +the roads and houses are then used as the following pieces. Only the houses are read from the prefabs, +though, the roads are generated by code and their content is ignored. A special subclass of the cPiecePool +class is used, so that the roads connect to each other and to the well only in predefined manners. -When the village is about to be drawn into a chunk, it queries the heights for each item intersecting the -chunk. The prefabs are shifted so that their pivot points lie on the surface, and the roads are drawn +The well has connectors of type "1". The houses have connectors of type "-1". The roads have connectors of +both types, type "-1" at the far ends and type "1" on the long edges. + +When the village is about to be drawn into a chunk, it queries the heights for each piece intersecting the +chunk. The pieces are shifted so that their pivot points lie on the surface, and the roads are drawn directly by turning the surface blocks into gravel / sandstone. */ +class cVillagePiecePool : + public cPrefabPiecePool +{ + typedef cPrefabPiecePool super; +public: + cVillagePiecePool( + const cPrefab::sDef * a_PieceDefs, size_t a_NumPieceDefs, + const cPrefab::sDef * a_StartingPieceDefs, size_t a_NumStartingPieceDefs + ) : + super(a_PieceDefs, a_NumPieceDefs, a_StartingPieceDefs, a_NumStartingPieceDefs) + { + // Add the road piece: + cBlockArea BA; + BA.Create(5, 1, 3, cBlockArea::baTypes | cBlockArea::baMetas); + BA.Fill(cBlockArea::baTypes | cBlockArea::baMetas, E_BLOCK_GRAVEL, 0); + cPrefab * RoadPiece = new cPrefab(BA, 7); + RoadPiece->AddConnector(0, 0, 1, BLOCK_FACE_XM, -1); + RoadPiece->AddConnector(4, 0, 1, BLOCK_FACE_XP, -1); + RoadPiece->AddConnector(4, 0, 1, BLOCK_FACE_XP, 1); + RoadPiece->AddConnector(1, 0, 0, BLOCK_FACE_ZM, 1); + RoadPiece->AddConnector(3, 0, 0, BLOCK_FACE_ZM, 1); + RoadPiece->AddConnector(1, 0, 2, BLOCK_FACE_ZP, 1); + RoadPiece->AddConnector(3, 0, 2, BLOCK_FACE_ZP, 1); + RoadPiece->SetAddWeightIfSame(10000); + m_AllPieces.push_back(RoadPiece); + m_PiecesByConnector[-1].push_back(RoadPiece); + m_PiecesByConnector[1].push_back(RoadPiece); + } + + + // cPrefabPiecePool overrides: + virtual int GetPieceWeight(const cPlacedPiece & a_PlacedPiece, const cPiece::cConnector & a_ExistingConnector, const cPiece & a_NewPiece) override + { + // Only roads are allowed to connect to the well: + if ((a_PlacedPiece.GetDepth() == 0) && (a_NewPiece.GetSize().y != 1)) + { + return 0; + } + + // Roads cannot branch T-wise: + if ( + (a_PlacedPiece.GetPiece().GetSize().y == 1) && // Connecting to a road + ( + (a_ExistingConnector.m_Direction == BLOCK_FACE_ZP) || + (a_ExistingConnector.m_Direction == BLOCK_FACE_ZM) + ) && // Through the long-edge connector + (a_NewPiece.GetSize().y == 1) // And the new piece is a road + ) + { + return 0; + } + + return ((const cPrefab &)a_NewPiece).GetPieceWeight(a_PlacedPiece, a_ExistingConnector); + } +} ; + + + + + class cVillageGen::cVillage : public cGridStructGen::cStructure { @@ -53,44 +115,11 @@ public: m_Prefabs(a_Prefabs), m_HeightGen(a_HeightGen) { - PlaceWell(); - BuildRoads(a_MaxRoadDepth); - PlaceHouses(); + cBFSPieceGenerator pg(m_Prefabs, a_Seed); + pg.PlacePieces(a_OriginX, 10, a_OriginZ, a_MaxRoadDepth + 1, m_Pieces); } protected: - class cItem - { - public: - /* The position of the item, X/Z-wise: */ - int m_MinX, m_MaxX, m_MinZ, m_MaxZ; - - /** The prefab to use. If NULL, this is a road. */ - cPrefab * m_Prefab; - - /** Number of rotations that should be applied to the prefab. */ - int m_NumRotations; - - /* The bottom of the prefab. Only valid if the item is a prefab, not valid for roads. */ - int m_BaseY; - - /** Creates a new item with the specified parameters. - m_BaseY is set to -1 and will be adjusted later on when drawing. */ - cItem(int a_MinX, int a_MaxX, int a_MinZ, int a_MaxZ, cPrefab * a_Prefab, int a_NumRotations) : - m_MinX(a_MinX), - m_MaxX(a_MaxX), - m_MinZ(a_MinZ), - m_MaxZ(a_MaxZ), - m_Prefab(a_Prefab), - m_NumRotations(a_NumRotations), - m_BaseY(-1) - { - } - } ; - typedef SharedPtr cItemPtr; - typedef std::vector cItemPtrs; - - /** Seed for the random functions */ int m_Seed; @@ -109,61 +138,8 @@ protected: /** The underlying height generator, used for placing the structures on top of the terrain. */ cTerrainHeightGen & m_HeightGen; - /** The items that are generated in the village (houses, roads). */ - cItemPtrs m_Items; - - - /** Places the well at the center of the village */ - void PlaceWell(void) - { - // Pick a prefab from the starting pieces: - cPieces StartingPieces = ((cPiecePool &)m_Prefabs).GetStartingPieces(); - ASSERT(!StartingPieces.empty()); - int TotalWeight = 0; - for (cPieces::const_iterator itr = StartingPieces.begin(), end = StartingPieces.end(); itr != end; ++itr) - { - TotalWeight += ((const cPrefab *)(*itr))->GetDefaultWeight(); - } - ASSERT(TotalWeight > 0); - int rnd = (m_Noise.IntNoise2DInt(m_OriginX, m_OriginZ) / 7) % TotalWeight; - cPiece * WellPiece = StartingPieces[0]; - for (cPieces::const_iterator itr = StartingPieces.begin(), end = StartingPieces.end(); itr != end; ++itr) - { - rnd -= ((const cPrefab *)(*itr))->GetDefaultWeight(); - if (rnd <= 0) - { - WellPiece = *itr; - break; - } - } - ASSERT(WellPiece != NULL); - - // Pick a rotation: - // TODO - int NumRotations = 0; - Vector3i Size = WellPiece->GetSize(); - - // Put the well in the placed items array: - m_Items.push_back(cItemPtr(new cItem(m_OriginX, m_OriginX + Size.x, m_OriginZ, m_OriginZ + Size.z, (cPrefab *)WellPiece, NumRotations))); - } - - - /** Places the roads going from the well outwards. */ - void BuildRoads(int a_MaxRoadDepth) - { - /* - ASSERT(m_Items.size() == 1); - const cItem & Well = *m_Items[0]; - */ - // TODO - } - - - /** Places houses along the roads. */ - void PlaceHouses(void) - { - // TODO - } + /** The village pieces, placed by the generator. */ + cPlacedPieces m_Pieces; // cGrdStructGen::cStructure overrides: @@ -173,6 +149,11 @@ protected: // Iterate over all items // Each intersecting prefab is placed on ground (if not already placed), then drawn // Each intersecting road is drawn by replacing top soil blocks with gravel / sandstone blocks + for (cPlacedPieces::const_iterator itr = m_Pieces.begin(), end = m_Pieces.end(); itr != end; ++itr) + { + const cPrefab & Prefab = (const cPrefab &)((*itr)->GetPiece()); + Prefab.Draw(a_Chunk, *itr); + } // for itr - m_PlacedPieces[] } } ; @@ -183,15 +164,20 @@ protected: /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // cVillageGen: -cPrefabPiecePool cVillageGen::m_SandVillage (g_SandVillagePrefabs, g_SandVillagePrefabsCount, g_SandVillageStartingPrefabs, g_SandVillageStartingPrefabsCount); -cPrefabPiecePool cVillageGen::m_PlainsVillage(g_PlainsVillagePrefabs, g_PlainsVillagePrefabsCount, g_PlainsVillageStartingPrefabs, g_PlainsVillageStartingPrefabsCount); +/** The prefabs for the sand village. */ +static cVillagePiecePool g_SandVillage (g_SandVillagePrefabs, g_SandVillagePrefabsCount, g_SandVillageStartingPrefabs, g_SandVillageStartingPrefabsCount); + +/** The prefabs for the plains village. */ +static cVillagePiecePool g_PlainsVillage(g_PlainsVillagePrefabs, g_PlainsVillagePrefabsCount, g_PlainsVillageStartingPrefabs, g_PlainsVillageStartingPrefabsCount); -cVillageGen::cVillageGen(int a_Seed, int a_GridSize, int a_MaxRoadDepth, int a_MaxSize, cBiomeGen & a_BiomeGen, cTerrainHeightGen & a_HeightGen) : +cVillageGen::cVillageGen(int a_Seed, int a_GridSize, int a_MaxDepth, int a_MaxSize, cBiomeGen & a_BiomeGen, cTerrainHeightGen & a_HeightGen) : super(a_Seed, a_GridSize, a_GridSize, a_MaxSize, a_MaxSize, 100), + m_MaxDepth(a_MaxDepth), + m_MaxSize(a_MaxSize), m_BiomeGen(a_BiomeGen), m_HeightGen(a_HeightGen) { @@ -211,7 +197,7 @@ cGridStructGen::cStructurePtr cVillageGen::CreateStructure(int a_OriginX, int a_ // Check if all the biomes are village-friendly: // If just one is not, no village is created, because it's likely that an unfriendly biome is too close - cPrefabPiecePool * VillagePrefabs = NULL; + cVillagePiecePool * VillagePrefabs = NULL; for (size_t i = 0; i < ARRAYCOUNT(Biomes); i++) { switch (Biomes[i]) @@ -220,7 +206,7 @@ cGridStructGen::cStructurePtr cVillageGen::CreateStructure(int a_OriginX, int a_ case biDesertM: { // These biomes allow sand villages - VillagePrefabs = &m_SandVillage; + VillagePrefabs = &g_SandVillage; break; } case biPlains: @@ -229,7 +215,7 @@ cGridStructGen::cStructurePtr cVillageGen::CreateStructure(int a_OriginX, int a_ case biSunflowerPlains: { // These biomes allow plains-style villages - VillagePrefabs = &m_PlainsVillage; + VillagePrefabs = &g_PlainsVillage; break; } default: @@ -245,7 +231,7 @@ cGridStructGen::cStructurePtr cVillageGen::CreateStructure(int a_OriginX, int a_ { return cStructurePtr(); } - return cStructurePtr(new cVillage(m_Seed, a_OriginX, a_OriginZ, m_MaxRoadDepth, m_MaxSize, *VillagePrefabs, m_HeightGen)); + return cStructurePtr(new cVillage(m_Seed, a_OriginX, a_OriginZ, m_MaxDepth, m_MaxSize, *VillagePrefabs, m_HeightGen)); } diff --git a/src/Generating/VillageGen.h b/src/Generating/VillageGen.h index acbd76881..c6f8f024a 100644 --- a/src/Generating/VillageGen.h +++ b/src/Generating/VillageGen.h @@ -21,19 +21,13 @@ class cVillageGen : { typedef cGridStructGen super; public: - cVillageGen(int a_Seed, int a_GridSize, int a_MaxRoadDepth, int a_MaxSize, cBiomeGen & a_BiomeGen, cTerrainHeightGen & a_HeightGen); + cVillageGen(int a_Seed, int a_GridSize, int a_MaxDepth, int a_MaxSize, cBiomeGen & a_BiomeGen, cTerrainHeightGen & a_HeightGen); protected: class cVillage; // fwd: VillageGen.cpp - /** The prefabs for the sand village. We're not exactly using the cPiecePool functionality, only the containment. */ - static cPrefabPiecePool m_SandVillage; - - /** The prefabs for the plains village. We're not exactly using the cPiecePool functionality, only the containment. */ - static cPrefabPiecePool m_PlainsVillage; - - /** Maximum number of roads generated one from another (tree depth). */ - int m_MaxRoadDepth; + /** Maximum depth of the generator tree*/ + int m_MaxDepth; /** Maximum size, in X/Z blocks, of the village (radius from the origin) */ int m_MaxSize; -- cgit v1.2.3 From 34e5f0c16422f93d3f8f0f802522fa113fa9aa20 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Thu, 15 May 2014 10:43:54 +0200 Subject: Changed village road generation to use multiple prefabs. --- src/Generating/Prefabs/PlainsVillagePrefabs.cpp | 8 ++-- src/Generating/Prefabs/SandVillagePrefabs.cpp | 8 ++-- src/Generating/VillageGen.cpp | 61 ++++++++++++------------- 3 files changed, 38 insertions(+), 39 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp index 508f0d3b6..06b1395c5 100644 --- a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp +++ b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp @@ -3691,10 +3691,10 @@ const cPrefab::sDef g_PlainsVillageStartingPrefabs[] = /* 3 */ "bbbb", // Connectors: - "1: 1, 9, 3: 3\n" /* Type 1, direction Z+ */ - "1: 2, 9, 0: 2\n" /* Type 1, direction Z- */ - "1: 0, 9, 1: 4\n" /* Type 1, direction X- */ - "1: 3, 9, 2: 5\n" /* Type 1, direction X+ */, + "2: 1, 9, 3: 3\n" /* Type 2, direction Z+ */ + "2: 2, 9, 0: 2\n" /* Type 2, direction Z- */ + "2: 0, 9, 1: 4\n" /* Type 2, direction X- */ + "2: 3, 9, 2: 5\n" /* Type 2, direction X+ */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ diff --git a/src/Generating/Prefabs/SandVillagePrefabs.cpp b/src/Generating/Prefabs/SandVillagePrefabs.cpp index 51411dea2..8460ee5f7 100644 --- a/src/Generating/Prefabs/SandVillagePrefabs.cpp +++ b/src/Generating/Prefabs/SandVillagePrefabs.cpp @@ -1853,10 +1853,10 @@ const cPrefab::sDef g_SandVillageStartingPrefabs[] = /* 3 */ "bbbb", // Connectors: - "1: 2, 8, 0: 2\n" /* Type 1, direction Z- */ - "1: 0, 8, 1: 4\n" /* Type 1, direction X- */ - "1: 1, 8, 3: 3\n" /* Type 1, direction Z+ */ - "1: 3, 8, 2: 5\n" /* Type 1, direction X+ */, + "2: 2, 8, 0: 2\n" /* Type 2, direction Z- */ + "2: 0, 8, 1: 4\n" /* Type 2, direction X- */ + "2: 1, 8, 3: 3\n" /* Type 2, direction Z+ */ + "2: 3, 8, 2: 5\n" /* Type 2, direction X+ */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ diff --git a/src/Generating/VillageGen.cpp b/src/Generating/VillageGen.cpp index 3358bc531..b514a90cd 100644 --- a/src/Generating/VillageGen.cpp +++ b/src/Generating/VillageGen.cpp @@ -44,43 +44,42 @@ public: ) : super(a_PieceDefs, a_NumPieceDefs, a_StartingPieceDefs, a_NumStartingPieceDefs) { - // Add the road piece: - cBlockArea BA; - BA.Create(5, 1, 3, cBlockArea::baTypes | cBlockArea::baMetas); - BA.Fill(cBlockArea::baTypes | cBlockArea::baMetas, E_BLOCK_GRAVEL, 0); - cPrefab * RoadPiece = new cPrefab(BA, 7); - RoadPiece->AddConnector(0, 0, 1, BLOCK_FACE_XM, -1); - RoadPiece->AddConnector(4, 0, 1, BLOCK_FACE_XP, -1); - RoadPiece->AddConnector(4, 0, 1, BLOCK_FACE_XP, 1); - RoadPiece->AddConnector(1, 0, 0, BLOCK_FACE_ZM, 1); - RoadPiece->AddConnector(3, 0, 0, BLOCK_FACE_ZM, 1); - RoadPiece->AddConnector(1, 0, 2, BLOCK_FACE_ZP, 1); - RoadPiece->AddConnector(3, 0, 2, BLOCK_FACE_ZP, 1); - RoadPiece->SetAddWeightIfSame(10000); - m_AllPieces.push_back(RoadPiece); - m_PiecesByConnector[-1].push_back(RoadPiece); - m_PiecesByConnector[1].push_back(RoadPiece); + // Add the road pieces: + for (int len = 19; len < 60; len += 8) + { + cBlockArea BA; + BA.Create(len, 1, 3, cBlockArea::baTypes | cBlockArea::baMetas); + BA.Fill(cBlockArea::baTypes | cBlockArea::baMetas, E_BLOCK_GRAVEL, 0); + cPrefab * RoadPiece = new cPrefab(BA, 1); + RoadPiece->AddConnector(0, 0, 1, BLOCK_FACE_XM, -2); + RoadPiece->AddConnector(len - 1, 0, 1, BLOCK_FACE_XP, -2); + + // Add the road connectors: + for (int x = 1; x < len; x += 8) + { + RoadPiece->AddConnector(x, 0, 0, BLOCK_FACE_ZM, 2); + RoadPiece->AddConnector(x, 0, 2, BLOCK_FACE_ZP, 2); + } + + // Add the buildings connectors: + for (int x = 5; x < len; x += 8) + { + RoadPiece->AddConnector(x, 0, 0, BLOCK_FACE_ZM, 1); + RoadPiece->AddConnector(x, 0, 2, BLOCK_FACE_ZP, 1); + } + m_AllPieces.push_back(RoadPiece); + m_PiecesByConnector[-2].push_back(RoadPiece); + m_PiecesByConnector[1].push_back(RoadPiece); + m_PiecesByConnector[2].push_back(RoadPiece); + } // for len - roads of varying length } // cPrefabPiecePool overrides: virtual int GetPieceWeight(const cPlacedPiece & a_PlacedPiece, const cPiece::cConnector & a_ExistingConnector, const cPiece & a_NewPiece) override { - // Only roads are allowed to connect to the well: - if ((a_PlacedPiece.GetDepth() == 0) && (a_NewPiece.GetSize().y != 1)) - { - return 0; - } - - // Roads cannot branch T-wise: - if ( - (a_PlacedPiece.GetPiece().GetSize().y == 1) && // Connecting to a road - ( - (a_ExistingConnector.m_Direction == BLOCK_FACE_ZP) || - (a_ExistingConnector.m_Direction == BLOCK_FACE_ZM) - ) && // Through the long-edge connector - (a_NewPiece.GetSize().y == 1) // And the new piece is a road - ) + // Roads cannot branch T-wise (appending -2 connector to a +2 connector): + if ((a_ExistingConnector.m_Type == 2) && (a_PlacedPiece.GetDepth() > 0)) { return 0; } -- cgit v1.2.3 From 56f7ad2cd9f1bfd69502918ebe760748e453959d Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Thu, 15 May 2014 10:44:08 +0200 Subject: Changed village generator defaults to more reasonable values. --- src/Generating/ComposableGenerator.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/ComposableGenerator.cpp b/src/Generating/ComposableGenerator.cpp index 1bb836684..f264599c9 100644 --- a/src/Generating/ComposableGenerator.cpp +++ b/src/Generating/ComposableGenerator.cpp @@ -408,8 +408,8 @@ void cComposableGenerator::InitFinishGens(cIniFile & a_IniFile) } else if (NoCaseCompare(*itr, "Villages") == 0) { - int GridSize = a_IniFile.GetValueSetI("Generator", "VillageGridSize", 256); - int MaxDepth = a_IniFile.GetValueSetI("Generator", "VillageMaxDepth", 7); + int GridSize = a_IniFile.GetValueSetI("Generator", "VillageGridSize", 384); + int MaxDepth = a_IniFile.GetValueSetI("Generator", "VillageMaxDepth", 3); int MaxSize = a_IniFile.GetValueSetI("Generator", "VillageMaxSize", 128); m_FinishGens.push_back(new cVillageGen(Seed, GridSize, MaxDepth, MaxSize, *m_BiomeGen, *m_HeightGen)); } -- cgit v1.2.3 From 70b0547499c4343e3071a54e3c093712669a3a8f Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Thu, 15 May 2014 16:03:45 +0200 Subject: Fixed a NULL ptr failure in GridStructGen. When the descendant generator returned a NULL structure, the generator would crash. Now it uses a special cEmptyStructure class instead. --- src/Generating/GridStructGen.cpp | 35 ++++++++++++++++++++++++++++++++++- src/Generating/GridStructGen.h | 16 ++++++++-------- 2 files changed, 42 insertions(+), 9 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/GridStructGen.cpp b/src/Generating/GridStructGen.cpp index 3bbc89054..23946e2e9 100644 --- a/src/Generating/GridStructGen.cpp +++ b/src/Generating/GridStructGen.cpp @@ -9,6 +9,34 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// cEmptyStructure: + +/** A cStructure descendant representing an empty structure. +Used when the generator descended from cGridStructGen doesn't return any structure, to keep at least the +Origin coords so that the structure isn't queried over and over again. */ +class cEmptyStructure : + public cGridStructGen::cStructure +{ + typedef cGridStructGen::cStructure super; + +public: + cEmptyStructure(int a_OriginX, int a_OriginZ) : + super(a_OriginX, a_OriginZ) + { + } + +protected: + virtual void DrawIntoChunk(cChunkDesc & a_ChunkDesc) override + { + // Do nothing + } +} ; + + + + + cGridStructGen::cGridStructGen( int a_Seed, int a_GridSizeX, int a_GridSizeZ, @@ -81,7 +109,12 @@ void cGridStructGen::GetStructuresForChunk(int a_ChunkX, int a_ChunkZ, cStructur } // for itr - a_Structures[] if (!Found) { - a_Structures.push_back(CreateStructure(OriginX, OriginZ)); + cStructurePtr Structure = CreateStructure(OriginX, OriginZ); + if (Structure.get() == NULL) + { + Structure.reset(new cEmptyStructure(OriginX, OriginZ)); + } + a_Structures.push_back(Structure); } } // for z } // for x diff --git a/src/Generating/GridStructGen.h b/src/Generating/GridStructGen.h index 234cc75c5..630a5e44e 100644 --- a/src/Generating/GridStructGen.h +++ b/src/Generating/GridStructGen.h @@ -39,14 +39,6 @@ class cGridStructGen : public cFinishGen { public: - cGridStructGen( - int a_Seed, - int a_GridSizeX, int a_GridSizeZ, - int a_MaxStructureSizeX, int a_MaxStructureSizeZ, - size_t a_MaxCacheSize - ); - -protected: /** Represents a single structure that occupies the grid point. Knows how to draw itself into a chunk. */ class cStructure { @@ -75,6 +67,14 @@ protected: typedef std::list cStructurePtrs; + cGridStructGen( + int a_Seed, + int a_GridSizeX, int a_GridSizeZ, + int a_MaxStructureSizeX, int a_MaxStructureSizeZ, + size_t a_MaxCacheSize + ); + +protected: /** Seed for generating the semi-random grid. */ int m_Seed; -- cgit v1.2.3 From fc5c3abcba9153196727a77e726bb0b37d5c7450 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Sat, 17 May 2014 02:26:44 +0200 Subject: Updated PlainsVillage prefabs to the latest Gallery contents. --- src/Generating/Prefabs/PlainsVillagePrefabs.cpp | 5283 +++++++++++++---------- 1 file changed, 2955 insertions(+), 2328 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp index 06b1395c5..863720ab4 100644 --- a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp +++ b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp @@ -16,165 +16,246 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = { /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // Forge: - // The data has been exported from the gallery Plains, area index 51, ID 102, created by Aloe_vera + // BigPlantBed: + // The data has been exported from the gallery Plains, area index 26, ID 70, created by Taugrammaton { // Size: - 12, 8, 11, // SizeX = 12, SizeY = 8, SizeZ = 11 + 13, 4, 12, // SizeX = 13, SizeY = 4, SizeZ = 12 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 11, 7, 10, // MaxX, MaxY, MaxZ + 12, 3, 11, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 67: 0\n" /* stairs */ - "b: 67: 2\n" /* stairs */ - "c: 67: 1\n" /* stairs */ - "d: 4: 0\n" /* cobblestone */ - "e: 17: 0\n" /* tree */ - "f: 5: 0\n" /* wood */ - "g: 64: 6\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 */ + "a: 3: 0\n" /* dirt */ + "b: 5: 0\n" /* wood */ + "c: 13: 0\n" /* gravel */ + "d: 17: 0\n" /* tree */ + "e: 60: 7\n" /* tilleddirt */ + "f: 8: 0\n" /* water */ + "g: 85: 0\n" /* fence */ + "h: 59: 7\n" /* crops */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "aaaaaaaaaaaaa" + /* 1 */ "aaaaaaaaaaaaa" + /* 2 */ "aaaaaaaaaaaaa" + /* 3 */ "aaaaaaaaaaaaa" + /* 4 */ "aaaaaaaaaaaaa" + /* 5 */ "aaaaaaaaaaaaa" + /* 6 */ "aaaaaaaaaaaaa" + /* 7 */ "aaaaaaaaaaaaa" + /* 8 */ "aaaaaaaaaaaaa" + /* 9 */ "aaaaaaaaaaaaa" + /* 10 */ "aaaaaaaaaaaaa" + /* 11 */ "aaaaaaaaaaaaa" + + // Level 1 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "bbbbbbbbbbbbb" + /* 1 */ "bcccccccccccb" + /* 2 */ "bcccccccccccb" + /* 3 */ "bcccccccccccb" + /* 4 */ "bcccccccccccb" + /* 5 */ "bcccccccccccb" + /* 6 */ "bcccccccccccb" + /* 7 */ "bcccccccccccb" + /* 8 */ "bcccccccccccb" + /* 9 */ "bcccccccccccb" + /* 10 */ "bcccccccccccb" + /* 11 */ "bbbbbbbbbbbbb" + + // Level 2 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "ddddddddddddd" + /* 1 */ "deefeefeefeed" + /* 2 */ "deefeefeefeed" + /* 3 */ "deefeefeefeed" + /* 4 */ "deefeefeefeed" + /* 5 */ "deefeefeefeed" + /* 6 */ "deefeefeefeed" + /* 7 */ "deefeefeefeed" + /* 8 */ "deefeefeefeed" + /* 9 */ "deefeefeefeed" + /* 10 */ "deefeefeefeed" + /* 11 */ "ddddddddddddd" + + // Level 3 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "g..g..g..g..g" + /* 1 */ "ghh.h..hh.hhg" + /* 2 */ "ghh..h.hh.hhg" + /* 3 */ "ghh.h..h..hhg" + /* 4 */ "ghh.hh.h..hhg" + /* 5 */ "ghh.h..hh.hhg" + /* 6 */ "ghh.hh.hh.hhg" + /* 7 */ "ghh....h..hhg" + /* 8 */ "ghh..h....hhg" + /* 9 */ "ghh.....h.hhg" + /* 10 */ "ghh.hh.h..hhg" + /* 11 */ "g..g..g..g..g", + + // Connectors: + "-1: 7, 1, 11: 3\n" /* Type -1, direction Z+ */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // BigPlantBed + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // CobbleHouse10x5Library: + // The data has been exported from the gallery Plains, area index 23, ID 66, created by xoft + { + // Size: + 12, 8, 7, // SizeX = 12, SizeY = 8, SizeZ = 7 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 11, 7, 6, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 3: 0\n" /* dirt */ + "b: 2: 0\n" /* grass */ + "c: 67: 0\n" /* stairs */ + "d: 67: 2\n" /* stairs */ + "e: 67: 1\n" /* stairs */ + "f: 4: 0\n" /* cobblestone */ + "g: 64: 7\n" /* wooddoorblock */ + "h: 53: 3\n" /* woodstairs */ + "i: 53: 1\n" /* woodstairs */ + "j: 85: 0\n" /* fence */ + "k: 53: 0\n" /* woodstairs */ + "l: 53: 2\n" /* woodstairs */ "m: 19: 0\n" /* sponge */ - "n:139: 0\n" /* cobblestonewall */ - "o:101: 0\n" /* ironbars */ - "p: 53: 2\n" /* woodstairs */ - "q: 53: 7\n" /* woodstairs */ - "r: 50: 2\n" /* torch */ - "s: 50: 1\n" /* torch */ - "t: 53: 6\n" /* woodstairs */ - "u: 53: 3\n" /* woodstairs */ - "v: 43: 0\n" /* doubleslab */ - "w: 44: 0\n" /* step */, + "n:102: 0\n" /* glasspane */ + "o: 64:12\n" /* wooddoorblock */ + "p: 50: 3\n" /* torch */ + "q: 72: 0\n" /* woodplate */ + "r: 50: 4\n" /* torch */ + "s: 53: 7\n" /* woodstairs */ + "t: 47: 0\n" /* bookshelf */ + "u: 50: 1\n" /* torch */ + "v: 50: 2\n" /* torch */ + "w: 53: 6\n" /* woodstairs */ + "x: 5: 0\n" /* wood */, // Block data: // Level 0 /* z\x* 11 */ /* * 012345678901 */ - /* 0 */ ".....abbbc.." - /* 1 */ ".ddddddddc.." - /* 2 */ ".ddddddddc.." - /* 3 */ ".ddddddddddd" - /* 4 */ ".ddddddddddd" - /* 5 */ ".ddddddddddd" - /* 6 */ ".ddddddddddd" - /* 7 */ ".ddddddddddd" - /* 8 */ ".ddddd.mmmmm" - /* 9 */ ".ddddd.mmmmm" - /* 10 */ ".......mmmmm" + /* 0 */ "aaaaaaaaaaaa" + /* 1 */ "aaaaaaaaaaaa" + /* 2 */ "aaaaaaaaaaaa" + /* 3 */ "aaaaaaaaaaaa" + /* 4 */ "aaaaaaaaaaaa" + /* 5 */ "aaaaaaaaaaaa" + /* 6 */ "aaaaaaaaaaaa" // Level 1 /* z\x* 11 */ /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ ".efffe......" - /* 2 */ ".f...g......" - /* 3 */ ".f...ed..ddd" - /* 4 */ ".f...f...dhd" - /* 5 */ ".f...f...dhd" - /* 6 */ ".f...fijjdhd" - /* 7 */ ".f...edddddd" - /* 8 */ ".f...f.mmmmm" - /* 9 */ ".efffe.mmmmm" - /* 10 */ ".......mmmmm" + /* 0 */ "bbbbbbbaaabb" + /* 1 */ "baaaaaaaaaab" + /* 2 */ "baaaaaaaaaab" + /* 3 */ "baaaaaaaaaab" + /* 4 */ "baaaaaaaaaab" + /* 5 */ "baaaaaaaaaab" + /* 6 */ "bbbbbbbbbbbb" // Level 2 /* z\x* 11 */ /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ ".ekkke......" - /* 2 */ ".k...l......" - /* 3 */ ".k...en..n.d" - /* 4 */ ".k...k.....o" - /* 5 */ ".f...k.....o" - /* 6 */ ".k...k.....o" - /* 7 */ ".k...edooood" - /* 8 */ ".k...f.mmmmm" - /* 9 */ ".ekkke.mmmmm" - /* 10 */ ".......mmmmm" + /* 0 */ ".......cde.." + /* 1 */ ".ffffffffff." + /* 2 */ ".ffffffffff." + /* 3 */ ".ffffffffff." + /* 4 */ ".ffffffffff." + /* 5 */ ".ffffffffff." + /* 6 */ "............" // Level 3 /* z\x* 11 */ /* * 012345678901 */ - /* 0 */ "ppppppp....." - /* 1 */ "qfffffq....." - /* 2 */ ".f...f......" - /* 3 */ ".f..rfd..dod" - /* 4 */ ".f...f...o.d" - /* 5 */ ".f...f...o.d" - /* 6 */ ".fs..f...o.d" - /* 7 */ ".f...fdddddd" - /* 8 */ ".f...f.mmmmm" - /* 9 */ "tffffftmmmmm" - /* 10 */ "uuuuuuummmmm" + /* 0 */ "............" + /* 1 */ ".fffffffgff." + /* 2 */ ".fh.ijk...f." + /* 3 */ ".fj.......f." + /* 4 */ ".fl.ijkijkf." + /* 5 */ ".ffffffffff." + /* 6 */ "............" // Level 4 /* z\x* 11 */ /* * 012345678901 */ /* 0 */ "............" - /* 1 */ "ppppppp....." - /* 2 */ "qfffffq....." - /* 3 */ ".f...fvvvvvv" - /* 4 */ ".f...fvwwwwv" - /* 5 */ ".f...fvwwwwv" - /* 6 */ ".f...fvwwwwv" - /* 7 */ ".f...fvvvvvv" - /* 8 */ "tffffftmmmmm" - /* 9 */ "uuuuuuummmmm" - /* 10 */ ".......mmmmm" + /* 1 */ ".fnnfnnfoff." + /* 2 */ ".n..pq.p.pn." + /* 3 */ ".nq.......n." + /* 4 */ ".n..rq.rq.n." + /* 5 */ ".fnnfnnfnnf." + /* 6 */ "............" // Level 5 /* z\x* 11 */ /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "............" - /* 2 */ "ppppppp....." - /* 3 */ "qfffffq....." - /* 4 */ ".f...f......" - /* 5 */ ".f...f......" - /* 6 */ ".f...f......" - /* 7 */ "tffffft....." - /* 8 */ "uuuuuuummmmm" - /* 9 */ ".......mmmmm" - /* 10 */ ".......mmmmm" + /* 0 */ "llllllllllll" + /* 1 */ "sffffffffffs" + /* 2 */ ".fttttttttf." + /* 3 */ ".fu......vf." + /* 4 */ ".fttttttttf." + /* 5 */ "wffffffffffw" + /* 6 */ "hhhhhhhhhhhh" // Level 6 /* z\x* 11 */ /* * 012345678901 */ /* 0 */ "............" - /* 1 */ "............" - /* 2 */ "............" - /* 3 */ "ppppppp....." - /* 4 */ "qfffffq....." - /* 5 */ ".f...f......" - /* 6 */ "tffffft....." - /* 7 */ "uuuuuuu....." - /* 8 */ ".......mmmmm" - /* 9 */ ".......mmmmm" - /* 10 */ ".......mmmmm" + /* 1 */ "llllllllllll" + /* 2 */ "sxxxxxxxxxxs" + /* 3 */ ".xxxxxxxxxx." + /* 4 */ "wxxxxxxxxxxw" + /* 5 */ "hhhhhhhhhhhh" + /* 6 */ "............" // Level 7 /* z\x* 11 */ /* * 012345678901 */ /* 0 */ "............" /* 1 */ "............" - /* 2 */ "............" - /* 3 */ "............" - /* 4 */ "ppppppp....." - /* 5 */ "fffffff....." - /* 6 */ "uuuuuuu....." - /* 7 */ "............" - /* 8 */ ".......mmmmm" - /* 9 */ ".......mmmmm" - /* 10 */ ".......mmmmm", + /* 2 */ "llllllllllll" + /* 3 */ "xxxxxxxxxxxx" + /* 4 */ "hhhhhhhhhhhh" + /* 5 */ "............" + /* 6 */ "............", // Connectors: - "-1: 7, 0, 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 */ @@ -193,102 +274,59 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, - }, // Forge + }, // CobbleHouse10x5Library /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // PlainsVillage_100: - // The data has been exported from the gallery Plains, area index 49, ID 100, created by Aloe_vera + // DoublePlantBed: + // The data has been exported from the gallery Plains, area index 5, ID 20, created by tonibm1999 { // Size: - 7, 6, 7, // SizeX = 7, SizeY = 6, SizeZ = 7 + 15, 2, 9, // SizeX = 15, SizeY = 2, SizeZ = 9 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 6, 5, 6, // MaxX, MaxY, MaxZ + 14, 1, 8, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 67: 0\n" /* stairs */ - "b: 67: 2\n" /* stairs */ - "c: 67: 1\n" /* stairs */ - "d: 4: 0\n" /* cobblestone */ - "e: 17: 0\n" /* tree */ - "f: 5: 0\n" /* wood */ - "g: 64: 7\n" /* wooddoorblock */ - "h: 64:12\n" /* wooddoorblock */ - "i:102: 0\n" /* glasspane */ - "j: 53: 2\n" /* woodstairs */ - "k: 53: 7\n" /* woodstairs */ - "l: 50: 3\n" /* torch */ - "m: 19: 0\n" /* sponge */ - "n: 53: 6\n" /* woodstairs */ - "o: 53: 3\n" /* woodstairs */, + "a: 17: 0\n" /* tree */ + "b: 60: 7\n" /* tilleddirt */ + "c: 8: 0\n" /* water */ + "d: 50: 5\n" /* torch */ + "e: 59: 7\n" /* crops */ + "m: 19: 0\n" /* sponge */, // Block data: // Level 0 - /* z\x* 0123456 */ - /* 0 */ "..abc.." - /* 1 */ ".ddddd." - /* 2 */ ".ddddd." - /* 3 */ ".ddddd." - /* 4 */ ".ddddd." - /* 5 */ ".ddddd." - /* 6 */ "......." + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "aaaaaaamaaaaaaa" + /* 1 */ "abbcbbamabbcbba" + /* 2 */ "abbcbbamabbcbba" + /* 3 */ "abbcbbamabbcbba" + /* 4 */ "abbcbbamabbcbba" + /* 5 */ "abbcbbamabbcbba" + /* 6 */ "abbcbbamabbcbba" + /* 7 */ "abbcbbamabbcbba" + /* 8 */ "aaaaaaamaaaaaaa" // Level 1 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".efgfe." - /* 2 */ ".f...f." - /* 3 */ ".f...f." - /* 4 */ ".f...f." - /* 5 */ ".efffe." - /* 6 */ "......." - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".efhfe." - /* 2 */ ".i...i." - /* 3 */ ".i...i." - /* 4 */ ".i...i." - /* 5 */ ".eiiie." - /* 6 */ "......." - - // Level 3 - /* z\x* 0123456 */ - /* 0 */ "jjjjjjj" - /* 1 */ "kfffffk" - /* 2 */ ".fl.lf." - /* 3 */ ".f...f." - /* 4 */ ".f...f." - /* 5 */ "nfffffn" - /* 6 */ "ooooooo" - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "jjjjjjj" - /* 2 */ "kfffffk" - /* 3 */ ".f...f." - /* 4 */ "nfffffn" - /* 5 */ "ooooooo" - /* 6 */ "......." - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "......." - /* 2 */ "jjjjjjj" - /* 3 */ "fffffff" - /* 4 */ "ooooooo" - /* 5 */ "......." - /* 6 */ ".......", + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "dmmmmmdmdmmmmmd" + /* 1 */ "meemeemmmeemeem" + /* 2 */ "memmmemmmeemeem" + /* 3 */ "memmmmmmmeemeem" + /* 4 */ "meemmemmmeemeem" + /* 5 */ "meemmemmmeemeem" + /* 6 */ "mmemmemmmeemeem" + /* 7 */ "mmememmmmeemeem" + /* 8 */ "dmmmmmdmdmmmmmd", // Connectors: - "-1: 3, 0, 1: 2\n" /* Type -1, direction Z- */, + "-1: 7, 0, 8: 3\n" /* Type -1, direction Z+ */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -307,261 +345,202 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, - }, // PlainsVillage_100 + }, // DoublePlantBed /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // PlainsVillage_103: - // The data has been exported from the gallery Plains, area index 52, ID 103, created by Aloe_vera + // Forge: + // The data has been exported from the gallery Plains, area index 51, ID 102, created by Aloe_vera { // Size: - 11, 7, 9, // SizeX = 11, SizeY = 7, SizeZ = 9 + 12, 10, 11, // SizeX = 12, SizeY = 10, SizeZ = 11 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 10, 6, 8, // MaxX, MaxY, MaxZ + 11, 9, 10, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 67: 0\n" /* stairs */ - "b: 67: 2\n" /* stairs */ - "c: 67: 1\n" /* stairs */ - "d: 4: 0\n" /* cobblestone */ - "e: 17: 0\n" /* tree */ - "f: 5: 0\n" /* wood */ - "g: 64: 7\n" /* wooddoorblock */ - "h:102: 0\n" /* glasspane */ - "i: 64:12\n" /* wooddoorblock */ - "j: 53: 2\n" /* woodstairs */ - "k: 53: 7\n" /* woodstairs */ - "l: 50: 3\n" /* torch */ + "a: 3: 0\n" /* dirt */ + "b: 2: 0\n" /* grass */ + "c: 67: 0\n" /* stairs */ + "d: 67: 2\n" /* stairs */ + "e: 67: 1\n" /* stairs */ + "f: 4: 0\n" /* cobblestone */ + "g: 17: 0\n" /* tree */ + "h: 5: 0\n" /* wood */ + "i: 64: 6\n" /* wooddoorblock */ + "j: 10: 0\n" /* lava */ + "k: 54: 2\n" /* chest */ + "l: 61: 2\n" /* furnace */ "m: 19: 0\n" /* sponge */ - "n: 50: 4\n" /* torch */ - "o: 53: 6\n" /* woodstairs */ - "p: 53: 3\n" /* woodstairs */, + "n:102: 0\n" /* glasspane */ + "o: 64:12\n" /* wooddoorblock */ + "p:139: 0\n" /* cobblestonewall */ + "q:101: 0\n" /* ironbars */ + "r: 53: 2\n" /* woodstairs */ + "s: 53: 7\n" /* woodstairs */ + "t: 50: 2\n" /* torch */ + "u: 50: 1\n" /* torch */ + "v: 53: 6\n" /* woodstairs */ + "w: 53: 3\n" /* woodstairs */ + "x: 43: 0\n" /* doubleslab */ + "y: 44: 0\n" /* step */, // Block data: // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "....abc...." - /* 1 */ ".ddddddddd." - /* 2 */ ".ddddddddd." - /* 3 */ ".ddddddddd." - /* 4 */ ".ddddddddd." - /* 5 */ ".ddddddddd." - /* 6 */ ".ddddddddd." - /* 7 */ ".ddddddddd." - /* 8 */ "..........." + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "aaaaaaaaaaaa" + /* 1 */ "aaaaaaaaaaaa" + /* 2 */ "aaaaaaaaaaaa" + /* 3 */ "aaaaaaaaaaaa" + /* 4 */ "aaaaaaaaaaaa" + /* 5 */ "aaaaaaaaaaaa" + /* 6 */ "aaaaaaaaaaaa" + /* 7 */ "aaaaaaaaaaaa" + /* 8 */ "aaaaaaaaaaaa" + /* 9 */ "aaaaaaaaaaaa" + /* 10 */ "aaaaaaaaaaaa" // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".efffgfffe." - /* 2 */ ".f.......f." - /* 3 */ ".f.......f." - /* 4 */ ".f.......f." - /* 5 */ ".f.......f." - /* 6 */ ".f.......f." - /* 7 */ ".efffffffe." - /* 8 */ "..........." + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "bbbbbaaaaabb" + /* 1 */ "baaaaaaaaabb" + /* 2 */ "baaaaaaaaabb" + /* 3 */ "baaaaaaaaaaa" + /* 4 */ "baaaaaaaaaaa" + /* 5 */ "baaaaaaaaaaa" + /* 6 */ "baaaaaaaaaaa" + /* 7 */ "baaaaaaaaaaa" + /* 8 */ "baaaaabbbbbb" + /* 9 */ "baaaaabbbbbb" + /* 10 */ "bbbbbbbbbbbb" // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".ehhfifhhe." - /* 2 */ ".h.......h." - /* 3 */ ".h.......h." - /* 4 */ ".f.......f." - /* 5 */ ".h.......h." - /* 6 */ ".h.......h." - /* 7 */ ".ehhhfhhhe." - /* 8 */ "..........." + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ ".....cddde.." + /* 1 */ ".ffffffffe.." + /* 2 */ ".ffffffffe.." + /* 3 */ ".fffffffffff" + /* 4 */ ".fffffffffff" + /* 5 */ ".fffffffffff" + /* 6 */ ".fffffffffff" + /* 7 */ ".fffffffffff" + /* 8 */ ".fffff.mmmmm" + /* 9 */ ".fffff.mmmmm" + /* 10 */ ".......mmmmm" // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "jjjjjjjjjjj" - /* 1 */ "kfffffffffk" - /* 2 */ ".f..l.l..f." - /* 3 */ ".f.......f." - /* 4 */ ".f.......f." - /* 5 */ ".f.......f." - /* 6 */ ".f...n...f." - /* 7 */ "offfffffffo" - /* 8 */ "ppppppppppp" + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ ".ghhhg......" + /* 2 */ ".h...i......" + /* 3 */ ".h...gf..fff" + /* 4 */ ".h...h...fjf" + /* 5 */ ".h...h...fjf" + /* 6 */ ".h...hkllfjf" + /* 7 */ ".h...gffffff" + /* 8 */ ".h...h.mmmmm" + /* 9 */ ".ghhhg.mmmmm" + /* 10 */ ".......mmmmm" // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "jjjjjjjjjjj" - /* 2 */ "kfffffffffk" - /* 3 */ ".f.......f." - /* 4 */ ".f.......f." - /* 5 */ ".f.......f." - /* 6 */ "offfffffffo" - /* 7 */ "ppppppppppp" - /* 8 */ "..........." + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ ".gnnng......" + /* 2 */ ".n...o......" + /* 3 */ ".n...gp..p.f" + /* 4 */ ".n...n.....q" + /* 5 */ ".h...n.....q" + /* 6 */ ".n...n.....q" + /* 7 */ ".n...gfqqqqf" + /* 8 */ ".n...h.mmmmm" + /* 9 */ ".gnnng.mmmmm" + /* 10 */ ".......mmmmm" // Level 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "jjjjjjjjjjj" - /* 3 */ "kfffffffffk" - /* 4 */ ".f.......f." - /* 5 */ "offfffffffo" - /* 6 */ "ppppppppppp" - /* 7 */ "..........." - /* 8 */ "..........." + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "rrrrrrr....." + /* 1 */ "shhhhhs....." + /* 2 */ ".h...h......" + /* 3 */ ".h..thf..fqf" + /* 4 */ ".h...h...q.f" + /* 5 */ ".h...h...q.f" + /* 6 */ ".hu..h...q.f" + /* 7 */ ".h...hffffff" + /* 8 */ ".h...h.mmmmm" + /* 9 */ "vhhhhhvmmmmm" + /* 10 */ "wwwwwwwmmmmm" // Level 6 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ "jjjjjjjjjjj" - /* 4 */ "fffffffffff" - /* 5 */ "ppppppppppp" - /* 6 */ "..........." - /* 7 */ "..........." - /* 8 */ "...........", - - // Connectors: - "-1: 5, 0, 1: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - }, // PlainsVillage_103 - - - - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // PlainsVillage_105: - // The data has been exported from the gallery Plains, area index 54, ID 105, created by Aloe_vera - { - // Size: - 7, 6, 9, // SizeX = 7, SizeY = 6, SizeZ = 9 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 6, 5, 8, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a:170: 0\n" /* haybale */ - "b: 67: 0\n" /* stairs */ - "c: 67: 2\n" /* stairs */ - "d: 67: 1\n" /* stairs */ - "e: 4: 0\n" /* cobblestone */ - "f: 17: 0\n" /* tree */ - "g: 5: 0\n" /* wood */ - "h:170: 4\n" /* haybale */ - "i:170: 8\n" /* haybale */ - "j: 54: 2\n" /* chest */ - "k: 50: 4\n" /* torch */ - "l: 53: 0\n" /* woodstairs */ - "m: 19: 0\n" /* sponge */ - "n: 53: 5\n" /* woodstairs */ - "o: 53: 4\n" /* woodstairs */ - "p: 53: 1\n" /* woodstairs */, - - // Block data: - // Level 0 - /* z\x* 0123456 */ - /* 0 */ "abcccd." - /* 1 */ ".eeeee." - /* 2 */ ".eeeee." - /* 3 */ ".eeeee." - /* 4 */ ".eeeee." - /* 5 */ ".eeeee." - /* 6 */ ".eeeee." - /* 7 */ ".eeeee." - /* 8 */ "......." - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".f..af." - /* 2 */ ".g...g." - /* 3 */ ".ga.hg." - /* 4 */ ".fihif." - /* 5 */ ".gaaag." - /* 6 */ ".gijag." - /* 7 */ ".fgfgf." - /* 8 */ "......." - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ ".k...k." - /* 1 */ ".f...f." - /* 2 */ ".g...g." - /* 3 */ ".g...g." - /* 4 */ ".fh..f." - /* 5 */ ".ghiag." - /* 6 */ ".ghiig." - /* 7 */ ".fgfgf." - /* 8 */ "......." + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ "rrrrrrr....." + /* 2 */ "shhhhhs....." + /* 3 */ ".h...hxxxxxx" + /* 4 */ ".h...hxyyyyx" + /* 5 */ ".h...hxyyyyx" + /* 6 */ ".h...hxyyyyx" + /* 7 */ ".h...hxxxxxx" + /* 8 */ "vhhhhhvmmmmm" + /* 9 */ "wwwwwwwmmmmm" + /* 10 */ ".......mmmmm" - // Level 3 - /* z\x* 0123456 */ - /* 0 */ "ln...op" - /* 1 */ "lgggggp" - /* 2 */ "lg...gp" - /* 3 */ "lg...gp" - /* 4 */ "lg...gp" - /* 5 */ "lgaa.gp" - /* 6 */ "lgiaigp" - /* 7 */ "lgggggp" - /* 8 */ "ln...op" + // Level 7 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ "............" + /* 2 */ "rrrrrrr....." + /* 3 */ "shhhhhs....." + /* 4 */ ".h...h......" + /* 5 */ ".h...h......" + /* 6 */ ".h...h......" + /* 7 */ "vhhhhhv....." + /* 8 */ "wwwwwwwmmmmm" + /* 9 */ ".......mmmmm" + /* 10 */ ".......mmmmm" - // Level 4 - /* z\x* 0123456 */ - /* 0 */ ".ln.op." - /* 1 */ ".lgggp." - /* 2 */ ".lg.gp." - /* 3 */ ".lg.gp." - /* 4 */ ".lg.gp." - /* 5 */ ".lg.gp." - /* 6 */ ".lg.gp." - /* 7 */ ".lgggp." - /* 8 */ ".ln.op." + // Level 8 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ "............" + /* 2 */ "............" + /* 3 */ "rrrrrrr....." + /* 4 */ "shhhhhs....." + /* 5 */ ".h...h......" + /* 6 */ "vhhhhhv....." + /* 7 */ "wwwwwww....." + /* 8 */ ".......mmmmm" + /* 9 */ ".......mmmmm" + /* 10 */ ".......mmmmm" - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "..lgp.." - /* 1 */ "..lgp.." - /* 2 */ "..lgp.." - /* 3 */ "..lgp.." - /* 4 */ "..lgp.." - /* 5 */ "..lgp.." - /* 6 */ "..lgp.." - /* 7 */ "..lgp.." - /* 8 */ "..lgp..", + // Level 9 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ "............" + /* 2 */ "............" + /* 3 */ "............" + /* 4 */ "rrrrrrr....." + /* 5 */ "hhhhhhh....." + /* 6 */ "wwwwwww....." + /* 7 */ "............" + /* 8 */ ".......mmmmm" + /* 9 */ ".......mmmmm" + /* 10 */ ".......mmmmm", // Connectors: - "-1: 3, 0, 0: 2\n" /* Type -1, direction Z- */, + "-1: 7, 2, -1: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -580,152 +559,66 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, - }, // PlainsVillage_105 + }, // Forge /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // PlainsVillage_106: - // The data has been exported from the gallery Plains, area index 55, ID 106, created by Aloe_vera + // SinglePlantBed: + // The data has been exported from the gallery Plains, area index 17, ID 60, created by Aloe_vera { // Size: - 15, 8, 9, // SizeX = 15, SizeY = 8, SizeZ = 9 + 10, 3, 7, // SizeX = 10, SizeY = 3, SizeZ = 7 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 14, 7, 8, // MaxX, MaxY, MaxZ + 9, 2, 6, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 67: 0\n" /* stairs */ - "b: 67: 2\n" /* stairs */ - "c: 67: 1\n" /* stairs */ - "d: 4: 0\n" /* cobblestone */ - "e: 3: 0\n" /* dirt */ - "f: 17: 0\n" /* tree */ - "g:107: 0\n" /* fencegate */ - "h:107: 4\n" /* fencegate */ - "i: 5: 0\n" /* wood */ - "j:107: 6\n" /* fencegate */ - "k: 85: 0\n" /* fence */ - "l:170: 0\n" /* haybale */ - "m: 19: 0\n" /* sponge */ - "n:170: 4\n" /* haybale */ - "o:170: 8\n" /* haybale */ - "p: 50: 1\n" /* torch */ - "q: 50: 2\n" /* torch */ - "r: 53: 2\n" /* woodstairs */ - "s: 53: 7\n" /* woodstairs */ - "t: 53: 6\n" /* woodstairs */ - "u: 53: 3\n" /* woodstairs */, + "a: 3: 0\n" /* dirt */ + "b: 17: 0\n" /* tree */ + "c: 60: 7\n" /* tilleddirt */ + "d: 8: 0\n" /* water */ + "e: 59: 7\n" /* crops */ + "m: 19: 0\n" /* sponge */, // Block data: // Level 0 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ ".abbbbbbbbbbbc." - /* 1 */ ".ddddddddddddd." - /* 2 */ ".deeeeeeeeeeed." - /* 3 */ ".deeeeeeeeeeed." - /* 4 */ ".deeeeeeeeeeed." - /* 5 */ ".deeeeeeeeeeed." - /* 6 */ ".deeeeeeeeeeed." - /* 7 */ ".ddddddddddddd." - /* 8 */ "..............." + /* z\x* */ + /* * 0123456789 */ + /* 0 */ "aaaaaaaaaa" + /* 1 */ "aaaaaaaaaa" + /* 2 */ "aaaaaaaaaa" + /* 3 */ "aaaaaaaaaa" + /* 4 */ "aaaaaaaaaa" + /* 5 */ "aaaaaaaaaa" + /* 6 */ "aaaaaaaaaa" // Level 1 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".fghgighgigjgf." - /* 2 */ ".k...k...k...k." - /* 3 */ ".k...k...k...k." - /* 4 */ ".k...k...k...k." - /* 5 */ ".k...k...k...k." - /* 6 */ ".kl..k..nko..k." - /* 7 */ ".fkkkikkkikkkf." - /* 8 */ "..............." + /* z\x* */ + /* * 0123456789 */ + /* 0 */ "bbbbbbbbbb" + /* 1 */ "bccccccccb" + /* 2 */ "bccccccccb" + /* 3 */ "bddddddddb" + /* 4 */ "bccccccccb" + /* 5 */ "bccccccccb" + /* 6 */ "bbbbbbbbbb" // Level 2 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".f...i...i...f." - /* 2 */ "..............." - /* 3 */ "..............." - /* 4 */ "..............." - /* 5 */ "..............." - /* 6 */ "..............." - /* 7 */ ".f...i...i...f." - /* 8 */ "..............." - - // Level 3 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".fp.qip.qip.qf." - /* 2 */ "..............." - /* 3 */ "..............." - /* 4 */ "..............." - /* 5 */ "..............." - /* 6 */ "..............." - /* 7 */ ".f...i...i...f." - /* 8 */ "..............." - - // Level 4 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "rrrrrrrrrrrrrrr" - /* 1 */ "siiiiiiiiiiiiis" - /* 2 */ ".i...........i." - /* 3 */ ".i...........i." - /* 4 */ ".i...........i." - /* 5 */ ".i...........i." - /* 6 */ ".i...........i." - /* 7 */ "tiiiiiiiiiiiiit" - /* 8 */ "uuuuuuuuuuuuuuu" - - // Level 5 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "rrrrrrrrrrrrrrr" - /* 2 */ "siiiiiiiiiiiiis" - /* 3 */ ".i...........i." - /* 4 */ ".i...........i." - /* 5 */ ".i...........i." - /* 6 */ "tiiiiiiiiiiiiit" - /* 7 */ "uuuuuuuuuuuuuuu" - /* 8 */ "..............." - - // Level 6 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ "rrrrrrrrrrrrrrr" - /* 3 */ "siiiiiiiiiiiiis" - /* 4 */ ".i...........i." - /* 5 */ "tiiiiiiiiiiiiit" - /* 6 */ "uuuuuuuuuuuuuuu" - /* 7 */ "..............." - /* 8 */ "..............." - - // Level 7 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ "..............." - /* 3 */ "rrrrrrrrrrrrrrr" - /* 4 */ "iiiiiiiiiiiiiii" - /* 5 */ "uuuuuuuuuuuuuuu" - /* 6 */ "..............." - /* 7 */ "..............." - /* 8 */ "...............", + /* z\x* */ + /* * 0123456789 */ + /* 0 */ ".........." + /* 1 */ ".eeeeeeee." + /* 2 */ ".eeeeeeee." + /* 3 */ ".........." + /* 4 */ ".eeeeeeee." + /* 5 */ ".eeeeeeee." + /* 6 */ "..........", // Connectors: - "-1: 7, 0, 0: 2\n" /* Type -1, direction Z- */, + "-1: 9, 1, 3: 5\n" /* Type -1, direction X+ */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -744,157 +637,191 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, - }, // PlainsVillage_106 + }, // SinglePlantBed /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // PlainsVillage_109: + // WoodenChurchMid: // The data has been exported from the gallery Plains, area index 58, ID 109, created by Aloe_vera { // Size: - 7, 14, 13, // SizeX = 7, SizeY = 14, SizeZ = 13 + 7, 16, 13, // SizeX = 7, SizeY = 16, SizeZ = 13 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 6, 13, 12, // MaxX, MaxY, MaxZ + 6, 15, 12, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "A: 85: 0\n" /* fence */ - "B:126: 8\n" /* woodenslab */ - "a: 67: 0\n" /* stairs */ - "b: 67: 2\n" /* stairs */ - "c: 67: 1\n" /* stairs */ - "d: 4: 0\n" /* cobblestone */ - "e: 17: 0\n" /* tree */ - "f: 5: 0\n" /* wood */ - "g: 64: 7\n" /* wooddoorblock */ - "h: 65: 3\n" /* ladder */ - "i: 53: 3\n" /* woodstairs */ - "j: 53: 7\n" /* woodstairs */ - "k: 64:12\n" /* wooddoorblock */ - "l:102: 0\n" /* glasspane */ + "A: 54: 2\n" /* chest */ + "B: 50: 4\n" /* torch */ + "C: 85: 0\n" /* fence */ + "D:126: 8\n" /* woodenslab */ + "a: 3: 0\n" /* dirt */ + "b: 2: 0\n" /* grass */ + "c: 67: 0\n" /* stairs */ + "d: 67: 2\n" /* stairs */ + "e: 67: 1\n" /* stairs */ + "f: 4: 0\n" /* cobblestone */ + "g: 17: 0\n" /* tree */ + "h: 5: 0\n" /* wood */ + "i: 64: 7\n" /* wooddoorblock */ + "j: 65: 3\n" /* ladder */ + "k: 53: 3\n" /* woodstairs */ + "l: 53: 7\n" /* woodstairs */ "m: 19: 0\n" /* sponge */ - "n: 50: 1\n" /* torch */ - "o: 50: 2\n" /* torch */ - "p:171:14\n" /* carpet */ - "q: 50: 3\n" /* torch */ - "r: 53: 2\n" /* woodstairs */ - "s: 53: 0\n" /* woodstairs */ - "t: 53: 1\n" /* woodstairs */ - "u: 53: 5\n" /* woodstairs */ - "v: 53: 4\n" /* woodstairs */ - "w: 17: 4\n" /* tree */ - "x: 17: 8\n" /* tree */ - "y: 54: 2\n" /* chest */ - "z: 50: 4\n" /* torch */, + "n: 64:12\n" /* wooddoorblock */ + "o:102: 0\n" /* glasspane */ + "p: 50: 1\n" /* torch */ + "q: 50: 2\n" /* torch */ + "r:171:14\n" /* carpet */ + "s: 50: 3\n" /* torch */ + "t: 53: 2\n" /* woodstairs */ + "u: 53: 0\n" /* woodstairs */ + "v: 53: 1\n" /* woodstairs */ + "w: 53: 5\n" /* woodstairs */ + "x: 53: 4\n" /* woodstairs */ + "y: 17: 4\n" /* tree */ + "z: 17: 8\n" /* tree */, // Block data: // Level 0 /* z\x* 0123456 */ - /* 0 */ "..abc.." - /* 1 */ ".ddddd." - /* 2 */ ".ddddd." - /* 3 */ ".ddddd." - /* 4 */ ".ddddd." - /* 5 */ ".ddddd." - /* 6 */ ".ddddd." - /* 7 */ ".ddddd." - /* 8 */ ".ddddd." - /* 9 */ ".ddddd." - /* 10 */ ".ddddd." - /* 11 */ ".ddddd." - /* 12 */ "......." + /* 0 */ "aaaaaaa" + /* 1 */ "aaaaaaa" + /* 2 */ "aaaaaaa" + /* 3 */ "aaaaaaa" + /* 4 */ "aaaaaaa" + /* 5 */ "aaaaaaa" + /* 6 */ "aaaaaaa" + /* 7 */ "aaaaaaa" + /* 8 */ "aaaaaaa" + /* 9 */ "aaaaaaa" + /* 10 */ "aaaaaaa" + /* 11 */ "aaaaaaa" + /* 12 */ "aaaaaaa" // Level 1 /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".efgfe." - /* 2 */ ".f..hf." - /* 3 */ ".f...f." - /* 4 */ ".f...f." - /* 5 */ ".ei.ie." - /* 6 */ ".f...f." - /* 7 */ ".fi.if." - /* 8 */ ".f...f." - /* 9 */ ".f.j.f." - /* 10 */ ".f...f." - /* 11 */ ".efffe." - /* 12 */ "......." + /* 0 */ "bbaaabb" + /* 1 */ "baaaaab" + /* 2 */ "baaaaab" + /* 3 */ "baaaaab" + /* 4 */ "baaaaab" + /* 5 */ "baaaaab" + /* 6 */ "baaaaab" + /* 7 */ "baaaaab" + /* 8 */ "baaaaab" + /* 9 */ "baaaaab" + /* 10 */ "baaaaab" + /* 11 */ "baaaaab" + /* 12 */ "bbbbbbb" // Level 2 /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".efkfe." - /* 2 */ ".l..hl." - /* 3 */ ".l...l." - /* 4 */ ".l...l." - /* 5 */ ".e...e." - /* 6 */ ".l...l." - /* 7 */ ".l...l." - /* 8 */ ".fn.of." - /* 9 */ ".l.p.l." - /* 10 */ ".l...l." - /* 11 */ ".ellle." + /* 0 */ "..cde.." + /* 1 */ ".fffff." + /* 2 */ ".fffff." + /* 3 */ ".fffff." + /* 4 */ ".fffff." + /* 5 */ ".fffff." + /* 6 */ ".fffff." + /* 7 */ ".fffff." + /* 8 */ ".fffff." + /* 9 */ ".fffff." + /* 10 */ ".fffff." + /* 11 */ ".fffff." /* 12 */ "......." // Level 3 /* z\x* 0123456 */ /* 0 */ "......." - /* 1 */ ".efffe." - /* 2 */ ".f.qhf." - /* 3 */ ".f...f." - /* 4 */ ".f...f." - /* 5 */ "re...er" - /* 6 */ "sf...ft" - /* 7 */ "sf...ft" - /* 8 */ "sf...ft" - /* 9 */ "sf...ft" - /* 10 */ "sf...ft" - /* 11 */ "sefffft" - /* 12 */ "su...vt" + /* 1 */ ".ghihg." + /* 2 */ ".h..jh." + /* 3 */ ".h...h." + /* 4 */ ".h...h." + /* 5 */ ".gk.kg." + /* 6 */ ".h...h." + /* 7 */ ".hk.kh." + /* 8 */ ".h...h." + /* 9 */ ".h.l.h." + /* 10 */ ".h...h." + /* 11 */ ".ghhhg." + /* 12 */ "......." // Level 4 /* z\x* 0123456 */ /* 0 */ "......." - /* 1 */ ".ewwwe." - /* 2 */ ".xffhx." - /* 3 */ ".xfffx." - /* 4 */ ".xfffx." - /* 5 */ ".ewwwe." - /* 6 */ ".sf.ft." - /* 7 */ ".sf.ft." - /* 8 */ ".sf.ft." - /* 9 */ ".sf.ft." - /* 10 */ ".sf.ft." - /* 11 */ ".sffft." - /* 12 */ ".su.vt." + /* 1 */ ".ghnhg." + /* 2 */ ".o..jo." + /* 3 */ ".o...o." + /* 4 */ ".o...o." + /* 5 */ ".g...g." + /* 6 */ ".o...o." + /* 7 */ ".o...o." + /* 8 */ ".hp.qh." + /* 9 */ ".o.r.o." + /* 10 */ ".o...o." + /* 11 */ ".gooog." + /* 12 */ "......." // Level 5 /* z\x* 0123456 */ /* 0 */ "......." - /* 1 */ ".eflfe." - /* 2 */ ".f..hf." - /* 3 */ ".f...f." - /* 4 */ ".f.y.f." - /* 5 */ ".efffe." - /* 6 */ "..sft.." - /* 7 */ "..sft.." - /* 8 */ "..sft.." - /* 9 */ "..sft.." - /* 10 */ "..sft.." - /* 11 */ "..sft.." - /* 12 */ "..sft.." + /* 1 */ ".ghhhg." + /* 2 */ ".h.sjh." + /* 3 */ ".h...h." + /* 4 */ ".h...h." + /* 5 */ "tg...gt" + /* 6 */ "uh...hv" + /* 7 */ "uh...hv" + /* 8 */ "uh...hv" + /* 9 */ "uh...hv" + /* 10 */ "uh...hv" + /* 11 */ "ughhhhv" + /* 12 */ "uw...xv" // Level 6 /* z\x* 0123456 */ /* 0 */ "......." - /* 1 */ ".eflfe." - /* 2 */ ".f..hf." - /* 3 */ ".l...l." - /* 4 */ ".f...f." - /* 5 */ ".efffe." + /* 1 */ ".gyyyg." + /* 2 */ ".zhhjz." + /* 3 */ ".zhhhz." + /* 4 */ ".zhhhz." + /* 5 */ ".gyyyg." + /* 6 */ ".uh.hv." + /* 7 */ ".uh.hv." + /* 8 */ ".uh.hv." + /* 9 */ ".uh.hv." + /* 10 */ ".uh.hv." + /* 11 */ ".uhhhv." + /* 12 */ ".uw.xv." + + // Level 7 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".ghohg." + /* 2 */ ".h..jh." + /* 3 */ ".h...h." + /* 4 */ ".h.A.h." + /* 5 */ ".ghhhg." + /* 6 */ "..uhv.." + /* 7 */ "..uhv.." + /* 8 */ "..uhv.." + /* 9 */ "..uhv.." + /* 10 */ "..uhv.." + /* 11 */ "..uhv.." + /* 12 */ "..uhv.." + + // Level 8 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".ghohg." + /* 2 */ ".h..jh." + /* 3 */ ".o...o." + /* 4 */ ".h...h." + /* 5 */ ".ghhhg." /* 6 */ "......." /* 7 */ "......." /* 8 */ "......." @@ -903,14 +830,14 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 11 */ "......." /* 12 */ "......." - // Level 7 + // Level 9 /* z\x* 0123456 */ /* 0 */ "......." - /* 1 */ ".eflfe." - /* 2 */ ".f..hf." - /* 3 */ ".f...f." - /* 4 */ ".f.z.f." - /* 5 */ ".efffe." + /* 1 */ ".ghohg." + /* 2 */ ".h..jh." + /* 3 */ ".h...h." + /* 4 */ ".h.B.h." + /* 5 */ ".ghhhg." /* 6 */ "......." /* 7 */ "......." /* 8 */ "......." @@ -919,14 +846,14 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 11 */ "......." /* 12 */ "......." - // Level 8 + // Level 10 /* z\x* 0123456 */ /* 0 */ "......." - /* 1 */ ".ewwwe." - /* 2 */ ".xffhx." - /* 3 */ ".xfffx." - /* 4 */ ".xfffx." - /* 5 */ ".ewwwe." + /* 1 */ ".gyyyg." + /* 2 */ ".zhhjz." + /* 3 */ ".zhhhz." + /* 4 */ ".zhhhz." + /* 5 */ ".gyyyg." /* 6 */ "......." /* 7 */ "......." /* 8 */ "......." @@ -935,14 +862,14 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 11 */ "......." /* 12 */ "......." - // Level 9 + // Level 11 /* z\x* 0123456 */ /* 0 */ "......." - /* 1 */ ".eAAAe." - /* 2 */ ".A...A." - /* 3 */ ".A...A." - /* 4 */ ".A...A." - /* 5 */ ".eAAAe." + /* 1 */ ".gCCCg." + /* 2 */ ".C...C." + /* 3 */ ".C...C." + /* 4 */ ".C...C." + /* 5 */ ".gCCCg." /* 6 */ "......." /* 7 */ "......." /* 8 */ "......." @@ -951,14 +878,14 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 11 */ "......." /* 12 */ "......." - // Level 10 + // Level 12 /* z\x* 0123456 */ /* 0 */ "......." - /* 1 */ ".e...e." + /* 1 */ ".g...g." /* 2 */ "......." /* 3 */ "......." /* 4 */ "......." - /* 5 */ ".e...e." + /* 5 */ ".g...g." /* 6 */ "......." /* 7 */ "......." /* 8 */ "......." @@ -967,15 +894,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 11 */ "......." /* 12 */ "......." - // Level 11 + // Level 13 /* z\x* 0123456 */ - /* 0 */ "su...vt" - /* 1 */ "sefffet" - /* 2 */ "sfBBBft" - /* 3 */ "sfBBBft" - /* 4 */ "sfBBBft" - /* 5 */ "sffffft" - /* 6 */ "su...vt" + /* 0 */ "uw...xv" + /* 1 */ "ughhhgv" + /* 2 */ "uhDDDhv" + /* 3 */ "uhDDDhv" + /* 4 */ "uhDDDhv" + /* 5 */ "uhhhhhv" + /* 6 */ "uw...xv" /* 7 */ "......." /* 8 */ "......." /* 9 */ "......." @@ -983,15 +910,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 11 */ "......." /* 12 */ "......." - // Level 12 + // Level 14 /* z\x* 0123456 */ - /* 0 */ ".su.vt." - /* 1 */ ".sffft." - /* 2 */ ".sffft." - /* 3 */ ".sffft." - /* 4 */ ".sffft." - /* 5 */ ".sffft." - /* 6 */ ".su.vt." + /* 0 */ ".uw.xv." + /* 1 */ ".uhhhv." + /* 2 */ ".uhhhv." + /* 3 */ ".uhhhv." + /* 4 */ ".uhhhv." + /* 5 */ ".uhhhv." + /* 6 */ ".uw.xv." /* 7 */ "......." /* 8 */ "......." /* 9 */ "......." @@ -999,15 +926,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 11 */ "......." /* 12 */ "......." - // Level 13 + // Level 15 /* z\x* 0123456 */ - /* 0 */ "..sft.." - /* 1 */ "..sft.." - /* 2 */ "..sft.." - /* 3 */ "..sft.." - /* 4 */ "..sft.." - /* 5 */ "..sft.." - /* 6 */ "..sft.." + /* 0 */ "..uhv.." + /* 1 */ "..uhv.." + /* 2 */ "..uhv.." + /* 3 */ "..uhv.." + /* 4 */ "..uhv.." + /* 5 */ "..uhv.." + /* 6 */ "..uhv.." /* 7 */ "......." /* 8 */ "......." /* 9 */ "......." @@ -1016,7 +943,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 12 */ ".......", // Connectors: - "-1: 3, 0, 1: 2\n" /* Type -1, direction Z- */, + "-1: 3, 2, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1028,66 +955,148 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = true, // DefaultWeight: - 100, + 20, // DepthWeight: "", // AddWeightIfSame: 0, - }, // PlainsVillage_109 + }, // WoodenChurchMid /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // PlainsVillage_20: - // The data has been exported from the gallery Plains, area index 5, ID 20, created by tonibm1999 + // WoodenGranary: + // The data has been exported from the gallery Plains, area index 54, ID 105, created by Aloe_vera { // Size: - 15, 2, 9, // SizeX = 15, SizeY = 2, SizeZ = 9 + 7, 8, 9, // SizeX = 7, SizeY = 8, SizeZ = 9 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 14, 1, 8, // MaxX, MaxY, MaxZ + 6, 7, 8, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 17: 0\n" /* tree */ - "b: 60: 7\n" /* tilleddirt */ - "c: 8: 0\n" /* water */ - "d: 50: 5\n" /* torch */ - "e: 59: 7\n" /* crops */ - "m: 19: 0\n" /* sponge */, + "a: 3: 0\n" /* dirt */ + "b: 2: 0\n" /* grass */ + "c:170: 0\n" /* haybale */ + "d: 67: 0\n" /* stairs */ + "e: 67: 2\n" /* stairs */ + "f: 67: 1\n" /* stairs */ + "g: 4: 0\n" /* cobblestone */ + "h: 17: 0\n" /* tree */ + "i: 5: 0\n" /* wood */ + "j:170: 4\n" /* haybale */ + "k:170: 8\n" /* haybale */ + "l: 54: 2\n" /* chest */ + "m: 19: 0\n" /* sponge */ + "n: 50: 4\n" /* torch */ + "o: 53: 0\n" /* woodstairs */ + "p: 53: 5\n" /* woodstairs */ + "q: 53: 4\n" /* woodstairs */ + "r: 53: 1\n" /* woodstairs */, // Block data: // Level 0 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "aaaaaaamaaaaaaa" - /* 1 */ "abbcbbamabbcbba" - /* 2 */ "abbcbbamabbcbba" - /* 3 */ "abbcbbamabbcbba" - /* 4 */ "abbcbbamabbcbba" - /* 5 */ "abbcbbamabbcbba" - /* 6 */ "abbcbbamabbcbba" - /* 7 */ "abbcbbamabbcbba" - /* 8 */ "aaaaaaamaaaaaaa" + /* z\x* 0123456 */ + /* 0 */ "aaaaaaa" + /* 1 */ "aaaaaaa" + /* 2 */ "aaaaaaa" + /* 3 */ "aaaaaaa" + /* 4 */ "aaaaaaa" + /* 5 */ "aaaaaaa" + /* 6 */ "aaaaaaa" + /* 7 */ "aaaaaaa" + /* 8 */ "aaaaaaa" // Level 1 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "dmmmmmdmdmmmmmd" - /* 1 */ "meemeemmmeemeem" - /* 2 */ "memmmemmmeemeem" - /* 3 */ "memmmmmmmeemeem" - /* 4 */ "meemmemmmeemeem" - /* 5 */ "meemmemmmeemeem" - /* 6 */ "mmemmemmmeemeem" - /* 7 */ "mmememmmmeemeem" - /* 8 */ "dmmmmmdmdmmmmmd", + /* z\x* 0123456 */ + /* 0 */ "aaaaaab" + /* 1 */ "baaaaab" + /* 2 */ "baaaaab" + /* 3 */ "baaaaab" + /* 4 */ "baaaaab" + /* 5 */ "baaaaab" + /* 6 */ "baaaaab" + /* 7 */ "baaaaab" + /* 8 */ "bbbbbbb" + + // Level 2 + /* z\x* 0123456 */ + /* 0 */ "cdeeef." + /* 1 */ ".ggggg." + /* 2 */ ".ggggg." + /* 3 */ ".ggggg." + /* 4 */ ".ggggg." + /* 5 */ ".ggggg." + /* 6 */ ".ggggg." + /* 7 */ ".ggggg." + /* 8 */ "......." + + // Level 3 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".h..ch." + /* 2 */ ".i...i." + /* 3 */ ".ic.ji." + /* 4 */ ".hkjkh." + /* 5 */ ".iccci." + /* 6 */ ".iklci." + /* 7 */ ".hihih." + /* 8 */ "......." + + // Level 4 + /* z\x* 0123456 */ + /* 0 */ ".n...n." + /* 1 */ ".h...h." + /* 2 */ ".i...i." + /* 3 */ ".i...i." + /* 4 */ ".hj..h." + /* 5 */ ".ijkci." + /* 6 */ ".ijkki." + /* 7 */ ".hihih." + /* 8 */ "......." + + // Level 5 + /* z\x* 0123456 */ + /* 0 */ "op...qr" + /* 1 */ "oiiiiir" + /* 2 */ "oi...ir" + /* 3 */ "oi...ir" + /* 4 */ "oi...ir" + /* 5 */ "oicc.ir" + /* 6 */ "oikckir" + /* 7 */ "oiiiiir" + /* 8 */ "op...qr" + + // Level 6 + /* z\x* 0123456 */ + /* 0 */ ".op.qr." + /* 1 */ ".oiiir." + /* 2 */ ".oi.ir." + /* 3 */ ".oi.ir." + /* 4 */ ".oi.ir." + /* 5 */ ".oi.ir." + /* 6 */ ".oi.ir." + /* 7 */ ".oiiir." + /* 8 */ ".op.qr." + + // Level 7 + /* z\x* 0123456 */ + /* 0 */ "..oir.." + /* 1 */ "..oir.." + /* 2 */ "..oir.." + /* 3 */ "..oir.." + /* 4 */ "..oir.." + /* 5 */ "..oir.." + /* 6 */ "..oir.." + /* 7 */ "..oir.." + /* 8 */ "..oir..", // Connectors: - "-1: 7, 0, 8: 3\n" /* Type -1, direction Z+ */, + "-1: 3, 2, -1: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1106,139 +1115,169 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, - }, // PlainsVillage_20 + }, // WoodenGranary /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // PlainsVillage_26: - // The data has been exported from the gallery Plains, area index 9, ID 26, created by Aloe_vera + // WoodenHouse10x7Library: + // The data has been exported from the gallery Plains, area index 47, ID 98, created by Aloe_vera { // Size: - 10, 6, 11, // SizeX = 10, SizeY = 6, SizeZ = 11 + 12, 9, 9, // SizeX = 12, SizeY = 9, SizeZ = 9 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 9, 5, 10, // MaxX, MaxY, MaxZ + 11, 8, 8, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 4: 0\n" /* cobblestone */ - "b: 5: 0\n" /* wood */ - "c: 2: 0\n" /* grass */ + "a: 3: 0\n" /* dirt */ + "b: 2: 0\n" /* grass */ + "c: 67: 0\n" /* stairs */ "d: 67: 2\n" /* stairs */ - "e: 43: 0\n" /* doubleslab */ - "f: 67: 0\n" /* stairs */ - "g: 67: 3\n" /* stairs */ - "h: 17: 0\n" /* tree */ - "i: 53: 1\n" /* woodstairs */ - "j: 85: 0\n" /* fence */ - "k: 53: 0\n" /* woodstairs */ - "l: 64: 6\n" /* wooddoorblock */ + "e: 67: 1\n" /* stairs */ + "f: 4: 0\n" /* cobblestone */ + "g: 17: 0\n" /* tree */ + "h: 5: 0\n" /* wood */ + "i: 64: 7\n" /* wooddoorblock */ + "j: 64: 5\n" /* wooddoorblock */ + "k: 53: 3\n" /* woodstairs */ + "l: 85: 0\n" /* fence */ "m: 19: 0\n" /* sponge */ - "n: 64: 0\n" /* wooddoorblock */ - "o:102: 0\n" /* glasspane */ - "p: 72: 0\n" /* woodplate */ - "q: 64:12\n" /* wooddoorblock */ - "r: 64: 8\n" /* wooddoorblock */ - "s: 53: 5\n" /* woodstairs */ - "t: 53: 4\n" /* woodstairs */ - "u: 50: 1\n" /* torch */ - "v: 50: 2\n" /* torch */, + "n: 53: 2\n" /* woodstairs */ + "o: 53: 1\n" /* woodstairs */ + "p: 53: 0\n" /* woodstairs */ + "q:102: 0\n" /* glasspane */ + "r: 64:12\n" /* wooddoorblock */ + "s: 50: 3\n" /* torch */ + "t: 72: 0\n" /* woodplate */ + "u: 53: 7\n" /* woodstairs */ + "v: 47: 0\n" /* bookshelf */ + "w: 50: 1\n" /* torch */ + "x: 50: 2\n" /* torch */ + "y: 53: 6\n" /* woodstairs */, // Block data: // Level 0 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "......mmmm" - /* 1 */ ".aaaaammmm" - /* 2 */ ".abbbammmm" - /* 3 */ ".abbbacccc" - /* 4 */ "daeeeacccc" - /* 5 */ "faeeeecccc" - /* 6 */ "gaeeeacccc" - /* 7 */ ".aeeeacccc" - /* 8 */ ".aeeeacccc" - /* 9 */ ".aaaaammmm" - /* 10 */ "......mmmm" + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "aaaaaaaaaaaa" + /* 1 */ "aaaaaaaaaaaa" + /* 2 */ "aaaaaaaaaaaa" + /* 3 */ "aaaaaaaaaaaa" + /* 4 */ "aaaaaaaaaaaa" + /* 5 */ "aaaaaaaaaaaa" + /* 6 */ "aaaaaaaaaaaa" + /* 7 */ "aaaaaaaaaaaa" + /* 8 */ "aaaaaaaaaaaa" // Level 1 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "......mmmm" - /* 1 */ ".hbbbhmmmm" - /* 2 */ ".bijkbmmmm" - /* 3 */ ".b...bjjjj" - /* 4 */ ".b...b...j" - /* 5 */ ".l...n...j" - /* 6 */ ".b...b...j" - /* 7 */ ".bee.b...j" - /* 8 */ ".b...bjjjj" - /* 9 */ ".hbbbhmmmm" - /* 10 */ "......mmmm" + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "bbbbaaaabbbb" + /* 1 */ "baaaaaaaaaab" + /* 2 */ "baaaaaaaaaab" + /* 3 */ "baaaaaaaaaab" + /* 4 */ "baaaaaaaaaab" + /* 5 */ "baaaaaaaaaab" + /* 6 */ "baaaaaaaaaab" + /* 7 */ "baaaaaaaaaab" + /* 8 */ "bbbbbbbbbbbb" // Level 2 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "......mmmm" - /* 1 */ ".hooohmmmm" - /* 2 */ ".o.p.ommmm" - /* 3 */ ".o...o...." - /* 4 */ ".b...b...." - /* 5 */ ".q...r...." - /* 6 */ ".b...b...." - /* 7 */ ".o...o...." - /* 8 */ ".o...o...." - /* 9 */ ".hooohmmmm" - /* 10 */ "......mmmm" + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "....cdde...." + /* 1 */ ".ffffffffff." + /* 2 */ ".ffffffffff." + /* 3 */ ".ffffffffff." + /* 4 */ ".ffffffffff." + /* 5 */ ".ffffffffff." + /* 6 */ ".ffffffffff." + /* 7 */ ".ffffffffff." + /* 8 */ "............" // Level 3 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "ks...timmm" - /* 1 */ "khbbbhimmm" - /* 2 */ "kb...bimmm" - /* 3 */ "kb...bi..." - /* 4 */ "kbu.vbi..." - /* 5 */ "kb...bi..." - /* 6 */ "kbu.vbi..." - /* 7 */ "kb...bi..." - /* 8 */ "kb...bi..." - /* 9 */ "khbbbhimmm" - /* 10 */ "ks...timmm" + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ ".ghhhijhhhg." + /* 2 */ ".h........h." + /* 3 */ ".hk......kh." + /* 4 */ ".hl......lh." + /* 5 */ ".hn......nh." + /* 6 */ ".h.olpolp.h." + /* 7 */ ".ghhhhhhhhg." + /* 8 */ "............" // Level 4 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "mks.timmmm" - /* 1 */ "mkbbbimmmm" - /* 2 */ "mkb.bimmmm" - /* 3 */ "mkb.bim..." - /* 4 */ "mkb.bim..." - /* 5 */ "mkb.bim..." - /* 6 */ "mkb.bim..." - /* 7 */ "mkb.bim..." - /* 8 */ "mkb.bim..." - /* 9 */ "mkbbbimmmm" - /* 10 */ "mks.timmmm" + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ ".gqqhrrhqqg." + /* 2 */ ".q..s..s..q." + /* 3 */ ".q........q." + /* 4 */ ".ht......th." + /* 5 */ ".q........q." + /* 6 */ ".q..t..t..q." + /* 7 */ ".gqqhqqhqqg." + /* 8 */ "............" // Level 5 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "mmkbimmmmm" - /* 1 */ "mmkbimmmmm" - /* 2 */ "mmkbimmmmm" - /* 3 */ "mmkbimm..." - /* 4 */ "mmkbimm..." - /* 5 */ "mmkbimm..." - /* 6 */ "mmkbimm..." - /* 7 */ "mmkbimm..." - /* 8 */ "mmkbimm..." - /* 9 */ "mmkbimmmmm" - /* 10 */ "mmkbimmmmm", + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "nnnnnnnnnnnn" + /* 1 */ "uhhhhhhhhhhu" + /* 2 */ ".hvvvvvvvvh." + /* 3 */ ".h........h." + /* 4 */ ".hw......xh." + /* 5 */ ".h........h." + /* 6 */ ".hvvvvvvvvh." + /* 7 */ "yhhhhhhhhhhy" + /* 8 */ "kkkkkkkkkkkk" + + // Level 6 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ "nnnnnnnnnnnn" + /* 2 */ "uhhhhhhhhhhu" + /* 3 */ ".hvvvvvvvvh." + /* 4 */ ".h........h." + /* 5 */ ".hvvvvvvvvh." + /* 6 */ "yhhhhhhhhhhy" + /* 7 */ "kkkkkkkkkkkk" + /* 8 */ "............" + + // Level 7 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ "............" + /* 2 */ "nnnnnnnnnnnn" + /* 3 */ "uhhhhhhhhhhu" + /* 4 */ ".h........h." + /* 5 */ "yhhhhhhhhhhy" + /* 6 */ "kkkkkkkkkkkk" + /* 7 */ "............" + /* 8 */ "............" + + // Level 8 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ "............" + /* 2 */ "............" + /* 3 */ "nnnnnnnnnnnn" + /* 4 */ "hhhhhhhhhhhh" + /* 5 */ "kkkkkkkkkkkk" + /* 6 */ "............" + /* 7 */ "............" + /* 8 */ "............", // Connectors: - "-1: 1, 0, 5: 4\n" /* Type -1, direction X- */, + "-1: 5, 2, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1257,257 +1296,124 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, - }, // PlainsVillage_26 + }, // WoodenHouse10x7Library /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // PlainsVillage_4: - // The data has been exported from the gallery Plains, area index 0, ID 4, created by Aloe_vera + // WoodenHouse5x5: + // The data has been exported from the gallery Plains, area index 49, ID 100, created by Aloe_vera { // Size: - 16, 7, 16, // SizeX = 16, SizeY = 7, SizeZ = 16 + 7, 8, 7, // SizeX = 7, SizeY = 8, SizeZ = 7 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 15, 6, 15, // MaxX, MaxY, MaxZ + 6, 7, 6, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 67: 0\n" /* stairs */ - "b: 67: 2\n" /* stairs */ - "c: 67: 1\n" /* stairs */ - "d: 4: 0\n" /* cobblestone */ - "e: 5: 0\n" /* wood */ - "f: 67: 3\n" /* stairs */ + "a: 3: 0\n" /* dirt */ + "b: 2: 0\n" /* grass */ + "c: 67: 0\n" /* stairs */ + "d: 67: 2\n" /* stairs */ + "e: 67: 1\n" /* stairs */ + "f: 4: 0\n" /* cobblestone */ "g: 17: 0\n" /* tree */ - "h: 64: 7\n" /* wooddoorblock */ - "i: 64: 5\n" /* wooddoorblock */ - "j:102: 0\n" /* glasspane */ - "k: 64:12\n" /* wooddoorblock */ + "h: 5: 0\n" /* wood */ + "i: 64: 7\n" /* wooddoorblock */ + "j: 64:12\n" /* wooddoorblock */ + "k:102: 0\n" /* glasspane */ "l: 53: 2\n" /* woodstairs */ "m: 19: 0\n" /* sponge */ - "n: 53: 1\n" /* woodstairs */ - "o: 53: 7\n" /* woodstairs */ + "n: 53: 7\n" /* woodstairs */ + "o: 50: 3\n" /* torch */ "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 */, + "q: 53: 3\n" /* woodstairs */, // Block data: // Level 0 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "........abc....." - /* 1 */ ".dddddddddddddd." - /* 2 */ ".deeeeeeeeeeeed." - /* 3 */ ".deeeeeeeeeeeed." - /* 4 */ ".deeeeeeeeeeeed." - /* 5 */ ".deeeeeeeeeeeed." - /* 6 */ ".deeeeeeeeeeeed." - /* 7 */ ".ddddddddeeeeed." - /* 8 */ "mmmmmafcdeeeeed." - /* 9 */ "mmmmmmmmdeeeeed." - /* 10 */ "mmmmmmmmdeeeeed." - /* 11 */ "mmmmmmmmdeeeeed." - /* 12 */ "mmmmmmmmdeeeeed." - /* 13 */ "mmmmmmmmdeeeeed." - /* 14 */ "mmmmmmmmddddddd." - /* 15 */ "mmmmmmmm........" + /* z\x* 0123456 */ + /* 0 */ "aaaaaaa" + /* 1 */ "aaaaaaa" + /* 2 */ "aaaaaaa" + /* 3 */ "aaaaaaa" + /* 4 */ "aaaaaaa" + /* 5 */ "aaaaaaa" + /* 6 */ "aaaaaaa" // Level 1 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ ".geeeeeeghgeeeg." - /* 2 */ ".e............e." - /* 3 */ ".e............e." - /* 4 */ ".e............e." - /* 5 */ ".e............e." - /* 6 */ ".e............e." - /* 7 */ ".geeeeieg.....e." - /* 8 */ "mmmmmm.me.....e." - /* 9 */ "mmmmmmmme.....e." - /* 10 */ "mmmmmmmme.....e." - /* 11 */ "mmmmmmmme.....e." - /* 12 */ "mmmmmmmme.....e." - /* 13 */ "mmmmmmmme.....e." - /* 14 */ "mmmmmmmmgeeeeeg." - /* 15 */ "mmmmmmmm........" + /* z\x* 0123456 */ + /* 0 */ "bbaaabb" + /* 1 */ "baaaaab" + /* 2 */ "baaaaab" + /* 3 */ "baaaaab" + /* 4 */ "baaaaab" + /* 5 */ "baaaaab" + /* 6 */ "bbbbbbb" // Level 2 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ ".gejjejjgkgjjeg." - /* 2 */ ".j............e." - /* 3 */ ".j............j." - /* 4 */ ".j............j." - /* 5 */ ".j............e." - /* 6 */ ".j............j." - /* 7 */ ".gejjekeg.....j." - /* 8 */ "mmmmmm.me.....e." - /* 9 */ "mmmmmmmmj.....j." - /* 10 */ "mmmmmmmmj.....j." - /* 11 */ "mmmmmmmme.....e." - /* 12 */ "mmmmmmmmj.....j." - /* 13 */ "mmmmmmmmj.....j." - /* 14 */ "mmmmmmmmgjjjjjg." - /* 15 */ "mmmmmmmm........" + /* z\x* 0123456 */ + /* 0 */ "..cde.." + /* 1 */ ".fffff." + /* 2 */ ".fffff." + /* 3 */ ".fffff." + /* 4 */ ".fffff." + /* 5 */ ".fffff." + /* 6 */ "......." // Level 3 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "llllllllllllllln" - /* 1 */ "ogeeeeeegegeeegn" - /* 2 */ ".e............en" - /* 3 */ ".e............en" - /* 4 */ ".e............en" - /* 5 */ ".e............en" - /* 6 */ ".e............en" - /* 7 */ "pgeeeeeeg.....en" - /* 8 */ "qqqqqqqre.....en" - /* 9 */ "mmmmmmmre.....en" - /* 10 */ "mmmmmmmre.....en" - /* 11 */ "mmmmmmmre.....en" - /* 12 */ "mmmmmmmre.....en" - /* 13 */ "mmmmmmmre.....en" - /* 14 */ "mmmmmmmrgeeeeegn" - /* 15 */ "mmmmmmmrs.....tn" + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".ghihg." + /* 2 */ ".h...h." + /* 3 */ ".h...h." + /* 4 */ ".h...h." + /* 5 */ ".ghhhg." + /* 6 */ "......." // Level 4 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "lllllllllllllll." - /* 2 */ "oeeeeeeeeeeeeen." - /* 3 */ ".e.........u.en." - /* 4 */ ".e..........ven." - /* 5 */ ".e......w....en." - /* 6 */ "peeeeeeeee...en." - /* 7 */ "qqqqqqqqrex..en." - /* 8 */ "mmmmmmmmre...en." - /* 9 */ "mmmmmmmmre...en." - /* 10 */ "mmmmmmmmre...en." - /* 11 */ "mmmmmmmmre...en." - /* 12 */ "mmmmmmmmre...en." - /* 13 */ "mmmmmmmmre...en." - /* 14 */ "mmmmmmmmreeeeen." - /* 15 */ "mmmmmmmmrs...tn." + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".ghjhg." + /* 2 */ ".k...k." + /* 3 */ ".k...k." + /* 4 */ ".k...k." + /* 5 */ ".gkkkg." + /* 6 */ "......." // Level 5 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "................" - /* 2 */ "llllllllllllln.." - /* 3 */ "oeeeeeeeeeeeen.." - /* 4 */ ".ex.........en.." - /* 5 */ "peeeeeeeeee.en.." - /* 6 */ "qqqqqqqqqre.en.." - /* 7 */ ".........re.en.." - /* 8 */ "mmmmmmmm.re.en.." - /* 9 */ "mmmmmmmm.re.en.." - /* 10 */ "mmmmmmmm.re.en.." - /* 11 */ "mmmmmmmm.re.en.." - /* 12 */ "mmmmmmmm.re.en.." - /* 13 */ "mmmmmmmm.rewen.." - /* 14 */ "mmmmmmmm.reeen.." - /* 15 */ "mmmmmmmm.rs.tn.." + /* z\x* 0123456 */ + /* 0 */ "lllllll" + /* 1 */ "nhhhhhn" + /* 2 */ ".ho.oh." + /* 3 */ ".h...h." + /* 4 */ ".h...h." + /* 5 */ "phhhhhp" + /* 6 */ "qqqqqqq" // Level 6 - /* z\x* 111111 */ - /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "................" - /* 2 */ "................" - /* 3 */ "lllllllllllll..." - /* 4 */ "eeeeeeeeeeeen..." - /* 5 */ "qqqqqqqqqqren..." - /* 6 */ "mmmmmmmmmmren..." - /* 7 */ "mmmmmmmmmmren..." - /* 8 */ "mmmmmmmmmmren..." - /* 9 */ "mmmmmmmmmmren..." - /* 10 */ "mmmmmmmmmmren..." - /* 11 */ "mmmmmmmmmmren..." - /* 12 */ "mmmmmmmmmmren..." - /* 13 */ "mmmmmmmmmmren..." - /* 14 */ "mmmmmmmmmmren..." - /* 15 */ "mmmmmmmmmmren...", - - // Connectors: - "-1: 9, 0, 1: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - }, // PlainsVillage_4 - - - - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // PlainsVillage_60: - // The data has been exported from the gallery Plains, area index 17, ID 60, created by Aloe_vera - { - // Size: - 10, 2, 7, // SizeX = 10, SizeY = 2, SizeZ = 7 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 9, 1, 6, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 17: 0\n" /* tree */ - "b: 60: 7\n" /* tilleddirt */ - "c: 8: 0\n" /* water */ - "d: 59: 7\n" /* crops */ - "m: 19: 0\n" /* sponge */, - - // Block data: - // Level 0 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ "aaaaaaaaaa" - /* 1 */ "abbbbbbbba" - /* 2 */ "abbbbbbbba" - /* 3 */ "acccccccca" - /* 4 */ "abbbbbbbba" - /* 5 */ "abbbbbbbba" - /* 6 */ "aaaaaaaaaa" + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ "lllllll" + /* 2 */ "nhhhhhn" + /* 3 */ ".h...h." + /* 4 */ "phhhhhp" + /* 5 */ "qqqqqqq" + /* 6 */ "......." - // Level 1 - /* z\x* */ - /* * 0123456789 */ - /* 0 */ ".........." - /* 1 */ ".dddddddd." - /* 2 */ ".dddddddd." - /* 3 */ ".........." - /* 4 */ ".dddddddd." - /* 5 */ ".dddddddd." - /* 6 */ "..........", + // Level 7 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ "......." + /* 2 */ "lllllll" + /* 3 */ "hhhhhhh" + /* 4 */ "qqqqqqq" + /* 5 */ "......." + /* 6 */ ".......", // Connectors: - "-1: 9, 0, 3: 5\n" /* Type -1, direction X+ */, + "-1: 3, 2, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1526,128 +1432,124 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, - }, // PlainsVillage_60 + }, // WoodenHouse5x5 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // PlainsVillage_66: - // The data has been exported from the gallery Plains, area index 23, ID 66, created by xoft + // WoodenHouse7x5: + // The data has been exported from the gallery Plains, area index 40, ID 91, created by xoft { // Size: - 12, 7, 7, // SizeX = 12, SizeY = 7, SizeZ = 7 + 9, 8, 7, // SizeX = 9, SizeY = 8, SizeZ = 7 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 11, 6, 6, // MaxX, MaxY, MaxZ + 8, 7, 6, // MaxX, MaxY, MaxZ // 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: 67: 0\n" /* stairs */ "d: 67: 2\n" /* stairs */ "e: 67: 1\n" /* stairs */ "f: 4: 0\n" /* cobblestone */ - "g: 64: 7\n" /* wooddoorblock */ - "h: 53: 3\n" /* woodstairs */ - "i: 53: 1\n" /* woodstairs */ - "j: 85: 0\n" /* fence */ - "k: 53: 0\n" /* woodstairs */ + "g: 17: 0\n" /* tree */ + "h: 5: 0\n" /* wood */ + "i: 64: 7\n" /* wooddoorblock */ + "j:102: 0\n" /* glasspane */ + "k: 64:12\n" /* wooddoorblock */ "l: 53: 2\n" /* woodstairs */ "m: 19: 0\n" /* sponge */ - "n:102: 0\n" /* glasspane */ - "o: 64:12\n" /* wooddoorblock */ - "p: 50: 3\n" /* torch */ - "q: 72: 0\n" /* woodplate */ - "r: 50: 4\n" /* torch */ - "s: 53: 7\n" /* woodstairs */ - "t: 47: 0\n" /* bookshelf */ - "u: 50: 1\n" /* torch */ - "v: 50: 2\n" /* torch */ - "w: 53: 6\n" /* woodstairs */ - "x: 5: 0\n" /* wood */, + "n: 53: 7\n" /* woodstairs */ + "o: 50: 3\n" /* torch */ + "p: 53: 6\n" /* woodstairs */ + "q: 53: 3\n" /* woodstairs */, // Block data: // Level 0 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "aaaaaaabbbaa" - /* 1 */ "abbbbbbbbbba" - /* 2 */ "abbbbbbbbbba" - /* 3 */ "abbbbbbbbbba" - /* 4 */ "abbbbbbbbbba" - /* 5 */ "abbbbbbbbbba" - /* 6 */ "aaaaaaaaaaaa" + /* z\x* 012345678 */ + /* 0 */ "aaaaaaaaa" + /* 1 */ "aaaaaaaaa" + /* 2 */ "aaaaaaaaa" + /* 3 */ "aaaaaaaaa" + /* 4 */ "aaaaaaaaa" + /* 5 */ "aaaaaaaaa" + /* 6 */ "aaaaaaaaa" // Level 1 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ ".......cde.." - /* 1 */ ".ffffffffff." - /* 2 */ ".ffffffffff." - /* 3 */ ".ffffffffff." - /* 4 */ ".ffffffffff." - /* 5 */ ".ffffffffff." - /* 6 */ "............" + /* z\x* 012345678 */ + /* 0 */ "bbbaaabbb" + /* 1 */ "baaaaaaab" + /* 2 */ "baaaaaaab" + /* 3 */ "baaaaaaab" + /* 4 */ "baaaaaaab" + /* 5 */ "baaaaaaab" + /* 6 */ "bbbbbbbbb" // Level 2 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ ".fffffffgff." - /* 2 */ ".fh.ijk...f." - /* 3 */ ".fj.......f." - /* 4 */ ".fl.ijkijkf." - /* 5 */ ".ffffffffff." - /* 6 */ "............" + /* z\x* 012345678 */ + /* 0 */ "...cde..." + /* 1 */ ".fffffff." + /* 2 */ ".fffffff." + /* 3 */ ".fffffff." + /* 4 */ ".fffffff." + /* 5 */ ".fffffff." + /* 6 */ "........." // Level 3 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ ".fnnfnnfoff." - /* 2 */ ".n..pq.p.pn." - /* 3 */ ".nq.......n." - /* 4 */ ".n..rq.rq.n." - /* 5 */ ".fnnfnnfnnf." - /* 6 */ "............" + /* z\x* 012345678 */ + /* 0 */ "........." + /* 1 */ ".ghhihhg." + /* 2 */ ".h.....h." + /* 3 */ ".h.....h." + /* 4 */ ".h.....h." + /* 5 */ ".ghhhhhg." + /* 6 */ "........." // Level 4 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "llllllllllll" - /* 1 */ "sffffffffffs" - /* 2 */ ".fttttttttf." - /* 3 */ ".fu......vf." - /* 4 */ ".fttttttttf." - /* 5 */ "wffffffffffw" - /* 6 */ "hhhhhhhhhhhh" + /* z\x* 012345678 */ + /* 0 */ "........." + /* 1 */ ".gjhkhjg." + /* 2 */ ".j.....j." + /* 3 */ ".j.....j." + /* 4 */ ".j.....j." + /* 5 */ ".gjjhjjg." + /* 6 */ "........." // Level 5 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "llllllllllll" - /* 2 */ "sxxxxxxxxxxs" - /* 3 */ ".xxxxxxxxxx." - /* 4 */ "wxxxxxxxxxxw" - /* 5 */ "hhhhhhhhhhhh" - /* 6 */ "............" + /* z\x* 012345678 */ + /* 0 */ "lllllllll" + /* 1 */ "nghhhhhgn" + /* 2 */ ".h.o.o.h." + /* 3 */ ".h.....h." + /* 4 */ ".h.....h." + /* 5 */ "pghhhhhgp" + /* 6 */ "qqqqqqqqq" // Level 6 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "............" - /* 2 */ "llllllllllll" - /* 3 */ "xxxxxxxxxxxx" - /* 4 */ "hhhhhhhhhhhh" - /* 5 */ "............" - /* 6 */ "............", + /* z\x* 012345678 */ + /* 0 */ "........." + /* 1 */ "lllllllll" + /* 2 */ "nhhhhhhhn" + /* 3 */ ".h.....h." + /* 4 */ "phhhhhhhp" + /* 5 */ "qqqqqqqqq" + /* 6 */ "........." + + // Level 7 + /* z\x* 012345678 */ + /* 0 */ "........." + /* 1 */ "........." + /* 2 */ "lllllllll" + /* 3 */ "hhhhhhhhh" + /* 4 */ "qqqqqqqqq" + /* 5 */ "........." + /* 6 */ ".........", // Connectors: - "-1: 8, 1, 1: 2\n" /* Type -1, direction Z- */, + "-1: 4, 2, -1: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1666,137 +1568,132 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, - }, // PlainsVillage_66 + }, // WoodenHouse7x5 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // PlainsVillage_87: - // The data has been exported from the gallery Plains, area index 38, ID 87, created by Aloe_vera + // WoodenHouse9x5: + // The data has been exported from the gallery Plains, area index 41, ID 92, created by xoft { // Size: - 11, 7, 9, // SizeX = 11, SizeY = 7, SizeZ = 9 + 11, 8, 7, // SizeX = 11, SizeY = 8, SizeZ = 7 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 10, 6, 8, // MaxX, MaxY, MaxZ + 10, 7, 6, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 67: 0\n" /* stairs */ - "b: 67: 2\n" /* stairs */ - "c: 67: 1\n" /* stairs */ - "d: 4: 0\n" /* cobblestone */ - "e: 67: 3\n" /* stairs */ - "f: 17: 0\n" /* tree */ - "g: 5: 0\n" /* wood */ - "h: 64: 7\n" /* wooddoorblock */ - "i:102: 0\n" /* glasspane */ - "j: 64:12\n" /* wooddoorblock */ - "k: 53: 2\n" /* woodstairs */ - "l: 53: 7\n" /* woodstairs */ + "a: 3: 0\n" /* dirt */ + "b: 2: 0\n" /* grass */ + "c: 67: 0\n" /* stairs */ + "d: 67: 2\n" /* stairs */ + "e: 67: 1\n" /* stairs */ + "f: 4: 0\n" /* cobblestone */ + "g: 17: 0\n" /* tree */ + "h: 5: 0\n" /* wood */ + "i: 64: 7\n" /* wooddoorblock */ + "j:102: 0\n" /* glasspane */ + "k: 64:12\n" /* wooddoorblock */ + "l: 53: 2\n" /* woodstairs */ "m: 19: 0\n" /* sponge */ - "n: 17: 4\n" /* tree */ - "o: 17: 8\n" /* tree */ - "p: 50: 3\n" /* torch */ - "q: 50: 4\n" /* torch */ - "r: 53: 6\n" /* woodstairs */ - "s: 53: 3\n" /* woodstairs */, + "n: 53: 7\n" /* woodstairs */ + "o: 50: 3\n" /* torch */ + "p: 53: 6\n" /* woodstairs */ + "q: 53: 3\n" /* woodstairs */, // Block data: // Level 0 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "....abc...." - /* 1 */ ".ddddddddd." - /* 2 */ ".ddddddddd." - /* 3 */ ".ddddddddd." - /* 4 */ ".ddddddddd." - /* 5 */ ".ddddddddd." - /* 6 */ ".ddddddddd." - /* 7 */ ".ddddddddd." - /* 8 */ "....aec...." + /* 0 */ "aaaaaaaaaaa" + /* 1 */ "aaaaaaaaaaa" + /* 2 */ "aaaaaaaaaaa" + /* 3 */ "aaaaaaaaaaa" + /* 4 */ "aaaaaaaaaaa" + /* 5 */ "aaaaaaaaaaa" + /* 6 */ "aaaaaaaaaaa" // Level 1 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".fggfhfggf." - /* 2 */ ".g.......g." - /* 3 */ ".g.......g." - /* 4 */ ".f.......f." - /* 5 */ ".g.......g." - /* 6 */ ".g.......g." - /* 7 */ ".fggfhfggf." - /* 8 */ "..........." + /* 0 */ "bbbbaaabbbb" + /* 1 */ "baaaaaaaaab" + /* 2 */ "baaaaaaaaab" + /* 3 */ "baaaaaaaaab" + /* 4 */ "baaaaaaaaab" + /* 5 */ "baaaaaaaaab" + /* 6 */ "bbbbbbbbbbb" // Level 2 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".fiifjfiif." - /* 2 */ ".i.......i." - /* 3 */ ".i.......i." - /* 4 */ ".f.......f." - /* 5 */ ".i.......i." - /* 6 */ ".i.......i." - /* 7 */ ".fiifjfiif." - /* 8 */ "..........." + /* 0 */ "....cde...." + /* 1 */ ".fffffffff." + /* 2 */ ".fffffffff." + /* 3 */ ".fffffffff." + /* 4 */ ".fffffffff." + /* 5 */ ".fffffffff." + /* 6 */ "..........." // Level 3 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "kkkkkkkkkkk" - /* 1 */ "lfnnnnnnnfl" - /* 2 */ ".o..p.p..o." - /* 3 */ ".o.......o." - /* 4 */ ".o.......o." - /* 5 */ ".o.......o." - /* 6 */ ".o..q.q..o." - /* 7 */ "rfnnnnnnnfr" - /* 8 */ "sssssssssss" + /* 0 */ "..........." + /* 1 */ ".ghhhihhhg." + /* 2 */ ".h.......h." + /* 3 */ ".h.......h." + /* 4 */ ".h.......h." + /* 5 */ ".ghhhhhhhg." + /* 6 */ "..........." // Level 4 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "..........." - /* 1 */ "kkkkkkkkkkk" - /* 2 */ "lgggggggggl" - /* 3 */ ".g.......g." - /* 4 */ ".g.......g." - /* 5 */ ".g.......g." - /* 6 */ "rgggggggggr" - /* 7 */ "sssssssssss" - /* 8 */ "..........." + /* 1 */ ".gjjhkhjjg." + /* 2 */ ".j.......j." + /* 3 */ ".j.......j." + /* 4 */ ".j.......j." + /* 5 */ ".gjjjhjjjg." + /* 6 */ "..........." // Level 5 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "kkkkkkkkkkk" - /* 3 */ "lgggggggggl" - /* 4 */ ".g.......g." - /* 5 */ "rgggggggggr" - /* 6 */ "sssssssssss" - /* 7 */ "..........." - /* 8 */ "..........." + /* 0 */ "lllllllllll" + /* 1 */ "nhhhhhhhhhn" + /* 2 */ ".h..o.o.hh." + /* 3 */ ".h......hh." + /* 4 */ ".h......hh." + /* 5 */ "phhhhhhhhhp" + /* 6 */ "qqqqqqqqqqq" // Level 6 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ "kkkkkkkkkkk" - /* 4 */ "ggggggggggg" - /* 5 */ "sssssssssss" + /* 1 */ "lllllllllll" + /* 2 */ "nhhhhhhhhhn" + /* 3 */ ".hhhhhhhhh." + /* 4 */ "phhhhhhhhhp" + /* 5 */ "qqqqqqqqqqq" /* 6 */ "..........." - /* 7 */ "..........." - /* 8 */ "...........", + + // Level 7 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "lllllllllll" + /* 3 */ "hhhhhhhhhhh" + /* 4 */ "qqqqqqqqqqq" + /* 5 */ "..........." + /* 6 */ "...........", // Connectors: - "-1: 5, 0, 1: 2\n" /* Type -1, direction Z- */, + "-1: 5, 2, -1: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1815,217 +1712,139 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, - }, // PlainsVillage_87 + }, // WoodenHouse9x5 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // PlainsVillage_90: - // The data has been exported from the gallery Plains, area index 39, ID 90, created by STR_Warrior + // WoodenHouse9x5: + // The data has been exported from the gallery Plains, area index 46, ID 97, created by Aloe_vera { // Size: - 15, 8, 16, // SizeX = 15, SizeY = 8, SizeZ = 16 + 11, 8, 7, // SizeX = 11, SizeY = 8, SizeZ = 7 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 14, 7, 15, // MaxX, MaxY, MaxZ + 10, 7, 6, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "A: 53: 7\n" /* woodstairs */ - "B: 53: 4\n" /* woodstairs */ - "C: 53: 5\n" /* woodstairs */ - "D: 53: 6\n" /* woodstairs */ - "a: 67: 0\n" /* stairs */ - "b: 67: 2\n" /* stairs */ - "c: 67: 1\n" /* stairs */ - "d: 4: 0\n" /* cobblestone */ - "e: 43: 0\n" /* doubleslab */ - "f: 17: 0\n" /* tree */ - "g: 5: 0\n" /* wood */ - "h: 64: 7\n" /* wooddoorblock */ - "i: 96: 8\n" /* trapdoor */ - "j: 61: 2\n" /* furnace */ - "k: 53: 3\n" /* woodstairs */ - "l: 85: 0\n" /* fence */ + "a: 3: 0\n" /* dirt */ + "b: 2: 0\n" /* grass */ + "c: 67: 0\n" /* stairs */ + "d: 67: 2\n" /* stairs */ + "e: 67: 1\n" /* stairs */ + "f: 4: 0\n" /* cobblestone */ + "g: 17: 0\n" /* tree */ + "h: 5: 0\n" /* wood */ + "i: 64: 7\n" /* wooddoorblock */ + "j: 53: 3\n" /* woodstairs */ + "k: 85: 0\n" /* fence */ + "l: 53: 2\n" /* woodstairs */ "m: 19: 0\n" /* sponge */ - "n: 53: 2\n" /* woodstairs */ - "o: 53: 1\n" /* woodstairs */ - "p: 53: 0\n" /* woodstairs */ - "q: 47: 0\n" /* bookshelf */ - "r:102: 0\n" /* glasspane */ - "s: 64:12\n" /* wooddoorblock */ - "t: 72: 0\n" /* woodplate */ - "u: 17: 4\n" /* tree */ - "v: 17: 8\n" /* tree */ - "w: 50: 3\n" /* torch */ - "x: 50: 1\n" /* torch */ - "y: 50: 4\n" /* torch */ - "z: 50: 2\n" /* torch */, + "n: 53: 1\n" /* woodstairs */ + "o: 53: 0\n" /* woodstairs */ + "p:102: 0\n" /* glasspane */ + "q: 64:12\n" /* wooddoorblock */ + "r: 50: 3\n" /* torch */ + "s: 72: 0\n" /* woodplate */ + "t: 53: 7\n" /* woodstairs */ + "u: 47: 0\n" /* bookshelf */ + "v: 50: 1\n" /* torch */ + "w: 50: 2\n" /* torch */ + "x: 53: 6\n" /* woodstairs */, // Block data: // Level 0 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "......abc......" - /* 1 */ ".ddddddddddddd." - /* 2 */ ".deeeedddddddd." - /* 3 */ ".deeeedddddddd." - /* 4 */ ".ddddddddddddd." - /* 5 */ ".ddddddddddddd." - /* 6 */ ".ddddddddddddd." - /* 7 */ "mddddddddddddd." - /* 8 */ "mmmmmmmmdddddd." - /* 9 */ "mmmmmmmmdddddd." - /* 10 */ "mmmmmmmmdddddd." - /* 11 */ "mmmmmmmmdddddd." - /* 12 */ "mmmmmmmmdddddd." - /* 13 */ "mmmmmmmmdddddd." - /* 14 */ "mmmmmmmmdddddd." - /* 15 */ "mmmmmmmm......." + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "aaaaaaaaaaa" + /* 1 */ "aaaaaaaaaaa" + /* 2 */ "aaaaaaaaaaa" + /* 3 */ "aaaaaaaaaaa" + /* 4 */ "aaaaaaaaaaa" + /* 5 */ "aaaaaaaaaaa" + /* 6 */ "aaaaaaaaaaa" // Level 1 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".fggggfhfggggf." - /* 2 */ ".g...i.......g." - /* 3 */ ".gjeee......kg." - /* 4 */ ".f..........lg." - /* 5 */ ".g..........ng." - /* 6 */ ".g.olp..ol...g." - /* 7 */ "mfggggggfn...f." - /* 8 */ "mmmmmmmmg....g." - /* 9 */ "mmmmmmmmgk...g." - /* 10 */ "mmmmmmmmgl..kg." - /* 11 */ "mmmmmmmmgn..lg." - /* 12 */ "mmmmmmmmg...ng." - /* 13 */ "mmmmmmmmgq..qg." - /* 14 */ "mmmmmmmmfggggf." - /* 15 */ "mmmmmmmm......." + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "bbbbaaabbbb" + /* 1 */ "baaaaaaaaab" + /* 2 */ "baaaaaaaaab" + /* 3 */ "baaaaaaaaab" + /* 4 */ "baaaaaaaaab" + /* 5 */ "baaaaaaaaab" + /* 6 */ "bbbbbbbbbbb" // Level 2 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".fgrrgfsfgrrgf." - /* 2 */ ".g...........g." - /* 3 */ ".g...........r." - /* 4 */ ".f..........tr." - /* 5 */ ".g...........r." - /* 6 */ ".g..t....t...g." - /* 7 */ "mfgrrrrgf....f." - /* 8 */ "mmmmmmmmg....g." - /* 9 */ "mmmmmmmmr....r." - /* 10 */ "mmmmmmmmrt...r." - /* 11 */ "mmmmmmmmr...tr." - /* 12 */ "mmmmmmmmr....r." - /* 13 */ "mmmmmmmmgq..qg." - /* 14 */ "mmmmmmmmfgrrgf." - /* 15 */ "mmmmmmmm......." + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "....cde...." + /* 1 */ ".fffffffff." + /* 2 */ ".fffffffff." + /* 3 */ ".fffffffff." + /* 4 */ ".fffffffff." + /* 5 */ ".fffffffff." + /* 6 */ "..........." // Level 3 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".fuuuuuuuuuuuf." - /* 2 */ ".v....w.w....v." - /* 3 */ ".v...........v." - /* 4 */ ".vx..........v." - /* 5 */ ".v...........v." - /* 6 */ ".v......y....v." - /* 7 */ "mfuuuuuufx..zv." - /* 8 */ "mmmmmmmmv....v." - /* 9 */ "mmmmmmmmv....v." - /* 10 */ "mmmmmmmmv....v." - /* 11 */ "mmmmmmmmv....v." - /* 12 */ "mmmmmmmmv....v." - /* 13 */ "mmmmmmmmv.yy.v." - /* 14 */ "mmmmmmmmfuuuuf." - /* 15 */ "mmmmmmmm......." + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".ghhhihhhg." + /* 2 */ ".hj.....jh." + /* 3 */ ".hk.....kh." + /* 4 */ ".hl.nko.lh." + /* 5 */ ".ghhhhhhhg." + /* 6 */ "..........." // Level 4 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "nnnnnnnnnnnnnno" - /* 1 */ "pgggggggggggggo" - /* 2 */ "pgAAAAAAAAAABgo" - /* 3 */ "pgC.........Bgo" - /* 4 */ "pgC.........Bgo" - /* 5 */ "pgC.........Bgo" - /* 6 */ "pgCDDDDDDD..Bgo" - /* 7 */ "pggggggggC..Bgo" - /* 8 */ "pkkkkkkpgC..Bgo" - /* 9 */ "mmmmmmmpgC..Bgo" - /* 10 */ "mmmmmmmpgC..Bgo" - /* 11 */ "mmmmmmmpgC..Bgo" - /* 12 */ "mmmmmmmpgC..Bgo" - /* 13 */ "mmmmmmmpgCDDBgo" - /* 14 */ "mmmmmmmpggggggo" - /* 15 */ "mmmmmmmpkkkkkkk" + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".gpphqhppg." + /* 2 */ ".p..r.r..p." + /* 3 */ ".ps.....sp." + /* 4 */ ".p...s...p." + /* 5 */ ".gppphpppg." + /* 6 */ "..........." // Level 5 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "mmmmmmmmmmmmmmm" - /* 1 */ "mpnnnnnnnnnnnom" - /* 2 */ "mpgggggggggggom" - /* 3 */ "mpgggggggggggom" - /* 4 */ "mpgggggggggggom" - /* 5 */ "mpgggggggggggom" - /* 6 */ "mpgggggggggggom" - /* 7 */ "mpkkkkkkkggggom" - /* 8 */ "mmmmmmmmpggggom" - /* 9 */ "mmmmmmmmpggggom" - /* 10 */ "mmmmmmmmpggggom" - /* 11 */ "mmmmmmmmpggggom" - /* 12 */ "mmmmmmmmpggggom" - /* 13 */ "mmmmmmmmpggggom" - /* 14 */ "mmmmmmmmkkkkkom" - /* 15 */ "mmmmmmmmmmmmmmm" + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "lllllllllll" + /* 1 */ "thhhhhhhhht" + /* 2 */ ".huuuuuuuh." + /* 3 */ ".hv.....wh." + /* 4 */ ".huuuuuuuh." + /* 5 */ "xhhhhhhhhhx" + /* 6 */ "jjjjjjjjjjj" // Level 6 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "mmmmmmmmmmmmmmm" - /* 1 */ "mmmmmmmmmmmmmmm" - /* 2 */ "mmnnnnnnnnnnnmm" - /* 3 */ "mmpgggggggggomm" - /* 4 */ "mmpgggggggggomm" - /* 5 */ "mmpgggggggggomm" - /* 6 */ "mmkkkkkkkkggomm" - /* 7 */ "mmmmmmmmmpggomm" - /* 8 */ "mmmmmmmmmpggomm" - /* 9 */ "mmmmmmmmmpggomm" - /* 10 */ "mmmmmmmmmpggomm" - /* 11 */ "mmmmmmmmmpggomm" - /* 12 */ "mmmmmmmmmpggomm" - /* 13 */ "mmmmmmmmmkkkomm" - /* 14 */ "mmmmmmmmmmmmmmm" - /* 15 */ "mmmmmmmmmmmmmmm" + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "lllllllllll" + /* 2 */ "thhhhhhhhht" + /* 3 */ ".h.......h." + /* 4 */ "xhhhhhhhhhx" + /* 5 */ "jjjjjjjjjjj" + /* 6 */ "..........." // Level 7 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "mmmmmmmmmmmmmmm" - /* 1 */ "mmmmmmmmmmmmmmm" - /* 2 */ "mmmmmmmmmmmmmmm" - /* 3 */ "mmmpnnnnnnnommm" - /* 4 */ "mmmpgggggggommm" - /* 5 */ "mmmpkkkkkkpommm" - /* 6 */ "mmmmmmmmmmpommm" - /* 7 */ "mmmmmmmmmmpommm" - /* 8 */ "mmmmmmmmmmpommm" - /* 9 */ "mmmmmmmmmmpommm" - /* 10 */ "mmmmmmmmmmpommm" - /* 11 */ "mmmmmmmmmmpommm" - /* 12 */ "mmmmmmmmmmpkmmm" - /* 13 */ "mmmmmmmmmmmmmmm" - /* 14 */ "mmmmmmmmmmmmmmm" - /* 15 */ "mmmmmmmmmmmmmmm", + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "lllllllllll" + /* 3 */ "hhhhhhhhhhh" + /* 4 */ "jjjjjjjjjjj" + /* 5 */ "..........." + /* 6 */ "...........", // Connectors: - "-1: 7, 0, 1: 2\n" /* Type -1, direction Z- */, + "-1: 5, 2, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -2044,114 +1863,170 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, - }, // PlainsVillage_90 + }, // WoodenHouse9x5 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // PlainsVillage_91: - // The data has been exported from the gallery Plains, area index 40, ID 91, created by xoft + // WoodenHouse9x5Fence: + // The data has been exported from the gallery Plains, area index 9, ID 26, created by Aloe_vera { // Size: - 9, 7, 7, // SizeX = 9, SizeY = 7, SizeZ = 7 + 10, 8, 11, // SizeX = 10, SizeY = 8, SizeZ = 11 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 8, 6, 6, // MaxX, MaxY, MaxZ + 9, 7, 10, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 2: 0\n" /* grass */ - "b: 3: 0\n" /* dirt */ - "c: 67: 0\n" /* stairs */ - "d: 67: 2\n" /* stairs */ - "e: 67: 1\n" /* stairs */ - "f: 4: 0\n" /* cobblestone */ - "g: 17: 0\n" /* tree */ - "h: 5: 0\n" /* wood */ - "i: 64: 7\n" /* wooddoorblock */ - "j:102: 0\n" /* glasspane */ - "k: 64:12\n" /* wooddoorblock */ - "l: 53: 2\n" /* woodstairs */ + "a: 3: 0\n" /* dirt */ + "b: 2: 0\n" /* grass */ + "c: 4: 0\n" /* cobblestone */ + "d: 5: 0\n" /* wood */ + "e: 67: 2\n" /* stairs */ + "f: 43: 0\n" /* doubleslab */ + "g: 67: 0\n" /* stairs */ + "h: 67: 3\n" /* stairs */ + "i: 17: 0\n" /* tree */ + "j: 53: 1\n" /* woodstairs */ + "k: 85: 0\n" /* fence */ + "l: 53: 0\n" /* woodstairs */ "m: 19: 0\n" /* sponge */ - "n: 53: 7\n" /* woodstairs */ - "o: 50: 3\n" /* torch */ - "p: 53: 6\n" /* woodstairs */ - "q: 53: 3\n" /* woodstairs */, + "n: 64: 6\n" /* wooddoorblock */ + "o: 64: 0\n" /* wooddoorblock */ + "p:102: 0\n" /* glasspane */ + "q: 72: 0\n" /* woodplate */ + "r: 64:12\n" /* wooddoorblock */ + "s: 64: 8\n" /* wooddoorblock */ + "t: 53: 5\n" /* woodstairs */ + "u: 53: 4\n" /* woodstairs */ + "v: 50: 1\n" /* torch */ + "w: 50: 2\n" /* torch */, // Block data: // Level 0 - /* z\x* 012345678 */ - /* 0 */ "aaabbbaaa" - /* 1 */ "abbbbbbba" - /* 2 */ "abbbbbbba" - /* 3 */ "abbbbbbba" - /* 4 */ "abbbbbbba" - /* 5 */ "abbbbbbba" - /* 6 */ "aaaaaaaaa" + /* z\x* */ + /* * 0123456789 */ + /* 0 */ "aaaaaaaaaa" + /* 1 */ "aaaaaaaaaa" + /* 2 */ "aaaaaaaaaa" + /* 3 */ "aaaaaaaaaa" + /* 4 */ "aaaaaaaaaa" + /* 5 */ "aaaaaaaaaa" + /* 6 */ "aaaaaaaaaa" + /* 7 */ "aaaaaaaaaa" + /* 8 */ "aaaaaaaaaa" + /* 9 */ "aaaaaaaaaa" + /* 10 */ "aaaaaaaaaa" // Level 1 - /* z\x* 012345678 */ - /* 0 */ "...cde..." - /* 1 */ ".fffffff." - /* 2 */ ".fffffff." - /* 3 */ ".fffffff." - /* 4 */ ".fffffff." - /* 5 */ ".fffffff." - /* 6 */ "........." + /* z\x* */ + /* * 0123456789 */ + /* 0 */ "bbbbbbbbbb" + /* 1 */ "baaaaabbbb" + /* 2 */ "baaaaabbbb" + /* 3 */ "baaaaaaaaa" + /* 4 */ "aaaaaaaaaa" + /* 5 */ "aaaaaaaaaa" + /* 6 */ "aaaaaaaaaa" + /* 7 */ "baaaaaaaaa" + /* 8 */ "baaaaaaaaa" + /* 9 */ "baaaaabbbb" + /* 10 */ "bbbbbbbbbb" // Level 2 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ ".ghhihhg." - /* 2 */ ".h.....h." - /* 3 */ ".h.....h." - /* 4 */ ".h.....h." - /* 5 */ ".ghhhhhg." - /* 6 */ "........." + /* z\x* */ + /* * 0123456789 */ + /* 0 */ "......mmmm" + /* 1 */ ".cccccmmmm" + /* 2 */ ".cdddcmmmm" + /* 3 */ ".cdddcbbbb" + /* 4 */ "ecfffcbbbb" + /* 5 */ "gcffffbbbb" + /* 6 */ "hcfffcbbbb" + /* 7 */ ".cfffcbbbb" + /* 8 */ ".cfffcbbbb" + /* 9 */ ".cccccmmmm" + /* 10 */ "......mmmm" // Level 3 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ ".gjhkhjg." - /* 2 */ ".j.....j." - /* 3 */ ".j.....j." - /* 4 */ ".j.....j." - /* 5 */ ".gjjhjjg." - /* 6 */ "........." + /* z\x* */ + /* * 0123456789 */ + /* 0 */ "......mmmm" + /* 1 */ ".idddimmmm" + /* 2 */ ".djkldmmmm" + /* 3 */ ".d...dkkkk" + /* 4 */ ".d...d...k" + /* 5 */ ".n...o...k" + /* 6 */ ".d...d...k" + /* 7 */ ".dff.d...k" + /* 8 */ ".d...dkkkk" + /* 9 */ ".idddimmmm" + /* 10 */ "......mmmm" // Level 4 - /* z\x* 012345678 */ - /* 0 */ "lllllllll" - /* 1 */ "nghhhhhgn" - /* 2 */ ".h.o.o.h." - /* 3 */ ".h.....h." - /* 4 */ ".h.....h." - /* 5 */ "pghhhhhgp" - /* 6 */ "qqqqqqqqq" + /* z\x* */ + /* * 0123456789 */ + /* 0 */ "......mmmm" + /* 1 */ ".ipppimmmm" + /* 2 */ ".p.q.pmmmm" + /* 3 */ ".p...p...." + /* 4 */ ".d...d...." + /* 5 */ ".r...s...." + /* 6 */ ".d...d...." + /* 7 */ ".p...p...." + /* 8 */ ".p...p...." + /* 9 */ ".ipppimmmm" + /* 10 */ "......mmmm" // Level 5 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ "lllllllll" - /* 2 */ "nhhhhhhhn" - /* 3 */ ".h.....h." - /* 4 */ "phhhhhhhp" - /* 5 */ "qqqqqqqqq" - /* 6 */ "........." + /* z\x* */ + /* * 0123456789 */ + /* 0 */ "lt...ujmmm" + /* 1 */ "lidddijmmm" + /* 2 */ "ld...djmmm" + /* 3 */ "ld...dj..." + /* 4 */ "ldv.wdj..." + /* 5 */ "ld...dj..." + /* 6 */ "ldv.wdj..." + /* 7 */ "ld...dj..." + /* 8 */ "ld...dj..." + /* 9 */ "lidddijmmm" + /* 10 */ "lt...ujmmm" // Level 6 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ "........." - /* 2 */ "lllllllll" - /* 3 */ "hhhhhhhhh" - /* 4 */ "qqqqqqqqq" - /* 5 */ "........." - /* 6 */ ".........", + /* z\x* */ + /* * 0123456789 */ + /* 0 */ "mlt.ujmmmm" + /* 1 */ "mldddjmmmm" + /* 2 */ "mld.djmmmm" + /* 3 */ "mld.djm..." + /* 4 */ "mld.djm..." + /* 5 */ "mld.djm..." + /* 6 */ "mld.djm..." + /* 7 */ "mld.djm..." + /* 8 */ "mld.djm..." + /* 9 */ "mldddjmmmm" + /* 10 */ "mlt.ujmmmm" + + // Level 7 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ "mmldjmmmmm" + /* 1 */ "mmldjmmmmm" + /* 2 */ "mmldjmmmmm" + /* 3 */ "mmldjmm..." + /* 4 */ "mmldjmm..." + /* 5 */ "mmldjmm..." + /* 6 */ "mmldjmm..." + /* 7 */ "mmldjmm..." + /* 8 */ "mmldjmm..." + /* 9 */ "mmldjmmmmm" + /* 10 */ "mmldjmmmmm", // Connectors: - "-1: 4, 1, 0: 2\n" /* Type -1, direction Z- */, + "-1: 0, 2, 5: 4\n" /* Type -1, direction X- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -2170,108 +2045,162 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, - }, // PlainsVillage_91 + }, // WoodenHouse9x5Fence /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // PlainsVillage_92: - // The data has been exported from the gallery Plains, area index 41, ID 92, created by xoft + // WoodenHouse9x7: + // The data has been exported from the gallery Plains, area index 52, ID 103, created by Aloe_vera { // Size: - 11, 6, 7, // SizeX = 11, SizeY = 6, SizeZ = 7 + 11, 9, 9, // SizeX = 11, SizeY = 9, SizeZ = 9 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 10, 5, 6, // MaxX, MaxY, MaxZ + 10, 8, 8, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 67: 0\n" /* stairs */ - "b: 67: 2\n" /* stairs */ - "c: 67: 1\n" /* stairs */ - "d: 4: 0\n" /* cobblestone */ - "e: 17: 0\n" /* tree */ - "f: 5: 0\n" /* wood */ - "g: 64: 7\n" /* wooddoorblock */ - "h:102: 0\n" /* glasspane */ - "i: 64:12\n" /* wooddoorblock */ - "j: 53: 2\n" /* woodstairs */ - "k: 53: 7\n" /* woodstairs */ - "l: 50: 3\n" /* torch */ + "a: 3: 0\n" /* dirt */ + "b: 2: 0\n" /* grass */ + "c: 67: 0\n" /* stairs */ + "d: 67: 2\n" /* stairs */ + "e: 67: 1\n" /* stairs */ + "f: 4: 0\n" /* cobblestone */ + "g: 17: 0\n" /* tree */ + "h: 5: 0\n" /* wood */ + "i: 64: 7\n" /* wooddoorblock */ + "j:102: 0\n" /* glasspane */ + "k: 64:12\n" /* wooddoorblock */ + "l: 53: 2\n" /* woodstairs */ "m: 19: 0\n" /* sponge */ - "n: 53: 6\n" /* woodstairs */ - "o: 53: 3\n" /* woodstairs */, + "n: 53: 7\n" /* woodstairs */ + "o: 50: 3\n" /* torch */ + "p: 50: 4\n" /* torch */ + "q: 53: 6\n" /* woodstairs */ + "r: 53: 3\n" /* woodstairs */, // Block data: // Level 0 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "....abc...." - /* 1 */ ".ddddddddd." - /* 2 */ ".ddddddddd." - /* 3 */ ".ddddddddd." - /* 4 */ ".ddddddddd." - /* 5 */ ".ddddddddd." - /* 6 */ "..........." + /* 0 */ "aaaaaaaaaaa" + /* 1 */ "aaaaaaaaaaa" + /* 2 */ "aaaaaaaaaaa" + /* 3 */ "aaaaaaaaaaa" + /* 4 */ "aaaaaaaaaaa" + /* 5 */ "aaaaaaaaaaa" + /* 6 */ "aaaaaaaaaaa" + /* 7 */ "aaaaaaaaaaa" + /* 8 */ "aaaaaaaaaaa" // Level 1 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".efffgfffe." - /* 2 */ ".f.......f." - /* 3 */ ".f.......f." - /* 4 */ ".f.......f." - /* 5 */ ".efffffffe." - /* 6 */ "..........." + /* 0 */ "bbbbaaabbbb" + /* 1 */ "baaaaaaaaab" + /* 2 */ "baaaaaaaaab" + /* 3 */ "baaaaaaaaab" + /* 4 */ "baaaaaaaaab" + /* 5 */ "baaaaaaaaab" + /* 6 */ "baaaaaaaaab" + /* 7 */ "baaaaaaaaab" + /* 8 */ "bbbbbbbbbbb" // Level 2 /* z\x* 1 */ /* * 01234567890 */ + /* 0 */ "....cde...." + /* 1 */ ".fffffffff." + /* 2 */ ".fffffffff." + /* 3 */ ".fffffffff." + /* 4 */ ".fffffffff." + /* 5 */ ".fffffffff." + /* 6 */ ".fffffffff." + /* 7 */ ".fffffffff." + /* 8 */ "..........." + + // Level 3 + /* z\x* 1 */ + /* * 01234567890 */ /* 0 */ "..........." - /* 1 */ ".ehhfifhhe." + /* 1 */ ".ghhhihhhg." /* 2 */ ".h.......h." /* 3 */ ".h.......h." /* 4 */ ".h.......h." - /* 5 */ ".ehhhfhhhe." - /* 6 */ "..........." + /* 5 */ ".h.......h." + /* 6 */ ".h.......h." + /* 7 */ ".ghhhhhhhg." + /* 8 */ "..........." - // Level 3 + // Level 4 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "jjjjjjjjjjj" - /* 1 */ "kfffffffffk" - /* 2 */ ".f..l.l.ff." - /* 3 */ ".f......ff." - /* 4 */ ".f......ff." - /* 5 */ "nfffffffffn" - /* 6 */ "ooooooooooo" + /* 0 */ "..........." + /* 1 */ ".gjjhkhjjg." + /* 2 */ ".j.......j." + /* 3 */ ".j.......j." + /* 4 */ ".h.......h." + /* 5 */ ".j.......j." + /* 6 */ ".j.......j." + /* 7 */ ".gjjjhjjjg." + /* 8 */ "..........." - // Level 4 + // Level 5 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "lllllllllll" + /* 1 */ "nhhhhhhhhhn" + /* 2 */ ".h..o.o..h." + /* 3 */ ".h.......h." + /* 4 */ ".h.......h." + /* 5 */ ".h.......h." + /* 6 */ ".h...p...h." + /* 7 */ "qhhhhhhhhhq" + /* 8 */ "rrrrrrrrrrr" + + // Level 6 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "..........." - /* 1 */ "jjjjjjjjjjj" - /* 2 */ "kfffffffffk" - /* 3 */ ".fffffffff." - /* 4 */ "nfffffffffn" - /* 5 */ "ooooooooooo" - /* 6 */ "..........." + /* 1 */ "lllllllllll" + /* 2 */ "nhhhhhhhhhn" + /* 3 */ ".h.......h." + /* 4 */ ".h.......h." + /* 5 */ ".h.......h." + /* 6 */ "qhhhhhhhhhq" + /* 7 */ "rrrrrrrrrrr" + /* 8 */ "..........." - // Level 5 + // Level 7 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "..........." /* 1 */ "..........." - /* 2 */ "jjjjjjjjjjj" - /* 3 */ "fffffffffff" - /* 4 */ "ooooooooooo" - /* 5 */ "..........." - /* 6 */ "...........", + /* 2 */ "lllllllllll" + /* 3 */ "nhhhhhhhhhn" + /* 4 */ ".h.......h." + /* 5 */ "qhhhhhhhhhq" + /* 6 */ "rrrrrrrrrrr" + /* 7 */ "..........." + /* 8 */ "..........." + + // Level 8 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "..........." + /* 3 */ "lllllllllll" + /* 4 */ "hhhhhhhhhhh" + /* 5 */ "rrrrrrrrrrr" + /* 6 */ "..........." + /* 7 */ "..........." + /* 8 */ "...........", // Connectors: - "-1: 5, 0, 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 */ @@ -2290,139 +2219,201 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, - }, // PlainsVillage_92 + }, // WoodenHouse9x7 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // PlainsVillage_93: - // The data has been exported from the gallery Plains, area index 42, ID 93, created by xoft + // WoodenHouse9x7Butcher: + // The data has been exported from the gallery Plains, area index 48, ID 99, created by Aloe_vera { // Size: - 11, 6, 11, // SizeX = 11, SizeY = 6, SizeZ = 11 + 11, 9, 13, // SizeX = 11, SizeY = 9, SizeZ = 13 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 10, 5, 10, // MaxX, MaxY, MaxZ + 10, 8, 12, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 67: 0\n" /* stairs */ - "b: 67: 2\n" /* stairs */ - "c: 67: 1\n" /* stairs */ - "d: 4: 0\n" /* cobblestone */ - "e: 17: 0\n" /* tree */ - "f: 5: 0\n" /* wood */ - "g: 64: 7\n" /* wooddoorblock */ - "h:102: 0\n" /* glasspane */ - "i: 64:12\n" /* wooddoorblock */ - "j: 53: 2\n" /* woodstairs */ - "k: 53: 7\n" /* woodstairs */ - "l: 53: 1\n" /* woodstairs */ + "a: 3: 0\n" /* dirt */ + "b: 2: 0\n" /* grass */ + "c: 67: 0\n" /* stairs */ + "d: 67: 2\n" /* stairs */ + "e: 67: 1\n" /* stairs */ + "f: 4: 0\n" /* cobblestone */ + "g: 43: 0\n" /* doubleslab */ + "h: 17: 0\n" /* tree */ + "i: 5: 0\n" /* wood */ + "j: 64: 7\n" /* wooddoorblock */ + "k: 53: 3\n" /* woodstairs */ + "l: 85: 0\n" /* fence */ "m: 19: 0\n" /* sponge */ - "n: 50: 3\n" /* torch */ - "o: 50: 4\n" /* torch */ - "p: 53: 6\n" /* woodstairs */ - "q: 50: 1\n" /* torch */ - "r: 50: 2\n" /* torch */ - "s: 53: 3\n" /* woodstairs */ - "t: 53: 0\n" /* woodstairs */ - "u: 53: 5\n" /* woodstairs */ - "v: 53: 4\n" /* woodstairs */, + "n: 53: 2\n" /* woodstairs */ + "o:102: 0\n" /* glasspane */ + "p: 64:12\n" /* wooddoorblock */ + "q: 72: 0\n" /* woodplate */ + "r: 53: 7\n" /* woodstairs */ + "s: 50: 1\n" /* torch */ + "t: 50: 2\n" /* torch */ + "u: 53: 6\n" /* woodstairs */, // Block data: // Level 0 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "....abc...." - /* 1 */ ".ddddddddd." - /* 2 */ ".ddddddddd." - /* 3 */ ".ddddddddd." - /* 4 */ ".ddddddddd." - /* 5 */ ".ddddddddd." - /* 6 */ ".....ddddd." - /* 7 */ "mmmm.ddddd." - /* 8 */ "mmmm.ddddd." - /* 9 */ "mmmm.ddddd." - /* 10 */ "mmmm......." + /* 0 */ "aaaaaaaaaaa" + /* 1 */ "aaaaaaaaaaa" + /* 2 */ "aaaaaaaaaaa" + /* 3 */ "aaaaaaaaaaa" + /* 4 */ "aaaaaaaaaaa" + /* 5 */ "aaaaaaaaaaa" + /* 6 */ "aaaaaaaaaaa" + /* 7 */ "aaaaaaaaaaa" + /* 8 */ "aaaaaaaaaaa" + /* 9 */ "aaaaaaaaaaa" + /* 10 */ "aaaaaaaaaaa" + /* 11 */ "aaaaaaaaaaa" + /* 12 */ "aaaaaaaaaaa" // Level 1 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".efffgfffe." - /* 2 */ ".f.......f." - /* 3 */ ".f.......f." - /* 4 */ ".f.......f." - /* 5 */ ".efffe...f." - /* 6 */ ".....f...f." - /* 7 */ "mmmm.f...f." - /* 8 */ "mmmm.f...f." - /* 9 */ "mmmm.efffe." - /* 10 */ "mmmm......." + /* 0 */ "bbbbaaabbbb" + /* 1 */ "baaaaaaaaab" + /* 2 */ "baaaaaaaaab" + /* 3 */ "baaaaaaaaab" + /* 4 */ "baaaaaaaaab" + /* 5 */ "baaaaaaaaab" + /* 6 */ "baaaaaaaaab" + /* 7 */ "baaaaaaaaab" + /* 8 */ "bbaaaaaaabb" + /* 9 */ "bbaaaaaaabb" + /* 10 */ "bbaaaaaaabb" + /* 11 */ "bbaaaaaaabb" + /* 12 */ "bbaaaaaaabb" // Level 2 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".ehhfifhhe." - /* 2 */ ".h.......h." - /* 3 */ ".h.......h." - /* 4 */ ".h.......h." - /* 5 */ ".ehhhe...f." - /* 6 */ ".....h...h." - /* 7 */ "mmmm.h...h." - /* 8 */ "mmmm.h...h." - /* 9 */ "mmmm.ehhhe." - /* 10 */ "mmmm......." + /* 0 */ "....cde...." + /* 1 */ ".fffffffff." + /* 2 */ ".fggggffff." + /* 3 */ ".fggggffff." + /* 4 */ ".fggggffff." + /* 5 */ ".fggggffff." + /* 6 */ ".fggggffff." + /* 7 */ ".fffffffff." + /* 8 */ "..bbbbbbb.." + /* 9 */ "mmbbbbbbbmm" + /* 10 */ "mmbbbbbbbmm" + /* 11 */ "mmbbbbbbbmm" + /* 12 */ "mmbbbbbbbmm" // Level 3 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "jjjjjjjjjjj" - /* 1 */ "kfffffffffl" - /* 2 */ ".f..n.n..fl" - /* 3 */ ".f.......fl" - /* 4 */ ".f...o...fl" - /* 5 */ "pfffffq.rfl" - /* 6 */ "sssssf...fl" - /* 7 */ "mmmmtf...fl" - /* 8 */ "mmmmtf...fl" - /* 9 */ "mmmmtfffffl" - /* 10 */ "mmmmtu...vl" + /* 0 */ "..........." + /* 1 */ ".hiiijiiih." + /* 2 */ ".i.g....ki." + /* 3 */ ".i.g....li." + /* 4 */ ".i.g....ni." + /* 5 */ ".i.......i." + /* 6 */ ".i.......i." + /* 7 */ ".hiiijiiih." + /* 8 */ "..l.....l.." + /* 9 */ "mml.....lmm" + /* 10 */ "mml.....lmm" + /* 11 */ "mml.....lmm" + /* 12 */ "mmlllllllmm" // Level 4 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "..........." - /* 1 */ "jjjjjjjjjl." - /* 2 */ "kffffffffl." - /* 3 */ ".f......fl." - /* 4 */ "pffffff.fl." - /* 5 */ "ssssssf.fl." - /* 6 */ ".....tf.fl." - /* 7 */ "mmmm.tf.fl." - /* 8 */ "mmmm.tf.fl." - /* 9 */ "mmmm.tfffl." - /* 10 */ "mmmm.tu.vl." + /* 1 */ ".hooipiooh." + /* 2 */ ".o.......o." + /* 3 */ ".o......qo." + /* 4 */ ".i.......i." + /* 5 */ ".o.......o." + /* 6 */ ".o.......o." + /* 7 */ ".hooipiooh." + /* 8 */ "..........." + /* 9 */ "mm.......mm" + /* 10 */ "mm.......mm" + /* 11 */ "mm.......mm" + /* 12 */ "mm.......mm" // Level 5 /* z\x* 1 */ /* * 01234567890 */ + /* 0 */ "nnnnnnnnnnn" + /* 1 */ "riiiiiiiiir" + /* 2 */ ".i.......i." + /* 3 */ ".i.......i." + /* 4 */ ".is.....ti." + /* 5 */ ".i.......i." + /* 6 */ ".i.......i." + /* 7 */ "uiiiiiiiiiu" + /* 8 */ "kkkkkkkkkkk" + /* 9 */ "mm.......mm" + /* 10 */ "mm.......mm" + /* 11 */ "mm.......mm" + /* 12 */ "mm.......mm" + + // Level 6 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "nnnnnnnnnnn" + /* 2 */ "riiiiiiiiir" + /* 3 */ ".i.......i." + /* 4 */ ".i.......i." + /* 5 */ ".i.......i." + /* 6 */ "uiiiiiiiiiu" + /* 7 */ "kkkkkkkkkkk" + /* 8 */ "..........." + /* 9 */ "mm.......mm" + /* 10 */ "mm.......mm" + /* 11 */ "mm.......mm" + /* 12 */ "mm.......mm" + + // Level 7 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "nnnnnnnnnnn" + /* 3 */ "riiiiiiiiir" + /* 4 */ ".i.......i." + /* 5 */ "uiiiiiiiiiu" + /* 6 */ "kkkkkkkkkkk" + /* 7 */ "..........." + /* 8 */ "..........." + /* 9 */ "mm.......mm" + /* 10 */ "mm.......mm" + /* 11 */ "mm.......mm" + /* 12 */ "mm.......mm" + + // Level 8 + /* z\x* 1 */ + /* * 01234567890 */ /* 0 */ "..........." /* 1 */ "..........." - /* 2 */ "jjjjjjjjj.." - /* 3 */ "ffffffffl.." - /* 4 */ "sssssstfl.." - /* 5 */ "......tfl.." - /* 6 */ "......tfl.." - /* 7 */ "mmmm..tfl.." - /* 8 */ "mmmm..tfl.." - /* 9 */ "mmmm..tfl.." - /* 10 */ "mmmm..tfl..", + /* 2 */ "..........." + /* 3 */ "nnnnnnnnnnn" + /* 4 */ "iiiiiiiiiii" + /* 5 */ "kkkkkkkkkkk" + /* 6 */ "..........." + /* 7 */ "..........." + /* 8 */ "..........." + /* 9 */ "mm.......mm" + /* 10 */ "mm.......mm" + /* 11 */ "mm.......mm" + /* 12 */ "mm.......mm", // Connectors: - "-1: 5, 0, 1: 2\n" /* Type -1, direction Z- */, + "-1: 5, 2, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -2441,137 +2432,165 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, - }, // PlainsVillage_93 + }, // WoodenHouse9x7Butcher /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // PlainsVillage_94: - // The data has been exported from the gallery Plains, area index 43, ID 94, created by xoft + // WoodenHouse9x7DoubleDoor: + // The data has been exported from the gallery Plains, area index 38, ID 87, created by Aloe_vera { // Size: - 15, 6, 11, // SizeX = 15, SizeY = 6, SizeZ = 11 + 11, 9, 9, // SizeX = 11, SizeY = 9, SizeZ = 9 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 14, 5, 10, // MaxX, MaxY, MaxZ + 10, 8, 8, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 67: 0\n" /* stairs */ - "b: 67: 2\n" /* stairs */ - "c: 67: 1\n" /* stairs */ - "d: 4: 0\n" /* cobblestone */ - "e: 17: 0\n" /* tree */ - "f: 5: 0\n" /* wood */ - "g: 64: 7\n" /* wooddoorblock */ - "h:102: 0\n" /* glasspane */ - "i: 64:12\n" /* wooddoorblock */ - "j: 53: 2\n" /* woodstairs */ - "k: 53: 0\n" /* woodstairs */ - "l: 53: 1\n" /* woodstairs */ + "a: 3: 0\n" /* dirt */ + "b: 2: 0\n" /* grass */ + "c: 67: 0\n" /* stairs */ + "d: 67: 2\n" /* stairs */ + "e: 67: 1\n" /* stairs */ + "f: 4: 0\n" /* cobblestone */ + "g: 67: 3\n" /* stairs */ + "h: 17: 0\n" /* tree */ + "i: 5: 0\n" /* wood */ + "j: 64: 7\n" /* wooddoorblock */ + "k:102: 0\n" /* glasspane */ + "l: 64:12\n" /* wooddoorblock */ "m: 19: 0\n" /* sponge */ - "n: 50: 3\n" /* torch */ - "o: 50: 4\n" /* torch */ - "p: 50: 2\n" /* torch */ - "q: 50: 1\n" /* torch */ - "r: 53: 3\n" /* woodstairs */ - "s: 53: 5\n" /* woodstairs */ - "t: 53: 4\n" /* woodstairs */, + "n: 53: 2\n" /* woodstairs */ + "o: 53: 7\n" /* woodstairs */ + "p: 17: 4\n" /* tree */ + "q: 17: 8\n" /* tree */ + "r: 50: 3\n" /* torch */ + "s: 50: 4\n" /* torch */ + "t: 53: 6\n" /* woodstairs */ + "u: 53: 3\n" /* woodstairs */, // Block data: // Level 0 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "......abc......" - /* 1 */ ".ddddddddddddd." - /* 2 */ ".ddddddddddddd." - /* 3 */ ".ddddddddddddd." - /* 4 */ ".ddddddddddddd." - /* 5 */ ".ddddddddddddd." - /* 6 */ ".ddddd...ddddd." - /* 7 */ ".ddddd...ddddd." - /* 8 */ ".ddddd...ddddd." - /* 9 */ ".ddddd...ddddd." - /* 10 */ "..............." + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "aaaaaaaaaaa" + /* 1 */ "aaaaaaaaaaa" + /* 2 */ "aaaaaaaaaaa" + /* 3 */ "aaaaaaaaaaa" + /* 4 */ "aaaaaaaaaaa" + /* 5 */ "aaaaaaaaaaa" + /* 6 */ "aaaaaaaaaaa" + /* 7 */ "aaaaaaaaaaa" + /* 8 */ "aaaaaaaaaaa" // Level 1 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".efffffgfffffe." - /* 2 */ ".f...........f." - /* 3 */ ".f...........f." - /* 4 */ ".f...........f." - /* 5 */ ".f...efffe...f." - /* 6 */ ".f...f...f...f." - /* 7 */ ".f...f...f...f." - /* 8 */ ".f...f...f...f." - /* 9 */ ".efffe...efffe." - /* 10 */ "..............." + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "bbbbaaabbbb" + /* 1 */ "baaaaaaaaab" + /* 2 */ "baaaaaaaaab" + /* 3 */ "baaaaaaaaab" + /* 4 */ "baaaaaaaaab" + /* 5 */ "baaaaaaaaab" + /* 6 */ "baaaaaaaaab" + /* 7 */ "baaaaaaaaab" + /* 8 */ "bbbbaaabbbb" // Level 2 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".ehhhhfifhhhhe." - /* 2 */ ".h...........h." - /* 3 */ ".h...........h." - /* 4 */ ".h...........h." - /* 5 */ ".f...ehhhe...f." - /* 6 */ ".h...h...h...h." - /* 7 */ ".h...h...h...h." - /* 8 */ ".h...h...h...h." - /* 9 */ ".ehhhe...ehhhe." - /* 10 */ "..............." + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "....cde...." + /* 1 */ ".fffffffff." + /* 2 */ ".fffffffff." + /* 3 */ ".fffffffff." + /* 4 */ ".fffffffff." + /* 5 */ ".fffffffff." + /* 6 */ ".fffffffff." + /* 7 */ ".fffffffff." + /* 8 */ "....cge...." // Level 3 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "jjjjjjjjjjjjjjj" - /* 1 */ "kfffffffffffffl" - /* 2 */ "kf....n.n....fl" - /* 3 */ "kf...........fl" - /* 4 */ "kf...o...o...fl" - /* 5 */ "kf..pfffffq..fl" - /* 6 */ "kf...frrrf...fl" - /* 7 */ "kf...fl.kf...fl" - /* 8 */ "kf...fl.kf...fl" - /* 9 */ "kfffffl.kfffffl" - /* 10 */ "ks...tl.ks...tl" + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".hiihjhiih." + /* 2 */ ".i.......i." + /* 3 */ ".i.......i." + /* 4 */ ".h.......h." + /* 5 */ ".i.......i." + /* 6 */ ".i.......i." + /* 7 */ ".hiihjhiih." + /* 8 */ "..........." // Level 4 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".jjjjjjjjjjjjl." - /* 2 */ ".kfffffffffffl." - /* 3 */ ".kfffffffffffl." - /* 4 */ ".kfffffffffffl." - /* 5 */ ".kffflrrrrfffl." - /* 6 */ ".kfffl...kfffl." - /* 7 */ ".kfffl...kfffl." - /* 8 */ ".kfffl...kfffl." - /* 9 */ ".kfffl...kfffl." - /* 10 */ ".ks.tl...ks.tl." + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".hkkhlhkkh." + /* 2 */ ".k.......k." + /* 3 */ ".k.......k." + /* 4 */ ".h.......h." + /* 5 */ ".k.......k." + /* 6 */ ".k.......k." + /* 7 */ ".hkkhlhkkh." + /* 8 */ "..........." // Level 5 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ "..............." - /* 2 */ "..kjjjjjjjjjj.." - /* 3 */ "..kfffffffffl.." - /* 4 */ "..kflrrrrrkfl.." - /* 5 */ "..kfl.....kfl.." - /* 6 */ "..kfl.....kfl.." - /* 7 */ "..kfl.....kfl.." - /* 8 */ "..kfl.....kfl.." - /* 9 */ "..kfl.....kfl.." - /* 10 */ "..kfl.....kfl..", + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "nnnnnnnnnnn" + /* 1 */ "ohpppppppho" + /* 2 */ ".q..r.r..q." + /* 3 */ ".q.......q." + /* 4 */ ".q.......q." + /* 5 */ ".q.......q." + /* 6 */ ".q..s.s..q." + /* 7 */ "thpppppppht" + /* 8 */ "uuuuuuuuuuu" + + // Level 6 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "nnnnnnnnnnn" + /* 2 */ "oiiiiiiiiio" + /* 3 */ ".i.......i." + /* 4 */ ".i.......i." + /* 5 */ ".i.......i." + /* 6 */ "tiiiiiiiiit" + /* 7 */ "uuuuuuuuuuu" + /* 8 */ "..........." + + // Level 7 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "nnnnnnnnnnn" + /* 3 */ "oiiiiiiiiio" + /* 4 */ ".i.......i." + /* 5 */ "tiiiiiiiiit" + /* 6 */ "uuuuuuuuuuu" + /* 7 */ "..........." + /* 8 */ "..........." + + // Level 8 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "..........." + /* 3 */ "nnnnnnnnnnn" + /* 4 */ "iiiiiiiiiii" + /* 5 */ "uuuuuuuuuuu" + /* 6 */ "..........." + /* 7 */ "..........." + /* 8 */ "...........", // Connectors: - "-1: 7, 0, 1: 2\n" /* Type -1, direction Z- */, + "-1: 5, 2, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -2590,115 +2609,259 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, - }, // PlainsVillage_94 + }, // WoodenHouse9x7DoubleDoor /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // PlainsVillage_97: - // The data has been exported from the gallery Plains, area index 46, ID 97, created by Aloe_vera + // WoodenHouseL13x14: + // The data has been exported from the gallery Plains, area index 39, ID 90, created by STR_Warrior { // Size: - 11, 6, 7, // SizeX = 11, SizeY = 6, SizeZ = 7 + 15, 10, 16, // SizeX = 15, SizeY = 10, SizeZ = 16 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 10, 5, 6, // MaxX, MaxY, MaxZ + 14, 9, 15, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 67: 0\n" /* stairs */ - "b: 67: 2\n" /* stairs */ - "c: 67: 1\n" /* stairs */ - "d: 4: 0\n" /* cobblestone */ - "e: 17: 0\n" /* tree */ - "f: 5: 0\n" /* wood */ - "g: 64: 7\n" /* wooddoorblock */ - "h: 53: 3\n" /* woodstairs */ - "i: 85: 0\n" /* fence */ - "j: 53: 2\n" /* woodstairs */ - "k: 53: 1\n" /* woodstairs */ - "l: 53: 0\n" /* woodstairs */ + "A: 50: 4\n" /* torch */ + "B: 50: 2\n" /* torch */ + "C: 53: 7\n" /* woodstairs */ + "D: 53: 4\n" /* woodstairs */ + "E: 53: 5\n" /* woodstairs */ + "F: 53: 6\n" /* woodstairs */ + "a: 3: 0\n" /* dirt */ + "b: 2: 0\n" /* grass */ + "c: 67: 0\n" /* stairs */ + "d: 67: 2\n" /* stairs */ + "e: 67: 1\n" /* stairs */ + "f: 4: 0\n" /* cobblestone */ + "g: 43: 0\n" /* doubleslab */ + "h: 17: 0\n" /* tree */ + "i: 5: 0\n" /* wood */ + "j: 64: 7\n" /* wooddoorblock */ + "k: 96: 8\n" /* trapdoor */ + "l: 61: 2\n" /* furnace */ "m: 19: 0\n" /* sponge */ - "n:102: 0\n" /* glasspane */ - "o: 64:12\n" /* wooddoorblock */ - "p: 50: 3\n" /* torch */ - "q: 72: 0\n" /* woodplate */ - "r: 53: 7\n" /* woodstairs */ + "n: 53: 3\n" /* woodstairs */ + "o: 85: 0\n" /* fence */ + "p: 53: 2\n" /* woodstairs */ + "q: 53: 1\n" /* woodstairs */ + "r: 53: 0\n" /* woodstairs */ "s: 47: 0\n" /* bookshelf */ - "t: 50: 1\n" /* torch */ - "u: 50: 2\n" /* torch */ - "v: 53: 6\n" /* woodstairs */, + "t:102: 0\n" /* glasspane */ + "u: 64:12\n" /* wooddoorblock */ + "v: 72: 0\n" /* woodplate */ + "w: 17: 4\n" /* tree */ + "x: 17: 8\n" /* tree */ + "y: 50: 3\n" /* torch */ + "z: 50: 1\n" /* torch */, // Block data: // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "....abc...." - /* 1 */ ".ddddddddd." - /* 2 */ ".ddddddddd." - /* 3 */ ".ddddddddd." - /* 4 */ ".ddddddddd." - /* 5 */ ".ddddddddd." - /* 6 */ "..........." + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "aaaaaaaaaaaaaaa" + /* 1 */ "aaaaaaaaaaaaaaa" + /* 2 */ "aaaaaaaaaaaaaaa" + /* 3 */ "aaaaaaaaaaaaaaa" + /* 4 */ "aaaaaaaaaaaaaaa" + /* 5 */ "aaaaaaaaaaaaaaa" + /* 6 */ "aaaaaaaaaaaaaaa" + /* 7 */ "aaaaaaaaaaaaaaa" + /* 8 */ "mmmmmmmmaaaaaaa" + /* 9 */ "mmmmmmmmaaaaaaa" + /* 10 */ "mmmmmmmmaaaaaaa" + /* 11 */ "mmmmmmmmaaaaaaa" + /* 12 */ "mmmmmmmmaaaaaaa" + /* 13 */ "mmmmmmmmaaaaaaa" + /* 14 */ "mmmmmmmmaaaaaaa" + /* 15 */ "mmmmmmmmaaaaaaa" // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".efffgfffe." - /* 2 */ ".fh.....hf." - /* 3 */ ".fi.....if." - /* 4 */ ".fj.kil.jf." - /* 5 */ ".efffffffe." - /* 6 */ "..........." + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "bbbbbbaaabbbbbb" + /* 1 */ "baaaaaaaaaaaaab" + /* 2 */ "baaaaaaaaaaaaab" + /* 3 */ "baaaaaaaaaaaaab" + /* 4 */ "baaaaaaaaaaaaab" + /* 5 */ "baaaaaaaaaaaaab" + /* 6 */ "baaaaaaaaaaaaab" + /* 7 */ "baaaaaaaaaaaaab" + /* 8 */ "mmmmmmmmaaaaaab" + /* 9 */ "mmmmmmmmaaaaaab" + /* 10 */ "mmmmmmmmaaaaaab" + /* 11 */ "mmmmmmmmaaaaaab" + /* 12 */ "mmmmmmmmaaaaaab" + /* 13 */ "mmmmmmmmaaaaaab" + /* 14 */ "mmmmmmmmaaaaaab" + /* 15 */ "mmmmmmmmbbbbbbb" // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".ennfofnne." - /* 2 */ ".n..p.p..n." - /* 3 */ ".nq.....qn." - /* 4 */ ".n...q...n." - /* 5 */ ".ennnfnnne." - /* 6 */ "..........." + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "......cde......" + /* 1 */ ".fffffffffffff." + /* 2 */ ".fggggffffffff." + /* 3 */ ".fggggffffffff." + /* 4 */ ".fffffffffffff." + /* 5 */ ".fffffffffffff." + /* 6 */ ".fffffffffffff." + /* 7 */ "mfffffffffffff." + /* 8 */ "mmmmmmmmffffff." + /* 9 */ "mmmmmmmmffffff." + /* 10 */ "mmmmmmmmffffff." + /* 11 */ "mmmmmmmmffffff." + /* 12 */ "mmmmmmmmffffff." + /* 13 */ "mmmmmmmmffffff." + /* 14 */ "mmmmmmmmffffff." + /* 15 */ "mmmmmmmm......." // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "jjjjjjjjjjj" - /* 1 */ "rfffffffffr" - /* 2 */ ".fsssssssf." - /* 3 */ ".ft.....uf." - /* 4 */ ".fsssssssf." - /* 5 */ "vfffffffffv" - /* 6 */ "hhhhhhhhhhh" + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ ".hiiiihjhiiiih." + /* 2 */ ".i...k.......i." + /* 3 */ ".ilggg......ni." + /* 4 */ ".h..........oi." + /* 5 */ ".i..........pi." + /* 6 */ ".i.qor..qo...i." + /* 7 */ "mhiiiiiihp...h." + /* 8 */ "mmmmmmmmi....i." + /* 9 */ "mmmmmmmmin...i." + /* 10 */ "mmmmmmmmio..ni." + /* 11 */ "mmmmmmmmip..oi." + /* 12 */ "mmmmmmmmi...pi." + /* 13 */ "mmmmmmmmis..si." + /* 14 */ "mmmmmmmmhiiiih." + /* 15 */ "mmmmmmmm......." // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "jjjjjjjjjjj" - /* 2 */ "rfffffffffr" - /* 3 */ ".f.......f." - /* 4 */ "vfffffffffv" - /* 5 */ "hhhhhhhhhhh" - /* 6 */ "..........." + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ ".hittihuhittih." + /* 2 */ ".i...........i." + /* 3 */ ".i...........t." + /* 4 */ ".h..........vt." + /* 5 */ ".i...........t." + /* 6 */ ".i..v....v...i." + /* 7 */ "mhittttih....h." + /* 8 */ "mmmmmmmmi....i." + /* 9 */ "mmmmmmmmt....t." + /* 10 */ "mmmmmmmmtv...t." + /* 11 */ "mmmmmmmmt...vt." + /* 12 */ "mmmmmmmmt....t." + /* 13 */ "mmmmmmmmis..si." + /* 14 */ "mmmmmmmmhittih." + /* 15 */ "mmmmmmmm......." // Level 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "jjjjjjjjjjj" - /* 3 */ "fffffffffff" - /* 4 */ "hhhhhhhhhhh" - /* 5 */ "..........." - /* 6 */ "...........", + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ ".hwwwwwwwwwwwh." + /* 2 */ ".x....y.y....x." + /* 3 */ ".x...........x." + /* 4 */ ".xz..........x." + /* 5 */ ".x...........x." + /* 6 */ ".x......A....x." + /* 7 */ "mhwwwwwwhz..Bx." + /* 8 */ "mmmmmmmmx....x." + /* 9 */ "mmmmmmmmx....x." + /* 10 */ "mmmmmmmmx....x." + /* 11 */ "mmmmmmmmx....x." + /* 12 */ "mmmmmmmmx....x." + /* 13 */ "mmmmmmmmx.AA.x." + /* 14 */ "mmmmmmmmhwwwwh." + /* 15 */ "mmmmmmmm......." + + // Level 6 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "ppppppppppppppq" + /* 1 */ "riiiiiiiiiiiiiq" + /* 2 */ "riCCCCCCCCCCDiq" + /* 3 */ "riE.........Diq" + /* 4 */ "riE.........Diq" + /* 5 */ "riE.........Diq" + /* 6 */ "riEFFFFFFF..Diq" + /* 7 */ "riiiiiiiiE..Diq" + /* 8 */ "rnnnnnnriE..Diq" + /* 9 */ "mmmmmmmriE..Diq" + /* 10 */ "mmmmmmmriE..Diq" + /* 11 */ "mmmmmmmriE..Diq" + /* 12 */ "mmmmmmmriE..Diq" + /* 13 */ "mmmmmmmriEFFDiq" + /* 14 */ "mmmmmmmriiiiiiq" + /* 15 */ "mmmmmmmrnnnnnnn" + + // Level 7 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "mmmmmmmmmmmmmmm" + /* 1 */ "mrpppppppppppqm" + /* 2 */ "mriiiiiiiiiiiqm" + /* 3 */ "mriiiiiiiiiiiqm" + /* 4 */ "mriiiiiiiiiiiqm" + /* 5 */ "mriiiiiiiiiiiqm" + /* 6 */ "mriiiiiiiiiiiqm" + /* 7 */ "mrnnnnnnniiiiqm" + /* 8 */ "mmmmmmmmriiiiqm" + /* 9 */ "mmmmmmmmriiiiqm" + /* 10 */ "mmmmmmmmriiiiqm" + /* 11 */ "mmmmmmmmriiiiqm" + /* 12 */ "mmmmmmmmriiiiqm" + /* 13 */ "mmmmmmmmriiiiqm" + /* 14 */ "mmmmmmmmnnnnnqm" + /* 15 */ "mmmmmmmmmmmmmmm" + + // Level 8 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "mmmmmmmmmmmmmmm" + /* 1 */ "mmmmmmmmmmmmmmm" + /* 2 */ "mmpppppppppppmm" + /* 3 */ "mmriiiiiiiiiqmm" + /* 4 */ "mmriiiiiiiiiqmm" + /* 5 */ "mmriiiiiiiiiqmm" + /* 6 */ "mmnnnnnnnniiqmm" + /* 7 */ "mmmmmmmmmriiqmm" + /* 8 */ "mmmmmmmmmriiqmm" + /* 9 */ "mmmmmmmmmriiqmm" + /* 10 */ "mmmmmmmmmriiqmm" + /* 11 */ "mmmmmmmmmriiqmm" + /* 12 */ "mmmmmmmmmriiqmm" + /* 13 */ "mmmmmmmmmnnnqmm" + /* 14 */ "mmmmmmmmmmmmmmm" + /* 15 */ "mmmmmmmmmmmmmmm" + + // Level 9 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "mmmmmmmmmmmmmmm" + /* 1 */ "mmmmmmmmmmmmmmm" + /* 2 */ "mmmmmmmmmmmmmmm" + /* 3 */ "mmmrpppppppqmmm" + /* 4 */ "mmmriiiiiiiqmmm" + /* 5 */ "mmmrnnnnnnrqmmm" + /* 6 */ "mmmmmmmmmmrqmmm" + /* 7 */ "mmmmmmmmmmrqmmm" + /* 8 */ "mmmmmmmmmmrqmmm" + /* 9 */ "mmmmmmmmmmrqmmm" + /* 10 */ "mmmmmmmmmmrqmmm" + /* 11 */ "mmmmmmmmmmrqmmm" + /* 12 */ "mmmmmmmmmmrnmmm" + /* 13 */ "mmmmmmmmmmmmmmm" + /* 14 */ "mmmmmmmmmmmmmmm" + /* 15 */ "mmmmmmmmmmmmmmm", // Connectors: - "-1: 5, 0, 1: 2\n" /* Type -1, direction Z- */, + "-1: 7, 2, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -2717,20 +2880,20 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, - }, // PlainsVillage_97 + }, // WoodenHouseL13x14 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // PlainsVillage_98: - // The data has been exported from the gallery Plains, area index 47, ID 98, created by Aloe_vera + // WoodenHouseL14x14: + // The data has been exported from the gallery Plains, area index 0, ID 4, created by Aloe_vera { // Size: - 12, 7, 9, // SizeX = 12, SizeY = 7, SizeZ = 9 + 16, 7, 16, // SizeX = 16, SizeY = 7, SizeZ = 16 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 11, 6, 8, // MaxX, MaxY, MaxZ + 15, 6, 15, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -2738,120 +2901,170 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = "b: 67: 2\n" /* stairs */ "c: 67: 1\n" /* stairs */ "d: 4: 0\n" /* cobblestone */ - "e: 17: 0\n" /* tree */ - "f: 5: 0\n" /* wood */ - "g: 64: 7\n" /* wooddoorblock */ - "h: 64: 5\n" /* wooddoorblock */ - "i: 53: 3\n" /* woodstairs */ - "j: 85: 0\n" /* fence */ - "k: 53: 2\n" /* woodstairs */ - "l: 53: 1\n" /* woodstairs */ + "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: 0\n" /* woodstairs */ - "o:102: 0\n" /* glasspane */ - "p: 64:12\n" /* wooddoorblock */ - "q: 50: 3\n" /* torch */ - "r: 72: 0\n" /* woodplate */ - "s: 53: 7\n" /* woodstairs */ - "t: 47: 0\n" /* bookshelf */ - "u: 50: 1\n" /* torch */ + "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: 53: 6\n" /* woodstairs */, + "w: 50: 4\n" /* torch */ + "x: 50: 1\n" /* torch */, // Block data: // Level 0 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "....abbc...." - /* 1 */ ".dddddddddd." - /* 2 */ ".dddddddddd." - /* 3 */ ".dddddddddd." - /* 4 */ ".dddddddddd." - /* 5 */ ".dddddddddd." - /* 6 */ ".dddddddddd." - /* 7 */ ".dddddddddd." - /* 8 */ "............" + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "........abc....." + /* 1 */ ".dddddddddddddd." + /* 2 */ ".deeeeeeeeeeeed." + /* 3 */ ".deeeeeeeeeeeed." + /* 4 */ ".deeeeeeeeeeeed." + /* 5 */ ".deeeeeeeeeeeed." + /* 6 */ ".deeeeeeeeeeeed." + /* 7 */ ".ddddddddeeeeed." + /* 8 */ "mmmmmafcdeeeeed." + /* 9 */ "mmmmmmmmdeeeeed." + /* 10 */ "mmmmmmmmdeeeeed." + /* 11 */ "mmmmmmmmdeeeeed." + /* 12 */ "mmmmmmmmdeeeeed." + /* 13 */ "mmmmmmmmdeeeeed." + /* 14 */ "mmmmmmmmddddddd." + /* 15 */ "mmmmmmmm........" // Level 1 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ ".efffghfffe." - /* 2 */ ".f........f." - /* 3 */ ".fi......if." - /* 4 */ ".fj......jf." - /* 5 */ ".fk......kf." - /* 6 */ ".f.ljnljn.f." - /* 7 */ ".effffffffe." - /* 8 */ "............" + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "................" + /* 1 */ ".geeeeeeghgeeeg." + /* 2 */ ".e............e." + /* 3 */ ".e............e." + /* 4 */ ".e............e." + /* 5 */ ".e............e." + /* 6 */ ".e............e." + /* 7 */ ".geeeeieg.....e." + /* 8 */ "mmmmmm.me.....e." + /* 9 */ "mmmmmmmme.....e." + /* 10 */ "mmmmmmmme.....e." + /* 11 */ "mmmmmmmme.....e." + /* 12 */ "mmmmmmmme.....e." + /* 13 */ "mmmmmmmme.....e." + /* 14 */ "mmmmmmmmgeeeeeg." + /* 15 */ "mmmmmmmm........" // Level 2 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ ".eoofppfooe." - /* 2 */ ".o..q..q..o." - /* 3 */ ".o........o." - /* 4 */ ".fr......rf." - /* 5 */ ".o........o." - /* 6 */ ".o..r..r..o." - /* 7 */ ".eoofoofooe." - /* 8 */ "............" + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "................" + /* 1 */ ".gejjejjgkgjjeg." + /* 2 */ ".j............e." + /* 3 */ ".j............j." + /* 4 */ ".j............j." + /* 5 */ ".j............e." + /* 6 */ ".j............j." + /* 7 */ ".gejjekeg.....j." + /* 8 */ "mmmmmm.me.....e." + /* 9 */ "mmmmmmmmj.....j." + /* 10 */ "mmmmmmmmj.....j." + /* 11 */ "mmmmmmmme.....e." + /* 12 */ "mmmmmmmmj.....j." + /* 13 */ "mmmmmmmmj.....j." + /* 14 */ "mmmmmmmmgjjjjjg." + /* 15 */ "mmmmmmmm........" // Level 3 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "kkkkkkkkkkkk" - /* 1 */ "sffffffffffs" - /* 2 */ ".fttttttttf." - /* 3 */ ".f........f." - /* 4 */ ".fu......vf." - /* 5 */ ".f........f." - /* 6 */ ".fttttttttf." - /* 7 */ "wffffffffffw" - /* 8 */ "iiiiiiiiiiii" + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "llllllllllllllln" + /* 1 */ "ogeeeeeegegeeegn" + /* 2 */ ".e............en" + /* 3 */ ".e............en" + /* 4 */ ".e............en" + /* 5 */ ".e............en" + /* 6 */ ".e............en" + /* 7 */ "pgeeeeeeg.....en" + /* 8 */ "qqqqqqqre.....en" + /* 9 */ "mmmmmmmre.....en" + /* 10 */ "mmmmmmmre.....en" + /* 11 */ "mmmmmmmre.....en" + /* 12 */ "mmmmmmmre.....en" + /* 13 */ "mmmmmmmre.....en" + /* 14 */ "mmmmmmmrgeeeeegn" + /* 15 */ "mmmmmmmrs.....tn" // Level 4 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "kkkkkkkkkkkk" - /* 2 */ "sffffffffffs" - /* 3 */ ".fttttttttf." - /* 4 */ ".f........f." - /* 5 */ ".fttttttttf." - /* 6 */ "wffffffffffw" - /* 7 */ "iiiiiiiiiiii" - /* 8 */ "............" + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "................" + /* 1 */ "lllllllllllllll." + /* 2 */ "oeeeeeeeeeeeeen." + /* 3 */ ".e.........u.en." + /* 4 */ ".e..........ven." + /* 5 */ ".e......w....en." + /* 6 */ "peeeeeeeee...en." + /* 7 */ "qqqqqqqqrex..en." + /* 8 */ "mmmmmmmmre...en." + /* 9 */ "mmmmmmmmre...en." + /* 10 */ "mmmmmmmmre...en." + /* 11 */ "mmmmmmmmre...en." + /* 12 */ "mmmmmmmmre...en." + /* 13 */ "mmmmmmmmre...en." + /* 14 */ "mmmmmmmmreeeeen." + /* 15 */ "mmmmmmmmrs...tn." // Level 5 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "............" - /* 2 */ "kkkkkkkkkkkk" - /* 3 */ "sffffffffffs" - /* 4 */ ".f........f." - /* 5 */ "wffffffffffw" - /* 6 */ "iiiiiiiiiiii" - /* 7 */ "............" - /* 8 */ "............" + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "................" + /* 1 */ "................" + /* 2 */ "llllllllllllln.." + /* 3 */ "oeeeeeeeeeeeen.." + /* 4 */ ".ex.........en.." + /* 5 */ "peeeeeeeeee.en.." + /* 6 */ "qqqqqqqqqre.en.." + /* 7 */ ".........re.en.." + /* 8 */ "mmmmmmmm.re.en.." + /* 9 */ "mmmmmmmm.re.en.." + /* 10 */ "mmmmmmmm.re.en.." + /* 11 */ "mmmmmmmm.re.en.." + /* 12 */ "mmmmmmmm.re.en.." + /* 13 */ "mmmmmmmm.rewen.." + /* 14 */ "mmmmmmmm.reeen.." + /* 15 */ "mmmmmmmm.rs.tn.." // Level 6 - /* z\x* 11 */ - /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ "............" - /* 2 */ "............" - /* 3 */ "kkkkkkkkkkkk" - /* 4 */ "ffffffffffff" - /* 5 */ "iiiiiiiiiiii" - /* 6 */ "............" - /* 7 */ "............" - /* 8 */ "............", + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "................" + /* 1 */ "................" + /* 2 */ "................" + /* 3 */ "lllllllllllll..." + /* 4 */ "eeeeeeeeeeeen..." + /* 5 */ "qqqqqqqqqqren..." + /* 6 */ "mmmmmmmmmmren..." + /* 7 */ "mmmmmmmmmmren..." + /* 8 */ "mmmmmmmmmmren..." + /* 9 */ "mmmmmmmmmmren..." + /* 10 */ "mmmmmmmmmmren..." + /* 11 */ "mmmmmmmmmmren..." + /* 12 */ "mmmmmmmmmmren..." + /* 13 */ "mmmmmmmmmmren..." + /* 14 */ "mmmmmmmmmmren..." + /* 15 */ "mmmmmmmmmmren...", // Connectors: - "-1: 5, 0, 1: 2\n" /* Type -1, direction Z- */, + "-1: 9, 0, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -2870,166 +3083,171 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, - }, // PlainsVillage_98 + }, // WoodenHouseL14x14 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // PlainsVillage_99: - // The data has been exported from the gallery Plains, area index 48, ID 99, created by Aloe_vera + // WoodenHouseL9x9: + // The data has been exported from the gallery Plains, area index 42, ID 93, created by xoft { // Size: - 11, 7, 13, // SizeX = 11, SizeY = 7, SizeZ = 13 + 11, 8, 11, // SizeX = 11, SizeY = 8, SizeZ = 11 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 10, 6, 12, // MaxX, MaxY, MaxZ + 10, 7, 10, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 67: 0\n" /* stairs */ - "b: 67: 2\n" /* stairs */ - "c: 67: 1\n" /* stairs */ - "d: 4: 0\n" /* cobblestone */ - "e: 43: 0\n" /* doubleslab */ - "f: 2: 0\n" /* grass */ + "a: 3: 0\n" /* dirt */ + "b: 2: 0\n" /* grass */ + "c: 67: 0\n" /* stairs */ + "d: 67: 2\n" /* stairs */ + "e: 67: 1\n" /* stairs */ + "f: 4: 0\n" /* cobblestone */ "g: 17: 0\n" /* tree */ "h: 5: 0\n" /* wood */ "i: 64: 7\n" /* wooddoorblock */ - "j: 53: 3\n" /* woodstairs */ - "k: 85: 0\n" /* fence */ + "j:102: 0\n" /* glasspane */ + "k: 64:12\n" /* wooddoorblock */ "l: 53: 2\n" /* woodstairs */ "m: 19: 0\n" /* sponge */ - "n:102: 0\n" /* glasspane */ - "o: 64:12\n" /* wooddoorblock */ - "p: 72: 0\n" /* woodplate */ - "q: 53: 7\n" /* woodstairs */ - "r: 50: 1\n" /* torch */ - "s: 50: 2\n" /* torch */ - "t: 53: 6\n" /* woodstairs */, + "n: 53: 7\n" /* woodstairs */ + "o: 53: 1\n" /* woodstairs */ + "p: 50: 3\n" /* torch */ + "q: 50: 4\n" /* torch */ + "r: 53: 6\n" /* woodstairs */ + "s: 50: 1\n" /* torch */ + "t: 50: 2\n" /* torch */ + "u: 53: 3\n" /* woodstairs */ + "v: 53: 0\n" /* woodstairs */ + "w: 53: 5\n" /* woodstairs */ + "x: 53: 4\n" /* woodstairs */, // Block data: // Level 0 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "....abc...." - /* 1 */ ".ddddddddd." - /* 2 */ ".deeeedddd." - /* 3 */ ".deeeedddd." - /* 4 */ ".deeeedddd." - /* 5 */ ".deeeedddd." - /* 6 */ ".deeeedddd." - /* 7 */ ".ddddddddd." - /* 8 */ "..fffffff.." - /* 9 */ "mmfffffffmm" - /* 10 */ "mmfffffffmm" - /* 11 */ "mmfffffffmm" - /* 12 */ "mmfffffffmm" + /* 0 */ "aaaaaaaaaaa" + /* 1 */ "aaaaaaaaaaa" + /* 2 */ "aaaaaaaaaaa" + /* 3 */ "aaaaaaaaaaa" + /* 4 */ "aaaaaaaaaaa" + /* 5 */ "aaaaaaaaaaa" + /* 6 */ "aaaaaaaaaaa" + /* 7 */ "aaaaaaaaaaa" + /* 8 */ "aaaaaaaaaaa" + /* 9 */ "aaaaaaaaaaa" + /* 10 */ "aaaaaaaaaaa" // Level 1 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".ghhhihhhg." - /* 2 */ ".h.e....jh." - /* 3 */ ".h.e....kh." - /* 4 */ ".h.e....lh." - /* 5 */ ".h.......h." - /* 6 */ ".h.......h." - /* 7 */ ".ghhhihhhg." - /* 8 */ "..k.....k.." - /* 9 */ "mmk.....kmm" - /* 10 */ "mmk.....kmm" - /* 11 */ "mmk.....kmm" - /* 12 */ "mmkkkkkkkmm" + /* 0 */ "bbbbaaabbbb" + /* 1 */ "baaaaaaaaab" + /* 2 */ "baaaaaaaaab" + /* 3 */ "baaaaaaaaab" + /* 4 */ "baaaaaaaaab" + /* 5 */ "baaaaaaaaab" + /* 6 */ "bbbbbaaaaab" + /* 7 */ "bbbbbaaaaab" + /* 8 */ "bbbbbaaaaab" + /* 9 */ "bbbbbaaaaab" + /* 10 */ "bbbbbbbbbbb" // Level 2 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".gnnhohnng." - /* 2 */ ".n.......n." - /* 3 */ ".n......pn." - /* 4 */ ".h.......h." - /* 5 */ ".n.......n." - /* 6 */ ".n.......n." - /* 7 */ ".gnnhohnng." - /* 8 */ "..........." - /* 9 */ "mm.......mm" - /* 10 */ "mm.......mm" - /* 11 */ "mm.......mm" - /* 12 */ "mm.......mm" + /* 0 */ "....cde...." + /* 1 */ ".fffffffff." + /* 2 */ ".fffffffff." + /* 3 */ ".fffffffff." + /* 4 */ ".fffffffff." + /* 5 */ ".fffffffff." + /* 6 */ ".....fffff." + /* 7 */ "mmmm.fffff." + /* 8 */ "mmmm.fffff." + /* 9 */ "mmmm.fffff." + /* 10 */ "mmmm......." // Level 3 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "lllllllllll" - /* 1 */ "qhhhhhhhhhq" + /* 0 */ "..........." + /* 1 */ ".ghhhihhhg." /* 2 */ ".h.......h." /* 3 */ ".h.......h." - /* 4 */ ".hr.....sh." - /* 5 */ ".h.......h." - /* 6 */ ".h.......h." - /* 7 */ "thhhhhhhhht" - /* 8 */ "jjjjjjjjjjj" - /* 9 */ "mm.......mm" - /* 10 */ "mm.......mm" - /* 11 */ "mm.......mm" - /* 12 */ "mm.......mm" + /* 4 */ ".h.......h." + /* 5 */ ".ghhhg...h." + /* 6 */ ".....h...h." + /* 7 */ "mmmm.h...h." + /* 8 */ "mmmm.h...h." + /* 9 */ "mmmm.ghhhg." + /* 10 */ "mmmm......." // Level 4 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "..........." - /* 1 */ "lllllllllll" - /* 2 */ "qhhhhhhhhhq" - /* 3 */ ".h.......h." - /* 4 */ ".h.......h." - /* 5 */ ".h.......h." - /* 6 */ "thhhhhhhhht" - /* 7 */ "jjjjjjjjjjj" - /* 8 */ "..........." - /* 9 */ "mm.......mm" - /* 10 */ "mm.......mm" - /* 11 */ "mm.......mm" - /* 12 */ "mm.......mm" + /* 1 */ ".gjjhkhjjg." + /* 2 */ ".j.......j." + /* 3 */ ".j.......j." + /* 4 */ ".j.......j." + /* 5 */ ".gjjjg...h." + /* 6 */ ".....j...j." + /* 7 */ "mmmm.j...j." + /* 8 */ "mmmm.j...j." + /* 9 */ "mmmm.gjjjg." + /* 10 */ "mmmm......." // Level 5 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "lllllllllll" - /* 3 */ "qhhhhhhhhhq" - /* 4 */ ".h.......h." - /* 5 */ "thhhhhhhhht" - /* 6 */ "jjjjjjjjjjj" - /* 7 */ "..........." - /* 8 */ "..........." - /* 9 */ "mm.......mm" - /* 10 */ "mm.......mm" - /* 11 */ "mm.......mm" - /* 12 */ "mm.......mm" + /* 0 */ "lllllllllll" + /* 1 */ "nhhhhhhhhho" + /* 2 */ ".h..p.p..ho" + /* 3 */ ".h.......ho" + /* 4 */ ".h...q...ho" + /* 5 */ "rhhhhhs.tho" + /* 6 */ "uuuuuh...ho" + /* 7 */ "mmmmvh...ho" + /* 8 */ "mmmmvh...ho" + /* 9 */ "mmmmvhhhhho" + /* 10 */ "mmmmvw...xo" // Level 6 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "..........." + /* 1 */ "lllllllllo." + /* 2 */ "nhhhhhhhho." + /* 3 */ ".h......ho." + /* 4 */ "rhhhhhh.ho." + /* 5 */ "uuuuuuh.ho." + /* 6 */ ".....vh.ho." + /* 7 */ "mmmm.vh.ho." + /* 8 */ "mmmm.vh.ho." + /* 9 */ "mmmm.vhhho." + /* 10 */ "mmmm.vw.xo." + + // Level 7 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." /* 1 */ "..........." - /* 2 */ "..........." - /* 3 */ "lllllllllll" - /* 4 */ "hhhhhhhhhhh" - /* 5 */ "jjjjjjjjjjj" - /* 6 */ "..........." - /* 7 */ "..........." - /* 8 */ "..........." - /* 9 */ "mm.......mm" - /* 10 */ "mm.......mm" - /* 11 */ "mm.......mm" - /* 12 */ "mm.......mm", + /* 2 */ "lllllllll.." + /* 3 */ "hhhhhhhho.." + /* 4 */ "uuuuuuvho.." + /* 5 */ "......vho.." + /* 6 */ "......vho.." + /* 7 */ "mmmm..vho.." + /* 8 */ "mmmm..vho.." + /* 9 */ "mmmm..vho.." + /* 10 */ "mmmm..vho..", // Connectors: - "-1: 5, 0, 1: 2\n" /* Type -1, direction Z- */, + "-1: 5, 2, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -3048,193 +3266,169 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, - }, // PlainsVillage_99 + }, // WoodenHouseL9x9 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // RoofedWell: - // The data has been exported from the gallery Plains, area index 119, ID 271, created by STR_Warrior + // WoodenHouseU13x9: + // The data has been exported from the gallery Plains, area index 43, ID 94, created by xoft { // Size: - 7, 15, 7, // SizeX = 7, SizeY = 15, SizeZ = 7 + 15, 8, 11, // SizeX = 15, SizeY = 8, SizeZ = 11 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 6, 14, 6, // MaxX, MaxY, MaxZ + 14, 7, 10, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 1: 0\n" /* stone */ - "b: 4: 0\n" /* cobblestone */ - "c: 8: 0\n" /* water */ - "d: 3: 0\n" /* dirt */ - "e: 2: 0\n" /* grass */ - "f: 13: 0\n" /* gravel */ - "g:118: 3\n" /* cauldronblock */ - "h: 85: 0\n" /* fence */ - "i: 53: 2\n" /* woodstairs */ - "j: 53: 7\n" /* woodstairs */ - "k: 5: 0\n" /* wood */ - "l: 53: 4\n" /* woodstairs */ + "a: 3: 0\n" /* dirt */ + "b: 2: 0\n" /* grass */ + "c: 67: 0\n" /* stairs */ + "d: 67: 2\n" /* stairs */ + "e: 67: 1\n" /* stairs */ + "f: 4: 0\n" /* cobblestone */ + "g: 17: 0\n" /* tree */ + "h: 5: 0\n" /* wood */ + "i: 64: 7\n" /* wooddoorblock */ + "j:102: 0\n" /* glasspane */ + "k: 64:12\n" /* wooddoorblock */ + "l: 53: 2\n" /* woodstairs */ "m: 19: 0\n" /* sponge */ - "n: 53: 5\n" /* woodstairs */ - "o: 53: 6\n" /* woodstairs */ - "p: 53: 3\n" /* woodstairs */, + "n: 53: 0\n" /* woodstairs */ + "o: 53: 1\n" /* woodstairs */ + "p: 50: 3\n" /* torch */ + "q: 50: 4\n" /* torch */ + "r: 50: 2\n" /* torch */ + "s: 50: 1\n" /* torch */ + "t: 53: 3\n" /* woodstairs */ + "u: 53: 5\n" /* woodstairs */ + "v: 53: 4\n" /* woodstairs */, // Block data: // Level 0 - /* z\x* 0123456 */ - /* 0 */ "aaaaaaa" - /* 1 */ "aaaaaaa" - /* 2 */ "aaaaaaa" - /* 3 */ "aaaaaaa" - /* 4 */ "aaaaaaa" - /* 5 */ "aaaaaaa" - /* 6 */ "aaaaaaa" - - // Level 1 - /* z\x* 0123456 */ - /* 0 */ "aaaaaaa" - /* 1 */ "abbbbba" - /* 2 */ "abcccba" - /* 3 */ "abcccba" - /* 4 */ "abcccba" - /* 5 */ "abbbbba" - /* 6 */ "aaaaaaa" - - // Level 2 - /* z\x* 0123456 */ - /* 0 */ "aaaaaaa" - /* 1 */ "abbbbba" - /* 2 */ "abcccba" - /* 3 */ "abcccba" - /* 4 */ "abcccba" - /* 5 */ "abbbbba" - /* 6 */ "aaaaaaa" - - // Level 3 - /* z\x* 0123456 */ - /* 0 */ "aaaaaaa" - /* 1 */ "abbbbba" - /* 2 */ "abcccba" - /* 3 */ "abcccba" - /* 4 */ "abcccba" - /* 5 */ "abbbbba" - /* 6 */ "aaaaaaa" - - // Level 4 - /* z\x* 0123456 */ - /* 0 */ "aaaaaaa" - /* 1 */ "abbbbba" - /* 2 */ "abcccba" - /* 3 */ "abcccba" - /* 4 */ "abcccba" - /* 5 */ "abbbbba" - /* 6 */ "aaaaaaa" - - // Level 5 - /* z\x* 0123456 */ - /* 0 */ "ddddddd" - /* 1 */ "dbbbbbd" - /* 2 */ "dbcccbd" - /* 3 */ "dbcccbd" - /* 4 */ "dbcccbd" - /* 5 */ "dbbbbbd" - /* 6 */ "ddddddd" - - // Level 6 - /* z\x* 0123456 */ - /* 0 */ "ddddddd" - /* 1 */ "dbbbbbd" - /* 2 */ "dbcccbd" - /* 3 */ "dbcccbd" - /* 4 */ "dbcccbd" - /* 5 */ "dbbbbbd" - /* 6 */ "ddddddd" - - // Level 7 - /* z\x* 0123456 */ - /* 0 */ "ddddddd" - /* 1 */ "dbbbbbd" - /* 2 */ "dbcccbd" - /* 3 */ "dbcccbd" - /* 4 */ "dbcccbd" - /* 5 */ "dbbbbbd" - /* 6 */ "ddddddd" - - // Level 8 - /* z\x* 0123456 */ - /* 0 */ "eefffee" - /* 1 */ "ebbbbbe" - /* 2 */ "fbcccbf" - /* 3 */ "fbcccbf" - /* 4 */ "fbcccbf" - /* 5 */ "ebbbbbe" - /* 6 */ "eefffee" + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "aaaaaaaaaaaaaaa" + /* 1 */ "aaaaaaaaaaaaaaa" + /* 2 */ "aaaaaaaaaaaaaaa" + /* 3 */ "aaaaaaaaaaaaaaa" + /* 4 */ "aaaaaaaaaaaaaaa" + /* 5 */ "aaaaaaaaaaaaaaa" + /* 6 */ "aaaaaaaaaaaaaaa" + /* 7 */ "aaaaaaaaaaaaaaa" + /* 8 */ "aaaaaaaaaaaaaaa" + /* 9 */ "aaaaaaaaaaaaaaa" + /* 10 */ "aaaaaaaaaaaaaaa" - // Level 9 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".bbbbb." - /* 2 */ ".b...b." - /* 3 */ ".b.g.b." - /* 4 */ ".b...b." - /* 5 */ ".bbbbb." - /* 6 */ "......." + // Level 1 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "bbbbbbaaabbbbbb" + /* 1 */ "baaaaaaaaaaaaab" + /* 2 */ "baaaaaaaaaaaaab" + /* 3 */ "baaaaaaaaaaaaab" + /* 4 */ "baaaaaaaaaaaaab" + /* 5 */ "baaaaaaaaaaaaab" + /* 6 */ "baaaaabbbaaaaab" + /* 7 */ "baaaaabbbaaaaab" + /* 8 */ "baaaaabbbaaaaab" + /* 9 */ "baaaaabbbaaaaab" + /* 10 */ "bbbbbbbbbbbbbbb" - // Level 10 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".h...h." - /* 2 */ "......." - /* 3 */ "...h..." - /* 4 */ "......." - /* 5 */ ".h...h." - /* 6 */ "......." + // Level 2 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "......cde......" + /* 1 */ ".fffffffffffff." + /* 2 */ ".fffffffffffff." + /* 3 */ ".fffffffffffff." + /* 4 */ ".fffffffffffff." + /* 5 */ ".fffffffffffff." + /* 6 */ ".fffff...fffff." + /* 7 */ ".fffff...fffff." + /* 8 */ ".fffff...fffff." + /* 9 */ ".fffff...fffff." + /* 10 */ "..............." - // Level 11 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".h...h." - /* 2 */ "......." - /* 3 */ "...h..." - /* 4 */ "......." - /* 5 */ ".h...h." - /* 6 */ "......." + // Level 3 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ ".ghhhhhihhhhhg." + /* 2 */ ".h...........h." + /* 3 */ ".h...........h." + /* 4 */ ".h...........h." + /* 5 */ ".h...ghhhg...h." + /* 6 */ ".h...h...h...h." + /* 7 */ ".h...h...h...h." + /* 8 */ ".h...h...h...h." + /* 9 */ ".ghhhg...ghhhg." + /* 10 */ "..............." - // Level 12 - /* z\x* 0123456 */ - /* 0 */ "iiiiiii" - /* 1 */ "jkjjjkj" - /* 2 */ ".l...n." - /* 3 */ ".l.h.n." - /* 4 */ ".l...n." - /* 5 */ "okoooko" - /* 6 */ "ppppppp" + // Level 4 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ ".gjjjjhkhjjjjg." + /* 2 */ ".j...........j." + /* 3 */ ".j...........j." + /* 4 */ ".j...........j." + /* 5 */ ".h...gjjjg...h." + /* 6 */ ".j...j...j...j." + /* 7 */ ".j...j...j...j." + /* 8 */ ".j...j...j...j." + /* 9 */ ".gjjjg...gjjjg." + /* 10 */ "..............." - // Level 13 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "iiiiiii" - /* 2 */ "jkjjjkj" - /* 3 */ ".k.h.k." - /* 4 */ "okoooko" - /* 5 */ "ppppppp" - /* 6 */ "......." + // Level 5 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "lllllllllllllll" + /* 1 */ "nhhhhhhhhhhhhho" + /* 2 */ "nh....p.p....ho" + /* 3 */ "nh...........ho" + /* 4 */ "nh...q...q...ho" + /* 5 */ "nh..rhhhhhs..ho" + /* 6 */ "nh...httth...ho" + /* 7 */ "nh...ho.nh...ho" + /* 8 */ "nh...ho.nh...ho" + /* 9 */ "nhhhhho.nhhhhho" + /* 10 */ "nu...vo.nu...vo" - // Level 14 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ "......." - /* 2 */ "iiiiiii" - /* 3 */ "kkkkkkk" - /* 4 */ "ppppppp" - /* 5 */ "......." - /* 6 */ ".......", + // Level 6 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ ".llllllllllllo." + /* 2 */ ".nhhhhhhhhhhho." + /* 3 */ ".nhhhhhhhhhhho." + /* 4 */ ".nhhhhhhhhhhho." + /* 5 */ ".nhhhotttthhho." + /* 6 */ ".nhhho...nhhho." + /* 7 */ ".nhhho...nhhho." + /* 8 */ ".nhhho...nhhho." + /* 9 */ ".nhhho...nhhho." + /* 10 */ ".nu.vo...nu.vo." + + // Level 7 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ "..............." + /* 2 */ "..nllllllllll.." + /* 3 */ "..nhhhhhhhhho.." + /* 4 */ "..nhotttttnho.." + /* 5 */ "..nho.....nho.." + /* 6 */ "..nho.....nho.." + /* 7 */ "..nho.....nho.." + /* 8 */ "..nho.....nho.." + /* 9 */ "..nho.....nho.." + /* 10 */ "..nho.....nho..", // Connectors: - "", + "-1: 7, 2, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -3253,247 +3447,281 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, - }, // RoofedWell + }, // WoodenHouseU13x9 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // Windmill: + // WoodenMill5x5: // The data has been exported from the gallery Plains, area index 60, ID 111, created by Aloe_vera { // Size: - 9, 16, 13, // SizeX = 9, SizeY = 16, SizeZ = 13 + 9, 18, 13, // SizeX = 9, SizeY = 18, SizeZ = 13 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 8, 15, 12, // MaxX, MaxY, MaxZ + 8, 17, 12, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 4: 0\n" /* cobblestone */ - "b: 67: 2\n" /* stairs */ - "c: 67: 1\n" /* stairs */ - "d: 67: 3\n" /* stairs */ - "e: 17: 0\n" /* tree */ - "f: 5: 0\n" /* wood */ - "g: 54: 4\n" /* chest */ - "h:154: 4\n" /* hopper */ - "i: 64: 4\n" /* wooddoorblock */ - "j:102: 0\n" /* glasspane */ - "k: 85: 0\n" /* fence */ - "l: 64:12\n" /* wooddoorblock */ + "a: 3: 0\n" /* dirt */ + "b: 2: 0\n" /* grass */ + "c: 4: 0\n" /* cobblestone */ + "d: 67: 2\n" /* stairs */ + "e: 67: 1\n" /* stairs */ + "f: 67: 3\n" /* stairs */ + "g: 17: 0\n" /* tree */ + "h: 5: 0\n" /* wood */ + "i: 54: 4\n" /* chest */ + "j:154: 4\n" /* hopper */ + "k: 64: 4\n" /* wooddoorblock */ + "l:102: 0\n" /* glasspane */ "m: 19: 0\n" /* sponge */ - "n: 50: 2\n" /* torch */ - "o: 35: 0\n" /* wool */ - "p: 17: 4\n" /* tree */ - "q: 17: 8\n" /* tree */ - "r: 53: 2\n" /* woodstairs */ - "s: 53: 7\n" /* woodstairs */ - "t: 53: 6\n" /* woodstairs */ - "u: 53: 3\n" /* woodstairs */, + "n: 85: 0\n" /* fence */ + "o: 64:12\n" /* wooddoorblock */ + "p: 50: 2\n" /* torch */ + "q: 35: 0\n" /* wool */ + "r: 17: 4\n" /* tree */ + "s: 17: 8\n" /* tree */ + "t: 53: 2\n" /* woodstairs */ + "u: 53: 7\n" /* woodstairs */ + "v: 53: 6\n" /* woodstairs */ + "w: 53: 3\n" /* woodstairs */, // Block data: // Level 0 /* z\x* 012345678 */ + /* 0 */ "aaaaaaaaa" + /* 1 */ "aaaaaaaaa" + /* 2 */ "aaaaaaaaa" + /* 3 */ "aaaaaaaaa" + /* 4 */ "aaaaaaaaa" + /* 5 */ "aaaaaaaaa" + /* 6 */ "aaaaaaaaa" + /* 7 */ "aaaaaaaaa" + /* 8 */ "aaaaaaaaa" + /* 9 */ "aaaaaaaaa" + /* 10 */ "aaaaaaaaa" + /* 11 */ "aaaaaaaaa" + /* 12 */ "aaaaaaaaa" + + // Level 1 + /* z\x* 012345678 */ + /* 0 */ "bbbbbbbbb" + /* 1 */ "bbbbbbbbb" + /* 2 */ "bbbbbbbbb" + /* 3 */ "bbbbbbbbb" + /* 4 */ "baaaaabbb" + /* 5 */ "baaaaaabb" + /* 6 */ "baaaaaabb" + /* 7 */ "baaaaaabb" + /* 8 */ "baaaaabbb" + /* 9 */ "bbbbbbbbb" + /* 10 */ "bbbbbbbbb" + /* 11 */ "bbbbbbbbb" + /* 12 */ "bbbbbbbbb" + + // Level 2 + /* z\x* 012345678 */ /* 0 */ "mmmmmmm.." /* 1 */ "mmmmmmm.." /* 2 */ "mmmmmmm.." /* 3 */ "........." - /* 4 */ ".aaaaa..." - /* 5 */ ".aaaaab.." - /* 6 */ ".aaaaac.." - /* 7 */ ".aaaaad.." - /* 8 */ ".aaaaa..." + /* 4 */ ".ccccc..." + /* 5 */ ".cccccd.." + /* 6 */ ".ccccce.." + /* 7 */ ".cccccf.." + /* 8 */ ".ccccc..." /* 9 */ "........." /* 10 */ "mmmmmmm.." /* 11 */ "mmmmmmm.." /* 12 */ "mmmmmmm.." - // Level 1 + // Level 3 /* z\x* 012345678 */ /* 0 */ "mmmmmmm.." /* 1 */ "mmmmmmm.." /* 2 */ "mmmmmmm.." /* 3 */ "........." - /* 4 */ ".efffe..." - /* 5 */ ".f...f..." - /* 6 */ ".fgh.i..." - /* 7 */ ".f...f..." - /* 8 */ ".efffe..." + /* 4 */ ".ghhhg..." + /* 5 */ ".h...h..." + /* 6 */ ".hij.k..." + /* 7 */ ".h...h..." + /* 8 */ ".ghhhg..." /* 9 */ "........." /* 10 */ "mmmmmmm.." /* 11 */ "mmmmmmm.." /* 12 */ "mmmmmmm.." - // Level 2 + // Level 4 /* z\x* 012345678 */ /* 0 */ "mmmmmmm.." /* 1 */ "mmmmmmm.." /* 2 */ "mmmmmmm.." /* 3 */ "........." - /* 4 */ ".ejjje..." - /* 5 */ ".j...f..." - /* 6 */ ".j.k.l..." - /* 7 */ ".j...f..." - /* 8 */ ".ejjje..." + /* 4 */ ".glllg..." + /* 5 */ ".l...h..." + /* 6 */ ".l.n.o..." + /* 7 */ ".l...h..." + /* 8 */ ".glllg..." /* 9 */ "........." /* 10 */ "mmmmmmm.." /* 11 */ "mmmmmmm.." /* 12 */ "mmmmmmm.." - // Level 3 + // Level 5 /* z\x* 012345678 */ /* 0 */ "mmmmmmm.." /* 1 */ "mmmmmmm.." /* 2 */ "mmmmmmm.." /* 3 */ "........." - /* 4 */ ".efffe..." - /* 5 */ ".f..nf..." - /* 6 */ ".f.k.f..." - /* 7 */ ".f..nf..k" - /* 8 */ ".efffe..o" + /* 4 */ ".ghhhg..." + /* 5 */ ".h..ph..." + /* 6 */ ".h.n.h..." + /* 7 */ ".h..ph..n" + /* 8 */ ".ghhhg..q" /* 9 */ "........." /* 10 */ "mmmmmmm.." /* 11 */ "mmmmmmm.." /* 12 */ "mmmmmmm.." - // Level 4 + // Level 6 /* z\x* 012345678 */ /* 0 */ "mmmmmmm.." /* 1 */ "mmmmmmm.." /* 2 */ "mmmmmmm.." /* 3 */ "........." - /* 4 */ ".epppe..." - /* 5 */ ".q...q..." - /* 6 */ ".q.k.q..." - /* 7 */ ".q...q..k" - /* 8 */ ".epppe..o" + /* 4 */ ".grrrg..." + /* 5 */ ".s...s..." + /* 6 */ ".s.n.s..." + /* 7 */ ".s...s..n" + /* 8 */ ".grrrg..q" /* 9 */ "........." /* 10 */ "mmmmmmm.." /* 11 */ "mmmmmmm.." /* 12 */ "mmmmmmm.." - // Level 5 + // Level 7 /* z\x* 012345678 */ /* 0 */ "mmmmmmm.." /* 1 */ "mmmmmmm.." /* 2 */ "mmmmmmm.." /* 3 */ "........." - /* 4 */ ".efffe..." - /* 5 */ ".f...f..." - /* 6 */ ".f.k.f..k" - /* 7 */ ".f...f..o" - /* 8 */ ".efffe..o" + /* 4 */ ".ghhhg..." + /* 5 */ ".h...h..." + /* 6 */ ".h.n.h..n" + /* 7 */ ".h...h..q" + /* 8 */ ".ghhhg..q" /* 9 */ "........." /* 10 */ "mmmmmmm.." /* 11 */ "mmmmmmm.." /* 12 */ "mmmmmmm.." - // Level 6 + // Level 8 /* z\x* 012345678 */ /* 0 */ "mmmmmmm.." /* 1 */ "mmmmmmm.." /* 2 */ "mmmmmmm.." /* 3 */ "........." - /* 4 */ ".ejjje..." - /* 5 */ ".j...j..." - /* 6 */ ".j.k.j..k" - /* 7 */ ".j...j..o" - /* 8 */ ".ejjje..." + /* 4 */ ".glllg..." + /* 5 */ ".l...l..." + /* 6 */ ".l.n.l..n" + /* 7 */ ".l...l..q" + /* 8 */ ".glllg..." /* 9 */ "........." /* 10 */ "mmmmmmm.." /* 11 */ "mmmmmmm.." /* 12 */ "mmmmmmm.." - // Level 7 + // Level 9 /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.o" - /* 1 */ "mmmmmmm.o" - /* 2 */ "mmmmmmm.o" + /* 0 */ "mmmmmmm.q" + /* 1 */ "mmmmmmm.q" + /* 2 */ "mmmmmmm.q" /* 3 */ "........." - /* 4 */ ".efffe..." - /* 5 */ ".f...f..k" - /* 6 */ ".f.k.f..o" - /* 7 */ ".f...f..o" - /* 8 */ ".efffe..." + /* 4 */ ".ghhhg..." + /* 5 */ ".h...h..n" + /* 6 */ ".h.n.h..q" + /* 7 */ ".h...h..q" + /* 8 */ ".ghhhg..." /* 9 */ "........." /* 10 */ "mmmmmmm.." /* 11 */ "mmmmmmm.." /* 12 */ "mmmmmmm.." - // Level 8 + // Level 10 /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.k" - /* 1 */ "mmmmmmm.k" - /* 2 */ "mmmmmmm.o" - /* 3 */ "........o" - /* 4 */ ".epppe..o" - /* 5 */ ".q...q..k" - /* 6 */ ".q.k.q..o" - /* 7 */ ".q...q..k" - /* 8 */ ".epppe..k" + /* 0 */ "mmmmmmm.n" + /* 1 */ "mmmmmmm.n" + /* 2 */ "mmmmmmm.q" + /* 3 */ "........q" + /* 4 */ ".grrrg..q" + /* 5 */ ".s...s..n" + /* 6 */ ".s.n.s..q" + /* 7 */ ".s...s..n" + /* 8 */ ".grrrg..n" /* 9 */ "........." /* 10 */ "mmmmmmm.." /* 11 */ "mmmmmmm.." /* 12 */ "mmmmmmm.." - // Level 9 + // Level 11 /* z\x* 012345678 */ /* 0 */ "mmmmmmm.." /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.k" - /* 3 */ "rrrrrrr.k" - /* 4 */ "sfffffs.o" - /* 5 */ ".f...f..o" - /* 6 */ ".f.kppppp" - /* 7 */ ".f...f..o" - /* 8 */ "tffffft.o" - /* 9 */ "uuuuuuu.k" - /* 10 */ "mmmmmmm.k" + /* 2 */ "mmmmmmm.n" + /* 3 */ "ttttttt.n" + /* 4 */ "uhhhhhu.q" + /* 5 */ ".h...h..q" + /* 6 */ ".h.nrrrrr" + /* 7 */ ".h...h..q" + /* 8 */ "vhhhhhv.q" + /* 9 */ "wwwwwww.n" + /* 10 */ "mmmmmmm.n" /* 11 */ "mmmmmmm.." /* 12 */ "mmmmmmm.." - // Level 10 + // Level 12 /* z\x* 012345678 */ /* 0 */ "mmmmmmm.." /* 1 */ "mmmmmmm.." /* 2 */ "mmmmmmm.." /* 3 */ "mmmmmmm.." - /* 4 */ "rrrrrrr.k" - /* 5 */ "sfffffs.k" - /* 6 */ ".f...f..o" - /* 7 */ "tffffft.k" - /* 8 */ "uuuuuuu.o" - /* 9 */ "mmmmmmm.o" - /* 10 */ "mmmmmmm.o" - /* 11 */ "mmmmmmm.k" - /* 12 */ "mmmmmmm.k" + /* 4 */ "ttttttt.n" + /* 5 */ "uhhhhhu.n" + /* 6 */ ".h...h..q" + /* 7 */ "vhhhhhv.n" + /* 8 */ "wwwwwww.q" + /* 9 */ "mmmmmmm.q" + /* 10 */ "mmmmmmm.q" + /* 11 */ "mmmmmmm.n" + /* 12 */ "mmmmmmm.n" - // Level 11 + // Level 13 /* z\x* 012345678 */ /* 0 */ "mmmmmmm.." /* 1 */ "mmmmmmm.." /* 2 */ "mmmmmmm.." /* 3 */ "mmmmmmm.." /* 4 */ "mmmmmmm.." - /* 5 */ "rrrrrrr.o" - /* 6 */ "fffffff.o" - /* 7 */ "uuuuuuu.k" + /* 5 */ "ttttttt.q" + /* 6 */ "hhhhhhh.q" + /* 7 */ "wwwwwww.n" /* 8 */ "mmmmmmm.." /* 9 */ "mmmmmmm.." - /* 10 */ "mmmmmmm.o" - /* 11 */ "mmmmmmm.o" - /* 12 */ "mmmmmmm.o" + /* 10 */ "mmmmmmm.q" + /* 11 */ "mmmmmmm.q" + /* 12 */ "mmmmmmm.q" - // Level 12 + // Level 14 /* z\x* 012345678 */ /* 0 */ "........." /* 1 */ "........." /* 2 */ "........." /* 3 */ "........." /* 4 */ "........." - /* 5 */ "........o" - /* 6 */ "........k" + /* 5 */ "........q" + /* 6 */ "........n" /* 7 */ "........." /* 8 */ "........." /* 9 */ "........." @@ -3501,15 +3729,31 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 11 */ "........." /* 12 */ "........." - // Level 13 + // Level 15 + /* z\x* 012345678 */ + /* 0 */ "........." + /* 1 */ "........." + /* 2 */ "........." + /* 3 */ "........." + /* 4 */ "........q" + /* 5 */ "........q" + /* 6 */ "........n" + /* 7 */ "........." + /* 8 */ "........." + /* 9 */ "........." + /* 10 */ "........." + /* 11 */ "........." + /* 12 */ "........." + + // Level 16 /* z\x* 012345678 */ /* 0 */ "........." /* 1 */ "........." /* 2 */ "........." /* 3 */ "........." - /* 4 */ "........o" - /* 5 */ "........o" - /* 6 */ "........k" + /* 4 */ "........q" + /* 5 */ "........n" + /* 6 */ "........." /* 7 */ "........." /* 8 */ "........." /* 9 */ "........." @@ -3517,40 +3761,215 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 11 */ "........." /* 12 */ "........." - // Level 14 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ "........." - /* 2 */ "........." - /* 3 */ "........." - /* 4 */ "........o" - /* 5 */ "........k" - /* 6 */ "........." - /* 7 */ "........." - /* 8 */ "........." - /* 9 */ "........." - /* 10 */ "........." - /* 11 */ "........." - /* 12 */ "........." + // Level 17 + /* z\x* 012345678 */ + /* 0 */ "........." + /* 1 */ "........." + /* 2 */ "........." + /* 3 */ "........." + /* 4 */ "........q" + /* 5 */ "........n" + /* 6 */ "........." + /* 7 */ "........." + /* 8 */ "........." + /* 9 */ "........." + /* 10 */ "........." + /* 11 */ "........." + /* 12 */ ".........", + + // Connectors: + "-1: 8, 2, 6: 5\n" /* Type -1, direction X+ */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // WoodenMill5x5 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // WoodenStables: + // The data has been exported from the gallery Plains, area index 55, ID 106, created by Aloe_vera + { + // Size: + 15, 10, 9, // SizeX = 15, SizeY = 10, SizeZ = 9 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 14, 9, 8, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 3: 0\n" /* dirt */ + "b: 2: 0\n" /* grass */ + "c: 67: 0\n" /* stairs */ + "d: 67: 2\n" /* stairs */ + "e: 67: 1\n" /* stairs */ + "f: 4: 0\n" /* cobblestone */ + "g: 17: 0\n" /* tree */ + "h:107: 0\n" /* fencegate */ + "i:107: 4\n" /* fencegate */ + "j: 5: 0\n" /* wood */ + "k:107: 6\n" /* fencegate */ + "l: 85: 0\n" /* fence */ + "m: 19: 0\n" /* sponge */ + "n:170: 0\n" /* haybale */ + "o:170: 4\n" /* haybale */ + "p:170: 8\n" /* haybale */ + "q: 50: 1\n" /* torch */ + "r: 50: 2\n" /* torch */ + "s: 53: 2\n" /* woodstairs */ + "t: 53: 7\n" /* woodstairs */ + "u: 53: 6\n" /* woodstairs */ + "v: 53: 3\n" /* woodstairs */, + + // Block data: + // Level 0 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "aaaaaaaaaaaaaaa" + /* 1 */ "aaaaaaaaaaaaaaa" + /* 2 */ "aaaaaaaaaaaaaaa" + /* 3 */ "aaaaaaaaaaaaaaa" + /* 4 */ "aaaaaaaaaaaaaaa" + /* 5 */ "aaaaaaaaaaaaaaa" + /* 6 */ "aaaaaaaaaaaaaaa" + /* 7 */ "aaaaaaaaaaaaaaa" + /* 8 */ "aaaaaaaaaaaaaaa" + + // Level 1 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "baaaaaaaaaaaaab" + /* 1 */ "baaaaaaaaaaaaab" + /* 2 */ "baaaaaaaaaaaaab" + /* 3 */ "baaaaaaaaaaaaab" + /* 4 */ "baaaaaaaaaaaaab" + /* 5 */ "baaaaaaaaaaaaab" + /* 6 */ "baaaaaaaaaaaaab" + /* 7 */ "baaaaaaaaaaaaab" + /* 8 */ "bbbbbbbbbbbbbbb" + + // Level 2 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ ".cddddddddddde." + /* 1 */ ".fffffffffffff." + /* 2 */ ".faaaaaaaaaaaf." + /* 3 */ ".faaaaaaaaaaaf." + /* 4 */ ".faaaaaaaaaaaf." + /* 5 */ ".faaaaaaaaaaaf." + /* 6 */ ".faaaaaaaaaaaf." + /* 7 */ ".fffffffffffff." + /* 8 */ "..............." + + // Level 3 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ ".ghihjhihjhkhg." + /* 2 */ ".l...l...l...l." + /* 3 */ ".l...l...l...l." + /* 4 */ ".l...l...l...l." + /* 5 */ ".l...l...l...l." + /* 6 */ ".ln..l..olp..l." + /* 7 */ ".gllljllljlllg." + /* 8 */ "..............." + + // Level 4 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ ".g...j...j...g." + /* 2 */ "..............." + /* 3 */ "..............." + /* 4 */ "..............." + /* 5 */ "..............." + /* 6 */ "..............." + /* 7 */ ".g...j...j...g." + /* 8 */ "..............." + + // Level 5 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ ".gq.rjq.rjq.rg." + /* 2 */ "..............." + /* 3 */ "..............." + /* 4 */ "..............." + /* 5 */ "..............." + /* 6 */ "..............." + /* 7 */ ".g...j...j...g." + /* 8 */ "..............." + + // Level 6 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "sssssssssssssss" + /* 1 */ "tjjjjjjjjjjjjjt" + /* 2 */ ".j...........j." + /* 3 */ ".j...........j." + /* 4 */ ".j...........j." + /* 5 */ ".j...........j." + /* 6 */ ".j...........j." + /* 7 */ "ujjjjjjjjjjjjju" + /* 8 */ "vvvvvvvvvvvvvvv" - // Level 15 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ "........." - /* 2 */ "........." - /* 3 */ "........." - /* 4 */ "........o" - /* 5 */ "........k" - /* 6 */ "........." - /* 7 */ "........." - /* 8 */ "........." - /* 9 */ "........." - /* 10 */ "........." - /* 11 */ "........." - /* 12 */ ".........", + // Level 7 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ "sssssssssssssss" + /* 2 */ "tjjjjjjjjjjjjjt" + /* 3 */ ".j...........j." + /* 4 */ ".j...........j." + /* 5 */ ".j...........j." + /* 6 */ "ujjjjjjjjjjjjju" + /* 7 */ "vvvvvvvvvvvvvvv" + /* 8 */ "..............." + + // Level 8 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ "..............." + /* 2 */ "sssssssssssssss" + /* 3 */ "tjjjjjjjjjjjjjt" + /* 4 */ ".j...........j." + /* 5 */ "ujjjjjjjjjjjjju" + /* 6 */ "vvvvvvvvvvvvvvv" + /* 7 */ "..............." + /* 8 */ "..............." + + // Level 9 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ "..............." + /* 2 */ "..............." + /* 3 */ "sssssssssssssss" + /* 4 */ "jjjjjjjjjjjjjjj" + /* 5 */ "vvvvvvvvvvvvvvv" + /* 6 */ "..............." + /* 7 */ "..............." + /* 8 */ "...............", // Connectors: - "-1: 5, 0, 6: 5\n" /* Type -1, direction X+ */, + "-1: 7, 2, -1: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -3569,7 +3988,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, - }, // Windmill + }, // WoodenStables }; // g_PlainsVillagePrefabs @@ -3580,7 +3999,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = const cPrefab::sDef g_PlainsVillageStartingPrefabs[] = { /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // Well: + // CobbleWell4x4: // The data has been exported from the gallery Plains, area index 1, ID 5, created by Aloe_vera { // Size: @@ -3713,7 +4132,215 @@ const cPrefab::sDef g_PlainsVillageStartingPrefabs[] = // AddWeightIfSame: 0, - }, // Well + }, // CobbleWell4x4 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // RoofedWell: + // The data has been exported from the gallery Plains, area index 119, ID 271, created by STR_Warrior + { + // Size: + 7, 15, 7, // SizeX = 7, SizeY = 15, SizeZ = 7 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 6, 14, 6, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 1: 0\n" /* stone */ + "b: 4: 0\n" /* cobblestone */ + "c: 8: 0\n" /* water */ + "d: 3: 0\n" /* dirt */ + "e: 2: 0\n" /* grass */ + "f: 13: 0\n" /* gravel */ + "g:118: 3\n" /* cauldronblock */ + "h: 85: 0\n" /* fence */ + "i: 53: 2\n" /* woodstairs */ + "j: 53: 7\n" /* woodstairs */ + "k: 5: 0\n" /* wood */ + "l: 53: 4\n" /* woodstairs */ + "m: 19: 0\n" /* sponge */ + "n: 53: 5\n" /* woodstairs */ + "o: 53: 6\n" /* woodstairs */ + "p: 53: 3\n" /* woodstairs */, + + // Block data: + // Level 0 + /* z\x* 0123456 */ + /* 0 */ "aaaaaaa" + /* 1 */ "aaaaaaa" + /* 2 */ "aaaaaaa" + /* 3 */ "aaaaaaa" + /* 4 */ "aaaaaaa" + /* 5 */ "aaaaaaa" + /* 6 */ "aaaaaaa" + + // Level 1 + /* z\x* 0123456 */ + /* 0 */ "aaaaaaa" + /* 1 */ "abbbbba" + /* 2 */ "abcccba" + /* 3 */ "abcccba" + /* 4 */ "abcccba" + /* 5 */ "abbbbba" + /* 6 */ "aaaaaaa" + + // Level 2 + /* z\x* 0123456 */ + /* 0 */ "aaaaaaa" + /* 1 */ "abbbbba" + /* 2 */ "abcccba" + /* 3 */ "abcccba" + /* 4 */ "abcccba" + /* 5 */ "abbbbba" + /* 6 */ "aaaaaaa" + + // Level 3 + /* z\x* 0123456 */ + /* 0 */ "aaaaaaa" + /* 1 */ "abbbbba" + /* 2 */ "abcccba" + /* 3 */ "abcccba" + /* 4 */ "abcccba" + /* 5 */ "abbbbba" + /* 6 */ "aaaaaaa" + + // Level 4 + /* z\x* 0123456 */ + /* 0 */ "aaaaaaa" + /* 1 */ "abbbbba" + /* 2 */ "abcccba" + /* 3 */ "abcccba" + /* 4 */ "abcccba" + /* 5 */ "abbbbba" + /* 6 */ "aaaaaaa" + + // Level 5 + /* z\x* 0123456 */ + /* 0 */ "ddddddd" + /* 1 */ "dbbbbbd" + /* 2 */ "dbcccbd" + /* 3 */ "dbcccbd" + /* 4 */ "dbcccbd" + /* 5 */ "dbbbbbd" + /* 6 */ "ddddddd" + + // Level 6 + /* z\x* 0123456 */ + /* 0 */ "ddddddd" + /* 1 */ "dbbbbbd" + /* 2 */ "dbcccbd" + /* 3 */ "dbcccbd" + /* 4 */ "dbcccbd" + /* 5 */ "dbbbbbd" + /* 6 */ "ddddddd" + + // Level 7 + /* z\x* 0123456 */ + /* 0 */ "ddddddd" + /* 1 */ "dbbbbbd" + /* 2 */ "dbcccbd" + /* 3 */ "dbcccbd" + /* 4 */ "dbcccbd" + /* 5 */ "dbbbbbd" + /* 6 */ "ddddddd" + + // Level 8 + /* z\x* 0123456 */ + /* 0 */ "eefffee" + /* 1 */ "ebbbbbe" + /* 2 */ "fbcccbf" + /* 3 */ "fbcccbf" + /* 4 */ "fbcccbf" + /* 5 */ "ebbbbbe" + /* 6 */ "eefffee" + + // Level 9 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".bbbbb." + /* 2 */ ".b...b." + /* 3 */ ".b.g.b." + /* 4 */ ".b...b." + /* 5 */ ".bbbbb." + /* 6 */ "......." + + // Level 10 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".h...h." + /* 2 */ "......." + /* 3 */ "...h..." + /* 4 */ "......." + /* 5 */ ".h...h." + /* 6 */ "......." + + // Level 11 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".h...h." + /* 2 */ "......." + /* 3 */ "...h..." + /* 4 */ "......." + /* 5 */ ".h...h." + /* 6 */ "......." + + // Level 12 + /* z\x* 0123456 */ + /* 0 */ "iiiiiii" + /* 1 */ "jkjjjkj" + /* 2 */ ".l...n." + /* 3 */ ".l.h.n." + /* 4 */ ".l...n." + /* 5 */ "okoooko" + /* 6 */ "ppppppp" + + // Level 13 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ "iiiiiii" + /* 2 */ "jkjjjkj" + /* 3 */ ".k.h.k." + /* 4 */ "okoooko" + /* 5 */ "ppppppp" + /* 6 */ "......." + + // Level 14 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ "......." + /* 2 */ "iiiiiii" + /* 3 */ "kkkkkkk" + /* 4 */ "ppppppp" + /* 5 */ "......." + /* 6 */ ".......", + + // Connectors: + "2: 0, 9, 3: 4\n" /* Type 2, direction X- */ + "2: 3, 9, 6: 3\n" /* Type 2, direction Z+ */ + "2: 6, 9, 3: 5\n" /* Type 2, direction X+ */ + "2: 3, 9, 0: 2\n" /* Type 2, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // RoofedWell }; -- cgit v1.2.3 From 7004043c6164c6b22346f94489cb823f9495738f Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Sat, 17 May 2014 21:54:04 +0200 Subject: Village houses are height-adjusted onto the terrain. --- src/Generating/PieceGenerator.cpp | 11 +++++++++++ src/Generating/PieceGenerator.h | 7 +++++++ src/Generating/Prefab.cpp | 12 ++++++++++-- src/Generating/Prefab.h | 3 +++ src/Generating/VillageGen.cpp | 41 ++++++++++++++++++++++++++++++++++----- 5 files changed, 67 insertions(+), 7 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/PieceGenerator.cpp b/src/Generating/PieceGenerator.cpp index ce19c1c95..c12559d3f 100644 --- a/src/Generating/PieceGenerator.cpp +++ b/src/Generating/PieceGenerator.cpp @@ -297,6 +297,17 @@ cPlacedPiece::cPlacedPiece(const cPlacedPiece * a_Parent, const cPiece & a_Piece +cPiece::cConnector cPlacedPiece::GetRotatedConnector(size_t a_Index) const +{ + cPiece::cConnectors Connectors = m_Piece->GetConnectors(); + ASSERT(Connectors.size() >= a_Index); + return m_Piece->RotateMoveConnector(Connectors[a_Index], m_NumCCWRotations, m_Coords.x, m_Coords.y, m_Coords.z); +} + + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // cPieceGenerator: diff --git a/src/Generating/PieceGenerator.h b/src/Generating/PieceGenerator.h index 16bec3bb4..56ce996d2 100644 --- a/src/Generating/PieceGenerator.h +++ b/src/Generating/PieceGenerator.h @@ -144,6 +144,13 @@ public: const cCuboid & GetHitBox (void) const { return m_HitBox; } int GetDepth (void) const { return m_Depth; } + /** Returns the coords as a modifiable object. */ + Vector3i & GetCoords(void) { return m_Coords; } + + /** Returns the connector at the specified index, rotated in the actual placement. + Undefined behavior if a_Index is out of range. */ + cPiece::cConnector GetRotatedConnector(size_t a_Index) const; + protected: const cPlacedPiece * m_Parent; const cPiece * m_Piece; diff --git a/src/Generating/Prefab.cpp b/src/Generating/Prefab.cpp index 9aef7a94b..506e1c2cc 100644 --- a/src/Generating/Prefab.cpp +++ b/src/Generating/Prefab.cpp @@ -191,13 +191,21 @@ void cPrefab::AddRotatedBlockAreas(void) void cPrefab::Draw(cChunkDesc & a_Dest, const cPlacedPiece * a_Placement) const +{ + Draw(a_Dest, a_Placement->GetCoords(), a_Placement->GetNumCCWRotations()); +} + + + + +void cPrefab::Draw(cChunkDesc & a_Dest, const Vector3i & a_Placement, int a_NumRotations) const { // Draw the basic image: - Vector3i Placement = a_Placement->GetCoords(); + Vector3i Placement(a_Placement); int ChunkStartX = a_Dest.GetChunkX() * cChunkDef::Width; int ChunkStartZ = a_Dest.GetChunkZ() * cChunkDef::Width; Placement.Move(-ChunkStartX, 0, -ChunkStartZ); - const cBlockArea & Image = m_BlockArea[a_Placement->GetNumCCWRotations()]; + const cBlockArea & Image = m_BlockArea[a_NumRotations]; a_Dest.WriteBlockArea(Image, Placement.x, Placement.y, Placement.z, m_MergeStrategy); // If requested, draw the floor (from the bottom of the prefab down to the nearest non-air) diff --git a/src/Generating/Prefab.h b/src/Generating/Prefab.h index c08413e87..2b89a204c 100644 --- a/src/Generating/Prefab.h +++ b/src/Generating/Prefab.h @@ -94,6 +94,9 @@ public: /** Draws the prefab into the specified chunk, according to the placement stored in the PlacedPiece. */ void Draw(cChunkDesc & a_Dest, const cPlacedPiece * a_Placement) const; + /** Draws the prefab into the specified chunks, according to the specified placement and rotations. */ + void Draw(cChunkDesc & a_Dest, const Vector3i & a_Placement, int a_NumRotations) const; + /** Returns true if the prefab has any connector of the specified type. */ bool HasConnectorType(int a_ConnectorType) const; diff --git a/src/Generating/VillageGen.cpp b/src/Generating/VillageGen.cpp index b514a90cd..db81fb521 100644 --- a/src/Generating/VillageGen.cpp +++ b/src/Generating/VillageGen.cpp @@ -115,7 +115,9 @@ public: m_HeightGen(a_HeightGen) { cBFSPieceGenerator pg(m_Prefabs, a_Seed); - pg.PlacePieces(a_OriginX, 10, a_OriginZ, a_MaxRoadDepth + 1, m_Pieces); + // Generate the pieces at very negative Y coords, so that we can later test + // Piece has negative Y coord -> hasn't been height-adjusted yet + pg.PlacePieces(a_OriginX, -1000, a_OriginZ, a_MaxRoadDepth + 1, m_Pieces); } protected: @@ -144,16 +146,45 @@ protected: // cGrdStructGen::cStructure overrides: virtual void DrawIntoChunk(cChunkDesc & a_Chunk) override { - // TODO // Iterate over all items - // Each intersecting prefab is placed on ground (if not already placed), then drawn + // Each intersecting prefab is placed on ground, then drawn // Each intersecting road is drawn by replacing top soil blocks with gravel / sandstone blocks - for (cPlacedPieces::const_iterator itr = m_Pieces.begin(), end = m_Pieces.end(); itr != end; ++itr) + cChunkDef::HeightMap HeightMap; // Heightmap for this chunk, used by roads + m_HeightGen.GenHeightMap(a_Chunk.GetChunkX(), a_Chunk.GetChunkZ(), HeightMap); + for (cPlacedPieces::iterator itr = m_Pieces.begin(), end = m_Pieces.end(); itr != end; ++itr) { - const cPrefab & Prefab = (const cPrefab &)((*itr)->GetPiece()); + cPrefab & Prefab = (cPrefab &)((*itr)->GetPiece()); + if ((*itr)->GetPiece().GetSize().y == 1) + { + // It's a road, special handling (change top terrain blocks + // TODO + Prefab.Draw(a_Chunk, (*itr)->GetCoords() + Vector3i(0, 1100, 0), (*itr)->GetNumCCWRotations()); + continue; + } + if ((*itr)->GetCoords().y < 0) + { + PlacePieceOnGround(**itr); + } Prefab.Draw(a_Chunk, *itr); } // for itr - m_PlacedPieces[] } + + + /** Adjusts the Y coord of the given piece so that the piece is on the ground. + Ground level is assumed to be represented by the first connector in the piece. */ + void PlacePieceOnGround(cPlacedPiece & a_Piece) + { + cPiece::cConnector FirstConnector = a_Piece.GetRotatedConnector(0); + int ChunkX, ChunkZ; + int BlockX = FirstConnector.m_Pos.x; + int BlockZ = FirstConnector.m_Pos.z; + int BlockY; + cChunkDef::AbsoluteToRelative(BlockX, BlockY, BlockZ, ChunkX, ChunkZ); + cChunkDef::HeightMap HeightMap; + m_HeightGen.GenHeightMap(ChunkX, ChunkZ, HeightMap); + int TerrainHeight = cChunkDef::GetHeight(HeightMap, BlockX, BlockZ); + a_Piece.GetCoords().y += TerrainHeight - FirstConnector.m_Pos.y + 1; + } } ; -- cgit v1.2.3 From a7e52e51dc3665ac2c2f27ed52e732ef7bbad32e Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Sat, 17 May 2014 22:26:09 +0200 Subject: Village roads are drawn properly. --- src/Generating/PieceGenerator.h | 4 ++-- src/Generating/VillageGen.cpp | 39 +++++++++++++++++++++++++++++++++------ 2 files changed, 35 insertions(+), 8 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/PieceGenerator.h b/src/Generating/PieceGenerator.h index 56ce996d2..643ca58b6 100644 --- a/src/Generating/PieceGenerator.h +++ b/src/Generating/PieceGenerator.h @@ -156,8 +156,8 @@ protected: const cPiece * m_Piece; Vector3i m_Coords; int m_NumCCWRotations; - cCuboid m_HitBox; - int m_Depth; + cCuboid m_HitBox; // Hitbox of the placed piece, in world coords + int m_Depth; // Depth in the generated piece tree }; typedef std::vector cPlacedPieces; diff --git a/src/Generating/VillageGen.cpp b/src/Generating/VillageGen.cpp index db81fb521..520d63029 100644 --- a/src/Generating/VillageGen.cpp +++ b/src/Generating/VillageGen.cpp @@ -104,7 +104,8 @@ public: int a_MaxRoadDepth, int a_MaxSize, cPrefabPiecePool & a_Prefabs, - cTerrainHeightGen & a_HeightGen + cTerrainHeightGen & a_HeightGen, + BLOCKTYPE a_RoadBlock ) : super(a_OriginX, a_OriginZ), m_Seed(a_Seed), @@ -112,7 +113,8 @@ public: m_MaxSize(a_MaxSize), m_Borders(a_OriginX - a_MaxSize, 0, a_OriginZ - a_MaxSize, a_OriginX + a_MaxSize, 255, a_OriginZ + a_MaxSize), m_Prefabs(a_Prefabs), - m_HeightGen(a_HeightGen) + m_HeightGen(a_HeightGen), + m_RoadBlock(a_RoadBlock) { cBFSPieceGenerator pg(m_Prefabs, a_Seed); // Generate the pieces at very negative Y coords, so that we can later test @@ -142,6 +144,9 @@ protected: /** The village pieces, placed by the generator. */ cPlacedPieces m_Pieces; + /** The block to use for the roads. */ + BLOCKTYPE m_RoadBlock; + // cGrdStructGen::cStructure overrides: virtual void DrawIntoChunk(cChunkDesc & a_Chunk) override @@ -156,9 +161,8 @@ protected: cPrefab & Prefab = (cPrefab &)((*itr)->GetPiece()); if ((*itr)->GetPiece().GetSize().y == 1) { - // It's a road, special handling (change top terrain blocks - // TODO - Prefab.Draw(a_Chunk, (*itr)->GetCoords() + Vector3i(0, 1100, 0), (*itr)->GetNumCCWRotations()); + // It's a road, special handling (change top terrain blocks to m_RoadBlock) + DrawRoad(a_Chunk, **itr, HeightMap); continue; } if ((*itr)->GetCoords().y < 0) @@ -185,6 +189,27 @@ protected: int TerrainHeight = cChunkDef::GetHeight(HeightMap, BlockX, BlockZ); a_Piece.GetCoords().y += TerrainHeight - FirstConnector.m_Pos.y + 1; } + + + /** Draws the road into the chunk. + The heightmap is not queried from the heightgen, but is given via parameter, so that it may be queried just + once for all roads in a chunk. */ + void DrawRoad(cChunkDesc & a_Chunk, cPlacedPiece & a_Road, cChunkDef::HeightMap & a_HeightMap) + { + cCuboid RoadCoords = a_Road.GetHitBox(); + RoadCoords.Sort(); + int MinX = std::max(RoadCoords.p1.x - a_Chunk.GetChunkX() * cChunkDef::Width, 0); + int MaxX = std::min(RoadCoords.p2.x - a_Chunk.GetChunkX() * cChunkDef::Width, cChunkDef::Width - 1); + int MinZ = std::max(RoadCoords.p1.z - a_Chunk.GetChunkZ() * cChunkDef::Width, 0); + int MaxZ = std::min(RoadCoords.p2.z - a_Chunk.GetChunkZ() * cChunkDef::Width, cChunkDef::Width - 1); + for (int z = MinZ; z <= MaxZ; z++) + { + for (int x = MinX; x <= MaxX; x++) + { + a_Chunk.SetBlockType(x, cChunkDef::GetHeight(a_HeightMap, x, z), z, m_RoadBlock); + } + } + } } ; @@ -228,6 +253,7 @@ cGridStructGen::cStructurePtr cVillageGen::CreateStructure(int a_OriginX, int a_ // Check if all the biomes are village-friendly: // If just one is not, no village is created, because it's likely that an unfriendly biome is too close cVillagePiecePool * VillagePrefabs = NULL; + BLOCKTYPE RoadBlock = E_BLOCK_GRAVEL; for (size_t i = 0; i < ARRAYCOUNT(Biomes); i++) { switch (Biomes[i]) @@ -237,6 +263,7 @@ cGridStructGen::cStructurePtr cVillageGen::CreateStructure(int a_OriginX, int a_ { // These biomes allow sand villages VillagePrefabs = &g_SandVillage; + RoadBlock = E_BLOCK_SANDSTONE; break; } case biPlains: @@ -261,7 +288,7 @@ cGridStructGen::cStructurePtr cVillageGen::CreateStructure(int a_OriginX, int a_ { return cStructurePtr(); } - return cStructurePtr(new cVillage(m_Seed, a_OriginX, a_OriginZ, m_MaxDepth, m_MaxSize, *VillagePrefabs, m_HeightGen)); + return cStructurePtr(new cVillage(m_Seed, a_OriginX, a_OriginZ, m_MaxDepth, m_MaxSize, *VillagePrefabs, m_HeightGen, RoadBlock)); } -- cgit v1.2.3 From ec50c0f9e1ee59ad8e782795c46f100be79b3ed0 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Sun, 18 May 2014 23:09:39 +0200 Subject: Updated SandVillage prefabs to latest Gallery content. This fixes sand village generation. --- src/Generating/Prefabs/SandVillagePrefabs.cpp | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/Prefabs/SandVillagePrefabs.cpp b/src/Generating/Prefabs/SandVillagePrefabs.cpp index 8460ee5f7..539f57b9d 100644 --- a/src/Generating/Prefabs/SandVillagePrefabs.cpp +++ b/src/Generating/Prefabs/SandVillagePrefabs.cpp @@ -183,7 +183,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* 6 */ "...........", // Connectors: - "-1: 5, 0, 1: 2\n" /* Type -1, direction Z- */, + "-1: 5, 0, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -326,7 +326,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* 8 */ "...........", // Connectors: - "-1: 5, 0, 1: 2\n" /* Type -1, direction Z- */, + "-1: 5, 0, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -444,7 +444,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* 6 */ ".............", // Connectors: - "-1: 6, 0, 1: 2\n" /* Type -1, direction Z- */, + "-1: 6, 0, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -587,7 +587,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* 8 */ ".............", // Connectors: - "-1: 6, 0, 1: 2\n" /* Type -1, direction Z- */, + "-1: 6, 0, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -730,7 +730,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* 8 */ "...............", // Connectors: - "-1: 6, 0, 1: 2\n" /* Type -1, direction Z- */, + "-1: 6, 0, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -873,7 +873,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* 8 */ "................", // Connectors: - "-1: 9, 0, 1: 2\n" /* Type -1, direction Z- */, + "-1: 9, 0, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -984,7 +984,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* 6 */ ".......", // Connectors: - "-1: 4, 0, 1: 2\n" /* Type -1, direction Z- */, + "-1: 4, 0, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1096,7 +1096,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* 6 */ ".........", // Connectors: - "-1: 4, 0, 1: 2\n" /* Type -1, direction Z- */, + "-1: 4, 0, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1232,7 +1232,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* 8 */ ".........", // Connectors: - "-1: 4, 0, 1: 2\n" /* Type -1, direction Z- */, + "-1: 4, 0, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1384,7 +1384,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* 11 */ "mmmmmmm..adc..", // Connectors: - "-1: 8, 0, 1: 2\n" /* Type -1, direction Z- */, + "-1: 8, 0, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1552,7 +1552,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* 11 */ "mmmmm...adc...", // Connectors: - "-1: 5, 0, 1: 2\n" /* Type -1, direction Z- */, + "-1: 5, 0, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1712,7 +1712,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = /* 5 */ ".....", // Connectors: - "-1: 2, 0, 4: 3\n" /* Type -1, direction Z+ */, + "-1: 2, 0, 5: 3\n" /* Type -1, direction Z+ */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ -- cgit v1.2.3 From efcae77828d52680f9521793520ffc4325b465b8 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Wed, 21 May 2014 23:16:43 +0200 Subject: Added second kind of desert village (FlatRoof). --- .../Prefabs/SandFlatRoofVillagePrefabs.cpp | 1511 ++++++++++++++++++++ .../Prefabs/SandFlatRoofVillagePrefabs.h | 15 + src/Generating/VillageGen.cpp | 13 +- 3 files changed, 1535 insertions(+), 4 deletions(-) create mode 100644 src/Generating/Prefabs/SandFlatRoofVillagePrefabs.cpp create mode 100644 src/Generating/Prefabs/SandFlatRoofVillagePrefabs.h (limited to 'src/Generating') diff --git a/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.cpp b/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.cpp new file mode 100644 index 000000000..93aa405c2 --- /dev/null +++ b/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.cpp @@ -0,0 +1,1511 @@ + +// SandFlatRoofVillagePrefabs.cpp + +// Defines the prefabs in the group SandFlatRoofVillage + +// NOTE: This file has been generated automatically by GalExport! +// Any manual changes will be overwritten by the next automatic export! + +#include "Globals.h" +#include "SandFlatRoofVillagePrefabs.h" + + + + + +const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = +{ + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Forge: + // The data has been exported from the gallery Desert, area index 32, ID 173, created by Aloe_vera + { + // Size: + 12, 5, 10, // SizeX = 12, SizeY = 5, SizeZ = 10 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 11, 4, 9, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a:128: 2\n" /* sandstonestairs */ + "b:128: 1\n" /* sandstonestairs */ + "c:128: 0\n" /* sandstonestairs */ + "d: 24: 0\n" /* sandstone */ + "e:128: 3\n" /* sandstonestairs */ + "f:171:15\n" /* carpet */ + "g: 64: 6\n" /* wooddoorblock */ + "h:171: 0\n" /* carpet */ + "i:171:14\n" /* carpet */ + "j: 61: 2\n" /* furnace */ + "k: 10: 0\n" /* lava */ + "l: 54: 2\n" /* chest */ + "m: 19: 0\n" /* sponge */ + "n: 24: 2\n" /* sandstone */ + "o: 64:12\n" /* wooddoorblock */ + "p: 50: 1\n" /* torch */ + "q:101: 0\n" /* ironbars */ + "r:128: 4\n" /* sandstonestairs */ + "s:128: 6\n" /* sandstonestairs */ + "t:128: 5\n" /* sandstonestairs */ + "u:128: 7\n" /* sandstonestairs */, + + // Block data: + // Level 0 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "aaaaaab....." + /* 1 */ "cdddddddddd." + /* 2 */ "cdddddddddd." + /* 3 */ "cdddddddddd." + /* 4 */ "cdddddddddd." + /* 5 */ "edddddddddd." + /* 6 */ ".dddddddddd." + /* 7 */ ".dddddddddd." + /* 8 */ ".dddddddddd." + /* 9 */ "............" + + // Level 1 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ ".d....ddddd." + /* 2 */ "......dfffd." + /* 3 */ "......ghfhd." + /* 4 */ "......diiid." + /* 5 */ ".d....dhfhd." + /* 6 */ ".djddjdfffd." + /* 7 */ ".ddkkddl..d." + /* 8 */ ".dddddddddd." + /* 9 */ "............" + + // Level 2 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ ".n....nn.nn." + /* 2 */ "......n...n." + /* 3 */ "......o...n." + /* 4 */ "......n....." + /* 5 */ ".n....n...n." + /* 6 */ ".n....n...n." + /* 7 */ ".n....n...n." + /* 8 */ ".nnn.nnn.nn." + /* 9 */ "............" + + // Level 3 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ ".d....ddddd." + /* 2 */ "......d...d." + /* 3 */ "......d...d." + /* 4 */ "......dp..d." + /* 5 */ ".d....d...d." + /* 6 */ ".dqqqqd...d." + /* 7 */ ".d....d...d." + /* 8 */ ".dddddddddd." + /* 9 */ "............" + + // Level 4 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "rsssssssssss" + /* 1 */ "rddddddddddt" + /* 2 */ "rddddddddddt" + /* 3 */ "rddddddddddt" + /* 4 */ "rddddddddddt" + /* 5 */ "rddddddddddt" + /* 6 */ "rddddddddddt" + /* 7 */ "rddddddddddt" + /* 8 */ "rddddddddddt" + /* 9 */ "uuuuuuuuuuut", + + // Connectors: + "-1: 3, 0, 0: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // Forge + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // House11x7: + // The data has been exported from the gallery Desert, area index 31, ID 172, created by Aloe_vera + { + // Size: + 13, 5, 9, // SizeX = 13, SizeY = 5, SizeZ = 9 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 12, 4, 8, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a:128: 0\n" /* sandstonestairs */ + "b:128: 2\n" /* sandstonestairs */ + "c:128: 1\n" /* sandstonestairs */ + "d: 24: 0\n" /* sandstone */ + "e: 64: 7\n" /* wooddoorblock */ + "f:171: 0\n" /* carpet */ + "g:171:15\n" /* carpet */ + "h:171:14\n" /* carpet */ + "i: 24: 2\n" /* sandstone */ + "j: 64:12\n" /* wooddoorblock */ + "k: 50: 3\n" /* torch */ + "l: 50: 1\n" /* torch */ + "m: 19: 0\n" /* sponge */ + "n: 50: 2\n" /* torch */ + "o: 50: 4\n" /* torch */ + "p:128: 4\n" /* sandstonestairs */ + "q:128: 6\n" /* sandstonestairs */ + "r:128: 5\n" /* sandstonestairs */ + "s:128: 7\n" /* sandstonestairs */, + + // Block data: + // Level 0 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "..abc........" + /* 1 */ ".ddddddddddd." + /* 2 */ ".ddddddddddd." + /* 3 */ ".ddddddddddd." + /* 4 */ ".ddddddddddd." + /* 5 */ ".ddddddddddd." + /* 6 */ ".ddddddddddd." + /* 7 */ ".ddddddddddd." + /* 8 */ "............." + + // Level 1 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "............." + /* 1 */ ".ddedddddddd." + /* 2 */ ".dffgggggffd." + /* 3 */ ".dfghhhhhgfd." + /* 4 */ ".dfghfffhgfd." + /* 5 */ ".dfghhhhhgfd." + /* 6 */ ".dffgggggffd." + /* 7 */ ".ddddddddddd." + /* 8 */ "............." + + // Level 2 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "............." + /* 1 */ ".iiji.iii.ii." + /* 2 */ ".i.........i." + /* 3 */ ".i.........i." + /* 4 */ "............." + /* 5 */ ".i.........i." + /* 6 */ ".i.........i." + /* 7 */ ".ii.ii.ii.ii." + /* 8 */ "............." + + // Level 3 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "............." + /* 1 */ ".ddddddddddd." + /* 2 */ ".d..k..k...d." + /* 3 */ ".d.........d." + /* 4 */ ".dl.......nd." + /* 5 */ ".d.........d." + /* 6 */ ".d....o....d." + /* 7 */ ".ddddddddddd." + /* 8 */ "............." + + // Level 4 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "pqqqqqqqqqqqq" + /* 1 */ "pdddddddddddr" + /* 2 */ "pdddddddddddr" + /* 3 */ "pdddddddddddr" + /* 4 */ "pdddddddddddr" + /* 5 */ "pdddddddddddr" + /* 6 */ "pdddddddddddr" + /* 7 */ "pdddddddddddr" + /* 8 */ "ssssssssssssr", + + // Connectors: + "-1: 3, 0, 0: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // House11x7 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // House5x4: + // The data has been exported from the gallery Desert, area index 25, ID 166, created by Aloe_vera + { + // Size: + 7, 5, 6, // SizeX = 7, SizeY = 5, SizeZ = 6 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 6, 4, 5, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a:128: 0\n" /* sandstonestairs */ + "b:128: 2\n" /* sandstonestairs */ + "c:128: 1\n" /* sandstonestairs */ + "d: 24: 0\n" /* sandstone */ + "e: 64: 7\n" /* wooddoorblock */ + "f:171: 0\n" /* carpet */ + "g:171:14\n" /* carpet */ + "h: 24: 2\n" /* sandstone */ + "i: 64:12\n" /* wooddoorblock */ + "j: 50: 3\n" /* torch */ + "k:128: 4\n" /* sandstonestairs */ + "l:128: 6\n" /* sandstonestairs */ + "m: 19: 0\n" /* sponge */ + "n:128: 5\n" /* sandstonestairs */ + "o:128: 7\n" /* sandstonestairs */, + + // Block data: + // Level 0 + /* z\x* 0123456 */ + /* 0 */ "..abc.." + /* 1 */ ".ddddd." + /* 2 */ ".ddddd." + /* 3 */ ".ddddd." + /* 4 */ ".ddddd." + /* 5 */ "......." + + // Level 1 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".ddedd." + /* 2 */ ".dfgfd." + /* 3 */ ".dfgfd." + /* 4 */ ".ddddd." + /* 5 */ "......." + + // Level 2 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".hhihh." + /* 2 */ ".h...h." + /* 3 */ ".h...h." + /* 4 */ ".hh.hh." + /* 5 */ "......." + + // Level 3 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".ddddd." + /* 2 */ ".dj.jd." + /* 3 */ ".d...d." + /* 4 */ ".ddddd." + /* 5 */ "......." + + // Level 4 + /* z\x* 0123456 */ + /* 0 */ "kllllln" + /* 1 */ "kdddddn" + /* 2 */ "kdddddn" + /* 3 */ "kdddddn" + /* 4 */ "kdddddn" + /* 5 */ "oooooon", + + // Connectors: + "-1: 3, 0, 0: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // House5x4 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // House5x5: + // The data has been exported from the gallery Desert, area index 26, ID 167, created by Aloe_vera + { + // Size: + 7, 5, 7, // SizeX = 7, SizeY = 5, SizeZ = 7 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 6, 4, 6, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a:128: 0\n" /* sandstonestairs */ + "b:128: 2\n" /* sandstonestairs */ + "c:128: 1\n" /* sandstonestairs */ + "d: 24: 0\n" /* sandstone */ + "e: 64: 7\n" /* wooddoorblock */ + "f:171: 0\n" /* carpet */ + "g:171:15\n" /* carpet */ + "h:171:14\n" /* carpet */ + "i: 24: 2\n" /* sandstone */ + "j: 64:12\n" /* wooddoorblock */ + "k: 50: 3\n" /* torch */ + "l:128: 4\n" /* sandstonestairs */ + "m: 19: 0\n" /* sponge */ + "n:128: 6\n" /* sandstonestairs */ + "o:128: 5\n" /* sandstonestairs */ + "p:128: 7\n" /* sandstonestairs */, + + // Block data: + // Level 0 + /* z\x* 0123456 */ + /* 0 */ "..abc.." + /* 1 */ ".ddddd." + /* 2 */ ".ddddd." + /* 3 */ ".ddddd." + /* 4 */ ".ddddd." + /* 5 */ ".ddddd." + /* 6 */ "......." + + // Level 1 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".ddedd." + /* 2 */ ".dfffd." + /* 3 */ ".dghgd." + /* 4 */ ".dfffd." + /* 5 */ ".ddddd." + /* 6 */ "......." + + // Level 2 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".iijii." + /* 2 */ ".i...i." + /* 3 */ "......." + /* 4 */ ".i...i." + /* 5 */ ".ii.ii." + /* 6 */ "......." + + // Level 3 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".ddddd." + /* 2 */ ".dk.kd." + /* 3 */ ".d...d." + /* 4 */ ".d...d." + /* 5 */ ".ddddd." + /* 6 */ "......." + + // Level 4 + /* z\x* 0123456 */ + /* 0 */ "lnnnnno" + /* 1 */ "ldddddo" + /* 2 */ "ldddddo" + /* 3 */ "ldddddo" + /* 4 */ "ldddddo" + /* 5 */ "ldddddo" + /* 6 */ "ppppppo", + + // Connectors: + "-1: 3, 0, 0: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // House5x5 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // House7x5: + // The data has been exported from the gallery Desert, area index 27, ID 168, created by Aloe_vera + { + // Size: + 9, 5, 7, // SizeX = 9, SizeY = 5, SizeZ = 7 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 8, 4, 6, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a:128: 0\n" /* sandstonestairs */ + "b:128: 2\n" /* sandstonestairs */ + "c:128: 1\n" /* sandstonestairs */ + "d: 24: 0\n" /* sandstone */ + "e: 64: 7\n" /* wooddoorblock */ + "f:171:14\n" /* carpet */ + "g:171: 0\n" /* carpet */ + "h:171:15\n" /* carpet */ + "i: 24: 2\n" /* sandstone */ + "j: 64:12\n" /* wooddoorblock */ + "k: 50: 3\n" /* torch */ + "l:128: 4\n" /* sandstonestairs */ + "m: 19: 0\n" /* sponge */ + "n:128: 6\n" /* sandstonestairs */ + "o:128: 5\n" /* sandstonestairs */ + "p:128: 7\n" /* sandstonestairs */, + + // Block data: + // Level 0 + /* z\x* 012345678 */ + /* 0 */ "..abc...." + /* 1 */ ".ddddddd." + /* 2 */ ".ddddddd." + /* 3 */ ".ddddddd." + /* 4 */ ".ddddddd." + /* 5 */ ".ddddddd." + /* 6 */ "........." + + // Level 1 + /* z\x* 012345678 */ + /* 0 */ "........." + /* 1 */ ".ddedddd." + /* 2 */ ".dfffffd." + /* 3 */ ".dghhhgd." + /* 4 */ ".dfffffd." + /* 5 */ ".ddddddd." + /* 6 */ "........." + + // Level 2 + /* z\x* 012345678 */ + /* 0 */ "........." + /* 1 */ ".iiji.ii." + /* 2 */ ".i.....i." + /* 3 */ "........." + /* 4 */ ".i.....i." + /* 5 */ ".iii.iii." + /* 6 */ "........." + + // Level 3 + /* z\x* 012345678 */ + /* 0 */ "........." + /* 1 */ ".ddddddd." + /* 2 */ ".dk.k..d." + /* 3 */ ".d.....d." + /* 4 */ ".d.....d." + /* 5 */ ".ddddddd." + /* 6 */ "........." + + // Level 4 + /* z\x* 012345678 */ + /* 0 */ "lnnnnnnnn" + /* 1 */ "ldddddddo" + /* 2 */ "ldddddddo" + /* 3 */ "ldddddddo" + /* 4 */ "ldddddddo" + /* 5 */ "ldddddddo" + /* 6 */ "ppppppppo", + + // Connectors: + "-1: 3, 0, 0: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // House7x5 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // House8x5: + // The data has been exported from the gallery Desert, area index 28, ID 169, created by Aloe_vera + { + // Size: + 10, 5, 7, // SizeX = 10, SizeY = 5, SizeZ = 7 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 9, 4, 6, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a:128: 0\n" /* sandstonestairs */ + "b:128: 2\n" /* sandstonestairs */ + "c:128: 1\n" /* sandstonestairs */ + "d: 24: 0\n" /* sandstone */ + "e: 64: 7\n" /* wooddoorblock */ + "f:171: 0\n" /* carpet */ + "g:171:14\n" /* carpet */ + "h:171:15\n" /* carpet */ + "i: 24: 2\n" /* sandstone */ + "j: 64:12\n" /* wooddoorblock */ + "k: 50: 3\n" /* torch */ + "l:128: 4\n" /* sandstonestairs */ + "m: 19: 0\n" /* sponge */ + "n:128: 6\n" /* sandstonestairs */ + "o:128: 5\n" /* sandstonestairs */ + "p:128: 7\n" /* sandstonestairs */, + + // Block data: + // Level 0 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ "..abc....." + /* 1 */ ".dddddddd." + /* 2 */ ".dddddddd." + /* 3 */ ".dddddddd." + /* 4 */ ".dddddddd." + /* 5 */ ".dddddddd." + /* 6 */ ".........." + + // Level 1 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ ".........." + /* 1 */ ".ddeddddd." + /* 2 */ ".dfghhgfd." + /* 3 */ ".dfhffhfd." + /* 4 */ ".dfghhgfd." + /* 5 */ ".dddddddd." + /* 6 */ ".........." + + // Level 2 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ ".........." + /* 1 */ ".iijii.ii." + /* 2 */ ".i......i." + /* 3 */ ".........." + /* 4 */ ".i......i." + /* 5 */ ".ii.ii.ii." + /* 6 */ ".........." + + // Level 3 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ ".........." + /* 1 */ ".dddddddd." + /* 2 */ ".dk.k...d." + /* 3 */ ".d......d." + /* 4 */ ".d......d." + /* 5 */ ".dddddddd." + /* 6 */ ".........." + + // Level 4 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ "lnnnnnnnnn" + /* 1 */ "lddddddddo" + /* 2 */ "lddddddddo" + /* 3 */ "lddddddddo" + /* 4 */ "lddddddddo" + /* 5 */ "lddddddddo" + /* 6 */ "pppppppppo", + + // Connectors: + "-1: 3, 0, 0: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // House8x5 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // House8x7: + // The data has been exported from the gallery Desert, area index 29, ID 170, created by Aloe_vera + { + // Size: + 10, 5, 9, // SizeX = 10, SizeY = 5, SizeZ = 9 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 9, 4, 8, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a:128: 0\n" /* sandstonestairs */ + "b:128: 2\n" /* sandstonestairs */ + "c:128: 1\n" /* sandstonestairs */ + "d: 24: 0\n" /* sandstone */ + "e: 64: 7\n" /* wooddoorblock */ + "f:171: 0\n" /* carpet */ + "g:171:14\n" /* carpet */ + "h:171:15\n" /* carpet */ + "i: 24: 2\n" /* sandstone */ + "j: 64:12\n" /* wooddoorblock */ + "k: 50: 3\n" /* torch */ + "l: 50: 1\n" /* torch */ + "m: 19: 0\n" /* sponge */ + "n: 50: 2\n" /* torch */ + "o:128: 4\n" /* sandstonestairs */ + "p:128: 6\n" /* sandstonestairs */ + "q:128: 5\n" /* sandstonestairs */ + "r:128: 7\n" /* sandstonestairs */, + + // Block data: + // Level 0 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ "..abc....." + /* 1 */ ".dddddddd." + /* 2 */ ".dddddddd." + /* 3 */ ".dddddddd." + /* 4 */ ".dddddddd." + /* 5 */ ".dddddddd." + /* 6 */ ".dddddddd." + /* 7 */ ".dddddddd." + /* 8 */ ".........." + + // Level 1 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ ".........." + /* 1 */ ".ddeddddd." + /* 2 */ ".dfghhgfd." + /* 3 */ ".dfhffhfd." + /* 4 */ ".dfhgghfd." + /* 5 */ ".dfhffhfd." + /* 6 */ ".dfghhgfd." + /* 7 */ ".dddddddd." + /* 8 */ ".........." + + // Level 2 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ ".........." + /* 1 */ ".iijii.ii." + /* 2 */ ".i......i." + /* 3 */ ".i......i." + /* 4 */ ".........." + /* 5 */ ".i......i." + /* 6 */ ".i......i." + /* 7 */ ".ii.ii.ii." + /* 8 */ ".........." + + // Level 3 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ ".........." + /* 1 */ ".dddddddd." + /* 2 */ ".d..k...d." + /* 3 */ ".d......d." + /* 4 */ ".dl....nd." + /* 5 */ ".d......d." + /* 6 */ ".d......d." + /* 7 */ ".dddddddd." + /* 8 */ ".........." + + // Level 4 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ "oppppppppp" + /* 1 */ "oddddddddq" + /* 2 */ "oddddddddq" + /* 3 */ "oddddddddq" + /* 4 */ "oddddddddq" + /* 5 */ "oddddddddq" + /* 6 */ "oddddddddq" + /* 7 */ "oddddddddq" + /* 8 */ "rrrrrrrrrq", + + // Connectors: + "-1: 3, 0, 0: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // House8x7 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // House9x7: + // The data has been exported from the gallery Desert, area index 30, ID 171, created by Aloe_vera + { + // Size: + 11, 5, 9, // SizeX = 11, SizeY = 5, SizeZ = 9 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 10, 4, 8, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a:128: 0\n" /* sandstonestairs */ + "b:128: 2\n" /* sandstonestairs */ + "c:128: 1\n" /* sandstonestairs */ + "d: 24: 0\n" /* sandstone */ + "e: 64: 7\n" /* wooddoorblock */ + "f:171: 0\n" /* carpet */ + "g:171:15\n" /* carpet */ + "h:171:14\n" /* carpet */ + "i: 24: 2\n" /* sandstone */ + "j: 64:12\n" /* wooddoorblock */ + "k: 50: 3\n" /* torch */ + "l: 50: 1\n" /* torch */ + "m: 19: 0\n" /* sponge */ + "n: 50: 2\n" /* torch */ + "o: 50: 4\n" /* torch */ + "p:128: 4\n" /* sandstonestairs */ + "q:128: 6\n" /* sandstonestairs */ + "r:128: 5\n" /* sandstonestairs */ + "s:128: 7\n" /* sandstonestairs */, + + // Block data: + // Level 0 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..abc......" + /* 1 */ ".ddddddddd." + /* 2 */ ".ddddddddd." + /* 3 */ ".ddddddddd." + /* 4 */ ".ddddddddd." + /* 5 */ ".ddddddddd." + /* 6 */ ".ddddddddd." + /* 7 */ ".ddddddddd." + /* 8 */ "..........." + + // Level 1 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".ddedddddd." + /* 2 */ ".dffgggffd." + /* 3 */ ".dfghhhgfd." + /* 4 */ ".dfghfhgfd." + /* 5 */ ".dfghhhgfd." + /* 6 */ ".dffgggffd." + /* 7 */ ".ddddddddd." + /* 8 */ "..........." + + // Level 2 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".iijii.iii." + /* 2 */ ".i.......i." + /* 3 */ ".i.......i." + /* 4 */ "..........." + /* 5 */ ".i.......i." + /* 6 */ ".i.......i." + /* 7 */ ".ii.iii.ii." + /* 8 */ "..........." + + // Level 3 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".ddddddddd." + /* 2 */ ".d..k....d." + /* 3 */ ".d.......d." + /* 4 */ ".dl.....nd." + /* 5 */ ".d.......d." + /* 6 */ ".d...o...d." + /* 7 */ ".ddddddddd." + /* 8 */ "..........." + + // Level 4 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "pqqqqqqqqqq" + /* 1 */ "pdddddddddr" + /* 2 */ "pdddddddddr" + /* 3 */ "pdddddddddr" + /* 4 */ "pdddddddddr" + /* 5 */ "pdddddddddr" + /* 6 */ "pdddddddddr" + /* 7 */ "pdddddddddr" + /* 8 */ "ssssssssssr", + + // Connectors: + "-1: 3, 0, 0: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // House9x7 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // 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 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 14, 4, 13, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a:128: 0\n" /* sandstonestairs */ + "b:128: 2\n" /* sandstonestairs */ + "c:128: 1\n" /* sandstonestairs */ + "d: 24: 0\n" /* sandstone */ + "e: 43: 1\n" /* doubleslab */ + "f: 64: 7\n" /* wooddoorblock */ + "g:171: 0\n" /* carpet */ + "h:171:15\n" /* carpet */ + "i:171:14\n" /* carpet */ + "j: 58: 0\n" /* workbench */ + "k: 24: 2\n" /* sandstone */ + "l: 64:12\n" /* wooddoorblock */ + "m: 19: 0\n" /* sponge */ + "n: 50: 3\n" /* torch */ + "o: 50: 1\n" /* torch */ + "p: 50: 2\n" /* torch */ + "q: 50: 4\n" /* torch */ + "r:128: 6\n" /* sandstonestairs */ + "s:128: 5\n" /* sandstonestairs */ + "t:128: 4\n" /* sandstonestairs */ + "u:128: 7\n" /* sandstonestairs */, + + // Block data: + // Level 0 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "...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 */ "..............." + + // 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." + /* 13 */ "..............." + + // Level 2 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ ".kkklkkkk.kkkk." + /* 2 */ ".k...........k." + /* 3 */ ".k...........k." + /* 4 */ "..............." + /* 5 */ ".k...........k." + /* 6 */ ".k...........k." + /* 7 */ ".kkk.kkk.....k." + /* 8 */ ".......k.....k." + /* 9 */ "mmmmmm.k......." + /* 10 */ "mmmmmm.......k." + /* 11 */ "mmmmmm.k.....k." + /* 12 */ "mmmmmm.kkk.kkk." + /* 13 */ "..............." + + // Level 3 + /* 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." + /* 13 */ "..............." + + // Level 4 + /* 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" + /* 13 */ "......tuuuuuuuu", + + // Connectors: + "-1: 4, 0, 0: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // HouseL13x12 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // MarketStall: + // The data has been exported from the gallery Desert, area index 34, ID 175, created by Aloe_vera + { + // Size: + 7, 5, 7, // SizeX = 7, SizeY = 5, SizeZ = 7 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 6, 4, 6, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 85: 0\n" /* fence */ + "b:171:14\n" /* carpet */ + "c:171:15\n" /* carpet */ + "d:171: 0\n" /* carpet */ + "e: 35:14\n" /* wool */ + "f: 35: 0\n" /* wool */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 0123456 */ + /* 0 */ "a.....a" + /* 1 */ "bccdccb" + /* 2 */ "bcdddcb" + /* 3 */ "bcdddcb" + /* 4 */ "bccdccb" + /* 5 */ "a.....a" + /* 6 */ "......." + + // Level 1 + /* z\x* 0123456 */ + /* 0 */ "a.....a" + /* 1 */ "......." + /* 2 */ "......." + /* 3 */ "......." + /* 4 */ "......." + /* 5 */ "a.....a" + /* 6 */ "......." + + // Level 2 + /* z\x* 0123456 */ + /* 0 */ "a.....a" + /* 1 */ "......." + /* 2 */ "......." + /* 3 */ "......." + /* 4 */ "......." + /* 5 */ "a.....a" + /* 6 */ "efefefe" + + // Level 3 + /* z\x* 0123456 */ + /* 0 */ "efefefe" + /* 1 */ "......." + /* 2 */ "......." + /* 3 */ "......." + /* 4 */ "......." + /* 5 */ "efefefe" + /* 6 */ "......." + + // Level 4 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ "efefefe" + /* 2 */ "efefefe" + /* 3 */ "efefefe" + /* 4 */ "efefefe" + /* 5 */ "......." + /* 6 */ ".......", + + // Connectors: + "-1: 2, -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, + }, // MarketStall + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Marketplace: + // The data has been exported from the gallery Desert, area index 38, ID 261, created by Aloe_vera + { + // Size: + 14, 4, 16, // SizeX = 14, SizeY = 4, SizeZ = 16 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 13, 3, 15, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 24: 0\n" /* sandstone */ + "b: 12: 0\n" /* sand */ + "c: 24: 2\n" /* sandstone */ + "d: 12: 2\n" /* sand */ + "e: 85: 0\n" /* fence */ + "f: 5: 0\n" /* wood */ + "g:128: 2\n" /* sandstonestairs */ + "h:128: 0\n" /* sandstonestairs */ + "i: 8: 0\n" /* water */ + "j:128: 1\n" /* sandstonestairs */ + "k:128: 3\n" /* sandstonestairs */ + "l: 35: 0\n" /* wool */ + "m: 19: 0\n" /* sponge */ + "n: 35:14\n" /* wool */, + + // Block data: + // Level 0 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "aaaabbbaaabbbb" + /* 1 */ "aaaabbaabbabbb" + /* 2 */ "aababbabcabbbb" + /* 3 */ "aaaaabaaaaabbb" + /* 4 */ "bbbbbbbbbbbbbb" + /* 5 */ "bbbbbbbbbbaabb" + /* 6 */ "bbbbccccbbabab" + /* 7 */ "ccbbccccbbaaab" + /* 8 */ "ccbbccccbbabbb" + /* 9 */ "dcbbccccbbabaa" + /* 10 */ "ccbbbbbbbbaaba" + /* 11 */ "ccbbbbbbbbabaa" + /* 12 */ "bbbbbbbbbbabaa" + /* 13 */ "bbbaababbbaaba" + /* 14 */ "bbbcaaaabbabbb" + /* 15 */ "bbbcccabbbabbb" + + // Level 1 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "e...e.e...e..." + /* 1 */ ".............." + /* 2 */ ".............." + /* 3 */ "fffff.fffff..." + /* 4 */ ".............." + /* 5 */ "..........f..e" + /* 6 */ "....gggg..f..." + /* 7 */ ".f..hiij..f..." + /* 8 */ ".f..hiij..f..." + /* 9 */ ".f..kkkk..f..e" + /* 10 */ ".f............" + /* 11 */ ".f........f..e" + /* 12 */ "...fffff..f..." + /* 13 */ "..........f..." + /* 14 */ "..........f..." + /* 15 */ "...e...e..f..e" + + // Level 2 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "lnlnl.lnlnl..." + /* 1 */ ".............." + /* 2 */ ".............." + /* 3 */ "e...e.e...e..." + /* 4 */ ".............." + /* 5 */ "..........e..l" + /* 6 */ ".............n" + /* 7 */ ".e...........l" + /* 8 */ ".............n" + /* 9 */ "..........e..l" + /* 10 */ ".............." + /* 11 */ ".e........e..l" + /* 12 */ "...e...e.....n" + /* 13 */ ".............l" + /* 14 */ ".............n" + /* 15 */ "...lnlnl..e..l" + + // Level 3 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ ".............." + /* 1 */ "lnlnl.lnlnl..." + /* 2 */ "lnlnl.lnlnl..." + /* 3 */ "lnlnl.lnlnl..." + /* 4 */ ".............." + /* 5 */ "..........lll." + /* 6 */ "..........nnn." + /* 7 */ "ll........lll." + /* 8 */ "nn........nnn." + /* 9 */ "ll........lll." + /* 10 */ "nn............" + /* 11 */ "ll........lll." + /* 12 */ "...lnlnl..nnn." + /* 13 */ "...lnlnl..lll." + /* 14 */ "...lnlnl..nnn." + /* 15 */ "..........lll.", + + // Connectors: + "-1: 5, 0, 0: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // Marketplace +}; // g_SandFlatRoofVillagePrefabs + + + + + + +const cPrefab::sDef g_SandFlatRoofVillageStartingPrefabs[] = +{ + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Well: + // The data has been exported from the gallery Desert, area index 44, ID 275, created by Aloe_vera + { + // Size: + 5, 16, 5, // SizeX = 5, SizeY = 16, SizeZ = 5 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 4, 15, 4, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 1: 0\n" /* stone */ + "b: 24: 0\n" /* sandstone */ + "c: 8: 0\n" /* water */ + "d:128: 2\n" /* sandstonestairs */ + "e:128: 0\n" /* sandstonestairs */ + "f:128: 1\n" /* sandstonestairs */ + "g:128: 3\n" /* sandstonestairs */ + "h:128: 6\n" /* sandstonestairs */ + "i:128: 4\n" /* sandstonestairs */ + "j:128: 5\n" /* sandstonestairs */ + "k:128: 7\n" /* sandstonestairs */ + "l: 44: 1\n" /* step */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 01234 */ + /* 0 */ "aaaaa" + /* 1 */ "abbba" + /* 2 */ "abbba" + /* 3 */ "abbba" + /* 4 */ "aaaaa" + + // Level 1 + /* z\x* 01234 */ + /* 0 */ "bbbbb" + /* 1 */ "bcccb" + /* 2 */ "bcccb" + /* 3 */ "bcccb" + /* 4 */ "bbbbb" + + // Level 2 + /* z\x* 01234 */ + /* 0 */ "bbbbb" + /* 1 */ "bcccb" + /* 2 */ "bcccb" + /* 3 */ "bcccb" + /* 4 */ "bbbbb" + + // Level 3 + /* z\x* 01234 */ + /* 0 */ "bbbbb" + /* 1 */ "bcccb" + /* 2 */ "bcccb" + /* 3 */ "bcccb" + /* 4 */ "bbbbb" + + // Level 4 + /* z\x* 01234 */ + /* 0 */ "bbbbb" + /* 1 */ "bcccb" + /* 2 */ "bcccb" + /* 3 */ "bcccb" + /* 4 */ "bbbbb" + + // Level 5 + /* z\x* 01234 */ + /* 0 */ "bbbbb" + /* 1 */ "bcccb" + /* 2 */ "bcccb" + /* 3 */ "bcccb" + /* 4 */ "bbbbb" + + // Level 6 + /* z\x* 01234 */ + /* 0 */ "bbbbb" + /* 1 */ "bcccb" + /* 2 */ "bcccb" + /* 3 */ "bcccb" + /* 4 */ "bbbbb" + + // Level 7 + /* z\x* 01234 */ + /* 0 */ "bbbbb" + /* 1 */ "bcccb" + /* 2 */ "bcccb" + /* 3 */ "bcccb" + /* 4 */ "bbbbb" + + // Level 8 + /* z\x* 01234 */ + /* 0 */ "bbbbb" + /* 1 */ "bcbcb" + /* 2 */ "bbcbb" + /* 3 */ "bcbcb" + /* 4 */ "bbbbb" + + // Level 9 + /* z\x* 01234 */ + /* 0 */ "bbbbb" + /* 1 */ "bcbcb" + /* 2 */ "bbbbb" + /* 3 */ "bcbcb" + /* 4 */ "bbbbb" + + // Level 10 + /* z\x* 01234 */ + /* 0 */ "bbbbb" + /* 1 */ "bcbcb" + /* 2 */ "bbbbb" + /* 3 */ "bcbcb" + /* 4 */ "bbbbb" + + // Level 11 + /* z\x* 01234 */ + /* 0 */ "ddddd" + /* 1 */ "ecccf" + /* 2 */ "ecbcf" + /* 3 */ "ecccf" + /* 4 */ "ggggf" + + // Level 12 + /* z\x* 01234 */ + /* 0 */ "....." + /* 1 */ "....." + /* 2 */ "..b.." + /* 3 */ "....." + /* 4 */ "....." + + // Level 13 + /* z\x* 01234 */ + /* 0 */ "....." + /* 1 */ "....." + /* 2 */ "..b.." + /* 3 */ "....." + /* 4 */ "....." + + // Level 14 + /* z\x* 01234 */ + /* 0 */ "....." + /* 1 */ ".hhh." + /* 2 */ ".ibj." + /* 3 */ ".kkj." + /* 4 */ "....." + + // Level 15 + /* z\x* 01234 */ + /* 0 */ "lllll" + /* 1 */ "lllll" + /* 2 */ "lllll" + /* 3 */ "lllll" + /* 4 */ "lllll", + + // Connectors: + "2: 4, 11, 2: 5\n" /* Type 2, direction X+ */ + "2: 2, 11, 4: 3\n" /* Type 2, direction Z+ */ + "2: 0, 11, 2: 4\n" /* Type 2, direction X- */ + "2: 2, 11, 0: 2\n" /* Type 2, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // Well +}; + + + + + +// The prefab counts: + +const size_t g_SandFlatRoofVillagePrefabsCount = ARRAYCOUNT(g_SandFlatRoofVillagePrefabs); + +const size_t g_SandFlatRoofVillageStartingPrefabsCount = ARRAYCOUNT(g_SandFlatRoofVillageStartingPrefabs); + diff --git a/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.h b/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.h new file mode 100644 index 000000000..ea06de5b5 --- /dev/null +++ b/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.h @@ -0,0 +1,15 @@ + +// SandFlatRoofVillagePrefabs.h + +// Declares the prefabs in the group SandFlatRoofVillage + +#include "../Prefab.h" + + + + + +extern const cPrefab::sDef g_SandFlatRoofVillagePrefabs[]; +extern const cPrefab::sDef g_SandFlatRoofVillageStartingPrefabs[]; +extern const size_t g_SandFlatRoofVillagePrefabsCount; +extern const size_t g_SandFlatRoofVillageStartingPrefabsCount; diff --git a/src/Generating/VillageGen.cpp b/src/Generating/VillageGen.cpp index 520d63029..862aa966f 100644 --- a/src/Generating/VillageGen.cpp +++ b/src/Generating/VillageGen.cpp @@ -7,6 +7,7 @@ #include "VillageGen.h" #include "Prefabs/PlainsVillagePrefabs.h" #include "Prefabs/SandVillagePrefabs.h" +#include "Prefabs/SandFlatRoofVillagePrefabs.h" #include "PieceGenerator.h" @@ -25,8 +26,8 @@ the roads and houses are then used as the following pieces. Only the houses are though, the roads are generated by code and their content is ignored. A special subclass of the cPiecePool class is used, so that the roads connect to each other and to the well only in predefined manners. -The well has connectors of type "1". The houses have connectors of type "-1". The roads have connectors of -both types, type "-1" at the far ends and type "1" on the long edges. +The well has connectors of type "2". The houses have connectors of type "-1". The roads have connectors of +both types' opposites, type "-2" at the far ends and type "1" on the long edges. When the village is about to be drawn into a chunk, it queries the heights for each piece intersecting the chunk. The pieces are shifted so that their pivot points lie on the surface, and the roads are drawn @@ -220,7 +221,10 @@ protected: // cVillageGen: /** The prefabs for the sand village. */ -static cVillagePiecePool g_SandVillage (g_SandVillagePrefabs, g_SandVillagePrefabsCount, g_SandVillageStartingPrefabs, g_SandVillageStartingPrefabsCount); +static cVillagePiecePool g_SandVillage(g_SandVillagePrefabs, g_SandVillagePrefabsCount, g_SandVillageStartingPrefabs, g_SandVillageStartingPrefabsCount); + +/** The prefabs for the flat-roofed sand village. */ +static cVillagePiecePool g_SandFlatRoofVillage(g_SandFlatRoofVillagePrefabs, g_SandFlatRoofVillagePrefabsCount, g_SandFlatRoofVillageStartingPrefabs, g_SandFlatRoofVillageStartingPrefabsCount); /** The prefabs for the plains village. */ static cVillagePiecePool g_PlainsVillage(g_PlainsVillagePrefabs, g_PlainsVillagePrefabsCount, g_PlainsVillageStartingPrefabs, g_PlainsVillageStartingPrefabsCount); @@ -254,6 +258,7 @@ cGridStructGen::cStructurePtr cVillageGen::CreateStructure(int a_OriginX, int a_ // If just one is not, no village is created, because it's likely that an unfriendly biome is too close cVillagePiecePool * VillagePrefabs = NULL; BLOCKTYPE RoadBlock = E_BLOCK_GRAVEL; + int rnd = (a_OriginX + 21 * a_OriginZ + 985) / 11; for (size_t i = 0; i < ARRAYCOUNT(Biomes); i++) { switch (Biomes[i]) @@ -262,7 +267,7 @@ cGridStructGen::cStructurePtr cVillageGen::CreateStructure(int a_OriginX, int a_ case biDesertM: { // These biomes allow sand villages - VillagePrefabs = &g_SandVillage; + VillagePrefabs = (rnd % 2 == 0) ? &g_SandVillage : &g_SandFlatRoofVillage; RoadBlock = E_BLOCK_SANDSTONE; break; } -- cgit v1.2.3 From 85fc0dbd97bbf72ba98dfb69351d5c8fa6a8ddfd Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Wed, 21 May 2014 23:17:09 +0200 Subject: Changed desert village roads to gravel. --- src/Generating/VillageGen.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/Generating') diff --git a/src/Generating/VillageGen.cpp b/src/Generating/VillageGen.cpp index 862aa966f..a899d5837 100644 --- a/src/Generating/VillageGen.cpp +++ b/src/Generating/VillageGen.cpp @@ -268,7 +268,7 @@ cGridStructGen::cStructurePtr cVillageGen::CreateStructure(int a_OriginX, int a_ { // These biomes allow sand villages VillagePrefabs = (rnd % 2 == 0) ? &g_SandVillage : &g_SandFlatRoofVillage; - RoadBlock = E_BLOCK_SANDSTONE; + // RoadBlock = E_BLOCK_SANDSTONE; break; } case biPlains: -- cgit v1.2.3 From ebb1ef237a23ca1bd381afe0a19178e1c1af62ca Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Thu, 22 May 2014 08:57:57 +0200 Subject: Updated plains village prefabs. The DoublePlantBed had sponges in wrong places, plus a few cosmetic fixes. --- src/Generating/Prefabs/PlainsVillagePrefabs.cpp | 87 ++++++++++++------------- 1 file changed, 43 insertions(+), 44 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp index 863720ab4..22aae5958 100644 --- a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp +++ b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp @@ -302,28 +302,28 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // Level 0 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "aaaaaaamaaaaaaa" - /* 1 */ "abbcbbamabbcbba" - /* 2 */ "abbcbbamabbcbba" - /* 3 */ "abbcbbamabbcbba" - /* 4 */ "abbcbbamabbcbba" - /* 5 */ "abbcbbamabbcbba" - /* 6 */ "abbcbbamabbcbba" - /* 7 */ "abbcbbamabbcbba" - /* 8 */ "aaaaaaamaaaaaaa" + /* 0 */ "aaaaaaa.aaaaaaa" + /* 1 */ "abbcbba.abbcbba" + /* 2 */ "abbcbba.abbcbba" + /* 3 */ "abbcbba.abbcbba" + /* 4 */ "abbcbba.abbcbba" + /* 5 */ "abbcbba.abbcbba" + /* 6 */ "abbcbba.abbcbba" + /* 7 */ "abbcbba.abbcbba" + /* 8 */ "aaaaaaa.aaaaaaa" // Level 1 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "dmmmmmdmdmmmmmd" - /* 1 */ "meemeemmmeemeem" - /* 2 */ "memmmemmmeemeem" - /* 3 */ "memmmmmmmeemeem" - /* 4 */ "meemmemmmeemeem" - /* 5 */ "meemmemmmeemeem" - /* 6 */ "mmemmemmmeemeem" - /* 7 */ "mmememmmmeemeem" - /* 8 */ "dmmmmmdmdmmmmmd", + /* 0 */ "d.....d.d.....d" + /* 1 */ ".ee.ee...ee.ee." + /* 2 */ ".e...e...ee.ee." + /* 3 */ ".e.......ee.ee." + /* 4 */ ".ee..e...ee.ee." + /* 5 */ ".ee..e...ee.ee." + /* 6 */ "..e..e...ee.ee." + /* 7 */ "..e.e....ee.ee." + /* 8 */ "d.....d.d.....d", // Connectors: "-1: 7, 0, 8: 3\n" /* Type -1, direction Z+ */, @@ -779,7 +779,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 8 */ "uh...hv" /* 9 */ "uh...hv" /* 10 */ "uh...hv" - /* 11 */ "ughhhhv" + /* 11 */ "ughhhgv" /* 12 */ "uw...xv" // Level 6 @@ -901,7 +901,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 2 */ "uhDDDhv" /* 3 */ "uhDDDhv" /* 4 */ "uhDDDhv" - /* 5 */ "uhhhhhv" + /* 5 */ "ughhhgv" /* 6 */ "uw...xv" /* 7 */ "......." /* 8 */ "......." @@ -1893,16 +1893,15 @@ 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: 0\n" /* wooddoorblock */ "p:102: 0\n" /* glasspane */ "q: 72: 0\n" /* woodplate */ - "r: 64:12\n" /* wooddoorblock */ - "s: 64: 8\n" /* wooddoorblock */ - "t: 53: 5\n" /* woodstairs */ - "u: 53: 4\n" /* woodstairs */ - "v: 50: 1\n" /* torch */ - "w: 50: 2\n" /* torch */, + "r: 64: 8\n" /* wooddoorblock */ + "s: 53: 5\n" /* woodstairs */ + "t: 53: 4\n" /* woodstairs */ + "u: 50: 1\n" /* torch */ + "v: 50: 2\n" /* torch */, // Block data: // Level 0 @@ -1973,7 +1972,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 2 */ ".p.q.pmmmm" /* 3 */ ".p...p...." /* 4 */ ".d...d...." - /* 5 */ ".r...s...." + /* 5 */ ".r...r...." /* 6 */ ".d...d...." /* 7 */ ".p...p...." /* 8 */ ".p...p...." @@ -1983,22 +1982,22 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // Level 5 /* z\x* */ /* * 0123456789 */ - /* 0 */ "lt...ujmmm" + /* 0 */ "ls...tjmmm" /* 1 */ "lidddijmmm" /* 2 */ "ld...djmmm" /* 3 */ "ld...dj..." - /* 4 */ "ldv.wdj..." + /* 4 */ "ldu.vdj..." /* 5 */ "ld...dj..." - /* 6 */ "ldv.wdj..." + /* 6 */ "ldu.vdj..." /* 7 */ "ld...dj..." /* 8 */ "ld...dj..." /* 9 */ "lidddijmmm" - /* 10 */ "lt...ujmmm" + /* 10 */ "ls...tjmmm" // Level 6 /* z\x* */ /* * 0123456789 */ - /* 0 */ "mlt.ujmmmm" + /* 0 */ "mls.tjmmmm" /* 1 */ "mldddjmmmm" /* 2 */ "mld.djmmmm" /* 3 */ "mld.djm..." @@ -2008,7 +2007,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 7 */ "mld.djm..." /* 8 */ "mld.djm..." /* 9 */ "mldddjmmmm" - /* 10 */ "mlt.ujmmmm" + /* 10 */ "mls.tjmmmm" // Level 7 /* z\x* */ @@ -3052,16 +3051,16 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 3 */ "lllllllllllll..." /* 4 */ "eeeeeeeeeeeen..." /* 5 */ "qqqqqqqqqqren..." - /* 6 */ "mmmmmmmmmmren..." - /* 7 */ "mmmmmmmmmmren..." - /* 8 */ "mmmmmmmmmmren..." - /* 9 */ "mmmmmmmmmmren..." - /* 10 */ "mmmmmmmmmmren..." - /* 11 */ "mmmmmmmmmmren..." - /* 12 */ "mmmmmmmmmmren..." - /* 13 */ "mmmmmmmmmmren..." - /* 14 */ "mmmmmmmmmmren..." - /* 15 */ "mmmmmmmmmmren...", + /* 6 */ "..........ren..." + /* 7 */ "..........ren..." + /* 8 */ "mmmmmmmm..ren..." + /* 9 */ "mmmmmmmm..ren..." + /* 10 */ "mmmmmmmm..ren..." + /* 11 */ "mmmmmmmm..ren..." + /* 12 */ "mmmmmmmm..ren..." + /* 13 */ "mmmmmmmm..ren..." + /* 14 */ "mmmmmmmm..ren..." + /* 15 */ "mmmmmmmm..ren...", // Connectors: "-1: 9, 0, 0: 2\n" /* Type -1, direction Z- */, -- cgit v1.2.3 From 6aa7df367f8db7506a8a5ab853c26e3c9fd60253 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Thu, 22 May 2014 21:47:56 +0200 Subject: Villages have min and max density setting. Also made roads use 3+9 scheme, instead of 3+5, for the house connectors. Fixes #1020. --- src/Generating/ComposableGenerator.cpp | 10 ++-- src/Generating/PieceGenerator.cpp | 9 ++++ src/Generating/PieceGenerator.h | 5 ++ src/Generating/VillageGen.cpp | 92 +++++++++++++++++++++++++++++----- src/Generating/VillageGen.h | 11 +++- 5 files changed, 110 insertions(+), 17 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/ComposableGenerator.cpp b/src/Generating/ComposableGenerator.cpp index f264599c9..4dd626ed4 100644 --- a/src/Generating/ComposableGenerator.cpp +++ b/src/Generating/ComposableGenerator.cpp @@ -408,10 +408,12 @@ void cComposableGenerator::InitFinishGens(cIniFile & a_IniFile) } else if (NoCaseCompare(*itr, "Villages") == 0) { - int GridSize = a_IniFile.GetValueSetI("Generator", "VillageGridSize", 384); - int MaxDepth = a_IniFile.GetValueSetI("Generator", "VillageMaxDepth", 3); - int MaxSize = a_IniFile.GetValueSetI("Generator", "VillageMaxSize", 128); - m_FinishGens.push_back(new cVillageGen(Seed, GridSize, MaxDepth, MaxSize, *m_BiomeGen, *m_HeightGen)); + int GridSize = a_IniFile.GetValueSetI("Generator", "VillageGridSize", 384); + int MaxDepth = a_IniFile.GetValueSetI("Generator", "VillageMaxDepth", 2); + int MaxSize = a_IniFile.GetValueSetI("Generator", "VillageMaxSize", 128); + int MinDensity = a_IniFile.GetValueSetI("Generator", "VillageMinDensity", 50); + int MaxDensity = a_IniFile.GetValueSetI("Generator", "VillageMaxDensity", 80); + m_FinishGens.push_back(new cVillageGen(Seed, GridSize, MaxDepth, MaxSize, MinDensity, MaxDensity, *m_BiomeGen, *m_HeightGen)); } else if (NoCaseCompare(*itr, "WaterLakes") == 0) { diff --git a/src/Generating/PieceGenerator.cpp b/src/Generating/PieceGenerator.cpp index c12559d3f..7d478f1a1 100644 --- a/src/Generating/PieceGenerator.cpp +++ b/src/Generating/PieceGenerator.cpp @@ -308,6 +308,15 @@ cPiece::cConnector cPlacedPiece::GetRotatedConnector(size_t a_Index) const +cPiece::cConnector cPlacedPiece::GetRotatedConnector(const cPiece::cConnector & a_Connector) const +{ + return m_Piece->RotateMoveConnector(a_Connector, m_NumCCWRotations, m_Coords.x, m_Coords.y, m_Coords.z); +} + + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // cPieceGenerator: diff --git a/src/Generating/PieceGenerator.h b/src/Generating/PieceGenerator.h index 643ca58b6..e396643a9 100644 --- a/src/Generating/PieceGenerator.h +++ b/src/Generating/PieceGenerator.h @@ -110,6 +110,7 @@ public: virtual cPieces GetStartingPieces(void) = 0; /** Returns the relative weight with which the a_NewPiece is to be selected for placing under a_PlacedPiece through a_ExistingConnector. + a_ExistingConnector is the original connector, before any movement or rotation is applied to it. This allows the pool to tweak the piece's chances, based on the previous pieces in the tree and the connector used. The higher the number returned, the higher the chance the piece will be chosen. 0 means the piece will never be chosen. */ @@ -151,6 +152,10 @@ public: Undefined behavior if a_Index is out of range. */ cPiece::cConnector GetRotatedConnector(size_t a_Index) const; + /** Returns a copy of the specified connector, modified to account for the translation and rotation for + this placement. */ + cPiece::cConnector GetRotatedConnector(const cPiece::cConnector & a_Connector) const; + protected: const cPlacedPiece * m_Parent; const cPiece * m_Piece; diff --git a/src/Generating/VillageGen.cpp b/src/Generating/VillageGen.cpp index a899d5837..bcce62af5 100644 --- a/src/Generating/VillageGen.cpp +++ b/src/Generating/VillageGen.cpp @@ -27,11 +27,16 @@ though, the roads are generated by code and their content is ignored. A special class is used, so that the roads connect to each other and to the well only in predefined manners. The well has connectors of type "2". The houses have connectors of type "-1". The roads have connectors of -both types' opposites, type "-2" at the far ends and type "1" on the long edges. +both types' opposites, type "-2" at the far ends and type "1" on the long edges. Additionally, there are +type "2" connectors along the long edges of the roads as well, so that the roads create T junctions. When the village is about to be drawn into a chunk, it queries the heights for each piece intersecting the chunk. The pieces are shifted so that their pivot points lie on the surface, and the roads are drawn directly by turning the surface blocks into gravel / sandstone. + +The village prefabs are stored in global piecepools (one pool per village type). In order to support +per-village density setting, the cVillage class itself implements the cPiecePool interface, relaying the +calls to the underlying cVillagePiecePool, after processing the density check. */ class cVillagePiecePool : @@ -46,7 +51,7 @@ public: super(a_PieceDefs, a_NumPieceDefs, a_StartingPieceDefs, a_NumStartingPieceDefs) { // Add the road pieces: - for (int len = 19; len < 60; len += 8) + for (int len = 27; len < 60; len += 12) { cBlockArea BA; BA.Create(len, 1, 3, cBlockArea::baTypes | cBlockArea::baMetas); @@ -56,14 +61,14 @@ public: RoadPiece->AddConnector(len - 1, 0, 1, BLOCK_FACE_XP, -2); // Add the road connectors: - for (int x = 1; x < len; x += 8) + for (int x = 1; x < len; x += 12) { RoadPiece->AddConnector(x, 0, 0, BLOCK_FACE_ZM, 2); RoadPiece->AddConnector(x, 0, 2, BLOCK_FACE_ZP, 2); } // Add the buildings connectors: - for (int x = 5; x < len; x += 8) + for (int x = 7; x < len; x += 12) { RoadPiece->AddConnector(x, 0, 0, BLOCK_FACE_ZM, 1); RoadPiece->AddConnector(x, 0, 2, BLOCK_FACE_ZP, 1); @@ -94,7 +99,8 @@ public: class cVillageGen::cVillage : - public cGridStructGen::cStructure + public cGridStructGen::cStructure, + protected cPiecePool { typedef cGridStructGen::cStructure super; @@ -104,7 +110,8 @@ public: int a_OriginX, int a_OriginZ, int a_MaxRoadDepth, int a_MaxSize, - cPrefabPiecePool & a_Prefabs, + int a_Density, + cPiecePool & a_Prefabs, cTerrainHeightGen & a_HeightGen, BLOCKTYPE a_RoadBlock ) : @@ -112,12 +119,13 @@ public: m_Seed(a_Seed), m_Noise(a_Seed), m_MaxSize(a_MaxSize), + m_Density(a_Density), m_Borders(a_OriginX - a_MaxSize, 0, a_OriginZ - a_MaxSize, a_OriginX + a_MaxSize, 255, a_OriginZ + a_MaxSize), m_Prefabs(a_Prefabs), m_HeightGen(a_HeightGen), m_RoadBlock(a_RoadBlock) { - cBFSPieceGenerator pg(m_Prefabs, a_Seed); + cBFSPieceGenerator pg(*this, a_Seed); // Generate the pieces at very negative Y coords, so that we can later test // Piece has negative Y coord -> hasn't been height-adjusted yet pg.PlacePieces(a_OriginX, -1000, a_OriginZ, a_MaxRoadDepth + 1, m_Pieces); @@ -133,11 +141,14 @@ protected: /** Maximum size, in X/Z blocks, of the village (radius from the origin) */ int m_MaxSize; + /** The density for this village. Used to refrain from populating all house connectors. Range [0, 100] */ + int m_Density; + /** Borders of the vilalge - no item may reach out of this cuboid. */ cCuboid m_Borders; /** Prefabs to use for buildings */ - cPrefabPiecePool & m_Prefabs; + cPiecePool & m_Prefabs; /** The underlying height generator, used for placing the structures on top of the terrain. */ cTerrainHeightGen & m_HeightGen; @@ -149,7 +160,7 @@ protected: BLOCKTYPE m_RoadBlock; - // cGrdStructGen::cStructure overrides: + // cGridStructGen::cStructure overrides: virtual void DrawIntoChunk(cChunkDesc & a_Chunk) override { // Iterate over all items @@ -211,6 +222,49 @@ protected: } } } + + + // cPiecePool overrides: + virtual cPieces GetPiecesWithConnector(int a_ConnectorType) + { + return m_Prefabs.GetPiecesWithConnector(a_ConnectorType); + } + + virtual cPieces GetStartingPieces(void) + { + return m_Prefabs.GetStartingPieces(); + } + + virtual int GetPieceWeight( + const cPlacedPiece & a_PlacedPiece, + const cPiece::cConnector & a_ExistingConnector, + const cPiece & a_NewPiece + ) override + { + // Check against the density: + if (a_ExistingConnector.m_Type == 1) + { + const Vector3i & Coords = a_PlacedPiece.GetRotatedConnector(a_ExistingConnector).m_Pos; + int rnd = (m_Noise.IntNoise3DInt(Coords.x, Coords.y, Coords.z) / 7) % 100; + if (rnd > m_Density) + { + return 0; + } + } + + // Density check passed, relay to m_Prefabs: + return m_Prefabs.GetPieceWeight(a_PlacedPiece, a_ExistingConnector, a_NewPiece); + } + + virtual void PiecePlaced(const cPiece & a_Piece) override + { + m_Prefabs.PiecePlaced(a_Piece); + } + + virtual void Reset(void) override + { + m_Prefabs.Reset(); + } } ; @@ -233,10 +287,13 @@ static cVillagePiecePool g_PlainsVillage(g_PlainsVillagePrefabs, g_PlainsVillage -cVillageGen::cVillageGen(int a_Seed, int a_GridSize, int a_MaxDepth, int a_MaxSize, cBiomeGen & a_BiomeGen, cTerrainHeightGen & a_HeightGen) : +cVillageGen::cVillageGen(int a_Seed, int a_GridSize, int a_MaxDepth, int a_MaxSize, int a_MinDensity, int a_MaxDensity, cBiomeGen & a_BiomeGen, cTerrainHeightGen & a_HeightGen) : super(a_Seed, a_GridSize, a_GridSize, a_MaxSize, a_MaxSize, 100), + m_Noise(a_Seed + 1000), m_MaxDepth(a_MaxDepth), m_MaxSize(a_MaxSize), + m_MinDensity(a_MinDensity), + m_MaxDensity(a_MaxDensity), m_BiomeGen(a_BiomeGen), m_HeightGen(a_HeightGen) { @@ -258,7 +315,7 @@ cGridStructGen::cStructurePtr cVillageGen::CreateStructure(int a_OriginX, int a_ // If just one is not, no village is created, because it's likely that an unfriendly biome is too close cVillagePiecePool * VillagePrefabs = NULL; BLOCKTYPE RoadBlock = E_BLOCK_GRAVEL; - int rnd = (a_OriginX + 21 * a_OriginZ + 985) / 11; + int rnd = m_Noise.IntNoise2DInt(a_OriginX, a_OriginZ) / 11; for (size_t i = 0; i < ARRAYCOUNT(Biomes); i++) { switch (Biomes[i]) @@ -288,12 +345,23 @@ cGridStructGen::cStructurePtr cVillageGen::CreateStructure(int a_OriginX, int a_ } // switch (Biomes[i]) } // for i - Biomes[] + // Choose density for the village, random between m_MinDensity and m_MaxDensity: + int Density; + if (m_MaxDensity > m_MinDensity) + { + Density = m_MinDensity + rnd % (m_MaxDensity - m_MinDensity); + } + else + { + Density = m_MinDensity; + } + // Create a village based on the chosen prefabs: if (VillagePrefabs == NULL) { return cStructurePtr(); } - return cStructurePtr(new cVillage(m_Seed, a_OriginX, a_OriginZ, m_MaxDepth, m_MaxSize, *VillagePrefabs, m_HeightGen, RoadBlock)); + return cStructurePtr(new cVillage(m_Seed, a_OriginX, a_OriginZ, m_MaxDepth, m_MaxSize, Density, *VillagePrefabs, m_HeightGen, RoadBlock)); } diff --git a/src/Generating/VillageGen.h b/src/Generating/VillageGen.h index c6f8f024a..5faaae8a6 100644 --- a/src/Generating/VillageGen.h +++ b/src/Generating/VillageGen.h @@ -21,16 +21,25 @@ class cVillageGen : { typedef cGridStructGen super; public: - cVillageGen(int a_Seed, int a_GridSize, int a_MaxDepth, int a_MaxSize, cBiomeGen & a_BiomeGen, cTerrainHeightGen & a_HeightGen); + cVillageGen(int a_Seed, int a_GridSize, int a_MaxDepth, int a_MaxSize, int a_MinDensity, int a_MaxDensity, cBiomeGen & a_BiomeGen, cTerrainHeightGen & a_HeightGen); protected: class cVillage; // fwd: VillageGen.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 village (radius from the origin) */ int m_MaxSize; + + /** Minimum density - percentage of allowed house connections. Range [0, 100] */ + int m_MinDensity; + + /** Maximum density - percentage of allowed house connections. Range [0, 100] */ + int m_MaxDensity; /** The underlying biome generator that defines whether the village is created or not */ cBiomeGen & m_BiomeGen; -- cgit v1.2.3 From da843a18811546ca51600a0f3e4438ae4ac5dee8 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Thu, 22 May 2014 22:19:44 +0200 Subject: Updated plains village prefabs. Expanded the hitboxes so that houses don't touch each other. Fixed minor visual defects. --- src/Generating/Prefabs/PlainsVillagePrefabs.cpp | 357 ++++++++++++------------ 1 file changed, 171 insertions(+), 186 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp index 22aae5958..28488be14 100644 --- a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp +++ b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp @@ -135,8 +135,8 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = 12, 8, 7, // SizeX = 12, SizeY = 8, SizeZ = 7 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 11, 7, 6, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 12, 7, 7, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -357,8 +357,8 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = 12, 10, 11, // SizeX = 12, SizeY = 10, SizeZ = 11 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 11, 9, 10, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 12, 9, 11, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -649,8 +649,8 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = 7, 16, 13, // SizeX = 7, SizeY = 16, SizeZ = 13 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 6, 15, 12, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 7, 15, 13, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -974,8 +974,8 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = 7, 8, 9, // SizeX = 7, SizeY = 8, SizeZ = 9 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 6, 7, 8, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 7, 7, 9, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -1127,8 +1127,8 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = 12, 9, 9, // SizeX = 12, SizeY = 9, SizeZ = 9 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 11, 8, 8, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 12, 8, 9, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -1308,8 +1308,8 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = 7, 8, 7, // SizeX = 7, SizeY = 8, SizeZ = 7 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 6, 7, 6, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 7, 7, 7, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -1444,8 +1444,8 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = 9, 8, 7, // SizeX = 9, SizeY = 8, SizeZ = 7 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 8, 7, 6, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 9, 7, 7, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -1580,8 +1580,8 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = 11, 8, 7, // SizeX = 11, SizeY = 8, SizeZ = 7 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 10, 7, 6, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 11, 7, 7, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -1724,8 +1724,8 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = 11, 8, 7, // SizeX = 11, SizeY = 8, SizeZ = 7 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 10, 7, 6, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 11, 7, 7, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -1872,18 +1872,18 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // The data has been exported from the gallery Plains, area index 9, ID 26, created by Aloe_vera { // Size: - 10, 8, 11, // SizeX = 10, SizeY = 8, SizeZ = 11 + 10, 7, 11, // SizeX = 10, SizeY = 7, SizeZ = 11 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 9, 7, 10, // MaxX, MaxY, MaxZ + 0, -1, -1, // MinX, MinY, MinZ + 10, 6, 11, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 2: 0\n" /* grass */ - "c: 4: 0\n" /* cobblestone */ - "d: 5: 0\n" /* wood */ + "a: 4: 0\n" /* cobblestone */ + "b: 3: 0\n" /* dirt */ + "c: 5: 0\n" /* wood */ + "d: 2: 0\n" /* grass */ "e: 67: 2\n" /* stairs */ "f: 43: 0\n" /* doubleslab */ "g: 67: 0\n" /* stairs */ @@ -1907,125 +1907,110 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // Level 0 /* z\x* */ /* * 0123456789 */ - /* 0 */ "aaaaaaaaaa" - /* 1 */ "aaaaaaaaaa" - /* 2 */ "aaaaaaaaaa" - /* 3 */ "aaaaaaaaaa" - /* 4 */ "aaaaaaaaaa" - /* 5 */ "aaaaaaaaaa" - /* 6 */ "aaaaaaaaaa" - /* 7 */ "aaaaaaaaaa" - /* 8 */ "aaaaaaaaaa" - /* 9 */ "aaaaaaaaaa" - /* 10 */ "aaaaaaaaaa" + /* 0 */ "mmmmmmmmmm" + /* 1 */ "maaaaammmm" + /* 2 */ "maaaaammmm" + /* 3 */ "maaaaabbbb" + /* 4 */ "aaaaaabbbb" + /* 5 */ "aaaaaabbbb" + /* 6 */ "aaaaaabbbb" + /* 7 */ "maaaaabbbb" + /* 8 */ "maaaaabbbb" + /* 9 */ "maaaaammmm" + /* 10 */ "mmmmmmmmmm" // Level 1 /* z\x* */ /* * 0123456789 */ - /* 0 */ "bbbbbbbbbb" - /* 1 */ "baaaaabbbb" - /* 2 */ "baaaaabbbb" - /* 3 */ "baaaaaaaaa" - /* 4 */ "aaaaaaaaaa" - /* 5 */ "aaaaaaaaaa" - /* 6 */ "aaaaaaaaaa" - /* 7 */ "baaaaaaaaa" - /* 8 */ "baaaaaaaaa" - /* 9 */ "baaaaabbbb" - /* 10 */ "bbbbbbbbbb" - - // Level 2 - /* z\x* */ - /* * 0123456789 */ /* 0 */ "......mmmm" - /* 1 */ ".cccccmmmm" - /* 2 */ ".cdddcmmmm" - /* 3 */ ".cdddcbbbb" - /* 4 */ "ecfffcbbbb" - /* 5 */ "gcffffbbbb" - /* 6 */ "hcfffcbbbb" - /* 7 */ ".cfffcbbbb" - /* 8 */ ".cfffcbbbb" - /* 9 */ ".cccccmmmm" + /* 1 */ ".aaaaammmm" + /* 2 */ ".acccammmm" + /* 3 */ ".acccadddd" + /* 4 */ "eafffadddd" + /* 5 */ "gaffffdddd" + /* 6 */ "hafffadddd" + /* 7 */ ".afffadddd" + /* 8 */ ".afffadddd" + /* 9 */ ".aaaaammmm" /* 10 */ "......mmmm" - // Level 3 + // Level 2 /* z\x* */ /* * 0123456789 */ /* 0 */ "......mmmm" - /* 1 */ ".idddimmmm" - /* 2 */ ".djkldmmmm" - /* 3 */ ".d...dkkkk" - /* 4 */ ".d...d...k" + /* 1 */ ".icccimmmm" + /* 2 */ ".cjklcmmmm" + /* 3 */ ".c...ckkkk" + /* 4 */ ".c...c...k" /* 5 */ ".n...o...k" - /* 6 */ ".d...d...k" - /* 7 */ ".dff.d...k" - /* 8 */ ".d...dkkkk" - /* 9 */ ".idddimmmm" + /* 6 */ ".c...c...k" + /* 7 */ ".cff.c...k" + /* 8 */ ".c...ckkkk" + /* 9 */ ".icccimmmm" /* 10 */ "......mmmm" - // Level 4 + // Level 3 /* z\x* */ /* * 0123456789 */ /* 0 */ "......mmmm" /* 1 */ ".ipppimmmm" /* 2 */ ".p.q.pmmmm" /* 3 */ ".p...p...." - /* 4 */ ".d...d...." + /* 4 */ ".c...c...." /* 5 */ ".r...r...." - /* 6 */ ".d...d...." + /* 6 */ ".c...c...." /* 7 */ ".p...p...." /* 8 */ ".p...p...." /* 9 */ ".ipppimmmm" /* 10 */ "......mmmm" - // Level 5 + // Level 4 /* z\x* */ /* * 0123456789 */ /* 0 */ "ls...tjmmm" - /* 1 */ "lidddijmmm" - /* 2 */ "ld...djmmm" - /* 3 */ "ld...dj..." - /* 4 */ "ldu.vdj..." - /* 5 */ "ld...dj..." - /* 6 */ "ldu.vdj..." - /* 7 */ "ld...dj..." - /* 8 */ "ld...dj..." - /* 9 */ "lidddijmmm" + /* 1 */ "licccijmmm" + /* 2 */ "lc...cjmmm" + /* 3 */ "lc...cj..." + /* 4 */ "lcu.vcj..." + /* 5 */ "lc...cj..." + /* 6 */ "lcu.vcj..." + /* 7 */ "lc...cj..." + /* 8 */ "lc...cj..." + /* 9 */ "licccijmmm" /* 10 */ "ls...tjmmm" - // Level 6 + // Level 5 /* z\x* */ /* * 0123456789 */ /* 0 */ "mls.tjmmmm" - /* 1 */ "mldddjmmmm" - /* 2 */ "mld.djmmmm" - /* 3 */ "mld.djm..." - /* 4 */ "mld.djm..." - /* 5 */ "mld.djm..." - /* 6 */ "mld.djm..." - /* 7 */ "mld.djm..." - /* 8 */ "mld.djm..." - /* 9 */ "mldddjmmmm" + /* 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" - // Level 7 + // Level 6 /* z\x* */ /* * 0123456789 */ - /* 0 */ "mmldjmmmmm" - /* 1 */ "mmldjmmmmm" - /* 2 */ "mmldjmmmmm" - /* 3 */ "mmldjmm..." - /* 4 */ "mmldjmm..." - /* 5 */ "mmldjmm..." - /* 6 */ "mmldjmm..." - /* 7 */ "mmldjmm..." - /* 8 */ "mmldjmm..." - /* 9 */ "mmldjmmmmm" - /* 10 */ "mmldjmmmmm", + /* 0 */ "mmlcjmmmmm" + /* 1 */ "mmlcjmmmmm" + /* 2 */ "mmlcjmmmmm" + /* 3 */ "mmlcjmm..." + /* 4 */ "mmlcjmm..." + /* 5 */ "mmlcjmm..." + /* 6 */ "mmlcjmm..." + /* 7 */ "mmlcjmm..." + /* 8 */ "mmlcjmm..." + /* 9 */ "mmlcjmmmmm" + /* 10 */ "mmlcjmmmmm", // Connectors: - "-1: 0, 2, 5: 4\n" /* Type -1, direction X- */, + "-1: 0, 1, 5: 4\n" /* Type -1, direction X- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -2056,8 +2041,8 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = 11, 9, 9, // SizeX = 11, SizeY = 9, SizeZ = 9 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 10, 8, 8, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 11, 8, 9, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -2230,17 +2215,17 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = 11, 9, 13, // SizeX = 11, SizeY = 9, SizeZ = 13 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 10, 8, 12, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 11, 8, 13, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ "a: 3: 0\n" /* dirt */ "b: 2: 0\n" /* grass */ - "c: 67: 0\n" /* stairs */ - "d: 67: 2\n" /* stairs */ - "e: 67: 1\n" /* stairs */ - "f: 4: 0\n" /* cobblestone */ + "c: 4: 0\n" /* cobblestone */ + "d: 67: 0\n" /* stairs */ + "e: 67: 2\n" /* stairs */ + "f: 67: 1\n" /* stairs */ "g: 43: 0\n" /* doubleslab */ "h: 17: 0\n" /* tree */ "i: 5: 0\n" /* wood */ @@ -2262,52 +2247,52 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "aaaaaaaaaaa" - /* 1 */ "aaaaaaaaaaa" - /* 2 */ "aaaaaaaaaaa" - /* 3 */ "aaaaaaaaaaa" - /* 4 */ "aaaaaaaaaaa" + /* 1 */ "aaaaaaaaaab" + /* 2 */ "aaaaaaaaaab" + /* 3 */ "aaaaaaaaaab" + /* 4 */ "aaaaaaaaaab" /* 5 */ "aaaaaaaaaaa" - /* 6 */ "aaaaaaaaaaa" - /* 7 */ "aaaaaaaaaaa" - /* 8 */ "aaaaaaaaaaa" - /* 9 */ "aaaaaaaaaaa" - /* 10 */ "aaaaaaaaaaa" - /* 11 */ "aaaaaaaaaaa" - /* 12 */ "aaaaaaaaaaa" + /* 6 */ "aaaaaaaaaab" + /* 7 */ "aaaaaaaaaab" + /* 8 */ "abaaaaaaabb" + /* 9 */ "aaaaaaaaabb" + /* 10 */ "aaaaaaaaabb" + /* 11 */ "abaaaaaaaba" + /* 12 */ "abaaaaaaabb" // Level 1 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "bbbbaaabbbb" - /* 1 */ "baaaaaaaaab" - /* 2 */ "baaaaaaaaab" - /* 3 */ "baaaaaaaaab" - /* 4 */ "baaaaaaaaab" - /* 5 */ "baaaaaaaaab" - /* 6 */ "baaaaaaaaab" - /* 7 */ "baaaaaaaaab" - /* 8 */ "bbaaaaaaabb" - /* 9 */ "bbaaaaaaabb" - /* 10 */ "bbaaaaaaabb" - /* 11 */ "bbaaaaaaabb" - /* 12 */ "bbaaaaaaabb" + /* 0 */ "mmmmcccmmmm" + /* 1 */ "mcccccccccm" + /* 2 */ "mcccccccccm" + /* 3 */ "mcccccccccm" + /* 4 */ "mcccccccccm" + /* 5 */ "mcccccccccm" + /* 6 */ "mcccccccccm" + /* 7 */ "mcccccccccm" + /* 8 */ "mmaaaaaaamm" + /* 9 */ "mmaaaaaaamm" + /* 10 */ "mmaaaaaaamm" + /* 11 */ "mmaaaaaaamm" + /* 12 */ "mmaaaaaaamm" // Level 2 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "....cde...." - /* 1 */ ".fffffffff." - /* 2 */ ".fggggffff." - /* 3 */ ".fggggffff." - /* 4 */ ".fggggffff." - /* 5 */ ".fggggffff." - /* 6 */ ".fggggffff." - /* 7 */ ".fffffffff." + /* 0 */ "....def...." + /* 1 */ ".ccccccccc." + /* 2 */ ".cggggcccc." + /* 3 */ ".cggggcccc." + /* 4 */ ".cggggcccc." + /* 5 */ ".cggggcccc." + /* 6 */ ".cggggcccc." + /* 7 */ ".ccccccccc." /* 8 */ "..bbbbbbb.." - /* 9 */ "mmbbbbbbbmm" - /* 10 */ "mmbbbbbbbmm" - /* 11 */ "mmbbbbbbbmm" - /* 12 */ "mmbbbbbbbmm" + /* 9 */ "..bbbbbbb.." + /* 10 */ "..bbbbbbb.." + /* 11 */ "..bbbbbbb.." + /* 12 */ "..bbbbbbb.." // Level 3 /* z\x* 1 */ @@ -2321,10 +2306,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 6 */ ".i.......i." /* 7 */ ".hiiijiiih." /* 8 */ "..l.....l.." - /* 9 */ "mml.....lmm" - /* 10 */ "mml.....lmm" - /* 11 */ "mml.....lmm" - /* 12 */ "mmlllllllmm" + /* 9 */ "..l.....l.." + /* 10 */ "..l.....l.." + /* 11 */ "..l.....l.." + /* 12 */ "..lllllll.." // Level 4 /* z\x* 1 */ @@ -2338,10 +2323,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 6 */ ".o.......o." /* 7 */ ".hooipiooh." /* 8 */ "..........." - /* 9 */ "mm.......mm" - /* 10 */ "mm.......mm" - /* 11 */ "mm.......mm" - /* 12 */ "mm.......mm" + /* 9 */ "..........." + /* 10 */ "..........." + /* 11 */ "..........." + /* 12 */ "..........." // Level 5 /* z\x* 1 */ @@ -2355,10 +2340,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 6 */ ".i.......i." /* 7 */ "uiiiiiiiiiu" /* 8 */ "kkkkkkkkkkk" - /* 9 */ "mm.......mm" - /* 10 */ "mm.......mm" - /* 11 */ "mm.......mm" - /* 12 */ "mm.......mm" + /* 9 */ "..........." + /* 10 */ "..........." + /* 11 */ "..........." + /* 12 */ "..........." // Level 6 /* z\x* 1 */ @@ -2372,10 +2357,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 6 */ "uiiiiiiiiiu" /* 7 */ "kkkkkkkkkkk" /* 8 */ "..........." - /* 9 */ "mm.......mm" - /* 10 */ "mm.......mm" - /* 11 */ "mm.......mm" - /* 12 */ "mm.......mm" + /* 9 */ "..........." + /* 10 */ "..........." + /* 11 */ "..........." + /* 12 */ "..........." // Level 7 /* z\x* 1 */ @@ -2389,10 +2374,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 6 */ "kkkkkkkkkkk" /* 7 */ "..........." /* 8 */ "..........." - /* 9 */ "mm.......mm" - /* 10 */ "mm.......mm" - /* 11 */ "mm.......mm" - /* 12 */ "mm.......mm" + /* 9 */ "..........." + /* 10 */ "..........." + /* 11 */ "..........." + /* 12 */ "..........." // Level 8 /* z\x* 1 */ @@ -2406,10 +2391,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 6 */ "..........." /* 7 */ "..........." /* 8 */ "..........." - /* 9 */ "mm.......mm" - /* 10 */ "mm.......mm" - /* 11 */ "mm.......mm" - /* 12 */ "mm.......mm", + /* 9 */ "..........." + /* 10 */ "..........." + /* 11 */ "..........." + /* 12 */ "...........", // Connectors: "-1: 5, 2, 0: 2\n" /* Type -1, direction Z- */, @@ -2443,8 +2428,8 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = 11, 9, 9, // SizeX = 11, SizeY = 9, SizeZ = 9 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 10, 8, 8, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 11, 8, 9, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -2620,8 +2605,8 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = 15, 10, 16, // SizeX = 15, SizeY = 10, SizeZ = 16 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 14, 9, 15, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 15, 9, 16, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -2891,8 +2876,8 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = 16, 7, 16, // SizeX = 16, SizeY = 7, SizeZ = 16 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 15, 6, 15, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 16, 6, 16, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -3094,8 +3079,8 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = 11, 8, 11, // SizeX = 11, SizeY = 8, SizeZ = 11 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 10, 7, 10, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 11, 7, 11, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -3277,8 +3262,8 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = 15, 8, 11, // SizeX = 15, SizeY = 8, SizeZ = 11 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 14, 7, 10, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 15, 7, 11, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -3458,7 +3443,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = 9, 18, 13, // SizeX = 9, SizeY = 18, SizeZ = 13 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ + -1, 0, 0, // MinX, MinY, MinZ 8, 17, 12, // MaxX, MaxY, MaxZ // Block definitions: @@ -3808,8 +3793,8 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = 15, 10, 9, // SizeX = 15, SizeY = 10, SizeZ = 9 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 14, 9, 8, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 15, 9, 9, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ -- cgit v1.2.3 From a4c964c888748e7099308dc56578244112148cdd Mon Sep 17 00:00:00 2001 From: Mattes D Date: Fri, 23 May 2014 13:01:06 +0200 Subject: Auto-enlargement for cGridStructGen cache. --- src/Generating/GridStructGen.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/Generating') diff --git a/src/Generating/GridStructGen.cpp b/src/Generating/GridStructGen.cpp index 3bbc89054..bfa6bccb1 100644 --- a/src/Generating/GridStructGen.cpp +++ b/src/Generating/GridStructGen.cpp @@ -22,6 +22,15 @@ cGridStructGen::cGridStructGen( m_MaxStructureSizeZ(a_MaxStructureSizeZ), m_MaxCacheSize(a_MaxCacheSize) { + size_t NumStructuresPerQuery = (size_t)((m_MaxStructureSizeX / m_GridSizeX + 1) * (m_MaxStructureSizeZ / m_GridSizeZ + 1)); + if (NumStructuresPerQuery > m_MaxCacheSize) + { + m_MaxCacheSize = NumStructuresPerQuery * 4; + LOGINFO( + "cGridStructGen: The cache size is too small (%u), increasing the cache size to %u to avoid inefficiency.", + (unsigned)a_MaxCacheSize, (unsigned)m_MaxCacheSize + ); + } } -- cgit v1.2.3 From 97865bff7ce1595ae43be65082c1a02fed4ea8c4 Mon Sep 17 00:00:00 2001 From: Mattes D Date: Fri, 23 May 2014 13:01:50 +0200 Subject: Fixed Mineshaft system size. --- src/Generating/MineShafts.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/Generating') diff --git a/src/Generating/MineShafts.cpp b/src/Generating/MineShafts.cpp index 391e4c04f..81ae6481d 100644 --- a/src/Generating/MineShafts.cpp +++ b/src/Generating/MineShafts.cpp @@ -1283,7 +1283,7 @@ cStructGenMineShafts::cStructGenMineShafts( int a_Seed, int a_GridSize, int a_MaxSystemSize, int a_ChanceCorridor, int a_ChanceCrossing, int a_ChanceStaircase ) : - super(a_Seed, a_GridSize, a_GridSize, 120 + a_MaxSystemSize * 10, 120 + a_MaxSystemSize * 10, 100), + super(a_Seed, a_GridSize, a_GridSize, a_MaxSystemSize, a_MaxSystemSize, 100), m_Noise(a_Seed), m_GridSize(a_GridSize), m_MaxSystemSize(a_MaxSystemSize), -- cgit v1.2.3 From 96a22cd82c350b1205985a9b8e01f5e6c11f069a Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Sat, 24 May 2014 15:03:39 +0200 Subject: Added Japanese village prefabs. --- src/Generating/Prefab.cpp | 9 + src/Generating/Prefab.h | 3 + src/Generating/Prefabs/JapaneseVillagePrefabs.cpp | 2404 +++++++++++++++++++++ src/Generating/Prefabs/JapaneseVillagePrefabs.h | 15 + src/Generating/VillageGen.cpp | 15 +- 5 files changed, 2442 insertions(+), 4 deletions(-) create mode 100644 src/Generating/Prefabs/JapaneseVillagePrefabs.cpp create mode 100644 src/Generating/Prefabs/JapaneseVillagePrefabs.h (limited to 'src/Generating') diff --git a/src/Generating/Prefab.cpp b/src/Generating/Prefab.cpp index 506e1c2cc..05979507a 100644 --- a/src/Generating/Prefab.cpp +++ b/src/Generating/Prefab.cpp @@ -292,6 +292,15 @@ int cPrefab::GetPieceWeight(const cPlacedPiece & a_PlacedPiece, const cPiece::cC +void cPrefab::SetDefaultWeight(int a_DefaultWeight) +{ + m_DefaultWeight = a_DefaultWeight; +} + + + + + void cPrefab::AddConnector(int a_RelX, int a_RelY, int a_RelZ, eBlockFace a_Direction, int a_Type) { m_Connectors.push_back(cConnector(a_RelX, a_RelY, a_RelZ, a_Type, a_Direction)); diff --git a/src/Generating/Prefab.h b/src/Generating/Prefab.h index 2b89a204c..adc0e688e 100644 --- a/src/Generating/Prefab.h +++ b/src/Generating/Prefab.h @@ -104,6 +104,9 @@ public: PiecePool implementations can use this for their GetPieceWeight() implementations. */ int GetPieceWeight(const cPlacedPiece & a_PlacedPiece, const cPiece::cConnector & a_ExistingConnector) const; + /** Sets the (unmodified) DefaultWeight property for this piece. */ + void SetDefaultWeight(int a_DefaultWeight); + /** Returns the unmodified DefaultWeight property for the piece. */ int GetDefaultWeight(void) const { return m_DefaultWeight; } diff --git a/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp b/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp new file mode 100644 index 000000000..2b129f520 --- /dev/null +++ b/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp @@ -0,0 +1,2404 @@ + +// JapaneseVillagePrefabs.cpp + +// Defines the prefabs in the group JapaneseVillage + +// NOTE: This file has been generated automatically by GalExport! +// Any manual changes will be overwritten by the next automatic export! + +#include "Globals.h" +#include "JapaneseVillagePrefabs.h" + + + + + +const cPrefab::sDef g_JapaneseVillagePrefabs[] = +{ + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Arch: + // The data has been exported from the gallery Plains, area index 144, ID 488, created by Aloe_vera + { + // Size: + 11, 7, 5, // SizeX = 11, SizeY = 7, SizeZ = 5 + + // Hitbox (relative to bounding box): + -1, 0, 0, // MinX, MinY, MinZ + 11, 6, 4, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 2: 0\n" /* grass */ + "b: 13: 0\n" /* gravel */ + "c:113: 0\n" /* netherbrickfence */ + "d: 50: 5\n" /* torch */ + "e: 44: 8\n" /* step */ + "f: 44: 0\n" /* step */ + "g: 43: 0\n" /* doubleslab */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "aaaabbbaaaa" + /* 1 */ "aaaabbbaaaa" + /* 2 */ "aaaabbbaaaa" + /* 3 */ "aaaabbbaaaa" + /* 4 */ "aaaabbbaaaa" + + // Level 1 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..c.....c.." + /* 1 */ "..c.....c.." + /* 2 */ "..c.....c.." + /* 3 */ "..c.....c.." + /* 4 */ "..c.....c.." + + // Level 2 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..c.....c.." + /* 1 */ "..........." + /* 2 */ "..c.....c.." + /* 3 */ "..........." + /* 4 */ "..c.....c.." + + // Level 3 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..d.....d.." + /* 1 */ "..........." + /* 2 */ "..c.....c.." + /* 3 */ "..........." + /* 4 */ "..d.....d.." + + // Level 4 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "...eeeee..." + /* 1 */ "..........." + /* 2 */ "..c.....c.." + /* 3 */ "..........." + /* 4 */ "...eeeee..." + + // Level 5 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..f.....f.." + /* 1 */ ".egfffffge." + /* 2 */ ".egeeeeege." + /* 3 */ ".egfffffge." + /* 4 */ "..f.....f.." + + // Level 6 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "gf.......fg" + /* 3 */ "..........." + /* 4 */ "...........", + + // Connectors: + "2: 5, 1, 4: 3\n" /* Type 2, direction Z+ */ + "2: 5, 1, 0: 2\n" /* Type 2, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // Arch + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Forge: + // The data has been exported from the gallery Plains, area index 79, ID 145, created by Aloe_vera + { + // Size: + 16, 11, 14, // SizeX = 16, SizeY = 11, SizeZ = 14 + + // Hitbox (relative to bounding box): + 0, 0, -1, // MinX, MinY, MinZ + 16, 10, 14, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 4: 0\n" /* cobblestone */ + "b: 17: 1\n" /* tree */ + "c: 67: 0\n" /* stairs */ + "d: 5: 2\n" /* wood */ + "e: 67: 2\n" /* stairs */ + "f:113: 0\n" /* netherbrickfence */ + "g:118: 2\n" /* cauldronblock */ + "h: 67: 6\n" /* stairs */ + "i: 67: 4\n" /* stairs */ + "j: 87: 0\n" /* netherstone */ + "k: 67: 7\n" /* stairs */ + "l: 54: 5\n" /* chest */ + "m: 19: 0\n" /* sponge */ + "n: 61: 2\n" /* furnace */ + "o:101: 0\n" /* ironbars */ + "p: 51: 0\n" /* fire */ + "q: 50: 4\n" /* torch */ + "r: 50: 2\n" /* torch */ + "s: 35: 0\n" /* wool */ + "t: 67: 3\n" /* stairs */ + "u: 50: 3\n" /* torch */ + "v: 44: 8\n" /* step */ + "w: 43: 0\n" /* doubleslab */ + "x: 44: 0\n" /* step */ + "y: 17: 5\n" /* tree */ + "z: 17: 9\n" /* tree */, + + // Block data: + // Level 0 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmmmmmmmmmmm" + /* 1 */ "mmmmmmmmmmmmmmmm" + /* 2 */ "mmaaaaaaaaaaaamm" + /* 3 */ "mmaaaaaaaaaaaamm" + /* 4 */ "mmaaaaaaaaaaaamm" + /* 5 */ "mmaaaaaaaaaaaamm" + /* 6 */ "mmaaaaaaaaaaaamm" + /* 7 */ "mmaaaaaaaaaaaamm" + /* 8 */ "mmaaaaaaaaaaaamm" + /* 9 */ "mmaaaaaaaaaaaamm" + /* 10 */ "mmaaaaaaaaaaaamm" + /* 11 */ "mmaaaaaaaaaaaamm" + /* 12 */ "mmmmmmmmmmmmmmmm" + /* 13 */ "mmmmmmmmmmmmmmmm" + + // Level 1 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "................" + /* 1 */ "................" + /* 2 */ ".....bbbbbbbbb.." + /* 3 */ ".....cdddddddb.." + /* 4 */ ".....cddaaaadb.." + /* 5 */ "..beeedaaaaadb.." + /* 6 */ "..bddddaaaaadb.." + /* 7 */ "..bddddaaaaadb.." + /* 8 */ "..bddddaaaaadb.." + /* 9 */ "..bddddaaaaadb.." + /* 10 */ "..bddddddddddb.." + /* 11 */ "..bbbbbbbbbbbb.." + /* 12 */ "................" + /* 13 */ "................" + + // Level 2 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "................" + /* 1 */ "................" + /* 2 */ ".....bfffbfffb.." + /* 3 */ ".............a.." + /* 4 */ ".............a.." + /* 5 */ "..b.....ghh..a.." + /* 6 */ "..f.....haa..b.." + /* 7 */ "..f.....ija..b.." + /* 8 */ "..f.....kaa..a.." + /* 9 */ "..f..........a.." + /* 10 */ "..fl.........a.." + /* 11 */ "..bffffbbffffb.." + /* 12 */ "................" + /* 13 */ "................" + + // Level 3 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "................" + /* 1 */ "................" + /* 2 */ ".....bfffbfffb.." + /* 3 */ ".............a.." + /* 4 */ ".............a.." + /* 5 */ "..b......nn..a.." + /* 6 */ "..f.....oaa..b.." + /* 7 */ "..f.....opa..b.." + /* 8 */ "..f.....oaa..a.." + /* 9 */ "..f..........a.." + /* 10 */ "..f..........a.." + /* 11 */ "..bffffbbffffb.." + /* 12 */ "................" + /* 13 */ "................" + + // Level 4 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "................" + /* 1 */ ".........q...q.." + /* 2 */ "....rbsssbsssb.." + /* 3 */ ".............a.." + /* 4 */ "..q..........a.." + /* 5 */ "..b......ce..a.." + /* 6 */ "..s......ea..b.." + /* 7 */ "..s......aa..b.." + /* 8 */ "..s......ta..a.." + /* 9 */ "..s..........a.." + /* 10 */ "..s..........a.." + /* 11 */ ".rbssssbbssssb.." + /* 12 */ "..u....uu....u.." + /* 13 */ "................" + + // Level 5 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ ".vwxxxxxxxxxxwv." + /* 1 */ "vvvvvvvvvvvvvvvv" + /* 2 */ "wvbyybyyybbyybvw" + /* 3 */ "xvz..........zvx" + /* 4 */ "xvz..........zvx" + /* 5 */ "xvb..........zvx" + /* 6 */ "xvz.......a..bvx" + /* 7 */ "xvz......ca..bvx" + /* 8 */ "xvz.......a..zvx" + /* 9 */ "xvz..........zvx" + /* 10 */ "xvz..........zvx" + /* 11 */ "wvbyyyyyyyyyybvw" + /* 12 */ "vvvvvvvvvvvvvvvv" + /* 13 */ ".vwxxxxxxxxxxwv." + + // Level 6 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "wx............xw" + /* 1 */ "x..............x" + /* 2 */ "..xxxxxxxxxxxx.." + /* 3 */ "..xwwwwwwwwwwx.." + /* 4 */ "..xwvvvvvvvvvx.." + /* 5 */ "..xwv.......vx.." + /* 6 */ "..xwv.....a.vx.." + /* 7 */ "..xwv.....a.vx.." + /* 8 */ "..xwv.....a.vx.." + /* 9 */ "..xwvvvvvvvvvx.." + /* 10 */ "..xwwwwwwwwwwx.." + /* 11 */ "..xxxxxxxxxxxx.." + /* 12 */ "x..............x" + /* 13 */ "wx............xw" + + // Level 7 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "................" + /* 1 */ "................" + /* 2 */ "................" + /* 3 */ "................" + /* 4 */ "....xxxxxxxx...." + /* 5 */ "....xxxxxxxx...." + /* 6 */ "....xwwwwwax...." + /* 7 */ "....xwvvvvax...." + /* 8 */ "....xwwwwwax...." + /* 9 */ "....xxxxxxxx...." + /* 10 */ "................" + /* 11 */ "................" + /* 12 */ "................" + /* 13 */ "................" + + // Level 8 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "................" + /* 1 */ "................" + /* 2 */ "................" + /* 3 */ "................" + /* 4 */ "................" + /* 5 */ "................" + /* 6 */ "..........a....." + /* 7 */ ".......xx.a....." + /* 8 */ "..........a....." + /* 9 */ "................" + /* 10 */ "................" + /* 11 */ "................" + /* 12 */ "................" + /* 13 */ "................" + + // Level 9 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "................" + /* 1 */ "................" + /* 2 */ "................" + /* 3 */ "................" + /* 4 */ "................" + /* 5 */ "................" + /* 6 */ "..........a....." + /* 7 */ "..........a....." + /* 8 */ "..........a....." + /* 9 */ "................" + /* 10 */ "................" + /* 11 */ "................" + /* 12 */ "................" + /* 13 */ "................" + + // Level 10 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "................" + /* 1 */ "................" + /* 2 */ "................" + /* 3 */ "................" + /* 4 */ "................" + /* 5 */ "................" + /* 6 */ "..........a....." + /* 7 */ "..........a....." + /* 8 */ "..........a....." + /* 9 */ "................" + /* 10 */ "................" + /* 11 */ "................" + /* 12 */ "................" + /* 13 */ "................", + + // Connectors: + "-1: 0, 1, 3: 4\n" /* Type -1, direction X- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // Forge + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // HouseMid: + // The data has been exported from the gallery Plains, area index 62, ID 119, created by Aloe_vera + { + // Size: + 10, 9, 9, // SizeX = 10, SizeY = 9, SizeZ = 9 + + // Hitbox (relative to bounding box): + 0, 0, -1, // MinX, MinY, MinZ + 10, 8, 9, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 5: 2\n" /* wood */ + "b:135: 2\n" /* 135 */ + "c:135: 0\n" /* 135 */ + "d: 17: 9\n" /* tree */ + "e:135: 3\n" /* 135 */ + "f: 85: 0\n" /* fence */ + "g: 17: 1\n" /* tree */ + "h:171: 0\n" /* carpet */ + "i: 50: 5\n" /* torch */ + "j: 35: 0\n" /* wool */ + "k: 17: 5\n" /* tree */ + "l:124: 0\n" /* redstonelampon */ + "m: 19: 0\n" /* sponge */ + "n: 69: 9\n" /* lever */ + "o: 44: 8\n" /* step */ + "p: 43: 0\n" /* doubleslab */ + "q: 44: 0\n" /* step */, + + // Block data: + // Level 0 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ "maaaaaaaaa" + /* 1 */ "maaaaaaaaa" + /* 2 */ "aaaaaaaaaa" + /* 3 */ "aaaaaaaaaa" + /* 4 */ "aaaaaaaaaa" + /* 5 */ "aaaaaaaaaa" + /* 6 */ "aaaaaaaaaa" + /* 7 */ "maaaaaaaaa" + /* 8 */ "maaaaaaaaa" + + // Level 1 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ ".aaaaaaaaa" + /* 1 */ ".aaaaaaaaa" + /* 2 */ "baaaaaaaaa" + /* 3 */ "caaaaaaaaa" + /* 4 */ "caadaaaaaa" + /* 5 */ "caaaaaaaaa" + /* 6 */ "eaaaaaaaaa" + /* 7 */ ".aaaaaaaaa" + /* 8 */ ".aaaaaaaaa" + + // Level 2 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ ".fffffffff" + /* 1 */ ".f.......f" + /* 2 */ ".f.ggggg.f" + /* 3 */ "...ghhhg.f" + /* 4 */ "....hhhg.f" + /* 5 */ "...ghhhg.f" + /* 6 */ ".f.ggggg.f" + /* 7 */ ".f.......f" + /* 8 */ ".fffffffff" + + // Level 3 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ ".....i...i" + /* 1 */ ".........." + /* 2 */ ".i.jjgjj.." + /* 3 */ "...g...j.." + /* 4 */ ".......g.i" + /* 5 */ "...g...j.." + /* 6 */ ".i.jjgjj.." + /* 7 */ ".........." + /* 8 */ ".....i...i" + + // Level 4 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ ".........." + /* 1 */ ".........." + /* 2 */ "...jjgjj.." + /* 3 */ "...g...j.." + /* 4 */ "...j...g.." + /* 5 */ "...g...j.." + /* 6 */ "...jjgjj.." + /* 7 */ ".........." + /* 8 */ ".........." + + // Level 5 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ ".........." + /* 1 */ "...f...f.." + /* 2 */ "..fgkgkgf." + /* 3 */ "..fd...d.." + /* 4 */ "...d.lng.." + /* 5 */ "..fd...d.." + /* 6 */ "..fgkgkgf." + /* 7 */ "...f...f.." + /* 8 */ ".........." + + // Level 6 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ "...ooooo.." + /* 1 */ "..opppppo." + /* 2 */ ".opgjjjgpo" + /* 3 */ ".opjgggjpo" + /* 4 */ ".opjgggjpo" + /* 5 */ ".opjgggjpo" + /* 6 */ ".opgjjjgpo" + /* 7 */ "..opppppo." + /* 8 */ "...ooooo.." + + // Level 7 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ ".opq...qpo" + /* 1 */ ".pq.....qp" + /* 2 */ ".q.qqqqq.q" + /* 3 */ "...qpppq.." + /* 4 */ "...qpppq.." + /* 5 */ "...qpppq.." + /* 6 */ ".q.qqqqq.q" + /* 7 */ ".pq.....qp" + /* 8 */ ".opq...qpo" + + // Level 8 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ ".q.......q" + /* 1 */ ".........." + /* 2 */ ".........." + /* 3 */ ".........." + /* 4 */ ".....q...." + /* 5 */ ".........." + /* 6 */ ".........." + /* 7 */ ".........." + /* 8 */ ".q.......q", + + // Connectors: + "-1: 0, 1, 4: 4\n" /* Type -1, direction X- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // HouseMid + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // HouseSmall: + // The data has been exported from the gallery Plains, area index 68, ID 131, created by Aloe_vera + { + // Size: + 7, 6, 7, // SizeX = 7, SizeY = 6, SizeZ = 7 + + // Hitbox (relative to bounding box): + -1, 0, 0, // MinX, MinY, MinZ + 7, 5, 7, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 5: 2\n" /* wood */ + "b: 17: 1\n" /* tree */ + "c: 35: 0\n" /* wool */ + "d: 50: 4\n" /* torch */ + "e: 85: 0\n" /* fence */ + "f: 44: 8\n" /* step */ + "g: 43: 0\n" /* doubleslab */ + "h: 44: 0\n" /* step */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "maaaaam" + /* 2 */ "maaaaam" + /* 3 */ "maaaaam" + /* 4 */ "maaaaam" + /* 5 */ "maaaaam" + /* 6 */ "mmmmmmm" + + // Level 1 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".bcc.b." + /* 2 */ ".c...c." + /* 3 */ ".c...c." + /* 4 */ ".c...c." + /* 5 */ ".bcccb." + /* 6 */ "......." + + // Level 2 + /* z\x* 0123456 */ + /* 0 */ ".....d." + /* 1 */ ".bee.b." + /* 2 */ ".c...c." + /* 3 */ ".e...e." + /* 4 */ ".c...c." + /* 5 */ ".beeeb." + /* 6 */ "......." + + // Level 3 + /* z\x* 0123456 */ + /* 0 */ ".fffff." + /* 1 */ "fbcccbf" + /* 2 */ "fc...cf" + /* 3 */ "fc...cf" + /* 4 */ "fc...cf" + /* 5 */ "fbcccbf" + /* 6 */ ".fffff." + + // Level 4 + /* z\x* 0123456 */ + /* 0 */ "gh...hg" + /* 1 */ "hhhhhhh" + /* 2 */ ".hgggh." + /* 3 */ ".hgggh." + /* 4 */ ".hgggh." + /* 5 */ "hhhhhhh" + /* 6 */ "gh...hg" + + // Level 5 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ "......." + /* 2 */ "......." + /* 3 */ "...h..." + /* 4 */ "......." + /* 5 */ "......." + /* 6 */ ".......", + + // Connectors: + "-1: 4, 1, 0: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // HouseSmall + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // HouseSmallDouble: + // The data has been exported from the gallery Plains, area index 72, ID 135, created by Aloe_vera + { + // Size: + 11, 6, 7, // SizeX = 11, SizeY = 6, SizeZ = 7 + + // Hitbox (relative to bounding box): + -1, 0, 0, // MinX, MinY, MinZ + 11, 5, 7, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 5: 2\n" /* wood */ + "b: 17: 1\n" /* tree */ + "c: 35: 0\n" /* wool */ + "d:171:12\n" /* carpet */ + "e:135: 1\n" /* 135 */ + "f:126: 2\n" /* woodenslab */ + "g:135: 2\n" /* 135 */ + "h: 50: 4\n" /* torch */ + "i: 85: 0\n" /* fence */ + "j: 44: 8\n" /* step */ + "k: 43: 0\n" /* doubleslab */ + "l: 44: 0\n" /* step */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "mmmmmmmmmmm" + /* 1 */ "maaaaaaaaam" + /* 2 */ "maaaaaaaaam" + /* 3 */ "maaaaaaaaam" + /* 4 */ "maaaaaaaaam" + /* 5 */ "maaaaaaaaam" + /* 6 */ "mmmmmmmmmmm" + + // Level 1 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".bcc.bcccb." + /* 2 */ ".cddd.dddc." + /* 3 */ ".ceddcdfdc." + /* 4 */ ".cggdcdddc." + /* 5 */ ".bcccbcccb." + /* 6 */ "..........." + + // Level 2 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ ".h...h...h." + /* 1 */ ".bii.biiib." + /* 2 */ ".c.......c." + /* 3 */ ".i...i...i." + /* 4 */ ".c...i...c." + /* 5 */ ".biiibiiib." + /* 6 */ "..........." + + // Level 3 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ ".jjjjjjjjj." + /* 1 */ "jbiiibiiibj" + /* 2 */ "jc.......cj" + /* 3 */ "jc...c...cj" + /* 4 */ "jc...c...cj" + /* 5 */ "jbcccbcccbj" + /* 6 */ ".jjjjjjjjj." + + // Level 4 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "kl...l...lk" + /* 1 */ "lllllllllll" + /* 2 */ ".lkkklkkkl." + /* 3 */ ".lkjklkkkl." + /* 4 */ ".lkkklkkkl." + /* 5 */ "lllllllllll" + /* 6 */ "kl...l...lk" + + // Level 5 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "..........." + /* 3 */ "...l...l..." + /* 4 */ "..........." + /* 5 */ "..........." + /* 6 */ "...........", + + // Connectors: + "-1: 4, 1, 0: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // HouseSmallDouble + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // HouseWide: + // The data has been exported from the gallery Plains, area index 64, ID 121, created by STR_Warrior + { + // Size: + 11, 6, 11, // SizeX = 11, SizeY = 6, SizeZ = 11 + + // Hitbox (relative to bounding box): + -1, 0, -1, // MinX, MinY, MinZ + 11, 5, 10, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 5: 2\n" /* wood */ + "b: 17: 1\n" /* tree */ + "c: 35: 0\n" /* wool */ + "d:171: 0\n" /* carpet */ + "e:126: 1\n" /* woodenslab */ + "f: 64: 5\n" /* wooddoorblock */ + "g: 85: 0\n" /* fence */ + "h: 50: 1\n" /* torch */ + "i: 50: 2\n" /* torch */ + "j: 64:12\n" /* wooddoorblock */ + "k:126:11\n" /* woodenslab */ + "l: 17: 5\n" /* tree */ + "m: 19: 0\n" /* sponge */ + "n:126: 3\n" /* woodenslab */ + "o:125: 3\n" /* woodendoubleslab */ + "p: 5: 3\n" /* wood */, + + // Block data: + // Level 0 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "mmmmmmmmmmm" + /* 1 */ "mmaaaaaaamm" + /* 2 */ "maaaaaaaaam" + /* 3 */ "maaaaaaaaam" + /* 4 */ "maaaaaaaaam" + /* 5 */ "maaaaaaaaam" + /* 6 */ "maaaaaaaaam" + /* 7 */ "maaaaaaaaam" + /* 8 */ "maaaaaaaaam" + /* 9 */ "mmaaaaaaamm" + /* 10 */ "mmmmmmmmmmm" + + // Level 1 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..bcbcbcb.." + /* 2 */ ".b.d.....b." + /* 3 */ ".cded....c." + /* 4 */ ".bded....b." + /* 5 */ ".c.d.....c." + /* 6 */ ".b.......b." + /* 7 */ ".c.......c." + /* 8 */ ".b.......b." + /* 9 */ "..bcbfbcb.." + /* 10 */ "..........." + + // Level 2 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..bgbgbgb.." + /* 2 */ ".b.......b." + /* 3 */ ".g.......g." + /* 4 */ ".bh.....ib." + /* 5 */ ".g.......g." + /* 6 */ ".b.......b." + /* 7 */ ".g.......g." + /* 8 */ ".b.......b." + /* 9 */ "..bgbjbgb.." + /* 10 */ "..........." + + // Level 3 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "...kkkkk..." + /* 1 */ "..bcbcbcb.." + /* 2 */ ".b.......b." + /* 3 */ "kc.......ck" + /* 4 */ "kb.......bk" + /* 5 */ "kc.......ck" + /* 6 */ "kb.......bk" + /* 7 */ "kc.......ck" + /* 8 */ ".b.......b." + /* 9 */ "..bcblbcb.." + /* 10 */ "...kkkkk..." + + // Level 4 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ ".kn.....nk." + /* 1 */ "konnnnnnnok" + /* 2 */ "nnnnnnnnnnn" + /* 3 */ ".nnpppppnn." + /* 4 */ ".nnpkkkpnn." + /* 5 */ ".nnpkkkpnn." + /* 6 */ ".nnpkkkpnn." + /* 7 */ ".nnpppppnn." + /* 8 */ "nnnnnnnnnnn" + /* 9 */ "kknnnnnnnok" + /* 10 */ ".kn.....nk." + + // Level 5 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "n.........n" + /* 1 */ "..........." + /* 2 */ "..........." + /* 3 */ "..........." + /* 4 */ "....nnn...." + /* 5 */ "....non...." + /* 6 */ "....nnn...." + /* 7 */ "..........." + /* 8 */ "..........." + /* 9 */ "..........." + /* 10 */ "n.........n", + + // Connectors: + "-1: 5, 1, 10: 3\n" /* Type -1, direction Z+ */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // HouseWide + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // HouseWithGarden: + // The data has been exported from the gallery Plains, area index 67, ID 130, created by Aloe_vera + { + // Size: + 16, 9, 16, // SizeX = 16, SizeY = 9, SizeZ = 16 + + // Hitbox (relative to bounding box): + -1, 0, 0, // MinX, MinY, MinZ + 16, 8, 16, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 3: 0\n" /* dirt */ + "b: 5: 2\n" /* wood */ + "c: 2: 0\n" /* grass */ + "d:113: 0\n" /* netherbrickfence */ + "e: 17: 1\n" /* tree */ + "f: 35: 0\n" /* wool */ + "g:126: 2\n" /* woodenslab */ + "h: 31: 2\n" /* tallgrass */ + "i:125: 2\n" /* woodendoubleslab */ + "j: 38: 3\n" /* rose */ + "k: 38: 2\n" /* rose */ + "l: 38: 1\n" /* rose */ + "m: 19: 0\n" /* sponge */ + "n: 17: 2\n" /* tree */ + "o: 50: 4\n" /* torch */ + "p: 85: 0\n" /* fence */ + "q:140: 0\n" /* flowerpotblock */ + "r: 50: 3\n" /* torch */ + "s: 44: 8\n" /* step */ + "t: 50: 1\n" /* torch */ + "u: 50: 2\n" /* torch */ + "v: 43: 0\n" /* doubleslab */ + "w: 44: 0\n" /* step */ + "x: 18:10\n" /* leaves */, + + // Block data: + // Level 0 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmmmmaammmmm" + /* 1 */ "aabbbbbbbbbbaaam" + /* 2 */ "aabbbbbbbbbbaaam" + /* 3 */ "aabbbbbbbbbbaaam" + /* 4 */ "aabbbbbbbbbbaaam" + /* 5 */ "aabbbbbbbbbbaaam" + /* 6 */ "aabbbbbbbbbbaaam" + /* 7 */ "aabbbbbbbbbbaaam" + /* 8 */ "aabbbbbbbbbbaaam" + /* 9 */ "aabbbbbbbbbbaaam" + /* 10 */ "aaaaaaaaaaaaaaam" + /* 11 */ "aaaaaaaaaaaaaaam" + /* 12 */ "aaaaaaaaaaaaaaam" + /* 13 */ "aaaaaaaaaaaaaaam" + /* 14 */ "aaaaaaaaaaaaaaam" + /* 15 */ "mmmmmmmmmmmmmmmm" + + // Level 1 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmmmmccmmmmm" + /* 1 */ "ccbbbbbbbbbbcccm" + /* 2 */ "ccbbbbbbbbbbcccm" + /* 3 */ "ccbbbbbbbbbbcccm" + /* 4 */ "ccbbbbbbbbbbcccm" + /* 5 */ "ccbbbbbbbbbbcccm" + /* 6 */ "ccbbbbbbbbbbcccm" + /* 7 */ "ccbbbbbbbbbbcccm" + /* 8 */ "ccbbbbbbbbbbcccm" + /* 9 */ "ccbbbbbbbbbbcccm" + /* 10 */ "cccccccccccccccm" + /* 11 */ "cccccccccccccccm" + /* 12 */ "cccccccccccccccm" + /* 13 */ "cccccccccccccacm" + /* 14 */ "cccccccccccccccm" + /* 15 */ "mmmmmmmmmmmmmmmm" + + // Level 2 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "................" + /* 1 */ "ddeffeffe..eddd." + /* 2 */ "d.fbbgggg..f..d." + /* 3 */ "d.fbgggggggf.hd." + /* 4 */ "d.fbgggggggf..d." + /* 5 */ "d.eggggggggehhd." + /* 6 */ "d.fgiiggiigf.hd." + /* 7 */ "d.fgiiggiigf..d." + /* 8 */ "d.fggggggggf..d." + /* 9 */ "d.efffeefffe.hd." + /* 10 */ "d.............d." + /* 11 */ "djhhk.jhh..hh.d." + /* 12 */ "d.jlk.hj.h....d." + /* 13 */ "d..jh.hh..h..nd." + /* 14 */ "ddddddddddddddd." + /* 15 */ "................" + + // Level 3 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "........o..o...." + /* 1 */ "..eppeffe..e...." + /* 2 */ "..pqq......p...." + /* 3 */ "..pq.......p...." + /* 4 */ "..pq.......p...." + /* 5 */ "..e........e...." + /* 6 */ "..p........p...." + /* 7 */ "..p........p...." + /* 8 */ "..p........p...." + /* 9 */ "..epppeepppe...." + /* 10 */ "......rr........" + /* 11 */ "................" + /* 12 */ "................" + /* 13 */ ".............n.." + /* 14 */ "................" + /* 15 */ "................" + + // Level 4 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "..ssssssssss...." + /* 1 */ ".seffeffeffes..." + /* 2 */ ".sf..r.....fs..." + /* 3 */ ".sf........fs..." + /* 4 */ ".sf........fs..." + /* 5 */ ".set......ues..." + /* 6 */ ".sf........fs..." + /* 7 */ ".sf........fs..." + /* 8 */ ".sf........fs..." + /* 9 */ ".sefffeefffes..." + /* 10 */ "..ssssssssss...." + /* 11 */ "................" + /* 12 */ "................" + /* 13 */ ".............n.." + /* 14 */ "................" + /* 15 */ "................" + + // Level 5 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ ".vw........wv..." + /* 1 */ ".wwwwwwwwwwww..." + /* 2 */ "..wvvvvvvvvw...." + /* 3 */ "..wvvvvvvvvw...." + /* 4 */ "..wvvvvvvvvw...." + /* 5 */ "..wvvvvvvvvw...." + /* 6 */ "..wvvvvvvvvw...." + /* 7 */ "..wvvvvvvvvw...." + /* 8 */ "..wvvvvvvvvw...." + /* 9 */ ".wwwwwwwwwwww..." + /* 10 */ ".vw........wv..." + /* 11 */ "............xxx." + /* 12 */ "...........xxxxx" + /* 13 */ "...........xxnxx" + /* 14 */ "...........xxxxx" + /* 15 */ "............xxx." + + // Level 6 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "................" + /* 1 */ "................" + /* 2 */ "................" + /* 3 */ "....wwwwww......" + /* 4 */ "....wvvvvw......" + /* 5 */ "....wvvvvw......" + /* 6 */ "....wvvvvw......" + /* 7 */ "....wwwwww......" + /* 8 */ "................" + /* 9 */ "................" + /* 10 */ "................" + /* 11 */ "............xxx." + /* 12 */ "...........xxxxx" + /* 13 */ "...........xxnxx" + /* 14 */ "...........xxxxx" + /* 15 */ "............xxx." + + // Level 7 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "................" + /* 1 */ "................" + /* 2 */ "................" + /* 3 */ "................" + /* 4 */ "................" + /* 5 */ "......ww........" + /* 6 */ "................" + /* 7 */ "................" + /* 8 */ "................" + /* 9 */ "................" + /* 10 */ "................" + /* 11 */ "................" + /* 12 */ "............xxx." + /* 13 */ "............xnx." + /* 14 */ "............xx.." + /* 15 */ "................" + + // Level 8 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "................" + /* 1 */ "................" + /* 2 */ "................" + /* 3 */ "................" + /* 4 */ "................" + /* 5 */ "................" + /* 6 */ "................" + /* 7 */ "................" + /* 8 */ "................" + /* 9 */ "................" + /* 10 */ "................" + /* 11 */ "................" + /* 12 */ ".............x.." + /* 13 */ "............xxx." + /* 14 */ ".............x.." + /* 15 */ "................", + + // Connectors: + "-1: 9, 2, 0: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // HouseWithGarden + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // HouseWithSakura1: + // The data has been exported from the gallery Plains, area index 75, ID 141, created by Aloe_vera + { + // Size: + 13, 7, 15, // SizeX = 13, SizeY = 7, SizeZ = 15 + + // Hitbox (relative to bounding box): + -1, 0, 0, // MinX, MinY, MinZ + 13, 6, 15, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 3: 0\n" /* dirt */ + "b: 2: 0\n" /* grass */ + "c: 17: 5\n" /* tree */ + "d: 5: 2\n" /* wood */ + "e: 17: 9\n" /* tree */ + "f:113: 0\n" /* netherbrickfence */ + "g: 17: 1\n" /* tree */ + "h: 35: 0\n" /* wool */ + "i: 31: 2\n" /* tallgrass */ + "j: 54: 2\n" /* chest */ + "k: 38: 6\n" /* rose */ + "l: 38: 2\n" /* rose */ + "m: 19: 0\n" /* sponge */ + "n: 50: 4\n" /* torch */ + "o: 85: 0\n" /* fence */ + "p: 44: 8\n" /* step */ + "q: 35: 6\n" /* wool */ + "r: 43: 0\n" /* doubleslab */ + "s: 44: 0\n" /* step */, + + // Block data: + // Level 0 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "aaaaaaaaaaaaa" + /* 1 */ "aaaaaaaaaaaaa" + /* 2 */ "aaaaaaaaaaaaa" + /* 3 */ "aaaaaaaaaaaaa" + /* 4 */ "aaaaaaaaaaaaa" + /* 5 */ "aaaaaaaaaaaaa" + /* 6 */ "aaaaaaaaaaaaa" + /* 7 */ "aaaaaaaaaaaaa" + /* 8 */ "aaaaaaaaaaaaa" + /* 9 */ "aaaaaaaaaaaaa" + /* 10 */ "aaaaaaaaaaaaa" + /* 11 */ "aaaaaaaaaaaaa" + /* 12 */ "aaaaaaaaaaaaa" + /* 13 */ "aaaaaaaaaaaaa" + /* 14 */ "aaaaaaaaaaaaa" + + // Level 1 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "bbbbbbbbbbbbb" + /* 1 */ "bbbbbbbbbbbbb" + /* 2 */ "bbbaccdabbbbb" + /* 3 */ "bbbedddebbbbb" + /* 4 */ "bbbedddebbbbb" + /* 5 */ "bbbedddebbbbb" + /* 6 */ "bbbacccabbbbb" + /* 7 */ "bbbbbbbbbbbbb" + /* 8 */ "bbbbbbbbbbbbb" + /* 9 */ "bbbbbbbbbbbbb" + /* 10 */ "bbbbbbbbbbabb" + /* 11 */ "bbbbbbbbbbbbb" + /* 12 */ "bbbbbbbbbbbbb" + /* 13 */ "bbbbbbbbbbbbb" + /* 14 */ "bbbbbbbbbbbbb" + + // Level 2 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "ffff...ffffff" + /* 1 */ "f...........f" + /* 2 */ "f..ghh.g..i.f" + /* 3 */ "f..h...h..i.f" + /* 4 */ "f..h...h....f" + /* 5 */ "fi.h..jh..i.f" + /* 6 */ "f..ghhhg....f" + /* 7 */ "f.........i.f" + /* 8 */ "fii.........f" + /* 9 */ "f.k..k.i....f" + /* 10 */ "fl.i..i...g.f" + /* 11 */ "f.i..i.k....f" + /* 12 */ "f.l.k.......f" + /* 13 */ "f.....l.....f" + /* 14 */ "fffffffffffff" + + // Level 3 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "............." + /* 1 */ ".......n....." + /* 2 */ "...goo.g....." + /* 3 */ "...h...h....." + /* 4 */ "...o...o....." + /* 5 */ "...h...h....." + /* 6 */ "...gooog....." + /* 7 */ "............." + /* 8 */ "............." + /* 9 */ "............." + /* 10 */ "..........g.." + /* 11 */ "............." + /* 12 */ "............." + /* 13 */ "............." + /* 14 */ "............." + + // Level 4 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "............." + /* 1 */ "...ppppp....." + /* 2 */ "..pghhhgp...." + /* 3 */ "..ph...hp...." + /* 4 */ "..ph...hp...." + /* 5 */ "..ph...hp...." + /* 6 */ "..pghhhgp...." + /* 7 */ "...ppppp....." + /* 8 */ "............." + /* 9 */ "..........q.." + /* 10 */ ".........qgq." + /* 11 */ "..........q.." + /* 12 */ "............." + /* 13 */ "............." + /* 14 */ "............." + + // Level 5 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "............." + /* 1 */ "..rs...sr...." + /* 2 */ "..sssssss...." + /* 3 */ "...srrrs....." + /* 4 */ "...srrrs....." + /* 5 */ "...srrrs....." + /* 6 */ "..sssssss...." + /* 7 */ "..rs...sr...." + /* 8 */ "............." + /* 9 */ ".........qqq." + /* 10 */ ".........qqq." + /* 11 */ ".........qqq." + /* 12 */ "............." + /* 13 */ "............." + /* 14 */ "............." + + // Level 6 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "............." + /* 1 */ "............." + /* 2 */ "............." + /* 3 */ "............." + /* 4 */ ".....s......." + /* 5 */ "............." + /* 6 */ "............." + /* 7 */ "............." + /* 8 */ "............." + /* 9 */ "............." + /* 10 */ "..........q.." + /* 11 */ "............." + /* 12 */ "............." + /* 13 */ "............." + /* 14 */ ".............", + + // Connectors: + "-1: 5, 2, 0: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // HouseWithSakura1 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Restaurant: + // The data has been exported from the gallery Plains, area index 61, ID 117, created by Aloe_vera + { + // Size: + 15, 10, 15, // SizeX = 15, SizeY = 10, SizeZ = 15 + + // Hitbox (relative to bounding box): + -1, 0, -1, // MinX, MinY, MinZ + 14, 9, 15, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 5: 2\n" /* wood */ + "b:135: 0\n" /* 135 */ + "c:135: 2\n" /* 135 */ + "d:135: 1\n" /* 135 */ + "e: 17: 9\n" /* tree */ + "f:135: 3\n" /* 135 */ + "g: 85: 0\n" /* fence */ + "h: 17: 1\n" /* tree */ + "i:171: 0\n" /* carpet */ + "j:171:12\n" /* carpet */ + "k:126: 1\n" /* woodenslab */ + "l: 50: 5\n" /* torch */ + "m: 19: 0\n" /* sponge */ + "n: 35: 0\n" /* wool */ + "o: 50: 3\n" /* torch */ + "p: 50: 1\n" /* torch */ + "q: 50: 4\n" /* torch */ + "r: 35:14\n" /* wool */ + "s: 44: 8\n" /* step */ + "t: 43: 0\n" /* doubleslab */ + "u: 44: 0\n" /* step */ + "v: 17: 5\n" /* tree */, + + // Block data: + // Level 0 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "mmmmaaaaaaammmm" + /* 1 */ "maaaaaaaaaaaaam" + /* 2 */ "maaaaaaaaaaaaam" + /* 3 */ "maaaaaaaaaaaaam" + /* 4 */ "aaaaaaaaaaaaaaa" + /* 5 */ "aaaaaaaaaaaaaaa" + /* 6 */ "aaaaaaaaaaaaaaa" + /* 7 */ "aaaaaaaaaaaaaaa" + /* 8 */ "aaaaaaaaaaaaaaa" + /* 9 */ "aaaaaaaaaaaaaaa" + /* 10 */ "aaaaaaaaaaaaaaa" + /* 11 */ "maaaaaaaaaaaaam" + /* 12 */ "maaaaaaaaaaaaam" + /* 13 */ "maaaaaaaaaaaaam" + /* 14 */ "mmmmaaaaaaammmm" + + // Level 1 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "....bcccccd...." + /* 1 */ ".aaaaaaaaaaaaa." + /* 2 */ ".aaaaaaaaaaaaa." + /* 3 */ ".aaaaaaaaaaaaa." + /* 4 */ "caaaaaaaaaaaaac" + /* 5 */ "baaaaaaaaaaaaad" + /* 6 */ "baaaaaaaaaaaaad" + /* 7 */ "baaaaaaaaaaeaad" + /* 8 */ "baaaaaaaaaaaaad" + /* 9 */ "baaaaaaaaaaaaad" + /* 10 */ "faaaaaaaaaaaaaf" + /* 11 */ ".aaaaaaaaaaaaa." + /* 12 */ ".aaaaaaaaaaaaa." + /* 13 */ ".aaaaaaaaaaaaa." + /* 14 */ "....bfffffd...." + + // Level 2 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ ".gggg.....gggg." + /* 2 */ ".g...........g." + /* 3 */ ".g.hhhhhhhhh.g." + /* 4 */ ".g.hiiijiiih.g." + /* 5 */ "...hikijikih..." + /* 6 */ "...hiiijiiihg.." + /* 7 */ "...hjjjjjjj...." + /* 8 */ "...hiiijiiihg.." + /* 9 */ "...hikijikih..." + /* 10 */ ".g.hiiijiiih.g." + /* 11 */ ".g.hhhhhhhhh.g." + /* 12 */ ".g...........g." + /* 13 */ ".gggg.....gggg." + /* 14 */ "..............." + + // Level 3 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ ".l..g.....g..l." + /* 2 */ "..............." + /* 3 */ "...hnnnhnnnh..." + /* 4 */ ".g.n.......n.g." + /* 5 */ "...n.......n..." + /* 6 */ "...n.......hl.." + /* 7 */ "...h..........." + /* 8 */ "...n.......hl.." + /* 9 */ "...n.......n..." + /* 10 */ ".g.n.......n.g." + /* 11 */ "...hnnnhnnnh..." + /* 12 */ "..............." + /* 13 */ ".l..g.....g..l." + /* 14 */ "..............." + + // Level 4 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ "....g.....g...." + /* 2 */ "..............." + /* 3 */ "...hn.nhn.nh..." + /* 4 */ ".g.n...o...n.g." + /* 5 */ "...n.......n..." + /* 6 */ "...n.......h..." + /* 7 */ "...hp......e..." + /* 8 */ "...n.......h..." + /* 9 */ "...n.......n..." + /* 10 */ ".g.n...q...n.g." + /* 11 */ "...hn.nhn.nh..." + /* 12 */ "..............." + /* 13 */ "....g.....g...." + /* 14 */ "..............." + + // Level 5 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ "....g.....g...." + /* 2 */ "....ggggggg...." + /* 3 */ "...hnnnhnnnh..." + /* 4 */ ".ggn.......ngg." + /* 5 */ "..gn.......ng.." + /* 6 */ "..gn.......hg.." + /* 7 */ "..gh..r.r..ng.." + /* 8 */ "..gn.......hg.." + /* 9 */ "..gn.......ng.." + /* 10 */ ".ggn.......ngg." + /* 11 */ "...hnnnhnnnh..." + /* 12 */ "....ggggggg...." + /* 13 */ "....g.....g...." + /* 14 */ "..............." + + // Level 6 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ "...stuuuuuts..." + /* 2 */ "..sttttttttts.." + /* 3 */ ".sthvvvhvvvhts." + /* 4 */ ".tte.......ett." + /* 5 */ ".ute.......etu." + /* 6 */ ".ute.......htu." + /* 7 */ ".uth..g.g..etu." + /* 8 */ ".ute.......htu." + /* 9 */ ".ute.......etu." + /* 10 */ ".tte.......ett." + /* 11 */ ".sthvvvhvvvhts." + /* 12 */ "..sttttttttts.." + /* 13 */ "...stuuuuuts..." + /* 14 */ "..............." + + // Level 7 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ ".stu.......uts." + /* 2 */ ".tu.........ut." + /* 3 */ ".u.uuuuuuuuu.u." + /* 4 */ "...utttttttu..." + /* 5 */ "...utttttttu..." + /* 6 */ "...utttttttu..." + /* 7 */ "...utttttttu..." + /* 8 */ "...utttttttu..." + /* 9 */ "...utttttttu..." + /* 10 */ "...utttttttu..." + /* 11 */ ".u.uuuuuuuuu.u." + /* 12 */ ".tu.........ut." + /* 13 */ ".stu.......uts." + /* 14 */ "..............." + + // Level 8 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ ".u...........u." + /* 2 */ "..............." + /* 3 */ "..............." + /* 4 */ "..............." + /* 5 */ ".....uuuuu....." + /* 6 */ ".....utttu....." + /* 7 */ ".....utttu....." + /* 8 */ ".....utttu....." + /* 9 */ ".....uuuuu....." + /* 10 */ "..............." + /* 11 */ "..............." + /* 12 */ "..............." + /* 13 */ ".u...........u." + /* 14 */ "..............." + + // Level 9 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ "..............." + /* 2 */ "..............." + /* 3 */ "..............." + /* 4 */ "..............." + /* 5 */ "..............." + /* 6 */ "..............." + /* 7 */ ".......u......." + /* 8 */ "..............." + /* 9 */ "..............." + /* 10 */ "..............." + /* 11 */ "..............." + /* 12 */ "..............." + /* 13 */ "..............." + /* 14 */ "...............", + + // Connectors: + "-1: 14, 1, 7: 5\n" /* Type -1, direction X+ */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // Restaurant + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // SakuraDouble: + // The data has been exported from the gallery Plains, area index 76, ID 142, created by Aloe_vera + { + // Size: + 12, 8, 6, // SizeX = 12, SizeY = 8, SizeZ = 6 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 11, 7, 5, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 3: 0\n" /* dirt */ + "b: 2: 0\n" /* grass */ + "c: 17: 1\n" /* tree */ + "d: 35: 6\n" /* wool */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "aaaaaaaaaaaa" + /* 1 */ "aaaaaaaaaaaa" + /* 2 */ "aaaaaaaaaaaa" + /* 3 */ "aaaaaaaaaaaa" + /* 4 */ "aaaaaaaaaaaa" + /* 5 */ "aaaaaaaaaaaa" + + // Level 1 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "bbbbbbbbbbbb" + /* 1 */ "bbbbbbbbbbbb" + /* 2 */ "bbabbbbbbbbb" + /* 3 */ "bbbbbbbbbabb" + /* 4 */ "bbbbbbbbbbbb" + /* 5 */ "bbbbbbbbbbbb" + + // Level 2 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ "............" + /* 2 */ "..c........." + /* 3 */ ".........c.." + /* 4 */ "............" + /* 5 */ "............" + + // Level 3 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ "............" + /* 2 */ "..c........." + /* 3 */ ".........c.." + /* 4 */ "............" + /* 5 */ "............" + + // Level 4 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "..d........." + /* 1 */ "ddddd......." + /* 2 */ "ddcdd...ddd." + /* 3 */ "ddddd...dcd." + /* 4 */ "..d.....ddd." + /* 5 */ "............" + + // Level 5 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ ".ddd........" + /* 1 */ ".ddd....ddd." + /* 2 */ "ddddd..ddddd" + /* 3 */ ".ddd...ddcdd" + /* 4 */ ".ddd...ddddd" + /* 5 */ "........ddd." + + // Level 6 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ "..d......d.." + /* 2 */ ".ddd....ddd." + /* 3 */ "..d....ddddd" + /* 4 */ "........ddd." + /* 5 */ ".........d.." + + // Level 7 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ "............" + /* 2 */ "............" + /* 3 */ ".........d.." + /* 4 */ "............" + /* 5 */ "............", + + // Connectors: + "-1: 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, + }, // SakuraDouble + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // SakuraSmall: + // The data has been exported from the gallery Plains, area index 145, ID 489, created by Aloe_vera + { + // Size: + 5, 7, 5, // SizeX = 5, SizeY = 7, SizeZ = 5 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 4, 6, 4, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 3: 0\n" /* dirt */ + "b: 2: 0\n" /* grass */ + "c: 17: 1\n" /* tree */ + "d: 35: 6\n" /* wool */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 01234 */ + /* 0 */ "aaaaa" + /* 1 */ "aaaaa" + /* 2 */ "aaaaa" + /* 3 */ "aaaaa" + /* 4 */ "aaaaa" + + // Level 1 + /* z\x* 01234 */ + /* 0 */ "bbbbb" + /* 1 */ "bbbbb" + /* 2 */ "bbabb" + /* 3 */ "bbbbb" + /* 4 */ "bbbbb" + + // Level 2 + /* z\x* 01234 */ + /* 0 */ "....." + /* 1 */ "....." + /* 2 */ "..c.." + /* 3 */ "....." + /* 4 */ "....." + + // Level 3 + /* z\x* 01234 */ + /* 0 */ "....." + /* 1 */ "....." + /* 2 */ "..c.." + /* 3 */ "....." + /* 4 */ "....." + + // Level 4 + /* z\x* 01234 */ + /* 0 */ "..d.." + /* 1 */ "ddddd" + /* 2 */ "ddcdd" + /* 3 */ "ddddd" + /* 4 */ "..d.." + + // Level 5 + /* z\x* 01234 */ + /* 0 */ ".ddd." + /* 1 */ ".ddd." + /* 2 */ "ddddd" + /* 3 */ ".ddd." + /* 4 */ ".ddd." + + // Level 6 + /* z\x* 01234 */ + /* 0 */ "....." + /* 1 */ "..d.." + /* 2 */ ".ddd." + /* 3 */ "..d.." + /* 4 */ ".....", + + // Connectors: + "-1: 2, 2, 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, + }, // SakuraSmall +}; // g_JapaneseVillagePrefabs + + + + + + +const cPrefab::sDef g_JapaneseVillageStartingPrefabs[] = +{ + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // HighTemple: + // The data has been exported from the gallery Plains, area index 70, ID 133, created by Aloe_vera + { + // Size: + 11, 19, 11, // SizeX = 11, SizeY = 19, SizeZ = 11 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 10, 18, 10, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 5: 2\n" /* wood */ + "b:135: 0\n" /* 135 */ + "c:135: 2\n" /* 135 */ + "d:135: 1\n" /* 135 */ + "e: 17: 9\n" /* tree */ + "f:135: 3\n" /* 135 */ + "g: 85: 0\n" /* fence */ + "h: 17: 1\n" /* tree */ + "i:171: 0\n" /* carpet */ + "j: 50: 5\n" /* torch */ + "k: 35: 0\n" /* wool */ + "l: 17: 5\n" /* tree */ + "m: 19: 0\n" /* sponge */ + "n:124: 0\n" /* redstonelampon */ + "o: 69: 9\n" /* lever */ + "p: 44: 8\n" /* step */ + "q: 43: 0\n" /* doubleslab */ + "r: 44: 0\n" /* step */ + "s: 50: 4\n" /* torch */ + "t: 50: 1\n" /* torch */ + "u: 50: 3\n" /* torch */, + + // Block data: + // Level 0 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "mmmaaaaammm" + /* 1 */ "maaaaaaaaam" + /* 2 */ "maaaaaaaaam" + /* 3 */ "aaaaaaaaaaa" + /* 4 */ "aaaaaaaaaaa" + /* 5 */ "aaaaaaaaaaa" + /* 6 */ "aaaaaaaaaaa" + /* 7 */ "aaaaaaaaaaa" + /* 8 */ "maaaaaaaaam" + /* 9 */ "maaaaaaaaam" + /* 10 */ "mmmaaaaammm" + + // Level 1 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "...bcccd..." + /* 1 */ ".aaaaaaaaa." + /* 2 */ ".aaaaaaaaa." + /* 3 */ "caaaaaaaaac" + /* 4 */ "baaaaaaaaad" + /* 5 */ "baaeaaaaaad" + /* 6 */ "baaaaaaaaad" + /* 7 */ "faaaaaaaaaf" + /* 8 */ ".aaaaaaaaa." + /* 9 */ ".aaaaaaaaa." + /* 10 */ "...bfffd..." + + // Level 2 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".ggg...ggg." + /* 2 */ ".g.......g." + /* 3 */ ".g.hhhhh.g." + /* 4 */ "...hiiih..." + /* 5 */ "....iiih..." + /* 6 */ "...hiiih..." + /* 7 */ ".g.hhhhh.g." + /* 8 */ ".g.......g." + /* 9 */ ".ggg...ggg." + /* 10 */ "..........." + + // Level 3 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".j.g...g.j." + /* 2 */ "..........." + /* 3 */ ".g.kkhkk.g." + /* 4 */ "...h...k..." + /* 5 */ ".......h..." + /* 6 */ "...h...k..." + /* 7 */ ".g.kkhkk.g." + /* 8 */ "..........." + /* 9 */ ".j.g...g.j." + /* 10 */ "..........." + + // Level 4 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "...g...g..." + /* 2 */ "..........." + /* 3 */ ".g.kkhkk.g." + /* 4 */ "...h...k..." + /* 5 */ "...k...h..." + /* 6 */ "...h...k..." + /* 7 */ ".g.kkhkk.g." + /* 8 */ "..........." + /* 9 */ "...g...g..." + /* 10 */ "..........." + + // Level 5 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "...g...g..." + /* 2 */ "...ggggg..." + /* 3 */ ".gghlhlhgg." + /* 4 */ "..ge...eg.." + /* 5 */ "..ge.nohg.." + /* 6 */ "..ge...eg.." + /* 7 */ ".gghlhlhgg." + /* 8 */ "...ggggg..." + /* 9 */ "...g...g..." + /* 10 */ "..........." + + // Level 6 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..pqrrrqp.." + /* 2 */ ".pqqqqqqqp." + /* 3 */ ".qqhkkkhqq." + /* 4 */ ".rqkhhhkqr." + /* 5 */ ".rqkhhhkqr." + /* 6 */ ".rqkhhhkqr." + /* 7 */ ".qqhkkkhqq." + /* 8 */ ".pqqqqqqqp." + /* 9 */ "..pqrrrqp.." + /* 10 */ "..........." + + // Level 7 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".qr.....rq." + /* 2 */ ".........r." + /* 3 */ "...hhhhh..." + /* 4 */ "...hiiih..." + /* 5 */ "....iiih..." + /* 6 */ "...hiiih..." + /* 7 */ "...hhhhh..." + /* 8 */ ".r.......r." + /* 9 */ ".qr.....rq." + /* 10 */ "..........." + + // Level 8 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "..........." + /* 3 */ "...kkhkk..." + /* 4 */ "...h...k..." + /* 5 */ ".......h..." + /* 6 */ "...h...k..." + /* 7 */ "...kkhkk..." + /* 8 */ "..........." + /* 9 */ "..........." + /* 10 */ "..........." + + // Level 9 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ ".....s....." + /* 3 */ "...kkhkk..." + /* 4 */ "...h...k..." + /* 5 */ "...k...ht.." + /* 6 */ "...h...k..." + /* 7 */ "...kkhkk..." + /* 8 */ ".....u....." + /* 9 */ "..........." + /* 10 */ "..........." + + // Level 10 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "...ggggg..." + /* 3 */ "..ghlhlhg.." + /* 4 */ "..ge...eg.." + /* 5 */ "..ge.nohg.." + /* 6 */ "..ge...eg.." + /* 7 */ "..ghlhlhg.." + /* 8 */ "...ggggg..." + /* 9 */ "..........." + /* 10 */ "..........." + + // Level 11 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..prrrrrp.." + /* 2 */ ".pqqqqqqqp." + /* 3 */ ".qqhkkkhqq." + /* 4 */ ".rqkhhhkqr." + /* 5 */ ".rqkhhhkqr." + /* 6 */ ".rqkhhhkqr." + /* 7 */ ".qqhkkkhqr." + /* 8 */ ".pqqqqqqqp." + /* 9 */ "..pqrrrqp.." + /* 10 */ "..........." + + // Level 12 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".qr.....rq." + /* 2 */ ".r.......r." + /* 3 */ "...hhhhh..." + /* 4 */ "...hiiih..." + /* 5 */ "....iiih..." + /* 6 */ "...hiiih..." + /* 7 */ "...hhhhh..." + /* 8 */ ".r.......r." + /* 9 */ ".qr.....rq." + /* 10 */ "..........." + + // Level 13 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "..........." + /* 3 */ "...kkhkk..." + /* 4 */ "...h...k..." + /* 5 */ ".......h..." + /* 6 */ "...h...k..." + /* 7 */ "...kkhkk..." + /* 8 */ "..........." + /* 9 */ "..........." + /* 10 */ "..........." + + // Level 14 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ ".....s....." + /* 3 */ "...kkhkk..." + /* 4 */ "...h...k..." + /* 5 */ "...k...ht.." + /* 6 */ "...h...k..." + /* 7 */ "...kkhkk..." + /* 8 */ ".....u....." + /* 9 */ "..........." + /* 10 */ "..........." + + // Level 15 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "...ggggg..." + /* 3 */ "..ghlhlhg.." + /* 4 */ "..ge...eg.." + /* 5 */ "..ge.nohg.." + /* 6 */ "..ge...eg.." + /* 7 */ "..ghlhlhg.." + /* 8 */ "...ggggg..." + /* 9 */ "..........." + /* 10 */ "..........." + + // Level 16 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..pqrrrqp.." + /* 2 */ ".pqqqqqqqp." + /* 3 */ ".qqrrrrrqq." + /* 4 */ ".rqrrrrrqr." + /* 5 */ ".rqrrrrrqr." + /* 6 */ ".rqrrrrrqr." + /* 7 */ ".qqrrrrrqq." + /* 8 */ ".pqqqqqqqp." + /* 9 */ "..pqrrrqp.." + /* 10 */ "..........." + + // Level 17 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".qr.....rq." + /* 2 */ ".rr.....rr." + /* 3 */ "...rrrrr..." + /* 4 */ "...rqqqr..." + /* 5 */ "...rqqqr..." + /* 6 */ "...rqqqr..." + /* 7 */ "...rrrrr..." + /* 8 */ ".rr.....rr." + /* 9 */ ".qr.....rq." + /* 10 */ "..........." + + // Level 18 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "..........." + /* 3 */ "..........." + /* 4 */ "..........." + /* 5 */ ".....r....." + /* 6 */ "..........." + /* 7 */ "..........." + /* 8 */ "..........." + /* 9 */ "..........." + /* 10 */ "...........", + + // Connectors: + "2: 0, 1, 5: 4\n" /* Type 2, direction X- */ + "2: 5, 1, 0: 2\n" /* Type 2, direction Z- */ + "2: 10, 1, 5: 5\n" /* Type 2, direction X+ */ + "2: 5, 1, 10: 3\n" /* Type 2, direction Z+ */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // HighTemple + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Well: + // The data has been exported from the gallery Plains, area index 143, ID 487, created by STR_Warrior + { + // Size: + 7, 14, 7, // SizeX = 7, SizeY = 14, SizeZ = 7 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 6, 13, 6, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 1: 0\n" /* stone */ + "b: 4: 0\n" /* cobblestone */ + "c: 8: 0\n" /* water */ + "d: 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 */, + + // Block data: + // Level 0 + /* z\x* 0123456 */ + /* 0 */ "aaaaaaa" + /* 1 */ "aaaaaaa" + /* 2 */ "aaaaaaa" + /* 3 */ "aaaaaaa" + /* 4 */ "aaaaaaa" + /* 5 */ "aaaaaaa" + /* 6 */ "aaaaaaa" + + // Level 1 + /* z\x* 0123456 */ + /* 0 */ "aaaaaaa" + /* 1 */ "abbbbba" + /* 2 */ "abcc.ba" + /* 3 */ "abcccba" + /* 4 */ "abcccba" + /* 5 */ "abbbbba" + /* 6 */ "aaaaaaa" + + // Level 2 + /* z\x* 0123456 */ + /* 0 */ "aaaaaaa" + /* 1 */ "abbbbba" + /* 2 */ "abcccba" + /* 3 */ "abcccba" + /* 4 */ "abcccba" + /* 5 */ "abbbbba" + /* 6 */ "aaaaaaa" + + // Level 3 + /* z\x* 0123456 */ + /* 0 */ "aaaaaaa" + /* 1 */ "abbbbba" + /* 2 */ "abcccba" + /* 3 */ "abcccba" + /* 4 */ "abcccba" + /* 5 */ "abbbbba" + /* 6 */ "aaaaaaa" + + // Level 4 + /* z\x* 0123456 */ + /* 0 */ "aaaaaaa" + /* 1 */ "abbbbba" + /* 2 */ "abcccba" + /* 3 */ "abcccba" + /* 4 */ "abcccba" + /* 5 */ "abbbbba" + /* 6 */ "aaaaaaa" + + // Level 5 + /* z\x* 0123456 */ + /* 0 */ "ddddddd" + /* 1 */ "dbbbbbd" + /* 2 */ "dbcccbd" + /* 3 */ "dbcccbd" + /* 4 */ "dbcccbd" + /* 5 */ "dbbbbbd" + /* 6 */ "ddddddd" + + // Level 6 + /* z\x* 0123456 */ + /* 0 */ "ddddddd" + /* 1 */ "dbbbbbd" + /* 2 */ "dbcccbd" + /* 3 */ "dbcccbd" + /* 4 */ "dbcccbd" + /* 5 */ "dbbbbbd" + /* 6 */ "ddddddd" + + // Level 7 + /* z\x* 0123456 */ + /* 0 */ "ddddddd" + /* 1 */ "dbbbbbd" + /* 2 */ "dbcccbd" + /* 3 */ "dbcccbd" + /* 4 */ "dbcccbd" + /* 5 */ "dbbbbbd" + /* 6 */ "ddddddd" + + // Level 8 + /* z\x* 0123456 */ + /* 0 */ "eefffee" + /* 1 */ "ebbbbbe" + /* 2 */ "fbcccbf" + /* 3 */ "fbcccbf" + /* 4 */ "fbcccbf" + /* 5 */ "ebbbbbe" + /* 6 */ "eefffee" + + // Level 9 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".bghib." + /* 2 */ ".j...j." + /* 3 */ ".i...g." + /* 4 */ ".h...h." + /* 5 */ ".bgjib." + /* 6 */ "......." + + // Level 10 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".k...k." + /* 2 */ "......." + /* 3 */ "......." + /* 4 */ "......." + /* 5 */ ".k...k." + /* 6 */ "......." + + // Level 11 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".k...k." + /* 2 */ "......." + /* 3 */ "......." + /* 4 */ "......." + /* 5 */ ".k...k." + /* 6 */ "......." + + // Level 12 + /* z\x* 0123456 */ + /* 0 */ ".lnnnl." + /* 1 */ "loooool" + /* 2 */ "nooooon" + /* 3 */ "nooooon" + /* 4 */ "nooooon" + /* 5 */ "loooool" + /* 6 */ ".lnnnl." + + // Level 13 + /* z\x* 0123456 */ + /* 0 */ "n.....n" + /* 1 */ "......." + /* 2 */ "..nnn.." + /* 3 */ "..non.." + /* 4 */ "..nnn.." + /* 5 */ "......." + /* 6 */ "n.....n", + + // Connectors: + "2: 0, 9, 3: 4\n" /* Type 2, direction X- */ + "2: 3, 9, 0: 2\n" /* Type 2, direction Z- */ + "2: 6, 9, 3: 5\n" /* Type 2, direction X+ */ + "2: 3, 9, 6: 3\n" /* Type 2, direction Z+ */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + }, // Well +}; + + + + + +// The prefab counts: + +const size_t g_JapaneseVillagePrefabsCount = ARRAYCOUNT(g_JapaneseVillagePrefabs); + +const size_t g_JapaneseVillageStartingPrefabsCount = ARRAYCOUNT(g_JapaneseVillageStartingPrefabs); + diff --git a/src/Generating/Prefabs/JapaneseVillagePrefabs.h b/src/Generating/Prefabs/JapaneseVillagePrefabs.h new file mode 100644 index 000000000..501b6c1cd --- /dev/null +++ b/src/Generating/Prefabs/JapaneseVillagePrefabs.h @@ -0,0 +1,15 @@ + +// JapaneseVillagePrefabs.h + +// Declares the prefabs in the group JapaneseVillage + +#include "../Prefab.h" + + + + + +extern const cPrefab::sDef g_JapaneseVillagePrefabs[]; +extern const cPrefab::sDef g_JapaneseVillageStartingPrefabs[]; +extern const size_t g_JapaneseVillagePrefabsCount; +extern const size_t g_JapaneseVillageStartingPrefabsCount; diff --git a/src/Generating/VillageGen.cpp b/src/Generating/VillageGen.cpp index bcce62af5..62822c33b 100644 --- a/src/Generating/VillageGen.cpp +++ b/src/Generating/VillageGen.cpp @@ -5,6 +5,7 @@ #include "Globals.h" #include "VillageGen.h" +#include "Prefabs/JapaneseVillagePrefabs.h" #include "Prefabs/PlainsVillagePrefabs.h" #include "Prefabs/SandVillagePrefabs.h" #include "Prefabs/SandFlatRoofVillagePrefabs.h" @@ -59,6 +60,7 @@ public: cPrefab * RoadPiece = new cPrefab(BA, 1); RoadPiece->AddConnector(0, 0, 1, BLOCK_FACE_XM, -2); RoadPiece->AddConnector(len - 1, 0, 1, BLOCK_FACE_XP, -2); + RoadPiece->SetDefaultWeight(100); // Add the road connectors: for (int x = 1; x < len; x += 12) @@ -84,8 +86,8 @@ public: // cPrefabPiecePool overrides: virtual int GetPieceWeight(const cPlacedPiece & a_PlacedPiece, const cPiece::cConnector & a_ExistingConnector, const cPiece & a_NewPiece) override { - // Roads cannot branch T-wise (appending -2 connector to a +2 connector): - if ((a_ExistingConnector.m_Type == 2) && (a_PlacedPiece.GetDepth() > 0)) + // Roads cannot branch T-wise (appending -2 connector to a +2 connector on a 1-high piece): + if ((a_ExistingConnector.m_Type == 2) && (a_PlacedPiece.GetDepth() > 0) && (a_PlacedPiece.GetPiece().GetSize().y == 1)) { return 0; } @@ -283,6 +285,9 @@ static cVillagePiecePool g_SandFlatRoofVillage(g_SandFlatRoofVillagePrefabs, g_S /** The prefabs for the plains village. */ static cVillagePiecePool g_PlainsVillage(g_PlainsVillagePrefabs, g_PlainsVillagePrefabsCount, g_PlainsVillageStartingPrefabs, g_PlainsVillageStartingPrefabsCount); +/** The prefabs for the Japanese village. */ +static cVillagePiecePool g_JapaneseVillage(g_JapaneseVillagePrefabs, g_JapaneseVillagePrefabsCount, g_JapaneseVillageStartingPrefabs, g_JapaneseVillageStartingPrefabsCount); + @@ -316,6 +321,8 @@ cGridStructGen::cStructurePtr cVillageGen::CreateStructure(int a_OriginX, int a_ cVillagePiecePool * VillagePrefabs = NULL; BLOCKTYPE RoadBlock = E_BLOCK_GRAVEL; int rnd = m_Noise.IntNoise2DInt(a_OriginX, a_OriginZ) / 11; + cVillagePiecePool * PlainsVillage = (rnd % 2 == 0) ? &g_PlainsVillage : &g_JapaneseVillage; + cVillagePiecePool * DesertVillage = (rnd % 2 == 0) ? &g_SandVillage : &g_SandFlatRoofVillage; for (size_t i = 0; i < ARRAYCOUNT(Biomes); i++) { switch (Biomes[i]) @@ -324,7 +331,7 @@ cGridStructGen::cStructurePtr cVillageGen::CreateStructure(int a_OriginX, int a_ case biDesertM: { // These biomes allow sand villages - VillagePrefabs = (rnd % 2 == 0) ? &g_SandVillage : &g_SandFlatRoofVillage; + VillagePrefabs = DesertVillage; // RoadBlock = E_BLOCK_SANDSTONE; break; } @@ -334,7 +341,7 @@ cGridStructGen::cStructurePtr cVillageGen::CreateStructure(int a_OriginX, int a_ case biSunflowerPlains: { // These biomes allow plains-style villages - VillagePrefabs = &g_PlainsVillage; + VillagePrefabs = PlainsVillage; break; } default: -- cgit v1.2.3 From 1a742a2b52d32bd22cd57b4d462bee312717e010 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Sun, 25 May 2014 23:50:16 +0200 Subject: Added support for Miners' Village. The village contains both prefabs that snap to ground and prefabs that connect strictly via connectors. Fixes #1027. --- src/Generating/PieceGenerator.cpp | 13 +- src/Generating/PieceGenerator.h | 21 +- src/Generating/Prefab.cpp | 6 +- src/Generating/Prefab.h | 12 + src/Generating/Prefabs/JapaneseVillagePrefabs.cpp | 808 +++- src/Generating/Prefabs/NetherFortPrefabs.cpp | 102 + src/Generating/Prefabs/PlainsVillagePrefabs.cpp | 5069 ++++++++++++-------- .../Prefabs/SandFlatRoofVillagePrefabs.cpp | 111 +- src/Generating/Prefabs/SandVillagePrefabs.cpp | 545 ++- src/Generating/VillageGen.cpp | 45 +- 10 files changed, 4468 insertions(+), 2264 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/PieceGenerator.cpp b/src/Generating/PieceGenerator.cpp index 7d478f1a1..1880a20d5 100644 --- a/src/Generating/PieceGenerator.cpp +++ b/src/Generating/PieceGenerator.cpp @@ -286,7 +286,8 @@ cPlacedPiece::cPlacedPiece(const cPlacedPiece * a_Parent, const cPiece & a_Piece m_Parent(a_Parent), m_Piece(&a_Piece), m_Coords(a_Coords), - m_NumCCWRotations(a_NumCCWRotations) + m_NumCCWRotations(a_NumCCWRotations), + m_HasBeenMovedToGround(false) { m_Depth = (m_Parent == NULL) ? 0 : (m_Parent->GetDepth() + 1); m_HitBox = a_Piece.RotateMoveHitBox(a_NumCCWRotations, a_Coords.x, a_Coords.y, a_Coords.z); @@ -317,6 +318,16 @@ cPiece::cConnector cPlacedPiece::GetRotatedConnector(const cPiece::cConnector & +void cPlacedPiece::MoveToGroundBy(int a_OffsetY) +{ + m_Coords.y += a_OffsetY; + m_HasBeenMovedToGround = true; +} + + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // cPieceGenerator: diff --git a/src/Generating/PieceGenerator.h b/src/Generating/PieceGenerator.h index e396643a9..21c155c96 100644 --- a/src/Generating/PieceGenerator.h +++ b/src/Generating/PieceGenerator.h @@ -139,11 +139,13 @@ class cPlacedPiece public: cPlacedPiece(const cPlacedPiece * a_Parent, const cPiece & a_Piece, const Vector3i & a_Coords, int a_NumCCWRotations); - const cPiece & GetPiece (void) const { return *m_Piece; } - const Vector3i & GetCoords (void) const { return m_Coords; } - int GetNumCCWRotations(void) const { return m_NumCCWRotations; } - const cCuboid & GetHitBox (void) const { return m_HitBox; } - int GetDepth (void) const { return m_Depth; } + const cPlacedPiece * GetParent (void) const { return m_Parent; } + const cPiece & GetPiece (void) const { return *m_Piece; } + const Vector3i & GetCoords (void) const { return m_Coords; } + int GetNumCCWRotations (void) const { return m_NumCCWRotations; } + const cCuboid & GetHitBox (void) const { return m_HitBox; } + int GetDepth (void) const { return m_Depth; } + bool HasBeenMovedToGround(void) const { return m_HasBeenMovedToGround; } /** Returns the coords as a modifiable object. */ Vector3i & GetCoords(void) { return m_Coords; } @@ -156,6 +158,11 @@ public: this placement. */ cPiece::cConnector GetRotatedConnector(const cPiece::cConnector & a_Connector) const; + /** Moves the placed piece Y-wise by the specified offset. + Sets m_HasBeenMovedToGround to true, too. + Used eg. by village houses. */ + void MoveToGroundBy(int a_OffsetY); + protected: const cPlacedPiece * m_Parent; const cPiece * m_Piece; @@ -163,6 +170,10 @@ protected: int m_NumCCWRotations; cCuboid m_HitBox; // Hitbox of the placed piece, in world coords int m_Depth; // Depth in the generated piece tree + + /** Set to true once the piece has been moved Y-wise. + Used eg. by village houses. */ + bool m_HasBeenMovedToGround; }; typedef std::vector cPlacedPieces; diff --git a/src/Generating/Prefab.cpp b/src/Generating/Prefab.cpp index 05979507a..e41907325 100644 --- a/src/Generating/Prefab.cpp +++ b/src/Generating/Prefab.cpp @@ -127,7 +127,8 @@ cPrefab::cPrefab(const cPrefab::sDef & a_Def) : m_MergeStrategy(a_Def.m_MergeStrategy), m_ShouldExtendFloor(a_Def.m_ShouldExtendFloor), m_DefaultWeight(a_Def.m_DefaultWeight), - m_AddWeightIfSame(a_Def.m_AddWeightIfSame) + m_AddWeightIfSame(a_Def.m_AddWeightIfSame), + m_MoveToGround(a_Def.m_MoveToGround) { m_BlockArea[0].Create(m_Size); CharMap cm; @@ -149,7 +150,8 @@ cPrefab::cPrefab(const cBlockArea & a_Image, int a_AllowedRotations) : m_MergeStrategy(cBlockArea::msOverwrite), m_ShouldExtendFloor(false), m_DefaultWeight(1), - m_AddWeightIfSame(0) + m_AddWeightIfSame(0), + m_MoveToGround(false) { m_HitBox.p1.Set(0, 0, 0); m_HitBox.p2.Set(m_Size.x - 1, m_Size.y - 1, m_Size.z - 1); diff --git a/src/Generating/Prefab.h b/src/Generating/Prefab.h index adc0e688e..8b4e4b4ef 100644 --- a/src/Generating/Prefab.h +++ b/src/Generating/Prefab.h @@ -82,6 +82,10 @@ public: Can be positive or negative. This is used e. g. to make nether bridges prefer spanning multiple segments or to penalize turrets next to each other. */ int m_AddWeightIfSame; + + /** If true, the piece will be moved Y-wise so that its first connector is sitting on the terrain. + This is used e. g. for village houses. */ + bool m_MoveToGround; }; @@ -115,6 +119,10 @@ public: /** Adds the specified connector to the list of connectors this piece supports. */ void AddConnector(int a_RelX, int a_RelY, int a_RelZ, eBlockFace a_Direction, int a_Type); + + /** Returns whether the prefab should be moved Y-wise to ground before drawing, rather than staying + at the coords governed by the connectors. */ + bool ShouldMoveToGround(void) const { return m_MoveToGround; } protected: /** Packs complete definition of a single block, for per-letter assignment. */ @@ -169,6 +177,10 @@ protected: Can be positive or negative. This is used e. g. to make nether bridges prefer spanning multiple segments or to penalize turrets next to each other. */ int m_AddWeightIfSame; + + /** If true, the piece will be moved Y-wise so that its first connector is sitting on the terrain. + This is used e. g. for village houses. */ + bool m_MoveToGround; // cPiece overrides: diff --git a/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp b/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp index 2b129f520..5ec222f84 100644 --- a/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp +++ b/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp @@ -122,6 +122,9 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // Arch @@ -385,10 +388,165 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // Forge + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Garden2: + // The data has been exported from the gallery Plains, area index 147, ID 491, created by Aloe_vera + { + // Size: + 16, 5, 16, // SizeX = 16, SizeY = 5, SizeZ = 16 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 15, 4, 15, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 3: 0\n" /* dirt */ + "b: 8: 0\n" /* water */ + "c: 2: 0\n" /* grass */ + "d: 17: 1\n" /* tree */ + "e: 13: 0\n" /* gravel */ + "f: 31: 2\n" /* tallgrass */ + "g: 18: 5\n" /* leaves */ + "h: 38: 7\n" /* rose */ + "i: 17: 9\n" /* tree */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "aaaaaaaaaaaaaaaa" + /* 1 */ "aaaaaaaaaaaaaaaa" + /* 2 */ "aaaaaaaaaaaaaaaa" + /* 3 */ "aaaaaaaaaaaaaaaa" + /* 4 */ "aaaaaaaaaaaaaaaa" + /* 5 */ "aaaaaaaaaaaaaaaa" + /* 6 */ "aaaaaaaaaaaaaaaa" + /* 7 */ "aaaaaaaaaaaaaaaa" + /* 8 */ "aaaaaaaaaaaaaaaa" + /* 9 */ "aaaaaaaaaaaaaaaa" + /* 10 */ "aaaaaaaaaaaaaaaa" + /* 11 */ "aaaaaaaaaaaaaaaa" + /* 12 */ "aaaaaaaaaaaaaaaa" + /* 13 */ "aaaaaaaaaaaaaaaa" + /* 14 */ "aaaaaaaaaaaaaaaa" + /* 15 */ "aaaaaaaaaaaaaaaa" + + // Level 1 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "aaaaaaaaaaaaaaaa" + /* 1 */ "aaaaaaaaaaaaaaaa" + /* 2 */ "aaaaaaaaaaaaaaaa" + /* 3 */ "aaaaaaaaaaaaaaaa" + /* 4 */ "aaaaaaaaaaaaaaaa" + /* 5 */ "aaaaaaaaaaaaaaaa" + /* 6 */ "aaaabbaaaaaaaaaa" + /* 7 */ "aaabbbaaaaaaaaaa" + /* 8 */ "aaabbaaaaaaaaaaa" + /* 9 */ "aaaabaaaaaaaaaaa" + /* 10 */ "aaaaaaaaaaaaaaaa" + /* 11 */ "aaaaaaaaaaaaaaaa" + /* 12 */ "aaaaaaaaaaaaaaaa" + /* 13 */ "aaaaaaaaaaaaaaaa" + /* 14 */ "aaaaaaaaaaaaaaaa" + /* 15 */ "aaaaaaaaaaaaaaaa" + + // Level 2 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "cccccccccccccccc" + /* 1 */ "ccdccccccccdcccc" + /* 2 */ "cccccceecccccdcc" + /* 3 */ "ccccccceeccccccc" + /* 4 */ "cccccccceccccccc" + /* 5 */ "cccbbbbceccccccc" + /* 6 */ "cccbbbbceecccccc" + /* 7 */ "ccbbbbbcceeeeccc" + /* 8 */ "ccbbbbbccccceecc" + /* 9 */ "ccbbbbcccccccecc" + /* 10 */ "ccccbcccccccceec" + /* 11 */ "ccccccccccccccec" + /* 12 */ "ccccccccaaacccec" + /* 13 */ "cccccccccaccccec" + /* 14 */ "ccccccccccccceec" + /* 15 */ "cccccccccccceecc" + + // Level 3 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "......f...gg.g.." + /* 1 */ "..gg.....gggggg." + /* 2 */ "ffgg......ghgggg" + /* 3 */ ".............gg." + /* 4 */ "...........f...." + /* 5 */ "...........h.ff." + /* 6 */ ".............fh." + /* 7 */ "...............f" + /* 8 */ "................" + /* 9 */ ".......ff.f....." + /* 10 */ ".f.....ffggf...." + /* 11 */ ".......gggg.f..." + /* 12 */ ".f......iddg...." + /* 13 */ ".....f..gdgg...." + /* 14 */ "....ff...gg....." + /* 15 */ "................" + + // Level 4 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "................" + /* 1 */ "...........g.g.." + /* 2 */ ".............gg." + /* 3 */ "................" + /* 4 */ "................" + /* 5 */ "................" + /* 6 */ "................" + /* 7 */ "................" + /* 8 */ "................" + /* 9 */ "................" + /* 10 */ ".........g......" + /* 11 */ "........ggg....." + /* 12 */ "........ggg....." + /* 13 */ ".........g......" + /* 14 */ "................" + /* 15 */ "................", + + // Connectors: + "-1: 12, 3, 15: 3\n" /* Type -1, direction Z+ */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + true, + }, // Garden2 + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // HouseMid: // The data has been exported from the gallery Plains, area index 62, ID 119, created by Aloe_vera @@ -558,6 +716,9 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // HouseMid @@ -666,10 +827,137 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // HouseSmall + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // HouseSmallDblWithDoor: + // The data has been exported from the gallery Plains, area index 113, ID 265, created by Aloe_vera + { + // Size: + 11, 6, 7, // SizeX = 11, SizeY = 6, SizeZ = 7 + + // Hitbox (relative to bounding box): + -1, 0, 0, // MinX, MinY, MinZ + 11, 5, 7, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 5: 2\n" /* wood */ + "b: 17: 9\n" /* tree */ + "c: 17: 1\n" /* tree */ + "d: 35: 0\n" /* wool */ + "e: 64: 7\n" /* wooddoorblock */ + "f:171:12\n" /* carpet */ + "g:135: 1\n" /* 135 */ + "h:126: 2\n" /* woodenslab */ + "i:135: 2\n" /* 135 */ + "j: 50: 4\n" /* torch */ + "k: 64:12\n" /* wooddoorblock */ + "l: 85: 0\n" /* fence */ + "m: 19: 0\n" /* sponge */ + "n: 44: 8\n" /* step */ + "o: 43: 0\n" /* doubleslab */ + "p: 44: 0\n" /* step */, + + // Block data: + // Level 0 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "mmmmmmmmmmm" + /* 1 */ "maaaaaaaaam" + /* 2 */ "maaaabaaaam" + /* 3 */ "maaaabaaaam" + /* 4 */ "maaaabaaaam" + /* 5 */ "maaaaaaaaam" + /* 6 */ "mmmmmmmmmmm" + + // Level 1 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".cdedcdddc." + /* 2 */ ".dfff.fffd." + /* 3 */ ".dgffdfhfd." + /* 4 */ ".diifdfffd." + /* 5 */ ".cdddcdddc." + /* 6 */ "..........." + + // Level 2 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ ".j...j...j." + /* 1 */ ".cdkdclllc." + /* 2 */ ".d.......l." + /* 3 */ ".l...l...l." + /* 4 */ ".d...l...l." + /* 5 */ ".clllclllc." + /* 6 */ "..........." + + // Level 3 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ ".nnnnnnnnn." + /* 1 */ "ncdddcdddcn" + /* 2 */ "nd...d...dn" + /* 3 */ "nd...d...dn" + /* 4 */ "nd...d...dn" + /* 5 */ "ncdddcdddcn" + /* 6 */ ".nnnnnnnnn." + + // Level 4 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "op.......po" + /* 1 */ "ppppppppppp" + /* 2 */ ".pooooooop." + /* 3 */ ".ponndnnop." + /* 4 */ ".pooooooop." + /* 5 */ "ppppppppppp" + /* 6 */ "op.......po" + + // Level 5 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "..........." + /* 3 */ "...ppppp..." + /* 4 */ "..........." + /* 5 */ "..........." + /* 6 */ "...........", + + // Connectors: + "-1: 3, 1, -1: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + true, + }, // HouseSmallDblWithDoor + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // HouseSmallDouble: // The data has been exported from the gallery Plains, area index 72, ID 135, created by Aloe_vera @@ -784,10 +1072,126 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // HouseSmallDouble + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // HouseSmallWithDoor: + // The data has been exported from the gallery Plains, area index 112, ID 264, created by Aloe_vera + { + // Size: + 7, 6, 7, // SizeX = 7, SizeY = 6, SizeZ = 7 + + // Hitbox (relative to bounding box): + -1, 0, 0, // MinX, MinY, MinZ + 7, 5, 7, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 5: 2\n" /* wood */ + "b: 17: 1\n" /* tree */ + "c: 35: 0\n" /* wool */ + "d: 64: 7\n" /* wooddoorblock */ + "e: 50: 4\n" /* torch */ + "f: 64:12\n" /* wooddoorblock */ + "g: 85: 0\n" /* fence */ + "h: 44: 8\n" /* step */ + "i: 43: 0\n" /* doubleslab */ + "j: 44: 0\n" /* step */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "maaaaam" + /* 2 */ "maaaaam" + /* 3 */ "maaaaam" + /* 4 */ "maaaaam" + /* 5 */ "maaaaam" + /* 6 */ "mmmmmmm" + + // Level 1 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".bcdcb." + /* 2 */ ".c...c." + /* 3 */ ".c...c." + /* 4 */ ".c...c." + /* 5 */ ".bcccb." + /* 6 */ "......." + + // Level 2 + /* z\x* 0123456 */ + /* 0 */ ".....e." + /* 1 */ ".bcfcb." + /* 2 */ ".g...g." + /* 3 */ ".g...g." + /* 4 */ ".g...g." + /* 5 */ ".bgggb." + /* 6 */ "......." + + // Level 3 + /* z\x* 0123456 */ + /* 0 */ ".hhhhh." + /* 1 */ "hbcccbh" + /* 2 */ "hc...ch" + /* 3 */ "hc...ch" + /* 4 */ "hc...ch" + /* 5 */ "hbcccbh" + /* 6 */ ".hhhhh." + + // Level 4 + /* z\x* 0123456 */ + /* 0 */ "ij...ji" + /* 1 */ "jjjjjjj" + /* 2 */ ".jiiij." + /* 3 */ ".jiiij." + /* 4 */ ".jiiij." + /* 5 */ "jjjjjjj" + /* 6 */ "ij...ji" + + // Level 5 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ "......." + /* 2 */ "......." + /* 3 */ "...j..." + /* 4 */ "......." + /* 5 */ "......." + /* 6 */ ".......", + + // Connectors: + "-1: 3, 1, 0: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + true, + }, // HouseSmallWithDoor + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // HouseWide: // The data has been exported from the gallery Plains, area index 64, ID 121, created by STR_Warrior @@ -929,6 +1333,9 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // HouseWide @@ -1172,6 +1579,9 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // HouseWithGarden @@ -1363,10 +1773,375 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // HouseWithSakura1 + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // HouseWithSpa: + // The data has been exported from the gallery Plains, area index 73, ID 139, created by Aloe_vera + { + // Size: + 16, 8, 14, // SizeX = 16, SizeY = 8, SizeZ = 14 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 15, 7, 13, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 5: 2\n" /* wood */ + "b: 3: 0\n" /* dirt */ + "c: 2: 0\n" /* grass */ + "d: 8: 0\n" /* water */ + "e:135: 3\n" /* 135 */ + "f:135: 1\n" /* 135 */ + "g:113: 0\n" /* netherbrickfence */ + "h: 17: 1\n" /* tree */ + "i: 35: 0\n" /* wool */ + "j:171:12\n" /* carpet */ + "k: 64: 6\n" /* wooddoorblock */ + "l:126: 2\n" /* woodenslab */ + "m: 19: 0\n" /* sponge */ + "n:135: 2\n" /* 135 */ + "o: 64: 7\n" /* wooddoorblock */ + "p: 50: 4\n" /* torch */ + "q: 85: 0\n" /* fence */ + "r: 64:12\n" /* wooddoorblock */ + "s: 50: 3\n" /* torch */ + "t: 44: 8\n" /* step */ + "u: 43: 0\n" /* doubleslab */ + "v: 44: 0\n" /* step */, + + // Block data: + // Level 0 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "................" + /* 1 */ ".aaaaaaaaaaaaaa." + /* 2 */ ".aaaaaaaaaaaaaa." + /* 3 */ ".aaaaaaaaaaaaaa." + /* 4 */ ".aaaaaaaaaaaaaa." + /* 5 */ ".aaaaaaaaaaaaaa." + /* 6 */ ".aaaaaaaaaaaaaa." + /* 7 */ ".aaaaaabbbbbbbbb" + /* 8 */ ".aaaaaabbbbbbbbb" + /* 9 */ ".aaaaaabbbbbbbbb" + /* 10 */ ".aaaaaabbbbbbbbb" + /* 11 */ ".aaaaaabbbbbbbbb" + /* 12 */ ".aaaaaabbbbbbbbb" + /* 13 */ ".......bbbbbbbbb" + + // Level 1 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmmmmmmmmmmm" + /* 1 */ "maaaaaaaaaaaaaam" + /* 2 */ "maaaaaaaaaaaaaam" + /* 3 */ "maaaaaaaaaaaaaam" + /* 4 */ "maaaaaaaaaaaaaam" + /* 5 */ "maaaaaaaaaaaaaam" + /* 6 */ "maaaaaaaaaaaaaam" + /* 7 */ "maaaaaaaaaaccccc" + /* 8 */ "maaaaaaacccccccc" + /* 9 */ "maaaaaaacccccccc" + /* 10 */ "maaaaaaacccccccc" + /* 11 */ "maaaaaaccccccccc" + /* 12 */ "maaaaaaccccccccc" + /* 13 */ "mmmmmmmccccccccc" + + // Level 2 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "................" + /* 1 */ ".aaaaaaaaaaaaaa." + /* 2 */ ".aaaaaaaaaaaaaa." + /* 3 */ ".aaaaaaaaaaaaaa." + /* 4 */ ".aaaaaaaaaaaaaa." + /* 5 */ ".aaaaaaaaaaaaaa." + /* 6 */ ".aaddaaaaaaaaaa." + /* 7 */ ".aaddaaeeef....." + /* 8 */ ".aaddaaf........" + /* 9 */ ".aaddaaf........" + /* 10 */ ".aaddaae........" + /* 11 */ ".aaddaa........." + /* 12 */ ".aaaaaa........." + /* 13 */ "................" + + // Level 3 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "................" + /* 1 */ ".ggggghiiihiiih." + /* 2 */ ".geee.ijjjjjjji." + /* 3 */ ".gf...kjjjijlji." + /* 4 */ ".gf...innjijjji." + /* 5 */ ".g....hiiohiiih." + /* 6 */ ".g....g........." + /* 7 */ ".g.............." + /* 8 */ ".g.............." + /* 9 */ ".g.............." + /* 10 */ ".g....g........." + /* 11 */ ".g....g........." + /* 12 */ ".gggggg........." + /* 13 */ "................" + + // Level 4 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "......p...p...p." + /* 1 */ ".g....hqqqhqqqh." + /* 2 */ "......i.......i." + /* 3 */ "......r...q...q." + /* 4 */ "......i...q...i." + /* 5 */ "......hqqrhqqqh." + /* 6 */ "......g...s....." + /* 7 */ "................" + /* 8 */ "................" + /* 9 */ "................" + /* 10 */ "................" + /* 11 */ "................" + /* 12 */ ".g....g........." + /* 13 */ "................" + + // Level 5 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ ".tttttttttttttt." + /* 1 */ "tggggghqqqhqqqht" + /* 2 */ "tg....i.......it" + /* 3 */ "tg....i...i...it" + /* 4 */ "tg....i...i...it" + /* 5 */ "tg....hiiihiiiht" + /* 6 */ "tg....gtttttttt." + /* 7 */ "tg....gt........" + /* 8 */ "tg....gt........" + /* 9 */ "tg....gt........" + /* 10 */ "tg....gt........" + /* 11 */ "tg....gt........" + /* 12 */ "tggggggt........" + /* 13 */ ".tttttt........." + + // Level 6 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "uv............vu" + /* 1 */ "vvvvvvvvvvvvvvvv" + /* 2 */ ".vuuuuuuuuuuuuv." + /* 3 */ ".vuuuuuutuuuuuv." + /* 4 */ ".vuuuuuuuuuuuuv." + /* 5 */ ".vuuuuvvvvvvvvvv" + /* 6 */ ".vuuuuv.......vu" + /* 7 */ ".vuuuuv........." + /* 8 */ ".vuuuuv........." + /* 9 */ ".vuuuuv........." + /* 10 */ ".vuuuuv........." + /* 11 */ ".vuuuuv........." + /* 12 */ "vvvvvvvv........" + /* 13 */ "uv....vu........" + + // Level 7 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "................" + /* 1 */ "................" + /* 2 */ "................" + /* 3 */ "...vvvvvvvvvv..." + /* 4 */ "...vv..........." + /* 5 */ "...vv..........." + /* 6 */ "...vv..........." + /* 7 */ "...vv..........." + /* 8 */ "...vv..........." + /* 9 */ "...vv..........." + /* 10 */ "...vv..........." + /* 11 */ "................" + /* 12 */ "................" + /* 13 */ "................", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + true, + }, // HouseWithSpa + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // MediumSakuraTree: + // The data has been exported from the gallery Plains, area index 146, ID 490, created by STR_Warrior + { + // Size: + 7, 10, 7, // SizeX = 7, SizeY = 10, SizeZ = 7 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 6, 9, 6, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 3: 0\n" /* dirt */ + "b: 2: 0\n" /* grass */ + "c: 31: 1\n" /* tallgrass */ + "d: 38: 7\n" /* rose */ + "e: 17: 1\n" /* tree */ + "f: 38: 0\n" /* rose */ + "g: 38: 8\n" /* rose */ + "h: 38: 5\n" /* rose */ + "i: 35: 6\n" /* wool */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 0123456 */ + /* 0 */ "aaaaaaa" + /* 1 */ "aaaaaaa" + /* 2 */ "aaaaaaa" + /* 3 */ "aaaaaaa" + /* 4 */ "aaaaaaa" + /* 5 */ "aaaaaaa" + /* 6 */ "aaaaaaa" + + // Level 1 + /* z\x* 0123456 */ + /* 0 */ "bbbbbbb" + /* 1 */ "bbbbbbb" + /* 2 */ "bbbbbbb" + /* 3 */ "bbbabbb" + /* 4 */ "bbbbbbb" + /* 5 */ "bbbbbbb" + /* 6 */ "bbbbbbb" + + // Level 2 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ "..c.c.." + /* 2 */ ".dccdc." + /* 3 */ "..cefc." + /* 4 */ ".ccfgh." + /* 5 */ "..ccc.." + /* 6 */ "......." + + // Level 3 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ "......." + /* 2 */ "......." + /* 3 */ "...e..." + /* 4 */ "......." + /* 5 */ "......." + /* 6 */ "......." + + // Level 4 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ "..i...." + /* 2 */ "......." + /* 3 */ "...e.i." + /* 4 */ ".i....." + /* 5 */ "......." + /* 6 */ "......." + + // Level 5 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ "..i...." + /* 2 */ "...i..." + /* 3 */ "..ieii." + /* 4 */ ".i.ii.." + /* 5 */ "...i..." + /* 6 */ "......." + + // Level 6 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ "..ii..." + /* 2 */ "..iii.." + /* 3 */ ".iieii." + /* 4 */ ".iiii.." + /* 5 */ "..iii.." + /* 6 */ "......." + + // Level 7 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ "..iii.." + /* 2 */ ".iiiii." + /* 3 */ ".iieii." + /* 4 */ ".iiiii." + /* 5 */ "..iii.." + /* 6 */ "......." + + // Level 8 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ "...i..." + /* 2 */ "..iiii." + /* 3 */ ".iiiii." + /* 4 */ "..iii.." + /* 5 */ "...i..." + /* 6 */ "......." + + // Level 9 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ "......." + /* 2 */ "...i..." + /* 3 */ "..iii.." + /* 4 */ "...i..." + /* 5 */ "......." + /* 6 */ ".......", + + // Connectors: + "-1: 3, 2, 0: 2\n" /* Type -1, direction Z- */ + "3: 6, 2, 3: 5\n" /* Type 3, direction X+ */ + "-3: 0, 2, 3: 4\n" /* Type -3, direction X- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + true, + }, // MediumSakuraTree + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Restaurant: // The data has been exported from the gallery Plains, area index 61, ID 117, created by Aloe_vera @@ -1614,6 +2389,9 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // Restaurant @@ -1626,8 +2404,8 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = 12, 8, 6, // SizeX = 12, SizeY = 8, SizeZ = 6 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 11, 7, 5, // MaxX, MaxY, MaxZ + -1, 0, -1, // MinX, MinY, MinZ + 12, 7, 6, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -1719,7 +2497,11 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = /* 5 */ "............", // Connectors: - "-1: 0, 2, 2: 4\n" /* Type -1, direction X- */, + "-1: -1, 2, 2: 4\n" /* Type -1, direction X- */ + "3: 5, 2, 6: 3\n" /* Type 3, direction Z+ */ + "-3: 6, 2, -1: 2\n" /* Type -3, direction Z- */ + "-3: 12, 2, 2: 5\n" /* Type -3, direction X+ */ + "3: 12, 2, 2: 5\n" /* Type 3, direction X+ */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1738,6 +2520,9 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // SakuraDouble @@ -1750,8 +2535,8 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = 5, 7, 5, // SizeX = 5, SizeY = 7, SizeZ = 5 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 4, 6, 4, // MaxX, MaxY, MaxZ + -1, 0, -1, // MinX, MinY, MinZ + 5, 6, 5, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -1819,7 +2604,9 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = /* 4 */ ".....", // Connectors: - "-1: 2, 2, 0: 2\n" /* Type -1, direction Z- */, + "-1: 2, 2, -1: 2\n" /* Type -1, direction Z- */ + "3: 5, 2, 2: 5\n" /* Type 3, direction X+ */ + "-3: -1, 2, 2: 4\n" /* Type -3, direction X- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1838,6 +2625,9 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // SakuraSmall }; // g_JapaneseVillagePrefabs @@ -2192,6 +2982,9 @@ const cPrefab::sDef g_JapaneseVillageStartingPrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // HighTemple @@ -2389,6 +3182,9 @@ const cPrefab::sDef g_JapaneseVillageStartingPrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // Well }; diff --git a/src/Generating/Prefabs/NetherFortPrefabs.cpp b/src/Generating/Prefabs/NetherFortPrefabs.cpp index 088340391..2c97f28ea 100644 --- a/src/Generating/Prefabs/NetherFortPrefabs.cpp +++ b/src/Generating/Prefabs/NetherFortPrefabs.cpp @@ -155,6 +155,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + false, }, // BalconyCorridor @@ -315,6 +318,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + false, }, // BalconyTee2 @@ -435,6 +441,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + false, }, // BlazePlatform @@ -605,6 +614,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + false, }, // BlazePlatformOverhang @@ -805,6 +817,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // AddWeightIfSame: -1000, + + // MoveToGround: + false, }, // BridgeCircleCrossing @@ -1006,6 +1021,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + false, }, // BridgeCrossing @@ -1100,6 +1118,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + false, }, // BridgeCrumble1 @@ -1200,6 +1221,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + false, }, // BridgeCrumble2 @@ -1379,6 +1403,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // AddWeightIfSame: 1000, + + // MoveToGround: + false, }, // BridgeDoubleCrumble @@ -1619,6 +1646,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + false, }, // BridgeFunnelDown @@ -1948,6 +1978,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + false, }, // BridgeLevelCrossing @@ -2067,6 +2100,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // AddWeightIfSame: 1000, + + // MoveToGround: + false, }, // BridgeSegment @@ -2227,6 +2263,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + false, }, // BridgeTee @@ -2328,6 +2367,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + false, }, // Corridor11 @@ -2429,6 +2471,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + false, }, // Corridor13 @@ -2524,6 +2569,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // AddWeightIfSame: 500, + + // MoveToGround: + false, }, // Corridor5 @@ -2663,6 +2711,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + false, }, // CorridorCorner5 @@ -2803,6 +2854,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + false, }, // CorridorCornerChest5 @@ -2928,6 +2982,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // AddWeightIfSame: -50, + + // MoveToGround: + false, }, // CorridorCrossing @@ -3080,6 +3137,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + false, }, // CorridorStairs @@ -3181,6 +3241,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + false, }, // DarkCorridor @@ -3438,6 +3501,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + false, }, // LavaStaircase @@ -3769,6 +3835,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // AddWeightIfSame: -1000, + + // MoveToGround: + false, }, // LavaStaircaseBig @@ -4047,6 +4116,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + false, }, // LavaStairsBridge @@ -4235,6 +4307,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // AddWeightIfSame: -1000, + + // MoveToGround: + false, }, // MidStaircase @@ -4378,6 +4453,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + false, }, // StairsToOpen1 @@ -4521,6 +4599,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + false, }, // StairsToOpen2 @@ -4638,6 +4719,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + false, }, // Tee2x4 @@ -4767,6 +4851,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + false, }, // Tee4x4 @@ -4863,6 +4950,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // AddWeightIfSame: -50, + + // MoveToGround: + false, }, // TinyCorridorCorner @@ -4960,6 +5050,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + false, }, // TinyCorridorCornerChest @@ -5059,6 +5152,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // AddWeightIfSame: -50, + + // MoveToGround: + false, }, // TinyCorridorCrossing @@ -5174,6 +5270,9 @@ const cPrefab::sDef g_NetherFortPrefabs[] = // AddWeightIfSame: -99, + + // MoveToGround: + false, }, // Turret }; // g_NetherFortPrefabs @@ -5378,6 +5477,9 @@ const cPrefab::sDef g_NetherFortStartingPrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + false, }, // CentralRoom }; diff --git a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp index 28488be14..fee6610c9 100644 --- a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp +++ b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp @@ -20,11 +20,11 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // The data has been exported from the gallery Plains, area index 26, ID 70, created by Taugrammaton { // Size: - 13, 4, 12, // SizeX = 13, SizeY = 4, SizeZ = 12 + 13, 8, 12, // SizeX = 13, SizeY = 8, SizeZ = 12 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 12, 3, 11, // MaxX, MaxY, MaxZ + 12, 7, 11, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -36,6 +36,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = "f: 8: 0\n" /* water */ "g: 85: 0\n" /* fence */ "h: 59: 7\n" /* crops */ + "i: 50: 5\n" /* torch */ "m: 19: 0\n" /* sponge */, // Block data: @@ -101,7 +102,71 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 8 */ "ghh..h....hhg" /* 9 */ "ghh.....h.hhg" /* 10 */ "ghh.hh.h..hhg" - /* 11 */ "g..g..g..g..g", + /* 11 */ "g..g..g..g..g" + + // Level 4 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "i..i..i..i..i" + /* 1 */ "............." + /* 2 */ "............." + /* 3 */ "............." + /* 4 */ "............." + /* 5 */ "............." + /* 6 */ "............." + /* 7 */ "............." + /* 8 */ "............." + /* 9 */ "............." + /* 10 */ "............." + /* 11 */ "i..i..i..i..i" + + // Level 5 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "............." + /* 1 */ "............." + /* 2 */ "............." + /* 3 */ "............." + /* 4 */ "............." + /* 5 */ "............." + /* 6 */ "............." + /* 7 */ "............." + /* 8 */ "............." + /* 9 */ "............." + /* 10 */ "............." + /* 11 */ "............." + + // Level 6 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "............." + /* 1 */ "............." + /* 2 */ "............." + /* 3 */ "............." + /* 4 */ "............." + /* 5 */ "............." + /* 6 */ "............." + /* 7 */ "............." + /* 8 */ "............." + /* 9 */ "............." + /* 10 */ "............." + /* 11 */ "............." + + // Level 7 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "............." + /* 1 */ "............." + /* 2 */ "............." + /* 3 */ "............." + /* 4 */ "............." + /* 5 */ "............." + /* 6 */ "............." + /* 7 */ "............." + /* 8 */ "............." + /* 9 */ "............." + /* 10 */ "............." + /* 11 */ ".............", // Connectors: "-1: 7, 1, 11: 3\n" /* Type -1, direction Z+ */, @@ -123,6 +188,9 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // BigPlantBed @@ -132,130 +200,117 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // The data has been exported from the gallery Plains, area index 23, ID 66, created by xoft { // Size: - 12, 8, 7, // SizeX = 12, SizeY = 8, SizeZ = 7 + 12, 7, 7, // SizeX = 12, SizeY = 7, SizeZ = 7 // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 12, 7, 7, // MaxX, MaxY, MaxZ + -1, -1, 0, // MinX, MinY, MinZ + 12, 6, 7, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 2: 0\n" /* grass */ - "c: 67: 0\n" /* stairs */ - "d: 67: 2\n" /* stairs */ - "e: 67: 1\n" /* stairs */ - "f: 4: 0\n" /* cobblestone */ - "g: 64: 7\n" /* wooddoorblock */ - "h: 53: 3\n" /* woodstairs */ - "i: 53: 1\n" /* woodstairs */ - "j: 85: 0\n" /* fence */ - "k: 53: 0\n" /* woodstairs */ - "l: 53: 2\n" /* woodstairs */ + "a: 4: 0\n" /* cobblestone */ + "b: 67: 0\n" /* stairs */ + "c: 67: 2\n" /* stairs */ + "d: 67: 1\n" /* stairs */ + "e: 64: 7\n" /* wooddoorblock */ + "f: 53: 3\n" /* woodstairs */ + "g: 53: 1\n" /* woodstairs */ + "h: 85: 0\n" /* fence */ + "i: 53: 0\n" /* woodstairs */ + "j: 53: 2\n" /* woodstairs */ + "k:102: 0\n" /* glasspane */ + "l: 64:12\n" /* wooddoorblock */ "m: 19: 0\n" /* sponge */ - "n:102: 0\n" /* glasspane */ - "o: 64:12\n" /* wooddoorblock */ - "p: 50: 3\n" /* torch */ - "q: 72: 0\n" /* woodplate */ - "r: 50: 4\n" /* torch */ - "s: 53: 7\n" /* woodstairs */ - "t: 47: 0\n" /* bookshelf */ - "u: 50: 1\n" /* torch */ - "v: 50: 2\n" /* torch */ - "w: 53: 6\n" /* woodstairs */ - "x: 5: 0\n" /* wood */, + "n: 50: 3\n" /* torch */ + "o: 72: 0\n" /* woodplate */ + "p: 50: 4\n" /* torch */ + "q: 53: 7\n" /* woodstairs */ + "r: 47: 0\n" /* bookshelf */ + "s: 50: 1\n" /* torch */ + "t: 50: 2\n" /* torch */ + "u: 53: 6\n" /* woodstairs */ + "v: 5: 0\n" /* wood */, // Block data: // Level 0 /* z\x* 11 */ /* * 012345678901 */ - /* 0 */ "aaaaaaaaaaaa" - /* 1 */ "aaaaaaaaaaaa" - /* 2 */ "aaaaaaaaaaaa" - /* 3 */ "aaaaaaaaaaaa" - /* 4 */ "aaaaaaaaaaaa" - /* 5 */ "aaaaaaaaaaaa" - /* 6 */ "aaaaaaaaaaaa" + /* 0 */ "mmmmmmmaaamm" + /* 1 */ "maaaaaaaaaam" + /* 2 */ "maaaaaaaaaam" + /* 3 */ "maaaaaaaaaam" + /* 4 */ "maaaaaaaaaam" + /* 5 */ "maaaaaaaaaam" + /* 6 */ "mmmmmmmmmmmm" // Level 1 /* z\x* 11 */ /* * 012345678901 */ - /* 0 */ "bbbbbbbaaabb" - /* 1 */ "baaaaaaaaaab" - /* 2 */ "baaaaaaaaaab" - /* 3 */ "baaaaaaaaaab" - /* 4 */ "baaaaaaaaaab" - /* 5 */ "baaaaaaaaaab" - /* 6 */ "bbbbbbbbbbbb" + /* 0 */ ".......bcd.." + /* 1 */ ".aaaaaaaaaa." + /* 2 */ ".aaaaaaaaaa." + /* 3 */ ".aaaaaaaaaa." + /* 4 */ ".aaaaaaaaaa." + /* 5 */ ".aaaaaaaaaa." + /* 6 */ "............" // Level 2 /* z\x* 11 */ /* * 012345678901 */ - /* 0 */ ".......cde.." - /* 1 */ ".ffffffffff." - /* 2 */ ".ffffffffff." - /* 3 */ ".ffffffffff." - /* 4 */ ".ffffffffff." - /* 5 */ ".ffffffffff." + /* 0 */ "............" + /* 1 */ ".aaaaaaaeaa." + /* 2 */ ".af.ghi...a." + /* 3 */ ".ah.......a." + /* 4 */ ".aj.ghighia." + /* 5 */ ".aaaaaaaaaa." /* 6 */ "............" // Level 3 /* z\x* 11 */ /* * 012345678901 */ /* 0 */ "............" - /* 1 */ ".fffffffgff." - /* 2 */ ".fh.ijk...f." - /* 3 */ ".fj.......f." - /* 4 */ ".fl.ijkijkf." - /* 5 */ ".ffffffffff." + /* 1 */ ".akkakkalaa." + /* 2 */ ".k..no.n.nk." + /* 3 */ ".ko.......k." + /* 4 */ ".k..po.po.k." + /* 5 */ ".akkakkakka." /* 6 */ "............" // Level 4 /* z\x* 11 */ /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ ".fnnfnnfoff." - /* 2 */ ".n..pq.p.pn." - /* 3 */ ".nq.......n." - /* 4 */ ".n..rq.rq.n." - /* 5 */ ".fnnfnnfnnf." - /* 6 */ "............" + /* 0 */ "jjjjjjjjjjjj" + /* 1 */ "qaaaaaaaaaaq" + /* 2 */ ".arrrrrrrra." + /* 3 */ ".as......ta." + /* 4 */ ".arrrrrrrra." + /* 5 */ "uaaaaaaaaaau" + /* 6 */ "ffffffffffff" // Level 5 /* z\x* 11 */ /* * 012345678901 */ - /* 0 */ "llllllllllll" - /* 1 */ "sffffffffffs" - /* 2 */ ".fttttttttf." - /* 3 */ ".fu......vf." - /* 4 */ ".fttttttttf." - /* 5 */ "wffffffffffw" - /* 6 */ "hhhhhhhhhhhh" - - // Level 6 - /* z\x* 11 */ - /* * 012345678901 */ /* 0 */ "............" - /* 1 */ "llllllllllll" - /* 2 */ "sxxxxxxxxxxs" - /* 3 */ ".xxxxxxxxxx." - /* 4 */ "wxxxxxxxxxxw" - /* 5 */ "hhhhhhhhhhhh" + /* 1 */ "jjjjjjjjjjjj" + /* 2 */ "qvvvvvvvvvvq" + /* 3 */ ".vvvvvvvvvv." + /* 4 */ "uvvvvvvvvvvu" + /* 5 */ "ffffffffffff" /* 6 */ "............" - // Level 7 + // Level 6 /* z\x* 11 */ /* * 012345678901 */ /* 0 */ "............" /* 1 */ "............" - /* 2 */ "llllllllllll" - /* 3 */ "xxxxxxxxxxxx" - /* 4 */ "hhhhhhhhhhhh" + /* 2 */ "jjjjjjjjjjjj" + /* 3 */ "vvvvvvvvvvvv" + /* 4 */ "ffffffffffff" /* 5 */ "............" /* 6 */ "............", // Connectors: - "-1: 8, 2, 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 */ @@ -274,6 +329,9 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // CobbleHouse10x5Library @@ -283,50 +341,130 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // The data has been exported from the gallery Plains, area index 5, ID 20, created by tonibm1999 { // Size: - 15, 2, 9, // SizeX = 15, SizeY = 2, SizeZ = 9 + 15, 8, 9, // SizeX = 15, SizeY = 8, SizeZ = 9 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 14, 1, 8, // MaxX, MaxY, MaxZ + 14, 7, 8, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 17: 0\n" /* tree */ - "b: 60: 7\n" /* tilleddirt */ - "c: 8: 0\n" /* water */ - "d: 50: 5\n" /* torch */ - "e: 59: 7\n" /* crops */ + "a: 3: 0\n" /* dirt */ + "b: 2: 0\n" /* grass */ + "c: 17: 0\n" /* tree */ + "d: 60: 7\n" /* tilleddirt */ + "e: 8: 0\n" /* water */ + "f: 50: 5\n" /* torch */ + "g: 59: 7\n" /* crops */ "m: 19: 0\n" /* sponge */, // Block data: // Level 0 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "aaaaaaa.aaaaaaa" - /* 1 */ "abbcbba.abbcbba" - /* 2 */ "abbcbba.abbcbba" - /* 3 */ "abbcbba.abbcbba" - /* 4 */ "abbcbba.abbcbba" - /* 5 */ "abbcbba.abbcbba" - /* 6 */ "abbcbba.abbcbba" - /* 7 */ "abbcbba.abbcbba" - /* 8 */ "aaaaaaa.aaaaaaa" + /* 0 */ "aaaaaaaaaaaaaaa" + /* 1 */ "aaaaaaaaaaaaaaa" + /* 2 */ "aaaaaaaaaaaaaaa" + /* 3 */ "aaaaaaaaaaaaaaa" + /* 4 */ "aaaaaaaaaaaaaaa" + /* 5 */ "aaaaaaaaaaaaaaa" + /* 6 */ "aaaaaaaaaaaaaaa" + /* 7 */ "aaaaaaaaaaaaaaa" + /* 8 */ "aaaaaaaaaaaaaaa" // Level 1 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "d.....d.d.....d" - /* 1 */ ".ee.ee...ee.ee." - /* 2 */ ".e...e...ee.ee." - /* 3 */ ".e.......ee.ee." - /* 4 */ ".ee..e...ee.ee." - /* 5 */ ".ee..e...ee.ee." - /* 6 */ "..e..e...ee.ee." - /* 7 */ "..e.e....ee.ee." - /* 8 */ "d.....d.d.....d", + /* 0 */ "aaaaaaabaaaaaaa" + /* 1 */ "aaaaaaabaaaaaaa" + /* 2 */ "aaaaaaabaaaaaaa" + /* 3 */ "aaaaaaabaaaaaaa" + /* 4 */ "aaaaaaabaaaaaaa" + /* 5 */ "aaaaaaabaaaaaaa" + /* 6 */ "aaaaaaabaaaaaaa" + /* 7 */ "aaaaaaabaaaaaaa" + /* 8 */ "aaaaaaabaaaaaaa" + + // Level 2 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "ccccccc.ccccccc" + /* 1 */ "cddeddc.cddeddc" + /* 2 */ "cddeddc.cddeddc" + /* 3 */ "cddeddc.cddeddc" + /* 4 */ "cddeddc.cddeddc" + /* 5 */ "cddeddc.cddeddc" + /* 6 */ "cddeddc.cddeddc" + /* 7 */ "cddeddc.cddeddc" + /* 8 */ "ccccccc.ccccccc" + + // Level 3 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "f.....f.f.....f" + /* 1 */ ".gg.gg...gg.gg." + /* 2 */ ".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." + /* 8 */ "f.....f.f.....f" + + // Level 4 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ "..............." + /* 2 */ "..............." + /* 3 */ "..............." + /* 4 */ "..............." + /* 5 */ "..............." + /* 6 */ "..............." + /* 7 */ "..............." + /* 8 */ "..............." + + // Level 5 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ "..............." + /* 2 */ "..............." + /* 3 */ "..............." + /* 4 */ "..............." + /* 5 */ "..............." + /* 6 */ "..............." + /* 7 */ "..............." + /* 8 */ "..............." + + // Level 6 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ "..............." + /* 2 */ "..............." + /* 3 */ "..............." + /* 4 */ "..............." + /* 5 */ "..............." + /* 6 */ "..............." + /* 7 */ "..............." + /* 8 */ "..............." + + // Level 7 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ "..............." + /* 2 */ "..............." + /* 3 */ "..............." + /* 4 */ "..............." + /* 5 */ "..............." + /* 6 */ "..............." + /* 7 */ "..............." + /* 8 */ "...............", // Connectors: - "-1: 7, 0, 8: 3\n" /* Type -1, direction Z+ */, + "-1: 7, 2, 8: 3\n" /* Type -1, direction Z+ */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -345,6 +483,9 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // DoublePlantBed @@ -354,193 +495,176 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // The data has been exported from the gallery Plains, area index 51, ID 102, created by Aloe_vera { // Size: - 12, 10, 11, // SizeX = 12, SizeY = 10, SizeZ = 11 + 12, 9, 11, // SizeX = 12, SizeY = 9, SizeZ = 11 // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 12, 9, 11, // MaxX, MaxY, MaxZ + -1, -1, 0, // MinX, MinY, MinZ + 12, 8, 11, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 2: 0\n" /* grass */ - "c: 67: 0\n" /* stairs */ - "d: 67: 2\n" /* stairs */ - "e: 67: 1\n" /* stairs */ - "f: 4: 0\n" /* cobblestone */ - "g: 17: 0\n" /* tree */ - "h: 5: 0\n" /* wood */ - "i: 64: 6\n" /* wooddoorblock */ - "j: 10: 0\n" /* lava */ - "k: 54: 2\n" /* chest */ - "l: 61: 2\n" /* furnace */ + "a: 4: 0\n" /* cobblestone */ + "b: 67: 0\n" /* stairs */ + "c: 67: 2\n" /* stairs */ + "d: 67: 1\n" /* stairs */ + "e: 17: 0\n" /* tree */ + "f: 5: 0\n" /* wood */ + "g: 64: 6\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 */ "m: 19: 0\n" /* sponge */ - "n:102: 0\n" /* glasspane */ - "o: 64:12\n" /* wooddoorblock */ - "p:139: 0\n" /* cobblestonewall */ - "q:101: 0\n" /* ironbars */ - "r: 53: 2\n" /* woodstairs */ - "s: 53: 7\n" /* woodstairs */ - "t: 50: 2\n" /* torch */ - "u: 50: 1\n" /* torch */ - "v: 53: 6\n" /* woodstairs */ - "w: 53: 3\n" /* woodstairs */ - "x: 43: 0\n" /* doubleslab */ - "y: 44: 0\n" /* step */, + "n:139: 0\n" /* cobblestonewall */ + "o:101: 0\n" /* ironbars */ + "p: 53: 2\n" /* woodstairs */ + "q: 53: 7\n" /* woodstairs */ + "r: 50: 2\n" /* torch */ + "s: 50: 1\n" /* torch */ + "t: 53: 6\n" /* woodstairs */ + "u: 53: 3\n" /* woodstairs */ + "v: 43: 0\n" /* doubleslab */ + "w: 44: 0\n" /* step */, // Block data: // Level 0 /* z\x* 11 */ /* * 012345678901 */ - /* 0 */ "aaaaaaaaaaaa" - /* 1 */ "aaaaaaaaaaaa" - /* 2 */ "aaaaaaaaaaaa" - /* 3 */ "aaaaaaaaaaaa" - /* 4 */ "aaaaaaaaaaaa" - /* 5 */ "aaaaaaaaaaaa" - /* 6 */ "aaaaaaaaaaaa" - /* 7 */ "aaaaaaaaaaaa" - /* 8 */ "aaaaaaaaaaaa" - /* 9 */ "aaaaaaaaaaaa" - /* 10 */ "aaaaaaaaaaaa" + /* 0 */ "mmmmmaaaaamm" + /* 1 */ "maaaaaaaaamm" + /* 2 */ "maaaaaaaaamm" + /* 3 */ "maaaaaaaaaaa" + /* 4 */ "maaaaaaaaaaa" + /* 5 */ "maaaaaaaaaaa" + /* 6 */ "maaaaaaaaaaa" + /* 7 */ "maaaaaaaaaaa" + /* 8 */ "maaaaammmmmm" + /* 9 */ "maaaaammmmmm" + /* 10 */ "mmmmmmmmmmmm" // Level 1 /* z\x* 11 */ /* * 012345678901 */ - /* 0 */ "bbbbbaaaaabb" - /* 1 */ "baaaaaaaaabb" - /* 2 */ "baaaaaaaaabb" - /* 3 */ "baaaaaaaaaaa" - /* 4 */ "baaaaaaaaaaa" - /* 5 */ "baaaaaaaaaaa" - /* 6 */ "baaaaaaaaaaa" - /* 7 */ "baaaaaaaaaaa" - /* 8 */ "baaaaabbbbbb" - /* 9 */ "baaaaabbbbbb" - /* 10 */ "bbbbbbbbbbbb" + /* 0 */ ".....bcccd.." + /* 1 */ ".aaaaaaaad.." + /* 2 */ ".aaaaaaaad.." + /* 3 */ ".aaaaaaaaaaa" + /* 4 */ ".aaaaaaaaaaa" + /* 5 */ ".aaaaaaaaaaa" + /* 6 */ ".aaaaaaaaaaa" + /* 7 */ ".aaaaaaaaaaa" + /* 8 */ ".aaaaa......" + /* 9 */ ".aaaaa......" + /* 10 */ "............" // Level 2 /* z\x* 11 */ /* * 012345678901 */ - /* 0 */ ".....cddde.." - /* 1 */ ".ffffffffe.." - /* 2 */ ".ffffffffe.." - /* 3 */ ".fffffffffff" - /* 4 */ ".fffffffffff" - /* 5 */ ".fffffffffff" - /* 6 */ ".fffffffffff" - /* 7 */ ".fffffffffff" - /* 8 */ ".fffff.mmmmm" - /* 9 */ ".fffff.mmmmm" - /* 10 */ ".......mmmmm" + /* 0 */ "............" + /* 1 */ ".efffe......" + /* 2 */ ".f...g......" + /* 3 */ ".f...ea..aaa" + /* 4 */ ".f...f...aha" + /* 5 */ ".f...f...aha" + /* 6 */ ".f...fijjaha" + /* 7 */ ".f...eaaaaaa" + /* 8 */ ".f...f......" + /* 9 */ ".efffe......" + /* 10 */ "............" // Level 3 /* z\x* 11 */ /* * 012345678901 */ /* 0 */ "............" - /* 1 */ ".ghhhg......" - /* 2 */ ".h...i......" - /* 3 */ ".h...gf..fff" - /* 4 */ ".h...h...fjf" - /* 5 */ ".h...h...fjf" - /* 6 */ ".h...hkllfjf" - /* 7 */ ".h...gffffff" - /* 8 */ ".h...h.mmmmm" - /* 9 */ ".ghhhg.mmmmm" - /* 10 */ ".......mmmmm" + /* 1 */ ".ekkke......" + /* 2 */ ".k...l......" + /* 3 */ ".k...en..n.a" + /* 4 */ ".k...k.....o" + /* 5 */ ".f...k.....o" + /* 6 */ ".k...k.....o" + /* 7 */ ".k...eaooooa" + /* 8 */ ".k...f......" + /* 9 */ ".ekkke......" + /* 10 */ "............" // Level 4 /* z\x* 11 */ /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ ".gnnng......" - /* 2 */ ".n...o......" - /* 3 */ ".n...gp..p.f" - /* 4 */ ".n...n.....q" - /* 5 */ ".h...n.....q" - /* 6 */ ".n...n.....q" - /* 7 */ ".n...gfqqqqf" - /* 8 */ ".n...h.mmmmm" - /* 9 */ ".gnnng.mmmmm" - /* 10 */ ".......mmmmm" + /* 0 */ "ppppppp....." + /* 1 */ "qfffffq....." + /* 2 */ ".f...f......" + /* 3 */ ".f..rfa..aoa" + /* 4 */ ".f...f...o.a" + /* 5 */ ".f...f...o.a" + /* 6 */ ".fs..f...o.a" + /* 7 */ ".f...faaaaaa" + /* 8 */ ".f...f......" + /* 9 */ "tffffft....." + /* 10 */ "uuuuuuu....." // Level 5 /* z\x* 11 */ /* * 012345678901 */ - /* 0 */ "rrrrrrr....." - /* 1 */ "shhhhhs....." - /* 2 */ ".h...h......" - /* 3 */ ".h..thf..fqf" - /* 4 */ ".h...h...q.f" - /* 5 */ ".h...h...q.f" - /* 6 */ ".hu..h...q.f" - /* 7 */ ".h...hffffff" - /* 8 */ ".h...h.mmmmm" - /* 9 */ "vhhhhhvmmmmm" - /* 10 */ "wwwwwwwmmmmm" - - // Level 6 - /* z\x* 11 */ - /* * 012345678901 */ /* 0 */ "............" - /* 1 */ "rrrrrrr....." - /* 2 */ "shhhhhs....." - /* 3 */ ".h...hxxxxxx" - /* 4 */ ".h...hxyyyyx" - /* 5 */ ".h...hxyyyyx" - /* 6 */ ".h...hxyyyyx" - /* 7 */ ".h...hxxxxxx" - /* 8 */ "vhhhhhvmmmmm" - /* 9 */ "wwwwwwwmmmmm" - /* 10 */ ".......mmmmm" + /* 1 */ "ppppppp....." + /* 2 */ "qfffffq....." + /* 3 */ ".f...fvvvvvv" + /* 4 */ ".f...fvwwwwv" + /* 5 */ ".f...fvwwwwv" + /* 6 */ ".f...fvwwwwv" + /* 7 */ ".f...fvvvvvv" + /* 8 */ "tffffft....." + /* 9 */ "uuuuuuu....." + /* 10 */ "............" - // Level 7 + // Level 6 /* z\x* 11 */ /* * 012345678901 */ /* 0 */ "............" /* 1 */ "............" - /* 2 */ "rrrrrrr....." - /* 3 */ "shhhhhs....." - /* 4 */ ".h...h......" - /* 5 */ ".h...h......" - /* 6 */ ".h...h......" - /* 7 */ "vhhhhhv....." - /* 8 */ "wwwwwwwmmmmm" - /* 9 */ ".......mmmmm" - /* 10 */ ".......mmmmm" + /* 2 */ "ppppppp....." + /* 3 */ "qfffffq....." + /* 4 */ ".f...f......" + /* 5 */ ".f...f......" + /* 6 */ ".f...f......" + /* 7 */ "tffffft....." + /* 8 */ "uuuuuuu....." + /* 9 */ "............" + /* 10 */ "............" - // Level 8 + // Level 7 /* z\x* 11 */ /* * 012345678901 */ /* 0 */ "............" /* 1 */ "............" /* 2 */ "............" - /* 3 */ "rrrrrrr....." - /* 4 */ "shhhhhs....." - /* 5 */ ".h...h......" - /* 6 */ "vhhhhhv....." - /* 7 */ "wwwwwww....." - /* 8 */ ".......mmmmm" - /* 9 */ ".......mmmmm" - /* 10 */ ".......mmmmm" + /* 3 */ "ppppppp....." + /* 4 */ "qfffffq....." + /* 5 */ ".f...f......" + /* 6 */ "tffffft....." + /* 7 */ "uuuuuuu....." + /* 8 */ "............" + /* 9 */ "............" + /* 10 */ "............" - // Level 9 + // Level 8 /* z\x* 11 */ /* * 012345678901 */ /* 0 */ "............" /* 1 */ "............" /* 2 */ "............" /* 3 */ "............" - /* 4 */ "rrrrrrr....." - /* 5 */ "hhhhhhh....." - /* 6 */ "wwwwwww....." + /* 4 */ "ppppppp....." + /* 5 */ "fffffff....." + /* 6 */ "uuuuuuu....." /* 7 */ "............" - /* 8 */ ".......mmmmm" - /* 9 */ ".......mmmmm" - /* 10 */ ".......mmmmm", + /* 8 */ "............" + /* 9 */ "............" + /* 10 */ "............", // Connectors: - "-1: 7, 2, -1: 2\n" /* Type -1, direction Z- */, + "-1: 7, 1, -1: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -559,20 +683,484 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // Forge + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // LampPost: + // The data has been exported from the gallery Plains, area index 28, ID 73, created by STR_Warrior + { + // Size: + 3, 7, 3, // SizeX = 3, SizeY = 7, SizeZ = 3 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 2, 6, 2, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 3: 0\n" /* dirt */ + "b: 43: 0\n" /* doubleslab */ + "c:139: 0\n" /* cobblestonewall */ + "d: 50: 4\n" /* torch */ + "e: 50: 2\n" /* torch */ + "f: 50: 1\n" /* torch */ + "g: 50: 3\n" /* torch */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 012 */ + /* 0 */ "mmm" + /* 1 */ "mam" + /* 2 */ "mmm" + + // Level 1 + /* z\x* 012 */ + /* 0 */ "..." + /* 1 */ ".b." + /* 2 */ "..." + + // Level 2 + /* z\x* 012 */ + /* 0 */ "..." + /* 1 */ ".c." + /* 2 */ "..." + + // Level 3 + /* z\x* 012 */ + /* 0 */ "..." + /* 1 */ ".c." + /* 2 */ "..." + + // Level 4 + /* z\x* 012 */ + /* 0 */ ".d." + /* 1 */ "ebf" + /* 2 */ ".g." + + // Level 5 + /* z\x* 012 */ + /* 0 */ "..." + /* 1 */ "..." + /* 2 */ "..." + + // Level 6 + /* z\x* 012 */ + /* 0 */ "..." + /* 1 */ "..." + /* 2 */ "...", + + // Connectors: + "-1: 1, 1, 2: 3\n" /* Type -1, direction Z+ */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + true, + }, // LampPost + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // MineshaftCorridor: + // The data has been exported from the gallery Plains, area index 139, ID 447, created by STR_Warrior + { + // Size: + 10, 4, 3, // SizeX = 10, SizeY = 4, SizeZ = 3 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 9, 3, 2, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 5: 0\n" /* wood */ + "b: 85: 0\n" /* fence */ + "c: 50: 2\n" /* torch */ + "d: 50: 1\n" /* torch */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ "aaaaaaaaaa" + /* 1 */ "aaaaaaaaaa" + /* 2 */ "aaaaaaaaaa" + + // Level 1 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ "..b....b.." + /* 1 */ ".........." + /* 2 */ "..b....b.." + + // Level 2 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ "..b....b.." + /* 1 */ ".........." + /* 2 */ "..b....b.." + + // Level 3 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ "..a....a.." + /* 1 */ ".cad..cad." + /* 2 */ "..a....a..", + + // Connectors: + "-3: 0, 1, 1: 4\n" /* Type -3, direction X- */ + "3: 0, 1, 1: 4\n" /* Type 3, direction X- */ + "3: 9, 1, 1: 5\n" /* Type 3, direction X+ */ + "-3: 9, 1, 1: 5\n" /* Type -3, direction X+ */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + false, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 200, + + // MoveToGround: + false, + }, // MineshaftCorridor + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // MineshaftCrossing: + // The data has been exported from the gallery Plains, area index 171, ID 578, created by Aloe_vera + { + // Size: + 5, 4, 5, // SizeX = 5, SizeY = 4, SizeZ = 5 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 4, 3, 4, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 5: 0\n" /* wood */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 01234 */ + /* 0 */ "aaaaa" + /* 1 */ "aaaaa" + /* 2 */ "aaaaa" + /* 3 */ "aaaaa" + /* 4 */ "aaaaa" + + // Level 1 + /* z\x* 01234 */ + /* 0 */ "m...m" + /* 1 */ ".a.a." + /* 2 */ "....." + /* 3 */ ".a.a." + /* 4 */ "m...m" + + // Level 2 + /* z\x* 01234 */ + /* 0 */ "m...m" + /* 1 */ ".a.a." + /* 2 */ "....." + /* 3 */ ".a.a." + /* 4 */ "m...m" + + // Level 3 + /* z\x* 01234 */ + /* 0 */ "m...m" + /* 1 */ ".a.a." + /* 2 */ "....." + /* 3 */ ".a.a." + /* 4 */ "m...m", + + // Connectors: + "3: 4, 1, 2: 5\n" /* Type 3, direction X+ */ + "-3: 4, 1, 2: 5\n" /* Type -3, direction X+ */ + "-3: 2, 1, 4: 3\n" /* Type -3, direction Z+ */ + "3: 2, 1, 4: 3\n" /* Type 3, direction Z+ */ + "3: 0, 1, 2: 4\n" /* Type 3, direction X- */ + "-3: 0, 1, 2: 4\n" /* Type -3, direction X- */ + "3: 2, 1, 0: 2\n" /* Type 3, direction Z- */ + "-3: 2, 1, 0: 2\n" /* Type -3, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + false, + + // DefaultWeight: + 5, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + false, + }, // MineshaftCrossing + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // MineshaftDoubleCrossing: + // The data has been exported from the gallery Plains, area index 172, ID 579, created by Aloe_vera + { + // Size: + 5, 8, 5, // SizeX = 5, SizeY = 8, SizeZ = 5 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 4, 7, 4, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 5: 0\n" /* wood */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 01234 */ + /* 0 */ "aaaaa" + /* 1 */ "aaaaa" + /* 2 */ "aaaaa" + /* 3 */ "aaaaa" + /* 4 */ "aaaaa" + + // Level 1 + /* z\x* 01234 */ + /* 0 */ "m...m" + /* 1 */ ".a.a." + /* 2 */ "....." + /* 3 */ ".a.a." + /* 4 */ "m...m" + + // Level 2 + /* z\x* 01234 */ + /* 0 */ "m...m" + /* 1 */ ".a.a." + /* 2 */ "....." + /* 3 */ ".a.a." + /* 4 */ "m...m" + + // Level 3 + /* z\x* 01234 */ + /* 0 */ "m...m" + /* 1 */ ".a.a." + /* 2 */ "....." + /* 3 */ ".a.a." + /* 4 */ "m...m" + + // Level 4 + /* z\x* 01234 */ + /* 0 */ "aaaaa" + /* 1 */ "aa.aa" + /* 2 */ "a...a" + /* 3 */ "aa.aa" + /* 4 */ "aaaaa" + + // Level 5 + /* z\x* 01234 */ + /* 0 */ "m...m" + /* 1 */ ".a.a." + /* 2 */ "....." + /* 3 */ ".a.a." + /* 4 */ "m...m" + + // Level 6 + /* z\x* 01234 */ + /* 0 */ "m...m" + /* 1 */ ".a.a." + /* 2 */ "....." + /* 3 */ ".a.a." + /* 4 */ "m...m" + + // Level 7 + /* z\x* 01234 */ + /* 0 */ "m...m" + /* 1 */ ".a.a." + /* 2 */ "....." + /* 3 */ ".a.a." + /* 4 */ "m...m", + + // Connectors: + "-3: 4, 5, 2: 5\n" /* Type -3, direction X+ */ + "3: 4, 5, 2: 5\n" /* Type 3, direction X+ */ + "-3: 2, 1, 4: 3\n" /* Type -3, direction Z+ */ + "3: 2, 1, 4: 3\n" /* Type 3, direction Z+ */ + "-3: 0, 1, 2: 4\n" /* Type -3, direction X- */ + "3: 0, 1, 2: 4\n" /* Type 3, direction X- */ + "-3: 2, 1, 0: 2\n" /* Type -3, direction Z- */ + "3: 2, 1, 0: 2\n" /* Type 3, direction Z- */ + "-3: 4, 1, 2: 5\n" /* Type -3, direction X+ */ + "3: 4, 1, 2: 5\n" /* Type 3, direction X+ */ + "-3: 2, 5, 4: 3\n" /* Type -3, direction Z+ */ + "3: 2, 5, 4: 3\n" /* Type 3, direction Z+ */ + "-3: 0, 5, 2: 4\n" /* Type -3, direction X- */ + "3: 0, 5, 2: 4\n" /* Type 3, direction X- */ + "-3: 2, 5, 0: 2\n" /* Type -3, direction Z- */ + "3: 2, 5, 0: 2\n" /* Type 3, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + false, + + // DefaultWeight: + 5, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + false, + }, // MineshaftDoubleCrossing + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Scarecrow: + // The data has been exported from the gallery Plains, area index 150, ID 494, created by STR_Warrior + { + // Size: + 1, 6, 3, // SizeX = 1, SizeY = 6, SizeZ = 3 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 0, 5, 2, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a:139: 0\n" /* cobblestonewall */ + "b: 85: 0\n" /* fence */ + "c:126: 4\n" /* woodenslab */ + "d: 86: 1\n" /* pumpkin */ + "e:139: 1\n" /* cobblestonewall */ + "f:163: 4\n" /* acaciawoodenstairs */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 0 */ + /* 0 */ "." + /* 1 */ "a" + /* 2 */ "." + + // Level 1 + /* z\x* 0 */ + /* 0 */ "." + /* 1 */ "b" + /* 2 */ "." + + // Level 2 + /* z\x* 0 */ + /* 0 */ "c" + /* 1 */ "d" + /* 2 */ "c" + + // Level 3 + /* z\x* 0 */ + /* 0 */ "." + /* 1 */ "e" + /* 2 */ "." + + // Level 4 + /* z\x* 0 */ + /* 0 */ "f" + /* 1 */ "d" + /* 2 */ "f" + + // Level 5 + /* z\x* 0 */ + /* 0 */ "." + /* 1 */ "f" + /* 2 */ ".", + + // Connectors: + "-1: -1, 0, 1: 4\n" /* Type -1, direction X- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 10, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + true, + }, // Scarecrow + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // SinglePlantBed: // The data has been exported from the gallery Plains, area index 17, ID 60, created by Aloe_vera { // Size: - 10, 3, 7, // SizeX = 10, SizeY = 3, SizeZ = 7 + 10, 7, 7, // SizeX = 10, SizeY = 7, SizeZ = 7 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 9, 2, 6, // MaxX, MaxY, MaxZ + 9, 6, 6, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -615,6 +1203,50 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 3 */ ".........." /* 4 */ ".eeeeeeee." /* 5 */ ".eeeeeeee." + /* 6 */ ".........." + + // Level 3 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ ".........." + /* 1 */ ".........." + /* 2 */ ".........." + /* 3 */ ".........." + /* 4 */ ".........." + /* 5 */ ".........." + /* 6 */ ".........." + + // Level 4 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ ".........." + /* 1 */ ".........." + /* 2 */ ".........." + /* 3 */ ".........." + /* 4 */ ".........." + /* 5 */ ".........." + /* 6 */ ".........." + + // Level 5 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ ".........." + /* 1 */ ".........." + /* 2 */ ".........." + /* 3 */ ".........." + /* 4 */ ".........." + /* 5 */ ".........." + /* 6 */ ".........." + + // Level 6 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ ".........." + /* 1 */ ".........." + /* 2 */ ".........." + /* 3 */ ".........." + /* 4 */ ".........." + /* 5 */ ".........." /* 6 */ "..........", // Connectors: @@ -637,6 +1269,9 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // SinglePlantBed @@ -646,182 +1281,164 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // The data has been exported from the gallery Plains, area index 58, ID 109, created by Aloe_vera { // Size: - 7, 16, 13, // SizeX = 7, SizeY = 16, SizeZ = 13 + 7, 15, 13, // SizeX = 7, SizeY = 15, SizeZ = 13 // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 7, 15, 13, // MaxX, MaxY, MaxZ + -1, -1, 0, // MinX, MinY, MinZ + 7, 14, 13, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "A: 54: 2\n" /* chest */ - "B: 50: 4\n" /* torch */ - "C: 85: 0\n" /* fence */ - "D:126: 8\n" /* woodenslab */ - "a: 3: 0\n" /* dirt */ - "b: 2: 0\n" /* grass */ - "c: 67: 0\n" /* stairs */ - "d: 67: 2\n" /* stairs */ - "e: 67: 1\n" /* stairs */ - "f: 4: 0\n" /* cobblestone */ - "g: 17: 0\n" /* tree */ - "h: 5: 0\n" /* wood */ - "i: 64: 7\n" /* wooddoorblock */ - "j: 65: 3\n" /* ladder */ - "k: 53: 3\n" /* woodstairs */ - "l: 53: 7\n" /* woodstairs */ + "A: 85: 0\n" /* fence */ + "B:126: 8\n" /* woodenslab */ + "a: 4: 0\n" /* cobblestone */ + "b: 67: 0\n" /* stairs */ + "c: 67: 2\n" /* stairs */ + "d: 67: 1\n" /* stairs */ + "e: 17: 0\n" /* tree */ + "f: 5: 0\n" /* wood */ + "g: 64: 7\n" /* wooddoorblock */ + "h: 65: 3\n" /* ladder */ + "i: 53: 3\n" /* woodstairs */ + "j: 53: 7\n" /* woodstairs */ + "k: 64:12\n" /* wooddoorblock */ + "l:102: 0\n" /* glasspane */ "m: 19: 0\n" /* sponge */ - "n: 64:12\n" /* wooddoorblock */ - "o:102: 0\n" /* glasspane */ - "p: 50: 1\n" /* torch */ - "q: 50: 2\n" /* torch */ - "r:171:14\n" /* carpet */ - "s: 50: 3\n" /* torch */ - "t: 53: 2\n" /* woodstairs */ - "u: 53: 0\n" /* woodstairs */ - "v: 53: 1\n" /* woodstairs */ - "w: 53: 5\n" /* woodstairs */ - "x: 53: 4\n" /* woodstairs */ - "y: 17: 4\n" /* tree */ - "z: 17: 8\n" /* tree */, + "n: 50: 1\n" /* torch */ + "o: 50: 2\n" /* torch */ + "p:171:14\n" /* carpet */ + "q: 50: 3\n" /* torch */ + "r: 53: 2\n" /* woodstairs */ + "s: 53: 0\n" /* woodstairs */ + "t: 53: 1\n" /* woodstairs */ + "u: 53: 5\n" /* woodstairs */ + "v: 53: 4\n" /* woodstairs */ + "w: 17: 4\n" /* tree */ + "x: 17: 8\n" /* tree */ + "y: 54: 2\n" /* chest */ + "z: 50: 4\n" /* torch */, // Block data: // Level 0 /* z\x* 0123456 */ - /* 0 */ "aaaaaaa" - /* 1 */ "aaaaaaa" - /* 2 */ "aaaaaaa" - /* 3 */ "aaaaaaa" - /* 4 */ "aaaaaaa" - /* 5 */ "aaaaaaa" - /* 6 */ "aaaaaaa" - /* 7 */ "aaaaaaa" - /* 8 */ "aaaaaaa" - /* 9 */ "aaaaaaa" - /* 10 */ "aaaaaaa" - /* 11 */ "aaaaaaa" - /* 12 */ "aaaaaaa" + /* 0 */ "mmaaamm" + /* 1 */ "maaaaam" + /* 2 */ "maaaaam" + /* 3 */ "maaaaam" + /* 4 */ "maaaaam" + /* 5 */ "maaaaam" + /* 6 */ "maaaaam" + /* 7 */ "maaaaam" + /* 8 */ "maaaaam" + /* 9 */ "maaaaam" + /* 10 */ "maaaaam" + /* 11 */ "maaaaam" + /* 12 */ "mmmmmmm" // Level 1 /* z\x* 0123456 */ - /* 0 */ "bbaaabb" - /* 1 */ "baaaaab" - /* 2 */ "baaaaab" - /* 3 */ "baaaaab" - /* 4 */ "baaaaab" - /* 5 */ "baaaaab" - /* 6 */ "baaaaab" - /* 7 */ "baaaaab" - /* 8 */ "baaaaab" - /* 9 */ "baaaaab" - /* 10 */ "baaaaab" - /* 11 */ "baaaaab" - /* 12 */ "bbbbbbb" + /* 0 */ "..bcd.." + /* 1 */ ".aaaaa." + /* 2 */ ".aaaaa." + /* 3 */ ".aaaaa." + /* 4 */ ".aaaaa." + /* 5 */ ".aaaaa." + /* 6 */ ".aaaaa." + /* 7 */ ".aaaaa." + /* 8 */ ".aaaaa." + /* 9 */ ".aaaaa." + /* 10 */ ".aaaaa." + /* 11 */ ".aaaaa." + /* 12 */ "......." // Level 2 /* z\x* 0123456 */ - /* 0 */ "..cde.." - /* 1 */ ".fffff." - /* 2 */ ".fffff." - /* 3 */ ".fffff." - /* 4 */ ".fffff." - /* 5 */ ".fffff." - /* 6 */ ".fffff." - /* 7 */ ".fffff." - /* 8 */ ".fffff." - /* 9 */ ".fffff." - /* 10 */ ".fffff." - /* 11 */ ".fffff." + /* 0 */ "......." + /* 1 */ ".efgfe." + /* 2 */ ".f..hf." + /* 3 */ ".f...f." + /* 4 */ ".f...f." + /* 5 */ ".ei.ie." + /* 6 */ ".f...f." + /* 7 */ ".fi.if." + /* 8 */ ".f...f." + /* 9 */ ".f.j.f." + /* 10 */ ".f...f." + /* 11 */ ".efffe." /* 12 */ "......." // Level 3 /* z\x* 0123456 */ /* 0 */ "......." - /* 1 */ ".ghihg." - /* 2 */ ".h..jh." - /* 3 */ ".h...h." - /* 4 */ ".h...h." - /* 5 */ ".gk.kg." - /* 6 */ ".h...h." - /* 7 */ ".hk.kh." - /* 8 */ ".h...h." - /* 9 */ ".h.l.h." - /* 10 */ ".h...h." - /* 11 */ ".ghhhg." + /* 1 */ ".efkfe." + /* 2 */ ".l..hl." + /* 3 */ ".l...l." + /* 4 */ ".l...l." + /* 5 */ ".e...e." + /* 6 */ ".l...l." + /* 7 */ ".l...l." + /* 8 */ ".fn.of." + /* 9 */ ".l.p.l." + /* 10 */ ".l...l." + /* 11 */ ".ellle." /* 12 */ "......." // Level 4 /* z\x* 0123456 */ /* 0 */ "......." - /* 1 */ ".ghnhg." - /* 2 */ ".o..jo." - /* 3 */ ".o...o." - /* 4 */ ".o...o." - /* 5 */ ".g...g." - /* 6 */ ".o...o." - /* 7 */ ".o...o." - /* 8 */ ".hp.qh." - /* 9 */ ".o.r.o." - /* 10 */ ".o...o." - /* 11 */ ".gooog." - /* 12 */ "......." + /* 1 */ ".efffe." + /* 2 */ ".f.qhf." + /* 3 */ ".f...f." + /* 4 */ ".f...f." + /* 5 */ "re...er" + /* 6 */ "sf...ft" + /* 7 */ "sf...ft" + /* 8 */ "sf...ft" + /* 9 */ "sf...ft" + /* 10 */ "sf...ft" + /* 11 */ "sefffet" + /* 12 */ "su...vt" // Level 5 /* z\x* 0123456 */ /* 0 */ "......." - /* 1 */ ".ghhhg." - /* 2 */ ".h.sjh." - /* 3 */ ".h...h." - /* 4 */ ".h...h." - /* 5 */ "tg...gt" - /* 6 */ "uh...hv" - /* 7 */ "uh...hv" - /* 8 */ "uh...hv" - /* 9 */ "uh...hv" - /* 10 */ "uh...hv" - /* 11 */ "ughhhgv" - /* 12 */ "uw...xv" + /* 1 */ ".ewwwe." + /* 2 */ ".xffhx." + /* 3 */ ".xfffx." + /* 4 */ ".xfffx." + /* 5 */ ".ewwwe." + /* 6 */ ".sf.ft." + /* 7 */ ".sf.ft." + /* 8 */ ".sf.ft." + /* 9 */ ".sf.ft." + /* 10 */ ".sf.ft." + /* 11 */ ".sffft." + /* 12 */ ".su.vt." // Level 6 /* z\x* 0123456 */ /* 0 */ "......." - /* 1 */ ".gyyyg." - /* 2 */ ".zhhjz." - /* 3 */ ".zhhhz." - /* 4 */ ".zhhhz." - /* 5 */ ".gyyyg." - /* 6 */ ".uh.hv." - /* 7 */ ".uh.hv." - /* 8 */ ".uh.hv." - /* 9 */ ".uh.hv." - /* 10 */ ".uh.hv." - /* 11 */ ".uhhhv." - /* 12 */ ".uw.xv." + /* 1 */ ".eflfe." + /* 2 */ ".f..hf." + /* 3 */ ".f...f." + /* 4 */ ".f.y.f." + /* 5 */ ".efffe." + /* 6 */ "..sft.." + /* 7 */ "..sft.." + /* 8 */ "..sft.." + /* 9 */ "..sft.." + /* 10 */ "..sft.." + /* 11 */ "..sft.." + /* 12 */ "..sft.." // Level 7 /* z\x* 0123456 */ /* 0 */ "......." - /* 1 */ ".ghohg." - /* 2 */ ".h..jh." - /* 3 */ ".h...h." - /* 4 */ ".h.A.h." - /* 5 */ ".ghhhg." - /* 6 */ "..uhv.." - /* 7 */ "..uhv.." - /* 8 */ "..uhv.." - /* 9 */ "..uhv.." - /* 10 */ "..uhv.." - /* 11 */ "..uhv.." - /* 12 */ "..uhv.." - - // Level 8 - /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".ghohg." - /* 2 */ ".h..jh." - /* 3 */ ".o...o." - /* 4 */ ".h...h." - /* 5 */ ".ghhhg." + /* 1 */ ".eflfe." + /* 2 */ ".f..hf." + /* 3 */ ".l...l." + /* 4 */ ".f...f." + /* 5 */ ".efffe." /* 6 */ "......." /* 7 */ "......." /* 8 */ "......." @@ -830,14 +1447,14 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 11 */ "......." /* 12 */ "......." - // Level 9 + // Level 8 /* z\x* 0123456 */ /* 0 */ "......." - /* 1 */ ".ghohg." - /* 2 */ ".h..jh." - /* 3 */ ".h...h." - /* 4 */ ".h.B.h." - /* 5 */ ".ghhhg." + /* 1 */ ".eflfe." + /* 2 */ ".f..hf." + /* 3 */ ".f...f." + /* 4 */ ".f.z.f." + /* 5 */ ".efffe." /* 6 */ "......." /* 7 */ "......." /* 8 */ "......." @@ -846,14 +1463,14 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 11 */ "......." /* 12 */ "......." - // Level 10 + // Level 9 /* z\x* 0123456 */ /* 0 */ "......." - /* 1 */ ".gyyyg." - /* 2 */ ".zhhjz." - /* 3 */ ".zhhhz." - /* 4 */ ".zhhhz." - /* 5 */ ".gyyyg." + /* 1 */ ".ewwwe." + /* 2 */ ".xffhx." + /* 3 */ ".xfffx." + /* 4 */ ".xfffx." + /* 5 */ ".ewwwe." /* 6 */ "......." /* 7 */ "......." /* 8 */ "......." @@ -862,14 +1479,14 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 11 */ "......." /* 12 */ "......." - // Level 11 + // Level 10 /* z\x* 0123456 */ /* 0 */ "......." - /* 1 */ ".gCCCg." - /* 2 */ ".C...C." - /* 3 */ ".C...C." - /* 4 */ ".C...C." - /* 5 */ ".gCCCg." + /* 1 */ ".eAAAe." + /* 2 */ ".A...A." + /* 3 */ ".A...A." + /* 4 */ ".A...A." + /* 5 */ ".eAAAe." /* 6 */ "......." /* 7 */ "......." /* 8 */ "......." @@ -878,14 +1495,14 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 11 */ "......." /* 12 */ "......." - // Level 12 + // Level 11 /* z\x* 0123456 */ /* 0 */ "......." - /* 1 */ ".g...g." + /* 1 */ ".e...e." /* 2 */ "......." /* 3 */ "......." /* 4 */ "......." - /* 5 */ ".g...g." + /* 5 */ ".e...e." /* 6 */ "......." /* 7 */ "......." /* 8 */ "......." @@ -894,15 +1511,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 11 */ "......." /* 12 */ "......." - // Level 13 + // Level 12 /* z\x* 0123456 */ - /* 0 */ "uw...xv" - /* 1 */ "ughhhgv" - /* 2 */ "uhDDDhv" - /* 3 */ "uhDDDhv" - /* 4 */ "uhDDDhv" - /* 5 */ "ughhhgv" - /* 6 */ "uw...xv" + /* 0 */ "su...vt" + /* 1 */ "sefffet" + /* 2 */ "sfBBBft" + /* 3 */ "sfBBBft" + /* 4 */ "sfBBBft" + /* 5 */ "sefffet" + /* 6 */ "su...vt" /* 7 */ "......." /* 8 */ "......." /* 9 */ "......." @@ -910,15 +1527,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 11 */ "......." /* 12 */ "......." - // Level 14 + // Level 13 /* z\x* 0123456 */ - /* 0 */ ".uw.xv." - /* 1 */ ".uhhhv." - /* 2 */ ".uhhhv." - /* 3 */ ".uhhhv." - /* 4 */ ".uhhhv." - /* 5 */ ".uhhhv." - /* 6 */ ".uw.xv." + /* 0 */ ".su.vt." + /* 1 */ ".sffft." + /* 2 */ ".sffft." + /* 3 */ ".sffft." + /* 4 */ ".sffft." + /* 5 */ ".sffft." + /* 6 */ ".su.vt." /* 7 */ "......." /* 8 */ "......." /* 9 */ "......." @@ -926,15 +1543,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 11 */ "......." /* 12 */ "......." - // Level 15 + // Level 14 /* z\x* 0123456 */ - /* 0 */ "..uhv.." - /* 1 */ "..uhv.." - /* 2 */ "..uhv.." - /* 3 */ "..uhv.." - /* 4 */ "..uhv.." - /* 5 */ "..uhv.." - /* 6 */ "..uhv.." + /* 0 */ "..sft.." + /* 1 */ "..sft.." + /* 2 */ "..sft.." + /* 3 */ "..sft.." + /* 4 */ "..sft.." + /* 5 */ "..sft.." + /* 6 */ "..sft.." /* 7 */ "......." /* 8 */ "......." /* 9 */ "......." @@ -943,7 +1560,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 12 */ ".......", // Connectors: - "-1: 3, 2, 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 */ @@ -962,6 +1579,9 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // WoodenChurchMid @@ -971,132 +1591,118 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // The data has been exported from the gallery Plains, area index 54, ID 105, created by Aloe_vera { // Size: - 7, 8, 9, // SizeX = 7, SizeY = 8, SizeZ = 9 + 7, 7, 9, // SizeX = 7, SizeY = 7, SizeZ = 9 // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 7, 7, 9, // MaxX, MaxY, MaxZ + -1, -1, 0, // MinX, MinY, MinZ + 7, 6, 9, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 2: 0\n" /* grass */ - "c:170: 0\n" /* haybale */ - "d: 67: 0\n" /* stairs */ - "e: 67: 2\n" /* stairs */ - "f: 67: 1\n" /* stairs */ - "g: 4: 0\n" /* cobblestone */ - "h: 17: 0\n" /* tree */ - "i: 5: 0\n" /* wood */ - "j:170: 4\n" /* haybale */ - "k:170: 8\n" /* haybale */ - "l: 54: 2\n" /* chest */ + "a: 4: 0\n" /* cobblestone */ + "b:170: 0\n" /* haybale */ + "c: 67: 0\n" /* stairs */ + "d: 67: 2\n" /* stairs */ + "e: 67: 1\n" /* stairs */ + "f: 17: 0\n" /* tree */ + "g: 5: 0\n" /* wood */ + "h:170: 4\n" /* haybale */ + "i:170: 8\n" /* haybale */ + "j: 54: 2\n" /* chest */ + "k: 50: 4\n" /* torch */ + "l: 53: 0\n" /* woodstairs */ "m: 19: 0\n" /* sponge */ - "n: 50: 4\n" /* torch */ - "o: 53: 0\n" /* woodstairs */ - "p: 53: 5\n" /* woodstairs */ - "q: 53: 4\n" /* woodstairs */ - "r: 53: 1\n" /* woodstairs */, + "n: 53: 5\n" /* woodstairs */ + "o: 53: 4\n" /* woodstairs */ + "p: 53: 1\n" /* woodstairs */, // Block data: // Level 0 /* z\x* 0123456 */ - /* 0 */ "aaaaaaa" - /* 1 */ "aaaaaaa" - /* 2 */ "aaaaaaa" - /* 3 */ "aaaaaaa" - /* 4 */ "aaaaaaa" - /* 5 */ "aaaaaaa" - /* 6 */ "aaaaaaa" - /* 7 */ "aaaaaaa" - /* 8 */ "aaaaaaa" + /* 0 */ "maaaaam" + /* 1 */ "maaaaam" + /* 2 */ "maaaaam" + /* 3 */ "maaaaam" + /* 4 */ "maaaaam" + /* 5 */ "maaaaam" + /* 6 */ "maaaaam" + /* 7 */ "maaaaam" + /* 8 */ "mmmmmmm" // Level 1 /* z\x* 0123456 */ - /* 0 */ "aaaaaab" - /* 1 */ "baaaaab" - /* 2 */ "baaaaab" - /* 3 */ "baaaaab" - /* 4 */ "baaaaab" - /* 5 */ "baaaaab" - /* 6 */ "baaaaab" - /* 7 */ "baaaaab" - /* 8 */ "bbbbbbb" + /* 0 */ "bcddde." + /* 1 */ ".aaaaa." + /* 2 */ ".aaaaa." + /* 3 */ ".aaaaa." + /* 4 */ ".aaaaa." + /* 5 */ ".aaaaa." + /* 6 */ ".aaaaa." + /* 7 */ ".aaaaa." + /* 8 */ "......." // Level 2 /* z\x* 0123456 */ - /* 0 */ "cdeeef." - /* 1 */ ".ggggg." - /* 2 */ ".ggggg." - /* 3 */ ".ggggg." - /* 4 */ ".ggggg." - /* 5 */ ".ggggg." - /* 6 */ ".ggggg." - /* 7 */ ".ggggg." + /* 0 */ "......." + /* 1 */ ".f..bf." + /* 2 */ ".g...g." + /* 3 */ ".gb.hg." + /* 4 */ ".fihif." + /* 5 */ ".gbbbg." + /* 6 */ ".gijbg." + /* 7 */ ".fgfgf." /* 8 */ "......." // Level 3 /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".h..ch." - /* 2 */ ".i...i." - /* 3 */ ".ic.ji." - /* 4 */ ".hkjkh." - /* 5 */ ".iccci." - /* 6 */ ".iklci." - /* 7 */ ".hihih." + /* 0 */ ".k...k." + /* 1 */ ".f...f." + /* 2 */ ".g...g." + /* 3 */ ".g...g." + /* 4 */ ".fh..f." + /* 5 */ ".ghibg." + /* 6 */ ".ghiig." + /* 7 */ ".fgfgf." /* 8 */ "......." // Level 4 /* z\x* 0123456 */ - /* 0 */ ".n...n." - /* 1 */ ".h...h." - /* 2 */ ".i...i." - /* 3 */ ".i...i." - /* 4 */ ".hj..h." - /* 5 */ ".ijkci." - /* 6 */ ".ijkki." - /* 7 */ ".hihih." - /* 8 */ "......." + /* 0 */ "ln...op" + /* 1 */ "lgggggp" + /* 2 */ "lg...gp" + /* 3 */ "lg...gp" + /* 4 */ "lg...gp" + /* 5 */ "lgbb.gp" + /* 6 */ "lgibigp" + /* 7 */ "lgggggp" + /* 8 */ "ln...op" // Level 5 /* z\x* 0123456 */ - /* 0 */ "op...qr" - /* 1 */ "oiiiiir" - /* 2 */ "oi...ir" - /* 3 */ "oi...ir" - /* 4 */ "oi...ir" - /* 5 */ "oicc.ir" - /* 6 */ "oikckir" - /* 7 */ "oiiiiir" - /* 8 */ "op...qr" + /* 0 */ ".ln.op." + /* 1 */ ".lgggp." + /* 2 */ ".lg.gp." + /* 3 */ ".lg.gp." + /* 4 */ ".lg.gp." + /* 5 */ ".lg.gp." + /* 6 */ ".lg.gp." + /* 7 */ ".lgggp." + /* 8 */ ".ln.op." // Level 6 /* z\x* 0123456 */ - /* 0 */ ".op.qr." - /* 1 */ ".oiiir." - /* 2 */ ".oi.ir." - /* 3 */ ".oi.ir." - /* 4 */ ".oi.ir." - /* 5 */ ".oi.ir." - /* 6 */ ".oi.ir." - /* 7 */ ".oiiir." - /* 8 */ ".op.qr." - - // Level 7 - /* z\x* 0123456 */ - /* 0 */ "..oir.." - /* 1 */ "..oir.." - /* 2 */ "..oir.." - /* 3 */ "..oir.." - /* 4 */ "..oir.." - /* 5 */ "..oir.." - /* 6 */ "..oir.." - /* 7 */ "..oir.." - /* 8 */ "..oir..", + /* 0 */ "..lgp.." + /* 1 */ "..lgp.." + /* 2 */ "..lgp.." + /* 3 */ "..lgp.." + /* 4 */ "..lgp.." + /* 5 */ "..lgp.." + /* 6 */ "..lgp.." + /* 7 */ "..lgp.." + /* 8 */ "..lgp..", // Connectors: - "-1: 3, 2, -1: 2\n" /* Type -1, direction Z- */, + "-1: 3, 1, -1: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1115,6 +1721,9 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // WoodenGranary @@ -1124,160 +1733,145 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // The data has been exported from the gallery Plains, area index 47, ID 98, created by Aloe_vera { // Size: - 12, 9, 9, // SizeX = 12, SizeY = 9, SizeZ = 9 + 12, 8, 9, // SizeX = 12, SizeY = 8, SizeZ = 9 // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 12, 8, 9, // MaxX, MaxY, MaxZ + -1, -1, 0, // MinX, MinY, MinZ + 12, 7, 9, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 2: 0\n" /* grass */ - "c: 67: 0\n" /* stairs */ - "d: 67: 2\n" /* stairs */ - "e: 67: 1\n" /* stairs */ - "f: 4: 0\n" /* cobblestone */ - "g: 17: 0\n" /* tree */ - "h: 5: 0\n" /* wood */ - "i: 64: 7\n" /* wooddoorblock */ - "j: 64: 5\n" /* wooddoorblock */ - "k: 53: 3\n" /* woodstairs */ - "l: 85: 0\n" /* fence */ + "a: 4: 0\n" /* cobblestone */ + "b: 67: 0\n" /* stairs */ + "c: 67: 2\n" /* stairs */ + "d: 67: 1\n" /* stairs */ + "e: 17: 0\n" /* tree */ + "f: 5: 0\n" /* wood */ + "g: 64: 7\n" /* wooddoorblock */ + "h: 64: 5\n" /* wooddoorblock */ + "i: 53: 3\n" /* woodstairs */ + "j: 85: 0\n" /* fence */ + "k: 53: 2\n" /* woodstairs */ + "l: 53: 1\n" /* woodstairs */ "m: 19: 0\n" /* sponge */ - "n: 53: 2\n" /* woodstairs */ - "o: 53: 1\n" /* woodstairs */ - "p: 53: 0\n" /* woodstairs */ - "q:102: 0\n" /* glasspane */ - "r: 64:12\n" /* wooddoorblock */ - "s: 50: 3\n" /* torch */ - "t: 72: 0\n" /* woodplate */ - "u: 53: 7\n" /* woodstairs */ - "v: 47: 0\n" /* bookshelf */ - "w: 50: 1\n" /* torch */ - "x: 50: 2\n" /* torch */ - "y: 53: 6\n" /* woodstairs */, + "n: 53: 0\n" /* woodstairs */ + "o:102: 0\n" /* glasspane */ + "p: 64:12\n" /* wooddoorblock */ + "q: 50: 3\n" /* torch */ + "r: 72: 0\n" /* woodplate */ + "s: 53: 7\n" /* woodstairs */ + "t: 47: 0\n" /* bookshelf */ + "u: 50: 1\n" /* torch */ + "v: 50: 2\n" /* torch */ + "w: 53: 6\n" /* woodstairs */, // Block data: // Level 0 /* z\x* 11 */ /* * 012345678901 */ - /* 0 */ "aaaaaaaaaaaa" - /* 1 */ "aaaaaaaaaaaa" - /* 2 */ "aaaaaaaaaaaa" - /* 3 */ "aaaaaaaaaaaa" - /* 4 */ "aaaaaaaaaaaa" - /* 5 */ "aaaaaaaaaaaa" - /* 6 */ "aaaaaaaaaaaa" - /* 7 */ "aaaaaaaaaaaa" - /* 8 */ "aaaaaaaaaaaa" + /* 0 */ "mmmmaaaammmm" + /* 1 */ "maaaaaaaaaam" + /* 2 */ "maaaaaaaaaam" + /* 3 */ "maaaaaaaaaam" + /* 4 */ "maaaaaaaaaam" + /* 5 */ "maaaaaaaaaam" + /* 6 */ "maaaaaaaaaam" + /* 7 */ "maaaaaaaaaam" + /* 8 */ "mmmmmmmmmmmm" // Level 1 /* z\x* 11 */ /* * 012345678901 */ - /* 0 */ "bbbbaaaabbbb" - /* 1 */ "baaaaaaaaaab" - /* 2 */ "baaaaaaaaaab" - /* 3 */ "baaaaaaaaaab" - /* 4 */ "baaaaaaaaaab" - /* 5 */ "baaaaaaaaaab" - /* 6 */ "baaaaaaaaaab" - /* 7 */ "baaaaaaaaaab" - /* 8 */ "bbbbbbbbbbbb" + /* 0 */ "....bccd...." + /* 1 */ ".aaaaaaaaaa." + /* 2 */ ".aaaaaaaaaa." + /* 3 */ ".aaaaaaaaaa." + /* 4 */ ".aaaaaaaaaa." + /* 5 */ ".aaaaaaaaaa." + /* 6 */ ".aaaaaaaaaa." + /* 7 */ ".aaaaaaaaaa." + /* 8 */ "............" // Level 2 /* z\x* 11 */ /* * 012345678901 */ - /* 0 */ "....cdde...." - /* 1 */ ".ffffffffff." - /* 2 */ ".ffffffffff." - /* 3 */ ".ffffffffff." - /* 4 */ ".ffffffffff." - /* 5 */ ".ffffffffff." - /* 6 */ ".ffffffffff." - /* 7 */ ".ffffffffff." + /* 0 */ "............" + /* 1 */ ".efffghfffe." + /* 2 */ ".f........f." + /* 3 */ ".fi......if." + /* 4 */ ".fj......jf." + /* 5 */ ".fk......kf." + /* 6 */ ".f.ljnljn.f." + /* 7 */ ".effffffffe." /* 8 */ "............" // Level 3 /* z\x* 11 */ /* * 012345678901 */ /* 0 */ "............" - /* 1 */ ".ghhhijhhhg." - /* 2 */ ".h........h." - /* 3 */ ".hk......kh." - /* 4 */ ".hl......lh." - /* 5 */ ".hn......nh." - /* 6 */ ".h.olpolp.h." - /* 7 */ ".ghhhhhhhhg." + /* 1 */ ".eoofppfooe." + /* 2 */ ".o..q..q..o." + /* 3 */ ".o........o." + /* 4 */ ".fr......rf." + /* 5 */ ".o........o." + /* 6 */ ".o..r..r..o." + /* 7 */ ".eoofoofooe." /* 8 */ "............" // Level 4 /* z\x* 11 */ /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ ".gqqhrrhqqg." - /* 2 */ ".q..s..s..q." - /* 3 */ ".q........q." - /* 4 */ ".ht......th." - /* 5 */ ".q........q." - /* 6 */ ".q..t..t..q." - /* 7 */ ".gqqhqqhqqg." - /* 8 */ "............" + /* 0 */ "kkkkkkkkkkkk" + /* 1 */ "sffffffffffs" + /* 2 */ ".fttttttttf." + /* 3 */ ".f........f." + /* 4 */ ".fu......vf." + /* 5 */ ".f........f." + /* 6 */ ".fttttttttf." + /* 7 */ "wffffffffffw" + /* 8 */ "iiiiiiiiiiii" // Level 5 /* z\x* 11 */ /* * 012345678901 */ - /* 0 */ "nnnnnnnnnnnn" - /* 1 */ "uhhhhhhhhhhu" - /* 2 */ ".hvvvvvvvvh." - /* 3 */ ".h........h." - /* 4 */ ".hw......xh." - /* 5 */ ".h........h." - /* 6 */ ".hvvvvvvvvh." - /* 7 */ "yhhhhhhhhhhy" - /* 8 */ "kkkkkkkkkkkk" - - // Level 6 - /* z\x* 11 */ - /* * 012345678901 */ /* 0 */ "............" - /* 1 */ "nnnnnnnnnnnn" - /* 2 */ "uhhhhhhhhhhu" - /* 3 */ ".hvvvvvvvvh." - /* 4 */ ".h........h." - /* 5 */ ".hvvvvvvvvh." - /* 6 */ "yhhhhhhhhhhy" - /* 7 */ "kkkkkkkkkkkk" + /* 1 */ "kkkkkkkkkkkk" + /* 2 */ "sffffffffffs" + /* 3 */ ".fttttttttf." + /* 4 */ ".f........f." + /* 5 */ ".fttttttttf." + /* 6 */ "wffffffffffw" + /* 7 */ "iiiiiiiiiiii" /* 8 */ "............" - // Level 7 + // Level 6 /* z\x* 11 */ /* * 012345678901 */ /* 0 */ "............" /* 1 */ "............" - /* 2 */ "nnnnnnnnnnnn" - /* 3 */ "uhhhhhhhhhhu" - /* 4 */ ".h........h." - /* 5 */ "yhhhhhhhhhhy" - /* 6 */ "kkkkkkkkkkkk" + /* 2 */ "kkkkkkkkkkkk" + /* 3 */ "sffffffffffs" + /* 4 */ ".f........f." + /* 5 */ "wffffffffffw" + /* 6 */ "iiiiiiiiiiii" /* 7 */ "............" /* 8 */ "............" - // Level 8 + // Level 7 /* z\x* 11 */ /* * 012345678901 */ /* 0 */ "............" /* 1 */ "............" /* 2 */ "............" - /* 3 */ "nnnnnnnnnnnn" - /* 4 */ "hhhhhhhhhhhh" - /* 5 */ "kkkkkkkkkkkk" + /* 3 */ "kkkkkkkkkkkk" + /* 4 */ "ffffffffffff" + /* 5 */ "iiiiiiiiiiii" /* 6 */ "............" /* 7 */ "............" /* 8 */ "............", // Connectors: - "-1: 5, 2, 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 */ @@ -1296,6 +1890,9 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // WoodenHouse10x7Library @@ -1305,115 +1902,103 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // The data has been exported from the gallery Plains, area index 49, ID 100, created by Aloe_vera { // Size: - 7, 8, 7, // SizeX = 7, SizeY = 8, SizeZ = 7 + 7, 7, 7, // SizeX = 7, SizeY = 7, SizeZ = 7 // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 7, 7, 7, // MaxX, MaxY, MaxZ + -1, -1, 0, // MinX, MinY, MinZ + 7, 6, 7, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 2: 0\n" /* grass */ - "c: 67: 0\n" /* stairs */ - "d: 67: 2\n" /* stairs */ - "e: 67: 1\n" /* stairs */ - "f: 4: 0\n" /* cobblestone */ - "g: 17: 0\n" /* tree */ - "h: 5: 0\n" /* wood */ - "i: 64: 7\n" /* wooddoorblock */ - "j: 64:12\n" /* wooddoorblock */ - "k:102: 0\n" /* glasspane */ - "l: 53: 2\n" /* woodstairs */ + "a: 4: 0\n" /* cobblestone */ + "b: 67: 0\n" /* stairs */ + "c: 67: 2\n" /* stairs */ + "d: 67: 1\n" /* stairs */ + "e: 17: 0\n" /* tree */ + "f: 5: 0\n" /* wood */ + "g: 64: 7\n" /* wooddoorblock */ + "h: 64:12\n" /* wooddoorblock */ + "i:102: 0\n" /* glasspane */ + "j: 53: 2\n" /* woodstairs */ + "k: 53: 7\n" /* woodstairs */ + "l: 50: 3\n" /* torch */ "m: 19: 0\n" /* sponge */ - "n: 53: 7\n" /* woodstairs */ - "o: 50: 3\n" /* torch */ - "p: 53: 6\n" /* woodstairs */ - "q: 53: 3\n" /* woodstairs */, + "n: 53: 6\n" /* woodstairs */ + "o: 53: 3\n" /* woodstairs */, // Block data: // Level 0 /* z\x* 0123456 */ - /* 0 */ "aaaaaaa" - /* 1 */ "aaaaaaa" - /* 2 */ "aaaaaaa" - /* 3 */ "aaaaaaa" - /* 4 */ "aaaaaaa" - /* 5 */ "aaaaaaa" - /* 6 */ "aaaaaaa" + /* 0 */ "mmaaamm" + /* 1 */ "maaaaam" + /* 2 */ "maaaaam" + /* 3 */ "maaaaam" + /* 4 */ "maaaaam" + /* 5 */ "maaaaam" + /* 6 */ "mmmmmmm" // Level 1 /* z\x* 0123456 */ - /* 0 */ "bbaaabb" - /* 1 */ "baaaaab" - /* 2 */ "baaaaab" - /* 3 */ "baaaaab" - /* 4 */ "baaaaab" - /* 5 */ "baaaaab" - /* 6 */ "bbbbbbb" + /* 0 */ "..bcd.." + /* 1 */ ".aaaaa." + /* 2 */ ".aaaaa." + /* 3 */ ".aaaaa." + /* 4 */ ".aaaaa." + /* 5 */ ".aaaaa." + /* 6 */ "......." // Level 2 /* z\x* 0123456 */ - /* 0 */ "..cde.." - /* 1 */ ".fffff." - /* 2 */ ".fffff." - /* 3 */ ".fffff." - /* 4 */ ".fffff." - /* 5 */ ".fffff." + /* 0 */ "......." + /* 1 */ ".efgfe." + /* 2 */ ".f...f." + /* 3 */ ".f...f." + /* 4 */ ".f...f." + /* 5 */ ".efffe." /* 6 */ "......." // Level 3 /* z\x* 0123456 */ /* 0 */ "......." - /* 1 */ ".ghihg." - /* 2 */ ".h...h." - /* 3 */ ".h...h." - /* 4 */ ".h...h." - /* 5 */ ".ghhhg." + /* 1 */ ".efhfe." + /* 2 */ ".i...i." + /* 3 */ ".i...i." + /* 4 */ ".i...i." + /* 5 */ ".eiiie." /* 6 */ "......." // Level 4 /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".ghjhg." - /* 2 */ ".k...k." - /* 3 */ ".k...k." - /* 4 */ ".k...k." - /* 5 */ ".gkkkg." - /* 6 */ "......." + /* 0 */ "jjjjjjj" + /* 1 */ "kfffffk" + /* 2 */ ".fl.lf." + /* 3 */ ".f...f." + /* 4 */ ".f...f." + /* 5 */ "nfffffn" + /* 6 */ "ooooooo" // Level 5 /* z\x* 0123456 */ - /* 0 */ "lllllll" - /* 1 */ "nhhhhhn" - /* 2 */ ".ho.oh." - /* 3 */ ".h...h." - /* 4 */ ".h...h." - /* 5 */ "phhhhhp" - /* 6 */ "qqqqqqq" - - // Level 6 - /* z\x* 0123456 */ /* 0 */ "......." - /* 1 */ "lllllll" - /* 2 */ "nhhhhhn" - /* 3 */ ".h...h." - /* 4 */ "phhhhhp" - /* 5 */ "qqqqqqq" + /* 1 */ "jjjjjjj" + /* 2 */ "kfffffk" + /* 3 */ ".f...f." + /* 4 */ "nfffffn" + /* 5 */ "ooooooo" /* 6 */ "......." - // Level 7 + // Level 6 /* z\x* 0123456 */ /* 0 */ "......." /* 1 */ "......." - /* 2 */ "lllllll" - /* 3 */ "hhhhhhh" - /* 4 */ "qqqqqqq" + /* 2 */ "jjjjjjj" + /* 3 */ "fffffff" + /* 4 */ "ooooooo" /* 5 */ "......." /* 6 */ ".......", // Connectors: - "-1: 3, 2, 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 */ @@ -1432,6 +2017,9 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // WoodenHouse5x5 @@ -1441,259 +2029,103 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // The data has been exported from the gallery Plains, area index 40, ID 91, created by xoft { // Size: - 9, 8, 7, // SizeX = 9, SizeY = 8, SizeZ = 7 - - // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 9, 7, 7, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 2: 0\n" /* grass */ - "c: 67: 0\n" /* stairs */ - "d: 67: 2\n" /* stairs */ - "e: 67: 1\n" /* stairs */ - "f: 4: 0\n" /* cobblestone */ - "g: 17: 0\n" /* tree */ - "h: 5: 0\n" /* wood */ - "i: 64: 7\n" /* wooddoorblock */ - "j:102: 0\n" /* glasspane */ - "k: 64:12\n" /* wooddoorblock */ - "l: 53: 2\n" /* woodstairs */ - "m: 19: 0\n" /* sponge */ - "n: 53: 7\n" /* woodstairs */ - "o: 50: 3\n" /* torch */ - "p: 53: 6\n" /* woodstairs */ - "q: 53: 3\n" /* woodstairs */, - - // Block data: - // Level 0 - /* z\x* 012345678 */ - /* 0 */ "aaaaaaaaa" - /* 1 */ "aaaaaaaaa" - /* 2 */ "aaaaaaaaa" - /* 3 */ "aaaaaaaaa" - /* 4 */ "aaaaaaaaa" - /* 5 */ "aaaaaaaaa" - /* 6 */ "aaaaaaaaa" - - // Level 1 - /* z\x* 012345678 */ - /* 0 */ "bbbaaabbb" - /* 1 */ "baaaaaaab" - /* 2 */ "baaaaaaab" - /* 3 */ "baaaaaaab" - /* 4 */ "baaaaaaab" - /* 5 */ "baaaaaaab" - /* 6 */ "bbbbbbbbb" - - // Level 2 - /* z\x* 012345678 */ - /* 0 */ "...cde..." - /* 1 */ ".fffffff." - /* 2 */ ".fffffff." - /* 3 */ ".fffffff." - /* 4 */ ".fffffff." - /* 5 */ ".fffffff." - /* 6 */ "........." - - // Level 3 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ ".ghhihhg." - /* 2 */ ".h.....h." - /* 3 */ ".h.....h." - /* 4 */ ".h.....h." - /* 5 */ ".ghhhhhg." - /* 6 */ "........." - - // Level 4 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ ".gjhkhjg." - /* 2 */ ".j.....j." - /* 3 */ ".j.....j." - /* 4 */ ".j.....j." - /* 5 */ ".gjjhjjg." - /* 6 */ "........." - - // Level 5 - /* z\x* 012345678 */ - /* 0 */ "lllllllll" - /* 1 */ "nghhhhhgn" - /* 2 */ ".h.o.o.h." - /* 3 */ ".h.....h." - /* 4 */ ".h.....h." - /* 5 */ "pghhhhhgp" - /* 6 */ "qqqqqqqqq" - - // Level 6 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ "lllllllll" - /* 2 */ "nhhhhhhhn" - /* 3 */ ".h.....h." - /* 4 */ "phhhhhhhp" - /* 5 */ "qqqqqqqqq" - /* 6 */ "........." - - // Level 7 - /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ "........." - /* 2 */ "lllllllll" - /* 3 */ "hhhhhhhhh" - /* 4 */ "qqqqqqqqq" - /* 5 */ "........." - /* 6 */ ".........", - - // Connectors: - "-1: 4, 2, -1: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: - true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - }, // WoodenHouse7x5 - - - - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // WoodenHouse9x5: - // The data has been exported from the gallery Plains, area index 41, ID 92, created by xoft - { - // Size: - 11, 8, 7, // SizeX = 11, SizeY = 8, SizeZ = 7 + 9, 7, 7, // SizeX = 9, SizeY = 7, SizeZ = 7 // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 11, 7, 7, // MaxX, MaxY, MaxZ + -1, -1, 0, // MinX, MinY, MinZ + 9, 6, 7, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 2: 0\n" /* grass */ - "c: 67: 0\n" /* stairs */ - "d: 67: 2\n" /* stairs */ - "e: 67: 1\n" /* stairs */ - "f: 4: 0\n" /* cobblestone */ - "g: 17: 0\n" /* tree */ - "h: 5: 0\n" /* wood */ - "i: 64: 7\n" /* wooddoorblock */ - "j:102: 0\n" /* glasspane */ - "k: 64:12\n" /* wooddoorblock */ - "l: 53: 2\n" /* woodstairs */ + "a: 4: 0\n" /* cobblestone */ + "b: 67: 0\n" /* stairs */ + "c: 67: 2\n" /* stairs */ + "d: 67: 1\n" /* stairs */ + "e: 17: 0\n" /* tree */ + "f: 5: 0\n" /* wood */ + "g: 64: 7\n" /* wooddoorblock */ + "h:102: 0\n" /* glasspane */ + "i: 64:12\n" /* wooddoorblock */ + "j: 53: 2\n" /* woodstairs */ + "k: 53: 7\n" /* woodstairs */ + "l: 50: 3\n" /* torch */ "m: 19: 0\n" /* sponge */ - "n: 53: 7\n" /* woodstairs */ - "o: 50: 3\n" /* torch */ - "p: 53: 6\n" /* woodstairs */ - "q: 53: 3\n" /* woodstairs */, - - // Block data: - // Level 0 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "aaaaaaaaaaa" - /* 1 */ "aaaaaaaaaaa" - /* 2 */ "aaaaaaaaaaa" - /* 3 */ "aaaaaaaaaaa" - /* 4 */ "aaaaaaaaaaa" - /* 5 */ "aaaaaaaaaaa" - /* 6 */ "aaaaaaaaaaa" + "n: 53: 6\n" /* woodstairs */ + "o: 53: 3\n" /* woodstairs */, - // Level 1 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "bbbbaaabbbb" - /* 1 */ "baaaaaaaaab" - /* 2 */ "baaaaaaaaab" - /* 3 */ "baaaaaaaaab" - /* 4 */ "baaaaaaaaab" - /* 5 */ "baaaaaaaaab" - /* 6 */ "bbbbbbbbbbb" + // Block data: + // Level 0 + /* z\x* 012345678 */ + /* 0 */ "mmmaaammm" + /* 1 */ "maaaaaaam" + /* 2 */ "maaaaaaam" + /* 3 */ "maaaaaaam" + /* 4 */ "maaaaaaam" + /* 5 */ "maaaaaaam" + /* 6 */ "mmmmmmmmm" + + // Level 1 + /* z\x* 012345678 */ + /* 0 */ "...bcd..." + /* 1 */ ".aaaaaaa." + /* 2 */ ".aaaaaaa." + /* 3 */ ".aaaaaaa." + /* 4 */ ".aaaaaaa." + /* 5 */ ".aaaaaaa." + /* 6 */ "........." // Level 2 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "....cde...." - /* 1 */ ".fffffffff." - /* 2 */ ".fffffffff." - /* 3 */ ".fffffffff." - /* 4 */ ".fffffffff." - /* 5 */ ".fffffffff." - /* 6 */ "..........." + /* z\x* 012345678 */ + /* 0 */ "........." + /* 1 */ ".effgffe." + /* 2 */ ".f.....f." + /* 3 */ ".f.....f." + /* 4 */ ".f.....f." + /* 5 */ ".efffffe." + /* 6 */ "........." // Level 3 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".ghhhihhhg." - /* 2 */ ".h.......h." - /* 3 */ ".h.......h." - /* 4 */ ".h.......h." - /* 5 */ ".ghhhhhhhg." - /* 6 */ "..........." + /* z\x* 012345678 */ + /* 0 */ "........." + /* 1 */ ".ehfifhe." + /* 2 */ ".h.....h." + /* 3 */ ".h.....h." + /* 4 */ ".h.....h." + /* 5 */ ".ehhfhhe." + /* 6 */ "........." // Level 4 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".gjjhkhjjg." - /* 2 */ ".j.......j." - /* 3 */ ".j.......j." - /* 4 */ ".j.......j." - /* 5 */ ".gjjjhjjjg." - /* 6 */ "..........." + /* z\x* 012345678 */ + /* 0 */ "jjjjjjjjj" + /* 1 */ "kefffffek" + /* 2 */ ".f.l.l.f." + /* 3 */ ".f.....f." + /* 4 */ ".f.....f." + /* 5 */ "nefffffen" + /* 6 */ "ooooooooo" // Level 5 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "lllllllllll" - /* 1 */ "nhhhhhhhhhn" - /* 2 */ ".h..o.o.hh." - /* 3 */ ".h......hh." - /* 4 */ ".h......hh." - /* 5 */ "phhhhhhhhhp" - /* 6 */ "qqqqqqqqqqq" + /* z\x* 012345678 */ + /* 0 */ "........." + /* 1 */ "jjjjjjjjj" + /* 2 */ "kfffffffk" + /* 3 */ ".f.....f." + /* 4 */ "nfffffffn" + /* 5 */ "ooooooooo" + /* 6 */ "........." // Level 6 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "lllllllllll" - /* 2 */ "nhhhhhhhhhn" - /* 3 */ ".hhhhhhhhh." - /* 4 */ "phhhhhhhhhp" - /* 5 */ "qqqqqqqqqqq" - /* 6 */ "..........." - - // Level 7 - /* z\x* 1 */ - /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ "..........." - /* 2 */ "lllllllllll" - /* 3 */ "hhhhhhhhhhh" - /* 4 */ "qqqqqqqqqqq" - /* 5 */ "..........." - /* 6 */ "...........", + /* z\x* 012345678 */ + /* 0 */ "........." + /* 1 */ "........." + /* 2 */ "jjjjjjjjj" + /* 3 */ "fffffffff" + /* 4 */ "ooooooooo" + /* 5 */ "........." + /* 6 */ ".........", // Connectors: - "-1: 5, 2, -1: 2\n" /* Type -1, direction Z- */, + "-1: 4, 1, -1: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1712,139 +2144,122 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, - }, // WoodenHouse9x5 + + // MoveToGround: + true, + }, // WoodenHouse7x5 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // WoodenHouse9x5: - // The data has been exported from the gallery Plains, area index 46, ID 97, created by Aloe_vera + // The data has been exported from the gallery Plains, area index 41, ID 92, created by xoft { // Size: - 11, 8, 7, // SizeX = 11, SizeY = 8, SizeZ = 7 + 11, 7, 7, // SizeX = 11, SizeY = 7, SizeZ = 7 // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 11, 7, 7, // MaxX, MaxY, MaxZ + -1, -1, 0, // MinX, MinY, MinZ + 11, 6, 7, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 2: 0\n" /* grass */ - "c: 67: 0\n" /* stairs */ - "d: 67: 2\n" /* stairs */ - "e: 67: 1\n" /* stairs */ - "f: 4: 0\n" /* cobblestone */ - "g: 17: 0\n" /* tree */ - "h: 5: 0\n" /* wood */ - "i: 64: 7\n" /* wooddoorblock */ - "j: 53: 3\n" /* woodstairs */ - "k: 85: 0\n" /* fence */ - "l: 53: 2\n" /* woodstairs */ + "a: 4: 0\n" /* cobblestone */ + "b: 67: 0\n" /* stairs */ + "c: 67: 2\n" /* stairs */ + "d: 67: 1\n" /* stairs */ + "e: 17: 0\n" /* tree */ + "f: 5: 0\n" /* wood */ + "g: 64: 7\n" /* wooddoorblock */ + "h:102: 0\n" /* glasspane */ + "i: 64:12\n" /* wooddoorblock */ + "j: 53: 2\n" /* woodstairs */ + "k: 53: 7\n" /* woodstairs */ + "l: 50: 3\n" /* torch */ "m: 19: 0\n" /* sponge */ - "n: 53: 1\n" /* woodstairs */ - "o: 53: 0\n" /* woodstairs */ - "p:102: 0\n" /* glasspane */ - "q: 64:12\n" /* wooddoorblock */ - "r: 50: 3\n" /* torch */ - "s: 72: 0\n" /* woodplate */ - "t: 53: 7\n" /* woodstairs */ - "u: 47: 0\n" /* bookshelf */ - "v: 50: 1\n" /* torch */ - "w: 50: 2\n" /* torch */ - "x: 53: 6\n" /* woodstairs */, + "n: 53: 6\n" /* woodstairs */ + "o: 53: 3\n" /* woodstairs */, // Block data: // Level 0 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "aaaaaaaaaaa" - /* 1 */ "aaaaaaaaaaa" - /* 2 */ "aaaaaaaaaaa" - /* 3 */ "aaaaaaaaaaa" - /* 4 */ "aaaaaaaaaaa" - /* 5 */ "aaaaaaaaaaa" - /* 6 */ "aaaaaaaaaaa" + /* 0 */ "mmmmaaammmm" + /* 1 */ "maaaaaaaaam" + /* 2 */ "maaaaaaaaam" + /* 3 */ "maaaaaaaaam" + /* 4 */ "maaaaaaaaam" + /* 5 */ "maaaaaaaaam" + /* 6 */ "mmmmmmmmmmm" // Level 1 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "bbbbaaabbbb" - /* 1 */ "baaaaaaaaab" - /* 2 */ "baaaaaaaaab" - /* 3 */ "baaaaaaaaab" - /* 4 */ "baaaaaaaaab" - /* 5 */ "baaaaaaaaab" - /* 6 */ "bbbbbbbbbbb" + /* 0 */ "....bcd...." + /* 1 */ ".aaaaaaaaa." + /* 2 */ ".aaaaaaaaa." + /* 3 */ ".aaaaaaaaa." + /* 4 */ ".aaaaaaaaa." + /* 5 */ ".aaaaaaaaa." + /* 6 */ "..........." // Level 2 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "....cde...." - /* 1 */ ".fffffffff." - /* 2 */ ".fffffffff." - /* 3 */ ".fffffffff." - /* 4 */ ".fffffffff." - /* 5 */ ".fffffffff." + /* 0 */ "..........." + /* 1 */ ".efffgfffe." + /* 2 */ ".f.......f." + /* 3 */ ".f.......f." + /* 4 */ ".f.......f." + /* 5 */ ".efffffffe." /* 6 */ "..........." // Level 3 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "..........." - /* 1 */ ".ghhhihhhg." - /* 2 */ ".hj.....jh." - /* 3 */ ".hk.....kh." - /* 4 */ ".hl.nko.lh." - /* 5 */ ".ghhhhhhhg." + /* 1 */ ".ehhfifhhe." + /* 2 */ ".h.......h." + /* 3 */ ".h.......h." + /* 4 */ ".h.......h." + /* 5 */ ".ehhhfhhhe." /* 6 */ "..........." // Level 4 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".gpphqhppg." - /* 2 */ ".p..r.r..p." - /* 3 */ ".ps.....sp." - /* 4 */ ".p...s...p." - /* 5 */ ".gppphpppg." - /* 6 */ "..........." + /* 0 */ "jjjjjjjjjjj" + /* 1 */ "kfffffffffk" + /* 2 */ ".f..l.l.ff." + /* 3 */ ".f......ff." + /* 4 */ ".f......ff." + /* 5 */ "nfffffffffn" + /* 6 */ "ooooooooooo" // Level 5 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "lllllllllll" - /* 1 */ "thhhhhhhhht" - /* 2 */ ".huuuuuuuh." - /* 3 */ ".hv.....wh." - /* 4 */ ".huuuuuuuh." - /* 5 */ "xhhhhhhhhhx" - /* 6 */ "jjjjjjjjjjj" - - // Level 6 - /* z\x* 1 */ - /* * 01234567890 */ /* 0 */ "..........." - /* 1 */ "lllllllllll" - /* 2 */ "thhhhhhhhht" - /* 3 */ ".h.......h." - /* 4 */ "xhhhhhhhhhx" - /* 5 */ "jjjjjjjjjjj" + /* 1 */ "jjjjjjjjjjj" + /* 2 */ "kfffffffffk" + /* 3 */ ".fffffffff." + /* 4 */ "nfffffffffn" + /* 5 */ "ooooooooooo" /* 6 */ "..........." - // Level 7 + // Level 6 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "..........." /* 1 */ "..........." - /* 2 */ "lllllllllll" - /* 3 */ "hhhhhhhhhhh" - /* 4 */ "jjjjjjjjjjj" + /* 2 */ "jjjjjjjjjjj" + /* 3 */ "fffffffffff" + /* 4 */ "ooooooooooo" /* 5 */ "..........." /* 6 */ "...........", // Connectors: - "-1: 5, 2, 0: 2\n" /* Type -1, direction Z- */, + "-1: 5, 1, -1: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1863,6 +2278,9 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // WoodenHouse9x5 @@ -1893,11 +2311,11 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = "k: 85: 0\n" /* fence */ "l: 53: 0\n" /* woodstairs */ "m: 19: 0\n" /* sponge */ - "n: 64: 2\n" /* wooddoorblock */ - "o: 64: 0\n" /* wooddoorblock */ + "n: 64: 6\n" /* wooddoorblock */ + "o: 64: 4\n" /* wooddoorblock */ "p:102: 0\n" /* glasspane */ "q: 72: 0\n" /* woodplate */ - "r: 64: 8\n" /* wooddoorblock */ + "r: 64:12\n" /* wooddoorblock */ "s: 53: 5\n" /* woodstairs */ "t: 53: 4\n" /* woodstairs */ "u: 50: 1\n" /* torch */ @@ -2029,162 +2447,291 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // WoodenHouse9x5Fence + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // WoodenHouse9x5Library: + // The data has been exported from the gallery Plains, area index 46, ID 97, created by Aloe_vera + { + // Size: + 11, 7, 7, // SizeX = 11, SizeY = 7, SizeZ = 7 + + // Hitbox (relative to bounding box): + -1, -1, 0, // MinX, MinY, MinZ + 11, 6, 7, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 4: 0\n" /* cobblestone */ + "b: 67: 0\n" /* stairs */ + "c: 67: 2\n" /* stairs */ + "d: 67: 1\n" /* stairs */ + "e: 17: 0\n" /* tree */ + "f: 5: 0\n" /* wood */ + "g: 64: 7\n" /* wooddoorblock */ + "h: 53: 3\n" /* woodstairs */ + "i: 85: 0\n" /* fence */ + "j: 53: 2\n" /* woodstairs */ + "k: 53: 1\n" /* woodstairs */ + "l: 53: 0\n" /* woodstairs */ + "m: 19: 0\n" /* sponge */ + "n:102: 0\n" /* glasspane */ + "o: 64:12\n" /* wooddoorblock */ + "p: 50: 3\n" /* torch */ + "q: 72: 0\n" /* woodplate */ + "r: 53: 7\n" /* woodstairs */ + "s: 47: 0\n" /* bookshelf */ + "t: 50: 1\n" /* torch */ + "u: 50: 2\n" /* torch */ + "v: 53: 6\n" /* woodstairs */, + + // Block data: + // Level 0 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "mmmmaaammmm" + /* 1 */ "maaaaaaaaam" + /* 2 */ "maaaaaaaaam" + /* 3 */ "maaaaaaaaam" + /* 4 */ "maaaaaaaaam" + /* 5 */ "maaaaaaaaam" + /* 6 */ "mmmmmmmmmmm" + + // Level 1 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "....bcd...." + /* 1 */ ".aaaaaaaaa." + /* 2 */ ".aaaaaaaaa." + /* 3 */ ".aaaaaaaaa." + /* 4 */ ".aaaaaaaaa." + /* 5 */ ".aaaaaaaaa." + /* 6 */ "..........." + + // Level 2 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".efffgfffe." + /* 2 */ ".fh.....hf." + /* 3 */ ".fi.....if." + /* 4 */ ".fj.kil.jf." + /* 5 */ ".efffffffe." + /* 6 */ "..........." + + // Level 3 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".ennfofnne." + /* 2 */ ".n..p.p..n." + /* 3 */ ".nq.....qn." + /* 4 */ ".n...q...n." + /* 5 */ ".ennnfnnne." + /* 6 */ "..........." + + // Level 4 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "jjjjjjjjjjj" + /* 1 */ "rfffffffffr" + /* 2 */ ".fsssssssf." + /* 3 */ ".ft.....uf." + /* 4 */ ".fsssssssf." + /* 5 */ "vfffffffffv" + /* 6 */ "hhhhhhhhhhh" + + // Level 5 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "jjjjjjjjjjj" + /* 2 */ "rfffffffffr" + /* 3 */ ".f.......f." + /* 4 */ "vfffffffffv" + /* 5 */ "hhhhhhhhhhh" + /* 6 */ "..........." + + // Level 6 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "jjjjjjjjjjj" + /* 3 */ "fffffffffff" + /* 4 */ "hhhhhhhhhhh" + /* 5 */ "..........." + /* 6 */ "...........", + + // Connectors: + "-1: 5, 1, 0: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + true, + }, // WoodenHouse9x5Library + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // WoodenHouse9x7: // The data has been exported from the gallery Plains, area index 52, ID 103, created by Aloe_vera { // Size: - 11, 9, 9, // SizeX = 11, SizeY = 9, SizeZ = 9 + 11, 8, 9, // SizeX = 11, SizeY = 8, SizeZ = 9 // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 11, 8, 9, // MaxX, MaxY, MaxZ + -1, -1, 0, // MinX, MinY, MinZ + 11, 7, 9, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 2: 0\n" /* grass */ - "c: 67: 0\n" /* stairs */ - "d: 67: 2\n" /* stairs */ - "e: 67: 1\n" /* stairs */ - "f: 4: 0\n" /* cobblestone */ - "g: 17: 0\n" /* tree */ - "h: 5: 0\n" /* wood */ - "i: 64: 7\n" /* wooddoorblock */ - "j:102: 0\n" /* glasspane */ - "k: 64:12\n" /* wooddoorblock */ - "l: 53: 2\n" /* woodstairs */ + "a: 4: 0\n" /* cobblestone */ + "b: 67: 0\n" /* stairs */ + "c: 67: 2\n" /* stairs */ + "d: 67: 1\n" /* stairs */ + "e: 17: 0\n" /* tree */ + "f: 5: 0\n" /* wood */ + "g: 64: 7\n" /* wooddoorblock */ + "h:102: 0\n" /* glasspane */ + "i: 64:12\n" /* wooddoorblock */ + "j: 53: 2\n" /* woodstairs */ + "k: 53: 7\n" /* woodstairs */ + "l: 50: 3\n" /* torch */ "m: 19: 0\n" /* sponge */ - "n: 53: 7\n" /* woodstairs */ - "o: 50: 3\n" /* torch */ - "p: 50: 4\n" /* torch */ - "q: 53: 6\n" /* woodstairs */ - "r: 53: 3\n" /* woodstairs */, + "n: 50: 4\n" /* torch */ + "o: 53: 6\n" /* woodstairs */ + "p: 53: 3\n" /* woodstairs */, // Block data: // Level 0 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "aaaaaaaaaaa" - /* 1 */ "aaaaaaaaaaa" - /* 2 */ "aaaaaaaaaaa" - /* 3 */ "aaaaaaaaaaa" - /* 4 */ "aaaaaaaaaaa" - /* 5 */ "aaaaaaaaaaa" - /* 6 */ "aaaaaaaaaaa" - /* 7 */ "aaaaaaaaaaa" - /* 8 */ "aaaaaaaaaaa" + /* 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 */ "bbbbaaabbbb" - /* 1 */ "baaaaaaaaab" - /* 2 */ "baaaaaaaaab" - /* 3 */ "baaaaaaaaab" - /* 4 */ "baaaaaaaaab" - /* 5 */ "baaaaaaaaab" - /* 6 */ "baaaaaaaaab" - /* 7 */ "baaaaaaaaab" - /* 8 */ "bbbbbbbbbbb" + /* 0 */ "....bcd...." + /* 1 */ ".aaaaaaaaa." + /* 2 */ ".aaaaaaaaa." + /* 3 */ ".aaaaaaaaa." + /* 4 */ ".aaaaaaaaa." + /* 5 */ ".aaaaaaaaa." + /* 6 */ ".aaaaaaaaa." + /* 7 */ ".aaaaaaaaa." + /* 8 */ "..........." // Level 2 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "....cde...." - /* 1 */ ".fffffffff." - /* 2 */ ".fffffffff." - /* 3 */ ".fffffffff." - /* 4 */ ".fffffffff." - /* 5 */ ".fffffffff." - /* 6 */ ".fffffffff." - /* 7 */ ".fffffffff." + /* 0 */ "..........." + /* 1 */ ".efffgfffe." + /* 2 */ ".f.......f." + /* 3 */ ".f.......f." + /* 4 */ ".f.......f." + /* 5 */ ".f.......f." + /* 6 */ ".f.......f." + /* 7 */ ".efffffffe." /* 8 */ "..........." // Level 3 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "..........." - /* 1 */ ".ghhhihhhg." + /* 1 */ ".ehhfifhhe." /* 2 */ ".h.......h." /* 3 */ ".h.......h." - /* 4 */ ".h.......h." + /* 4 */ ".f.......f." /* 5 */ ".h.......h." /* 6 */ ".h.......h." - /* 7 */ ".ghhhhhhhg." + /* 7 */ ".ehhhfhhhe." /* 8 */ "..........." // Level 4 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".gjjhkhjjg." - /* 2 */ ".j.......j." - /* 3 */ ".j.......j." - /* 4 */ ".h.......h." - /* 5 */ ".j.......j." - /* 6 */ ".j.......j." - /* 7 */ ".gjjjhjjjg." - /* 8 */ "..........." + /* 0 */ "jjjjjjjjjjj" + /* 1 */ "kfffffffffk" + /* 2 */ ".f..l.l..f." + /* 3 */ ".f.......f." + /* 4 */ ".f.......f." + /* 5 */ ".f.......f." + /* 6 */ ".f...n...f." + /* 7 */ "offfffffffo" + /* 8 */ "ppppppppppp" // Level 5 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "lllllllllll" - /* 1 */ "nhhhhhhhhhn" - /* 2 */ ".h..o.o..h." - /* 3 */ ".h.......h." - /* 4 */ ".h.......h." - /* 5 */ ".h.......h." - /* 6 */ ".h...p...h." - /* 7 */ "qhhhhhhhhhq" - /* 8 */ "rrrrrrrrrrr" - - // Level 6 - /* z\x* 1 */ - /* * 01234567890 */ /* 0 */ "..........." - /* 1 */ "lllllllllll" - /* 2 */ "nhhhhhhhhhn" - /* 3 */ ".h.......h." - /* 4 */ ".h.......h." - /* 5 */ ".h.......h." - /* 6 */ "qhhhhhhhhhq" - /* 7 */ "rrrrrrrrrrr" + /* 1 */ "jjjjjjjjjjj" + /* 2 */ "kfffffffffk" + /* 3 */ ".f.......f." + /* 4 */ ".f.......f." + /* 5 */ ".f.......f." + /* 6 */ "offfffffffo" + /* 7 */ "ppppppppppp" /* 8 */ "..........." - // Level 7 + // Level 6 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "..........." /* 1 */ "..........." - /* 2 */ "lllllllllll" - /* 3 */ "nhhhhhhhhhn" - /* 4 */ ".h.......h." - /* 5 */ "qhhhhhhhhhq" - /* 6 */ "rrrrrrrrrrr" + /* 2 */ "jjjjjjjjjjj" + /* 3 */ "kfffffffffk" + /* 4 */ ".f.......f." + /* 5 */ "offfffffffo" + /* 6 */ "ppppppppppp" /* 7 */ "..........." /* 8 */ "..........." - // Level 8 + // Level 7 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "..........." /* 1 */ "..........." /* 2 */ "..........." - /* 3 */ "lllllllllll" - /* 4 */ "hhhhhhhhhhh" - /* 5 */ "rrrrrrrrrrr" + /* 3 */ "jjjjjjjjjjj" + /* 4 */ "fffffffffff" + /* 5 */ "ppppppppppp" /* 6 */ "..........." /* 7 */ "..........." /* 8 */ "...........", // Connectors: - "-1: 5, 2, 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 */ @@ -2203,6 +2750,9 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // WoodenHouse9x7 @@ -2246,19 +2796,19 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // Level 0 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "aaaaaaaaaaa" - /* 1 */ "aaaaaaaaaab" - /* 2 */ "aaaaaaaaaab" - /* 3 */ "aaaaaaaaaab" - /* 4 */ "aaaaaaaaaab" - /* 5 */ "aaaaaaaaaaa" - /* 6 */ "aaaaaaaaaab" - /* 7 */ "aaaaaaaaaab" - /* 8 */ "abaaaaaaabb" - /* 9 */ "aaaaaaaaabb" - /* 10 */ "aaaaaaaaabb" - /* 11 */ "abaaaaaaaba" - /* 12 */ "abaaaaaaabb" + /* 0 */ "abaaaaabbbb" + /* 1 */ "baaaaaaaaab" + /* 2 */ "baaaaaaaaab" + /* 3 */ "baaaaaaaaab" + /* 4 */ "baaaaaaaaab" + /* 5 */ "baaaaaaaaab" + /* 6 */ "baaaaaaaaab" + /* 7 */ "baaaaaaaaab" + /* 8 */ "bbaaaaaaabb" + /* 9 */ "bbaaaaaaabb" + /* 10 */ "bbaaaaaaabb" + /* 11 */ "bbaaaaaaabb" + /* 12 */ "bbaaaaaaabb" // Level 1 /* z\x* 1 */ @@ -2416,6 +2966,9 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // WoodenHouse9x7Butcher @@ -2425,156 +2978,141 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // The data has been exported from the gallery Plains, area index 38, ID 87, created by Aloe_vera { // Size: - 11, 9, 9, // SizeX = 11, SizeY = 9, SizeZ = 9 + 11, 8, 9, // SizeX = 11, SizeY = 8, SizeZ = 9 // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 11, 8, 9, // MaxX, MaxY, MaxZ + -1, -1, 0, // MinX, MinY, MinZ + 11, 7, 9, // MaxX, MaxY, MaxZ // Block definitions: - ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 2: 0\n" /* grass */ - "c: 67: 0\n" /* stairs */ - "d: 67: 2\n" /* stairs */ - "e: 67: 1\n" /* stairs */ - "f: 4: 0\n" /* cobblestone */ - "g: 67: 3\n" /* stairs */ - "h: 17: 0\n" /* tree */ - "i: 5: 0\n" /* wood */ - "j: 64: 7\n" /* wooddoorblock */ - "k:102: 0\n" /* glasspane */ - "l: 64:12\n" /* wooddoorblock */ + ".: 0: 0\n" /* air */ + "a: 4: 0\n" /* cobblestone */ + "b: 67: 0\n" /* stairs */ + "c: 67: 2\n" /* stairs */ + "d: 67: 1\n" /* stairs */ + "e: 67: 3\n" /* stairs */ + "f: 17: 0\n" /* tree */ + "g: 5: 0\n" /* wood */ + "h: 64: 7\n" /* wooddoorblock */ + "i:102: 0\n" /* glasspane */ + "j: 64:12\n" /* wooddoorblock */ + "k: 53: 2\n" /* woodstairs */ + "l: 53: 7\n" /* woodstairs */ "m: 19: 0\n" /* sponge */ - "n: 53: 2\n" /* woodstairs */ - "o: 53: 7\n" /* woodstairs */ - "p: 17: 4\n" /* tree */ - "q: 17: 8\n" /* tree */ - "r: 50: 3\n" /* torch */ - "s: 50: 4\n" /* torch */ - "t: 53: 6\n" /* woodstairs */ - "u: 53: 3\n" /* woodstairs */, + "n: 17: 4\n" /* tree */ + "o: 17: 8\n" /* tree */ + "p: 50: 3\n" /* torch */ + "q: 50: 4\n" /* torch */ + "r: 53: 6\n" /* woodstairs */ + "s: 53: 3\n" /* woodstairs */, // Block data: // Level 0 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "aaaaaaaaaaa" - /* 1 */ "aaaaaaaaaaa" - /* 2 */ "aaaaaaaaaaa" - /* 3 */ "aaaaaaaaaaa" - /* 4 */ "aaaaaaaaaaa" - /* 5 */ "aaaaaaaaaaa" - /* 6 */ "aaaaaaaaaaa" - /* 7 */ "aaaaaaaaaaa" - /* 8 */ "aaaaaaaaaaa" + /* 0 */ "mmmmaaammmm" + /* 1 */ "maaaaaaaaam" + /* 2 */ "maaaaaaaaam" + /* 3 */ "maaaaaaaaam" + /* 4 */ "maaaaaaaaam" + /* 5 */ "maaaaaaaaam" + /* 6 */ "maaaaaaaaam" + /* 7 */ "maaaaaaaaam" + /* 8 */ "mmmmaaammmm" // Level 1 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "bbbbaaabbbb" - /* 1 */ "baaaaaaaaab" - /* 2 */ "baaaaaaaaab" - /* 3 */ "baaaaaaaaab" - /* 4 */ "baaaaaaaaab" - /* 5 */ "baaaaaaaaab" - /* 6 */ "baaaaaaaaab" - /* 7 */ "baaaaaaaaab" - /* 8 */ "bbbbaaabbbb" + /* 0 */ "....bcd...." + /* 1 */ ".aaaaaaaaa." + /* 2 */ ".aaaaaaaaa." + /* 3 */ ".aaaaaaaaa." + /* 4 */ ".aaaaaaaaa." + /* 5 */ ".aaaaaaaaa." + /* 6 */ ".aaaaaaaaa." + /* 7 */ ".aaaaaaaaa." + /* 8 */ "....bed...." // Level 2 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "....cde...." - /* 1 */ ".fffffffff." - /* 2 */ ".fffffffff." - /* 3 */ ".fffffffff." - /* 4 */ ".fffffffff." - /* 5 */ ".fffffffff." - /* 6 */ ".fffffffff." - /* 7 */ ".fffffffff." - /* 8 */ "....cge...." + /* 0 */ "..........." + /* 1 */ ".fggfhfggf." + /* 2 */ ".g.......g." + /* 3 */ ".g.......g." + /* 4 */ ".f.......f." + /* 5 */ ".g.......g." + /* 6 */ ".g.......g." + /* 7 */ ".fggfhfggf." + /* 8 */ "..........." // Level 3 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "..........." - /* 1 */ ".hiihjhiih." + /* 1 */ ".fiifjfiif." /* 2 */ ".i.......i." /* 3 */ ".i.......i." - /* 4 */ ".h.......h." + /* 4 */ ".f.......f." /* 5 */ ".i.......i." /* 6 */ ".i.......i." - /* 7 */ ".hiihjhiih." + /* 7 */ ".fiifjfiif." /* 8 */ "..........." // Level 4 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".hkkhlhkkh." - /* 2 */ ".k.......k." - /* 3 */ ".k.......k." - /* 4 */ ".h.......h." - /* 5 */ ".k.......k." - /* 6 */ ".k.......k." - /* 7 */ ".hkkhlhkkh." - /* 8 */ "..........." + /* 0 */ "kkkkkkkkkkk" + /* 1 */ "lfnnnnnnnfl" + /* 2 */ ".o..p.p..o." + /* 3 */ ".o.......o." + /* 4 */ ".o.......o." + /* 5 */ ".o.......o." + /* 6 */ ".o..q.q..o." + /* 7 */ "rfnnnnnnnfr" + /* 8 */ "sssssssssss" // Level 5 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "nnnnnnnnnnn" - /* 1 */ "ohpppppppho" - /* 2 */ ".q..r.r..q." - /* 3 */ ".q.......q." - /* 4 */ ".q.......q." - /* 5 */ ".q.......q." - /* 6 */ ".q..s.s..q." - /* 7 */ "thpppppppht" - /* 8 */ "uuuuuuuuuuu" - - // Level 6 - /* z\x* 1 */ - /* * 01234567890 */ /* 0 */ "..........." - /* 1 */ "nnnnnnnnnnn" - /* 2 */ "oiiiiiiiiio" - /* 3 */ ".i.......i." - /* 4 */ ".i.......i." - /* 5 */ ".i.......i." - /* 6 */ "tiiiiiiiiit" - /* 7 */ "uuuuuuuuuuu" + /* 1 */ "kkkkkkkkkkk" + /* 2 */ "lgggggggggl" + /* 3 */ ".g.......g." + /* 4 */ ".g.......g." + /* 5 */ ".g.......g." + /* 6 */ "rgggggggggr" + /* 7 */ "sssssssssss" /* 8 */ "..........." - // Level 7 + // Level 6 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "..........." /* 1 */ "..........." - /* 2 */ "nnnnnnnnnnn" - /* 3 */ "oiiiiiiiiio" - /* 4 */ ".i.......i." - /* 5 */ "tiiiiiiiiit" - /* 6 */ "uuuuuuuuuuu" + /* 2 */ "kkkkkkkkkkk" + /* 3 */ "lgggggggggl" + /* 4 */ ".g.......g." + /* 5 */ "rgggggggggr" + /* 6 */ "sssssssssss" /* 7 */ "..........." /* 8 */ "..........." - // Level 8 + // Level 7 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "..........." /* 1 */ "..........." /* 2 */ "..........." - /* 3 */ "nnnnnnnnnnn" - /* 4 */ "iiiiiiiiiii" - /* 5 */ "uuuuuuuuuuu" + /* 3 */ "kkkkkkkkkkk" + /* 4 */ "ggggggggggg" + /* 5 */ "sssssssssss" /* 6 */ "..........." /* 7 */ "..........." /* 8 */ "...........", // Connectors: - "-1: 5, 2, 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 */ @@ -2593,6 +3131,9 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // WoodenHouse9x7DoubleDoor @@ -2602,250 +3143,228 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // The data has been exported from the gallery Plains, area index 39, ID 90, created by STR_Warrior { // Size: - 15, 10, 16, // SizeX = 15, SizeY = 10, SizeZ = 16 + 15, 9, 16, // SizeX = 15, SizeY = 9, SizeZ = 16 // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 15, 9, 16, // MaxX, MaxY, MaxZ + -1, -1, 0, // MinX, MinY, MinZ + 15, 8, 16, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "A: 50: 4\n" /* torch */ - "B: 50: 2\n" /* torch */ - "C: 53: 7\n" /* woodstairs */ - "D: 53: 4\n" /* woodstairs */ - "E: 53: 5\n" /* woodstairs */ - "F: 53: 6\n" /* woodstairs */ - "a: 3: 0\n" /* dirt */ - "b: 2: 0\n" /* grass */ - "c: 67: 0\n" /* stairs */ - "d: 67: 2\n" /* stairs */ - "e: 67: 1\n" /* stairs */ - "f: 4: 0\n" /* cobblestone */ - "g: 43: 0\n" /* doubleslab */ - "h: 17: 0\n" /* tree */ - "i: 5: 0\n" /* wood */ - "j: 64: 7\n" /* wooddoorblock */ - "k: 96: 8\n" /* trapdoor */ - "l: 61: 2\n" /* furnace */ + "A: 53: 7\n" /* woodstairs */ + "B: 53: 4\n" /* woodstairs */ + "C: 53: 5\n" /* woodstairs */ + "D: 53: 6\n" /* woodstairs */ + "a: 4: 0\n" /* cobblestone */ + "b: 67: 0\n" /* stairs */ + "c: 67: 2\n" /* stairs */ + "d: 67: 1\n" /* stairs */ + "e: 43: 0\n" /* doubleslab */ + "f: 17: 0\n" /* tree */ + "g: 5: 0\n" /* wood */ + "h: 64: 7\n" /* wooddoorblock */ + "i: 96: 8\n" /* trapdoor */ + "j: 61: 2\n" /* furnace */ + "k: 53: 3\n" /* woodstairs */ + "l: 85: 0\n" /* fence */ "m: 19: 0\n" /* sponge */ - "n: 53: 3\n" /* woodstairs */ - "o: 85: 0\n" /* fence */ - "p: 53: 2\n" /* woodstairs */ - "q: 53: 1\n" /* woodstairs */ - "r: 53: 0\n" /* woodstairs */ - "s: 47: 0\n" /* bookshelf */ - "t:102: 0\n" /* glasspane */ - "u: 64:12\n" /* wooddoorblock */ - "v: 72: 0\n" /* woodplate */ - "w: 17: 4\n" /* tree */ - "x: 17: 8\n" /* tree */ - "y: 50: 3\n" /* torch */ - "z: 50: 1\n" /* torch */, + "n: 53: 2\n" /* woodstairs */ + "o: 53: 1\n" /* woodstairs */ + "p: 53: 0\n" /* woodstairs */ + "q: 47: 0\n" /* bookshelf */ + "r:102: 0\n" /* glasspane */ + "s: 64:12\n" /* wooddoorblock */ + "t: 72: 0\n" /* woodplate */ + "u: 17: 4\n" /* tree */ + "v: 17: 8\n" /* tree */ + "w: 50: 3\n" /* torch */ + "x: 50: 1\n" /* torch */ + "y: 50: 4\n" /* torch */ + "z: 50: 2\n" /* torch */, // Block data: // Level 0 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "aaaaaaaaaaaaaaa" - /* 1 */ "aaaaaaaaaaaaaaa" - /* 2 */ "aaaaaaaaaaaaaaa" - /* 3 */ "aaaaaaaaaaaaaaa" - /* 4 */ "aaaaaaaaaaaaaaa" - /* 5 */ "aaaaaaaaaaaaaaa" - /* 6 */ "aaaaaaaaaaaaaaa" - /* 7 */ "aaaaaaaaaaaaaaa" - /* 8 */ "mmmmmmmmaaaaaaa" - /* 9 */ "mmmmmmmmaaaaaaa" - /* 10 */ "mmmmmmmmaaaaaaa" - /* 11 */ "mmmmmmmmaaaaaaa" - /* 12 */ "mmmmmmmmaaaaaaa" - /* 13 */ "mmmmmmmmaaaaaaa" - /* 14 */ "mmmmmmmmaaaaaaa" - /* 15 */ "mmmmmmmmaaaaaaa" + /* 0 */ "mmmmmmaaammmmmm" + /* 1 */ "maaaaaaaaaaaaam" + /* 2 */ "maaaaaaaaaaaaam" + /* 3 */ "maaaaaaaaaaaaam" + /* 4 */ "maaaaaaaaaaaaam" + /* 5 */ "maaaaaaaaaaaaam" + /* 6 */ "maaaaaaaaaaaaam" + /* 7 */ "maaaaaaaaaaaaam" + /* 8 */ "mmmmmmmmaaaaaam" + /* 9 */ "mmmmmmmmaaaaaam" + /* 10 */ "mmmmmmmmaaaaaam" + /* 11 */ "mmmmmmmmaaaaaam" + /* 12 */ "mmmmmmmmaaaaaam" + /* 13 */ "mmmmmmmmaaaaaam" + /* 14 */ "mmmmmmmmaaaaaam" + /* 15 */ "mmmmmmmmmmmmmmm" // Level 1 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "bbbbbbaaabbbbbb" - /* 1 */ "baaaaaaaaaaaaab" - /* 2 */ "baaaaaaaaaaaaab" - /* 3 */ "baaaaaaaaaaaaab" - /* 4 */ "baaaaaaaaaaaaab" - /* 5 */ "baaaaaaaaaaaaab" - /* 6 */ "baaaaaaaaaaaaab" - /* 7 */ "baaaaaaaaaaaaab" - /* 8 */ "mmmmmmmmaaaaaab" - /* 9 */ "mmmmmmmmaaaaaab" - /* 10 */ "mmmmmmmmaaaaaab" - /* 11 */ "mmmmmmmmaaaaaab" - /* 12 */ "mmmmmmmmaaaaaab" - /* 13 */ "mmmmmmmmaaaaaab" - /* 14 */ "mmmmmmmmaaaaaab" - /* 15 */ "mmmmmmmmbbbbbbb" + /* 0 */ "......bcd......" + /* 1 */ ".aaaaaaaaaaaaa." + /* 2 */ ".aeeeeaaaaaaaa." + /* 3 */ ".aeeeeaaaaaaaa." + /* 4 */ ".aaaaaaaaaaaaa." + /* 5 */ ".aaaaaaaaaaaaa." + /* 6 */ ".aaaaaaaaaaaaa." + /* 7 */ ".aaaaaaaaaaaaa." + /* 8 */ "........aaaaaa." + /* 9 */ "mmmmmmm.aaaaaa." + /* 10 */ "mmmmmmm.aaaaaa." + /* 11 */ "mmmmmmm.aaaaaa." + /* 12 */ "mmmmmmm.aaaaaa." + /* 13 */ "mmmmmmm.aaaaaa." + /* 14 */ "mmmmmmm.aaaaaa." + /* 15 */ "mmmmmmm........" // Level 2 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "......cde......" - /* 1 */ ".fffffffffffff." - /* 2 */ ".fggggffffffff." - /* 3 */ ".fggggffffffff." - /* 4 */ ".fffffffffffff." - /* 5 */ ".fffffffffffff." - /* 6 */ ".fffffffffffff." - /* 7 */ "mfffffffffffff." - /* 8 */ "mmmmmmmmffffff." - /* 9 */ "mmmmmmmmffffff." - /* 10 */ "mmmmmmmmffffff." - /* 11 */ "mmmmmmmmffffff." - /* 12 */ "mmmmmmmmffffff." - /* 13 */ "mmmmmmmmffffff." - /* 14 */ "mmmmmmmmffffff." - /* 15 */ "mmmmmmmm......." + /* 0 */ "..............." + /* 1 */ ".fggggfhfggggf." + /* 2 */ ".g...i.......g." + /* 3 */ ".gjeee......kg." + /* 4 */ ".f..........lg." + /* 5 */ ".g..........ng." + /* 6 */ ".g.olp..ol...g." + /* 7 */ ".fggggggfn...f." + /* 8 */ "........g....g." + /* 9 */ "mmmmmmm.gk...g." + /* 10 */ "mmmmmmm.gl..kg." + /* 11 */ "mmmmmmm.gn..lg." + /* 12 */ "mmmmmmm.g...ng." + /* 13 */ "mmmmmmm.gq..qg." + /* 14 */ "mmmmmmm.fggggf." + /* 15 */ "mmmmmmm........" // Level 3 /* z\x* 11111 */ /* * 012345678901234 */ /* 0 */ "..............." - /* 1 */ ".hiiiihjhiiiih." - /* 2 */ ".i...k.......i." - /* 3 */ ".ilggg......ni." - /* 4 */ ".h..........oi." - /* 5 */ ".i..........pi." - /* 6 */ ".i.qor..qo...i." - /* 7 */ "mhiiiiiihp...h." - /* 8 */ "mmmmmmmmi....i." - /* 9 */ "mmmmmmmmin...i." - /* 10 */ "mmmmmmmmio..ni." - /* 11 */ "mmmmmmmmip..oi." - /* 12 */ "mmmmmmmmi...pi." - /* 13 */ "mmmmmmmmis..si." - /* 14 */ "mmmmmmmmhiiiih." - /* 15 */ "mmmmmmmm......." + /* 1 */ ".fgrrgfsfgrrgf." + /* 2 */ ".g...........g." + /* 3 */ ".g...........r." + /* 4 */ ".f..........tr." + /* 5 */ ".g...........r." + /* 6 */ ".g..t....t...g." + /* 7 */ ".fgrrrrgf....f." + /* 8 */ "........g....g." + /* 9 */ "mmmmmmm.r....r." + /* 10 */ "mmmmmmm.rt...r." + /* 11 */ "mmmmmmm.r...tr." + /* 12 */ "mmmmmmm.r....r." + /* 13 */ "mmmmmmm.gq..qg." + /* 14 */ "mmmmmmm.fgrrgf." + /* 15 */ "mmmmmmm........" // Level 4 /* z\x* 11111 */ /* * 012345678901234 */ /* 0 */ "..............." - /* 1 */ ".hittihuhittih." - /* 2 */ ".i...........i." - /* 3 */ ".i...........t." - /* 4 */ ".h..........vt." - /* 5 */ ".i...........t." - /* 6 */ ".i..v....v...i." - /* 7 */ "mhittttih....h." - /* 8 */ "mmmmmmmmi....i." - /* 9 */ "mmmmmmmmt....t." - /* 10 */ "mmmmmmmmtv...t." - /* 11 */ "mmmmmmmmt...vt." - /* 12 */ "mmmmmmmmt....t." - /* 13 */ "mmmmmmmmis..si." - /* 14 */ "mmmmmmmmhittih." - /* 15 */ "mmmmmmmm......." + /* 1 */ ".fuuuuuuuuuuuf." + /* 2 */ ".v....w.w....v." + /* 3 */ ".v...........v." + /* 4 */ ".vx..........v." + /* 5 */ ".v...........v." + /* 6 */ ".v......y....v." + /* 7 */ ".fuuuuuufx..zv." + /* 8 */ "........v....v." + /* 9 */ "mmmmmmm.v....v." + /* 10 */ "mmmmmmm.v....v." + /* 11 */ "mmmmmmm.v....v." + /* 12 */ "mmmmmmm.v....v." + /* 13 */ "mmmmmmm.v.yy.v." + /* 14 */ "mmmmmmm.fuuuuf." + /* 15 */ "mmmmmmm........" // Level 5 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".hwwwwwwwwwwwh." - /* 2 */ ".x....y.y....x." - /* 3 */ ".x...........x." - /* 4 */ ".xz..........x." - /* 5 */ ".x...........x." - /* 6 */ ".x......A....x." - /* 7 */ "mhwwwwwwhz..Bx." - /* 8 */ "mmmmmmmmx....x." - /* 9 */ "mmmmmmmmx....x." - /* 10 */ "mmmmmmmmx....x." - /* 11 */ "mmmmmmmmx....x." - /* 12 */ "mmmmmmmmx....x." - /* 13 */ "mmmmmmmmx.AA.x." - /* 14 */ "mmmmmmmmhwwwwh." - /* 15 */ "mmmmmmmm......." + /* 0 */ "nnnnnnnnnnnnnno" + /* 1 */ "pgggggggggggggo" + /* 2 */ "pgAAAAAAAAAABgo" + /* 3 */ "pgC.........Bgo" + /* 4 */ "pgC.........Bgo" + /* 5 */ "pgC.........Bgo" + /* 6 */ "pgCDDDDDDD..Bgo" + /* 7 */ "pggggggggC..Bgo" + /* 8 */ "pkkkkkkpgC..Bgo" + /* 9 */ "mmmmmmmpgC..Bgo" + /* 10 */ "mmmmmmmpgC..Bgo" + /* 11 */ "mmmmmmmpgC..Bgo" + /* 12 */ "mmmmmmmpgC..Bgo" + /* 13 */ "mmmmmmmpgCDDBgo" + /* 14 */ "mmmmmmmpggggggo" + /* 15 */ "mmmmmmmpkkkkkkk" // Level 6 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "ppppppppppppppq" - /* 1 */ "riiiiiiiiiiiiiq" - /* 2 */ "riCCCCCCCCCCDiq" - /* 3 */ "riE.........Diq" - /* 4 */ "riE.........Diq" - /* 5 */ "riE.........Diq" - /* 6 */ "riEFFFFFFF..Diq" - /* 7 */ "riiiiiiiiE..Diq" - /* 8 */ "rnnnnnnriE..Diq" - /* 9 */ "mmmmmmmriE..Diq" - /* 10 */ "mmmmmmmriE..Diq" - /* 11 */ "mmmmmmmriE..Diq" - /* 12 */ "mmmmmmmriE..Diq" - /* 13 */ "mmmmmmmriEFFDiq" - /* 14 */ "mmmmmmmriiiiiiq" - /* 15 */ "mmmmmmmrnnnnnnn" + /* 0 */ "..............." + /* 1 */ ".pnnnnnnnnnnno." + /* 2 */ ".pgggggggggggo." + /* 3 */ ".pgggggggggggo." + /* 4 */ ".pgggggggggggo." + /* 5 */ ".pgggggggggggo." + /* 6 */ ".pgggggggggggo." + /* 7 */ ".pkkkkkkkggggo." + /* 8 */ "........pggggo." + /* 9 */ "mmmmmmm.pggggo." + /* 10 */ "mmmmmmm.pggggo." + /* 11 */ "mmmmmmm.pggggo." + /* 12 */ "mmmmmmm.pggggo." + /* 13 */ "mmmmmmm.pggggo." + /* 14 */ "mmmmmmm.kkkkko." + /* 15 */ "mmmmmmm........" // Level 7 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "mmmmmmmmmmmmmmm" - /* 1 */ "mrpppppppppppqm" - /* 2 */ "mriiiiiiiiiiiqm" - /* 3 */ "mriiiiiiiiiiiqm" - /* 4 */ "mriiiiiiiiiiiqm" - /* 5 */ "mriiiiiiiiiiiqm" - /* 6 */ "mriiiiiiiiiiiqm" - /* 7 */ "mrnnnnnnniiiiqm" - /* 8 */ "mmmmmmmmriiiiqm" - /* 9 */ "mmmmmmmmriiiiqm" - /* 10 */ "mmmmmmmmriiiiqm" - /* 11 */ "mmmmmmmmriiiiqm" - /* 12 */ "mmmmmmmmriiiiqm" - /* 13 */ "mmmmmmmmriiiiqm" - /* 14 */ "mmmmmmmmnnnnnqm" - /* 15 */ "mmmmmmmmmmmmmmm" + /* 0 */ "..............." + /* 1 */ "..............." + /* 2 */ "..nnnnnnnnnnn.." + /* 3 */ "..pgggggggggo.." + /* 4 */ "..pgggggggggo.." + /* 5 */ "..pgggggggggo.." + /* 6 */ "..kkkkkkkkggo.." + /* 7 */ ".........pggo.." + /* 8 */ ".........pggo.." + /* 9 */ "mmmmmmm..pggo.." + /* 10 */ "mmmmmmm..pggo.." + /* 11 */ "mmmmmmm..pggo.." + /* 12 */ "mmmmmmm..pggo.." + /* 13 */ "mmmmmmm..kkko.." + /* 14 */ "mmmmmmm........" + /* 15 */ "mmmmmmm........" // Level 8 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "mmmmmmmmmmmmmmm" - /* 1 */ "mmmmmmmmmmmmmmm" - /* 2 */ "mmpppppppppppmm" - /* 3 */ "mmriiiiiiiiiqmm" - /* 4 */ "mmriiiiiiiiiqmm" - /* 5 */ "mmriiiiiiiiiqmm" - /* 6 */ "mmnnnnnnnniiqmm" - /* 7 */ "mmmmmmmmmriiqmm" - /* 8 */ "mmmmmmmmmriiqmm" - /* 9 */ "mmmmmmmmmriiqmm" - /* 10 */ "mmmmmmmmmriiqmm" - /* 11 */ "mmmmmmmmmriiqmm" - /* 12 */ "mmmmmmmmmriiqmm" - /* 13 */ "mmmmmmmmmnnnqmm" - /* 14 */ "mmmmmmmmmmmmmmm" - /* 15 */ "mmmmmmmmmmmmmmm" - - // Level 9 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ "mmmmmmmmmmmmmmm" - /* 1 */ "mmmmmmmmmmmmmmm" - /* 2 */ "mmmmmmmmmmmmmmm" - /* 3 */ "mmmrpppppppqmmm" - /* 4 */ "mmmriiiiiiiqmmm" - /* 5 */ "mmmrnnnnnnrqmmm" - /* 6 */ "mmmmmmmmmmrqmmm" - /* 7 */ "mmmmmmmmmmrqmmm" - /* 8 */ "mmmmmmmmmmrqmmm" - /* 9 */ "mmmmmmmmmmrqmmm" - /* 10 */ "mmmmmmmmmmrqmmm" - /* 11 */ "mmmmmmmmmmrqmmm" - /* 12 */ "mmmmmmmmmmrnmmm" - /* 13 */ "mmmmmmmmmmmmmmm" - /* 14 */ "mmmmmmmmmmmmmmm" - /* 15 */ "mmmmmmmmmmmmmmm", + /* 0 */ "..............." + /* 1 */ "..............." + /* 2 */ "..............." + /* 3 */ "...pnnnnnnno..." + /* 4 */ "...pgggggggo..." + /* 5 */ "...pkkkkkkpo..." + /* 6 */ "..........po..." + /* 7 */ "..........po..." + /* 8 */ "..........po..." + /* 9 */ "mmmmmmm...po..." + /* 10 */ "mmmmmmm...po..." + /* 11 */ "mmmmmmm...po..." + /* 12 */ "mmmmmmm...pk..." + /* 13 */ "mmmmmmm........" + /* 14 */ "mmmmmmm........" + /* 15 */ "mmmmmmm........", // Connectors: - "-1: 7, 2, 0: 2\n" /* Type -1, direction Z- */, + "-1: 7, 1, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -2864,6 +3383,9 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // WoodenHouseL13x14 @@ -2873,182 +3395,203 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // The data has been exported from the gallery Plains, area index 0, ID 4, created by Aloe_vera { // Size: - 16, 7, 16, // SizeX = 16, SizeY = 7, SizeZ = 16 + 16, 8, 16, // SizeX = 16, SizeY = 8, SizeZ = 16 // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 16, 6, 16, // MaxX, MaxY, MaxZ + -1, 1, 0, // MinX, MinY, MinZ + 16, 7, 16, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 67: 0\n" /* stairs */ - "b: 67: 2\n" /* stairs */ - "c: 67: 1\n" /* stairs */ - "d: 4: 0\n" /* cobblestone */ - "e: 5: 0\n" /* wood */ - "f: 67: 3\n" /* stairs */ - "g: 17: 0\n" /* tree */ - "h: 64: 7\n" /* wooddoorblock */ - "i: 64: 5\n" /* wooddoorblock */ - "j:102: 0\n" /* glasspane */ - "k: 64:12\n" /* wooddoorblock */ - "l: 53: 2\n" /* woodstairs */ + "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 */ "m: 19: 0\n" /* sponge */ - "n: 53: 1\n" /* woodstairs */ - "o: 53: 7\n" /* woodstairs */ - "p: 53: 6\n" /* woodstairs */ - "q: 53: 3\n" /* woodstairs */ - "r: 53: 0\n" /* woodstairs */ - "s: 53: 5\n" /* woodstairs */ - "t: 53: 4\n" /* woodstairs */ - "u: 50: 3\n" /* torch */ - "v: 50: 2\n" /* torch */ - "w: 50: 4\n" /* torch */ - "x: 50: 1\n" /* torch */, + "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 */, // Block data: // Level 0 /* z\x* 111111 */ /* * 0123456789012345 */ - /* 0 */ "........abc....." - /* 1 */ ".dddddddddddddd." - /* 2 */ ".deeeeeeeeeeeed." - /* 3 */ ".deeeeeeeeeeeed." - /* 4 */ ".deeeeeeeeeeeed." - /* 5 */ ".deeeeeeeeeeeed." - /* 6 */ ".deeeeeeeeeeeed." - /* 7 */ ".ddddddddeeeeed." - /* 8 */ "mmmmmafcdeeeeed." - /* 9 */ "mmmmmmmmdeeeeed." - /* 10 */ "mmmmmmmmdeeeeed." - /* 11 */ "mmmmmmmmdeeeeed." - /* 12 */ "mmmmmmmmdeeeeed." - /* 13 */ "mmmmmmmmdeeeeed." - /* 14 */ "mmmmmmmmddddddd." - /* 15 */ "mmmmmmmm........" + /* 0 */ "mmmmmmmmaaammmmm" + /* 1 */ "maaaaaaaaaaaaaam" + /* 2 */ "maaaaaaaaaaaaaam" + /* 3 */ "maaaaaaaaaaaaaam" + /* 4 */ "maaaaaaaaaaaaaam" + /* 5 */ "maaaaaaaaaaaaaam" + /* 6 */ "maaaaaaaaaaaaaam" + /* 7 */ "maaaaaaaaaaaaaam" + /* 8 */ "bbbbbaaaaaaaaaam" + /* 9 */ "bbbbbbbbaaaaaaam" + /* 10 */ "bbbbbbbbaaaaaaam" + /* 11 */ "bbbbbbbbaaaaaaam" + /* 12 */ "bbbbbbbbaaaaaaam" + /* 13 */ "bbbbbbbbaaaaaaam" + /* 14 */ "bbbbbbbbaaaaaaam" + /* 15 */ "bbbbbbbbmmmmmmmm" // Level 1 /* z\x* 111111 */ /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ ".geeeeeeghgeeeg." - /* 2 */ ".e............e." - /* 3 */ ".e............e." - /* 4 */ ".e............e." - /* 5 */ ".e............e." - /* 6 */ ".e............e." - /* 7 */ ".geeeeieg.....e." - /* 8 */ "mmmmmm.me.....e." - /* 9 */ "mmmmmmmme.....e." - /* 10 */ "mmmmmmmme.....e." - /* 11 */ "mmmmmmmme.....e." - /* 12 */ "mmmmmmmme.....e." - /* 13 */ "mmmmmmmme.....e." - /* 14 */ "mmmmmmmmgeeeeeg." - /* 15 */ "mmmmmmmm........" + /* 0 */ "........cde....." + /* 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 */ "................" // Level 2 /* z\x* 111111 */ /* * 0123456789012345 */ /* 0 */ "................" - /* 1 */ ".gejjejjgkgjjeg." - /* 2 */ ".j............e." - /* 3 */ ".j............j." - /* 4 */ ".j............j." - /* 5 */ ".j............e." - /* 6 */ ".j............j." - /* 7 */ ".gejjekeg.....j." - /* 8 */ "mmmmmm.me.....e." - /* 9 */ "mmmmmmmmj.....j." - /* 10 */ "mmmmmmmmj.....j." - /* 11 */ "mmmmmmmme.....e." - /* 12 */ "mmmmmmmmj.....j." - /* 13 */ "mmmmmmmmj.....j." - /* 14 */ "mmmmmmmmgjjjjjg." - /* 15 */ "mmmmmmmm........" + /* 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 */ "................" // Level 3 /* z\x* 111111 */ /* * 0123456789012345 */ - /* 0 */ "llllllllllllllln" - /* 1 */ "ogeeeeeegegeeegn" - /* 2 */ ".e............en" - /* 3 */ ".e............en" - /* 4 */ ".e............en" - /* 5 */ ".e............en" - /* 6 */ ".e............en" - /* 7 */ "pgeeeeeeg.....en" - /* 8 */ "qqqqqqqre.....en" - /* 9 */ "mmmmmmmre.....en" - /* 10 */ "mmmmmmmre.....en" - /* 11 */ "mmmmmmmre.....en" - /* 12 */ "mmmmmmmre.....en" - /* 13 */ "mmmmmmmre.....en" - /* 14 */ "mmmmmmmrgeeeeegn" - /* 15 */ "mmmmmmmrs.....tn" + /* 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 */ "................" // Level 4 /* z\x* 111111 */ /* * 0123456789012345 */ - /* 0 */ "................" - /* 1 */ "lllllllllllllll." - /* 2 */ "oeeeeeeeeeeeeen." - /* 3 */ ".e.........u.en." - /* 4 */ ".e..........ven." - /* 5 */ ".e......w....en." - /* 6 */ "peeeeeeeee...en." - /* 7 */ "qqqqqqqqrex..en." - /* 8 */ "mmmmmmmmre...en." - /* 9 */ "mmmmmmmmre...en." - /* 10 */ "mmmmmmmmre...en." - /* 11 */ "mmmmmmmmre...en." - /* 12 */ "mmmmmmmmre...en." - /* 13 */ "mmmmmmmmre...en." - /* 14 */ "mmmmmmmmreeeeen." - /* 15 */ "mmmmmmmmrs...tn." + /* 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" // Level 5 /* z\x* 111111 */ /* * 0123456789012345 */ /* 0 */ "................" - /* 1 */ "................" - /* 2 */ "llllllllllllln.." - /* 3 */ "oeeeeeeeeeeeen.." - /* 4 */ ".ex.........en.." - /* 5 */ "peeeeeeeeee.en.." - /* 6 */ "qqqqqqqqqre.en.." - /* 7 */ ".........re.en.." - /* 8 */ "mmmmmmmm.re.en.." - /* 9 */ "mmmmmmmm.re.en.." - /* 10 */ "mmmmmmmm.re.en.." - /* 11 */ "mmmmmmmm.re.en.." - /* 12 */ "mmmmmmmm.re.en.." - /* 13 */ "mmmmmmmm.rewen.." - /* 14 */ "mmmmmmmm.reeen.." - /* 15 */ "mmmmmmmm.rs.tn.." + /* 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." // 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.." + + // Level 7 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "................" + /* 1 */ "................" /* 2 */ "................" - /* 3 */ "lllllllllllll..." - /* 4 */ "eeeeeeeeeeeen..." - /* 5 */ "qqqqqqqqqqren..." - /* 6 */ "..........ren..." - /* 7 */ "..........ren..." - /* 8 */ "mmmmmmmm..ren..." - /* 9 */ "mmmmmmmm..ren..." - /* 10 */ "mmmmmmmm..ren..." - /* 11 */ "mmmmmmmm..ren..." - /* 12 */ "mmmmmmmm..ren..." - /* 13 */ "mmmmmmmm..ren..." - /* 14 */ "mmmmmmmm..ren..." - /* 15 */ "mmmmmmmm..ren...", + /* 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...", // 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 */ @@ -3067,6 +3610,9 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // WoodenHouseL14x14 @@ -3076,162 +3622,145 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // The data has been exported from the gallery Plains, area index 42, ID 93, created by xoft { // Size: - 11, 8, 11, // SizeX = 11, SizeY = 8, SizeZ = 11 + 11, 7, 11, // SizeX = 11, SizeY = 7, SizeZ = 11 // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 11, 7, 11, // MaxX, MaxY, MaxZ + -1, -1, 0, // MinX, MinY, MinZ + 11, 6, 11, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 2: 0\n" /* grass */ - "c: 67: 0\n" /* stairs */ - "d: 67: 2\n" /* stairs */ - "e: 67: 1\n" /* stairs */ - "f: 4: 0\n" /* cobblestone */ - "g: 17: 0\n" /* tree */ - "h: 5: 0\n" /* wood */ - "i: 64: 7\n" /* wooddoorblock */ - "j:102: 0\n" /* glasspane */ - "k: 64:12\n" /* wooddoorblock */ - "l: 53: 2\n" /* woodstairs */ + "a: 4: 0\n" /* cobblestone */ + "b: 67: 0\n" /* stairs */ + "c: 67: 2\n" /* stairs */ + "d: 67: 1\n" /* stairs */ + "e: 17: 0\n" /* tree */ + "f: 5: 0\n" /* wood */ + "g: 64: 7\n" /* wooddoorblock */ + "h:102: 0\n" /* glasspane */ + "i: 64:12\n" /* wooddoorblock */ + "j: 53: 2\n" /* woodstairs */ + "k: 53: 7\n" /* woodstairs */ + "l: 53: 1\n" /* woodstairs */ "m: 19: 0\n" /* sponge */ - "n: 53: 7\n" /* woodstairs */ - "o: 53: 1\n" /* woodstairs */ - "p: 50: 3\n" /* torch */ - "q: 50: 4\n" /* torch */ - "r: 53: 6\n" /* woodstairs */ - "s: 50: 1\n" /* torch */ - "t: 50: 2\n" /* torch */ - "u: 53: 3\n" /* woodstairs */ - "v: 53: 0\n" /* woodstairs */ - "w: 53: 5\n" /* woodstairs */ - "x: 53: 4\n" /* woodstairs */, + "n: 50: 3\n" /* torch */ + "o: 50: 4\n" /* torch */ + "p: 53: 6\n" /* woodstairs */ + "q: 50: 1\n" /* torch */ + "r: 50: 2\n" /* torch */ + "s: 53: 3\n" /* woodstairs */ + "t: 53: 0\n" /* woodstairs */ + "u: 53: 5\n" /* woodstairs */ + "v: 53: 4\n" /* woodstairs */, // Block data: // Level 0 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "aaaaaaaaaaa" - /* 1 */ "aaaaaaaaaaa" - /* 2 */ "aaaaaaaaaaa" - /* 3 */ "aaaaaaaaaaa" - /* 4 */ "aaaaaaaaaaa" - /* 5 */ "aaaaaaaaaaa" - /* 6 */ "aaaaaaaaaaa" - /* 7 */ "aaaaaaaaaaa" - /* 8 */ "aaaaaaaaaaa" - /* 9 */ "aaaaaaaaaaa" - /* 10 */ "aaaaaaaaaaa" + /* 0 */ "mmmmaaammmm" + /* 1 */ "maaaaaaaaam" + /* 2 */ "maaaaaaaaam" + /* 3 */ "maaaaaaaaam" + /* 4 */ "maaaaaaaaam" + /* 5 */ "maaaaaaaaam" + /* 6 */ "mmmmmaaaaam" + /* 7 */ "mmmmmaaaaam" + /* 8 */ "mmmmmaaaaam" + /* 9 */ "mmmmmaaaaam" + /* 10 */ "mmmmmmmmmmm" // Level 1 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "bbbbaaabbbb" - /* 1 */ "baaaaaaaaab" - /* 2 */ "baaaaaaaaab" - /* 3 */ "baaaaaaaaab" - /* 4 */ "baaaaaaaaab" - /* 5 */ "baaaaaaaaab" - /* 6 */ "bbbbbaaaaab" - /* 7 */ "bbbbbaaaaab" - /* 8 */ "bbbbbaaaaab" - /* 9 */ "bbbbbaaaaab" - /* 10 */ "bbbbbbbbbbb" + /* 0 */ "....bcd...." + /* 1 */ ".aaaaaaaaa." + /* 2 */ ".aaaaaaaaa." + /* 3 */ ".aaaaaaaaa." + /* 4 */ ".aaaaaaaaa." + /* 5 */ ".aaaaaaaaa." + /* 6 */ ".....aaaaa." + /* 7 */ ".....aaaaa." + /* 8 */ ".....aaaaa." + /* 9 */ ".....aaaaa." + /* 10 */ "..........." // Level 2 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "....cde...." - /* 1 */ ".fffffffff." - /* 2 */ ".fffffffff." - /* 3 */ ".fffffffff." - /* 4 */ ".fffffffff." - /* 5 */ ".fffffffff." - /* 6 */ ".....fffff." - /* 7 */ "mmmm.fffff." - /* 8 */ "mmmm.fffff." - /* 9 */ "mmmm.fffff." - /* 10 */ "mmmm......." + /* 0 */ "..........." + /* 1 */ ".efffgfffe." + /* 2 */ ".f.......f." + /* 3 */ ".f.......f." + /* 4 */ ".f.......f." + /* 5 */ ".efffe...f." + /* 6 */ ".....f...f." + /* 7 */ ".....f...f." + /* 8 */ ".....f...f." + /* 9 */ ".....efffe." + /* 10 */ "..........." // Level 3 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "..........." - /* 1 */ ".ghhhihhhg." + /* 1 */ ".ehhfifhhe." /* 2 */ ".h.......h." /* 3 */ ".h.......h." /* 4 */ ".h.......h." - /* 5 */ ".ghhhg...h." + /* 5 */ ".ehhhe...f." /* 6 */ ".....h...h." - /* 7 */ "mmmm.h...h." - /* 8 */ "mmmm.h...h." - /* 9 */ "mmmm.ghhhg." - /* 10 */ "mmmm......." + /* 7 */ ".....h...h." + /* 8 */ ".....h...h." + /* 9 */ ".....ehhhe." + /* 10 */ "..........." // Level 4 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".gjjhkhjjg." - /* 2 */ ".j.......j." - /* 3 */ ".j.......j." - /* 4 */ ".j.......j." - /* 5 */ ".gjjjg...h." - /* 6 */ ".....j...j." - /* 7 */ "mmmm.j...j." - /* 8 */ "mmmm.j...j." - /* 9 */ "mmmm.gjjjg." - /* 10 */ "mmmm......." + /* 0 */ "jjjjjjjjjjj" + /* 1 */ "kfffffffffl" + /* 2 */ ".f..n.n..fl" + /* 3 */ ".f.......fl" + /* 4 */ ".f...o...fl" + /* 5 */ "pfffffq.rfl" + /* 6 */ "sssssf...fl" + /* 7 */ "....tf...fl" + /* 8 */ "....tf...fl" + /* 9 */ "....tfffffl" + /* 10 */ "....tu...vl" // Level 5 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "lllllllllll" - /* 1 */ "nhhhhhhhhho" - /* 2 */ ".h..p.p..ho" - /* 3 */ ".h.......ho" - /* 4 */ ".h...q...ho" - /* 5 */ "rhhhhhs.tho" - /* 6 */ "uuuuuh...ho" - /* 7 */ "mmmmvh...ho" - /* 8 */ "mmmmvh...ho" - /* 9 */ "mmmmvhhhhho" - /* 10 */ "mmmmvw...xo" - - // Level 6 - /* z\x* 1 */ - /* * 01234567890 */ /* 0 */ "..........." - /* 1 */ "lllllllllo." - /* 2 */ "nhhhhhhhho." - /* 3 */ ".h......ho." - /* 4 */ "rhhhhhh.ho." - /* 5 */ "uuuuuuh.ho." - /* 6 */ ".....vh.ho." - /* 7 */ "mmmm.vh.ho." - /* 8 */ "mmmm.vh.ho." - /* 9 */ "mmmm.vhhho." - /* 10 */ "mmmm.vw.xo." + /* 1 */ "jjjjjjjjjl." + /* 2 */ "kffffffffl." + /* 3 */ ".f......fl." + /* 4 */ "pffffff.fl." + /* 5 */ "ssssssf.fl." + /* 6 */ ".....tf.fl." + /* 7 */ ".....tf.fl." + /* 8 */ ".....tf.fl." + /* 9 */ ".....tfffl." + /* 10 */ ".....tu.vl." - // Level 7 + // Level 6 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "..........." /* 1 */ "..........." - /* 2 */ "lllllllll.." - /* 3 */ "hhhhhhhho.." - /* 4 */ "uuuuuuvho.." - /* 5 */ "......vho.." - /* 6 */ "......vho.." - /* 7 */ "mmmm..vho.." - /* 8 */ "mmmm..vho.." - /* 9 */ "mmmm..vho.." - /* 10 */ "mmmm..vho..", + /* 2 */ "jjjjjjjjj.." + /* 3 */ "ffffffffl.." + /* 4 */ "sssssstfl.." + /* 5 */ "......tfl.." + /* 6 */ "......tfl.." + /* 7 */ "......tfl.." + /* 8 */ "......tfl.." + /* 9 */ "......tfl.." + /* 10 */ "......tfl..", // Connectors: - "-1: 5, 2, 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 */ @@ -3250,6 +3779,9 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // WoodenHouseL9x9 @@ -3259,160 +3791,143 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // The data has been exported from the gallery Plains, area index 43, ID 94, created by xoft { // Size: - 15, 8, 11, // SizeX = 15, SizeY = 8, SizeZ = 11 + 15, 7, 11, // SizeX = 15, SizeY = 7, SizeZ = 11 // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 15, 7, 11, // MaxX, MaxY, MaxZ + -1, -1, 0, // MinX, MinY, MinZ + 15, 6, 11, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 2: 0\n" /* grass */ - "c: 67: 0\n" /* stairs */ - "d: 67: 2\n" /* stairs */ - "e: 67: 1\n" /* stairs */ - "f: 4: 0\n" /* cobblestone */ - "g: 17: 0\n" /* tree */ - "h: 5: 0\n" /* wood */ - "i: 64: 7\n" /* wooddoorblock */ - "j:102: 0\n" /* glasspane */ - "k: 64:12\n" /* wooddoorblock */ - "l: 53: 2\n" /* woodstairs */ + "a: 4: 0\n" /* cobblestone */ + "b: 67: 0\n" /* stairs */ + "c: 67: 2\n" /* stairs */ + "d: 67: 1\n" /* stairs */ + "e: 17: 0\n" /* tree */ + "f: 5: 0\n" /* wood */ + "g: 64: 7\n" /* wooddoorblock */ + "h:102: 0\n" /* glasspane */ + "i: 64:12\n" /* wooddoorblock */ + "j: 53: 2\n" /* woodstairs */ + "k: 53: 0\n" /* woodstairs */ + "l: 53: 1\n" /* woodstairs */ "m: 19: 0\n" /* sponge */ - "n: 53: 0\n" /* woodstairs */ - "o: 53: 1\n" /* woodstairs */ - "p: 50: 3\n" /* torch */ - "q: 50: 4\n" /* torch */ - "r: 50: 2\n" /* torch */ - "s: 50: 1\n" /* torch */ - "t: 53: 3\n" /* woodstairs */ - "u: 53: 5\n" /* woodstairs */ - "v: 53: 4\n" /* woodstairs */, + "n: 50: 3\n" /* torch */ + "o: 50: 4\n" /* torch */ + "p: 50: 2\n" /* torch */ + "q: 50: 1\n" /* torch */ + "r: 53: 3\n" /* woodstairs */ + "s: 53: 5\n" /* woodstairs */ + "t: 53: 4\n" /* woodstairs */, // Block data: // Level 0 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "aaaaaaaaaaaaaaa" - /* 1 */ "aaaaaaaaaaaaaaa" - /* 2 */ "aaaaaaaaaaaaaaa" - /* 3 */ "aaaaaaaaaaaaaaa" - /* 4 */ "aaaaaaaaaaaaaaa" - /* 5 */ "aaaaaaaaaaaaaaa" - /* 6 */ "aaaaaaaaaaaaaaa" - /* 7 */ "aaaaaaaaaaaaaaa" - /* 8 */ "aaaaaaaaaaaaaaa" - /* 9 */ "aaaaaaaaaaaaaaa" - /* 10 */ "aaaaaaaaaaaaaaa" + /* 0 */ "mmmmmmaaammmmmm" + /* 1 */ "maaaaaaaaaaaaam" + /* 2 */ "maaaaaaaaaaaaam" + /* 3 */ "maaaaaaaaaaaaam" + /* 4 */ "maaaaaaaaaaaaam" + /* 5 */ "maaaaaaaaaaaaam" + /* 6 */ "maaaaammmaaaaam" + /* 7 */ "maaaaammmaaaaam" + /* 8 */ "maaaaammmaaaaam" + /* 9 */ "maaaaammmaaaaam" + /* 10 */ "mmmmmmmmmmmmmmm" // Level 1 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "bbbbbbaaabbbbbb" - /* 1 */ "baaaaaaaaaaaaab" - /* 2 */ "baaaaaaaaaaaaab" - /* 3 */ "baaaaaaaaaaaaab" - /* 4 */ "baaaaaaaaaaaaab" - /* 5 */ "baaaaaaaaaaaaab" - /* 6 */ "baaaaabbbaaaaab" - /* 7 */ "baaaaabbbaaaaab" - /* 8 */ "baaaaabbbaaaaab" - /* 9 */ "baaaaabbbaaaaab" - /* 10 */ "bbbbbbbbbbbbbbb" + /* 0 */ "......bcd......" + /* 1 */ ".aaaaaaaaaaaaa." + /* 2 */ ".aaaaaaaaaaaaa." + /* 3 */ ".aaaaaaaaaaaaa." + /* 4 */ ".aaaaaaaaaaaaa." + /* 5 */ ".aaaaaaaaaaaaa." + /* 6 */ ".aaaaa...aaaaa." + /* 7 */ ".aaaaa...aaaaa." + /* 8 */ ".aaaaa...aaaaa." + /* 9 */ ".aaaaa...aaaaa." + /* 10 */ "..............." // Level 2 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "......cde......" - /* 1 */ ".fffffffffffff." - /* 2 */ ".fffffffffffff." - /* 3 */ ".fffffffffffff." - /* 4 */ ".fffffffffffff." - /* 5 */ ".fffffffffffff." - /* 6 */ ".fffff...fffff." - /* 7 */ ".fffff...fffff." - /* 8 */ ".fffff...fffff." - /* 9 */ ".fffff...fffff." + /* 0 */ "..............." + /* 1 */ ".efffffgfffffe." + /* 2 */ ".f...........f." + /* 3 */ ".f...........f." + /* 4 */ ".f...........f." + /* 5 */ ".f...efffe...f." + /* 6 */ ".f...f...f...f." + /* 7 */ ".f...f...f...f." + /* 8 */ ".f...f...f...f." + /* 9 */ ".efffe...efffe." /* 10 */ "..............." // Level 3 /* z\x* 11111 */ /* * 012345678901234 */ /* 0 */ "..............." - /* 1 */ ".ghhhhhihhhhhg." + /* 1 */ ".ehhhhfifhhhhe." /* 2 */ ".h...........h." /* 3 */ ".h...........h." /* 4 */ ".h...........h." - /* 5 */ ".h...ghhhg...h." + /* 5 */ ".f...ehhhe...f." /* 6 */ ".h...h...h...h." /* 7 */ ".h...h...h...h." /* 8 */ ".h...h...h...h." - /* 9 */ ".ghhhg...ghhhg." + /* 9 */ ".ehhhe...ehhhe." /* 10 */ "..............." // Level 4 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "..............." - /* 1 */ ".gjjjjhkhjjjjg." - /* 2 */ ".j...........j." - /* 3 */ ".j...........j." - /* 4 */ ".j...........j." - /* 5 */ ".h...gjjjg...h." - /* 6 */ ".j...j...j...j." - /* 7 */ ".j...j...j...j." - /* 8 */ ".j...j...j...j." - /* 9 */ ".gjjjg...gjjjg." - /* 10 */ "..............." + /* 0 */ "jjjjjjjjjjjjjjj" + /* 1 */ "kfffffffffffffl" + /* 2 */ "kf....n.n....fl" + /* 3 */ "kf...........fl" + /* 4 */ "kf...o...o...fl" + /* 5 */ "kf..pfffffq..fl" + /* 6 */ "kf...frrrf...fl" + /* 7 */ "kf...fl.kf...fl" + /* 8 */ "kf...fl.kf...fl" + /* 9 */ "kfffffl.kfffffl" + /* 10 */ "ks...tl.ks...tl" // Level 5 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "lllllllllllllll" - /* 1 */ "nhhhhhhhhhhhhho" - /* 2 */ "nh....p.p....ho" - /* 3 */ "nh...........ho" - /* 4 */ "nh...q...q...ho" - /* 5 */ "nh..rhhhhhs..ho" - /* 6 */ "nh...httth...ho" - /* 7 */ "nh...ho.nh...ho" - /* 8 */ "nh...ho.nh...ho" - /* 9 */ "nhhhhho.nhhhhho" - /* 10 */ "nu...vo.nu...vo" - - // Level 6 - /* z\x* 11111 */ - /* * 012345678901234 */ /* 0 */ "..............." - /* 1 */ ".llllllllllllo." - /* 2 */ ".nhhhhhhhhhhho." - /* 3 */ ".nhhhhhhhhhhho." - /* 4 */ ".nhhhhhhhhhhho." - /* 5 */ ".nhhhotttthhho." - /* 6 */ ".nhhho...nhhho." - /* 7 */ ".nhhho...nhhho." - /* 8 */ ".nhhho...nhhho." - /* 9 */ ".nhhho...nhhho." - /* 10 */ ".nu.vo...nu.vo." + /* 1 */ ".jjjjjjjjjjjjl." + /* 2 */ ".kfffffffffffl." + /* 3 */ ".kfffffffffffl." + /* 4 */ ".kfffffffffffl." + /* 5 */ ".kffflrrrrfffl." + /* 6 */ ".kfffl...kfffl." + /* 7 */ ".kfffl...kfffl." + /* 8 */ ".kfffl...kfffl." + /* 9 */ ".kfffl...kfffl." + /* 10 */ ".ks.tl...ks.tl." - // Level 7 + // Level 6 /* z\x* 11111 */ /* * 012345678901234 */ /* 0 */ "..............." /* 1 */ "..............." - /* 2 */ "..nllllllllll.." - /* 3 */ "..nhhhhhhhhho.." - /* 4 */ "..nhotttttnho.." - /* 5 */ "..nho.....nho.." - /* 6 */ "..nho.....nho.." - /* 7 */ "..nho.....nho.." - /* 8 */ "..nho.....nho.." - /* 9 */ "..nho.....nho.." - /* 10 */ "..nho.....nho..", + /* 2 */ "..kjjjjjjjjjj.." + /* 3 */ "..kfffffffffl.." + /* 4 */ "..kflrrrrrkfl.." + /* 5 */ "..kfl.....kfl.." + /* 6 */ "..kfl.....kfl.." + /* 7 */ "..kfl.....kfl.." + /* 8 */ "..kfl.....kfl.." + /* 9 */ "..kfl.....kfl.." + /* 10 */ "..kfl.....kfl..", // Connectors: - "-1: 7, 2, 0: 2\n" /* Type -1, direction Z- */, + "-1: 7, 1, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -3431,6 +3946,9 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // WoodenHouseU13x9 @@ -3440,272 +3958,254 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // The data has been exported from the gallery Plains, area index 60, ID 111, created by Aloe_vera { // Size: - 9, 18, 13, // SizeX = 9, SizeY = 18, SizeZ = 13 + 9, 17, 13, // SizeX = 9, SizeY = 17, SizeZ = 13 // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 8, 17, 12, // MaxX, MaxY, MaxZ + -1, -1, 0, // MinX, MinY, MinZ + 8, 16, 12, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 2: 0\n" /* grass */ - "c: 4: 0\n" /* cobblestone */ - "d: 67: 2\n" /* stairs */ - "e: 67: 1\n" /* stairs */ - "f: 67: 3\n" /* stairs */ - "g: 17: 0\n" /* tree */ - "h: 5: 0\n" /* wood */ - "i: 54: 4\n" /* chest */ - "j:154: 4\n" /* hopper */ - "k: 64: 4\n" /* wooddoorblock */ - "l:102: 0\n" /* glasspane */ + "a: 4: 0\n" /* cobblestone */ + "b: 67: 2\n" /* stairs */ + "c: 67: 1\n" /* stairs */ + "d: 67: 3\n" /* stairs */ + "e: 17: 0\n" /* tree */ + "f: 5: 0\n" /* wood */ + "g: 54: 4\n" /* chest */ + "h:154: 4\n" /* hopper */ + "i: 64: 4\n" /* wooddoorblock */ + "j:102: 0\n" /* glasspane */ + "k: 85: 0\n" /* fence */ + "l: 64:12\n" /* wooddoorblock */ "m: 19: 0\n" /* sponge */ - "n: 85: 0\n" /* fence */ - "o: 64:12\n" /* wooddoorblock */ - "p: 50: 2\n" /* torch */ - "q: 35: 0\n" /* wool */ - "r: 17: 4\n" /* tree */ - "s: 17: 8\n" /* tree */ - "t: 53: 2\n" /* woodstairs */ - "u: 53: 7\n" /* woodstairs */ - "v: 53: 6\n" /* woodstairs */ - "w: 53: 3\n" /* woodstairs */, + "n: 50: 2\n" /* torch */ + "o: 35: 0\n" /* wool */ + "p: 17: 4\n" /* tree */ + "q: 17: 8\n" /* tree */ + "r: 53: 2\n" /* woodstairs */ + "s: 53: 7\n" /* woodstairs */ + "t: 53: 6\n" /* woodstairs */ + "u: 53: 3\n" /* woodstairs */, // Block data: // Level 0 /* z\x* 012345678 */ - /* 0 */ "aaaaaaaaa" - /* 1 */ "aaaaaaaaa" - /* 2 */ "aaaaaaaaa" - /* 3 */ "aaaaaaaaa" - /* 4 */ "aaaaaaaaa" - /* 5 */ "aaaaaaaaa" - /* 6 */ "aaaaaaaaa" - /* 7 */ "aaaaaaaaa" - /* 8 */ "aaaaaaaaa" - /* 9 */ "aaaaaaaaa" - /* 10 */ "aaaaaaaaa" - /* 11 */ "aaaaaaaaa" - /* 12 */ "aaaaaaaaa" + /* 0 */ "mmmmmmmmm" + /* 1 */ "mmmmmmmmm" + /* 2 */ "mmmmmmmmm" + /* 3 */ "mmmmmmmmm" + /* 4 */ "maaaaammm" + /* 5 */ "maaaaaamm" + /* 6 */ "maaaaaamm" + /* 7 */ "maaaaaamm" + /* 8 */ "maaaaammm" + /* 9 */ "mmmmmmmmm" + /* 10 */ "mmmmmmmmm" + /* 11 */ "mmmmmmmmm" + /* 12 */ "mmmmmmmmm" // Level 1 /* z\x* 012345678 */ - /* 0 */ "bbbbbbbbb" - /* 1 */ "bbbbbbbbb" - /* 2 */ "bbbbbbbbb" - /* 3 */ "bbbbbbbbb" - /* 4 */ "baaaaabbb" - /* 5 */ "baaaaaabb" - /* 6 */ "baaaaaabb" - /* 7 */ "baaaaaabb" - /* 8 */ "baaaaabbb" - /* 9 */ "bbbbbbbbb" - /* 10 */ "bbbbbbbbb" - /* 11 */ "bbbbbbbbb" - /* 12 */ "bbbbbbbbb" + /* 0 */ "........." + /* 1 */ "........." + /* 2 */ "........." + /* 3 */ "........." + /* 4 */ ".aaaaa..." + /* 5 */ ".aaaaab.." + /* 6 */ ".aaaaac.." + /* 7 */ ".aaaaad.." + /* 8 */ ".aaaaa..." + /* 9 */ "........." + /* 10 */ "........." + /* 11 */ "........." + /* 12 */ "........." // Level 2 /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.." + /* 0 */ "........." + /* 1 */ "........." + /* 2 */ "........." /* 3 */ "........." - /* 4 */ ".ccccc..." - /* 5 */ ".cccccd.." - /* 6 */ ".ccccce.." - /* 7 */ ".cccccf.." - /* 8 */ ".ccccc..." + /* 4 */ ".efffe..." + /* 5 */ ".f...f..." + /* 6 */ ".fgh.i..." + /* 7 */ ".f...f..." + /* 8 */ ".efffe..." /* 9 */ "........." - /* 10 */ "mmmmmmm.." - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm.." + /* 10 */ "........." + /* 11 */ "........." + /* 12 */ "........." // Level 3 /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.." + /* 0 */ "........." + /* 1 */ "........." + /* 2 */ "........." /* 3 */ "........." - /* 4 */ ".ghhhg..." - /* 5 */ ".h...h..." - /* 6 */ ".hij.k..." - /* 7 */ ".h...h..." - /* 8 */ ".ghhhg..." + /* 4 */ ".ejjje..." + /* 5 */ ".j...f..." + /* 6 */ ".j.k.l..." + /* 7 */ ".j...f..." + /* 8 */ ".ejjje..." /* 9 */ "........." - /* 10 */ "mmmmmmm.." - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm.." + /* 10 */ "........." + /* 11 */ "........." + /* 12 */ "........." // Level 4 /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.." + /* 0 */ "........." + /* 1 */ "........." + /* 2 */ "........." /* 3 */ "........." - /* 4 */ ".glllg..." - /* 5 */ ".l...h..." - /* 6 */ ".l.n.o..." - /* 7 */ ".l...h..." - /* 8 */ ".glllg..." + /* 4 */ ".efffe..." + /* 5 */ ".f..nf..." + /* 6 */ ".f.k.f..." + /* 7 */ ".f..nf..k" + /* 8 */ ".efffe..o" /* 9 */ "........." - /* 10 */ "mmmmmmm.." - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm.." + /* 10 */ "........." + /* 11 */ "........." + /* 12 */ "........." // Level 5 /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.." + /* 0 */ "........." + /* 1 */ "........." + /* 2 */ "........." /* 3 */ "........." - /* 4 */ ".ghhhg..." - /* 5 */ ".h..ph..." - /* 6 */ ".h.n.h..." - /* 7 */ ".h..ph..n" - /* 8 */ ".ghhhg..q" + /* 4 */ ".epppe..." + /* 5 */ ".q...q..." + /* 6 */ ".q.k.q..." + /* 7 */ ".q...q..k" + /* 8 */ ".epppe..o" /* 9 */ "........." - /* 10 */ "mmmmmmm.." - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm.." + /* 10 */ "........." + /* 11 */ "........." + /* 12 */ "........." // Level 6 /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.." + /* 0 */ "........." + /* 1 */ "........." + /* 2 */ "........." /* 3 */ "........." - /* 4 */ ".grrrg..." - /* 5 */ ".s...s..." - /* 6 */ ".s.n.s..." - /* 7 */ ".s...s..n" - /* 8 */ ".grrrg..q" + /* 4 */ ".efffe..." + /* 5 */ ".f...f..." + /* 6 */ ".f.k.f..k" + /* 7 */ ".f...f..o" + /* 8 */ ".efffe..o" /* 9 */ "........." - /* 10 */ "mmmmmmm.." - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm.." + /* 10 */ "........." + /* 11 */ "........." + /* 12 */ "........." // Level 7 /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.." + /* 0 */ "........." + /* 1 */ "........." + /* 2 */ "........." /* 3 */ "........." - /* 4 */ ".ghhhg..." - /* 5 */ ".h...h..." - /* 6 */ ".h.n.h..n" - /* 7 */ ".h...h..q" - /* 8 */ ".ghhhg..q" + /* 4 */ ".ejjje..." + /* 5 */ ".j...j..." + /* 6 */ ".j.k.j..k" + /* 7 */ ".j...j..o" + /* 8 */ ".ejjje..." /* 9 */ "........." - /* 10 */ "mmmmmmm.." - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm.." + /* 10 */ "........." + /* 11 */ "........." + /* 12 */ "........." // Level 8 /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.." + /* 0 */ "........o" + /* 1 */ "........o" + /* 2 */ "........o" /* 3 */ "........." - /* 4 */ ".glllg..." - /* 5 */ ".l...l..." - /* 6 */ ".l.n.l..n" - /* 7 */ ".l...l..q" - /* 8 */ ".glllg..." + /* 4 */ ".efffe..." + /* 5 */ ".f...f..k" + /* 6 */ ".f.k.f..o" + /* 7 */ ".f...f..o" + /* 8 */ ".efffe..." /* 9 */ "........." - /* 10 */ "mmmmmmm.." - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm.." + /* 10 */ "........." + /* 11 */ "........." + /* 12 */ "........." // Level 9 /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.q" - /* 1 */ "mmmmmmm.q" - /* 2 */ "mmmmmmm.q" - /* 3 */ "........." - /* 4 */ ".ghhhg..." - /* 5 */ ".h...h..n" - /* 6 */ ".h.n.h..q" - /* 7 */ ".h...h..q" - /* 8 */ ".ghhhg..." + /* 0 */ "........k" + /* 1 */ "........k" + /* 2 */ "........o" + /* 3 */ "........o" + /* 4 */ ".epppe..o" + /* 5 */ ".q...q..k" + /* 6 */ ".q.k.q..o" + /* 7 */ ".q...q..k" + /* 8 */ ".epppe..k" /* 9 */ "........." - /* 10 */ "mmmmmmm.." - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm.." + /* 10 */ "........." + /* 11 */ "........." + /* 12 */ "........." // Level 10 /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.n" - /* 1 */ "mmmmmmm.n" - /* 2 */ "mmmmmmm.q" - /* 3 */ "........q" - /* 4 */ ".grrrg..q" - /* 5 */ ".s...s..n" - /* 6 */ ".s.n.s..q" - /* 7 */ ".s...s..n" - /* 8 */ ".grrrg..n" - /* 9 */ "........." - /* 10 */ "mmmmmmm.." - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm.." + /* 0 */ "........." + /* 1 */ "........." + /* 2 */ "........k" + /* 3 */ "rrrrrrr.k" + /* 4 */ "sfffffs.o" + /* 5 */ ".f...f..o" + /* 6 */ ".f.kppppp" + /* 7 */ ".f...f..o" + /* 8 */ "tffffft.o" + /* 9 */ "uuuuuuu.k" + /* 10 */ "........k" + /* 11 */ "........." + /* 12 */ "........." // Level 11 /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.n" - /* 3 */ "ttttttt.n" - /* 4 */ "uhhhhhu.q" - /* 5 */ ".h...h..q" - /* 6 */ ".h.nrrrrr" - /* 7 */ ".h...h..q" - /* 8 */ "vhhhhhv.q" - /* 9 */ "wwwwwww.n" - /* 10 */ "mmmmmmm.n" - /* 11 */ "mmmmmmm.." - /* 12 */ "mmmmmmm.." + /* 0 */ "........." + /* 1 */ "........." + /* 2 */ "........." + /* 3 */ "........." + /* 4 */ "rrrrrrr.k" + /* 5 */ "sfffffs.k" + /* 6 */ ".f...f..o" + /* 7 */ "tffffft.k" + /* 8 */ "uuuuuuu.o" + /* 9 */ "........o" + /* 10 */ "........o" + /* 11 */ "........k" + /* 12 */ "........k" // Level 12 /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.." - /* 3 */ "mmmmmmm.." - /* 4 */ "ttttttt.n" - /* 5 */ "uhhhhhu.n" - /* 6 */ ".h...h..q" - /* 7 */ "vhhhhhv.n" - /* 8 */ "wwwwwww.q" - /* 9 */ "mmmmmmm.q" - /* 10 */ "mmmmmmm.q" - /* 11 */ "mmmmmmm.n" - /* 12 */ "mmmmmmm.n" + /* 0 */ "........." + /* 1 */ "........." + /* 2 */ "........." + /* 3 */ "........." + /* 4 */ "........." + /* 5 */ "rrrrrrr.o" + /* 6 */ "fffffff.o" + /* 7 */ "uuuuuuu.k" + /* 8 */ "........." + /* 9 */ "........." + /* 10 */ "........o" + /* 11 */ "........o" + /* 12 */ "........o" // Level 13 /* z\x* 012345678 */ - /* 0 */ "mmmmmmm.." - /* 1 */ "mmmmmmm.." - /* 2 */ "mmmmmmm.." - /* 3 */ "mmmmmmm.." - /* 4 */ "mmmmmmm.." - /* 5 */ "ttttttt.q" - /* 6 */ "hhhhhhh.q" - /* 7 */ "wwwwwww.n" - /* 8 */ "mmmmmmm.." - /* 9 */ "mmmmmmm.." - /* 10 */ "mmmmmmm.q" - /* 11 */ "mmmmmmm.q" - /* 12 */ "mmmmmmm.q" - - // Level 14 - /* z\x* 012345678 */ /* 0 */ "........." /* 1 */ "........." /* 2 */ "........." /* 3 */ "........." /* 4 */ "........." - /* 5 */ "........q" - /* 6 */ "........n" + /* 5 */ "........o" + /* 6 */ "........k" /* 7 */ "........." /* 8 */ "........." /* 9 */ "........." @@ -3713,15 +4213,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 11 */ "........." /* 12 */ "........." - // Level 15 + // Level 14 /* z\x* 012345678 */ /* 0 */ "........." /* 1 */ "........." /* 2 */ "........." /* 3 */ "........." - /* 4 */ "........q" - /* 5 */ "........q" - /* 6 */ "........n" + /* 4 */ "........o" + /* 5 */ "........o" + /* 6 */ "........k" /* 7 */ "........." /* 8 */ "........." /* 9 */ "........." @@ -3729,14 +4229,14 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 11 */ "........." /* 12 */ "........." - // Level 16 + // Level 15 /* z\x* 012345678 */ /* 0 */ "........." /* 1 */ "........." /* 2 */ "........." /* 3 */ "........." - /* 4 */ "........q" - /* 5 */ "........n" + /* 4 */ "........o" + /* 5 */ "........k" /* 6 */ "........." /* 7 */ "........." /* 8 */ "........." @@ -3745,14 +4245,14 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 11 */ "........." /* 12 */ "........." - // Level 17 + // Level 16 /* z\x* 012345678 */ /* 0 */ "........." /* 1 */ "........." /* 2 */ "........." /* 3 */ "........." - /* 4 */ "........q" - /* 5 */ "........n" + /* 4 */ "........o" + /* 5 */ "........k" /* 6 */ "........." /* 7 */ "........." /* 8 */ "........." @@ -3762,7 +4262,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 12 */ ".........", // Connectors: - "-1: 8, 2, 6: 5\n" /* Type -1, direction X+ */, + "-1: 8, 1, 6: 5\n" /* Type -1, direction X+ */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -3781,6 +4281,9 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // WoodenMill5x5 @@ -3790,170 +4293,156 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // The data has been exported from the gallery Plains, area index 55, ID 106, created by Aloe_vera { // Size: - 15, 10, 9, // SizeX = 15, SizeY = 10, SizeZ = 9 + 15, 9, 9, // SizeX = 15, SizeY = 9, SizeZ = 9 // Hitbox (relative to bounding box): - -1, 0, 0, // MinX, MinY, MinZ - 15, 9, 9, // MaxX, MaxY, MaxZ + -1, -1, 0, // MinX, MinY, MinZ + 15, 8, 9, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 2: 0\n" /* grass */ - "c: 67: 0\n" /* stairs */ - "d: 67: 2\n" /* stairs */ - "e: 67: 1\n" /* stairs */ - "f: 4: 0\n" /* cobblestone */ - "g: 17: 0\n" /* tree */ - "h:107: 0\n" /* fencegate */ - "i:107: 4\n" /* fencegate */ - "j: 5: 0\n" /* wood */ - "k:107: 6\n" /* fencegate */ - "l: 85: 0\n" /* fence */ + "a: 4: 0\n" /* cobblestone */ + "b: 67: 0\n" /* stairs */ + "c: 67: 2\n" /* stairs */ + "d: 67: 1\n" /* stairs */ + "e: 3: 0\n" /* dirt */ + "f: 17: 0\n" /* tree */ + "g:107: 0\n" /* fencegate */ + "h:107: 4\n" /* fencegate */ + "i: 5: 0\n" /* wood */ + "j:107: 6\n" /* fencegate */ + "k: 85: 0\n" /* fence */ + "l:170: 0\n" /* haybale */ "m: 19: 0\n" /* sponge */ - "n:170: 0\n" /* haybale */ - "o:170: 4\n" /* haybale */ - "p:170: 8\n" /* haybale */ - "q: 50: 1\n" /* torch */ - "r: 50: 2\n" /* torch */ - "s: 53: 2\n" /* woodstairs */ - "t: 53: 7\n" /* woodstairs */ - "u: 53: 6\n" /* woodstairs */ - "v: 53: 3\n" /* woodstairs */, + "n:170: 4\n" /* haybale */ + "o:170: 8\n" /* haybale */ + "p: 50: 1\n" /* torch */ + "q: 50: 2\n" /* torch */ + "r: 53: 2\n" /* woodstairs */ + "s: 53: 7\n" /* woodstairs */ + "t: 53: 6\n" /* woodstairs */ + "u: 53: 3\n" /* woodstairs */, // Block data: // Level 0 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "aaaaaaaaaaaaaaa" - /* 1 */ "aaaaaaaaaaaaaaa" - /* 2 */ "aaaaaaaaaaaaaaa" - /* 3 */ "aaaaaaaaaaaaaaa" - /* 4 */ "aaaaaaaaaaaaaaa" - /* 5 */ "aaaaaaaaaaaaaaa" - /* 6 */ "aaaaaaaaaaaaaaa" - /* 7 */ "aaaaaaaaaaaaaaa" - /* 8 */ "aaaaaaaaaaaaaaa" + /* 0 */ "maaaaaaaaaaaaam" + /* 1 */ "maaaaaaaaaaaaam" + /* 2 */ "maaaaaaaaaaaaam" + /* 3 */ "maaaaaaaaaaaaam" + /* 4 */ "maaaaaaaaaaaaam" + /* 5 */ "maaaaaaaaaaaaam" + /* 6 */ "maaaaaaaaaaaaam" + /* 7 */ "maaaaaaaaaaaaam" + /* 8 */ "mmmmmmmmmmmmmmm" // Level 1 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "baaaaaaaaaaaaab" - /* 1 */ "baaaaaaaaaaaaab" - /* 2 */ "baaaaaaaaaaaaab" - /* 3 */ "baaaaaaaaaaaaab" - /* 4 */ "baaaaaaaaaaaaab" - /* 5 */ "baaaaaaaaaaaaab" - /* 6 */ "baaaaaaaaaaaaab" - /* 7 */ "baaaaaaaaaaaaab" - /* 8 */ "bbbbbbbbbbbbbbb" - - // Level 2 - /* z\x* 11111 */ - /* * 012345678901234 */ - /* 0 */ ".cddddddddddde." - /* 1 */ ".fffffffffffff." - /* 2 */ ".faaaaaaaaaaaf." - /* 3 */ ".faaaaaaaaaaaf." - /* 4 */ ".faaaaaaaaaaaf." - /* 5 */ ".faaaaaaaaaaaf." - /* 6 */ ".faaaaaaaaaaaf." - /* 7 */ ".fffffffffffff." + /* 0 */ ".bcccccccccccd." + /* 1 */ ".aaaaaaaaaaaaa." + /* 2 */ ".aeeeeeeeeeeea." + /* 3 */ ".aeeeeeeeeeeea." + /* 4 */ ".aeeeeeeeeeeea." + /* 5 */ ".aeeeeeeeeeeea." + /* 6 */ ".aeeeeeeeeeeea." + /* 7 */ ".aaaaaaaaaaaaa." /* 8 */ "..............." - // Level 3 + // Level 2 /* z\x* 11111 */ /* * 012345678901234 */ /* 0 */ "..............." - /* 1 */ ".ghihjhihjhkhg." - /* 2 */ ".l...l...l...l." - /* 3 */ ".l...l...l...l." - /* 4 */ ".l...l...l...l." - /* 5 */ ".l...l...l...l." - /* 6 */ ".ln..l..olp..l." - /* 7 */ ".gllljllljlllg." + /* 1 */ ".fghgighgigjgf." + /* 2 */ ".k...k...k...k." + /* 3 */ ".k...k...k...k." + /* 4 */ ".k...k...k...k." + /* 5 */ ".k...k...k...k." + /* 6 */ ".kl..k..nko..k." + /* 7 */ ".fkkkikkkikkkf." /* 8 */ "..............." - // Level 4 + // Level 3 /* z\x* 11111 */ /* * 012345678901234 */ /* 0 */ "..............." - /* 1 */ ".g...j...j...g." + /* 1 */ ".f...i...i...f." /* 2 */ "..............." /* 3 */ "..............." /* 4 */ "..............." /* 5 */ "..............." /* 6 */ "..............." - /* 7 */ ".g...j...j...g." + /* 7 */ ".f...i...i...f." /* 8 */ "..............." - // Level 5 + // Level 4 /* z\x* 11111 */ /* * 012345678901234 */ /* 0 */ "..............." - /* 1 */ ".gq.rjq.rjq.rg." + /* 1 */ ".fp.qip.qip.qf." /* 2 */ "..............." /* 3 */ "..............." /* 4 */ "..............." /* 5 */ "..............." /* 6 */ "..............." - /* 7 */ ".g...j...j...g." + /* 7 */ ".f...i...i...f." /* 8 */ "..............." - // Level 6 + // Level 5 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "sssssssssssssss" - /* 1 */ "tjjjjjjjjjjjjjt" - /* 2 */ ".j...........j." - /* 3 */ ".j...........j." - /* 4 */ ".j...........j." - /* 5 */ ".j...........j." - /* 6 */ ".j...........j." - /* 7 */ "ujjjjjjjjjjjjju" - /* 8 */ "vvvvvvvvvvvvvvv" + /* 0 */ "rrrrrrrrrrrrrrr" + /* 1 */ "siiiiiiiiiiiiis" + /* 2 */ ".i...........i." + /* 3 */ ".i...........i." + /* 4 */ ".i...........i." + /* 5 */ ".i...........i." + /* 6 */ ".i...........i." + /* 7 */ "tiiiiiiiiiiiiit" + /* 8 */ "uuuuuuuuuuuuuuu" - // Level 7 + // Level 6 /* z\x* 11111 */ /* * 012345678901234 */ /* 0 */ "..............." - /* 1 */ "sssssssssssssss" - /* 2 */ "tjjjjjjjjjjjjjt" - /* 3 */ ".j...........j." - /* 4 */ ".j...........j." - /* 5 */ ".j...........j." - /* 6 */ "ujjjjjjjjjjjjju" - /* 7 */ "vvvvvvvvvvvvvvv" + /* 1 */ "rrrrrrrrrrrrrrr" + /* 2 */ "siiiiiiiiiiiiis" + /* 3 */ ".i...........i." + /* 4 */ ".i...........i." + /* 5 */ ".i...........i." + /* 6 */ "tiiiiiiiiiiiiit" + /* 7 */ "uuuuuuuuuuuuuuu" /* 8 */ "..............." - // Level 8 + // Level 7 /* z\x* 11111 */ /* * 012345678901234 */ /* 0 */ "..............." /* 1 */ "..............." - /* 2 */ "sssssssssssssss" - /* 3 */ "tjjjjjjjjjjjjjt" - /* 4 */ ".j...........j." - /* 5 */ "ujjjjjjjjjjjjju" - /* 6 */ "vvvvvvvvvvvvvvv" + /* 2 */ "rrrrrrrrrrrrrrr" + /* 3 */ "siiiiiiiiiiiiis" + /* 4 */ ".i...........i." + /* 5 */ "tiiiiiiiiiiiiit" + /* 6 */ "uuuuuuuuuuuuuuu" /* 7 */ "..............." /* 8 */ "..............." - // Level 9 + // Level 8 /* z\x* 11111 */ /* * 012345678901234 */ /* 0 */ "..............." /* 1 */ "..............." /* 2 */ "..............." - /* 3 */ "sssssssssssssss" - /* 4 */ "jjjjjjjjjjjjjjj" - /* 5 */ "vvvvvvvvvvvvvvv" + /* 3 */ "rrrrrrrrrrrrrrr" + /* 4 */ "iiiiiiiiiiiiiii" + /* 5 */ "uuuuuuuuuuuuuuu" /* 6 */ "..............." /* 7 */ "..............." /* 8 */ "...............", // Connectors: - "-1: 7, 2, -1: 2\n" /* Type -1, direction Z- */, + "-1: 7, 1, -1: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -3972,6 +4461,9 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // WoodenStables }; // g_PlainsVillagePrefabs @@ -4109,17 +4601,467 @@ const cPrefab::sDef g_PlainsVillageStartingPrefabs[] = true, // DefaultWeight: - 100, + 0, // DepthWeight: "", // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // CobbleWell4x4 + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // MineEntrance: + // The data has been exported from the gallery Plains, area index 138, ID 446, created by STR_Warrior + { + // Size: + 7, 38, 7, // SizeX = 7, SizeY = 38, SizeZ = 7 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 6, 37, 6, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 5: 0\n" /* wood */ + "b: 77: 2\n" /* stonebutton */ + "c: 66: 6\n" /* tracks */ + "d: 27: 1\n" /* poweredrail */ + "e: 66: 5\n" /* tracks */ + "f: 66: 9\n" /* tracks */ + "g: 66: 2\n" /* tracks */ + "h: 50: 4\n" /* torch */ + "i: 66: 4\n" /* tracks */ + "j: 66: 8\n" /* tracks */ + "k: 66: 3\n" /* tracks */ + "l: 66: 7\n" /* tracks */ + "m: 19: 0\n" /* sponge */ + "n: 50: 2\n" /* torch */ + "o: 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 */, + + // Block data: + // Level 0 + /* z\x* 0123456 */ + /* 0 */ "maaaaam" + /* 1 */ "maaaaam" + /* 2 */ "maaaaam" + /* 3 */ "maaaaam" + /* 4 */ "maaaaam" + /* 5 */ "maaaaam" + /* 6 */ "mmmmmmm" + + // Level 1 + /* z\x* 0123456 */ + /* 0 */ "mm...mm" + /* 1 */ "mm.abam" + /* 2 */ "mmcddam" + /* 3 */ "mae..am" + /* 4 */ "mmaa.mm" + /* 5 */ "mmmammm" + /* 6 */ "mmmmmmm" + + // Level 2 + /* z\x* 0123456 */ + /* 0 */ "mm...mm" + /* 1 */ "mm.a.mm" + /* 2 */ "mm...mm" + /* 3 */ "ma..aam" + /* 4 */ "mmfgamm" + /* 5 */ "mmmammm" + /* 6 */ "mmmmmmm" + + // Level 3 + /* z\x* 0123456 */ + /* 0 */ "mm.h.mm" + /* 1 */ "mm.a.mm" + /* 2 */ "mm.aamm" + /* 3 */ "ma..iam" + /* 4 */ "mm..jmm" + /* 5 */ "mmmammm" + /* 6 */ "mmmmmmm" + + // Level 4 + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mmmammm" + /* 2 */ "mmaklmm" + /* 3 */ "maa..am" + /* 4 */ "mm...mm" + /* 5 */ "mmmammm" + /* 6 */ "mmmmmmm" + + // Level 5 + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mmmammm" + /* 2 */ "mmc..mm" + /* 3 */ "mae.nam" + /* 4 */ "mmaa.mm" + /* 5 */ "mmmammm" + /* 6 */ "mmmmmmm" + + // Level 6 + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mmmammm" + /* 2 */ "mm...mm" + /* 3 */ "ma..aam" + /* 4 */ "mmfgamm" + /* 5 */ "mmmammm" + /* 6 */ "mmmmmmm" + + // Level 7 + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mmmammm" + /* 2 */ "mm.aamm" + /* 3 */ "ma..iam" + /* 4 */ "mm..jmm" + /* 5 */ "mmmammm" + /* 6 */ "mmmmmmm" + + // Level 8 + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mmmammm" + /* 2 */ "mmaklmm" + /* 3 */ "maa..am" + /* 4 */ "mm...mm" + /* 5 */ "mmmammm" + /* 6 */ "mmmmmmm" + + // Level 9 + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mmmammm" + /* 2 */ "mmc..mm" + /* 3 */ "mae.nam" + /* 4 */ "mmaa.mm" + /* 5 */ "mmmammm" + /* 6 */ "mmmmmmm" + + // Level 10 + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mmmammm" + /* 2 */ "mm...mm" + /* 3 */ "ma..aam" + /* 4 */ "mmfgamm" + /* 5 */ "mmmammm" + /* 6 */ "mmmmmmm" + + // Level 11 + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mmmammm" + /* 2 */ "mm.aamm" + /* 3 */ "ma..iam" + /* 4 */ "mm..jmm" + /* 5 */ "mmmammm" + /* 6 */ "mmmmmmm" + + // Level 12 + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mmmammm" + /* 2 */ "mmaklmm" + /* 3 */ "maa..am" + /* 4 */ "mm...mm" + /* 5 */ "mmmammm" + /* 6 */ "mmmmmmm" + + // Level 13 + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mmmammm" + /* 2 */ "mmc..mm" + /* 3 */ "mae.nam" + /* 4 */ "mmaa.mm" + /* 5 */ "mmmammm" + /* 6 */ "mmmmmmm" + + // Level 14 + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mmmammm" + /* 2 */ "mm...mm" + /* 3 */ "ma..aam" + /* 4 */ "mmfgamm" + /* 5 */ "mmmammm" + /* 6 */ "mmmmmmm" + + // Level 15 + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mmmammm" + /* 2 */ "mm.aamm" + /* 3 */ "ma..iam" + /* 4 */ "mm..jmm" + /* 5 */ "mmmammm" + /* 6 */ "mmmmmmm" + + // Level 16 + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mmmammm" + /* 2 */ "mmaklmm" + /* 3 */ "maa..am" + /* 4 */ "mm...mm" + /* 5 */ "mmmammm" + /* 6 */ "mmmmmmm" + + // Level 17 + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mmmammm" + /* 2 */ "mmc..mm" + /* 3 */ "mae.nam" + /* 4 */ "mmaa.mm" + /* 5 */ "mmmammm" + /* 6 */ "mmmmmmm" + + // Level 18 + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mmmammm" + /* 2 */ "mm...mm" + /* 3 */ "ma..aam" + /* 4 */ "mmfgamm" + /* 5 */ "mmmammm" + /* 6 */ "mmmmmmm" + + // Level 19 + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mmmammm" + /* 2 */ "mm.aamm" + /* 3 */ "ma..iam" + /* 4 */ "mm..jmm" + /* 5 */ "mmmammm" + /* 6 */ "mmmmmmm" + + // Level 20 + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mmmammm" + /* 2 */ "mmaklmm" + /* 3 */ "maa..am" + /* 4 */ "mm...mm" + /* 5 */ "mmmammm" + /* 6 */ "mmmmmmm" + + // Level 21 + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mmmammm" + /* 2 */ "mmc..mm" + /* 3 */ "mae.nam" + /* 4 */ "mmaa.mm" + /* 5 */ "mmmammm" + /* 6 */ "mmmmmmm" + + // Level 22 + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mmmammm" + /* 2 */ "mm...mm" + /* 3 */ "ma..aam" + /* 4 */ "mmfgamm" + /* 5 */ "mmmammm" + /* 6 */ "mmmmmmm" + + // Level 23 + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mmmammm" + /* 2 */ "mm.aamm" + /* 3 */ "ma..iam" + /* 4 */ "mm..jmm" + /* 5 */ "mmmammm" + /* 6 */ "mmmmmmm" + + // Level 24 + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mmmammm" + /* 2 */ "mmaklmm" + /* 3 */ "maa..am" + /* 4 */ "mm...mm" + /* 5 */ "mmmammm" + /* 6 */ "mmmmmmm" + + // Level 25 + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mmmammm" + /* 2 */ "mmc..mm" + /* 3 */ "mae.nam" + /* 4 */ "mmaa.mm" + /* 5 */ "mmmammm" + /* 6 */ "mmmmmmm" + + // Level 26 + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mmmammm" + /* 2 */ "mm...mm" + /* 3 */ "ma..aam" + /* 4 */ "mmfgamm" + /* 5 */ "mmmammm" + /* 6 */ "mmmmmmm" + + // Level 27 + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mmmammm" + /* 2 */ "mm.aamm" + /* 3 */ "ma..iam" + /* 4 */ "mm..jmm" + /* 5 */ "mmmammm" + /* 6 */ "mmmmmmm" + + // Level 28 + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mmmammm" + /* 2 */ "mmaklmm" + /* 3 */ "maa..am" + /* 4 */ "mm...mm" + /* 5 */ "mmmammm" + /* 6 */ "mmmmmmm" + + // Level 29 + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mmmammm" + /* 2 */ "mmc..mm" + /* 3 */ "mae.nam" + /* 4 */ "mmaa.mm" + /* 5 */ "mmmammm" + /* 6 */ "mmmmmmm" + + // Level 30 + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mmmammm" + /* 2 */ "mm...mm" + /* 3 */ "ma..aam" + /* 4 */ "mmfgamm" + /* 5 */ "mmmammm" + /* 6 */ "mmmmmmm" + + // Level 31 + /* z\x* 0123456 */ + /* 0 */ "ooomooo" + /* 1 */ "oaaaaao" + /* 2 */ "oa.aaao" + /* 3 */ "oa..iao" + /* 4 */ "oa..jao" + /* 5 */ "oaaaaao" + /* 6 */ "ooooooo" + + // Level 32 + /* z\x* 0123456 */ + /* 0 */ "...p..." + /* 1 */ ".aqrba." + /* 2 */ "...fl.." + /* 3 */ "......." + /* 4 */ "......." + /* 5 */ ".a...a." + /* 6 */ "......." + + // Level 33 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".a...a." + /* 2 */ "......." + /* 3 */ "......." + /* 4 */ "......." + /* 5 */ ".a...a." + /* 6 */ "......." + + // Level 34 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".a...a." + /* 2 */ "......." + /* 3 */ "......." + /* 4 */ "......." + /* 5 */ ".a...a." + /* 6 */ "......." + + // Level 35 + /* z\x* 0123456 */ + /* 0 */ "ppppppp" + /* 1 */ "saaaaas" + /* 2 */ ".a...a." + /* 3 */ ".a...a." + /* 4 */ ".a...a." + /* 5 */ "taaaaat" + /* 6 */ "uuuuuuu" + + // Level 36 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ "ppppppp" + /* 2 */ "saaaaas" + /* 3 */ ".aaaaa." + /* 4 */ "taaaaat" + /* 5 */ "uuuuuuu" + /* 6 */ "......." + + // Level 37 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ "......." + /* 2 */ "ppppppp" + /* 3 */ "aaaaaaa" + /* 4 */ "uuuuuuu" + /* 5 */ "......." + /* 6 */ ".......", + + // Connectors: + "2: 6, 32, 3: 5\n" /* Type 2, direction X+ */ + "2: 3, 32, 6: 3\n" /* Type 2, direction Z+ */ + "2: 0, 32, 3: 4\n" /* Type 2, direction X- */ + "2: 3, 32, 0: 2\n" /* Type 2, direction Z- */ + "3: 3, 1, 0: 2\n" /* Type 3, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + false, + + // DefaultWeight: + 1000, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + true, + }, // MineEntrance + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // RoofedWell: // The data has been exported from the gallery Plains, area index 119, ID 271, created by STR_Warrior @@ -4317,13 +5259,16 @@ const cPrefab::sDef g_PlainsVillageStartingPrefabs[] = true, // DefaultWeight: - 100, + 0, // DepthWeight: "", // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // RoofedWell }; diff --git a/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.cpp b/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.cpp index 93aa405c2..4f0efdcc6 100644 --- a/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.cpp +++ b/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.cpp @@ -141,6 +141,9 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // Forge @@ -264,6 +267,9 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // House11x7 @@ -363,6 +369,9 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // House5x4 @@ -468,6 +477,9 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // House5x5 @@ -573,6 +585,9 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // House7x5 @@ -683,6 +698,9 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // House8x5 @@ -805,6 +823,9 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // House8x7 @@ -928,6 +949,9 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // House9x7 @@ -1078,6 +1102,9 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // HouseL13x12 @@ -1087,75 +1114,86 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = // The data has been exported from the gallery Desert, area index 34, ID 175, created by Aloe_vera { // Size: - 7, 5, 7, // SizeX = 7, SizeY = 5, SizeZ = 7 + 7, 6, 7, // SizeX = 7, SizeY = 6, SizeZ = 7 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 6, 4, 6, // MaxX, MaxY, MaxZ + 6, 5, 6, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a: 85: 0\n" /* fence */ - "b:171:14\n" /* carpet */ - "c:171:15\n" /* carpet */ - "d:171: 0\n" /* carpet */ - "e: 35:14\n" /* wool */ - "f: 35: 0\n" /* wool */ + "a: 12: 0\n" /* sand */ + "b: 85: 0\n" /* fence */ + "c:171:14\n" /* carpet */ + "d:171:15\n" /* carpet */ + "e:171: 0\n" /* carpet */ + "f: 35:14\n" /* wool */ + "g: 35: 0\n" /* wool */ "m: 19: 0\n" /* sponge */, // Block data: // Level 0 /* z\x* 0123456 */ - /* 0 */ "a.....a" - /* 1 */ "bccdccb" - /* 2 */ "bcdddcb" - /* 3 */ "bcdddcb" - /* 4 */ "bccdccb" - /* 5 */ "a.....a" - /* 6 */ "......." + /* 0 */ "aaaaaaa" + /* 1 */ "aaaaaaa" + /* 2 */ "aaaaaaa" + /* 3 */ "aaaaaaa" + /* 4 */ "aaaaaaa" + /* 5 */ "aaaaaaa" + /* 6 */ "aaaaaaa" // Level 1 /* z\x* 0123456 */ - /* 0 */ "a.....a" + /* 0 */ "b.....b" + /* 1 */ "cddeddc" + /* 2 */ "cdeeedc" + /* 3 */ "cdeeedc" + /* 4 */ "cddeddc" + /* 5 */ "b.....b" + /* 6 */ "......." + + // Level 2 + /* z\x* 0123456 */ + /* 0 */ "b.....b" /* 1 */ "......." /* 2 */ "......." /* 3 */ "......." /* 4 */ "......." - /* 5 */ "a.....a" + /* 5 */ "b.....b" /* 6 */ "......." - // Level 2 + // Level 3 /* z\x* 0123456 */ - /* 0 */ "a.....a" + /* 0 */ "b.....b" /* 1 */ "......." /* 2 */ "......." /* 3 */ "......." /* 4 */ "......." - /* 5 */ "a.....a" - /* 6 */ "efefefe" + /* 5 */ "b.....b" + /* 6 */ "fgfgfgf" - // Level 3 + // Level 4 /* z\x* 0123456 */ - /* 0 */ "efefefe" + /* 0 */ "fgfgfgf" /* 1 */ "......." /* 2 */ "......." /* 3 */ "......." /* 4 */ "......." - /* 5 */ "efefefe" + /* 5 */ "fgfgfgf" /* 6 */ "......." - // Level 4 + // Level 5 /* z\x* 0123456 */ /* 0 */ "......." - /* 1 */ "efefefe" - /* 2 */ "efefefe" - /* 3 */ "efefefe" - /* 4 */ "efefefe" + /* 1 */ "fgfgfgf" + /* 2 */ "fgfgfgf" + /* 3 */ "fgfgfgf" + /* 4 */ "fgfgfgf" /* 5 */ "......." /* 6 */ ".......", // Connectors: - "-1: 2, -1, 0: 2\n" /* Type -1, direction Z- */, + "-1: 2, 0, 0: 2\n" /* Type -1, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -1167,13 +1205,16 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = true, // DefaultWeight: - 100, + 5, // DepthWeight: "", // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // MarketStall @@ -1300,13 +1341,16 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = true, // DefaultWeight: - 100, + 20, // DepthWeight: "", // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // Marketplace }; // g_SandFlatRoofVillagePrefabs @@ -1496,6 +1540,9 @@ const cPrefab::sDef g_SandFlatRoofVillageStartingPrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // Well }; diff --git a/src/Generating/Prefabs/SandVillagePrefabs.cpp b/src/Generating/Prefabs/SandVillagePrefabs.cpp index 539f57b9d..a062f8cd4 100644 --- a/src/Generating/Prefabs/SandVillagePrefabs.cpp +++ b/src/Generating/Prefabs/SandVillagePrefabs.cpp @@ -82,6 +82,9 @@ const cPrefab::sDef g_SandVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // DoubleField @@ -202,6 +205,9 @@ const cPrefab::sDef g_SandVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // House11x7 @@ -345,6 +351,9 @@ const cPrefab::sDef g_SandVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // House11x9 @@ -463,6 +472,9 @@ const cPrefab::sDef g_SandVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // House13x7 @@ -606,6 +618,9 @@ const cPrefab::sDef g_SandVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // House13x9 @@ -749,6 +764,9 @@ const cPrefab::sDef g_SandVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // House15x9 @@ -892,6 +910,9 @@ const cPrefab::sDef g_SandVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // House16x9 @@ -1003,6 +1024,9 @@ const cPrefab::sDef g_SandVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // House7x7 @@ -1115,6 +1139,9 @@ const cPrefab::sDef g_SandVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // House9x7 @@ -1251,159 +1278,10 @@ const cPrefab::sDef g_SandVillagePrefabs[] = // AddWeightIfSame: 0, - }, // House9x9 - - - - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // HouseL14x12: - // The data has been exported from the gallery Desert, area index 7, ID 82, created by Aloe_vera - { - // Size: - 14, 6, 12, // SizeX = 14, SizeY = 6, SizeZ = 12 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 13, 5, 11, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* air */ - "a:128: 0\n" /* sandstonestairs */ - "b:128: 2\n" /* sandstonestairs */ - "c:128: 1\n" /* sandstonestairs */ - "d: 24: 0\n" /* sandstone */ - "e:128: 3\n" /* sandstonestairs */ - "f: 64: 7\n" /* wooddoorblock */ - "g: 64: 5\n" /* wooddoorblock */ - "h:102: 0\n" /* glasspane */ - "i: 64:12\n" /* wooddoorblock */ - "j:128: 7\n" /* sandstonestairs */ - "k: 50: 3\n" /* torch */ - "l: 50: 4\n" /* torch */ - "m: 19: 0\n" /* sponge */ - "n:128: 6\n" /* sandstonestairs */ - "o:128: 5\n" /* sandstonestairs */ - "p:128: 4\n" /* sandstonestairs */ - "q: 50: 1\n" /* torch */, - - // Block data: - // Level 0 - /* z\x* 1111 */ - /* * 01234567890123 */ - /* 0 */ ".......abc...." - /* 1 */ ".dddddddddddd." - /* 2 */ ".dddddddddddd." - /* 3 */ ".dddddddddddd." - /* 4 */ ".dddddddddddd." - /* 5 */ ".dddddddddddd." - /* 6 */ "....aec.ddddd." - /* 7 */ "mmmmmmm.ddddd." - /* 8 */ "mmmmmmm.ddddd." - /* 9 */ "mmmmmmm.ddddd." - /* 10 */ "mmmmmmm.ddddd." - /* 11 */ "mmmmmmm......." - - // Level 1 - /* z\x* 1111 */ - /* * 01234567890123 */ - /* 0 */ ".............." - /* 1 */ ".dddddddfdddd." - /* 2 */ ".d..........d." - /* 3 */ ".d..........d." - /* 4 */ ".d..........d." - /* 5 */ ".ddddgddd...d." - /* 6 */ "........d...d." - /* 7 */ "mmmmmmm.d...d." - /* 8 */ "mmmmmmm.d...d." - /* 9 */ "mmmmmmm.d...d." - /* 10 */ "mmmmmmm.ddddd." - /* 11 */ "mmmmmmm......." - - // Level 2 - /* z\x* 1111 */ - /* * 01234567890123 */ - /* 0 */ ".............." - /* 1 */ ".dhhdhhdidhhd." - /* 2 */ ".h..........h." - /* 3 */ ".h..........h." - /* 4 */ ".h..........d." - /* 5 */ ".dhhdidhh...h." - /* 6 */ "........h...h." - /* 7 */ "mmmmmmm.d...d." - /* 8 */ "mmmmmmm.h...h." - /* 9 */ "mmmmmmm.h...h." - /* 10 */ "mmmmmmm.dhhhd." - /* 11 */ "mmmmmmm......." - - // Level 3 - /* z\x* 1111 */ - /* * 01234567890123 */ - /* 0 */ "bbbbbbbbbbbbbb" - /* 1 */ "jddddddddddddc" - /* 2 */ ".d.....k.k..dc" - /* 3 */ ".d..........dc" - /* 4 */ ".d..l.l.....dc" - /* 5 */ "ndddddddd...dc" - /* 6 */ "eeeeeeead...dc" - /* 7 */ "mmmmmmmad...dc" - /* 8 */ "mmmmmmmad...dc" - /* 9 */ "mmmmmmmad...dc" - /* 10 */ "mmmmmmmadddddc" - /* 11 */ "mmmmmmmao...pc" - - // Level 4 - /* z\x* 1111 */ - /* * 01234567890123 */ - /* 0 */ ".............." - /* 1 */ "bbbbbbbbbbbbb." - /* 2 */ "jdddddddddddc." - /* 3 */ ".dq........dc." - /* 4 */ "nddddddddd.dc." - /* 5 */ "eeeeeeeead.dc." - /* 6 */ "........ad.dc." - /* 7 */ "mmmmmmm.ad.dc." - /* 8 */ "mmmmmmm.ad.dc." - /* 9 */ "mmmmmmm.adldc." - /* 10 */ "mmmmmmm.adddc." - /* 11 */ "mmmmmmm.ao.pc." - - // Level 5 - /* z\x* 1111 */ - /* * 01234567890123 */ - /* 0 */ ".............." - /* 1 */ ".............." - /* 2 */ "bbbbbbbbbbbb.." - /* 3 */ "dddddddddddc.." - /* 4 */ "eeeeeeeeeadc.." - /* 5 */ ".........adc.." - /* 6 */ ".........adc.." - /* 7 */ "mmmmmmm..adc.." - /* 8 */ "mmmmmmm..adc.." - /* 9 */ "mmmmmmm..adc.." - /* 10 */ "mmmmmmm..adc.." - /* 11 */ "mmmmmmm..adc..", - - // Connectors: - "-1: 8, 0, 0: 2\n" /* Type -1, direction Z- */, - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotation allowed */ - // Merge strategy: - cBlockArea::msSpongePrint, - - // ShouldExtendFloor: + // MoveToGround: true, - - // DefaultWeight: - 100, - - // DepthWeight: - "", - - // AddWeightIfSame: - 0, - }, // HouseL14x12 + }, // House9x9 @@ -1571,6 +1449,164 @@ const cPrefab::sDef g_SandVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, + }, // HouseL14x12 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // HouseL14x12: + // The data has been exported from the gallery Desert, area index 7, ID 82, created by Aloe_vera + { + // Size: + 14, 6, 12, // SizeX = 14, SizeY = 6, SizeZ = 12 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 13, 5, 11, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a:128: 0\n" /* sandstonestairs */ + "b:128: 2\n" /* sandstonestairs */ + "c:128: 1\n" /* sandstonestairs */ + "d: 24: 0\n" /* sandstone */ + "e:128: 3\n" /* sandstonestairs */ + "f: 64: 7\n" /* wooddoorblock */ + "g: 64: 5\n" /* wooddoorblock */ + "h:102: 0\n" /* glasspane */ + "i: 64:12\n" /* wooddoorblock */ + "j:128: 7\n" /* sandstonestairs */ + "k: 50: 3\n" /* torch */ + "l: 50: 4\n" /* torch */ + "m: 19: 0\n" /* sponge */ + "n:128: 6\n" /* sandstonestairs */ + "o:128: 5\n" /* sandstonestairs */ + "p:128: 4\n" /* sandstonestairs */ + "q: 50: 1\n" /* torch */, + + // Block data: + // Level 0 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ ".......abc...." + /* 1 */ ".dddddddddddd." + /* 2 */ ".dddddddddddd." + /* 3 */ ".dddddddddddd." + /* 4 */ ".dddddddddddd." + /* 5 */ ".dddddddddddd." + /* 6 */ "....aec.ddddd." + /* 7 */ "mmmmmmm.ddddd." + /* 8 */ "mmmmmmm.ddddd." + /* 9 */ "mmmmmmm.ddddd." + /* 10 */ "mmmmmmm.ddddd." + /* 11 */ "mmmmmmm......." + + // Level 1 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ ".............." + /* 1 */ ".dddddddfdddd." + /* 2 */ ".d..........d." + /* 3 */ ".d..........d." + /* 4 */ ".d..........d." + /* 5 */ ".ddddgddd...d." + /* 6 */ "........d...d." + /* 7 */ "mmmmmmm.d...d." + /* 8 */ "mmmmmmm.d...d." + /* 9 */ "mmmmmmm.d...d." + /* 10 */ "mmmmmmm.ddddd." + /* 11 */ "mmmmmmm......." + + // Level 2 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ ".............." + /* 1 */ ".dhhdhhdidhhd." + /* 2 */ ".h..........h." + /* 3 */ ".h..........h." + /* 4 */ ".h..........d." + /* 5 */ ".dhhdidhh...h." + /* 6 */ "........h...h." + /* 7 */ "mmmmmmm.d...d." + /* 8 */ "mmmmmmm.h...h." + /* 9 */ "mmmmmmm.h...h." + /* 10 */ "mmmmmmm.dhhhd." + /* 11 */ "mmmmmmm......." + + // Level 3 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "bbbbbbbbbbbbbb" + /* 1 */ "jddddddddddddc" + /* 2 */ ".d.....k.k..dc" + /* 3 */ ".d..........dc" + /* 4 */ ".d..l.l.....dc" + /* 5 */ "ndddddddd...dc" + /* 6 */ "eeeeeeead...dc" + /* 7 */ "mmmmmmmad...dc" + /* 8 */ "mmmmmmmad...dc" + /* 9 */ "mmmmmmmad...dc" + /* 10 */ "mmmmmmmadddddc" + /* 11 */ "mmmmmmmao...pc" + + // Level 4 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ ".............." + /* 1 */ "bbbbbbbbbbbbb." + /* 2 */ "jdddddddddddc." + /* 3 */ ".dq........dc." + /* 4 */ "nddddddddd.dc." + /* 5 */ "eeeeeeeead.dc." + /* 6 */ "........ad.dc." + /* 7 */ "mmmmmmm.ad.dc." + /* 8 */ "mmmmmmm.ad.dc." + /* 9 */ "mmmmmmm.adldc." + /* 10 */ "mmmmmmm.adddc." + /* 11 */ "mmmmmmm.ao.pc." + + // Level 5 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ ".............." + /* 1 */ ".............." + /* 2 */ "bbbbbbbbbbbb.." + /* 3 */ "dddddddddddc.." + /* 4 */ "eeeeeeeeeadc.." + /* 5 */ ".........adc.." + /* 6 */ ".........adc.." + /* 7 */ "mmmmmmm..adc.." + /* 8 */ "mmmmmmm..adc.." + /* 9 */ "mmmmmmm..adc.." + /* 10 */ "mmmmmmm..adc.." + /* 11 */ "mmmmmmm..adc..", + + // Connectors: + "-1: 8, 0, 0: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + true, }, // HouseL14x12 @@ -1638,6 +1674,9 @@ const cPrefab::sDef g_SandVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // SingleField @@ -1731,6 +1770,9 @@ const cPrefab::sDef g_SandVillagePrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // SmallHut }; // g_SandVillagePrefabs @@ -1741,6 +1783,204 @@ 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 + { + // Size: + 7, 14, 7, // SizeX = 7, SizeY = 14, SizeZ = 7 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 6, 13, 6, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 1: 0\n" /* stone */ + "b: 24: 0\n" /* sandstone */ + "c: 8: 0\n" /* water */ + "d: 12: 0\n" /* sand */ + "e: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 */, + + // Block data: + // Level 0 + /* z\x* 0123456 */ + /* 0 */ "aaaaaaa" + /* 1 */ "aaaaaaa" + /* 2 */ "aaaaaaa" + /* 3 */ "aaaaaaa" + /* 4 */ "aaaaaaa" + /* 5 */ "aaaaaaa" + /* 6 */ "aaaaaaa" + + // Level 1 + /* z\x* 0123456 */ + /* 0 */ "aaaaaaa" + /* 1 */ "abbbbba" + /* 2 */ "abcccba" + /* 3 */ "abcccba" + /* 4 */ "abcccba" + /* 5 */ "abbbbba" + /* 6 */ "aaaaaaa" + + // Level 2 + /* z\x* 0123456 */ + /* 0 */ "aaaaaaa" + /* 1 */ "abbbbba" + /* 2 */ "abcccba" + /* 3 */ "abcccba" + /* 4 */ "abcccba" + /* 5 */ "abbbbba" + /* 6 */ "aaaaaaa" + + // Level 3 + /* z\x* 0123456 */ + /* 0 */ "aaaaaaa" + /* 1 */ "abbbbba" + /* 2 */ "abcccba" + /* 3 */ "abcccba" + /* 4 */ "abcccba" + /* 5 */ "abbbbba" + /* 6 */ "aaaaaaa" + + // Level 4 + /* z\x* 0123456 */ + /* 0 */ "ddddddd" + /* 1 */ "dbbbbbd" + /* 2 */ "dbcccbd" + /* 3 */ "dbcccbd" + /* 4 */ "dbcccbd" + /* 5 */ "dbbbbbd" + /* 6 */ "ddddddd" + + // Level 5 + /* z\x* 0123456 */ + /* 0 */ "ddddddd" + /* 1 */ "dbbbbbd" + /* 2 */ "dbcccbd" + /* 3 */ "dbcccbd" + /* 4 */ "dbcccbd" + /* 5 */ "dbbbbbd" + /* 6 */ "ddddddd" + + // Level 6 + /* z\x* 0123456 */ + /* 0 */ "ddddddd" + /* 1 */ "dbbbbbd" + /* 2 */ "dbcccbd" + /* 3 */ "dbcccbd" + /* 4 */ "dbcccbd" + /* 5 */ "dbbbbbd" + /* 6 */ "ddddddd" + + // Level 7 + /* z\x* 0123456 */ + /* 0 */ "ddbbbdd" + /* 1 */ "dbbbbbd" + /* 2 */ "bbcccbb" + /* 3 */ "bbcccbb" + /* 4 */ "bbcccbb" + /* 5 */ "dbbbbbd" + /* 6 */ "ddbbbdd" + + // Level 8 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".bbbbb." + /* 2 */ ".b...b." + /* 3 */ ".b.e.b." + /* 4 */ ".b...b." + /* 5 */ ".bbbbb." + /* 6 */ "......." + + // Level 9 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".f...f." + /* 2 */ "......." + /* 3 */ "...f..." + /* 4 */ "......." + /* 5 */ ".f...f." + /* 6 */ "......." + + // Level 10 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".f...f." + /* 2 */ "......." + /* 3 */ "...f..." + /* 4 */ "......." + /* 5 */ ".f...f." + /* 6 */ "......." + + // Level 11 + /* z\x* 0123456 */ + /* 0 */ "ggggggg" + /* 1 */ "hbhhhbh" + /* 2 */ ".i...j." + /* 3 */ ".i.f.j." + /* 4 */ ".i...j." + /* 5 */ "kbkkkbk" + /* 6 */ "lllllll" + + // Level 12 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ "ggggggg" + /* 2 */ "hb...bh" + /* 3 */ ".b.f.b." + /* 4 */ "kb...bk" + /* 5 */ "lllllll" + /* 6 */ "......." + + // Level 13 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ "......." + /* 2 */ "ggggggg" + /* 3 */ "bbbbbbb" + /* 4 */ "lllllll" + /* 5 */ "......." + /* 6 */ ".......", + + // Connectors: + "2: 6, 8, 3: 5\n" /* Type 2, direction X+ */ + "2: 3, 8, 6: 3\n" /* Type 2, direction Z+ */ + "2: 0, 8, 3: 4\n" /* Type 2, direction X- */ + "2: 3, 8, 0: 2\n" /* Type 2, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + true, + }, // RoofedWell + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Well: // The data has been exported from the gallery Desert, area index 0, ID 1, created by Aloe_vera @@ -1875,6 +2115,9 @@ const cPrefab::sDef g_SandVillageStartingPrefabs[] = // AddWeightIfSame: 0, + + // MoveToGround: + true, }, // Well }; diff --git a/src/Generating/VillageGen.cpp b/src/Generating/VillageGen.cpp index 62822c33b..cb1f4fe0d 100644 --- a/src/Generating/VillageGen.cpp +++ b/src/Generating/VillageGen.cpp @@ -127,10 +127,23 @@ public: m_HeightGen(a_HeightGen), m_RoadBlock(a_RoadBlock) { + // Generate the pieces for this village; don't care about the Y coord: cBFSPieceGenerator pg(*this, a_Seed); - // Generate the pieces at very negative Y coords, so that we can later test - // Piece has negative Y coord -> hasn't been height-adjusted yet - pg.PlacePieces(a_OriginX, -1000, a_OriginZ, a_MaxRoadDepth + 1, m_Pieces); + pg.PlacePieces(a_OriginX, 0, a_OriginZ, a_MaxRoadDepth + 1, m_Pieces); + if (m_Pieces.empty()) + { + return; + } + + // If the central piece should be moved to ground, move it, and + // check all of its dependents and move those that are strictly connector-driven based on its new Y coord: + if (((cPrefab &)m_Pieces[0]->GetPiece()).ShouldMoveToGround()) + { + int OrigPosY = m_Pieces[0]->GetCoords().y; + PlacePieceOnGround(*m_Pieces[0]); + int NewPosY = m_Pieces[0]->GetCoords().y; + MoveAllDescendants(m_Pieces, 0, NewPosY - OrigPosY); + } } protected: @@ -179,7 +192,7 @@ protected: DrawRoad(a_Chunk, **itr, HeightMap); continue; } - if ((*itr)->GetCoords().y < 0) + if (Prefab.ShouldMoveToGround() && !(*itr)->HasBeenMovedToGround()) { PlacePieceOnGround(**itr); } @@ -201,7 +214,7 @@ protected: cChunkDef::HeightMap HeightMap; m_HeightGen.GenHeightMap(ChunkX, ChunkZ, HeightMap); int TerrainHeight = cChunkDef::GetHeight(HeightMap, BlockX, BlockZ); - a_Piece.GetCoords().y += TerrainHeight - FirstConnector.m_Pos.y + 1; + a_Piece.MoveToGroundBy(TerrainHeight - FirstConnector.m_Pos.y + 1); } @@ -232,11 +245,13 @@ protected: return m_Prefabs.GetPiecesWithConnector(a_ConnectorType); } + virtual cPieces GetStartingPieces(void) { return m_Prefabs.GetStartingPieces(); } + virtual int GetPieceWeight( const cPlacedPiece & a_PlacedPiece, const cPiece::cConnector & a_ExistingConnector, @@ -258,15 +273,35 @@ protected: return m_Prefabs.GetPieceWeight(a_PlacedPiece, a_ExistingConnector, a_NewPiece); } + virtual void PiecePlaced(const cPiece & a_Piece) override { m_Prefabs.PiecePlaced(a_Piece); } + virtual void Reset(void) override { m_Prefabs.Reset(); } + + + void MoveAllDescendants(cPlacedPieces & a_PlacedPieces, size_t a_Pivot, int a_HeightDifference) + { + size_t num = a_PlacedPieces.size(); + cPlacedPiece * Pivot = a_PlacedPieces[a_Pivot]; + for (size_t i = a_Pivot + 1; i < num; i++) + { + if ( + (a_PlacedPieces[i]->GetParent() == Pivot) && // It is a direct dependant of the pivot + !((const cPrefab &)a_PlacedPieces[i]->GetPiece()).ShouldMoveToGround() // It attaches strictly by connectors + ) + { + a_PlacedPieces[i]->MoveToGroundBy(a_HeightDifference); + MoveAllDescendants(a_PlacedPieces, i, a_HeightDifference); + } + } // for i - a_PlacedPieces[] + } } ; -- cgit v1.2.3 From 24137e282bc97497bcf8c50745d2d45da59b1a27 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Mon, 26 May 2014 10:05:51 +0200 Subject: Fixed prefab test initialization. --- src/Generating/Prefab.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/Generating') diff --git a/src/Generating/Prefab.cpp b/src/Generating/Prefab.cpp index e41907325..2ab1455b9 100644 --- a/src/Generating/Prefab.cpp +++ b/src/Generating/Prefab.cpp @@ -108,6 +108,9 @@ static const cPrefab::sDef g_TestPrefabDef = // AddWeightIfSame: 1000, + + // MoveToGround: + false, }; static cPrefab g_TestPrefab(g_TestPrefabDef); -- cgit v1.2.3 From 6c25c356c7769b64fd43b0dd2611deb18bdd5619 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Tue, 27 May 2014 21:18:15 +0200 Subject: Biome generators: biome lists can contain spaces. --- src/Generating/BioGen.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/Generating') diff --git a/src/Generating/BioGen.cpp b/src/Generating/BioGen.cpp index 32a687201..47ba080c6 100644 --- a/src/Generating/BioGen.cpp +++ b/src/Generating/BioGen.cpp @@ -212,7 +212,7 @@ void cBioGenCache::InitializeBiomeGen(cIniFile & a_IniFile) void cBiomeGenList::InitializeBiomes(const AString & a_Biomes) { - AStringVector Split = StringSplit(a_Biomes, ","); + AStringVector Split = StringSplitAndTrim(a_Biomes, ","); // Convert each string in the list into biome: for (AStringVector::const_iterator itr = Split.begin(); itr != Split.end(); ++itr) -- cgit v1.2.3 From ff99373237178e9f7da02f51581f9a83d0e624d9 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Tue, 27 May 2014 22:05:50 +0200 Subject: cPieceGenerator chooses starting pieces based on weights. Fixes #1033. --- src/Generating/PieceGenerator.cpp | 26 +++++++++++++++++++++++++- src/Generating/PieceGenerator.h | 9 +++++++++ src/Generating/PrefabPiecePool.cpp | 9 +++++++++ src/Generating/PrefabPiecePool.h | 1 + 4 files changed, 44 insertions(+), 1 deletion(-) (limited to 'src/Generating') diff --git a/src/Generating/PieceGenerator.cpp b/src/Generating/PieceGenerator.cpp index 1880a20d5..5de231f75 100644 --- a/src/Generating/PieceGenerator.cpp +++ b/src/Generating/PieceGenerator.cpp @@ -362,7 +362,31 @@ cPlacedPiece * cPieceGenerator::PlaceStartingPiece(int a_BlockX, int a_BlockY, i // Choose a random one of the starting pieces: cPieces StartingPieces = m_PiecePool.GetStartingPieces(); - cPiece * StartingPiece = StartingPieces[rnd % StartingPieces.size()]; + int Total = 0; + for (cPieces::const_iterator itr = StartingPieces.begin(), end = StartingPieces.end(); itr != end; ++itr) + { + Total += m_PiecePool.GetStartingPieceWeight(**itr); + } + cPiece * StartingPiece; + if (Total > 0) + { + int Chosen = rnd % Total; + StartingPiece = StartingPieces.front(); + for (cPieces::const_iterator itr = StartingPieces.begin(), end = StartingPieces.end(); itr != end; ++itr) + { + Chosen -= m_PiecePool.GetStartingPieceWeight(**itr); + if (Chosen <= 0) + { + StartingPiece = *itr; + break; + } + } + } + else + { + // All pieces returned zero weight, but we need one to start. Choose with equal chance: + StartingPiece = StartingPieces[rnd % StartingPieces.size()]; + } rnd = rnd >> 16; // Choose a random supported rotation: diff --git a/src/Generating/PieceGenerator.h b/src/Generating/PieceGenerator.h index 21c155c96..fd8576706 100644 --- a/src/Generating/PieceGenerator.h +++ b/src/Generating/PieceGenerator.h @@ -120,6 +120,15 @@ public: const cPiece & a_NewPiece ) { return 1; } + /** Returns the relative weight with which the a_NewPiece is to be selected for placing as the first piece. + This allows the pool to tweak the piece's chances. + The higher the number returned, the higher the chance the piece will be chosen. 0 means the piece will not be chosen. + If all pieces return 0, a random piece is chosen, with all equal chances. + */ + virtual int GetStartingPieceWeight( + const cPiece & a_NewPiece + ) { return 1; } + /** Called after a piece is placed, to notify the pool that it has been used. The pool may adjust the pieces it will return the next time. */ virtual void PiecePlaced(const cPiece & a_Piece) = 0; diff --git a/src/Generating/PrefabPiecePool.cpp b/src/Generating/PrefabPiecePool.cpp index ed9340815..ad97ab0e7 100644 --- a/src/Generating/PrefabPiecePool.cpp +++ b/src/Generating/PrefabPiecePool.cpp @@ -101,6 +101,15 @@ int cPrefabPiecePool::GetPieceWeight(const cPlacedPiece & a_PlacedPiece, const c +int cPrefabPiecePool::GetStartingPieceWeight(const cPiece & a_NewPiece) +{ + return ((const cPrefab &)a_NewPiece).GetDefaultWeight(); +} + + + + + void cPrefabPiecePool::PiecePlaced(const cPiece & a_Piece) { // Do nothing diff --git a/src/Generating/PrefabPiecePool.h b/src/Generating/PrefabPiecePool.h index c6a5ad360..695ab4ea5 100644 --- a/src/Generating/PrefabPiecePool.h +++ b/src/Generating/PrefabPiecePool.h @@ -70,6 +70,7 @@ protected: virtual cPieces GetPiecesWithConnector(int a_ConnectorType) override; virtual cPieces GetStartingPieces(void) override; virtual int GetPieceWeight(const cPlacedPiece & a_PlacedPiece, const cPiece::cConnector & a_ExistingConnector, const cPiece & a_NewPiece) override; + virtual int GetStartingPieceWeight(const cPiece & a_NewPiece) override; virtual void PiecePlaced(const cPiece & a_Piece) override; virtual void Reset(void) override; } ; -- cgit v1.2.3 From 71256c98ed748d5cd789f94404e7984e11bdf115 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Tue, 27 May 2014 22:06:49 +0200 Subject: Fixed testing weights in PlainsVillages. --- src/Generating/Prefabs/PlainsVillagePrefabs.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp index fee6610c9..f8cf867e5 100644 --- a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp +++ b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp @@ -4601,7 +4601,7 @@ const cPrefab::sDef g_PlainsVillageStartingPrefabs[] = true, // DefaultWeight: - 0, + 100, // DepthWeight: "", @@ -5048,7 +5048,7 @@ const cPrefab::sDef g_PlainsVillageStartingPrefabs[] = false, // DefaultWeight: - 1000, + 100, // DepthWeight: "", @@ -5259,7 +5259,7 @@ const cPrefab::sDef g_PlainsVillageStartingPrefabs[] = true, // DefaultWeight: - 0, + 100, // DepthWeight: "", -- cgit v1.2.3 From 6b41d1a4220aa032f53b67637bbc3276272e5047 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Tue, 27 May 2014 22:08:20 +0200 Subject: Added AlchemistVillage prefabs (Thanks, KingsCraftAu). --- src/Generating/Prefabs/AlchemistVillagePrefabs.cpp | 2969 ++++++++++++++++++++ src/Generating/Prefabs/AlchemistVillagePrefabs.h | 15 + src/Generating/VillageGen.cpp | 32 +- 3 files changed, 3007 insertions(+), 9 deletions(-) create mode 100644 src/Generating/Prefabs/AlchemistVillagePrefabs.cpp create mode 100644 src/Generating/Prefabs/AlchemistVillagePrefabs.h (limited to 'src/Generating') diff --git a/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp b/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp new file mode 100644 index 000000000..32ffe5b88 --- /dev/null +++ b/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp @@ -0,0 +1,2969 @@ + +// AlchemistVillagePrefabs.cpp + +// Defines the prefabs in the group AlchemistVillage + +// NOTE: This file has been generated automatically by GalExport! +// Any manual changes will be overwritten by the next automatic export! + +#include "Globals.h" +#include "AlchemistVillagePrefabs.h" + + + + + +const cPrefab::sDef g_AlchemistVillagePrefabs[] = +{ + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // BarWithBasement: + // The data has been exported from the gallery Desert, area index 82, ID 598, created by STR_Warrior + { + // Size: + 11, 12, 9, // SizeX = 11, SizeY = 12, SizeZ = 9 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 10, 11, 8, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "A:101: 0\n" /* ironbars */ + "B: 64:12\n" /* wooddoorblock */ + "C:128: 2\n" /* sandstonestairs */ + "D: 24: 1\n" /* sandstone */ + "E: 44: 9\n" /* step */ + "F:126: 8\n" /* woodenslab */ + "G:128: 7\n" /* sandstonestairs */ + "H: 44: 1\n" /* step */ + "I: 64: 7\n" /* wooddoorblock */ + "J: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 */ + "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: 50: 3\n" /* torch */ + "z:171: 8\n" /* carpet */, + + // 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" + + // 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" + + // 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" + + // 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" + + // Level 4 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "ccccccccccc" + /* 1 */ "ccccccccccc" + /* 2 */ "ccnnnnnnncc" + /* 3 */ "cnnnnnnnnnc" + /* 4 */ "cnnnnnnnnnc" + /* 5 */ "cnnnnnnnnnc" + /* 6 */ "cnnnnnnnnnc" + /* 7 */ "cnonnnnnnnc" + /* 8 */ "cnccccccccc" + + // 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" + + // Level 6 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "...p...p..." + /* 1 */ "..........." + /* 2 */ "pbbb...bbbp" + /* 3 */ "b..y...y..b" + /* 4 */ "b.z.....z.b" + /* 5 */ "A.........A" + /* 6 */ "b.........b" + /* 7 */ "b.......z.b" + /* 8 */ "pBbbAAAbbbp" + + // Level 7 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "...C...C..." + /* 1 */ "...D...b..." + /* 2 */ "pbbbqEsbbbp" + /* 3 */ "bFFFFFFFFFb" + /* 4 */ "bFFFFFFFFFb" + /* 5 */ "sFFFFFFFFFq" + /* 6 */ "bFFFFFFFFFb" + /* 7 */ "bFFFFFFFFFb" + /* 8 */ "pbbbGGGbbbp" + + // Level 8 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "bHHHHbHHHHb" + /* 3 */ "HpbbbbbbbpH" + /* 4 */ "Hb.......bH" + /* 5 */ "bb.......bb" + /* 6 */ "Hb.......bH" + /* 7 */ "HpIbbbbbbpH" + /* 8 */ "bH.HHbHHHHb" + + // Level 9 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "..........." + /* 3 */ ".pbbAAAbbp." + /* 4 */ ".b.......b." + /* 5 */ ".A.......A." + /* 6 */ ".b.......b." + /* 7 */ ".pBbAAAbbp." + /* 8 */ "..........." + + // Level 10 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "..........." + /* 3 */ ".pbbJJJbbp." + /* 4 */ ".bFFFFFFFb." + /* 5 */ ".sFFFFFFFq." + /* 6 */ ".bFFFFFFFb." + /* 7 */ ".pbbGGGbbp." + /* 8 */ "..........." + + // Level 11 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "..........." + /* 3 */ ".bHHHbHHHb." + /* 4 */ ".H.......H." + /* 5 */ ".b.......b." + /* 6 */ ".H.......H." + /* 7 */ ".bHHHbHHHb." + /* 8 */ "...........", + + // Connectors: + "-1: 5, 5, 0: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + true, + }, // BarWithBasement + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // BarWithoutBasement: + // The data has been exported from the gallery Desert, area index 81, ID 597, created by STR_Warrior + { + // Size: + 11, 8, 9, // SizeX = 11, SizeY = 8, SizeZ = 9 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 10, 7, 8, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "A: 44: 1\n" /* step */ + "B: 64: 3\n" /* wooddoorblock */ + "C: 64: 8\n" /* wooddoorblock */ + "D: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 */ + "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: 50: 3\n" /* torch */ + "s:171: 8\n" /* carpet */ + "t:101: 0\n" /* ironbars */ + "u: 64:12\n" /* wooddoorblock */ + "v:128: 2\n" /* sandstonestairs */ + "w: 24: 1\n" /* sandstone */ + "x: 44: 9\n" /* step */ + "y:126: 8\n" /* woodenslab */ + "z:128: 7\n" /* sandstonestairs */, + + // 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" + + // 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" + + // Level 2 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "...c...c..." + /* 1 */ "..........." + /* 2 */ "cddd...dddc" + /* 3 */ "d..r...r..d" + /* 4 */ "d.s.....s.d" + /* 5 */ "t.........t" + /* 6 */ "d.........d" + /* 7 */ "d.......s.d" + /* 8 */ "cuddtttdddc" + + // Level 3 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "...v...v..." + /* 1 */ "...w...d..." + /* 2 */ "cdddexgdddc" + /* 3 */ "dyyyyyyyyyd" + /* 4 */ "dyyyyyyyyyd" + /* 5 */ "gyyyyyyyyye" + /* 6 */ "dyyyyyyyyyd" + /* 7 */ "dyyyyyyyyyd" + /* 8 */ "cdddzzzdddc" + + // Level 4 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "dAAAAdAAAAd" + /* 3 */ "AcdddddddcA" + /* 4 */ "Ad.......dA" + /* 5 */ "dd.......dd" + /* 6 */ "Ad.......dA" + /* 7 */ "AcBddddddcA" + /* 8 */ "dA.AAdAAAAd" + + // Level 5 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "..........." + /* 3 */ ".cddtttddc." + /* 4 */ ".d.......d." + /* 5 */ ".t.......t." + /* 6 */ ".d.......d." + /* 7 */ ".cCdtttddc." + /* 8 */ "..........." + + // Level 6 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "..........." + /* 3 */ ".cddDDDddc." + /* 4 */ ".dyyyyyyyd." + /* 5 */ ".gyyyyyyye." + /* 6 */ ".dyyyyyyyd." + /* 7 */ ".cddzzzddc." + /* 8 */ "..........." + + // Level 7 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "..........." + /* 3 */ ".dAAAdAAAd." + /* 4 */ ".A.......A." + /* 5 */ ".d.......d." + /* 6 */ ".A.......A." + /* 7 */ ".dAAAdAAAd." + /* 8 */ "...........", + + // Connectors: + "-1: 5, 1, 0: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + true, + }, // BarWithoutBasement + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // BlackSmith: + // The data has been exported from the gallery Desert, area index 92, ID 633, created by STR_Warrior + { + // Size: + 11, 5, 13, // SizeX = 11, SizeY = 5, SizeZ = 13 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 10, 4, 12, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 12: 0\n" /* sand */ + "b: 5: 0\n" /* wood */ + "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 */ + "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 */, + + // Block data: + // Level 0 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "aaaaaaaaaaa" + /* 1 */ "aaaaaaaaaaa" + /* 2 */ "aaaaaaaabaa" + /* 3 */ "acaaacabbba" + /* 4 */ "acaccaabbba" + /* 5 */ "acccccabbba" + /* 6 */ "acaadddbbba" + /* 7 */ "aaacdddbbba" + /* 8 */ "aaaadddbbba" + /* 9 */ "abbbbbbbbba" + /* 10 */ "abbbbbbbbba" + /* 11 */ "abbbbbbbbba" + /* 12 */ "aaaaaaaaaaa" + + // Level 1 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "......d...d" + /* 1 */ "..........." + /* 2 */ "......dcecd" + /* 3 */ ".d....c...c" + /* 4 */ "......c...c" + /* 5 */ "...f..c...c" + /* 6 */ ".....dc...c" + /* 7 */ ".gh.dic...c" + /* 8 */ "dcccccd...c" + /* 9 */ "cj........c" + /* 10 */ "c.........c" + /* 11 */ "c.........c" + /* 12 */ "dcccccccccd" + + // Level 2 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "......d...d" + /* 1 */ "..........." + /* 2 */ "......dckcd" + /* 3 */ ".d....c..lc" + /* 4 */ "......n...c" + /* 5 */ "......c...c" + /* 6 */ "......c...n" + /* 7 */ "......c...n" + /* 8 */ "dcccccd...n" + /* 9 */ "co........c" + /* 10 */ "n.........c" + /* 11 */ "c........pc" + /* 12 */ "dcccnnncccd" + + // Level 3 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "......q...q" + /* 1 */ "......c...c" + /* 2 */ "......dcccd" + /* 3 */ ".drrrrcsssc" + /* 4 */ ".rsssstsssc" + /* 5 */ ".rsssscsssc" + /* 6 */ ".rsssscsssu" + /* 7 */ ".rsssscsssu" + /* 8 */ "dcccccdsssu" + /* 9 */ "csssssssssc" + /* 10 */ "tsssssssssc" + /* 11 */ "csssssssssc" + /* 12 */ "dcccvvvcccd" + + // Level 4 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "......cwwwc" + /* 3 */ ".w.w.ww...w" + /* 4 */ "......w...w" + /* 5 */ ".w....w...w" + /* 6 */ "......w...w" + /* 7 */ ".w....w...c" + /* 8 */ "cwwwwwc...w" + /* 9 */ "w.........w" + /* 10 */ "w.........w" + /* 11 */ "w.........w" + /* 12 */ "cwwwwcwwwwc", + + // Connectors: + "-1: 8, 1, 0: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + false, + }, // BlackSmith + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // 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 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 14, 12, 10, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "A:128: 2\n" /* sandstonestairs */ + "B:128: 0\n" /* sandstonestairs */ + "C: 87: 0\n" /* netherstone */ + "D:128: 3\n" /* sandstonestairs */ + "E: 51: 0\n" /* fire */ + "F: 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: 2\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 */ + "m: 19: 0\n" /* sponge */ + "n:101: 0\n" /* ironbars */ + "o:140: 0\n" /* flowerpotblock */ + "p: 64: 8\n" /* wooddoorblock */ + "q: 69:12\n" /* lever */ + "r: 44:10\n" /* step */ + "s:128: 1\n" /* sandstonestairs */ + "t: 47: 0\n" /* bookshelf */ + "u: 96:12\n" /* trapdoor */ + "v:128: 4\n" /* sandstonestairs */ + "w:128: 5\n" /* sandstonestairs */ + "x:128: 7\n" /* sandstonestairs */ + "y: 44: 1\n" /* step */ + "z:128: 6\n" /* sandstonestairs */, + + // 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" + + // 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.." + + // Level 2 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "....cddnnnddc.." + /* 1 */ "....d......od.c" + /* 2 */ "....p.......d.." + /* 3 */ "....d.......p.." + /* 4 */ "....d.q...l.d.." + /* 5 */ "....dddd.dddd.c" + /* 6 */ "....n.......n.." + /* 7 */ "mmmmn.......n.." + /* 8 */ "mmmmn.......n.." + /* 9 */ "mmmmd.......d.." + /* 10 */ "mmmmcddnnnddc.." + + // Level 3 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "....cdddddddc.." + /* 1 */ "....drrrrrrrdds" + /* 2 */ "....drrrrrrrd.." + /* 3 */ "....drrrrrrrd.." + /* 4 */ "....dtttrrurd.." + /* 5 */ "....dddddddddds" + /* 6 */ "....vrrrrrrrw.." + /* 7 */ "mmmmvrrrrrrrw.." + /* 8 */ "mmmmvrrrrrrrw.." + /* 9 */ "mmmmdrrrrrrrd.." + /* 10 */ "mmmmcddxxxddc.." + + // Level 4 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "....dyyydyyyd.." + /* 1 */ "....ycdddddcy.." + /* 2 */ "....yd.....dy.." + /* 3 */ "....yd.....dy.." + /* 4 */ "....yd.....dy.." + /* 5 */ "....dcdd.ddcd.." + /* 6 */ "....y.......y.." + /* 7 */ "mmmmy.......y.." + /* 8 */ "mmmmy.......y.." + /* 9 */ "mmmmy.......y.." + /* 10 */ "mmmmdyyydyyyd.." + + // Level 5 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ ".....cddnddc..." + /* 2 */ ".....n.....n..." + /* 3 */ ".....n.....n..." + /* 4 */ ".....n.....n..." + /* 5 */ ".....cdd.ddc..." + /* 6 */ "..............." + /* 7 */ "..............." + /* 8 */ "..............." + /* 9 */ "..............." + /* 10 */ "..............." + + // Level 6 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ ".....cddzddc..." + /* 2 */ ".....vrrrrrw..." + /* 3 */ ".....vrrrrrw..." + /* 4 */ ".....vrrrrrw..." + /* 5 */ ".....cdddddc..." + /* 6 */ "..............." + /* 7 */ "..............." + /* 8 */ "..............." + /* 9 */ "..............." + /* 10 */ "..............." + + // Level 7 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ ".....dyydyyd..." + /* 2 */ ".....y.ddd.y..." + /* 3 */ ".....d.ddd.d..." + /* 4 */ ".....y.ddd.y..." + /* 5 */ ".....dyydyyd..." + /* 6 */ "..............." + /* 7 */ "..............." + /* 8 */ "..............." + /* 9 */ "..............." + /* 10 */ "..............." + + // Level 8 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ "..............." + /* 2 */ ".......cAc....." + /* 3 */ ".......BCs....." + /* 4 */ ".......cDc....." + /* 5 */ "..............." + /* 6 */ "..............." + /* 7 */ "..............." + /* 8 */ "..............." + /* 9 */ "..............." + /* 10 */ "..............." + + // Level 9 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ "..............." + /* 2 */ ".......c.c....." + /* 3 */ "........E......" + /* 4 */ ".......c.c....." + /* 5 */ "..............." + /* 6 */ "..............." + /* 7 */ "..............." + /* 8 */ "..............." + /* 9 */ "..............." + /* 10 */ "..............." + + // Level 10 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ "..............." + /* 2 */ ".......c.c....." + /* 3 */ "..............." + /* 4 */ ".......c.c....." + /* 5 */ "..............." + /* 6 */ "..............." + /* 7 */ "..............." + /* 8 */ "..............." + /* 9 */ "..............." + /* 10 */ "..............." + + // Level 11 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ "..............." + /* 2 */ ".......ddd....." + /* 3 */ ".......dFd....." + /* 4 */ ".......ddd....." + /* 5 */ "..............." + /* 6 */ "..............." + /* 7 */ "..............." + /* 8 */ "..............." + /* 9 */ "..............." + /* 10 */ "..............." + + // Level 12 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ "..............." + /* 2 */ ".......y.y....." + /* 3 */ "..............." + /* 4 */ ".......y.y....." + /* 5 */ "..............." + /* 6 */ "..............." + /* 7 */ "..............." + /* 8 */ "..............." + /* 9 */ "..............." + /* 10 */ "...............", + + // Connectors: + "-1: 14, 1, 3: 5\n" /* Type -1, direction X+ */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + true, + }, // LargeHouse1 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // 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 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 6, 10, 6, // 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 */ + "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 */, + + // Block data: + // Level 0 + /* z\x* 0123456 */ + /* 0 */ "aaaaaaa" + /* 1 */ "aaabaaa" + /* 2 */ "aabbbaa" + /* 3 */ "aabbbaa" + /* 4 */ "aabbbaa" + /* 5 */ "aaaaaaa" + /* 6 */ "aaaaaaa" + + // Level 1 + /* z\x* 0123456 */ + /* 0 */ "mc...cm" + /* 1 */ "defgfeh" + /* 2 */ ".f...f." + /* 3 */ ".f...f." + /* 4 */ ".f...f." + /* 5 */ "defffeh" + /* 6 */ "mi...im" + + // 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" + + // Level 3 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ "..lfl.." + /* 2 */ ".n...o." + /* 3 */ ".f...f." + /* 4 */ ".n.p.o." + /* 5 */ "..qfq.." + /* 6 */ "......." + + // Level 4 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ "..frf.." + /* 2 */ ".f...f." + /* 3 */ ".r...r." + /* 4 */ ".f...f." + /* 5 */ "..frf.." + /* 6 */ "......." + + // Level 5 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ "..frf.." + /* 2 */ ".f...f." + /* 3 */ ".r...r." + /* 4 */ ".f...f." + /* 5 */ "..frf.." + /* 6 */ "......." + + // Level 6 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ "..frf.." + /* 2 */ ".f...f." + /* 3 */ ".r...r." + /* 4 */ ".f...f." + /* 5 */ "..frf.." + /* 6 */ "......." + + // Level 7 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ "..cfc.." + /* 2 */ ".d...h." + /* 3 */ ".f...f." + /* 4 */ ".d...h." + /* 5 */ "..ifi.." + /* 6 */ "......." + + // Level 8 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ ".ffsff." + /* 2 */ ".f...f." + /* 3 */ ".s...s." + /* 4 */ ".f...f." + /* 5 */ ".ffsff." + /* 6 */ "......." + + // Level 9 + /* z\x* 0123456 */ + /* 0 */ "...l..." + /* 1 */ ".efffe." + /* 2 */ ".ftttf." + /* 3 */ "nftftfo" + /* 4 */ ".ftttf." + /* 5 */ ".efffe." + /* 6 */ "...q..." + + // Level 10 + /* z\x* 0123456 */ + /* 0 */ "...t..." + /* 1 */ ".t...t." + /* 2 */ "......." + /* 3 */ "t..u..t" + /* 4 */ "......." + /* 5 */ ".t...t." + /* 6 */ "...t...", + + // Connectors: + "-1: 3, 1, 0: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + true, + }, // LargeTower + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // 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 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 4, 4, 6, // 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 */ + "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 */, + + // Block data: + // Level 0 + /* z\x* 01234 */ + /* 0 */ "aaaaa" + /* 1 */ "aaaaa" + /* 2 */ "aabaa" + /* 3 */ "abbba" + /* 4 */ "abbba" + /* 5 */ "abbba" + /* 6 */ "aaaaa" + + // Level 1 + /* z\x* 01234 */ + /* 0 */ "c...c" + /* 1 */ "....." + /* 2 */ "cdedc" + /* 3 */ "d...d" + /* 4 */ "d...d" + /* 5 */ "df.gd" + /* 6 */ "cdddc" + + // Level 2 + /* z\x* 01234 */ + /* 0 */ "c...c" + /* 1 */ "....." + /* 2 */ "cdhdc" + /* 3 */ "d...d" + /* 4 */ "i...i" + /* 5 */ "dj.gd" + /* 6 */ "cdidc" + + // Level 3 + /* z\x* 01234 */ + /* 0 */ "k...k" + /* 1 */ "d...d" + /* 2 */ "cdddc" + /* 3 */ "dllld" + /* 4 */ "nlllo" + /* 5 */ "dllgd" + /* 6 */ "cdpdc" + + // Level 4 + /* z\x* 01234 */ + /* 0 */ "....." + /* 1 */ "....." + /* 2 */ "dqdqd" + /* 3 */ "q...q" + /* 4 */ "d...d" + /* 5 */ "q..rq" + /* 6 */ "dqdqd", + + // Connectors: + "-1: 2, 1, 0: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + true, + }, // LittleHouse + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // 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 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 6, 4, 10, // 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 */ + "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 */, + + // Block data: + // Level 0 + /* z\x* 0123456 */ + /* 0 */ "aaaaaaa" + /* 1 */ "aaaaaaa" + /* 2 */ "aaaabaa" + /* 3 */ "abbbbba" + /* 4 */ "abbbbba" + /* 5 */ "abbbbba" + /* 6 */ "aaaaaaa" + /* 7 */ "aaaaaaa" + /* 8 */ "aaaaaaa" + /* 9 */ "aaaaaaa" + /* 10 */ "aaaaaaa" + + // 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" + + // Level 2 + /* z\x* 0123456 */ + /* 0 */ ".c...c." + /* 1 */ "......." + /* 2 */ "cdhdidc" + /* 3 */ "d..j..d" + /* 4 */ "h.....h" + /* 5 */ "df....d" + /* 6 */ "cd.dhdc" + /* 7 */ "......." + /* 8 */ "......." + /* 9 */ "......." + /* 10 */ "......." + + // Level 3 + /* z\x* 0123456 */ + /* 0 */ ".k...k." + /* 1 */ ".d...d." + /* 2 */ "cdldddc" + /* 3 */ "dnnnnnd" + /* 4 */ "onnnnnp" + /* 5 */ "dfnnnnd" + /* 6 */ "cdddqdc" + /* 7 */ "......." + /* 8 */ "......." + /* 9 */ "......." + /* 10 */ "......." + + // Level 4 + /* z\x* 0123456 */ + /* 0 */ "......." + /* 1 */ "......." + /* 2 */ "drrdrrd" + /* 3 */ "r.....r" + /* 4 */ "d.....d" + /* 5 */ "rs....r" + /* 6 */ "drrdrrd" + /* 7 */ "......." + /* 8 */ "......." + /* 9 */ "......." + /* 10 */ ".......", + + // Connectors: + "-1: 3, 1, 0: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + true, + }, // LittleHouse2 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // 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 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 8, 4, 6, // 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 */ + "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 */, + + // Block data: + // Level 0 + /* z\x* 012345678 */ + /* 0 */ "aaaaaaaaa" + /* 1 */ "aaaaaaaaa" + /* 2 */ "aaaabaaaa" + /* 3 */ "abbbbbbba" + /* 4 */ "abbbbbbba" + /* 5 */ "abbbbbbba" + /* 6 */ "aaaaaaaaa" + + // Level 1 + /* z\x* 012345678 */ + /* 0 */ "..c...c.." + /* 1 */ "........." + /* 2 */ "cdddedddc" + /* 3 */ "d.......d" + /* 4 */ "d.......d" + /* 5 */ "d......fd" + /* 6 */ "cdddddddc" + + // Level 2 + /* z\x* 012345678 */ + /* 0 */ "..c...c.." + /* 1 */ "........." + /* 2 */ "cdddgdddc" + /* 3 */ "d.......d" + /* 4 */ "h.......h" + /* 5 */ "d.i....fd" + /* 6 */ "cddhhhddc" + + // Level 3 + /* z\x* 012345678 */ + /* 0 */ "..j...j.." + /* 1 */ "..d...d.." + /* 2 */ "cdddddddc" + /* 3 */ "dkkkkkkkd" + /* 4 */ "lkkkkkkkn" + /* 5 */ "dkkkkkkfd" + /* 6 */ "cddoooddc" + + // Level 4 + /* z\x* 012345678 */ + /* 0 */ "........." + /* 1 */ "........." + /* 2 */ "dpppdpppd" + /* 3 */ "p.......p" + /* 4 */ "d.......d" + /* 5 */ "p......qp" + /* 6 */ "dpppdpppd", + + // Connectors: + "-1: 4, 1, 0: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + true, + }, // LittleHouse3 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // 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 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 4, 4, 10, // 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: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 */ + "m: 19: 0\n" /* sponge */ + "n: 64: 8\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: 5\n" /* sandstonestairs */ + "u:128: 7\n" /* sandstonestairs */ + "v: 44: 1\n" /* step */ + "w: 96: 7\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" + + // 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" + + // Level 2 + /* z\x* 01234 */ + /* 0 */ "c...c" + /* 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" + + // Level 3 + /* z\x* 01234 */ + /* 0 */ "r...r" + /* 1 */ "d...d" + /* 2 */ "cdddc" + /* 3 */ "dfssd" + /* 4 */ "dsssd" + /* 5 */ "tssst" + /* 6 */ "tssst" + /* 7 */ "tssst" + /* 8 */ "dsssd" + /* 9 */ "dsssd" + /* 10 */ "cdudc" + + // Level 4 + /* z\x* 01234 */ + /* 0 */ "....." + /* 1 */ "....." + /* 2 */ "dvdvd" + /* 3 */ "vw..v" + /* 4 */ "v...v" + /* 5 */ "v...v" + /* 6 */ "d...d" + /* 7 */ "v...v" + /* 8 */ "v...v" + /* 9 */ "v...v" + /* 10 */ "dvdvd", + + // Connectors: + "-1: 2, 1, 0: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + true, + }, // LittleHouse4 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // 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 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 8, 4, 8, // 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 */ + "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 */, + + // 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" + + // 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" + + // Level 2 + /* z\x* 012345678 */ + /* 0 */ "mmmmc...c" + /* 1 */ "mmmm....." + /* 2 */ "mmmmcdgdc" + /* 3 */ "mmmmd...d" + /* 4 */ "cdhdd...h" + /* 5 */ "d.......h" + /* 6 */ "h.......d" + /* 7 */ "di....jfd" + /* 8 */ "cddhhhddc" + + // 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" + + // Level 4 + /* 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", + + // Connectors: + "-1: 6, 1, 0: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + true, + }, // LittleHouse5 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // 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 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 8, 4, 8, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "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 */ + "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 */, + + // 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" + + // 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" + + // 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" + + // 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" + + // Level 4 + /* z\x* 012345678 */ + /* 0 */ "........." + /* 1 */ "........." + /* 2 */ "....ewfwf" + /* 3 */ "....w...w" + /* 4 */ "fwwwf...f" + /* 5 */ "w.......w" + /* 6 */ "w.......w" + /* 7 */ "w......xw" + /* 8 */ "fwwwfwwwf", + + // Connectors: + "-1: 6, 1, 0: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + true, + }, // LittleHouse6 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // 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 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 8, 4, 10, // 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 */ + "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 */, + + // 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" + + // 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" + + // 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" + + // 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" + + // 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", + + // Connectors: + "-1: 6, 1, 0: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + true, + }, // LittleHouse7 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // LittleTower: + // The data has been exported from the gallery Desert, area index 79, ID 595, created by STR_Warrior + { + // Size: + 5, 8, 7, // SizeX = 5, SizeY = 8, SizeZ = 7 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 4, 7, 6, // 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 */ + "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 */ + "m: 19: 0\n" /* sponge */ + "n:128: 5\n" /* sandstonestairs */ + "o:128: 7\n" /* sandstonestairs */ + "p:128: 6\n" /* sandstonestairs */ + "q: 44: 1\n" /* step */ + "r: 96: 5\n" /* trapdoor */, + + // Block data: + // Level 0 + /* z\x* 01234 */ + /* 0 */ "aaaaa" + /* 1 */ "aaaaa" + /* 2 */ "aabaa" + /* 3 */ "abbba" + /* 4 */ "abbba" + /* 5 */ "abbba" + /* 6 */ "aaaaa" + + // Level 1 + /* z\x* 01234 */ + /* 0 */ "c...c" + /* 1 */ "....." + /* 2 */ "cdedc" + /* 3 */ "df..d" + /* 4 */ "d...d" + /* 5 */ "d...d" + /* 6 */ "cdddc" + + // Level 2 + /* z\x* 01234 */ + /* 0 */ "c...c" + /* 1 */ "....." + /* 2 */ "cdgdc" + /* 3 */ "df..d" + /* 4 */ "h...h" + /* 5 */ "d..id" + /* 6 */ "cdhdc" + + // Level 3 + /* z\x* 01234 */ + /* 0 */ "j...j" + /* 1 */ "d...d" + /* 2 */ "cdddc" + /* 3 */ "dfkkd" + /* 4 */ "lkkkn" + /* 5 */ "dkkkd" + /* 6 */ "cdodc" + + // Level 4 + /* z\x* 01234 */ + /* 0 */ "....." + /* 1 */ "....." + /* 2 */ "cdddc" + /* 3 */ "df..d" + /* 4 */ "d...d" + /* 5 */ "d...d" + /* 6 */ "cdddc" + + // Level 5 + /* z\x* 01234 */ + /* 0 */ "....." + /* 1 */ "....." + /* 2 */ "cdhdc" + /* 3 */ "df..d" + /* 4 */ "h...h" + /* 5 */ "d..id" + /* 6 */ "cdhdc" + + // Level 6 + /* z\x* 01234 */ + /* 0 */ "....." + /* 1 */ "....." + /* 2 */ "cdpdc" + /* 3 */ "dfkkd" + /* 4 */ "lkkkn" + /* 5 */ "dkkkd" + /* 6 */ "cdodc" + + // Level 7 + /* z\x* 01234 */ + /* 0 */ "....." + /* 1 */ "....." + /* 2 */ "dqdqd" + /* 3 */ "qr..q" + /* 4 */ "d...d" + /* 5 */ "q...q" + /* 6 */ "dqdqd", + + // Connectors: + "-1: 2, 1, 0: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + true, + }, // LittleTower + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // 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 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 14, 7, 8, // 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 */ + "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 */, + + // 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" + + // 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" + + // 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...." + + // 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...." + + // 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...." + + // Level 5 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ "..............." + /* 2 */ "..............." + /* 3 */ "...cdjdc......." + /* 4 */ "...dr..d......." + /* 5 */ "..............." + /* 6 */ "...d...d......." + /* 7 */ "...cdjdc......." + /* 8 */ "..............." + + // Level 6 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ "..............." + /* 2 */ "..............." + /* 3 */ "...cdddc......." + /* 4 */ "...dnnnd......." + /* 5 */ "...dnnnd......." + /* 6 */ "...dnnnd......." + /* 7 */ "...cdddc......." + /* 8 */ "..............." + + // Level 7 + /* z\x* 11111 */ + /* * 012345678901234 */ + /* 0 */ "..............." + /* 1 */ "..............." + /* 2 */ "..............." + /* 3 */ "...dqdqd......." + /* 4 */ "...q...q......." + /* 5 */ "...d...d......." + /* 6 */ "...q...q......." + /* 7 */ "...dqdqd......." + /* 8 */ "...............", + + // Connectors: + "-1: 5, 1, 0: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + true, + }, // MediumHouse1 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // 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 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 10, 8, 8, // 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 */ + "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 */, + + // 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" + + // 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" + + // 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" + + // Level 3 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "cdudc......" + /* 1 */ "devvw......" + /* 2 */ "dvvvw......" + /* 3 */ "xvvvd......" + /* 4 */ "xvvvddudddc" + /* 5 */ "xvvvvvvvvvd" + /* 6 */ "dvvvvvvvvvw" + /* 7 */ "dvvvqqqvvnd" + /* 8 */ "cdddyyydddc" + + // 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" + + // Level 5 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "..........." + /* 3 */ "..........." + /* 4 */ "..........." + /* 5 */ ".cCc......." + /* 6 */ ".DEF......." + /* 7 */ ".cGc......." + /* 8 */ "..........." + + // Level 6 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "..........." + /* 3 */ "..........." + /* 4 */ "..........." + /* 5 */ ".c.c......." + /* 6 */ "..H........" + /* 7 */ ".c.c......." + /* 8 */ "..........." + + // Level 7 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "..........." + /* 3 */ "..........." + /* 4 */ "..........." + /* 5 */ ".ddd......." + /* 6 */ ".dId......." + /* 7 */ ".ddd......." + /* 8 */ "..........." + + // Level 8 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "..........." + /* 3 */ "..........." + /* 4 */ "..........." + /* 5 */ ".z.z......." + /* 6 */ "..........." + /* 7 */ ".z.z......." + /* 8 */ "...........", + + // Connectors: + "-1: 8, 1, 0: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + true, + }, // MediumHouse2 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // MediumHouse3: + // The data has been exported from the gallery Desert, area index 76, ID 575, created by STR_Warrior + { + // Size: + 12, 10, 11, // SizeX = 12, SizeY = 10, SizeZ = 11 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 11, 9, 10, // MaxX, MaxY, MaxZ + + // 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 */ + "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 */ + "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: 6\n" /* trapdoor */ + "y:126: 0\n" /* woodenslab */ + "z:128: 4\n" /* sandstonestairs */, + + // Block data: + // 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" + + // 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" + + // 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" + + // 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" + + // 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" + + // Level 5 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ "............" + /* 2 */ ".....ewwewwe" + /* 3 */ ".....w.....w" + /* 4 */ ".....w.....w" + /* 5 */ ".....w.....e" + /* 6 */ "...geeeg...w" + /* 7 */ "mmme...e..xw" + /* 8 */ "mmme...ewwwe" + /* 9 */ "mmme..kemmmm" + /* 10 */ "mmmgeeegmmmm" + + // Level 6 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ "............" + /* 2 */ "............" + /* 3 */ "............" + /* 4 */ "............" + /* 5 */ "............" + /* 6 */ "...ge.eg...." + /* 7 */ "mmme...e...." + /* 8 */ "mmmo........" + /* 9 */ "mmme..kemmmm" + /* 10 */ "mmmgeoegmmmm" + + // Level 7 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ "............" + /* 2 */ "............" + /* 3 */ "............" + /* 4 */ "............" + /* 5 */ "............" + /* 6 */ "...ge.eg...." + /* 7 */ "mmme...e...." + /* 8 */ "mmmo........" + /* 9 */ "mmmel.kemmmm" + /* 10 */ "mmmgeoegmmmm" + + // Level 8 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ "............" + /* 2 */ "............" + /* 3 */ "............" + /* 4 */ "............" + /* 5 */ "............" + /* 6 */ "...fesef...." + /* 7 */ "mmmeyyye...." + /* 8 */ "mmmzyyyu...." + /* 9 */ "mmmeyykemmmm" + /* 10 */ "mmmfevefmmmm" + + // Level 9 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" + /* 1 */ "............" + /* 2 */ "............" + /* 3 */ "............" + /* 4 */ "............" + /* 5 */ "............" + /* 6 */ "...w.w.w...." + /* 7 */ "mmm........." + /* 8 */ "mmmw...w...." + /* 9 */ "mmm.....mmmm" + /* 10 */ "mmmw.w.wmmmm", + + // Connectors: + "-1: 9, 2, 0: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + true, + }, // MediumHouse3 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // SmallHouse9: + // The data has been exported from the gallery Desert, area index 67, ID 556, created by STR_Warrior + { + // Size: + 9, 5, 11, // SizeX = 9, SizeY = 5, SizeZ = 11 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 8, 4, 10, // 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 */ + "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 */, + + // 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" + + // 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" + + // Level 2 + /* z\x* 012345678 */ + /* 0 */ "mmmmc...c" + /* 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" + + // 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" + + // Level 4 + /* z\x* 012345678 */ + /* 0 */ "mmmm....." + /* 1 */ "mmmm....." + /* 2 */ "mmmmcrdrd" + /* 3 */ "mmmmr...r" + /* 4 */ "mmmmr...r" + /* 5 */ "mmmmr...r" + /* 6 */ "drrrd...d" + /* 7 */ "r.......r" + /* 8 */ "r.......r" + /* 9 */ "r......sr" + /* 10 */ "drrrdrrrd", + + // Connectors: + "-1: 6, 1, 0: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + true, + }, // SmallHouse9 +}; // 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 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 4, 20, 4, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 1: 0\n" /* stone */ + "b: 24: 0\n" /* sandstone */ + "c: 8: 0\n" /* water */ + "d: 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 */, + + // Block data: + // Level 0 + /* z\x* 01234 */ + /* 0 */ "aaaaa" + /* 1 */ "aaaaa" + /* 2 */ "aaaaa" + /* 3 */ "aaaaa" + /* 4 */ "aaaaa" + + // Level 1 + /* z\x* 01234 */ + /* 0 */ "bbbbb" + /* 1 */ "bcccb" + /* 2 */ "bcccb" + /* 3 */ "bcccb" + /* 4 */ "bbbbb" + + // Level 2 + /* z\x* 01234 */ + /* 0 */ "bbbbb" + /* 1 */ "bcccb" + /* 2 */ "bcccb" + /* 3 */ "bcccb" + /* 4 */ "bbbbb" + + // Level 3 + /* z\x* 01234 */ + /* 0 */ "bbbbb" + /* 1 */ "bcccb" + /* 2 */ "bcccb" + /* 3 */ "bcccb" + /* 4 */ "bbbbb" + + // Level 4 + /* z\x* 01234 */ + /* 0 */ "bbbbb" + /* 1 */ "bcccb" + /* 2 */ "bcccb" + /* 3 */ "bcccb" + /* 4 */ "bbbbb" + + // Level 5 + /* z\x* 01234 */ + /* 0 */ "bbbbb" + /* 1 */ "bcccb" + /* 2 */ "bcccb" + /* 3 */ "bcccb" + /* 4 */ "bbbbb" + + // Level 6 + /* z\x* 01234 */ + /* 0 */ "bbbbb" + /* 1 */ "bcccb" + /* 2 */ "bcccb" + /* 3 */ "bcccb" + /* 4 */ "bbbbb" + + // Level 7 + /* z\x* 01234 */ + /* 0 */ "bbbbb" + /* 1 */ "bcccb" + /* 2 */ "bcccb" + /* 3 */ "bcccb" + /* 4 */ "bbbbb" + + // Level 8 + /* z\x* 01234 */ + /* 0 */ "bbbbb" + /* 1 */ "bcccb" + /* 2 */ "bcccb" + /* 3 */ "bcccb" + /* 4 */ "bbbbb" + + // Level 9 + /* z\x* 01234 */ + /* 0 */ "bbbbb" + /* 1 */ "bcccb" + /* 2 */ "bcccb" + /* 3 */ "bcccb" + /* 4 */ "bbbbb" + + // Level 10 + /* z\x* 01234 */ + /* 0 */ "bbbbb" + /* 1 */ "bcccb" + /* 2 */ "bcccb" + /* 3 */ "bcccb" + /* 4 */ "bbbbb" + + // Level 11 + /* z\x* 01234 */ + /* 0 */ "bbbbb" + /* 1 */ "bcccb" + /* 2 */ "bcccb" + /* 3 */ "bcccb" + /* 4 */ "bbbbb" + + // Level 12 + /* z\x* 01234 */ + /* 0 */ "bbbbb" + /* 1 */ "bcccb" + /* 2 */ "bcccb" + /* 3 */ "bcccb" + /* 4 */ "bbbbb" + + // Level 13 + /* z\x* 01234 */ + /* 0 */ "bbbbb" + /* 1 */ "bcccb" + /* 2 */ "bcccb" + /* 3 */ "bcccb" + /* 4 */ "bbbbb" + + // Level 14 + /* z\x* 01234 */ + /* 0 */ "bbbbb" + /* 1 */ "bcccb" + /* 2 */ "bcccb" + /* 3 */ "bcccb" + /* 4 */ "bbbbb" + + // Level 15 + /* z\x* 01234 */ + /* 0 */ "bbbbb" + /* 1 */ "bcccb" + /* 2 */ "bcccb" + /* 3 */ "bcccb" + /* 4 */ "bbbbb" + + // Level 16 + /* z\x* 01234 */ + /* 0 */ "defgd" + /* 1 */ "h...h" + /* 2 */ "f...f" + /* 3 */ "i...i" + /* 4 */ "defgd" + + // Level 17 + /* z\x* 01234 */ + /* 0 */ "d...d" + /* 1 */ "....." + /* 2 */ "....." + /* 3 */ "....." + /* 4 */ "d...d" + + // Level 18 + /* z\x* 01234 */ + /* 0 */ "djjjd" + /* 1 */ "j...j" + /* 2 */ "j...j" + /* 3 */ "j...j" + /* 4 */ "djjjd" + + // Level 19 + /* z\x* 01234 */ + /* 0 */ "bbbbb" + /* 1 */ "bkkkb" + /* 2 */ "bkkkb" + /* 3 */ "bkkkb" + /* 4 */ "bbbbb" + + // Level 20 + /* z\x* 01234 */ + /* 0 */ "f.f.f" + /* 1 */ "....." + /* 2 */ "f...f" + /* 3 */ "....." + /* 4 */ "f.f.f", + + // 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+ */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + true, + }, // Well +}; + + + + + +// The prefab counts: + +const size_t g_AlchemistVillagePrefabsCount = ARRAYCOUNT(g_AlchemistVillagePrefabs); + +const size_t g_AlchemistVillageStartingPrefabsCount = ARRAYCOUNT(g_AlchemistVillageStartingPrefabs); + diff --git a/src/Generating/Prefabs/AlchemistVillagePrefabs.h b/src/Generating/Prefabs/AlchemistVillagePrefabs.h new file mode 100644 index 000000000..dddc5530a --- /dev/null +++ b/src/Generating/Prefabs/AlchemistVillagePrefabs.h @@ -0,0 +1,15 @@ + +// AlchemistVillagePrefabs.h + +// Declares the prefabs in the group AlchemistVillage + +#include "../Prefab.h" + + + + + +extern const cPrefab::sDef g_AlchemistVillagePrefabs[]; +extern const cPrefab::sDef g_AlchemistVillageStartingPrefabs[]; +extern const size_t g_AlchemistVillagePrefabsCount; +extern const size_t g_AlchemistVillageStartingPrefabsCount; diff --git a/src/Generating/VillageGen.cpp b/src/Generating/VillageGen.cpp index cb1f4fe0d..dfcdf6ef7 100644 --- a/src/Generating/VillageGen.cpp +++ b/src/Generating/VillageGen.cpp @@ -5,6 +5,7 @@ #include "Globals.h" #include "VillageGen.h" +#include "Prefabs/AlchemistVillagePrefabs.h" #include "Prefabs/JapaneseVillagePrefabs.h" #include "Prefabs/PlainsVillagePrefabs.h" #include "Prefabs/SandVillagePrefabs.h" @@ -274,6 +275,12 @@ protected: } + virtual int GetStartingPieceWeight(const cPiece & a_NewPiece) override + { + return m_Prefabs.GetStartingPieceWeight(a_NewPiece); + } + + virtual void PiecePlaced(const cPiece & a_Piece) override { m_Prefabs.PiecePlaced(a_Piece); @@ -311,18 +318,25 @@ protected: /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // cVillageGen: -/** The prefabs for the sand village. */ static cVillagePiecePool g_SandVillage(g_SandVillagePrefabs, g_SandVillagePrefabsCount, g_SandVillageStartingPrefabs, g_SandVillageStartingPrefabsCount); - -/** The prefabs for the flat-roofed sand village. */ static cVillagePiecePool g_SandFlatRoofVillage(g_SandFlatRoofVillagePrefabs, g_SandFlatRoofVillagePrefabsCount, g_SandFlatRoofVillageStartingPrefabs, g_SandFlatRoofVillageStartingPrefabsCount); - -/** The prefabs for the plains village. */ +static cVillagePiecePool g_AlchemistVillage(g_AlchemistVillagePrefabs, g_AlchemistVillagePrefabsCount, g_AlchemistVillageStartingPrefabs, g_AlchemistVillageStartingPrefabsCount); static cVillagePiecePool g_PlainsVillage(g_PlainsVillagePrefabs, g_PlainsVillagePrefabsCount, g_PlainsVillageStartingPrefabs, g_PlainsVillageStartingPrefabsCount); - -/** The prefabs for the Japanese village. */ static cVillagePiecePool g_JapaneseVillage(g_JapaneseVillagePrefabs, g_JapaneseVillagePrefabsCount, g_JapaneseVillageStartingPrefabs, g_JapaneseVillageStartingPrefabsCount); +static cVillagePiecePool * g_DesertVillagePools[] = +{ + &g_SandVillage, + &g_SandFlatRoofVillage, + &g_AlchemistVillage, +} ; + +static cVillagePiecePool * g_PlainsVillagePools[] = +{ + &g_PlainsVillage, + &g_JapaneseVillage, +} ; + @@ -356,8 +370,8 @@ cGridStructGen::cStructurePtr cVillageGen::CreateStructure(int a_OriginX, int a_ cVillagePiecePool * VillagePrefabs = NULL; BLOCKTYPE RoadBlock = E_BLOCK_GRAVEL; int rnd = m_Noise.IntNoise2DInt(a_OriginX, a_OriginZ) / 11; - cVillagePiecePool * PlainsVillage = (rnd % 2 == 0) ? &g_PlainsVillage : &g_JapaneseVillage; - cVillagePiecePool * DesertVillage = (rnd % 2 == 0) ? &g_SandVillage : &g_SandFlatRoofVillage; + cVillagePiecePool * PlainsVillage = g_PlainsVillagePools[rnd % ARRAYCOUNT(g_PlainsVillagePools)]; + cVillagePiecePool * DesertVillage = g_DesertVillagePools[rnd % ARRAYCOUNT(g_DesertVillagePools)]; for (size_t i = 0; i < ARRAYCOUNT(Biomes); i++) { switch (Biomes[i]) -- cgit v1.2.3 From d29b242674fbf89035c8908753496522edf8eaee Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Wed, 28 May 2014 16:33:10 +0200 Subject: Fixed a memory leak in cPrefabPiecePool. The pool pieces weren't freed upon pool destruction. --- src/Generating/PrefabPiecePool.cpp | 28 ++++++++++++++++++++++++++++ src/Generating/PrefabPiecePool.h | 7 ++++++- 2 files changed, 34 insertions(+), 1 deletion(-) (limited to 'src/Generating') diff --git a/src/Generating/PrefabPiecePool.cpp b/src/Generating/PrefabPiecePool.cpp index ed9340815..145474bcc 100644 --- a/src/Generating/PrefabPiecePool.cpp +++ b/src/Generating/PrefabPiecePool.cpp @@ -26,6 +26,34 @@ cPrefabPiecePool::cPrefabPiecePool( +cPrefabPiecePool::~cPrefabPiecePool() +{ + Clear(); +} + + + + + +void cPrefabPiecePool::Clear(void) +{ + m_PiecesByConnector.clear(); + for (cPieces::iterator itr = m_AllPieces.begin(), end = m_AllPieces.end(); itr != end; ++itr) + { + delete *itr; + } + m_AllPieces.clear(); + for (cPieces::iterator itr = m_StartingPieces.begin(), end = m_StartingPieces.end(); itr != end; ++itr) + { + delete *itr; + } + m_StartingPieces.clear(); +} + + + + + void cPrefabPiecePool::AddPieceDefs(const cPrefab::sDef * a_PieceDefs, size_t a_NumPieceDefs) { ASSERT(a_PieceDefs != NULL); diff --git a/src/Generating/PrefabPiecePool.h b/src/Generating/PrefabPiecePool.h index c6a5ad360..50ae63c0c 100644 --- a/src/Generating/PrefabPiecePool.h +++ b/src/Generating/PrefabPiecePool.h @@ -34,6 +34,12 @@ public: const cPrefab::sDef * a_StartingPieceDefs, size_t a_NumStartingPieceDefs ); + /** Destroys the pool, freeing all pieces. */ + ~cPrefabPiecePool(); + + /** Removes and frees all pieces from this pool. */ + void Clear(void); + /** Adds pieces from the specified definitions into m_AllPieces. Also adds the pieces into the m_PiecesByConnector map. May be called multiple times with different PieceDefs, will add all such pieces. */ @@ -44,7 +50,6 @@ public: May be called multiple times with different PieceDefs, will add all such pieces. */ void AddStartingPieceDefs(const cPrefab::sDef * a_StartingPieceDefs, size_t a_NumStartingPieceDefs); - protected: /** The type used to map a connector type to the list of pieces with that connector */ -- cgit v1.2.3 From e5187aa645b0f06e58e347bed1f8d68916764ba1 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Thu, 29 May 2014 09:19:20 +0200 Subject: Fixed a memory leak in cPOCPieceGenerator --- src/Generating/POCPieceGenerator.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/Generating') diff --git a/src/Generating/POCPieceGenerator.cpp b/src/Generating/POCPieceGenerator.cpp index 9ed4b565e..491f4d206 100644 --- a/src/Generating/POCPieceGenerator.cpp +++ b/src/Generating/POCPieceGenerator.cpp @@ -186,6 +186,11 @@ cPOCPieceGenerator::cPOCPieceGenerator(int a_Seed) : cPOCPieceGenerator::~cPOCPieceGenerator() { cPieceGenerator::FreePieces(m_Pieces); + for (cPieces::iterator itr = m_AvailPieces.begin(), end = m_AvailPieces.end(); itr != end; ++itr) + { + delete *itr; + } + m_AvailPieces.clear(); } -- cgit v1.2.3 From 8bf7aed67cb59edd72662114244da5c1cf5f2140 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Fri, 30 May 2014 22:40:19 +0200 Subject: Updated PlainsVillage and AlchemistVillage. --- src/Generating/Prefabs/AlchemistVillagePrefabs.cpp | 603 +++++++++----- src/Generating/Prefabs/PlainsVillagePrefabs.cpp | 906 ++++++++++++++++++++- 2 files changed, 1270 insertions(+), 239 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp b/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp index 32ffe5b88..6e3f82212 100644 --- a/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp +++ b/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp @@ -20,24 +20,25 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = // The data has been exported from the gallery Desert, area index 82, ID 598, created by STR_Warrior { // Size: - 11, 12, 9, // SizeX = 11, SizeY = 12, SizeZ = 9 + 11, 12, 10, // SizeX = 11, SizeY = 12, SizeZ = 10 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 10, 11, 8, // MaxX, MaxY, MaxZ + 10, 11, 9, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "A:101: 0\n" /* ironbars */ - "B: 64:12\n" /* wooddoorblock */ - "C:128: 2\n" /* sandstonestairs */ - "D: 24: 1\n" /* sandstone */ - "E: 44: 9\n" /* step */ - "F:126: 8\n" /* woodenslab */ - "G:128: 7\n" /* sandstonestairs */ - "H: 44: 1\n" /* step */ - "I: 64: 7\n" /* wooddoorblock */ - "J:128: 6\n" /* sandstonestairs */ + "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 */ @@ -62,8 +63,8 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = "v:134: 7\n" /* 134 */ "w:107: 5\n" /* fencegate */ "x: 64: 5\n" /* wooddoorblock */ - "y: 50: 3\n" /* torch */ - "z:171: 8\n" /* carpet */, + "y: 65: 3\n" /* ladder */ + "z: 50: 3\n" /* torch */, // Block data: // Level 0 @@ -78,6 +79,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 6 */ "aabbbbbbbaa" /* 7 */ "aabbbbbbbaa" /* 8 */ "aaaaaaaaaaa" + /* 9 */ "aaaaaaaaaaa" // Level 1 /* z\x* 1 */ @@ -91,6 +93,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 6 */ "cb.......bc" /* 7 */ "cbg......bc" /* 8 */ "cbbbbbbbbbc" + /* 9 */ "ccccccccccc" // Level 2 /* z\x* 1 */ @@ -104,6 +107,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 6 */ "cb.......bc" /* 7 */ "cbg......bc" /* 8 */ "cbbbbbbbbbc" + /* 9 */ "ccccccccccc" // Level 3 /* z\x* 1 */ @@ -117,6 +121,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 6 */ "cb.......bc" /* 7 */ "cbg..l...bc" /* 8 */ "cbbbbbbbbbc" + /* 9 */ "ccccccccccc" // Level 4 /* z\x* 1 */ @@ -130,6 +135,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 6 */ "cnnnnnnnnnc" /* 7 */ "cnonnnnnnnc" /* 8 */ "cnccccccccc" + /* 9 */ "ccccccccccc" // Level 5 /* z\x* 1 */ @@ -143,6 +149,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 6 */ "bfvvd.....b" /* 7 */ "b...w..kujb" /* 8 */ "pxbbbbbbbbp" + /* 9 */ "..y........" // Level 6 /* z\x* 1 */ @@ -150,38 +157,41 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 0 */ "...p...p..." /* 1 */ "..........." /* 2 */ "pbbb...bbbp" - /* 3 */ "b..y...y..b" - /* 4 */ "b.z.....z.b" - /* 5 */ "A.........A" + /* 3 */ "b..z...z..b" + /* 4 */ "b.A.....A.b" + /* 5 */ "B.........B" /* 6 */ "b.........b" - /* 7 */ "b.......z.b" - /* 8 */ "pBbbAAAbbbp" + /* 7 */ "b.......A.b" + /* 8 */ "pCbbBBBbbbp" + /* 9 */ "..y........" // Level 7 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "...C...C..." - /* 1 */ "...D...b..." - /* 2 */ "pbbbqEsbbbp" - /* 3 */ "bFFFFFFFFFb" - /* 4 */ "bFFFFFFFFFb" - /* 5 */ "sFFFFFFFFFq" - /* 6 */ "bFFFFFFFFFb" - /* 7 */ "bFFFFFFFFFb" - /* 8 */ "pbbbGGGbbbp" + /* 0 */ "...D...D..." + /* 1 */ "...E...b..." + /* 2 */ "pbbbqFsbbbp" + /* 3 */ "bGGGGGGGGGb" + /* 4 */ "bGGGGGGGGGb" + /* 5 */ "sGGGGGGGGGq" + /* 6 */ "bGGGGGGGGGb" + /* 7 */ "bGGGGGGGGGb" + /* 8 */ "pbbbHHHbbbp" + /* 9 */ "..y........" // Level 8 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "..........." /* 1 */ "..........." - /* 2 */ "bHHHHbHHHHb" - /* 3 */ "HpbbbbbbbpH" - /* 4 */ "Hb.......bH" + /* 2 */ "bIIIIbIIIIb" + /* 3 */ "IpbbbbbbbpI" + /* 4 */ "Ib.......bI" /* 5 */ "bb.......bb" - /* 6 */ "Hb.......bH" - /* 7 */ "HpIbbbbbbpH" - /* 8 */ "bH.HHbHHHHb" + /* 6 */ "Ib.......bI" + /* 7 */ "IpJbbbbbbpI" + /* 8 */ "bI.IIbIIIIb" + /* 9 */ "..........." // Level 9 /* z\x* 1 */ @@ -189,12 +199,13 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 0 */ "..........." /* 1 */ "..........." /* 2 */ "..........." - /* 3 */ ".pbbAAAbbp." + /* 3 */ ".pbbBBBbbp." /* 4 */ ".b.......b." - /* 5 */ ".A.......A." + /* 5 */ ".B.......B." /* 6 */ ".b.......b." - /* 7 */ ".pBbAAAbbp." + /* 7 */ ".pCbBBBbbp." /* 8 */ "..........." + /* 9 */ "..........." // Level 10 /* z\x* 1 */ @@ -202,12 +213,13 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 0 */ "..........." /* 1 */ "..........." /* 2 */ "..........." - /* 3 */ ".pbbJJJbbp." - /* 4 */ ".bFFFFFFFb." - /* 5 */ ".sFFFFFFFq." - /* 6 */ ".bFFFFFFFb." - /* 7 */ ".pbbGGGbbp." + /* 3 */ ".pbbKKKbbp." + /* 4 */ ".bGGGGGGGb." + /* 5 */ ".sGGGGGGGq." + /* 6 */ ".bGGGGGGGb." + /* 7 */ ".pbbHHHbbp." /* 8 */ "..........." + /* 9 */ "..........." // Level 11 /* z\x* 1 */ @@ -215,12 +227,13 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 0 */ "..........." /* 1 */ "..........." /* 2 */ "..........." - /* 3 */ ".bHHHbHHHb." - /* 4 */ ".H.......H." + /* 3 */ ".bIIIbIIIb." + /* 4 */ ".I.......I." /* 5 */ ".b.......b." - /* 6 */ ".H.......H." - /* 7 */ ".bHHHbHHHb." - /* 8 */ "...........", + /* 6 */ ".I.......I." + /* 7 */ ".bIIIbIIIb." + /* 8 */ "..........." + /* 9 */ "...........", // Connectors: "-1: 5, 5, 0: 2\n" /* Type -1, direction Z- */, @@ -235,7 +248,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = true, // DefaultWeight: - 100, + 70, // DepthWeight: "", @@ -254,18 +267,19 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = // The data has been exported from the gallery Desert, area index 81, ID 597, created by STR_Warrior { // Size: - 11, 8, 9, // SizeX = 11, SizeY = 8, SizeZ = 9 + 11, 8, 10, // SizeX = 11, SizeY = 8, SizeZ = 10 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 10, 7, 8, // MaxX, MaxY, MaxZ + 10, 7, 9, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "A: 44: 1\n" /* step */ - "B: 64: 3\n" /* wooddoorblock */ - "C: 64: 8\n" /* wooddoorblock */ - "D:128: 6\n" /* sandstonestairs */ + "A:128: 7\n" /* sandstonestairs */ + "B: 44: 1\n" /* step */ + "C: 64: 3\n" /* wooddoorblock */ + "D: 64: 8\n" /* wooddoorblock */ + "E:128: 6\n" /* sandstonestairs */ "a: 12: 0\n" /* sand */ "b: 5: 0\n" /* wood */ "c: 24: 2\n" /* sandstone */ @@ -283,15 +297,15 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = "o:134: 4\n" /* 134 */ "p:107: 5\n" /* fencegate */ "q: 64: 5\n" /* wooddoorblock */ - "r: 50: 3\n" /* torch */ - "s:171: 8\n" /* carpet */ - "t:101: 0\n" /* ironbars */ - "u: 64:12\n" /* wooddoorblock */ - "v:128: 2\n" /* sandstonestairs */ - "w: 24: 1\n" /* sandstone */ - "x: 44: 9\n" /* step */ - "y:126: 8\n" /* woodenslab */ - "z:128: 7\n" /* sandstonestairs */, + "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 */, // Block data: // Level 0 @@ -306,6 +320,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 6 */ "abbbbbbbbba" /* 7 */ "abbbbbbbbba" /* 8 */ "abaaaaaaaaa" + /* 9 */ "aaaaaaaaaaa" // Level 1 /* z\x* 1 */ @@ -319,6 +334,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 6 */ "dlnno.....d" /* 7 */ "d...p..hjkd" /* 8 */ "cqddddddddc" + /* 9 */ "..r........" // Level 2 /* z\x* 1 */ @@ -326,38 +342,41 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 0 */ "...c...c..." /* 1 */ "..........." /* 2 */ "cddd...dddc" - /* 3 */ "d..r...r..d" - /* 4 */ "d.s.....s.d" - /* 5 */ "t.........t" + /* 3 */ "d..s...s..d" + /* 4 */ "d.t.....t.d" + /* 5 */ "u.........u" /* 6 */ "d.........d" - /* 7 */ "d.......s.d" - /* 8 */ "cuddtttdddc" + /* 7 */ "d.......t.d" + /* 8 */ "cvdduuudddc" + /* 9 */ "..r........" // Level 3 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "...v...v..." - /* 1 */ "...w...d..." - /* 2 */ "cdddexgdddc" - /* 3 */ "dyyyyyyyyyd" - /* 4 */ "dyyyyyyyyyd" - /* 5 */ "gyyyyyyyyye" - /* 6 */ "dyyyyyyyyyd" - /* 7 */ "dyyyyyyyyyd" - /* 8 */ "cdddzzzdddc" + /* 0 */ "...w...w..." + /* 1 */ "...x...d..." + /* 2 */ "cdddeygdddc" + /* 3 */ "dzzzzzzzzzd" + /* 4 */ "dzzzzzzzzzd" + /* 5 */ "gzzzzzzzzze" + /* 6 */ "dzzzzzzzzzd" + /* 7 */ "dzzzzzzzzzd" + /* 8 */ "cdddAAAdddc" + /* 9 */ "..r........" // Level 4 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "..........." /* 1 */ "..........." - /* 2 */ "dAAAAdAAAAd" - /* 3 */ "AcdddddddcA" - /* 4 */ "Ad.......dA" + /* 2 */ "dBBBBdBBBBd" + /* 3 */ "BcdddddddcB" + /* 4 */ "Bd.......dB" /* 5 */ "dd.......dd" - /* 6 */ "Ad.......dA" - /* 7 */ "AcBddddddcA" - /* 8 */ "dA.AAdAAAAd" + /* 6 */ "Bd.......dB" + /* 7 */ "BcCddddddcB" + /* 8 */ "dB.BBdBBBBd" + /* 9 */ "..........." // Level 5 /* z\x* 1 */ @@ -365,12 +384,13 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 0 */ "..........." /* 1 */ "..........." /* 2 */ "..........." - /* 3 */ ".cddtttddc." + /* 3 */ ".cdduuuddc." /* 4 */ ".d.......d." - /* 5 */ ".t.......t." + /* 5 */ ".u.......u." /* 6 */ ".d.......d." - /* 7 */ ".cCdtttddc." + /* 7 */ ".cDduuuddc." /* 8 */ "..........." + /* 9 */ "..........." // Level 6 /* z\x* 1 */ @@ -378,12 +398,13 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 0 */ "..........." /* 1 */ "..........." /* 2 */ "..........." - /* 3 */ ".cddDDDddc." - /* 4 */ ".dyyyyyyyd." - /* 5 */ ".gyyyyyyye." - /* 6 */ ".dyyyyyyyd." - /* 7 */ ".cddzzzddc." + /* 3 */ ".cddEEEddc." + /* 4 */ ".dzzzzzzzd." + /* 5 */ ".gzzzzzzze." + /* 6 */ ".dzzzzzzzd." + /* 7 */ ".cddAAAddc." /* 8 */ "..........." + /* 9 */ "..........." // Level 7 /* z\x* 1 */ @@ -391,12 +412,13 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 0 */ "..........." /* 1 */ "..........." /* 2 */ "..........." - /* 3 */ ".dAAAdAAAd." - /* 4 */ ".A.......A." + /* 3 */ ".dBBBdBBBd." + /* 4 */ ".B.......B." /* 5 */ ".d.......d." - /* 6 */ ".A.......A." - /* 7 */ ".dAAAdAAAd." - /* 8 */ "...........", + /* 6 */ ".B.......B." + /* 7 */ ".dBBBdBBBd." + /* 8 */ "..........." + /* 9 */ "...........", // Connectors: "-1: 5, 1, 0: 2\n" /* Type -1, direction Z- */, @@ -411,7 +433,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = true, // DefaultWeight: - 100, + 80, // DepthWeight: "", @@ -427,7 +449,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // BlackSmith: - // The data has been exported from the gallery Desert, area index 92, ID 633, created by STR_Warrior + // 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 @@ -460,7 +482,8 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = "t:128: 4\n" /* sandstonestairs */ "u:128: 5\n" /* sandstonestairs */ "v:128: 7\n" /* sandstonestairs */ - "w: 44: 1\n" /* step */, + "w: 44: 1\n" /* step */ + "x: 43: 1\n" /* doubleslab */, // Block data: // Level 0 @@ -469,7 +492,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 0 */ "aaaaaaaaaaa" /* 1 */ "aaaaaaaaaaa" /* 2 */ "aaaaaaaabaa" - /* 3 */ "acaaacabbba" + /* 3 */ "acacacabbba" /* 4 */ "acaccaabbba" /* 5 */ "acccccabbba" /* 6 */ "acaadddbbba" @@ -487,9 +510,9 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 1 */ "..........." /* 2 */ "......dcecd" /* 3 */ ".d....c...c" - /* 4 */ "......c...c" - /* 5 */ "...f..c...c" - /* 6 */ ".....dc...c" + /* 4 */ "..f...c...c" + /* 5 */ "......c...c" + /* 6 */ "....ddc...c" /* 7 */ ".gh.dic...c" /* 8 */ "dcccccd...c" /* 9 */ "cj........c" @@ -506,8 +529,8 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 3 */ ".d....c..lc" /* 4 */ "......n...c" /* 5 */ "......c...c" - /* 6 */ "......c...n" - /* 7 */ "......c...n" + /* 6 */ "....nnc...n" + /* 7 */ "....n.c...n" /* 8 */ "dcccccd...n" /* 9 */ "co........c" /* 10 */ "n.........c" @@ -523,8 +546,8 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 3 */ ".drrrrcsssc" /* 4 */ ".rsssstsssc" /* 5 */ ".rsssscsssc" - /* 6 */ ".rsssscsssu" - /* 7 */ ".rsssscsssu" + /* 6 */ ".rssddcsssu" + /* 7 */ ".rssd.csssu" /* 8 */ "dcccccdsssu" /* 9 */ "csssssssssc" /* 10 */ "tsssssssssc" @@ -540,9 +563,9 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 3 */ ".w.w.ww...w" /* 4 */ "......w...w" /* 5 */ ".w....w...w" - /* 6 */ "......w...w" - /* 7 */ ".w....w...c" - /* 8 */ "cwwwwwc...w" + /* 6 */ "....xwx...w" + /* 7 */ ".w..w.w...c" + /* 8 */ "cwwwxwc...w" /* 9 */ "w.........w" /* 10 */ "w.........w" /* 11 */ "w.........w" @@ -561,7 +584,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = true, // DefaultWeight: - 100, + 50, // DepthWeight: "", @@ -588,12 +611,14 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = // Block definitions: ".: 0: 0\n" /* air */ - "A:128: 2\n" /* sandstonestairs */ - "B:128: 0\n" /* sandstonestairs */ - "C: 87: 0\n" /* netherstone */ - "D:128: 3\n" /* sandstonestairs */ - "E: 51: 0\n" /* fire */ - "F: 44: 9\n" /* step */ + "A:128: 7\n" /* sandstonestairs */ + "B: 44: 1\n" /* step */ + "C:128: 2\n" /* sandstonestairs */ + "D:128: 0\n" /* sandstonestairs */ + "E: 87: 0\n" /* netherstone */ + "F:128: 3\n" /* sandstonestairs */ + "G: 51: 0\n" /* fire */ + "H: 44: 9\n" /* step */ "a: 12: 0\n" /* sand */ "b: 5: 0\n" /* wood */ "c: 24: 2\n" /* sandstone */ @@ -610,16 +635,16 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = "n:101: 0\n" /* ironbars */ "o:140: 0\n" /* flowerpotblock */ "p: 64: 8\n" /* wooddoorblock */ - "q: 69:12\n" /* lever */ - "r: 44:10\n" /* step */ - "s:128: 1\n" /* sandstonestairs */ - "t: 47: 0\n" /* bookshelf */ - "u: 96:12\n" /* trapdoor */ - "v:128: 4\n" /* sandstonestairs */ - "w:128: 5\n" /* sandstonestairs */ - "x:128: 7\n" /* sandstonestairs */ - "y: 44: 1\n" /* step */ - "z:128: 6\n" /* sandstonestairs */, + "q: 50: 3\n" /* torch */ + "r: 69:12\n" /* lever */ + "s: 50: 4\n" /* torch */ + "t:128: 6\n" /* sandstonestairs */ + "u: 44:10\n" /* step */ + "v:128: 1\n" /* sandstonestairs */ + "w: 47: 0\n" /* bookshelf */ + "x: 96:12\n" /* trapdoor */ + "y:128: 4\n" /* sandstonestairs */ + "z:128: 5\n" /* sandstonestairs */, // Block data: // Level 0 @@ -657,9 +682,9 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* * 012345678901234 */ /* 0 */ "....cddnnnddc.." /* 1 */ "....d......od.c" - /* 2 */ "....p.......d.." + /* 2 */ "....p.......d.q" /* 3 */ "....d.......p.." - /* 4 */ "....d.q...l.d.." + /* 4 */ "....d.r...l.d.s" /* 5 */ "....dddd.dddd.c" /* 6 */ "....n.......n.." /* 7 */ "mmmmn.......n.." @@ -670,32 +695,32 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = // Level 3 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "....cdddddddc.." - /* 1 */ "....drrrrrrrdds" - /* 2 */ "....drrrrrrrd.." - /* 3 */ "....drrrrrrrd.." - /* 4 */ "....dtttrrurd.." - /* 5 */ "....dddddddddds" - /* 6 */ "....vrrrrrrrw.." - /* 7 */ "mmmmvrrrrrrrw.." - /* 8 */ "mmmmvrrrrrrrw.." - /* 9 */ "mmmmdrrrrrrrd.." - /* 10 */ "mmmmcddxxxddc.." + /* 0 */ "....cddtttddc.." + /* 1 */ "....duuuuuuuddv" + /* 2 */ "....duuuuuuud.." + /* 3 */ "....duuuuuuud.." + /* 4 */ "....dwwwuuxud.." + /* 5 */ "....ddddddddddv" + /* 6 */ "....yuuuuuuuz.." + /* 7 */ "mmmmyuuuuuuuz.." + /* 8 */ "mmmmyuuuuuuuz.." + /* 9 */ "mmmmduuuuuuud.." + /* 10 */ "mmmmcddAAAddc.." // Level 4 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "....dyyydyyyd.." - /* 1 */ "....ycdddddcy.." - /* 2 */ "....yd.....dy.." - /* 3 */ "....yd.....dy.." - /* 4 */ "....yd.....dy.." + /* 0 */ "....dBBBdBBBd.." + /* 1 */ "....BcdddddcB.." + /* 2 */ "....Bd.....dB.." + /* 3 */ "....Bd.....dB.." + /* 4 */ "....Bd.....dB.." /* 5 */ "....dcdd.ddcd.." - /* 6 */ "....y.......y.." - /* 7 */ "mmmmy.......y.." - /* 8 */ "mmmmy.......y.." - /* 9 */ "mmmmy.......y.." - /* 10 */ "mmmmdyyydyyyd.." + /* 6 */ "....B.......B.." + /* 7 */ "mmmmB.......B.." + /* 8 */ "mmmmB.......B.." + /* 9 */ "mmmmB.......B.." + /* 10 */ "mmmmdBBBdBBBd.." // Level 5 /* z\x* 11111 */ @@ -716,10 +741,10 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* z\x* 11111 */ /* * 012345678901234 */ /* 0 */ "..............." - /* 1 */ ".....cddzddc..." - /* 2 */ ".....vrrrrrw..." - /* 3 */ ".....vrrrrrw..." - /* 4 */ ".....vrrrrrw..." + /* 1 */ ".....cddtddc..." + /* 2 */ ".....yuuuuuz..." + /* 3 */ ".....yuuuuuz..." + /* 4 */ ".....yuuuuuz..." /* 5 */ ".....cdddddc..." /* 6 */ "..............." /* 7 */ "..............." @@ -731,11 +756,11 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* z\x* 11111 */ /* * 012345678901234 */ /* 0 */ "..............." - /* 1 */ ".....dyydyyd..." - /* 2 */ ".....y.ddd.y..." + /* 1 */ ".....dBBdBBd..." + /* 2 */ ".....B.ddd.B..." /* 3 */ ".....d.ddd.d..." - /* 4 */ ".....y.ddd.y..." - /* 5 */ ".....dyydyyd..." + /* 4 */ ".....B.ddd.B..." + /* 5 */ ".....dBBdBBd..." /* 6 */ "..............." /* 7 */ "..............." /* 8 */ "..............." @@ -747,9 +772,9 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* * 012345678901234 */ /* 0 */ "..............." /* 1 */ "..............." - /* 2 */ ".......cAc....." - /* 3 */ ".......BCs....." - /* 4 */ ".......cDc....." + /* 2 */ ".......cCc....." + /* 3 */ ".......DEv....." + /* 4 */ ".......cFc....." /* 5 */ "..............." /* 6 */ "..............." /* 7 */ "..............." @@ -763,7 +788,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 0 */ "..............." /* 1 */ "..............." /* 2 */ ".......c.c....." - /* 3 */ "........E......" + /* 3 */ "........G......" /* 4 */ ".......c.c....." /* 5 */ "..............." /* 6 */ "..............." @@ -777,9 +802,9 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* * 012345678901234 */ /* 0 */ "..............." /* 1 */ "..............." - /* 2 */ ".......c.c....." - /* 3 */ "..............." - /* 4 */ ".......c.c....." + /* 2 */ ".......ctc....." + /* 3 */ ".......y.z....." + /* 4 */ ".......cAc....." /* 5 */ "..............." /* 6 */ "..............." /* 7 */ "..............." @@ -793,7 +818,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 0 */ "..............." /* 1 */ "..............." /* 2 */ ".......ddd....." - /* 3 */ ".......dFd....." + /* 3 */ ".......dHd....." /* 4 */ ".......ddd....." /* 5 */ "..............." /* 6 */ "..............." @@ -807,9 +832,9 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* * 012345678901234 */ /* 0 */ "..............." /* 1 */ "..............." - /* 2 */ ".......y.y....." + /* 2 */ ".......B.B....." /* 3 */ "..............." - /* 4 */ ".......y.y....." + /* 4 */ ".......B.B....." /* 5 */ "..............." /* 6 */ "..............." /* 7 */ "..............." @@ -830,7 +855,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = true, // DefaultWeight: - 100, + 60, // DepthWeight: "", @@ -1169,7 +1194,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 3 */ "abbbbba" /* 4 */ "abbbbba" /* 5 */ "abbbbba" - /* 6 */ "aaaaaaa" + /* 6 */ "aabaaaa" /* 7 */ "aaaaaaa" /* 8 */ "aaaaaaa" /* 9 */ "aaaaaaa" @@ -1384,7 +1409,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = "b: 5: 0\n" /* wood */ "c: 24: 2\n" /* sandstone */ "d: 24: 0\n" /* sandstone */ - "e: 64: 3\n" /* wooddoorblock */ + "e: 64: 7\n" /* wooddoorblock */ "f: 65: 5\n" /* ladder */ "g:134: 3\n" /* 134 */ "h: 85: 0\n" /* fence */ @@ -1393,16 +1418,17 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = "k:134: 6\n" /* 134 */ "l:134: 4\n" /* 134 */ "m: 19: 0\n" /* sponge */ - "n: 64: 8\n" /* wooddoorblock */ + "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: 5\n" /* sandstonestairs */ - "u:128: 7\n" /* sandstonestairs */ - "v: 44: 1\n" /* step */ - "w: 96: 7\n" /* trapdoor */, + "t:128: 4\n" /* sandstonestairs */ + "u:128: 5\n" /* sandstonestairs */ + "v:128: 7\n" /* sandstonestairs */ + "w: 44: 1\n" /* step */ + "x: 96: 7\n" /* trapdoor */, // Block data: // Level 0 @@ -1454,26 +1480,26 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 2 */ "cdddc" /* 3 */ "dfssd" /* 4 */ "dsssd" - /* 5 */ "tssst" - /* 6 */ "tssst" - /* 7 */ "tssst" + /* 5 */ "tsssu" + /* 6 */ "tsssu" + /* 7 */ "tsssu" /* 8 */ "dsssd" /* 9 */ "dsssd" - /* 10 */ "cdudc" + /* 10 */ "cdvdc" // Level 4 /* z\x* 01234 */ /* 0 */ "....." /* 1 */ "....." - /* 2 */ "dvdvd" - /* 3 */ "vw..v" - /* 4 */ "v...v" - /* 5 */ "v...v" + /* 2 */ "dwdwd" + /* 3 */ "wx..w" + /* 4 */ "w...w" + /* 5 */ "w...w" /* 6 */ "d...d" - /* 7 */ "v...v" - /* 8 */ "v...v" - /* 9 */ "v...v" - /* 10 */ "dvdvd", + /* 7 */ "w...w" + /* 8 */ "w...w" + /* 9 */ "w...w" + /* 10 */ "dwdwd", // Connectors: "-1: 2, 1, 0: 2\n" /* Type -1, direction Z- */, @@ -2050,7 +2076,8 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = "o:128: 4\n" /* sandstonestairs */ "p:128: 7\n" /* sandstonestairs */ "q: 44: 1\n" /* step */ - "r: 50: 3\n" /* torch */, + "r: 50: 3\n" /* torch */ + "s:128: 6\n" /* sandstonestairs */, // Block data: // Level 0 @@ -2137,11 +2164,11 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 0 */ "..............." /* 1 */ "..............." /* 2 */ "..............." - /* 3 */ "...cdddc......." + /* 3 */ "...cdsdc......." /* 4 */ "...dnnnd......." /* 5 */ "...dnnnd......." /* 6 */ "...dnnnd......." - /* 7 */ "...cdddc......." + /* 7 */ "...cdpdc......." /* 8 */ "..............." // Level 7 @@ -2170,7 +2197,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = true, // DefaultWeight: - 100, + 80, // DepthWeight: "", @@ -2364,7 +2391,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = true, // DefaultWeight: - 100, + 80, // DepthWeight: "", @@ -2582,7 +2609,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = true, // DefaultWeight: - 100, + 80, // DepthWeight: "", @@ -2690,7 +2717,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* z\x* 012345678 */ /* 0 */ "mmmm....." /* 1 */ "mmmm....." - /* 2 */ "mmmmcrdrd" + /* 2 */ "mmmmdrdrd" /* 3 */ "mmmmr...r" /* 4 */ "mmmmr...r" /* 5 */ "mmmmr...r" @@ -2724,6 +2751,192 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = // MoveToGround: true, }, // SmallHouse9 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // 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 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 12, 8, 8, // 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 */ + "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 */, + + // 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" + + // 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" + + // 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" + + // 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" + + // 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" + + // Level 5 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "............." + /* 1 */ "............." + /* 2 */ "............." + /* 3 */ "............." + /* 4 */ "..csc...csc.." + /* 5 */ "..vwx...vwx.." + /* 6 */ "..cyc...cyc.." + /* 7 */ "............." + /* 8 */ "............." + + // Level 6 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "............." + /* 1 */ "............." + /* 2 */ "............." + /* 3 */ "............." + /* 4 */ "..c.c...c.c.." + /* 5 */ "...z.....z..." + /* 6 */ "..c.c...c.c.." + /* 7 */ "............." + /* 8 */ "............." + + // Level 7 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "............." + /* 1 */ "............." + /* 2 */ "............." + /* 3 */ "............." + /* 4 */ "..ddd...ddd.." + /* 5 */ "..dAd...dAd.." + /* 6 */ "..ddd...ddd.." + /* 7 */ "............." + /* 8 */ "............." + + // Level 8 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "............." + /* 1 */ "............." + /* 2 */ "............." + /* 3 */ "............." + /* 4 */ "..u.u...u.u.." + /* 5 */ "............." + /* 6 */ "..u.u...u.u.." + /* 7 */ "............." + /* 8 */ ".............", + + // Connectors: + "-1: 6, 1, 0: 2\n" /* Type -1, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 50, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + true, + }, // Temple }; // g_AlchemistVillagePrefabs diff --git a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp index f8cf867e5..f5e531955 100644 --- a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp +++ b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp @@ -797,8 +797,9 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = ".: 0: 0\n" /* air */ "a: 5: 0\n" /* wood */ "b: 85: 0\n" /* fence */ - "c: 50: 2\n" /* torch */ - "d: 50: 1\n" /* torch */ + "c: 66: 1\n" /* tracks */ + "d: 50: 2\n" /* torch */ + "e: 50: 1\n" /* torch */ "m: 19: 0\n" /* sponge */, // Block data: @@ -813,7 +814,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* z\x* */ /* * 0123456789 */ /* 0 */ "..b....b.." - /* 1 */ ".........." + /* 1 */ "cccccccccc" /* 2 */ "..b....b.." // Level 2 @@ -827,14 +828,12 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* z\x* */ /* * 0123456789 */ /* 0 */ "..a....a.." - /* 1 */ ".cad..cad." + /* 1 */ ".dae..dae." /* 2 */ "..a....a..", // Connectors: "-3: 0, 1, 1: 4\n" /* Type -3, direction X- */ - "3: 0, 1, 1: 4\n" /* Type 3, direction X- */ - "3: 9, 1, 1: 5\n" /* Type 3, direction X+ */ - "-3: 9, 1, 1: 5\n" /* Type -3, direction X+ */, + "3: 9, 1, 1: 5\n" /* Type 3, direction X+ */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -874,6 +873,8 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // Block definitions: ".: 0: 0\n" /* air */ "a: 5: 0\n" /* wood */ + "b: 66: 0\n" /* tracks */ + "c: 66: 1\n" /* tracks */ "m: 19: 0\n" /* sponge */, // Block data: @@ -887,11 +888,11 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // Level 1 /* z\x* 01234 */ - /* 0 */ "m...m" - /* 1 */ ".a.a." - /* 2 */ "....." - /* 3 */ ".a.a." - /* 4 */ "m...m" + /* 0 */ "m.b.m" + /* 1 */ ".aba." + /* 2 */ "ccccc" + /* 3 */ ".aba." + /* 4 */ "m.b.m" // Level 2 /* z\x* 01234 */ @@ -929,7 +930,125 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = false, // DefaultWeight: - 5, + 1, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + false, + }, // MineshaftCrossing + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // MineshaftCrossing: + // The data has been exported from the gallery Plains, area index 193, ID 657, created by Aloe_vera + { + // Size: + 11, 4, 11, // SizeX = 11, SizeY = 4, SizeZ = 11 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 10, 3, 10, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 5: 0\n" /* wood */ + "b: 66: 0\n" /* tracks */ + "c: 85: 0\n" /* fence */ + "d: 66: 1\n" /* tracks */ + "e: 50: 4\n" /* torch */ + "f: 50: 3\n" /* torch */ + "g: 50: 2\n" /* torch */ + "h: 50: 1\n" /* torch */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "mmmmaaammmm" + /* 1 */ "mmmmaaammmm" + /* 2 */ "mmmmaaammmm" + /* 3 */ "mmmmaaammmm" + /* 4 */ "aaaaaaaaaaa" + /* 5 */ "aaaaaaaaaaa" + /* 6 */ "aaaaaaaaaaa" + /* 7 */ "mmmmaaammmm" + /* 8 */ "mmmmaaammmm" + /* 9 */ "mmmmaaammmm" + /* 10 */ "mmmmaaammmm" + + // Level 1 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "mmmm.b.mmmm" + /* 1 */ "mmmm.b.mmmm" + /* 2 */ "mmmmcbcmmmm" + /* 3 */ "mmmm.b.mmmm" + /* 4 */ "..c..b..c.." + /* 5 */ "ddddddddddd" + /* 6 */ "..c..b..c.." + /* 7 */ "mmmm.b.mmmm" + /* 8 */ "mmmmcbcmmmm" + /* 9 */ "mmmm.b.mmmm" + /* 10 */ "mmmm.b.mmmm" + + // Level 2 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "mmmm...mmmm" + /* 1 */ "mmmm...mmmm" + /* 2 */ "mmmmc.cmmmm" + /* 3 */ "mmmm...mmmm" + /* 4 */ "..c.....c.." + /* 5 */ "..........." + /* 6 */ "..c.....c.." + /* 7 */ "mmmm...mmmm" + /* 8 */ "mmmmc.cmmmm" + /* 9 */ "mmmm...mmmm" + /* 10 */ "mmmm...mmmm" + + // Level 3 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "mmmm...mmmm" + /* 1 */ "mmmm.e.mmmm" + /* 2 */ "mmmmaaammmm" + /* 3 */ "mmmm.f.mmmm" + /* 4 */ "..a.....a.." + /* 5 */ ".gah...gah." + /* 6 */ "..a.....a.." + /* 7 */ "mmmm.e.mmmm" + /* 8 */ "mmmmaaammmm" + /* 9 */ "mmmm.f.mmmm" + /* 10 */ "mmmm...mmmm", + + // Connectors: + "3: 5, 1, 0: 2\n" /* Type 3, direction Z- */ + "-3: 5, 1, 0: 2\n" /* Type -3, direction Z- */ + "3: 0, 1, 5: 4\n" /* Type 3, direction X- */ + "-3: 0, 1, 5: 4\n" /* Type -3, direction X- */ + "3: 5, 1, 10: 3\n" /* Type 3, direction Z+ */ + "-3: 5, 1, 10: 3\n" /* Type -3, direction Z+ */ + "3: 10, 1, 5: 5\n" /* Type 3, direction X+ */ + "-3: 10, 1, 5: 5\n" /* Type -3, direction X+ */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + false, + + // DefaultWeight: + 10, // DepthWeight: "", @@ -957,6 +1076,8 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // Block definitions: ".: 0: 0\n" /* air */ "a: 5: 0\n" /* wood */ + "b: 66: 0\n" /* tracks */ + "c: 66: 1\n" /* tracks */ "m: 19: 0\n" /* sponge */, // Block data: @@ -970,11 +1091,11 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // Level 1 /* z\x* 01234 */ - /* 0 */ "m...m" - /* 1 */ ".a.a." - /* 2 */ "....." - /* 3 */ ".a.a." - /* 4 */ "m...m" + /* 0 */ "m.b.m" + /* 1 */ ".aba." + /* 2 */ "ccccc" + /* 3 */ ".aba." + /* 4 */ "m.b.m" // Level 2 /* z\x* 01234 */ @@ -1052,7 +1173,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = false, // DefaultWeight: - 5, + 1, // DepthWeight: "", @@ -1066,6 +1187,703 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // MineshaftSpiral: + // The data has been exported from the gallery Plains, area index 198, ID 662, created by Aloe_vera + { + // Size: + 7, 12, 7, // SizeX = 7, SizeY = 12, SizeZ = 7 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 6, 11, 6, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 5: 0\n" /* wood */ + "b: 85: 0\n" /* fence */ + "c: 66: 4\n" /* tracks */ + "d: 66: 0\n" /* tracks */ + "e: 66: 6\n" /* tracks */ + "f: 66: 2\n" /* tracks */ + "g: 50: 1\n" /* torch */ + "h: 50: 3\n" /* torch */ + "i: 66: 1\n" /* tracks */ + "j: 66: 7\n" /* tracks */ + "k: 66: 5\n" /* tracks */ + "l: 50: 2\n" /* torch */ + "m: 19: 0\n" /* sponge */ + "n: 66: 3\n" /* tracks */ + "o: 66: 8\n" /* tracks */ + "p: 50: 4\n" /* torch */, + + // Block data: + // Level 0 + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mmmmmmm" + /* 2 */ "mmmmmmm" + /* 3 */ "aaabmmm" + /* 4 */ "aaammmm" + /* 5 */ "aaammmm" + /* 6 */ "aaammmm" + + // Level 1 + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mmmmmmm" + /* 2 */ "aaammmm" + /* 3 */ "aaabmmm" + /* 4 */ ".c.mmmm" + /* 5 */ ".d.mmmm" + /* 6 */ ".d.mmmm" + + // Level 2 + /* z\x* 0123456 */ + /* 0 */ "aaaammm" + /* 1 */ "aaaammm" + /* 2 */ "aaaammm" + /* 3 */ ".c.bmmm" + /* 4 */ "...mmmm" + /* 5 */ "...mmmm" + /* 6 */ "...mmmm" + + // Level 3 + /* z\x* 0123456 */ + /* 0 */ "b..aamm" + /* 1 */ ".efaamm" + /* 2 */ ".d.aamm" + /* 3 */ "...bmmm" + /* 4 */ "...mmmm" + /* 5 */ "...mmmm" + /* 6 */ "...mmmm" + + // Level 4 + /* z\x* 0123456 */ + /* 0 */ "b...aaa" + /* 1 */ "...faaa" + /* 2 */ "....aaa" + /* 3 */ "...baaa" + /* 4 */ "...mmmm" + /* 5 */ "mmmmmmm" + /* 6 */ "mmmmmmm" + + // Level 5 + /* z\x* 0123456 */ + /* 0 */ "ag....b" + /* 1 */ "h...ij." + /* 2 */ ".....k." + /* 3 */ "...baaa" + /* 4 */ "mmmmaaa" + /* 5 */ "mmmmmmm" + /* 6 */ "mmmmmmm" + + // Level 6 + /* z\x* 0123456 */ + /* 0 */ "mm....b" + /* 1 */ "mm....." + /* 2 */ "mm....." + /* 3 */ "mmmb.k." + /* 4 */ "mmmaaaa" + /* 5 */ "mmmaaaa" + /* 6 */ "mmmaaaa" + + // Level 7 + /* z\x* 0123456 */ + /* 0 */ "mmm..la" + /* 1 */ "mmm...h" + /* 2 */ "mmm...." + /* 3 */ "mmmb..." + /* 4 */ "mmaa.d." + /* 5 */ "mmaano." + /* 6 */ "mmaa..b" + + // Level 8 + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mmmmmmm" + /* 2 */ "mmmm..." + /* 3 */ "mmmb..." + /* 4 */ "aaa...." + /* 5 */ "aaan..." + /* 6 */ "aaa...b" + + // Level 9 + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mmmmmmm" + /* 2 */ "mmmmmmm" + /* 3 */ "mmmb..." + /* 4 */ "......." + /* 5 */ "iii...p" + /* 6 */ ".....la" + + // Level 10 + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mmmmmmm" + /* 2 */ "mmmmmmm" + /* 3 */ "mmmbmmm" + /* 4 */ ".....mm" + /* 5 */ ".....mm" + /* 6 */ ".....mm" + + // Level 11 + /* z\x* 0123456 */ + /* 0 */ "mmmmmmm" + /* 1 */ "mmmmmmm" + /* 2 */ "mmmmmmm" + /* 3 */ "mmmbmmm" + /* 4 */ "....mmm" + /* 5 */ "....mmm" + /* 6 */ "....mmm", + + // Connectors: + "3: 1, 1, 6: 3\n" /* Type 3, direction Z+ */ + "-3: 1, 1, 6: 3\n" /* Type -3, direction Z+ */ + "3: 0, 9, 5: 4\n" /* Type 3, direction X- */ + "-3: 0, 9, 5: 4\n" /* Type -3, direction X- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + false, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + false, + }, // MineshaftSpiral + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // MineshaftStairs: + // The data has been exported from the gallery Plains, area index 195, ID 659, created by Aloe_vera + { + // Size: + 7, 8, 3, // SizeX = 7, SizeY = 8, SizeZ = 3 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 6, 7, 2, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 5: 0\n" /* wood */ + "b: 66: 1\n" /* tracks */ + "c: 66: 2\n" /* tracks */ + "d: 85: 0\n" /* fence */ + "e: 50: 1\n" /* torch */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 0123456 */ + /* 0 */ "aaammmm" + /* 1 */ "aaammmm" + /* 2 */ "aaammmm" + + // Level 1 + /* z\x* 0123456 */ + /* 0 */ "..aammm" + /* 1 */ "bcaammm" + /* 2 */ "..aammm" + + // Level 2 + /* z\x* 0123456 */ + /* 0 */ "...aamm" + /* 1 */ "..caamm" + /* 2 */ "...aamm" + + // Level 3 + /* z\x* 0123456 */ + /* 0 */ "...daam" + /* 1 */ "...caam" + /* 2 */ "...daam" + + // Level 4 + /* z\x* 0123456 */ + /* 0 */ "m..d.aa" + /* 1 */ "m...caa" + /* 2 */ "m..d.aa" + + // Level 5 + /* z\x* 0123456 */ + /* 0 */ "mm.d..." + /* 1 */ "mm...bb" + /* 2 */ "mm.d..." + + // Level 6 + /* z\x* 0123456 */ + /* 0 */ "mmmd..." + /* 1 */ "mmm...." + /* 2 */ "mmmd..." + + // Level 7 + /* z\x* 0123456 */ + /* 0 */ "mmma..." + /* 1 */ "mmmae.." + /* 2 */ "mmma...", + + // Connectors: + "3: 0, 1, 1: 4\n" /* Type 3, direction X- */ + "-3: 0, 1, 1: 4\n" /* Type -3, direction X- */ + "3: 6, 5, 1: 5\n" /* Type 3, direction X+ */ + "-3: 6, 5, 1: 5\n" /* Type -3, direction X+ */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + false, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + false, + }, // MineshaftStairs + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // MineshaftStairsCrossing: + // The data has been exported from the gallery Plains, area index 199, ID 663, created by Aloe_vera + { + // Size: + 11, 12, 11, // SizeX = 11, SizeY = 12, SizeZ = 11 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 10, 11, 10, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 5: 0\n" /* wood */ + "b: 66: 5\n" /* tracks */ + "c: 85: 0\n" /* fence */ + "d: 66: 0\n" /* tracks */ + "e: 66: 1\n" /* tracks */ + "f: 50: 3\n" /* torch */ + "g: 50: 2\n" /* torch */ + "h: 50: 1\n" /* torch */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "mmmmaaammmm" + /* 1 */ "mmmmaaammmm" + /* 2 */ "mmmmmmmmmmm" + /* 3 */ "mmmmmmmmmmm" + /* 4 */ "mmmmmmmmmmm" + /* 5 */ "mmmmmmmmmmm" + /* 6 */ "mmmmmmmmmmm" + /* 7 */ "mmmmmmmmmmm" + /* 8 */ "mmmmmmmmmmm" + /* 9 */ "mmmmmmmmmmm" + /* 10 */ "mmmmmmmmmmm" + + // Level 1 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "mmmm.b.mmmm" + /* 1 */ "mmmmaaammmm" + /* 2 */ "mmmmaaammmm" + /* 3 */ "mmmmmmmmmmm" + /* 4 */ "mmmmmmmmmmm" + /* 5 */ "mmmmmmmmmmm" + /* 6 */ "mmmmmmmmmmm" + /* 7 */ "mmmmmmmmmmm" + /* 8 */ "mmmmmmmmmmm" + /* 9 */ "mmmmmmmmmmm" + /* 10 */ "mmmmmmmmmmm" + + // Level 2 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "mmmm...mmmm" + /* 1 */ "mmmm.b.mmmm" + /* 2 */ "mmmmaaammmm" + /* 3 */ "mmmmaaammmm" + /* 4 */ "mmmmmmmmmmm" + /* 5 */ "mmmmmmmmmmm" + /* 6 */ "mmmmmmmmmmm" + /* 7 */ "mmmmmmmmmmm" + /* 8 */ "mmmmmmmmmmm" + /* 9 */ "mmmmmmmmmmm" + /* 10 */ "mmmmmmmmmmm" + + // Level 3 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "mmmm...mmmm" + /* 1 */ "mmmm...mmmm" + /* 2 */ "mmmmcbcmmmm" + /* 3 */ "mmmmaaammmm" + /* 4 */ "mmmmaaammmm" + /* 5 */ "mmmmmmmmmmm" + /* 6 */ "mmmmmmmmmmm" + /* 7 */ "mmmmmmmmmmm" + /* 8 */ "mmmmmmmmmmm" + /* 9 */ "mmmmmmmmmmm" + /* 10 */ "mmmmmmmmmmm" + + // Level 4 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "mmmm...mmmm" + /* 1 */ "mmmm...mmmm" + /* 2 */ "mmmmc.cmmmm" + /* 3 */ "mmmm.b.mmmm" + /* 4 */ "aaaaaaaaaaa" + /* 5 */ "aaaaaaaaaaa" + /* 6 */ "aaaaaaaaaaa" + /* 7 */ "mmmmaaammmm" + /* 8 */ "mmmmmmmmmmm" + /* 9 */ "mmmmmmmmmmm" + /* 10 */ "mmmmmmmmmmm" + + // Level 5 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "mmmmmmmmmmm" + /* 1 */ "mmmm...mmmm" + /* 2 */ "mmmmc.cmmmm" + /* 3 */ "mmmm...mmmm" + /* 4 */ "..c..d..c.." + /* 5 */ "eeeeeeeeeee" + /* 6 */ "..c..b..c.." + /* 7 */ "mmmmaaammmm" + /* 8 */ "mmmmaaammmm" + /* 9 */ "mmmmmmmmmmm" + /* 10 */ "mmmmmmmmmmm" + + // Level 6 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "mmmmmmmmmmm" + /* 1 */ "mmmmmmmmmmm" + /* 2 */ "mmmmc.cmmmm" + /* 3 */ "mmmm...mmmm" + /* 4 */ "..c.....c.." + /* 5 */ "..........." + /* 6 */ "..c.....c.." + /* 7 */ "mmmm.b.mmmm" + /* 8 */ "mmmmaaammmm" + /* 9 */ "mmmmaaammmm" + /* 10 */ "mmmmmmmmmmm" + + // Level 7 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "mmmmmmmmmmm" + /* 1 */ "mmmmmmmmmmm" + /* 2 */ "mmmmaaammmm" + /* 3 */ "mmmm.f.mmmm" + /* 4 */ "..a.....a.." + /* 5 */ ".gah...gah." + /* 6 */ "..a.....a.." + /* 7 */ "mmmm...mmmm" + /* 8 */ "mmmmcbcmmmm" + /* 9 */ "mmmmaaammmm" + /* 10 */ "mmmmaaammmm" + + // Level 8 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "mmmmmmmmmmm" + /* 1 */ "mmmmmmmmmmm" + /* 2 */ "mmmmmmmmmmm" + /* 3 */ "mmmmmmmmmmm" + /* 4 */ "mmmmmmmmmmm" + /* 5 */ "mmmmmmmmmmm" + /* 6 */ "mmmm...mmmm" + /* 7 */ "mmmm...mmmm" + /* 8 */ "mmmmc.cmmmm" + /* 9 */ "mmmm.b.mmmm" + /* 10 */ "mmmmaaammmm" + + // Level 9 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "mmmmmmmmmmm" + /* 1 */ "mmmmmmmmmmm" + /* 2 */ "mmmmmmmmmmm" + /* 3 */ "mmmmmmmmmmm" + /* 4 */ "mmmmmmmmmmm" + /* 5 */ "mmmmmmmmmmm" + /* 6 */ "mmmmmmmmmmm" + /* 7 */ "mmmm...mmmm" + /* 8 */ "mmmmc.cmmmm" + /* 9 */ "mmmm...mmmm" + /* 10 */ "mmmm.d.mmmm" + + // Level 10 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "mmmmmmmmmmm" + /* 1 */ "mmmmmmmmmmm" + /* 2 */ "mmmmmmmmmmm" + /* 3 */ "mmmmmmmmmmm" + /* 4 */ "mmmmmmmmmmm" + /* 5 */ "mmmmmmmmmmm" + /* 6 */ "mmmmmmmmmmm" + /* 7 */ "mmmmmmmmmmm" + /* 8 */ "mmmmc.cmmmm" + /* 9 */ "mmmm...mmmm" + /* 10 */ "mmmm...mmmm" + + // Level 11 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "mmmmmmmmmmm" + /* 1 */ "mmmmmmmmmmm" + /* 2 */ "mmmmmmmmmmm" + /* 3 */ "mmmmmmmmmmm" + /* 4 */ "mmmmmmmmmmm" + /* 5 */ "mmmmmmmmmmm" + /* 6 */ "mmmmmmmmmmm" + /* 7 */ "mmmmmmmmmmm" + /* 8 */ "mmmmaaammmm" + /* 9 */ "mmmm.f.mmmm" + /* 10 */ "mmmm...mmmm", + + // Connectors: + "3: 0, 5, 5: 4\n" /* Type 3, direction X- */ + "-3: 0, 5, 5: 4\n" /* Type -3, direction X- */ + "3: 10, 5, 5: 5\n" /* Type 3, direction X+ */ + "-3: 10, 5, 5: 5\n" /* Type -3, direction X+ */ + "3: 5, 9, 10: 3\n" /* Type 3, direction Z+ */ + "-3: 5, 9, 10: 3\n" /* Type -3, direction Z+ */ + "3: 5, 1, 0: 2\n" /* Type 3, direction Z- */ + "-3: 5, 1, 0: 2\n" /* Type -3, direction Z- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + false, + + // DefaultWeight: + 30, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + false, + }, // MineshaftStairsCrossing + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // MineshaftTee: + // The data has been exported from the gallery Plains, area index 194, ID 658, created by Aloe_vera + { + // Size: + 11, 4, 7, // SizeX = 11, SizeY = 4, SizeZ = 7 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 10, 3, 6, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 5: 0\n" /* wood */ + "b: 66: 0\n" /* tracks */ + "c: 85: 0\n" /* fence */ + "d: 66: 1\n" /* tracks */ + "e: 50: 4\n" /* torch */ + "f: 50: 3\n" /* torch */ + "g: 50: 2\n" /* torch */ + "h: 50: 1\n" /* torch */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "mmmmaaammmm" + /* 1 */ "mmmmaaammmm" + /* 2 */ "mmmmaaammmm" + /* 3 */ "mmmmaaammmm" + /* 4 */ "aaaaaaaaaaa" + /* 5 */ "aaaaaaaaaaa" + /* 6 */ "aaaaaaaaaaa" + + // Level 1 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "mmmm.b.mmmm" + /* 1 */ "mmmm.b.mmmm" + /* 2 */ "mmmmcbcmmmm" + /* 3 */ "mmmm.b.mmmm" + /* 4 */ "..c..b..c.." + /* 5 */ "ddddddddddd" + /* 6 */ "..c.....c.." + + // Level 2 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "mmmm...mmmm" + /* 1 */ "mmmm...mmmm" + /* 2 */ "mmmmc.cmmmm" + /* 3 */ "mmmm...mmmm" + /* 4 */ "..c.....c.." + /* 5 */ "..........." + /* 6 */ "..c.....c.." + + // Level 3 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "mmmm...mmmm" + /* 1 */ "mmmm.e.mmmm" + /* 2 */ "mmmmaaammmm" + /* 3 */ "mmmm.f.mmmm" + /* 4 */ "..a.....a.." + /* 5 */ ".gah...gah." + /* 6 */ "..a.....a..", + + // Connectors: + "3: 0, 1, 5: 4\n" /* Type 3, direction X- */ + "-3: 0, 1, 5: 4\n" /* Type -3, direction X- */ + "3: 5, 1, 0: 2\n" /* Type 3, direction Z- */ + "-3: 5, 1, 0: 2\n" /* Type -3, direction Z- */ + "3: 10, 1, 5: 5\n" /* Type 3, direction X+ */ + "-3: 10, 1, 5: 5\n" /* Type -3, direction X+ */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + false, + + // DefaultWeight: + 20, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + false, + }, // MineshaftTee + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // MineshaftsCorridor5: + // The data has been exported from the gallery Plains, area index 200, ID 664, created by Aloe_vera + { + // Size: + 11, 4, 3, // SizeX = 11, SizeY = 4, SizeZ = 3 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 10, 3, 2, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 5: 0\n" /* wood */ + "b: 85: 0\n" /* fence */ + "c: 66: 1\n" /* tracks */ + "d: 50: 2\n" /* torch */ + "e: 50: 1\n" /* torch */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "aaaaaaaaaaa" + /* 1 */ "aaaaaaaaaaa" + /* 2 */ "aaaaaaaaaaa" + + // Level 1 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..b.....b.." + /* 1 */ "ccccccccccc" + /* 2 */ "..b.....b.." + + // Level 2 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..b.....b.." + /* 1 */ "..........." + /* 2 */ "..b.....b.." + + // Level 3 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..a.....a.." + /* 1 */ ".dae...dae." + /* 2 */ "..a.....a..", + + // Connectors: + "3: 10, 1, 1: 5\n" /* Type 3, direction X+ */ + "-3: 10, 1, 1: 5\n" /* Type -3, direction X+ */ + "-3: 0, 1, 1: 4\n" /* Type -3, direction X- */ + "3: 0, 1, 1: 4\n" /* Type 3, direction X- */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + false, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + false, + }, // MineshaftsCorridor5 + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Scarecrow: // The data has been exported from the gallery Plains, area index 150, ID 494, created by STR_Warrior @@ -2770,8 +3588,8 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // Block definitions: ".: 0: 0\n" /* air */ - "a: 3: 0\n" /* dirt */ - "b: 2: 0\n" /* grass */ + "a: 2: 0\n" /* grass */ + "b: 3: 0\n" /* dirt */ "c: 4: 0\n" /* cobblestone */ "d: 67: 0\n" /* stairs */ "e: 67: 2\n" /* stairs */ @@ -2796,19 +3614,19 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // Level 0 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "abaaaaabbbb" - /* 1 */ "baaaaaaaaab" - /* 2 */ "baaaaaaaaab" - /* 3 */ "baaaaaaaaab" - /* 4 */ "baaaaaaaaab" - /* 5 */ "baaaaaaaaab" - /* 6 */ "baaaaaaaaab" - /* 7 */ "baaaaaaaaab" - /* 8 */ "bbaaaaaaabb" - /* 9 */ "bbaaaaaaabb" - /* 10 */ "bbaaaaaaabb" - /* 11 */ "bbaaaaaaabb" - /* 12 */ "bbaaaaaaabb" + /* 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" // Level 1 /* z\x* 1 */ @@ -2821,11 +3639,11 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 5 */ "mcccccccccm" /* 6 */ "mcccccccccm" /* 7 */ "mcccccccccm" - /* 8 */ "mmaaaaaaamm" - /* 9 */ "mmaaaaaaamm" - /* 10 */ "mmaaaaaaamm" - /* 11 */ "mmaaaaaaamm" - /* 12 */ "mmaaaaaaamm" + /* 8 */ "mmbbbbbbbmm" + /* 9 */ "mmbbbbbbbmm" + /* 10 */ "mmbbbbbbbmm" + /* 11 */ "mmbbbbbbbmm" + /* 12 */ "mmbbbbbbbmm" // Level 2 /* z\x* 1 */ @@ -2838,11 +3656,11 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 5 */ ".cggggcccc." /* 6 */ ".cggggcccc." /* 7 */ ".ccccccccc." - /* 8 */ "..bbbbbbb.." - /* 9 */ "..bbbbbbb.." - /* 10 */ "..bbbbbbb.." - /* 11 */ "..bbbbbbb.." - /* 12 */ "..bbbbbbb.." + /* 8 */ "..aaaaaaa.." + /* 9 */ "..aaaaaaa.." + /* 10 */ "..aaaaaaa.." + /* 11 */ "..aaaaaaa.." + /* 12 */ "..aaaaaaa.." // Level 3 /* z\x* 1 */ -- cgit v1.2.3 From f4e9c88dcdefee2b6e4ca7f97483d4cdfba939ae Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Sat, 31 May 2014 10:33:12 +0200 Subject: Fixed a memory leak in VillagGen. --- src/Generating/VillageGen.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/Generating') diff --git a/src/Generating/VillageGen.cpp b/src/Generating/VillageGen.cpp index dfcdf6ef7..b9cb056ad 100644 --- a/src/Generating/VillageGen.cpp +++ b/src/Generating/VillageGen.cpp @@ -147,6 +147,11 @@ public: } } + ~cVillage() + { + cPieceGenerator::FreePieces(m_Pieces); + } + protected: /** Seed for the random functions */ int m_Seed; -- cgit v1.2.3 From 600c93bdc16e6826ebf9822ad941a1f87139bab5 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Sat, 31 May 2014 10:33:29 +0200 Subject: Updated PlainsVillage prefabs. --- src/Generating/Prefabs/PlainsVillagePrefabs.cpp | 158 +++++++++++++----------- 1 file changed, 85 insertions(+), 73 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp index f5e531955..f5c5b7a20 100644 --- a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp +++ b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp @@ -1472,18 +1472,18 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // The data has been exported from the gallery Plains, area index 199, ID 663, created by Aloe_vera { // Size: - 11, 12, 11, // SizeX = 11, SizeY = 12, SizeZ = 11 + 11, 12, 12, // SizeX = 11, SizeY = 12, SizeZ = 12 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 10, 11, 10, // MaxX, MaxY, MaxZ + 10, 11, 11, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ "a: 5: 0\n" /* wood */ - "b: 66: 5\n" /* tracks */ - "c: 85: 0\n" /* fence */ - "d: 66: 0\n" /* tracks */ + "b: 66: 0\n" /* tracks */ + "c: 66: 5\n" /* tracks */ + "d: 85: 0\n" /* fence */ "e: 66: 1\n" /* tracks */ "f: 50: 3\n" /* torch */ "g: 50: 2\n" /* torch */ @@ -1496,7 +1496,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* * 01234567890 */ /* 0 */ "mmmmaaammmm" /* 1 */ "mmmmaaammmm" - /* 2 */ "mmmmmmmmmmm" + /* 2 */ "mmmmaaammmm" /* 3 */ "mmmmmmmmmmm" /* 4 */ "mmmmmmmmmmm" /* 5 */ "mmmmmmmmmmm" @@ -1505,14 +1505,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 8 */ "mmmmmmmmmmm" /* 9 */ "mmmmmmmmmmm" /* 10 */ "mmmmmmmmmmm" + /* 11 */ "mmmmmmmmmmm" // Level 1 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "mmmm.b.mmmm" - /* 1 */ "mmmmaaammmm" + /* 1 */ "mmmm.c.mmmm" /* 2 */ "mmmmaaammmm" - /* 3 */ "mmmmmmmmmmm" + /* 3 */ "mmmmaaammmm" /* 4 */ "mmmmmmmmmmm" /* 5 */ "mmmmmmmmmmm" /* 6 */ "mmmmmmmmmmm" @@ -1520,96 +1521,103 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 8 */ "mmmmmmmmmmm" /* 9 */ "mmmmmmmmmmm" /* 10 */ "mmmmmmmmmmm" + /* 11 */ "mmmmmmmmmmm" // Level 2 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "mmmm...mmmm" - /* 1 */ "mmmm.b.mmmm" - /* 2 */ "mmmmaaammmm" + /* 1 */ "mmmm...mmmm" + /* 2 */ "mmmm.c.mmmm" /* 3 */ "mmmmaaammmm" - /* 4 */ "mmmmmmmmmmm" + /* 4 */ "mmmmaaammmm" /* 5 */ "mmmmmmmmmmm" /* 6 */ "mmmmmmmmmmm" /* 7 */ "mmmmmmmmmmm" /* 8 */ "mmmmmmmmmmm" /* 9 */ "mmmmmmmmmmm" /* 10 */ "mmmmmmmmmmm" + /* 11 */ "mmmmmmmmmmm" // Level 3 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "mmmm...mmmm" /* 1 */ "mmmm...mmmm" - /* 2 */ "mmmmcbcmmmm" - /* 3 */ "mmmmaaammmm" + /* 2 */ "mmmm...mmmm" + /* 3 */ "mmmmdcdmmmm" /* 4 */ "mmmmaaammmm" - /* 5 */ "mmmmmmmmmmm" + /* 5 */ "mmmmaaammmm" /* 6 */ "mmmmmmmmmmm" /* 7 */ "mmmmmmmmmmm" /* 8 */ "mmmmmmmmmmm" /* 9 */ "mmmmmmmmmmm" /* 10 */ "mmmmmmmmmmm" + /* 11 */ "mmmmmmmmmmm" // Level 4 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "mmmm...mmmm" + /* 0 */ "mmmmmmmmmmm" /* 1 */ "mmmm...mmmm" - /* 2 */ "mmmmc.cmmmm" - /* 3 */ "mmmm.b.mmmm" - /* 4 */ "aaaaaaaaaaa" + /* 2 */ "mmmm...mmmm" + /* 3 */ "mmmmd.dmmmm" + /* 4 */ "mmmm.c.mmmm" /* 5 */ "aaaaaaaaaaa" /* 6 */ "aaaaaaaaaaa" - /* 7 */ "mmmmaaammmm" - /* 8 */ "mmmmmmmmmmm" + /* 7 */ "aaaaaaaaaaa" + /* 8 */ "mmmmaaammmm" /* 9 */ "mmmmmmmmmmm" /* 10 */ "mmmmmmmmmmm" + /* 11 */ "mmmmmmmmmmm" // Level 5 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "mmmmmmmmmmm" - /* 1 */ "mmmm...mmmm" - /* 2 */ "mmmmc.cmmmm" - /* 3 */ "mmmm...mmmm" - /* 4 */ "..c..d..c.." - /* 5 */ "eeeeeeeeeee" - /* 6 */ "..c..b..c.." - /* 7 */ "mmmmaaammmm" + /* 1 */ "mmmmmmmmmmm" + /* 2 */ "mmmm...mmmm" + /* 3 */ "mmmmd.dmmmm" + /* 4 */ "mmmm...mmmm" + /* 5 */ "..d..b..d.." + /* 6 */ "eeeeeeeeeee" + /* 7 */ "..d..c..d.." /* 8 */ "mmmmaaammmm" - /* 9 */ "mmmmmmmmmmm" + /* 9 */ "mmmmaaammmm" /* 10 */ "mmmmmmmmmmm" + /* 11 */ "mmmmmmmmmmm" // Level 6 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "mmmmmmmmmmm" /* 1 */ "mmmmmmmmmmm" - /* 2 */ "mmmmc.cmmmm" - /* 3 */ "mmmm...mmmm" - /* 4 */ "..c.....c.." - /* 5 */ "..........." - /* 6 */ "..c.....c.." - /* 7 */ "mmmm.b.mmmm" - /* 8 */ "mmmmaaammmm" + /* 2 */ "mmmmmmmmmmm" + /* 3 */ "mmmmd.dmmmm" + /* 4 */ "mmmm...mmmm" + /* 5 */ "..d.....d.." + /* 6 */ "..........." + /* 7 */ "..d.....d.." + /* 8 */ "mmmm.c.mmmm" /* 9 */ "mmmmaaammmm" - /* 10 */ "mmmmmmmmmmm" + /* 10 */ "mmmmaaammmm" + /* 11 */ "mmmmmmmmmmm" // Level 7 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "mmmmmmmmmmm" /* 1 */ "mmmmmmmmmmm" - /* 2 */ "mmmmaaammmm" - /* 3 */ "mmmm.f.mmmm" - /* 4 */ "..a.....a.." - /* 5 */ ".gah...gah." - /* 6 */ "..a.....a.." - /* 7 */ "mmmm...mmmm" - /* 8 */ "mmmmcbcmmmm" - /* 9 */ "mmmmaaammmm" + /* 2 */ "mmmmmmmmmmm" + /* 3 */ "mmmmaaammmm" + /* 4 */ "mmmm.f.mmmm" + /* 5 */ "..a.....a.." + /* 6 */ ".gah...gah." + /* 7 */ "..a.....a.." + /* 8 */ "mmmm...mmmm" + /* 9 */ "mmmmdcdmmmm" /* 10 */ "mmmmaaammmm" + /* 11 */ "mmmmaaammmm" // Level 8 /* z\x* 1 */ @@ -1620,11 +1628,12 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 3 */ "mmmmmmmmmmm" /* 4 */ "mmmmmmmmmmm" /* 5 */ "mmmmmmmmmmm" - /* 6 */ "mmmm...mmmm" + /* 6 */ "mmmmmmmmmmm" /* 7 */ "mmmm...mmmm" - /* 8 */ "mmmmc.cmmmm" - /* 9 */ "mmmm.b.mmmm" - /* 10 */ "mmmmaaammmm" + /* 8 */ "mmmm...mmmm" + /* 9 */ "mmmmd.dmmmm" + /* 10 */ "mmmm.c.mmmm" + /* 11 */ "mmmmaaammmm" // Level 9 /* z\x* 1 */ @@ -1636,10 +1645,11 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 4 */ "mmmmmmmmmmm" /* 5 */ "mmmmmmmmmmm" /* 6 */ "mmmmmmmmmmm" - /* 7 */ "mmmm...mmmm" - /* 8 */ "mmmmc.cmmmm" - /* 9 */ "mmmm...mmmm" - /* 10 */ "mmmm.d.mmmm" + /* 7 */ "mmmmmmmmmmm" + /* 8 */ "mmmm...mmmm" + /* 9 */ "mmmmd.dmmmm" + /* 10 */ "mmmm...mmmm" + /* 11 */ "mmmm.b.mmmm" // Level 10 /* z\x* 1 */ @@ -1652,9 +1662,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 5 */ "mmmmmmmmmmm" /* 6 */ "mmmmmmmmmmm" /* 7 */ "mmmmmmmmmmm" - /* 8 */ "mmmmc.cmmmm" - /* 9 */ "mmmm...mmmm" + /* 8 */ "mmmmmmmmmmm" + /* 9 */ "mmmmd.dmmmm" /* 10 */ "mmmm...mmmm" + /* 11 */ "mmmm...mmmm" // Level 11 /* z\x* 1 */ @@ -1667,19 +1678,20 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 5 */ "mmmmmmmmmmm" /* 6 */ "mmmmmmmmmmm" /* 7 */ "mmmmmmmmmmm" - /* 8 */ "mmmmaaammmm" - /* 9 */ "mmmm.f.mmmm" - /* 10 */ "mmmm...mmmm", + /* 8 */ "mmmmmmmmmmm" + /* 9 */ "mmmmaaammmm" + /* 10 */ "mmmm.f.mmmm" + /* 11 */ "mmmm...mmmm", // Connectors: - "3: 0, 5, 5: 4\n" /* Type 3, direction X- */ - "-3: 0, 5, 5: 4\n" /* Type -3, direction X- */ - "3: 10, 5, 5: 5\n" /* Type 3, direction X+ */ - "-3: 10, 5, 5: 5\n" /* Type -3, direction X+ */ - "3: 5, 9, 10: 3\n" /* Type 3, direction Z+ */ - "-3: 5, 9, 10: 3\n" /* Type -3, direction Z+ */ - "3: 5, 1, 0: 2\n" /* Type 3, direction Z- */ - "-3: 5, 1, 0: 2\n" /* Type -3, direction Z- */, + "3: 0, 5, 6: 4\n" /* Type 3, direction X- */ + "-3: 0, 5, 6: 4\n" /* Type -3, direction X- */ + "3: 10, 5, 6: 5\n" /* Type 3, direction X+ */ + "-3: 10, 5, 6: 5\n" /* Type -3, direction X+ */ + "3: 5, 9, 11: 3\n" /* Type 3, direction Z+ */ + "-3: 5, 9, 11: 3\n" /* Type -3, direction Z+ */ + "3: 5, 1, 1: 2\n" /* Type 3, direction Z- */ + "-3: 5, 1, 1: 2\n" /* Type -3, direction Z- */, // AllowedRotations: 7, /* 1, 2, 3 CCW rotation allowed */ @@ -3143,17 +3155,17 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // Level 0 /* z\x* */ /* * 0123456789 */ - /* 0 */ "mmmmmmmmmm" - /* 1 */ "maaaaammmm" - /* 2 */ "maaaaammmm" - /* 3 */ "maaaaabbbb" + /* 0 */ ".........." + /* 1 */ ".aaaaa...." + /* 2 */ ".aaaaa...." + /* 3 */ ".aaaaabbbb" /* 4 */ "aaaaaabbbb" /* 5 */ "aaaaaabbbb" /* 6 */ "aaaaaabbbb" - /* 7 */ "maaaaabbbb" - /* 8 */ "maaaaabbbb" - /* 9 */ "maaaaammmm" - /* 10 */ "mmmmmmmmmm" + /* 7 */ ".aaaaabbbb" + /* 8 */ ".aaaaabbbb" + /* 9 */ ".aaaaa...." + /* 10 */ ".........." // Level 1 /* z\x* */ -- cgit v1.2.3 From 7672ca7eefc7233b507938d0592d1f565191d0ee Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Sat, 31 May 2014 22:06:14 +0200 Subject: Added an initial version of the underwater base generator. --- src/Generating/ComposableGenerator.cpp | 8 + src/Generating/Prefabs/UnderwaterBasePrefabs.cpp | 1888 ++++++++++++++++++++++ src/Generating/Prefabs/UnderwaterBasePrefabs.h | 15 + src/Generating/UnderwaterBaseGen.cpp | 142 ++ src/Generating/UnderwaterBaseGen.h | 50 + 5 files changed, 2103 insertions(+) create mode 100644 src/Generating/Prefabs/UnderwaterBasePrefabs.cpp create mode 100644 src/Generating/Prefabs/UnderwaterBasePrefabs.h create mode 100644 src/Generating/UnderwaterBaseGen.cpp create mode 100644 src/Generating/UnderwaterBaseGen.h (limited to 'src/Generating') diff --git a/src/Generating/ComposableGenerator.cpp b/src/Generating/ComposableGenerator.cpp index 4dd626ed4..cf736ce64 100644 --- a/src/Generating/ComposableGenerator.cpp +++ b/src/Generating/ComposableGenerator.cpp @@ -25,6 +25,7 @@ #include "Noise3DGenerator.h" #include "POCPieceGenerator.h" #include "Ravines.h" +#include "UnderwaterBaseGen.h" #include "VillageGen.h" @@ -406,6 +407,13 @@ void cComposableGenerator::InitFinishGens(cIniFile & a_IniFile) { m_FinishGens.push_back(new cStructGenTrees(Seed, m_BiomeGen, m_HeightGen, m_CompositionGen)); } + else if (NoCaseCompare(*itr, "UnderwaterBases") == 0) + { + int GridSize = a_IniFile.GetValueSetI("Generator", "UnderwaterBaseGridSize", 1024); + int MaxDepth = a_IniFile.GetValueSetI("Generator", "UnderwaterBaseMaxDepth", 7); + int MaxSize = a_IniFile.GetValueSetI("Generator", "UnderwaterBaseMaxSize", 128); + m_FinishGens.push_back(new cUnderwaterBaseGen(Seed, GridSize, MaxDepth, MaxSize, *m_BiomeGen)); + } else if (NoCaseCompare(*itr, "Villages") == 0) { int GridSize = a_IniFile.GetValueSetI("Generator", "VillageGridSize", 384); diff --git a/src/Generating/Prefabs/UnderwaterBasePrefabs.cpp b/src/Generating/Prefabs/UnderwaterBasePrefabs.cpp new file mode 100644 index 000000000..54d1b6745 --- /dev/null +++ b/src/Generating/Prefabs/UnderwaterBasePrefabs.cpp @@ -0,0 +1,1888 @@ + +// UnderwaterBasePrefabs.cpp + +// Defines the prefabs in the group UnderwaterBase + +// NOTE: This file has been generated automatically by GalExport! +// Any manual changes will be overwritten by the next automatic export! + +#include "Globals.h" +#include "UnderwaterBasePrefabs.h" + + + + + +const cPrefab::sDef g_UnderwaterBasePrefabs[] = +{ + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Corridor16: + // The data has been exported from the gallery Water, area index 25, ID 566, created by xoft + { + // Size: + 16, 4, 4, // SizeX = 16, SizeY = 4, SizeZ = 4 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 15, 3, 3, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 5: 5\n" /* wood */ + "b: 5: 0\n" /* wood */ + "c: 64: 2\n" /* wooddoorblock */ + "d: 64: 0\n" /* wooddoorblock */ + "e: 20: 0\n" /* glass */ + "f: 64: 9\n" /* wooddoorblock */ + "g: 76: 3\n" /* redstonetorchon */ + "h: 64: 8\n" /* wooddoorblock */ + "i: 76: 4\n" /* redstonetorchon */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmmmmmmmmmmm" + /* 1 */ "abbbbbbbbbbbbbba" + /* 2 */ "abbbbbbbbbbbbbba" + /* 3 */ "mmmmmmmmmmmmmmmm" + + // Level 1 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "abbbbbbbbbbbbbba" + /* 1 */ "c..............d" + /* 2 */ "c..............d" + /* 3 */ "abbbbbbbbbbbbbba" + + // Level 2 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "abeebbbeebbbeeba" + /* 1 */ "f.........g....h" + /* 2 */ "h....i.........f" + /* 3 */ "abeebbbeebbbeeba" + + // Level 3 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "abbbbbbbbbbbbbba" + /* 1 */ "abbbbbbbbbbbbbba" + /* 2 */ "abbbbbbbbbbbbbba" + /* 3 */ "abbbbbbbbbbbbbba", + + // Connectors: + "1: 0, 1, 1: 4\n" /* Type 1, direction X- */ + "-1: 0, 1, 2: 4\n" /* Type -1, direction X- */ + "1: 15, 1, 2: 5\n" /* Type 1, direction X+ */ + "-1: 15, 1, 1: 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: + false, + }, // Corridor16 + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // CorridorCorner: + // The data has been exported from the gallery Water, area index 26, ID 569, created by xoft + { + // Size: + 10, 4, 10, // SizeX = 10, SizeY = 4, SizeZ = 10 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 9, 3, 9, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 5: 5\n" /* wood */ + "b: 5: 0\n" /* wood */ + "c: 64: 5\n" /* wooddoorblock */ + "d: 64: 2\n" /* wooddoorblock */ + "e: 64: 4\n" /* wooddoorblock */ + "f: 64: 1\n" /* wooddoorblock */ + "g: 20: 0\n" /* glass */ + "h: 64:12\n" /* wooddoorblock */ + "i: 76: 3\n" /* redstonetorchon */ + "j: 64: 8\n" /* wooddoorblock */ + "k: 76: 2\n" /* redstonetorchon */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ "mmmmmmmmmm" + /* 1 */ "abbbbbmmmm" + /* 2 */ "abbbbbbbmm" + /* 3 */ "mmmbbbbbmm" + /* 4 */ "mmmmmbbbbm" + /* 5 */ "mmmmmmbbbm" + /* 6 */ "mmmmmmbbbm" + /* 7 */ "mmmmmmmbbm" + /* 8 */ "mmmmmmmbbm" + /* 9 */ "mmmmmmmaam" + + // Level 1 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ "abbbbbmmmm" + /* 1 */ "c.....bbmm" + /* 2 */ "d.......bm" + /* 3 */ "abb.....bm" + /* 4 */ "mmmbb....b" + /* 5 */ "mmmmmb...b" + /* 6 */ "mmmmmb...b" + /* 7 */ "mmmmmmb..b" + /* 8 */ "mmmmmmb..b" + /* 9 */ "mmmmmmaefa" + + // Level 2 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ "abggbbmmmm" + /* 1 */ "h...i.bbmm" + /* 2 */ "j.......bm" + /* 3 */ "abb.....bm" + /* 4 */ "mmmbb....b" + /* 5 */ "mmmmmb..kb" + /* 6 */ "mmmmmb...g" + /* 7 */ "mmmmmmb..g" + /* 8 */ "mmmmmmb..b" + /* 9 */ "mmmmmmahja" + + // Level 3 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ "abbbbbmmmm" + /* 1 */ "abbbbbbbmm" + /* 2 */ "abbbbbbbbm" + /* 3 */ "abbbbbbbbm" + /* 4 */ "mmmbbbbbbb" + /* 5 */ "mmmmmbbbbb" + /* 6 */ "mmmmmbbbbb" + /* 7 */ "mmmmmmbbbb" + /* 8 */ "mmmmmmbbbb" + /* 9 */ "mmmmmmaaaa", + + // Connectors: + "1: 7, 1, 9: 3\n" /* Type 1, direction Z+ */ + "-1: 8, 1, 9: 3\n" /* Type -1, direction Z+ */ + "1: 0, 1, 1: 4\n" /* Type 1, direction X- */ + "-1: 0, 1, 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: + false, + }, // CorridorCorner + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // CorridorCrossing: + // The data has been exported from the gallery Water, area index 31, ID 581, created by LO1ZB + { + // Size: + 16, 4, 16, // SizeX = 16, SizeY = 4, SizeZ = 16 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 15, 3, 15, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 5: 5\n" /* wood */ + "b: 5: 0\n" /* wood */ + "c: 64: 3\n" /* wooddoorblock */ + "d: 64: 6\n" /* wooddoorblock */ + "e: 64: 5\n" /* wooddoorblock */ + "f: 64: 0\n" /* wooddoorblock */ + "g: 64: 2\n" /* wooddoorblock */ + "h: 64: 1\n" /* wooddoorblock */ + "i: 64: 8\n" /* wooddoorblock */ + "j: 64:12\n" /* wooddoorblock */ + "k: 20: 0\n" /* glass */ + "l: 76: 1\n" /* redstonetorchon */ + "m: 19: 0\n" /* sponge */ + "n: 76: 3\n" /* redstonetorchon */ + "o: 76: 4\n" /* redstonetorchon */ + "p: 64: 9\n" /* wooddoorblock */ + "q: 76: 2\n" /* redstonetorchon */, + + // Block data: + // Level 0 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmmaammmmmmm" + /* 1 */ "mmmmmmmbbmmmmmmm" + /* 2 */ "mmmmmmmbbmmmmmmm" + /* 3 */ "mmmmmmmbbmmmmmmm" + /* 4 */ "mmmmmmmbbmmmmmmm" + /* 5 */ "mmmmmmmbbmmmmmmm" + /* 6 */ "mmmmmmmbbmmmmmmm" + /* 7 */ "abbbbbbbbbbbbbba" + /* 8 */ "abbbbbbbbbbbbbba" + /* 9 */ "mmmmmmmbbmmmmmmm" + /* 10 */ "mmmmmmmbbmmmmmmm" + /* 11 */ "mmmmmmmbbmmmmmmm" + /* 12 */ "mmmmmmmbbmmmmmmm" + /* 13 */ "mmmmmmmbbmmmmmmm" + /* 14 */ "mmmmmmmbbmmmmmmm" + /* 15 */ "mmmmmmmaammmmmmm" + + // Level 1 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmacdammmmmm" + /* 1 */ "mmmmmmb..bmmmmmm" + /* 2 */ "mmmmmmb..bmmmmmm" + /* 3 */ "mmmmmmb..bmmmmmm" + /* 4 */ "mmmmmmb..bmmmmmm" + /* 5 */ "mmmmmmb..bmmmmmm" + /* 6 */ "abbbbbb..bbbbbba" + /* 7 */ "e..............f" + /* 8 */ "g..............f" + /* 9 */ "abbbbbb..bbbbbba" + /* 10 */ "mmmmmmb..bmmmmmm" + /* 11 */ "mmmmmmb..bmmmmmm" + /* 12 */ "mmmmmmb..bmmmmmm" + /* 13 */ "mmmmmmb..bmmmmmm" + /* 14 */ "mmmmmmb..bmmmmmm" + /* 15 */ "mmmmmmahhammmmmm" + + // Level 2 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmaijammmmmm" + /* 1 */ "mmmmmmb..bmmmmmm" + /* 2 */ "mmmmmmk..kmmmmmm" + /* 3 */ "mmmmmmk..kmmmmmm" + /* 4 */ "mmmmmmb..bmmmmmm" + /* 5 */ "mmmmmmbl.bmmmmmm" + /* 6 */ "abkkbbb..bbbkkba" + /* 7 */ "j.........n....i" + /* 8 */ "i....o.........p" + /* 9 */ "abkkbbb..bbbkkba" + /* 10 */ "mmmmmmb.qbmmmmmm" + /* 11 */ "mmmmmmb..bmmmmmm" + /* 12 */ "mmmmmmk..kmmmmmm" + /* 13 */ "mmmmmmk..kmmmmmm" + /* 14 */ "mmmmmmb..bmmmmmm" + /* 15 */ "mmmmmmapiammmmmm" + + // Level 3 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmaaaammmmmm" + /* 1 */ "mmmmmmbbbbmmmmmm" + /* 2 */ "mmmmmmbbbbmmmmmm" + /* 3 */ "mmmmmmbbbbmmmmmm" + /* 4 */ "mmmmmmbbbbmmmmmm" + /* 5 */ "mmmmmmbbbbmmmmmm" + /* 6 */ "abbbbbbbbbbbbbba" + /* 7 */ "abbbbbbbbbbbbbba" + /* 8 */ "abbbbbbbbbbbbbba" + /* 9 */ "abbbbbbbbbbbbbba" + /* 10 */ "mmmmmmbbbbmmmmmm" + /* 11 */ "mmmmmmbbbbmmmmmm" + /* 12 */ "mmmmmmbbbbmmmmmm" + /* 13 */ "mmmmmmbbbbmmmmmm" + /* 14 */ "mmmmmmbbbbmmmmmm" + /* 15 */ "mmmmmmaaaammmmmm", + + // Connectors: + "1: 0, 1, 7: 4\n" /* Type 1, direction X- */ + "-1: 0, 1, 8: 4\n" /* Type -1, direction X- */ + "1: 7, 1, 15: 3\n" /* Type 1, direction Z+ */ + "-1: 8, 1, 15: 3\n" /* Type -1, direction Z+ */ + "1: 8, 1, 0: 2\n" /* Type 1, direction Z- */ + "-1: 7, 1, 0: 2\n" /* Type -1, direction Z- */ + "1: 15, 1, 8: 5\n" /* Type 1, direction X+ */ + "-1: 15, 1, 7: 5\n" /* Type -1, direction X+ */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + false, + }, // CorridorCrossing + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // CorridorStairs: + // The data has been exported from the gallery Water, area index 32, ID 582, created by LO1ZB + { + // Size: + 16, 9, 4, // SizeX = 16, SizeY = 9, SizeZ = 4 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 15, 8, 3, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 5: 5\n" /* wood */ + "b: 5: 0\n" /* wood */ + "c: 64: 2\n" /* wooddoorblock */ + "d: 53: 0\n" /* woodstairs */ + "e: 20: 0\n" /* glass */ + "f: 64: 9\n" /* wooddoorblock */ + "g: 64: 8\n" /* wooddoorblock */ + "h: 76: 4\n" /* redstonetorchon */ + "i: 64: 0\n" /* wooddoorblock */ + "j: 64: 7\n" /* wooddoorblock */ + "k: 76: 3\n" /* redstonetorchon */ + "l: 64:12\n" /* wooddoorblock */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmmmmmmmmmmm" + /* 1 */ "abbbbbbbmmmmmmmm" + /* 2 */ "abbbbbbbmmmmmmmm" + /* 3 */ "mmmmmmmmmmmmmmmm" + + // Level 1 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "abbbbbbbmmmmmmmm" + /* 1 */ "c.....dbbmmmmmmm" + /* 2 */ "c.....dbbmmmmmmm" + /* 3 */ "abbbbbbbmmmmmmmm" + + // Level 2 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "abeebbbbbmmmmmmm" + /* 1 */ "f......dbbmmmmmm" + /* 2 */ "g...h..dbbmmmmmm" + /* 3 */ "abeebbbbbmmmmmmm" + + // Level 3 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "abbbbbbbbbmmmmmm" + /* 1 */ "abbbb...dbbmmmmm" + /* 2 */ "abbbb...dbbmmmmm" + /* 3 */ "abbbbbbbbbmmmmmm" + + // Level 4 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmbbbbbmmmmmm" + /* 1 */ "mmmmmb...dbbmmmm" + /* 2 */ "mmmmmb...dbbmmmm" + /* 3 */ "mmmmmbbbbbmmmmmm" + + // Level 5 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmbbbbbmmmmm" + /* 1 */ "mmmmmmb...dbbbba" + /* 2 */ "mmmmmmb...dbbbba" + /* 3 */ "mmmmmmbbbbbmmmmm" + + // Level 6 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmmbbbbbbbba" + /* 1 */ "mmmmmmmb.......i" + /* 2 */ "mmmmmmmb.......j" + /* 3 */ "mmmmmmmbbbbbbbba" + + // Level 7 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmmmbbbeebba" + /* 1 */ "mmmmmmmmb.k....g" + /* 2 */ "mmmmmmmmb......l" + /* 3 */ "mmmmmmmmbbbeebba" + + // Level 8 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmmmmbbbbbba" + /* 1 */ "mmmmmmmmmbbbbbba" + /* 2 */ "mmmmmmmmmbbbbbba" + /* 3 */ "mmmmmmmmmbbbbbba", + + // Connectors: + "1: 0, 1, 1: 4\n" /* Type 1, direction X- */ + "-1: 0, 1, 2: 4\n" /* Type -1, direction X- */ + "1: 15, 6, 2: 5\n" /* Type 1, direction X+ */ + "-1: 15, 6, 1: 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: + false, + }, // CorridorStairs + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // CorridorTee: + // The data has been exported from the gallery Water, area index 29, ID 576, created by LO1ZB + { + // Size: + 16, 4, 10, // SizeX = 16, SizeY = 4, SizeZ = 10 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 15, 3, 9, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 5: 5\n" /* wood */ + "b: 5: 0\n" /* wood */ + "c: 64: 3\n" /* wooddoorblock */ + "d: 64: 6\n" /* wooddoorblock */ + "e: 64: 5\n" /* wooddoorblock */ + "f: 64: 0\n" /* wooddoorblock */ + "g: 64: 2\n" /* wooddoorblock */ + "h: 64: 8\n" /* wooddoorblock */ + "i: 64:12\n" /* wooddoorblock */ + "j: 20: 0\n" /* glass */ + "k: 76: 1\n" /* redstonetorchon */ + "l: 76: 3\n" /* redstonetorchon */ + "m: 19: 0\n" /* sponge */ + "n: 76: 4\n" /* redstonetorchon */ + "o: 64: 9\n" /* wooddoorblock */, + + // Block data: + // Level 0 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmmaammmmmmm" + /* 1 */ "mmmmmmmbbmmmmmmm" + /* 2 */ "mmmmmmmbbmmmmmmm" + /* 3 */ "mmmmmmmbbmmmmmmm" + /* 4 */ "mmmmmmmbbmmmmmmm" + /* 5 */ "mmmmmmmbbmmmmmmm" + /* 6 */ "mmmmmmmbbmmmmmmm" + /* 7 */ "abbbbbbbbbbbbbba" + /* 8 */ "abbbbbbbbbbbbbba" + /* 9 */ "mmmmmmmmmmmmmmmm" + + // Level 1 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmacdammmmmm" + /* 1 */ "mmmmmmb..bmmmmmm" + /* 2 */ "mmmmmmb..bmmmmmm" + /* 3 */ "mmmmmmb..bmmmmmm" + /* 4 */ "mmmmmmb..bmmmmmm" + /* 5 */ "mmmmmmb..bmmmmmm" + /* 6 */ "abbbbbb..bbbbbba" + /* 7 */ "e..............f" + /* 8 */ "g..............f" + /* 9 */ "abbbbbbbbbbbbbba" + + // Level 2 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmahiammmmmm" + /* 1 */ "mmmmmmb..bmmmmmm" + /* 2 */ "mmmmmmj..jmmmmmm" + /* 3 */ "mmmmmmj..jmmmmmm" + /* 4 */ "mmmmmmb..bmmmmmm" + /* 5 */ "mmmmmmbk.bmmmmmm" + /* 6 */ "abjjbbb..bbbjjba" + /* 7 */ "i.........l....h" + /* 8 */ "h....n.........o" + /* 9 */ "abjjbbbjjbbbjjba" + + // Level 3 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmaaaammmmmm" + /* 1 */ "mmmmmmbbbbmmmmmm" + /* 2 */ "mmmmmmbbbbmmmmmm" + /* 3 */ "mmmmmmbbbbmmmmmm" + /* 4 */ "mmmmmmbbbbmmmmmm" + /* 5 */ "mmmmmmbbbbmmmmmm" + /* 6 */ "abbbbbbbbbbbbbba" + /* 7 */ "abbbbbbbbbbbbbba" + /* 8 */ "abbbbbbbbbbbbbba" + /* 9 */ "abbbbbbbbbbbbbba", + + // Connectors: + "1: 0, 1, 7: 4\n" /* Type 1, direction X- */ + "-1: 0, 1, 8: 4\n" /* Type -1, direction X- */ + "1: 8, 1, 0: 2\n" /* Type 1, direction Z- */ + "-1: 7, 1, 0: 2\n" /* Type -1, direction Z- */ + "1: 15, 1, 8: 5\n" /* Type 1, direction X+ */ + "-1: 15, 1, 7: 5\n" /* Type -1, direction X+ */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + false, + }, // CorridorTee + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // ViewingCorner: + // The data has been exported from the gallery Water, area index 40, ID 613, created by LO1ZB + { + // Size: + 14, 7, 14, // SizeX = 14, SizeY = 7, SizeZ = 14 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 13, 6, 13, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 5: 0\n" /* wood */ + "b: 20: 0\n" /* glass */ + "c: 5: 5\n" /* wood */ + "d: 64: 0\n" /* wooddoorblock */ + "e: 64: 1\n" /* wooddoorblock */ + "f: 64: 8\n" /* wooddoorblock */ + "g: 64: 9\n" /* wooddoorblock */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "mmmmmmmmmmmmmm" + /* 1 */ "mmmmaaaammmmmm" + /* 2 */ "mmmaabbaammmmm" + /* 3 */ "mmaabbbbaammmm" + /* 4 */ "maabbbbbbaammm" + /* 5 */ "mabbbbbbbbaaac" + /* 6 */ "mabbbbbbbbaaac" + /* 7 */ "maabbbbbbaammm" + /* 8 */ "mmaabbbbaammmm" + /* 9 */ "mmmaabbaammmmm" + /* 10 */ "mmmmaaaammmmmm" + /* 11 */ "mmmmmaammmmmmm" + /* 12 */ "mmmmmaammmmmmm" + /* 13 */ "mmmmmccmmmmmmm" + + // Level 1 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "mmmmmaammmmmmm" + /* 1 */ "mmmaa..aammmmm" + /* 2 */ "mmaa....aammmm" + /* 3 */ "maa......aammm" + /* 4 */ "ma........aaac" + /* 5 */ "a............d" + /* 6 */ "a............d" + /* 7 */ "ma........aaac" + /* 8 */ "maa......aammm" + /* 9 */ "mmaa....aammmm" + /* 10 */ "mmmaa..aammmmm" + /* 11 */ "mmmma..ammmmmm" + /* 12 */ "mmmma..ammmmmm" + /* 13 */ "mmmmceecmmmmmm" + + // Level 2 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "mmmmmbbmmmmmmm" + /* 1 */ "mmmbb..bbmmmmm" + /* 2 */ "mmbb....bbmmmm" + /* 3 */ "mbb......bbmmm" + /* 4 */ "mb........bbac" + /* 5 */ "b............f" + /* 6 */ "b............g" + /* 7 */ "mb........bbac" + /* 8 */ "mbb......bbmmm" + /* 9 */ "mmbb....bbmmmm" + /* 10 */ "mmmbb..bbmmmmm" + /* 11 */ "mmmmb..bmmmmmm" + /* 12 */ "mmmma..ammmmmm" + /* 13 */ "mmmmcgfcmmmmmm" + + // Level 3 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "mmmmmbbmmmmmmm" + /* 1 */ "mmmbb..bbmmmmm" + /* 2 */ "mmbb....bbmmmm" + /* 3 */ "mbb......bbmmm" + /* 4 */ "mb........bbac" + /* 5 */ "b..........bac" + /* 6 */ "b..........bac" + /* 7 */ "mb........bbac" + /* 8 */ "mbb......bbmmm" + /* 9 */ "mmbb....bbmmmm" + /* 10 */ "mmmbb..bbmmmmm" + /* 11 */ "mmmmbbbbmmmmmm" + /* 12 */ "mmmmaaaammmmmm" + /* 13 */ "mmmmccccmmmmmm" + + // Level 4 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "mmmmmmmmmmmmmm" + /* 1 */ "mmmmmbbmmmmmmm" + /* 2 */ "mmmmb..bmmmmmm" + /* 3 */ "mmmb....bmmmmm" + /* 4 */ "mmb......bmmmm" + /* 5 */ "mb........bmmm" + /* 6 */ "mb........bmmm" + /* 7 */ "mmb......bmmmm" + /* 8 */ "mmmbb...bmmmmm" + /* 9 */ "mmmmb..bmmmmmm" + /* 10 */ "mmmmmbbmmmmmmm" + /* 11 */ "mmmmmmmmmmmmmm" + /* 12 */ "mmmmmmmmmmmmmm" + /* 13 */ "mmmmmmmmmmmmmm" + + // Level 5 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "mmmmmmmmmmmmmm" + /* 1 */ "mmmmmmmmmmmmmm" + /* 2 */ "mmmmmbbmmmmmmm" + /* 3 */ "mmmmb..bmmmmmm" + /* 4 */ "mmmb....bmmmmm" + /* 5 */ "mmb......bmmmm" + /* 6 */ "mmb......bmmmm" + /* 7 */ "mmmb....bmmmmm" + /* 8 */ "mmmmb.bbmmmmmm" + /* 9 */ "mmmmmbbmmmmmmm" + /* 10 */ "mmmmmmmmmmmmmm" + /* 11 */ "mmmmmmmmmmmmmm" + /* 12 */ "mmmmmmmmmmmmmm" + /* 13 */ "mmmmmmmmmmmmmm" + + // Level 6 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "mmmmmmmmmmmmmm" + /* 1 */ "mmmmmmmmmmmmmm" + /* 2 */ "mmmmmmmmmmmmmm" + /* 3 */ "mmmmmbbmmmmmmm" + /* 4 */ "mmmmbbbbmmmmmm" + /* 5 */ "mmmbbbbbbmmmmm" + /* 6 */ "mmmbbbbbbmmmmm" + /* 7 */ "mmmmbbbbmmmmmm" + /* 8 */ "mmmmmbbmmmmmmm" + /* 9 */ "mmmmmmmmmmmmmm" + /* 10 */ "mmmmmmmmmmmmmm" + /* 11 */ "mmmmmmmmmmmmmm" + /* 12 */ "mmmmmmmmmmmmmm" + /* 13 */ "mmmmmmmmmmmmmm", + + // Connectors: + "1: 13, 1, 6: 5\n" /* Type 1, direction X+ */ + "-1: 13, 1, 5: 5\n" /* Type -1, direction X+ */ + "1: 5, 1, 13: 3\n" /* Type 1, direction Z+ */ + "-1: 6, 1, 13: 3\n" /* Type -1, direction Z+ */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + false, + }, // ViewingCorner + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // ViewingCorridor: + // The data has been exported from the gallery Water, area index 27, ID 571, created by LO1ZB + { + // Size: + 16, 5, 6, // SizeX = 16, SizeY = 5, SizeZ = 6 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 15, 4, 5, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 5: 0\n" /* wood */ + "b: 5: 5\n" /* wood */ + "c: 20: 0\n" /* glass */ + "d: 64: 1\n" /* wooddoorblock */ + "e: 64: 0\n" /* wooddoorblock */ + "f: 64: 6\n" /* wooddoorblock */ + "g: 76: 3\n" /* redstonetorchon */ + "h: 64: 8\n" /* wooddoorblock */ + "i: 64:12\n" /* wooddoorblock */ + "j: 64: 9\n" /* wooddoorblock */ + "k: 76: 4\n" /* redstonetorchon */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmaaaaaaaaaaaamm" + /* 1 */ "mmaaaaaaaaaaaamm" + /* 2 */ "baaccccccccccaab" + /* 3 */ "baaccccccccccaab" + /* 4 */ "mmaaaaaaaaaaaamm" + /* 5 */ "mmmaaaaaaaaaammm" + + // Level 1 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmaccccccccccamm" + /* 1 */ "ba............ab" + /* 2 */ "d..............e" + /* 3 */ "f..............e" + /* 4 */ "ba............ab" + /* 5 */ "mmaccccccccccamm" + + // Level 2 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmaccccccccccamm" + /* 1 */ "bag..........gab" + /* 2 */ "h..............h" + /* 3 */ "i..............j" + /* 4 */ "bak..........kab" + /* 5 */ "mmaccccccccccamm" + + // Level 3 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmaccccccccccamm" + /* 1 */ "ba............ab" + /* 2 */ "ba............ab" + /* 3 */ "ba............ab" + /* 4 */ "ba............ab" + /* 5 */ "mmaccccccccccamm" + + // Level 4 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmaaaaaaaaaammm" + /* 1 */ "mmaaaaaaaaaaaamm" + /* 2 */ "mmaccccccccccamm" + /* 3 */ "mmaccccccccccamm" + /* 4 */ "mmaaaaaaaaaaaamm" + /* 5 */ "mmmaaaaaaaaaammm", + + // Connectors: + "1: 0, 1, 2: 4\n" /* Type 1, direction X- */ + "-1: 0, 1, 3: 4\n" /* Type -1, direction X- */ + "1: 15, 1, 3: 5\n" /* Type 1, direction X+ */ + "-1: 15, 1, 2: 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: + false, + }, // ViewingCorridor + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // ViewingCorridorBulge: + // The data has been exported from the gallery Water, area index 42, ID 615, created by LO1ZB + { + // Size: + 12, 8, 16, // SizeX = 12, SizeY = 8, SizeZ = 16 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 11, 7, 15, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 5: 5\n" /* wood */ + "b: 5: 0\n" /* wood */ + "c: 20: 0\n" /* glass */ + "d: 64: 3\n" /* wooddoorblock */ + "e: 64: 1\n" /* wooddoorblock */ + "f: 64: 8\n" /* wooddoorblock */ + "g: 64: 9\n" /* wooddoorblock */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "mmmmmaammmmm" + /* 1 */ "mmmmmbbmmmmm" + /* 2 */ "mmmmmbbmmmmm" + /* 3 */ "mmmmbbbbmmmm" + /* 4 */ "mmmbbccbbmmm" + /* 5 */ "mmbbccccbbmm" + /* 6 */ "mbbccccccbbm" + /* 7 */ "mbccccccccbm" + /* 8 */ "mbccccccccbm" + /* 9 */ "mbbccccccbbm" + /* 10 */ "mmbbccccbbmm" + /* 11 */ "mmmbbccbbmmm" + /* 12 */ "mmmmbbbbmmmm" + /* 13 */ "mmmmmbbmmmmm" + /* 14 */ "mmmmmbbmmmmm" + /* 15 */ "mmmmmaammmmm" + + // Level 1 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "mmmmaddammmm" + /* 1 */ "mmmmb..bmmmm" + /* 2 */ "mmmmb..bmmmm" + /* 3 */ "mmmbb..bbmmm" + /* 4 */ "mmbb....bbmm" + /* 5 */ "mbb......bbm" + /* 6 */ "mb........bm" + /* 7 */ "b..........b" + /* 8 */ "b..........b" + /* 9 */ "mb........bm" + /* 10 */ "mbb......bbm" + /* 11 */ "mmbb....bbmm" + /* 12 */ "mmmbb..bbmmm" + /* 13 */ "mmmmb..bmmmm" + /* 14 */ "mmmmb..bmmmm" + /* 15 */ "mmmmaeeammmm" + + // Level 2 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "mmmmaffammmm" + /* 1 */ "mmmmb..bmmmm" + /* 2 */ "mmmmc..cmmmm" + /* 3 */ "mmmcc..ccmmm" + /* 4 */ "mmcc....ccmm" + /* 5 */ "mcc......ccm" + /* 6 */ "mc........cm" + /* 7 */ "c..........c" + /* 8 */ "c..........c" + /* 9 */ "mc........cm" + /* 10 */ "mcc......ccm" + /* 11 */ "mmcc....ccmm" + /* 12 */ "mmmcc..ccmmm" + /* 13 */ "mmmmc..cmmmm" + /* 14 */ "mmmmb..bmmmm" + /* 15 */ "mmmmagfammmm" + + // Level 3 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "mmmmaaaammmm" + /* 1 */ "mmmmbbbbmmmm" + /* 2 */ "mmmmccccmmmm" + /* 3 */ "mmmcc..ccmmm" + /* 4 */ "mmcc....ccmm" + /* 5 */ "mcc......ccm" + /* 6 */ "mc........cm" + /* 7 */ "c..........c" + /* 8 */ "c..........c" + /* 9 */ "mc........cm" + /* 10 */ "mcc......ccm" + /* 11 */ "mmcc....ccmm" + /* 12 */ "mmmcc..ccmmm" + /* 13 */ "mmmmccccmmmm" + /* 14 */ "mmmmbbbbmmmm" + /* 15 */ "mmmmaaaammmm" + + // Level 4 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "mmmmmmmmmmmm" + /* 1 */ "mmmmmmmmmmmm" + /* 2 */ "mmmmmmmmmmmm" + /* 3 */ "mmmmmccmmmmm" + /* 4 */ "mmmmc..cmmmm" + /* 5 */ "mmmc....cmmm" + /* 6 */ "mmc......cmm" + /* 7 */ "mc........cm" + /* 8 */ "mc........cm" + /* 9 */ "mmc......cmm" + /* 10 */ "mmmcc...cmmm" + /* 11 */ "mmmmc..cmmmm" + /* 12 */ "mmmmmccmmmmm" + /* 13 */ "mmmmmmmmmmmm" + /* 14 */ "mmmmmmmmmmmm" + /* 15 */ "mmmmmmmmmmmm" + + // Level 5 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "mmmmmmmmmmmm" + /* 1 */ "mmmmmmmmmmmm" + /* 2 */ "mmmmmmmmmmmm" + /* 3 */ "mmmmmmmmmmmm" + /* 4 */ "mmmmmccmmmmm" + /* 5 */ "mmmmc..cmmmm" + /* 6 */ "mmmc....cmmm" + /* 7 */ "mmc......cmm" + /* 8 */ "mmc......cmm" + /* 9 */ "mmmc....cmmm" + /* 10 */ "mmmmc.ccmmmm" + /* 11 */ "mmmmmccmmmmm" + /* 12 */ "mmmmmmmmmmmm" + /* 13 */ "mmmmmmmmmmmm" + /* 14 */ "mmmmmmmmmmmm" + /* 15 */ "mmmmmmmmmmmm" + + // Level 6 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "mmmmmmmmmmmm" + /* 1 */ "mmmmmmmmmmmm" + /* 2 */ "mmmmmmmmmmmm" + /* 3 */ "mmmmmmmmmmmm" + /* 4 */ "mmmmmmmmmmmm" + /* 5 */ "mmmmmccmmmmm" + /* 6 */ "mmmmccccmmmm" + /* 7 */ "mmmccccccmmm" + /* 8 */ "mmmccccccmmm" + /* 9 */ "mmmmccccmmmm" + /* 10 */ "mmmmmccmmmmm" + /* 11 */ "mmmmmmmmmmmm" + /* 12 */ "mmmmmmmmmmmm" + /* 13 */ "mmmmmmmmmmmm" + /* 14 */ "mmmmmmmmmmmm" + /* 15 */ "mmmmmmmmmmmm" + + // Level 7 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "mmmmmmmmmmmm" + /* 1 */ "mmmmmmmmmmmm" + /* 2 */ "mmmmmmmmmmmm" + /* 3 */ "mmmmmmmmmmmm" + /* 4 */ "mmmmmmmmmmmm" + /* 5 */ "mmmmmmmmmmmm" + /* 6 */ "mmmmmmmmmmmm" + /* 7 */ "mmmmmmmmmmmm" + /* 8 */ "mmmmmmmmmmmm" + /* 9 */ "mmmmmmmmmmmm" + /* 10 */ "mmmmmmmmmmmm" + /* 11 */ "mmmmmmmmmmmm" + /* 12 */ "mmmmmmmmmmmm" + /* 13 */ "mmmmmmmmmmmm" + /* 14 */ "mmmmmmmmmmmm" + /* 15 */ "mmmmmmmmmmmm", + + // Connectors: + "1: 6, 1, 0: 2\n" /* Type 1, direction Z- */ + "-1: 5, 1, 0: 2\n" /* Type -1, direction Z- */ + "1: 5, 1, 15: 3\n" /* Type 1, direction Z+ */ + "-1: 6, 1, 15: 3\n" /* Type -1, direction Z+ */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + false, + }, // ViewingCorridorBulge + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // ViewingCrossing: + // The data has been exported from the gallery Water, area index 38, ID 611, created by LO1ZB + { + // Size: + 16, 7, 16, // SizeX = 16, SizeY = 7, SizeZ = 16 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 15, 6, 15, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 5: 5\n" /* wood */ + "b: 5: 0\n" /* wood */ + "c: 20: 0\n" /* glass */ + "d: 64: 3\n" /* wooddoorblock */ + "e: 64: 2\n" /* wooddoorblock */ + "f: 64: 0\n" /* wooddoorblock */ + "g: 64: 1\n" /* wooddoorblock */ + "h: 64: 8\n" /* wooddoorblock */ + "i: 64: 9\n" /* wooddoorblock */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmmaammmmmmm" + /* 1 */ "mmmmmmmbbmmmmmmm" + /* 2 */ "mmmmmmmbbmmmmmmm" + /* 3 */ "mmmmmmbbbbmmmmmm" + /* 4 */ "mmmmmbbccbbmmmmm" + /* 5 */ "mmmmbbccccbbmmmm" + /* 6 */ "mmmbbccccccbbmmm" + /* 7 */ "abbbccccccccbbba" + /* 8 */ "abbbccccccccbbba" + /* 9 */ "mmmbbccccccbbmmm" + /* 10 */ "mmmmbbccccbbmmmm" + /* 11 */ "mmmmmbbccbbmmmmm" + /* 12 */ "mmmmmmbbbbmmmmmm" + /* 13 */ "mmmmmmmbbmmmmmmm" + /* 14 */ "mmmmmmmbbmmmmmmm" + /* 15 */ "mmmmmmmaammmmmmm" + + // Level 1 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmaddammmmmm" + /* 1 */ "mmmmmmb..bmmmmmm" + /* 2 */ "mmmmmmb..bmmmmmm" + /* 3 */ "mmmmmbb..bbmmmmm" + /* 4 */ "mmmmbb....bbmmmm" + /* 5 */ "mmmbb......bbmmm" + /* 6 */ "abbb........bbba" + /* 7 */ "e..............f" + /* 8 */ "e..............f" + /* 9 */ "abbb........bbba" + /* 10 */ "mmmbb......bbmmm" + /* 11 */ "mmmmbb....bbmmmm" + /* 12 */ "mmmmmbb..bbmmmmm" + /* 13 */ "mmmmmmb..bmmmmmm" + /* 14 */ "mmmmmmb..bmmmmmm" + /* 15 */ "mmmmmmaggammmmmm" + + // Level 2 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmahiammmmmm" + /* 1 */ "mmmmmmb..bmmmmmm" + /* 2 */ "mmmmmmc..cmmmmmm" + /* 3 */ "mmmmmcc..ccmmmmm" + /* 4 */ "mmmmcc....ccmmmm" + /* 5 */ "mmmcc......ccmmm" + /* 6 */ "abcc........ccba" + /* 7 */ "i..............h" + /* 8 */ "h..............i" + /* 9 */ "abcc........ccba" + /* 10 */ "mmmcc......ccmmm" + /* 11 */ "mmmmcc....ccmmmm" + /* 12 */ "mmmmmcc..ccmmmmm" + /* 13 */ "mmmmmmc..cmmmmmm" + /* 14 */ "mmmmmmb..bmmmmmm" + /* 15 */ "mmmmmmaihammmmmm" + + // Level 3 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmaaaammmmmm" + /* 1 */ "mmmmmmbbbbmmmmmm" + /* 2 */ "mmmmmmccccmmmmmm" + /* 3 */ "mmmmmcc..ccmmmmm" + /* 4 */ "mmmmcc....ccmmmm" + /* 5 */ "mmmcc......ccmmm" + /* 6 */ "abcc........ccba" + /* 7 */ "abc..........cba" + /* 8 */ "abc..........cba" + /* 9 */ "abcc........ccba" + /* 10 */ "mmmcc......ccmmm" + /* 11 */ "mmmmcc....ccmmmm" + /* 12 */ "mmmmmcc..ccmmmmm" + /* 13 */ "mmmmmmccccmmmmmm" + /* 14 */ "mmmmmmbbbbmmmmmm" + /* 15 */ "mmmmmmaaaammmmmm" + + // Level 4 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmmmmmmmmmmm" + /* 1 */ "mmmmmmmmmmmmmmmm" + /* 2 */ "mmmmmmmmmmmmmmmm" + /* 3 */ "mmmmmmmccmmmmmmm" + /* 4 */ "mmmmmmc..cmmmmmm" + /* 5 */ "mmmmmc....cmmmmm" + /* 6 */ "mmmmc......cmmmm" + /* 7 */ "mmmc........cmmm" + /* 8 */ "mmmc........cmmm" + /* 9 */ "mmmmc......cmmmm" + /* 10 */ "mmmmmcc...cmmmmm" + /* 11 */ "mmmmmmc..cmmmmmm" + /* 12 */ "mmmmmmmccmmmmmmm" + /* 13 */ "mmmmmmmmmmmmmmmm" + /* 14 */ "mmmmmmmmmmmmmmmm" + /* 15 */ "mmmmmmmmmmmmmmmm" + + // Level 5 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmmmmmmmmmmm" + /* 1 */ "mmmmmmmmmmmmmmmm" + /* 2 */ "mmmmmmmmmmmmmmmm" + /* 3 */ "mmmmmmmmmmmmmmmm" + /* 4 */ "mmmmmmmccmmmmmmm" + /* 5 */ "mmmmmmc..cmmmmmm" + /* 6 */ "mmmmmc....cmmmmm" + /* 7 */ "mmmmc......cmmmm" + /* 8 */ "mmmmc......cmmmm" + /* 9 */ "mmmmmc....cmmmmm" + /* 10 */ "mmmmmmc.ccmmmmmm" + /* 11 */ "mmmmmmmccmmmmmmm" + /* 12 */ "mmmmmmmmmmmmmmmm" + /* 13 */ "mmmmmmmmmmmmmmmm" + /* 14 */ "mmmmmmmmmmmmmmmm" + /* 15 */ "mmmmmmmmmmmmmmmm" + + // Level 6 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmmmmmmmmmmm" + /* 1 */ "mmmmmmmmmmmmmmmm" + /* 2 */ "mmmmmmmmmmmmmmmm" + /* 3 */ "mmmmmmmmmmmmmmmm" + /* 4 */ "mmmmmmmmmmmmmmmm" + /* 5 */ "mmmmmmmccmmmmmmm" + /* 6 */ "mmmmmmccccmmmmmm" + /* 7 */ "mmmmmccccccmmmmm" + /* 8 */ "mmmmmccccccmmmmm" + /* 9 */ "mmmmmmccccmmmmmm" + /* 10 */ "mmmmmmmccmmmmmmm" + /* 11 */ "mmmmmmmmmmmmmmmm" + /* 12 */ "mmmmmmmmmmmmmmmm" + /* 13 */ "mmmmmmmmmmmmmmmm" + /* 14 */ "mmmmmmmmmmmmmmmm" + /* 15 */ "mmmmmmmmmmmmmmmm", + + // Connectors: + "1: 0, 1, 7: 4\n" /* Type 1, direction X- */ + "-1: 0, 1, 8: 4\n" /* Type -1, direction X- */ + "1: 8, 1, 0: 2\n" /* Type 1, direction Z- */ + "-1: 7, 1, 0: 2\n" /* Type -1, direction Z- */ + "1: 15, 1, 8: 5\n" /* Type 1, direction X+ */ + "-1: 15, 1, 7: 5\n" /* Type -1, direction X+ */ + "1: 7, 1, 15: 3\n" /* Type 1, direction Z+ */ + "-1: 8, 1, 15: 3\n" /* Type -1, direction Z+ */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + false, + }, // ViewingCrossing + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // ViewingEnd: + // The data has been exported from the gallery Water, area index 41, ID 614, created by LO1ZB + { + // Size: + 14, 7, 12, // SizeX = 14, SizeY = 7, SizeZ = 12 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 13, 6, 11, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 5: 0\n" /* wood */ + "b: 20: 0\n" /* glass */ + "c: 5: 5\n" /* wood */ + "d: 64: 0\n" /* wooddoorblock */ + "e: 64: 8\n" /* wooddoorblock */ + "f: 64: 9\n" /* wooddoorblock */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "mmmmmmmmmmmmmm" + /* 1 */ "mmmmaaaammmmmm" + /* 2 */ "mmmaabbaammmmm" + /* 3 */ "mmaabbbbaammmm" + /* 4 */ "maabbbbbbaammm" + /* 5 */ "mabbbbbbbbaaac" + /* 6 */ "mabbbbbbbbaaac" + /* 7 */ "maabbbbbbaammm" + /* 8 */ "mmaabbbbaammmm" + /* 9 */ "mmmaabbaammmmm" + /* 10 */ "mmmmaaaammmmmm" + /* 11 */ "mmmmmmmmmmmmmm" + + // Level 1 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "mmmmmaammmmmmm" + /* 1 */ "mmmaa..aammmmm" + /* 2 */ "mmaa....aammmm" + /* 3 */ "maa......aammm" + /* 4 */ "ma........aaac" + /* 5 */ "a............d" + /* 6 */ "a............d" + /* 7 */ "ma........aaac" + /* 8 */ "maa......aammm" + /* 9 */ "mmaa....aammmm" + /* 10 */ "mmmaa..aammmmm" + /* 11 */ "mmmmmaammmmmmm" + + // Level 2 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "mmmmmbbmmmmmmm" + /* 1 */ "mmmbb..bbmmmmm" + /* 2 */ "mmbb....bbmmmm" + /* 3 */ "mbb......bbmmm" + /* 4 */ "mb........bbac" + /* 5 */ "b............e" + /* 6 */ "b............f" + /* 7 */ "mb........bbac" + /* 8 */ "mbb......bbmmm" + /* 9 */ "mmbb....bbmmmm" + /* 10 */ "mmmbb..bbmmmmm" + /* 11 */ "mmmmmbbmmmmmmm" + + // Level 3 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "mmmmmbbmmmmmmm" + /* 1 */ "mmmbb..bbmmmmm" + /* 2 */ "mmbb....bbmmmm" + /* 3 */ "mbb......bbmmm" + /* 4 */ "mb........bbac" + /* 5 */ "b..........bac" + /* 6 */ "b..........bac" + /* 7 */ "mb........bbac" + /* 8 */ "mbb......bbmmm" + /* 9 */ "mmbb....bbmmmm" + /* 10 */ "mmmbb..bbmmmmm" + /* 11 */ "mmmmmbbmmmmmmm" + + // Level 4 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "mmmmmmmmmmmmmm" + /* 1 */ "mmmmmbbmmmmmmm" + /* 2 */ "mmmmb..bmmmmmm" + /* 3 */ "mmmb....bmmmmm" + /* 4 */ "mmb......bmmmm" + /* 5 */ "mb........bmmm" + /* 6 */ "mb........bmmm" + /* 7 */ "mmb......bmmmm" + /* 8 */ "mmmbb...bmmmmm" + /* 9 */ "mmmmb..bmmmmmm" + /* 10 */ "mmmmmbbmmmmmmm" + /* 11 */ "mmmmmmmmmmmmmm" + + // Level 5 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "mmmmmmmmmmmmmm" + /* 1 */ "mmmmmmmmmmmmmm" + /* 2 */ "mmmmmbbmmmmmmm" + /* 3 */ "mmmmb..bmmmmmm" + /* 4 */ "mmmb....bmmmmm" + /* 5 */ "mmb......bmmmm" + /* 6 */ "mmb......bmmmm" + /* 7 */ "mmmb....bmmmmm" + /* 8 */ "mmmmb.bbmmmmmm" + /* 9 */ "mmmmmbbmmmmmmm" + /* 10 */ "mmmmmmmmmmmmmm" + /* 11 */ "mmmmmmmmmmmmmm" + + // Level 6 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "mmmmmmmmmmmmmm" + /* 1 */ "mmmmmmmmmmmmmm" + /* 2 */ "mmmmmmmmmmmmmm" + /* 3 */ "mmmmmbbmmmmmmm" + /* 4 */ "mmmmbbbbmmmmmm" + /* 5 */ "mmmbbbbbbmmmmm" + /* 6 */ "mmmbbbbbbmmmmm" + /* 7 */ "mmmmbbbbmmmmmm" + /* 8 */ "mmmmmbbmmmmmmm" + /* 9 */ "mmmmmmmmmmmmmm" + /* 10 */ "mmmmmmmmmmmmmm" + /* 11 */ "mmmmmmmmmmmmmm", + + // Connectors: + "1: 13, 1, 6: 5\n" /* Type 1, direction X+ */ + "-1: 13, 1, 5: 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: + false, + }, // ViewingEnd + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // ViewingTee: + // The data has been exported from the gallery Water, area index 39, ID 612, created by LO1ZB + { + // Size: + 14, 7, 17, // SizeX = 14, SizeY = 7, SizeZ = 17 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 13, 6, 16, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 5: 5\n" /* wood */ + "b: 5: 0\n" /* wood */ + "c: 20: 0\n" /* glass */ + "d: 1: 0\n" /* stone */ + "e: 64: 3\n" /* wooddoorblock */ + "f: 64: 0\n" /* wooddoorblock */ + "g: 64: 1\n" /* wooddoorblock */ + "h: 64: 8\n" /* wooddoorblock */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "mmmmmaammmmmmm" + /* 1 */ "mmmmmbbmmmmmmm" + /* 2 */ "mmmmmbbmmmmmmm" + /* 3 */ "mmmmbbbbmmmmmm" + /* 4 */ "mmmbbccbbmmmmm" + /* 5 */ "mmbbccccbbmmmm" + /* 6 */ "mbbccccccbbmmm" + /* 7 */ "mbccccccccbbba" + /* 8 */ "mbccccccccbbba" + /* 9 */ "mbbccccccbbmmm" + /* 10 */ "mmbbccccbbmmmm" + /* 11 */ "mmmbbccbbmmmmm" + /* 12 */ "mmmmbbbbmmmmmm" + /* 13 */ "mmmmmbbmmmmmmm" + /* 14 */ "mmmmmbbmmmmmmm" + /* 15 */ "mmmmmaammmmmmm" + /* 16 */ "dddddddddddddd" + + // Level 1 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "mmmmaeeammmmmm" + /* 1 */ "mmmmb..bmmmmmm" + /* 2 */ "mmmmb..bmmmmmm" + /* 3 */ "mmmbb..bbmmmmm" + /* 4 */ "mmbb....bbmmmm" + /* 5 */ "mbb......bbmmm" + /* 6 */ "mb........bbba" + /* 7 */ "b............f" + /* 8 */ "b............f" + /* 9 */ "mb........bbba" + /* 10 */ "mbb......bbmmm" + /* 11 */ "mmbb....bbmmmm" + /* 12 */ "mmmbb..bbmmmmm" + /* 13 */ "mmmmb..bmmmmmm" + /* 14 */ "mmmmb..bmmmmmm" + /* 15 */ "mmmmaggammmmmm" + /* 16 */ "dddddddddddddd" + + // Level 2 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "mmmmahhammmmmm" + /* 1 */ "mmmmb..bmmmmmm" + /* 2 */ "mmmmc..cmmmmmm" + /* 3 */ "mmmcc..ccmmmmm" + /* 4 */ "mmcc....ccmmmm" + /* 5 */ "mcc......ccmmm" + /* 6 */ "mc........ccba" + /* 7 */ "c............h" + /* 8 */ "c............h" + /* 9 */ "mc........ccba" + /* 10 */ "mcc......ccmmm" + /* 11 */ "mmcc....ccmmmm" + /* 12 */ "mmmcc..ccmmmmm" + /* 13 */ "mmmmc..cmmmmmm" + /* 14 */ "mmmmb..bmmmmmm" + /* 15 */ "mmmmahhammmmmm" + /* 16 */ "dddddddddddddd" + + // Level 3 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "mmmmaaaammmmmm" + /* 1 */ "mmmmbbbbmmmmmm" + /* 2 */ "mmmmccccmmmmmm" + /* 3 */ "mmmcc..ccmmmmm" + /* 4 */ "mmcc....ccmmmm" + /* 5 */ "mcc......ccmmm" + /* 6 */ "mc........ccba" + /* 7 */ "c..........cba" + /* 8 */ "c..........cba" + /* 9 */ "mc........ccba" + /* 10 */ "mcc......ccmmm" + /* 11 */ "mmcc....ccmmmm" + /* 12 */ "mmmcc..ccmmmmm" + /* 13 */ "mmmmccccmmmmmm" + /* 14 */ "mmmmbbbbmmmmmm" + /* 15 */ "mmmmaaaammmmmm" + /* 16 */ "dddddddddddddd" + + // Level 4 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "mmmmmmmmmmmmmm" + /* 1 */ "mmmmmmmmmmmmmm" + /* 2 */ "mmmmmmmmmmmmmm" + /* 3 */ "mmmmmccmmmmmmm" + /* 4 */ "mmmmc..cmmmmmm" + /* 5 */ "mmmc....cmmmmm" + /* 6 */ "mmc......cmmmm" + /* 7 */ "mc........cmmm" + /* 8 */ "mc........cmmm" + /* 9 */ "mmc......cmmmm" + /* 10 */ "mmmcc...cmmmmm" + /* 11 */ "mmmmc..cmmmmmm" + /* 12 */ "mmmmmccmmmmmmm" + /* 13 */ "mmmmmmmmmmmmmm" + /* 14 */ "mmmmmmmmmmmmmm" + /* 15 */ "mmmmmmmmmmmmmm" + /* 16 */ "dddddddddddddd" + + // Level 5 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "mmmmmmmmmmmmmm" + /* 1 */ "mmmmmmmmmmmmmm" + /* 2 */ "mmmmmmmmmmmmmm" + /* 3 */ "mmmmmmmmmmmmmm" + /* 4 */ "mmmmmccmmmmmmm" + /* 5 */ "mmmmc..cmmmmmm" + /* 6 */ "mmmc....cmmmmm" + /* 7 */ "mmc......cmmmm" + /* 8 */ "mmc......cmmmm" + /* 9 */ "mmmc....cmmmmm" + /* 10 */ "mmmmc.ccmmmmmm" + /* 11 */ "mmmmmccmmmmmmm" + /* 12 */ "mmmmmmmmmmmmmm" + /* 13 */ "mmmmmmmmmmmmmm" + /* 14 */ "mmmmmmmmmmmmmm" + /* 15 */ "mmmmmmmmmmmmmm" + /* 16 */ "dddddddddddddd" + + // Level 6 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "mmmmmmmmmmmmmm" + /* 1 */ "mmmmmmmmmmmmmm" + /* 2 */ "mmmmmmmmmmmmmm" + /* 3 */ "mmmmmmmmmmmmmm" + /* 4 */ "mmmmmmmmmmmmmm" + /* 5 */ "mmmmmccmmmmmmm" + /* 6 */ "mmmmccccmmmmmm" + /* 7 */ "mmmccccccmmmmm" + /* 8 */ "mmmccccccmmmmm" + /* 9 */ "mmmmccccmmmmmm" + /* 10 */ "mmmmmccmmmmmmm" + /* 11 */ "mmmmmmmmmmmmmm" + /* 12 */ "mmmmmmmmmmmmmm" + /* 13 */ "mmmmmmmmmmmmmm" + /* 14 */ "mmmmmmmmmmmmmm" + /* 15 */ "mmmmmmmmmmmmmm" + /* 16 */ "dddddddddddddd", + + // Connectors: + "", + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + false, + }, // ViewingTee +}; // 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 + { + // Size: + 16, 7, 16, // SizeX = 16, SizeY = 7, SizeZ = 16 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 15, 6, 15, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 5: 5\n" /* wood */ + "b: 5: 0\n" /* wood */ + "c: 20: 0\n" /* glass */ + "d: 64: 3\n" /* wooddoorblock */ + "e: 64: 2\n" /* wooddoorblock */ + "f: 64: 0\n" /* wooddoorblock */ + "g: 64: 1\n" /* wooddoorblock */ + "h: 64: 8\n" /* wooddoorblock */ + "i: 64: 9\n" /* wooddoorblock */ + "j: 76: 3\n" /* redstonetorchon */ + "k: 76: 1\n" /* redstonetorchon */ + "l: 76: 2\n" /* redstonetorchon */ + "m: 19: 0\n" /* sponge */ + "n: 76: 4\n" /* redstonetorchon */ + "o:125: 8\n" /* woodendoubleslab */, + + // Block data: + // Level 0 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmmaammmmmmm" + /* 1 */ "mmmmmmmbbmmmmmmm" + /* 2 */ "mmmmmmmbbmmmmmmm" + /* 3 */ "mmmmmmbbbbmmmmmm" + /* 4 */ "mmmmmbbbbbbmmmmm" + /* 5 */ "mmmmbbbccbbbmmmm" + /* 6 */ "mmmbbbccccbbbmmm" + /* 7 */ "abbbbccccccbbbba" + /* 8 */ "abbbbccccccbbbba" + /* 9 */ "mmmbbbccccbbbmmm" + /* 10 */ "mmmmbbbccbbbmmmm" + /* 11 */ "mmmmmbbbbbbmmmmm" + /* 12 */ "mmmmmmbbbbmmmmmm" + /* 13 */ "mmmmmmmbbmmmmmmm" + /* 14 */ "mmmmmmmbbmmmmmmm" + /* 15 */ "mmmmmmmaammmmmmm" + + // Level 1 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmaddammmmmm" + /* 1 */ "mmmmmmb..bmmmmmm" + /* 2 */ "mmmmmmb..bmmmmmm" + /* 3 */ "mmmmmbb..bbmmmmm" + /* 4 */ "mmmmbb....bbmmmm" + /* 5 */ "mmmbb......bbmmm" + /* 6 */ "abbb........bbba" + /* 7 */ "e..............f" + /* 8 */ "e..............f" + /* 9 */ "abbb........bbba" + /* 10 */ "mmmbb......bbmmm" + /* 11 */ "mmmmbb....bbmmmm" + /* 12 */ "mmmmmbb..bbmmmmm" + /* 13 */ "mmmmmmb..bmmmmmm" + /* 14 */ "mmmmmmb..bmmmmmm" + /* 15 */ "mmmmmmaggammmmmm" + + // Level 2 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmahiammmmmm" + /* 1 */ "mmmmmmb..bmmmmmm" + /* 2 */ "mmmmmmb..bmmmmmm" + /* 3 */ "mmmmmcc..ccmmmmm" + /* 4 */ "mmmmcc....ccmmmm" + /* 5 */ "mmmcc......ccmmm" + /* 6 */ "abbc........cbba" + /* 7 */ "h..............h" + /* 8 */ "h..............i" + /* 9 */ "abbc........cbba" + /* 10 */ "mmmcc......ccmmm" + /* 11 */ "mmmmcc....ccmmmm" + /* 12 */ "mmmmmcc..ccmmmmm" + /* 13 */ "mmmmmmb..bmmmmmm" + /* 14 */ "mmmmmmb..bmmmmmm" + /* 15 */ "mmmmmmaihammmmmm" + + // Level 3 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmaaaammmmmm" + /* 1 */ "mmmmmmbbbbmmmmmm" + /* 2 */ "mmmmmmbbbbmmmmmm" + /* 3 */ "mmmmmbb..bbmmmmm" + /* 4 */ "mmmmbb....bbmmmm" + /* 5 */ "mmmbb......bbmmm" + /* 6 */ "abbb........bbba" + /* 7 */ "abb..........bba" + /* 8 */ "abb..........bba" + /* 9 */ "abbb........bbba" + /* 10 */ "mmmbb......bbmmm" + /* 11 */ "mmmmbb....bbmmmm" + /* 12 */ "mmmmmbb..bbmmmmm" + /* 13 */ "mmmmmmbbbbmmmmmm" + /* 14 */ "mmmmmmbbbbmmmmmm" + /* 15 */ "mmmmmmaaaammmmmm" + + // Level 4 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmmmmmmmmmmm" + /* 1 */ "mmmmmmmmmmmmmmmm" + /* 2 */ "mmmmmmmmmmmmmmmm" + /* 3 */ "mmmmmmmbbmmmmmmm" + /* 4 */ "mmmmmmbjjbmmmmmm" + /* 5 */ "mmmmmb....bmmmmm" + /* 6 */ "mmmmb......bmmmm" + /* 7 */ "mmmbk......lbmmm" + /* 8 */ "mmmbk......lbmmm" + /* 9 */ "mmmmb......bmmmm" + /* 10 */ "mmmmmb....bmmmmm" + /* 11 */ "mmmmmmbnnbmmmmmm" + /* 12 */ "mmmmmmmbbmmmmmmm" + /* 13 */ "mmmmmmmmmmmmmmmm" + /* 14 */ "mmmmmmmmmmmmmmmm" + /* 15 */ "mmmmmmmmmmmmmmmm" + + // Level 5 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmmmmmmmmmmm" + /* 1 */ "mmmmmmmmmmmmmmmm" + /* 2 */ "mmmmmmmmmmmmmmmm" + /* 3 */ "mmmmmmmmmmmmmmmm" + /* 4 */ "mmmmmmmbbmmmmmmm" + /* 5 */ "mmmmmmb..bmmmmmm" + /* 6 */ "mmmmmb....bmmmmm" + /* 7 */ "mmmmb......bmmmm" + /* 8 */ "mmmmb......bmmmm" + /* 9 */ "mmmmmb....bmmmmm" + /* 10 */ "mmmmmmboobmmmmmm" + /* 11 */ "mmmmmmmbbmmmmmmm" + /* 12 */ "mmmmmmmmmmmmmmmm" + /* 13 */ "mmmmmmmmmmmmmmmm" + /* 14 */ "mmmmmmmmmmmmmmmm" + /* 15 */ "mmmmmmmmmmmmmmmm" + + // Level 6 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmmmmmmmmmmm" + /* 1 */ "mmmmmmmmmmmmmmmm" + /* 2 */ "mmmmmmmmmmmmmmmm" + /* 3 */ "mmmmmmmmmmmmmmmm" + /* 4 */ "mmmmmmmmmmmmmmmm" + /* 5 */ "mmmmmmmbbmmmmmmm" + /* 6 */ "mmmmmmbbbbmmmmmm" + /* 7 */ "mmmmmbbccbbmmmmm" + /* 8 */ "mmmmmbbccbbmmmmm" + /* 9 */ "mmmmmmbbbbmmmmmm" + /* 10 */ "mmmmmmmbbmmmmmmm" + /* 11 */ "mmmmmmmmmmmmmmmm" + /* 12 */ "mmmmmmmmmmmmmmmm" + /* 13 */ "mmmmmmmmmmmmmmmm" + /* 14 */ "mmmmmmmmmmmmmmmm" + /* 15 */ "mmmmmmmmmmmmmmmm", + + // Connectors: + "1: 0, 1, 7: 4\n" /* Type 1, direction X- */ + "-1: 0, 1, 8: 4\n" /* Type -1, direction X- */ + "-1: 7, 1, 0: 2\n" /* Type -1, direction Z- */ + "1: 8, 1, 0: 2\n" /* Type 1, direction Z- */ + "1: 15, 1, 8: 5\n" /* Type 1, direction X+ */ + "-1: 15, 1, 7: 5\n" /* Type -1, direction X+ */ + "1: 7, 1, 15: 3\n" /* Type 1, direction Z+ */ + "-1: 8, 1, 15: 3\n" /* Type -1, direction Z+ */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + false, + }, // CentralRoom +}; + + + + + +// The prefab counts: + +const size_t g_UnderwaterBasePrefabsCount = ARRAYCOUNT(g_UnderwaterBasePrefabs); + +const size_t g_UnderwaterBaseStartingPrefabsCount = ARRAYCOUNT(g_UnderwaterBaseStartingPrefabs); + diff --git a/src/Generating/Prefabs/UnderwaterBasePrefabs.h b/src/Generating/Prefabs/UnderwaterBasePrefabs.h new file mode 100644 index 000000000..d7b248bb8 --- /dev/null +++ b/src/Generating/Prefabs/UnderwaterBasePrefabs.h @@ -0,0 +1,15 @@ + +// UnderwaterBasePrefabs.h + +// Declares the prefabs in the group UnderwaterBase + +#include "../Prefab.h" + + + + + +extern const cPrefab::sDef g_UnderwaterBasePrefabs[]; +extern const cPrefab::sDef g_UnderwaterBaseStartingPrefabs[]; +extern const size_t g_UnderwaterBasePrefabsCount; +extern const size_t g_UnderwaterBaseStartingPrefabsCount; diff --git a/src/Generating/UnderwaterBaseGen.cpp b/src/Generating/UnderwaterBaseGen.cpp new file mode 100644 index 000000000..ff6f17dde --- /dev/null +++ b/src/Generating/UnderwaterBaseGen.cpp @@ -0,0 +1,142 @@ + +// UnderwaterBaseGen.cpp + +// Implements the cUnderwaterBaseGen class representing the underwater base generator + +#include "Globals.h" +#include "UnderwaterBaseGen.h" +#include "Prefabs/UnderwaterBasePrefabs.h" +#include "PieceGenerator.h" + + + + + +static cPrefabPiecePool g_UnderwaterBase(g_UnderwaterBasePrefabs, g_UnderwaterBasePrefabsCount, g_UnderwaterBaseStartingPrefabs, g_UnderwaterBaseStartingPrefabsCount); + + + + + +/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// cUnderwaterBaseGen::cUnderwaterBase: + +class cUnderwaterBaseGen::cUnderwaterBase : + public cGridStructGen::cStructure +{ + typedef cGridStructGen::cStructure super; + +public: + cUnderwaterBase( + int a_Seed, + int a_OriginX, int a_OriginZ, + int a_MaxDepth, + int a_MaxSize + ) : + super(a_OriginX, a_OriginZ), + m_Seed(a_Seed), + m_Noise(a_Seed), + m_MaxSize(a_MaxSize), + m_Borders(a_OriginX - a_MaxSize, 0, a_OriginZ - a_MaxSize, a_OriginX + a_MaxSize, 255, a_OriginZ + a_MaxSize) + { + // Generate the pieces for this base: + cBFSPieceGenerator pg(g_UnderwaterBase, a_Seed); + pg.PlacePieces(a_OriginX, 50, a_OriginZ, a_MaxDepth, m_Pieces); + if (m_Pieces.empty()) + { + return; + } + } + + ~cUnderwaterBase() + { + 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 village (radius from the origin) */ + int m_MaxSize; + + /** Borders of the vilalge - no item may reach out of this cuboid. */ + cCuboid m_Borders; + + /** The village 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[] + } +} ; + + + + + +/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// cUnderwaterBaseGen: + + + + + +cUnderwaterBaseGen::cUnderwaterBaseGen(int a_Seed, int a_GridSize, int a_MaxDepth, int a_MaxSize, cBiomeGen & a_BiomeGen) : + super(a_Seed, a_GridSize, a_GridSize, a_MaxSize, a_MaxSize, 100), + m_Noise(a_Seed + 1000), + m_MaxDepth(a_MaxDepth), + m_MaxSize(a_MaxSize), + m_BiomeGen(a_BiomeGen) +{ +} + + + + + +cGridStructGen::cStructurePtr cUnderwaterBaseGen::CreateStructure(int a_OriginX, int a_OriginZ) +{ + // Generate the biomes for the chunk surrounding the origin: + int ChunkX, ChunkZ; + cChunkDef::BlockToChunk(a_OriginX, a_OriginZ, ChunkX, ChunkZ); + cChunkDef::BiomeMap Biomes; + m_BiomeGen.GenBiomes(ChunkX, ChunkZ, Biomes); + + // Check if all the biomes are ocean: + // If just one is not, no base is created, because it's likely that an unfriendly biome is too close + for (size_t i = 0; i < ARRAYCOUNT(Biomes); i++) + { + switch (Biomes[i]) + { + case biOcean: + case biDeepOcean: + { + // These biomes allow underwater bases + break; + } + default: + { + // base-unfriendly biome, bail out with zero structure: + return cStructurePtr(); + } + } // switch (Biomes[i]) + } // for i - Biomes[] + + // Create a base based on the chosen prefabs: + return cStructurePtr(new cUnderwaterBase(m_Seed, a_OriginX, a_OriginZ, m_MaxDepth, m_MaxSize)); +} + + + + diff --git a/src/Generating/UnderwaterBaseGen.h b/src/Generating/UnderwaterBaseGen.h new file mode 100644 index 000000000..0aefbb4c7 --- /dev/null +++ b/src/Generating/UnderwaterBaseGen.h @@ -0,0 +1,50 @@ + +// UnderwaterBaseGen.h + +// Declares the cUnderwaterBaseGen class representing the underwater base generator + + + + + +#pragma once + +#include "GridStructGen.h" +#include "PrefabPiecePool.h" + + + + + +class cUnderwaterBaseGen : + public cGridStructGen +{ + typedef cGridStructGen super; + +public: + cUnderwaterBaseGen(int a_Seed, int a_GridSize, int a_MaxDepth, int a_MaxSize, cBiomeGen & a_BiomeGen); + +protected: + class cUnderwaterBase; // fwd: UnderwaterBaseGen.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; + + /** The underlying biome generator that defines whether the base is created or not */ + cBiomeGen & m_BiomeGen; + + + // cGridStructGen overrides: + virtual cStructurePtr CreateStructure(int a_OriginX, int a_OriginZ) override; +} ; + + + + -- cgit v1.2.3 From 8bff3e5af220070ecc789ef551c0b8428b8953ef Mon Sep 17 00:00:00 2001 From: Tiger Wang Date: Sat, 31 May 2014 22:28:51 +0100 Subject: Implemented end and nether portals --- src/Generating/BioGen.cpp | 2 +- src/Generating/ComposableGenerator.cpp | 16 +--------------- src/Generating/EndGen.cpp | 2 +- src/Generating/EndGen.h | 3 +-- 4 files changed, 4 insertions(+), 19 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/BioGen.cpp b/src/Generating/BioGen.cpp index 32a687201..e08e242e2 100644 --- a/src/Generating/BioGen.cpp +++ b/src/Generating/BioGen.cpp @@ -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) { diff --git a/src/Generating/ComposableGenerator.cpp b/src/Generating/ComposableGenerator.cpp index 2e886336f..03ed0291f 100644 --- a/src/Generating/ComposableGenerator.cpp +++ b/src/Generating/ComposableGenerator.cpp @@ -39,7 +39,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; @@ -93,7 +92,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); } @@ -291,19 +289,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, ","); diff --git a/src/Generating/EndGen.cpp b/src/Generating/EndGen.cpp index f466039b9..5be73bfbe 100644 --- a/src/Generating/EndGen.cpp +++ b/src/Generating/EndGen.cpp @@ -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; } ; -- cgit v1.2.3 From 75fe89b8aef77d8e684a30aae07c09297d1653cb Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Sun, 1 Jun 2014 09:27:27 +0200 Subject: Updated AlchemistVillage prefabs. --- src/Generating/Prefabs/AlchemistVillagePrefabs.cpp | 208 +++++++++++---------- 1 file changed, 105 insertions(+), 103 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp b/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp index 6e3f82212..eb0d30fdf 100644 --- a/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp +++ b/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp @@ -23,8 +23,8 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = 11, 12, 10, // SizeX = 11, SizeY = 12, SizeZ = 10 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 10, 11, 9, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 11, 11, 10, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -270,8 +270,8 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = 11, 8, 10, // SizeX = 11, SizeY = 8, SizeZ = 10 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 10, 7, 9, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 11, 7, 10, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -455,8 +455,8 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = 11, 5, 13, // SizeX = 11, SizeY = 5, SizeZ = 13 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 10, 4, 12, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 11, 4, 13, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -606,26 +606,28 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = 15, 13, 11, // SizeX = 15, SizeY = 13, SizeZ = 11 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 14, 12, 10, // MaxX, MaxY, MaxZ + -1, 0, -1, // MinX, MinY, MinZ + 14, 12, 11, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "A:128: 7\n" /* sandstonestairs */ - "B: 44: 1\n" /* step */ - "C:128: 2\n" /* sandstonestairs */ - "D:128: 0\n" /* sandstonestairs */ - "E: 87: 0\n" /* netherstone */ - "F:128: 3\n" /* sandstonestairs */ - "G: 51: 0\n" /* fire */ - "H: 44: 9\n" /* step */ + "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: 2\n" /* wooddoorblock */ + "g: 64: 6\n" /* wooddoorblock */ "h: 64: 0\n" /* wooddoorblock */ "i: 61: 2\n" /* furnace */ "j:118: 0\n" /* cauldronblock */ @@ -633,18 +635,18 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = "l: 65: 2\n" /* ladder */ "m: 19: 0\n" /* sponge */ "n:101: 0\n" /* ironbars */ - "o:140: 0\n" /* flowerpotblock */ - "p: 64: 8\n" /* wooddoorblock */ - "q: 50: 3\n" /* torch */ - "r: 69:12\n" /* lever */ - "s: 50: 4\n" /* torch */ - "t:128: 6\n" /* sandstonestairs */ - "u: 44:10\n" /* step */ - "v:128: 1\n" /* sandstonestairs */ - "w: 47: 0\n" /* bookshelf */ - "x: 96:12\n" /* trapdoor */ - "y:128: 4\n" /* sandstonestairs */ - "z:128: 5\n" /* sandstonestairs */, + "o: 50: 1\n" /* torch */ + "p:140: 0\n" /* flowerpotblock */ + "q: 64:12\n" /* wooddoorblock */ + "r: 50: 3\n" /* torch */ + "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 */, // Block data: // Level 0 @@ -681,12 +683,12 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* z\x* 11111 */ /* * 012345678901234 */ /* 0 */ "....cddnnnddc.." - /* 1 */ "....d......od.c" - /* 2 */ "....p.......d.q" - /* 3 */ "....d.......p.." - /* 4 */ "....d.r...l.d.s" + /* 1 */ "....do.....pd.c" + /* 2 */ "....q.......d.r" + /* 3 */ "....d.......s.." + /* 4 */ "....d.t...l.d.u" /* 5 */ "....dddd.dddd.c" - /* 6 */ "....n.......n.." + /* 6 */ "....n..r.r..n.." /* 7 */ "mmmmn.......n.." /* 8 */ "mmmmn.......n.." /* 9 */ "mmmmd.......d.." @@ -695,32 +697,32 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = // Level 3 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "....cddtttddc.." - /* 1 */ "....duuuuuuuddv" - /* 2 */ "....duuuuuuud.." - /* 3 */ "....duuuuuuud.." - /* 4 */ "....dwwwuuxud.." - /* 5 */ "....ddddddddddv" - /* 6 */ "....yuuuuuuuz.." - /* 7 */ "mmmmyuuuuuuuz.." - /* 8 */ "mmmmyuuuuuuuz.." - /* 9 */ "mmmmduuuuuuud.." - /* 10 */ "mmmmcddAAAddc.." + /* 0 */ "....cddvvvddc.." + /* 1 */ "....dwwwwwwwddx" + /* 2 */ "....dwwwwwwwd.." + /* 3 */ "....dwwwwwwwd.." + /* 4 */ "....dyyywwzwd.." + /* 5 */ "....ddddddddddx" + /* 6 */ "....AwwwwwwwB.." + /* 7 */ "mmmmAwwwwwwwB.." + /* 8 */ "mmmmAwwwwwwwB.." + /* 9 */ "mmmmdwwwwwwwd.." + /* 10 */ "mmmmcddCCCddc.." // Level 4 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "....dBBBdBBBd.." - /* 1 */ "....BcdddddcB.." - /* 2 */ "....Bd.....dB.." - /* 3 */ "....Bd.....dB.." - /* 4 */ "....Bd.....dB.." + /* 0 */ "....dDDDdDDDd.." + /* 1 */ "....DcdddddcD.." + /* 2 */ "....Dd.....dD.." + /* 3 */ "....Dd.....dD.." + /* 4 */ "....Dd.....dD.." /* 5 */ "....dcdd.ddcd.." - /* 6 */ "....B.......B.." - /* 7 */ "mmmmB.......B.." - /* 8 */ "mmmmB.......B.." - /* 9 */ "mmmmB.......B.." - /* 10 */ "mmmmdBBBdBBBd.." + /* 6 */ "....D.......D.." + /* 7 */ "mmmmD.......D.." + /* 8 */ "mmmmD.......D.." + /* 9 */ "mmmmD.......D.." + /* 10 */ "mmmmdDDDdDDDd.." // Level 5 /* z\x* 11111 */ @@ -741,10 +743,10 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* z\x* 11111 */ /* * 012345678901234 */ /* 0 */ "..............." - /* 1 */ ".....cddtddc..." - /* 2 */ ".....yuuuuuz..." - /* 3 */ ".....yuuuuuz..." - /* 4 */ ".....yuuuuuz..." + /* 1 */ ".....cddvddc..." + /* 2 */ ".....AwwwwwB..." + /* 3 */ ".....AwwwwwB..." + /* 4 */ ".....AwwwwwB..." /* 5 */ ".....cdddddc..." /* 6 */ "..............." /* 7 */ "..............." @@ -756,11 +758,11 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* z\x* 11111 */ /* * 012345678901234 */ /* 0 */ "..............." - /* 1 */ ".....dBBdBBd..." - /* 2 */ ".....B.ddd.B..." + /* 1 */ ".....dDDdDDd..." + /* 2 */ ".....D.ddd.D..." /* 3 */ ".....d.ddd.d..." - /* 4 */ ".....B.ddd.B..." - /* 5 */ ".....dBBdBBd..." + /* 4 */ ".....D.ddd.D..." + /* 5 */ ".....dDDdDDd..." /* 6 */ "..............." /* 7 */ "..............." /* 8 */ "..............." @@ -772,9 +774,9 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* * 012345678901234 */ /* 0 */ "..............." /* 1 */ "..............." - /* 2 */ ".......cCc....." - /* 3 */ ".......DEv....." - /* 4 */ ".......cFc....." + /* 2 */ ".......cEc....." + /* 3 */ ".......FGx....." + /* 4 */ ".......cHc....." /* 5 */ "..............." /* 6 */ "..............." /* 7 */ "..............." @@ -788,7 +790,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 0 */ "..............." /* 1 */ "..............." /* 2 */ ".......c.c....." - /* 3 */ "........G......" + /* 3 */ "........I......" /* 4 */ ".......c.c....." /* 5 */ "..............." /* 6 */ "..............." @@ -802,9 +804,9 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* * 012345678901234 */ /* 0 */ "..............." /* 1 */ "..............." - /* 2 */ ".......ctc....." - /* 3 */ ".......y.z....." - /* 4 */ ".......cAc....." + /* 2 */ ".......cvc....." + /* 3 */ ".......A.B....." + /* 4 */ ".......cCc....." /* 5 */ "..............." /* 6 */ "..............." /* 7 */ "..............." @@ -818,7 +820,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* 0 */ "..............." /* 1 */ "..............." /* 2 */ ".......ddd....." - /* 3 */ ".......dHd....." + /* 3 */ ".......dJd....." /* 4 */ ".......ddd....." /* 5 */ "..............." /* 6 */ "..............." @@ -832,9 +834,9 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* * 012345678901234 */ /* 0 */ "..............." /* 1 */ "..............." - /* 2 */ ".......B.B....." + /* 2 */ ".......D.D....." /* 3 */ "..............." - /* 4 */ ".......B.B....." + /* 4 */ ".......D.D....." /* 5 */ "..............." /* 6 */ "..............." /* 7 */ "..............." @@ -877,8 +879,8 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = 7, 11, 7, // SizeX = 7, SizeY = 11, SizeZ = 7 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 6, 10, 6, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 7, 10, 7, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -1050,8 +1052,8 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = 5, 5, 7, // SizeX = 5, SizeY = 5, SizeZ = 7 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 4, 4, 6, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 5, 4, 7, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -1160,8 +1162,8 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = 7, 5, 11, // SizeX = 7, SizeY = 5, SizeZ = 11 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 6, 4, 10, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 7, 4, 11, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -1291,8 +1293,8 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = 9, 5, 7, // SizeX = 9, SizeY = 5, SizeZ = 7 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 8, 4, 6, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 9, 4, 7, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -1400,8 +1402,8 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = 5, 5, 11, // SizeX = 5, SizeY = 5, SizeZ = 11 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 4, 4, 10, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 5, 4, 11, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -1428,7 +1430,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = "u:128: 5\n" /* sandstonestairs */ "v:128: 7\n" /* sandstonestairs */ "w: 44: 1\n" /* step */ - "x: 96: 7\n" /* trapdoor */, + "x: 96: 1\n" /* trapdoor */, // Block data: // Level 0 @@ -1536,8 +1538,8 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = 9, 5, 9, // SizeX = 9, SizeY = 5, SizeZ = 9 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 8, 4, 8, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 9, 4, 9, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -1657,8 +1659,8 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = 9, 5, 9, // SizeX = 9, SizeY = 5, SizeZ = 9 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 8, 4, 8, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 9, 4, 9, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -1783,8 +1785,8 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = 9, 5, 11, // SizeX = 9, SizeY = 5, SizeZ = 11 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 8, 4, 10, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 9, 4, 11, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -1914,8 +1916,8 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = 5, 8, 7, // SizeX = 5, SizeY = 8, SizeZ = 7 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 4, 7, 6, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 5, 7, 7, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -2054,8 +2056,8 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = 15, 8, 9, // SizeX = 15, SizeY = 8, SizeZ = 9 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 14, 7, 8, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 15, 7, 9, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -2219,8 +2221,8 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = 11, 9, 9, // SizeX = 11, SizeY = 9, SizeZ = 9 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 10, 8, 8, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 11, 8, 9, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -2413,8 +2415,8 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = 12, 10, 11, // SizeX = 12, SizeY = 10, SizeZ = 11 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 11, 9, 10, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 12, 9, 11, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -2441,7 +2443,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = "u:128: 5\n" /* sandstonestairs */ "v:128: 7\n" /* sandstonestairs */ "w: 44: 1\n" /* step */ - "x: 96: 6\n" /* trapdoor */ + "x: 96: 4\n" /* trapdoor */ "y:126: 0\n" /* woodenslab */ "z:128: 4\n" /* sandstonestairs */, @@ -2631,8 +2633,8 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = 9, 5, 11, // SizeX = 9, SizeY = 5, SizeZ = 11 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 8, 4, 10, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 9, 4, 11, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -2762,8 +2764,8 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = 13, 9, 9, // SizeX = 13, SizeY = 9, SizeZ = 9 // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 12, 8, 8, // MaxX, MaxY, MaxZ + -1, 0, 0, // MinX, MinY, MinZ + 13, 8, 9, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ -- cgit v1.2.3 From 046c1497979cf96a2fc4d1847dad2d7daf050e60 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Sun, 1 Jun 2014 10:07:57 +0200 Subject: Updated UnderwaterBase prefabs. --- src/Generating/Prefabs/UnderwaterBasePrefabs.cpp | 226 ++++++++++++----------- 1 file changed, 123 insertions(+), 103 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/Prefabs/UnderwaterBasePrefabs.cpp b/src/Generating/Prefabs/UnderwaterBasePrefabs.cpp index 54d1b6745..a20ff9e26 100644 --- a/src/Generating/Prefabs/UnderwaterBasePrefabs.cpp +++ b/src/Generating/Prefabs/UnderwaterBasePrefabs.cpp @@ -60,8 +60,8 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = /* z\x* 111111 */ /* * 0123456789012345 */ /* 0 */ "abeebbbeebbbeeba" - /* 1 */ "f.........g....h" - /* 2 */ "h....i.........f" + /* 1 */ "f...g......g...h" + /* 2 */ "h...i......i...f" /* 3 */ "abeebbbeebbbeeba" // Level 3 @@ -88,7 +88,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = true, // DefaultWeight: - 100, + 2000, // DepthWeight: "", @@ -125,8 +125,10 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = "h: 64:12\n" /* wooddoorblock */ "i: 76: 3\n" /* redstonetorchon */ "j: 64: 8\n" /* wooddoorblock */ - "k: 76: 2\n" /* redstonetorchon */ - "m: 19: 0\n" /* sponge */, + "k: 76: 4\n" /* redstonetorchon */ + "l: 76: 2\n" /* redstonetorchon */ + "m: 19: 0\n" /* sponge */ + "n: 76: 1\n" /* redstonetorchon */, // Block data: // Level 0 @@ -163,10 +165,10 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = /* 0 */ "abggbbmmmm" /* 1 */ "h...i.bbmm" /* 2 */ "j.......bm" - /* 3 */ "abb.....bm" + /* 3 */ "abbk....bm" /* 4 */ "mmmbb....b" - /* 5 */ "mmmmmb..kb" - /* 6 */ "mmmmmb...g" + /* 5 */ "mmmmmb..lb" + /* 6 */ "mmmmmbn..g" /* 7 */ "mmmmmmb..g" /* 8 */ "mmmmmmb..b" /* 9 */ "mmmmmmahja" @@ -241,10 +243,10 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = "k: 20: 0\n" /* glass */ "l: 76: 1\n" /* redstonetorchon */ "m: 19: 0\n" /* sponge */ - "n: 76: 3\n" /* redstonetorchon */ - "o: 76: 4\n" /* redstonetorchon */ - "p: 64: 9\n" /* wooddoorblock */ - "q: 76: 2\n" /* redstonetorchon */, + "n: 76: 2\n" /* redstonetorchon */ + "o: 76: 3\n" /* redstonetorchon */ + "p: 76: 4\n" /* redstonetorchon */ + "q: 64: 9\n" /* wooddoorblock */, // Block data: // Level 0 @@ -294,18 +296,18 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = /* 1 */ "mmmmmmb..bmmmmmm" /* 2 */ "mmmmmmk..kmmmmmm" /* 3 */ "mmmmmmk..kmmmmmm" - /* 4 */ "mmmmmmb..bmmmmmm" - /* 5 */ "mmmmmmbl.bmmmmmm" + /* 4 */ "mmmmmmblnbmmmmmm" + /* 5 */ "mmmmmmb..bmmmmmm" /* 6 */ "abkkbbb..bbbkkba" - /* 7 */ "j.........n....i" - /* 8 */ "i....o.........p" + /* 7 */ "j...o......o...i" + /* 8 */ "i...p......p...q" /* 9 */ "abkkbbb..bbbkkba" - /* 10 */ "mmmmmmb.qbmmmmmm" - /* 11 */ "mmmmmmb..bmmmmmm" + /* 10 */ "mmmmmmb..bmmmmmm" + /* 11 */ "mmmmmmblnbmmmmmm" /* 12 */ "mmmmmmk..kmmmmmm" /* 13 */ "mmmmmmk..kmmmmmm" /* 14 */ "mmmmmmb..bmmmmmm" - /* 15 */ "mmmmmmapiammmmmm" + /* 15 */ "mmmmmmaqiammmmmm" // Level 3 /* z\x* 111111 */ @@ -380,11 +382,11 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = "d: 53: 0\n" /* woodstairs */ "e: 20: 0\n" /* glass */ "f: 64: 9\n" /* wooddoorblock */ - "g: 64: 8\n" /* wooddoorblock */ - "h: 76: 4\n" /* redstonetorchon */ - "i: 64: 0\n" /* wooddoorblock */ - "j: 64: 7\n" /* wooddoorblock */ - "k: 76: 3\n" /* redstonetorchon */ + "g: 76: 3\n" /* redstonetorchon */ + "h: 64: 8\n" /* wooddoorblock */ + "i: 76: 4\n" /* redstonetorchon */ + "j: 64: 0\n" /* wooddoorblock */ + "k: 64: 7\n" /* wooddoorblock */ "l: 64:12\n" /* wooddoorblock */ "m: 19: 0\n" /* sponge */, @@ -409,8 +411,8 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = /* z\x* 111111 */ /* * 0123456789012345 */ /* 0 */ "abeebbbbbmmmmmmm" - /* 1 */ "f......dbbmmmmmm" - /* 2 */ "g...h..dbbmmmmmm" + /* 1 */ "f...g..dbbmmmmmm" + /* 2 */ "h...i..dbbmmmmmm" /* 3 */ "abeebbbbbmmmmmmm" // Level 3 @@ -441,16 +443,16 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = /* z\x* 111111 */ /* * 0123456789012345 */ /* 0 */ "mmmmmmmbbbbbbbba" - /* 1 */ "mmmmmmmb.......i" - /* 2 */ "mmmmmmmb.......j" + /* 1 */ "mmmmmmmb.......j" + /* 2 */ "mmmmmmmb.......k" /* 3 */ "mmmmmmmbbbbbbbba" // Level 7 /* z\x* 111111 */ /* * 0123456789012345 */ /* 0 */ "mmmmmmmmbbbeebba" - /* 1 */ "mmmmmmmmb.k....g" - /* 2 */ "mmmmmmmmb......l" + /* 1 */ "mmmmmmmmb.g....h" + /* 2 */ "mmmmmmmmb.i....l" /* 3 */ "mmmmmmmmbbbeebba" // Level 8 @@ -515,10 +517,11 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = "i: 64:12\n" /* wooddoorblock */ "j: 20: 0\n" /* glass */ "k: 76: 1\n" /* redstonetorchon */ - "l: 76: 3\n" /* redstonetorchon */ + "l: 76: 2\n" /* redstonetorchon */ "m: 19: 0\n" /* sponge */ - "n: 76: 4\n" /* redstonetorchon */ - "o: 64: 9\n" /* wooddoorblock */, + "n: 76: 3\n" /* redstonetorchon */ + "o: 76: 4\n" /* redstonetorchon */ + "p: 64: 9\n" /* wooddoorblock */, // Block data: // Level 0 @@ -556,11 +559,11 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = /* 1 */ "mmmmmmb..bmmmmmm" /* 2 */ "mmmmmmj..jmmmmmm" /* 3 */ "mmmmmmj..jmmmmmm" - /* 4 */ "mmmmmmb..bmmmmmm" - /* 5 */ "mmmmmmbk.bmmmmmm" + /* 4 */ "mmmmmmbklbmmmmmm" + /* 5 */ "mmmmmmb..bmmmmmm" /* 6 */ "abjjbbb..bbbjjba" - /* 7 */ "i.........l....h" - /* 8 */ "h....n.........o" + /* 7 */ "i...n......n...h" + /* 8 */ "h...o......o...p" /* 9 */ "abjjbbbjjbbbjjba" // Level 3 @@ -625,10 +628,14 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = "a: 5: 0\n" /* wood */ "b: 20: 0\n" /* glass */ "c: 5: 5\n" /* wood */ - "d: 64: 0\n" /* wooddoorblock */ - "e: 64: 1\n" /* wooddoorblock */ - "f: 64: 8\n" /* wooddoorblock */ - "g: 64: 9\n" /* wooddoorblock */ + "d: 76: 3\n" /* redstonetorchon */ + "e: 76: 1\n" /* redstonetorchon */ + "f: 64: 0\n" /* wooddoorblock */ + "g: 76: 4\n" /* redstonetorchon */ + "h: 76: 2\n" /* redstonetorchon */ + "i: 64: 1\n" /* wooddoorblock */ + "j: 64: 8\n" /* wooddoorblock */ + "k: 64: 9\n" /* wooddoorblock */ "m: 19: 0\n" /* sponge */, // Block data: @@ -654,19 +661,19 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = /* z\x* 1111 */ /* * 01234567890123 */ /* 0 */ "mmmmmaammmmmmm" - /* 1 */ "mmmaa..aammmmm" + /* 1 */ "mmmaaddaammmmm" /* 2 */ "mmaa....aammmm" /* 3 */ "maa......aammm" /* 4 */ "ma........aaac" - /* 5 */ "a............d" - /* 6 */ "a............d" + /* 5 */ "ae........d..f" + /* 6 */ "ae........g..f" /* 7 */ "ma........aaac" /* 8 */ "maa......aammm" /* 9 */ "mmaa....aammmm" - /* 10 */ "mmmaa..aammmmm" + /* 10 */ "mmmaaehaammmmm" /* 11 */ "mmmma..ammmmmm" /* 12 */ "mmmma..ammmmmm" - /* 13 */ "mmmmceecmmmmmm" + /* 13 */ "mmmmciicmmmmmm" // Level 2 /* z\x* 1111 */ @@ -676,15 +683,15 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = /* 2 */ "mmbb....bbmmmm" /* 3 */ "mbb......bbmmm" /* 4 */ "mb........bbac" - /* 5 */ "b............f" - /* 6 */ "b............g" + /* 5 */ "b............j" + /* 6 */ "b............k" /* 7 */ "mb........bbac" /* 8 */ "mbb......bbmmm" /* 9 */ "mmbb....bbmmmm" /* 10 */ "mmmbb..bbmmmmm" /* 11 */ "mmmmb..bmmmmmm" /* 12 */ "mmmma..ammmmmm" - /* 13 */ "mmmmcgfcmmmmmm" + /* 13 */ "mmmmckjcmmmmmm" // Level 3 /* z\x* 1111 */ @@ -804,12 +811,12 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = "a: 5: 0\n" /* wood */ "b: 5: 5\n" /* wood */ "c: 20: 0\n" /* glass */ - "d: 64: 1\n" /* wooddoorblock */ + "d: 64: 5\n" /* wooddoorblock */ "e: 64: 0\n" /* wooddoorblock */ - "f: 64: 6\n" /* wooddoorblock */ + "f: 64: 2\n" /* wooddoorblock */ "g: 76: 3\n" /* redstonetorchon */ - "h: 64: 8\n" /* wooddoorblock */ - "i: 64:12\n" /* wooddoorblock */ + "h: 64:12\n" /* wooddoorblock */ + "i: 64: 8\n" /* wooddoorblock */ "j: 64: 9\n" /* wooddoorblock */ "k: 76: 4\n" /* redstonetorchon */ "m: 19: 0\n" /* sponge */, @@ -840,7 +847,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = /* * 0123456789012345 */ /* 0 */ "mmaccccccccccamm" /* 1 */ "bag..........gab" - /* 2 */ "h..............h" + /* 2 */ "h..............i" /* 3 */ "i..............j" /* 4 */ "bak..........kab" /* 5 */ "mmaccccccccccamm" @@ -912,9 +919,11 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = "b: 5: 0\n" /* wood */ "c: 20: 0\n" /* glass */ "d: 64: 3\n" /* wooddoorblock */ - "e: 64: 1\n" /* wooddoorblock */ - "f: 64: 8\n" /* wooddoorblock */ - "g: 64: 9\n" /* wooddoorblock */ + "e: 76: 1\n" /* redstonetorchon */ + "f: 76: 2\n" /* redstonetorchon */ + "g: 64: 1\n" /* wooddoorblock */ + "h: 64: 8\n" /* wooddoorblock */ + "i: 64: 9\n" /* wooddoorblock */ "m: 19: 0\n" /* sponge */, // Block data: @@ -944,24 +953,24 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = /* 0 */ "mmmmaddammmm" /* 1 */ "mmmmb..bmmmm" /* 2 */ "mmmmb..bmmmm" - /* 3 */ "mmmbb..bbmmm" + /* 3 */ "mmmbbefbbmmm" /* 4 */ "mmbb....bbmm" /* 5 */ "mbb......bbm" /* 6 */ "mb........bm" - /* 7 */ "b..........b" - /* 8 */ "b..........b" + /* 7 */ "be........fb" + /* 8 */ "be........fb" /* 9 */ "mb........bm" /* 10 */ "mbb......bbm" /* 11 */ "mmbb....bbmm" - /* 12 */ "mmmbb..bbmmm" + /* 12 */ "mmmbbefbbmmm" /* 13 */ "mmmmb..bmmmm" /* 14 */ "mmmmb..bmmmm" - /* 15 */ "mmmmaeeammmm" + /* 15 */ "mmmmaggammmm" // Level 2 /* z\x* 11 */ /* * 012345678901 */ - /* 0 */ "mmmmaffammmm" + /* 0 */ "mmmmahiammmm" /* 1 */ "mmmmb..bmmmm" /* 2 */ "mmmmc..cmmmm" /* 3 */ "mmmcc..ccmmm" @@ -976,7 +985,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = /* 12 */ "mmmcc..ccmmm" /* 13 */ "mmmmc..cmmmm" /* 14 */ "mmmmb..bmmmm" - /* 15 */ "mmmmagfammmm" + /* 15 */ "mmmmaihammmm" // Level 3 /* z\x* 11 */ @@ -1125,12 +1134,16 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = "b: 5: 0\n" /* wood */ "c: 20: 0\n" /* glass */ "d: 64: 3\n" /* wooddoorblock */ - "e: 64: 2\n" /* wooddoorblock */ - "f: 64: 0\n" /* wooddoorblock */ - "g: 64: 1\n" /* wooddoorblock */ - "h: 64: 8\n" /* wooddoorblock */ - "i: 64: 9\n" /* wooddoorblock */ - "m: 19: 0\n" /* sponge */, + "e: 76: 1\n" /* redstonetorchon */ + "f: 76: 2\n" /* redstonetorchon */ + "g: 64: 2\n" /* wooddoorblock */ + "h: 76: 3\n" /* redstonetorchon */ + "i: 64: 0\n" /* wooddoorblock */ + "j: 76: 4\n" /* redstonetorchon */ + "k: 64: 1\n" /* wooddoorblock */ + "l: 64: 8\n" /* wooddoorblock */ + "m: 19: 0\n" /* sponge */ + "n: 64: 9\n" /* wooddoorblock */, // Block data: // Level 0 @@ -1159,39 +1172,39 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = /* 0 */ "mmmmmmaddammmmmm" /* 1 */ "mmmmmmb..bmmmmmm" /* 2 */ "mmmmmmb..bmmmmmm" - /* 3 */ "mmmmmbb..bbmmmmm" + /* 3 */ "mmmmmbbefbbmmmmm" /* 4 */ "mmmmbb....bbmmmm" /* 5 */ "mmmbb......bbmmm" /* 6 */ "abbb........bbba" - /* 7 */ "e..............f" - /* 8 */ "e..............f" + /* 7 */ "g..h........h..i" + /* 8 */ "g..j........j..i" /* 9 */ "abbb........bbba" /* 10 */ "mmmbb......bbmmm" /* 11 */ "mmmmbb....bbmmmm" - /* 12 */ "mmmmmbb..bbmmmmm" + /* 12 */ "mmmmmbbefbbmmmmm" /* 13 */ "mmmmmmb..bmmmmmm" /* 14 */ "mmmmmmb..bmmmmmm" - /* 15 */ "mmmmmmaggammmmmm" + /* 15 */ "mmmmmmakkammmmmm" // Level 2 /* z\x* 111111 */ /* * 0123456789012345 */ - /* 0 */ "mmmmmmahiammmmmm" + /* 0 */ "mmmmmmalnammmmmm" /* 1 */ "mmmmmmb..bmmmmmm" /* 2 */ "mmmmmmc..cmmmmmm" /* 3 */ "mmmmmcc..ccmmmmm" /* 4 */ "mmmmcc....ccmmmm" /* 5 */ "mmmcc......ccmmm" /* 6 */ "abcc........ccba" - /* 7 */ "i..............h" - /* 8 */ "h..............i" + /* 7 */ "n..............l" + /* 8 */ "l..............n" /* 9 */ "abcc........ccba" /* 10 */ "mmmcc......ccmmm" /* 11 */ "mmmmcc....ccmmmm" /* 12 */ "mmmmmcc..ccmmmmm" /* 13 */ "mmmmmmc..cmmmmmm" /* 14 */ "mmmmmmb..bmmmmmm" - /* 15 */ "mmmmmmaihammmmmm" + /* 15 */ "mmmmmmanlammmmmm" // Level 3 /* z\x* 111111 */ @@ -1293,7 +1306,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = true, // DefaultWeight: - 100, + 50, // DepthWeight: "", @@ -1323,9 +1336,12 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = "a: 5: 0\n" /* wood */ "b: 20: 0\n" /* glass */ "c: 5: 5\n" /* wood */ - "d: 64: 0\n" /* wooddoorblock */ - "e: 64: 8\n" /* wooddoorblock */ - "f: 64: 9\n" /* wooddoorblock */ + "d: 76: 3\n" /* redstonetorchon */ + "e: 76: 1\n" /* redstonetorchon */ + "f: 64: 0\n" /* wooddoorblock */ + "g: 76: 4\n" /* redstonetorchon */ + "h: 64: 8\n" /* wooddoorblock */ + "i: 64: 9\n" /* wooddoorblock */ "m: 19: 0\n" /* sponge */, // Block data: @@ -1349,16 +1365,16 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = /* z\x* 1111 */ /* * 01234567890123 */ /* 0 */ "mmmmmaammmmmmm" - /* 1 */ "mmmaa..aammmmm" + /* 1 */ "mmmaaddaammmmm" /* 2 */ "mmaa....aammmm" /* 3 */ "maa......aammm" /* 4 */ "ma........aaac" - /* 5 */ "a............d" - /* 6 */ "a............d" + /* 5 */ "ae........d..f" + /* 6 */ "ae........g..f" /* 7 */ "ma........aaac" /* 8 */ "maa......aammm" /* 9 */ "mmaa....aammmm" - /* 10 */ "mmmaa..aammmmm" + /* 10 */ "mmmaaggaammmmm" /* 11 */ "mmmmmaammmmmmm" // Level 2 @@ -1369,8 +1385,8 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = /* 2 */ "mmbb....bbmmmm" /* 3 */ "mbb......bbmmm" /* 4 */ "mb........bbac" - /* 5 */ "b............e" - /* 6 */ "b............f" + /* 5 */ "b............h" + /* 6 */ "b............i" /* 7 */ "mb........bbac" /* 8 */ "mbb......bbmmm" /* 9 */ "mmbb....bbmmmm" @@ -1455,7 +1471,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = true, // DefaultWeight: - 100, + 200, // DepthWeight: "", @@ -1487,9 +1503,13 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = "c: 20: 0\n" /* glass */ "d: 1: 0\n" /* stone */ "e: 64: 3\n" /* wooddoorblock */ - "f: 64: 0\n" /* wooddoorblock */ - "g: 64: 1\n" /* wooddoorblock */ - "h: 64: 8\n" /* wooddoorblock */ + "f: 76: 1\n" /* redstonetorchon */ + "g: 76: 2\n" /* redstonetorchon */ + "h: 76: 3\n" /* redstonetorchon */ + "i: 64: 0\n" /* wooddoorblock */ + "j: 76: 4\n" /* redstonetorchon */ + "k: 64: 1\n" /* wooddoorblock */ + "l: 64: 8\n" /* wooddoorblock */ "m: 19: 0\n" /* sponge */, // Block data: @@ -1520,40 +1540,40 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = /* 0 */ "mmmmaeeammmmmm" /* 1 */ "mmmmb..bmmmmmm" /* 2 */ "mmmmb..bmmmmmm" - /* 3 */ "mmmbb..bbmmmmm" + /* 3 */ "mmmbbfgbbmmmmm" /* 4 */ "mmbb....bbmmmm" /* 5 */ "mbb......bbmmm" /* 6 */ "mb........bbba" - /* 7 */ "b............f" - /* 8 */ "b............f" + /* 7 */ "bf........h..i" + /* 8 */ "bf........j..i" /* 9 */ "mb........bbba" /* 10 */ "mbb......bbmmm" /* 11 */ "mmbb....bbmmmm" - /* 12 */ "mmmbb..bbmmmmm" + /* 12 */ "mmmbbfgbbmmmmm" /* 13 */ "mmmmb..bmmmmmm" /* 14 */ "mmmmb..bmmmmmm" - /* 15 */ "mmmmaggammmmmm" + /* 15 */ "mmmmakkammmmmm" /* 16 */ "dddddddddddddd" // Level 2 /* z\x* 1111 */ /* * 01234567890123 */ - /* 0 */ "mmmmahhammmmmm" + /* 0 */ "mmmmallammmmmm" /* 1 */ "mmmmb..bmmmmmm" /* 2 */ "mmmmc..cmmmmmm" /* 3 */ "mmmcc..ccmmmmm" /* 4 */ "mmcc....ccmmmm" /* 5 */ "mcc......ccmmm" /* 6 */ "mc........ccba" - /* 7 */ "c............h" - /* 8 */ "c............h" + /* 7 */ "c............l" + /* 8 */ "c............l" /* 9 */ "mc........ccba" /* 10 */ "mcc......ccmmm" /* 11 */ "mmcc....ccmmmm" /* 12 */ "mmmcc..ccmmmmm" /* 13 */ "mmmmc..cmmmmmm" /* 14 */ "mmmmb..bmmmmmm" - /* 15 */ "mmmmahhammmmmm" + /* 15 */ "mmmmallammmmmm" /* 16 */ "dddddddddddddd" // Level 3 @@ -1653,7 +1673,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = true, // DefaultWeight: - 100, + 75, // DepthWeight: "", -- cgit v1.2.3 From 23b08231086ad1edb373811ae4f93d07a60401ad Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Sun, 1 Jun 2014 22:02:58 +0200 Subject: Update UnderwaterBase prefabs. Added the waterfall room and the decaying sphere room. Re-tweaked the pieces' weights. --- src/Generating/Prefabs/UnderwaterBasePrefabs.cpp | 390 ++++++++++++++++++++++- 1 file changed, 378 insertions(+), 12 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/Prefabs/UnderwaterBasePrefabs.cpp b/src/Generating/Prefabs/UnderwaterBasePrefabs.cpp index a20ff9e26..39748a223 100644 --- a/src/Generating/Prefabs/UnderwaterBasePrefabs.cpp +++ b/src/Generating/Prefabs/UnderwaterBasePrefabs.cpp @@ -15,6 +15,169 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = { + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // BrokenRoom: + // The data has been exported from the gallery Water, area index 49, ID 680, created by STR_Warrior + { + // Size: + 14, 7, 12, // SizeX = 14, SizeY = 7, SizeZ = 12 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 13, 6, 11, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 5: 0\n" /* wood */ + "b: 20: 0\n" /* glass */ + "c: 5: 5\n" /* wood */ + "d: 8: 0\n" /* water */ + "e: 64: 4\n" /* wooddoorblock */ + "f: 64:12\n" /* wooddoorblock */ + "g: 64:13\n" /* wooddoorblock */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "mmmmmmmmmmmmmm" + /* 1 */ "mmmmaaaammmmmm" + /* 2 */ "mmmaabbaammmmm" + /* 3 */ "mmaabbbbaammmm" + /* 4 */ "maabbbbbbaammm" + /* 5 */ "mabbbbbbbbaaac" + /* 6 */ "mabbbbbbbbaaac" + /* 7 */ "maabbbbbbaammm" + /* 8 */ "mmaabbbbaammmm" + /* 9 */ "mmmaabbaammmmm" + /* 10 */ "mmmmaaaammmmmm" + /* 11 */ "mmmmmmmmmmmmmm" + + // Level 1 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "mmmmmaammmmmmm" + /* 1 */ "mmmaaddaammmmm" + /* 2 */ "mmaaddddaammmm" + /* 3 */ "maaddddddaammm" + /* 4 */ "maddddddddaaac" + /* 5 */ "adddddddddddde" + /* 6 */ "adddddddddddde" + /* 7 */ "maddddddddaaac" + /* 8 */ "maaddddddaammm" + /* 9 */ "mmaaddddaammmm" + /* 10 */ "mmmaaddaammmmm" + /* 11 */ "mmmmmaammmmmmm" + + // Level 2 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "mmmmmbbmmmmmmm" + /* 1 */ "mmmbb..bbmmmmm" + /* 2 */ "mmbb....bbmmmm" + /* 3 */ "mbb......bbmmm" + /* 4 */ "mb........bbac" + /* 5 */ "b............f" + /* 6 */ "b............g" + /* 7 */ "mb........bbac" + /* 8 */ "mbb......bbmmm" + /* 9 */ "mmbb....bbmmmm" + /* 10 */ "mmmbb..bbmmmmm" + /* 11 */ "mmmmmbbmmmmmmm" + + // Level 3 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "mmmmmbbmmmmmmm" + /* 1 */ "mmmbb..bbmmmmm" + /* 2 */ "mmbb....bbmmmm" + /* 3 */ "mbb......bbmmm" + /* 4 */ "mb........bbac" + /* 5 */ "b..........bac" + /* 6 */ "b..........bac" + /* 7 */ "mb........bbac" + /* 8 */ "mbb......bbmmm" + /* 9 */ "mmbb....bbmmmm" + /* 10 */ "mmmbb..bbmmmmm" + /* 11 */ "mmmmmbbmmmmmmm" + + // Level 4 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "mmmmmmmmmmmmmm" + /* 1 */ "mmmmm.bmmmmmmm" + /* 2 */ "mmmmb..bmmmmmm" + /* 3 */ "mmmb....bmmmmm" + /* 4 */ "mmb......bmmmm" + /* 5 */ "m.........bmmm" + /* 6 */ "mb........bmmm" + /* 7 */ "mmb......bmmmm" + /* 8 */ "mmm.....bmmmmm" + /* 9 */ "mmmmb..bmmmmmm" + /* 10 */ "mmmmmbbmmmmmmm" + /* 11 */ "mmmmmmmmmmmmmm" + + // Level 5 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "mmmmmmmmmmmmmm" + /* 1 */ "mmmmmmmmmmmmmm" + /* 2 */ "mmmmmbbmmmmmmm" + /* 3 */ "mmmm....mmmmmm" + /* 4 */ "mmmb....bmmmmm" + /* 5 */ "mmb......bmmmm" + /* 6 */ "mmb......bmmmm" + /* 7 */ "mmmb.....mmmmm" + /* 8 */ "mmmmb..bmmmmmm" + /* 9 */ "mmmmmbbmmmmmmm" + /* 10 */ "mmmmmmmmmmmmmm" + /* 11 */ "mmmmmmmmmmmmmm" + + // Level 6 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "mmmmmmmmmmmmmm" + /* 1 */ "mmmmmmmmmmmmmm" + /* 2 */ "mmmmmmmmmmmmmm" + /* 3 */ "mmmmmbbmmmmmmm" + /* 4 */ "mmmmbbbbmmmmmm" + /* 5 */ "mmmbbbbbbmmmmm" + /* 6 */ "mmmbb.bbbmmmmm" + /* 7 */ "mmmmbbbbmmmmmm" + /* 8 */ "mmmmmbbmmmmmmm" + /* 9 */ "mmmmmmmmmmmmmm" + /* 10 */ "mmmmmmmmmmmmmm" + /* 11 */ "mmmmmmmmmmmmmm", + + // Connectors: + "1: 13, 1, 6: 5\n" /* Type 1, direction X+ */ + "-1: 13, 1, 5: 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: + false, + }, // BrokenRoom + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Corridor16: // The data has been exported from the gallery Water, area index 25, ID 566, created by xoft @@ -88,7 +251,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = true, // DefaultWeight: - 2000, + 500, // DepthWeight: "", @@ -722,7 +885,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = /* 5 */ "mb........bmmm" /* 6 */ "mb........bmmm" /* 7 */ "mmb......bmmmm" - /* 8 */ "mmmbb...bmmmmm" + /* 8 */ "mmmb....bmmmmm" /* 9 */ "mmmmb..bmmmmmm" /* 10 */ "mmmmmbbmmmmmmm" /* 11 */ "mmmmmmmmmmmmmm" @@ -740,7 +903,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = /* 5 */ "mmb......bmmmm" /* 6 */ "mmb......bmmmm" /* 7 */ "mmmb....bmmmmm" - /* 8 */ "mmmmb.bbmmmmmm" + /* 8 */ "mmmmb..bmmmmmm" /* 9 */ "mmmmmbbmmmmmmm" /* 10 */ "mmmmmmmmmmmmmm" /* 11 */ "mmmmmmmmmmmmmm" @@ -1020,7 +1183,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = /* 7 */ "mc........cm" /* 8 */ "mc........cm" /* 9 */ "mmc......cmm" - /* 10 */ "mmmcc...cmmm" + /* 10 */ "mmmc....cmmm" /* 11 */ "mmmmc..cmmmm" /* 12 */ "mmmmmccmmmmm" /* 13 */ "mmmmmmmmmmmm" @@ -1040,7 +1203,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = /* 7 */ "mmc......cmm" /* 8 */ "mmc......cmm" /* 9 */ "mmmc....cmmm" - /* 10 */ "mmmmc.ccmmmm" + /* 10 */ "mmmmc..cmmmm" /* 11 */ "mmmmmccmmmmm" /* 12 */ "mmmmmmmmmmmm" /* 13 */ "mmmmmmmmmmmm" @@ -1239,7 +1402,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = /* 7 */ "mmmc........cmmm" /* 8 */ "mmmc........cmmm" /* 9 */ "mmmmc......cmmmm" - /* 10 */ "mmmmmcc...cmmmmm" + /* 10 */ "mmmmmc....cmmmmm" /* 11 */ "mmmmmmc..cmmmmmm" /* 12 */ "mmmmmmmccmmmmmmm" /* 13 */ "mmmmmmmmmmmmmmmm" @@ -1259,7 +1422,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = /* 7 */ "mmmmc......cmmmm" /* 8 */ "mmmmc......cmmmm" /* 9 */ "mmmmmc....cmmmmm" - /* 10 */ "mmmmmmc.ccmmmmmm" + /* 10 */ "mmmmmmc..cmmmmmm" /* 11 */ "mmmmmmmccmmmmmmm" /* 12 */ "mmmmmmmmmmmmmmmm" /* 13 */ "mmmmmmmmmmmmmmmm" @@ -1420,7 +1583,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = /* 5 */ "mb........bmmm" /* 6 */ "mb........bmmm" /* 7 */ "mmb......bmmmm" - /* 8 */ "mmmbb...bmmmmm" + /* 8 */ "mmmb....bmmmmm" /* 9 */ "mmmmb..bmmmmmm" /* 10 */ "mmmmmbbmmmmmmm" /* 11 */ "mmmmmmmmmmmmmm" @@ -1436,7 +1599,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = /* 5 */ "mmb......bmmmm" /* 6 */ "mmb......bmmmm" /* 7 */ "mmmb....bmmmmm" - /* 8 */ "mmmmb.bbmmmmmm" + /* 8 */ "mmmmb..bmmmmmm" /* 9 */ "mmmmmbbmmmmmmm" /* 10 */ "mmmmmmmmmmmmmm" /* 11 */ "mmmmmmmmmmmmmm" @@ -1610,7 +1773,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = /* 7 */ "mc........cmmm" /* 8 */ "mc........cmmm" /* 9 */ "mmc......cmmmm" - /* 10 */ "mmmcc...cmmmmm" + /* 10 */ "mmmc....cmmmmm" /* 11 */ "mmmmc..cmmmmmm" /* 12 */ "mmmmmccmmmmmmm" /* 13 */ "mmmmmmmmmmmmmm" @@ -1631,7 +1794,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = /* 7 */ "mmc......cmmmm" /* 8 */ "mmc......cmmmm" /* 9 */ "mmmc....cmmmmm" - /* 10 */ "mmmmc.ccmmmmmm" + /* 10 */ "mmmmc..cmmmmmm" /* 11 */ "mmmmmccmmmmmmm" /* 12 */ "mmmmmmmmmmmmmm" /* 13 */ "mmmmmmmmmmmmmm" @@ -1684,6 +1847,209 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = // MoveToGround: false, }, // ViewingTee + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // WaterfallRoom: + // The data has been exported from the gallery Water, area index 50, ID 681, created by Aloe_vera + { + // Size: + 16, 7, 16, // SizeX = 16, SizeY = 7, SizeZ = 16 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 15, 6, 15, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 5: 5\n" /* wood */ + "b: 5: 0\n" /* wood */ + "c: 20: 0\n" /* glass */ + "d: 64: 3\n" /* wooddoorblock */ + "e: 76: 1\n" /* redstonetorchon */ + "f: 76: 2\n" /* redstonetorchon */ + "g: 64: 2\n" /* wooddoorblock */ + "h: 76: 3\n" /* redstonetorchon */ + "i: 64: 0\n" /* wooddoorblock */ + "j: 76: 4\n" /* redstonetorchon */ + "k: 64: 1\n" /* wooddoorblock */ + "l: 64: 8\n" /* wooddoorblock */ + "m: 19: 0\n" /* sponge */ + "n: 64: 9\n" /* wooddoorblock */, + + // Block data: + // Level 0 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmmaammmmmmm" + /* 1 */ "mmmmmmmbbmmmmmmm" + /* 2 */ "mmmmmmmbbmmmmmmm" + /* 3 */ "mmmmmmbbbbmmmmmm" + /* 4 */ "mmmmmbbccbbmmmmm" + /* 5 */ "mmmmbbccccbbmmmm" + /* 6 */ "mmmbbccccccbbmmm" + /* 7 */ "abbbcccmmcccbbba" + /* 8 */ "abbbcccmmcccbbba" + /* 9 */ "mmmbbccccccbbmmm" + /* 10 */ "mmmmbbccccbbmmmm" + /* 11 */ "mmmmmbbccbbmmmmm" + /* 12 */ "mmmmmmbbbbmmmmmm" + /* 13 */ "mmmmmmmbbmmmmmmm" + /* 14 */ "mmmmmmmbbmmmmmmm" + /* 15 */ "mmmmmmmaammmmmmm" + + // Level 1 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmaddammmmmm" + /* 1 */ "mmmmmmb..bmmmmmm" + /* 2 */ "mmmmmmb..bmmmmmm" + /* 3 */ "mmmmmbbefbbmmmmm" + /* 4 */ "mmmmbb....bbmmmm" + /* 5 */ "mmmbb......bbmmm" + /* 6 */ "abbb...cc...bbba" + /* 7 */ "g..h..c..c..h..i" + /* 8 */ "g..j..c..c..j..i" + /* 9 */ "abbb...cc...bbba" + /* 10 */ "mmmbb......bbmmm" + /* 11 */ "mmmmbb....bbmmmm" + /* 12 */ "mmmmmbbefbbmmmmm" + /* 13 */ "mmmmmmb..bmmmmmm" + /* 14 */ "mmmmmmb..bmmmmmm" + /* 15 */ "mmmmmmakkammmmmm" + + // Level 2 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmalnammmmmm" + /* 1 */ "mmmmmmb..bmmmmmm" + /* 2 */ "mmmmmmc..cmmmmmm" + /* 3 */ "mmmmmcc..ccmmmmm" + /* 4 */ "mmmmcc....ccmmmm" + /* 5 */ "mmmcc......ccmmm" + /* 6 */ "abcc........ccba" + /* 7 */ "n..............l" + /* 8 */ "l..............n" + /* 9 */ "abcc........ccba" + /* 10 */ "mmmcc......ccmmm" + /* 11 */ "mmmmcc....ccmmmm" + /* 12 */ "mmmmmcc..ccmmmmm" + /* 13 */ "mmmmmmc..cmmmmmm" + /* 14 */ "mmmmmmb..bmmmmmm" + /* 15 */ "mmmmmmanlammmmmm" + + // Level 3 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmaaaammmmmm" + /* 1 */ "mmmmmmbbbbmmmmmm" + /* 2 */ "mmmmmmccccmmmmmm" + /* 3 */ "mmmmmcc..ccmmmmm" + /* 4 */ "mmmmcc....ccmmmm" + /* 5 */ "mmmcc......ccmmm" + /* 6 */ "abcc........ccba" + /* 7 */ "abc..........cba" + /* 8 */ "abc..........cba" + /* 9 */ "abcc........ccba" + /* 10 */ "mmmcc......ccmmm" + /* 11 */ "mmmmcc....ccmmmm" + /* 12 */ "mmmmmcc..ccmmmmm" + /* 13 */ "mmmmmmccccmmmmmm" + /* 14 */ "mmmmmmbbbbmmmmmm" + /* 15 */ "mmmmmmaaaammmmmm" + + // Level 4 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmmmmmmmmmmm" + /* 1 */ "mmmmmmmmmmmmmmmm" + /* 2 */ "mmmmmmmmmmmmmmmm" + /* 3 */ "mmmmmmmccmmmmmmm" + /* 4 */ "mmmmm.c..cmmmmmm" + /* 5 */ "mmmmmc....cmmmmm" + /* 6 */ "mmmmc......cmmmm" + /* 7 */ "mmmc........cmmm" + /* 8 */ "mmmc........cmmm" + /* 9 */ "mmmmc......cmmmm" + /* 10 */ "mmmmmc....cmmmmm" + /* 11 */ "mmmmmmc..cmmmmmm" + /* 12 */ "mmmmmmmccmmmmmmm" + /* 13 */ "mmmmmmmmmmmmmmmm" + /* 14 */ "mmmmmmmmmmmmmmmm" + /* 15 */ "mmmmmmmmmmmmmmmm" + + // Level 5 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmmmmmmmmmmm" + /* 1 */ "mmmmmmmmmmmmmmmm" + /* 2 */ "mmmmmmmmmmmmmmmm" + /* 3 */ "mmmmmmmmmmmmmmmm" + /* 4 */ "mmmmmm.ccmmmmmmm" + /* 5 */ "mmmmmmc..cmmmmmm" + /* 6 */ "mmmmmc....cmmmmm" + /* 7 */ "mmmmc......cmmmm" + /* 8 */ "mmmmc......cmmmm" + /* 9 */ "mmmmmc....cmmmmm" + /* 10 */ "mmmmmmc..cmmmmmm" + /* 11 */ "mmmmmmmccmmmmmmm" + /* 12 */ "mmmmmmmmmmmmmmmm" + /* 13 */ "mmmmmmmmmmmmmmmm" + /* 14 */ "mmmmmmmmmmmmmmmm" + /* 15 */ "mmmmmmmmmmmmmmmm" + + // Level 6 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "mmmmmmmmmmmmmmmm" + /* 1 */ "mmmmmmmmmmmmmmmm" + /* 2 */ "mmmmmmmmmmmmmmmm" + /* 3 */ "mmmmmmmmmmmmmmmm" + /* 4 */ "mmmmmmmmmmmmmmmm" + /* 5 */ "mmmmmmmccmmmmmmm" + /* 6 */ "mmmmmmccccmmmmmm" + /* 7 */ "mmmmmcc..ccmmmmm" + /* 8 */ "mmmmmcc..ccmmmmm" + /* 9 */ "mmmmmmccccmmmmmm" + /* 10 */ "mmmmmmmccmmmmmmm" + /* 11 */ "mmmmmmmmmmmmmmmm" + /* 12 */ "mmmmmmmmmmmmmmmm" + /* 13 */ "mmmmmmmmmmmmmmmm" + /* 14 */ "mmmmmmmmmmmmmmmm" + /* 15 */ "mmmmmmmmmmmmmmmm", + + // Connectors: + "1: 15, 1, 8: 5\n" /* Type 1, direction X+ */ + "-1: 15, 1, 7: 5\n" /* Type -1, direction X+ */ + "1: 8, 1, 0: 2\n" /* Type 1, direction Z- */ + "-1: 7, 1, 0: 2\n" /* Type -1, direction Z- */ + "1: 0, 1, 7: 4\n" /* Type 1, direction X- */ + "-1: 0, 1, 8: 4\n" /* Type -1, direction X- */ + "1: 7, 1, 15: 3\n" /* Type 1, direction Z+ */ + "-1: 8, 1, 15: 3\n" /* Type -1, direction Z+ */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + true, + + // DefaultWeight: + 5, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + false, + }, // WaterfallRoom }; // g_UnderwaterBasePrefabs @@ -1773,7 +2139,7 @@ const cPrefab::sDef g_UnderwaterBaseStartingPrefabs[] = /* 4 */ "mmmmcc....ccmmmm" /* 5 */ "mmmcc......ccmmm" /* 6 */ "abbc........cbba" - /* 7 */ "h..............h" + /* 7 */ "i..............h" /* 8 */ "h..............i" /* 9 */ "abbc........cbba" /* 10 */ "mmmcc......ccmmm" -- cgit v1.2.3 From 7d3d9e92e89e726fc3e999ac343db06b694d95e7 Mon Sep 17 00:00:00 2001 From: Tiger Wang Date: Wed, 4 Jun 2014 20:01:05 +0100 Subject: Fixed a NetherFinisher bug --- src/Generating/ChunkDesc.cpp | 21 --------------------- src/Generating/ChunkDesc.h | 3 --- src/Generating/FinishGen.cpp | 9 +++++++++ 3 files changed, 9 insertions(+), 24 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/ChunkDesc.cpp b/src/Generating/ChunkDesc.cpp index 7711723fc..759d57b83 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; diff --git a/src/Generating/ChunkDesc.h b/src/Generating/ChunkDesc.h index 8edc2800b..2680fe3fa 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; @@ -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/FinishGen.cpp b/src/Generating/FinishGen.cpp index f2d66af70..c77145bc6 100644 --- a/src/Generating/FinishGen.cpp +++ b/src/Generating/FinishGen.cpp @@ -125,6 +125,15 @@ void cFinishGenNetherClumpFoliage::TryPlaceClump(cChunkDesc & a_ChunkDesc, int a float zz = (float) a_ChunkDesc.GetChunkZ() * cChunkDef::Width + z; for (int y = a_RelY - 2; y < a_RelY + 2; y++) { + 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; -- cgit v1.2.3 From 156c9851b8a099656fa86ea52d989e35e5b7ebf1 Mon Sep 17 00:00:00 2001 From: Tiger Wang Date: Thu, 5 Jun 2014 17:58:29 +0100 Subject: Suggestions --- src/Generating/ChunkGenerator.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/Generating') diff --git a/src/Generating/ChunkGenerator.cpp b/src/Generating/ChunkGenerator.cpp index 73f0223e8..1f2958901 100644 --- a/src/Generating/ChunkGenerator.cpp +++ b/src/Generating/ChunkGenerator.cpp @@ -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) -- cgit v1.2.3 From ec40c7c83ad1ef62b2c8e759bd9a76cf916f5e5b Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Thu, 5 Jun 2014 23:44:31 +0200 Subject: Added RainbowRoads finisher generator. --- src/Generating/ComposableGenerator.cpp | 14 +- src/Generating/Prefabs/RainbowRoadPrefabs.cpp | 1406 +++++++++++++++++++++++++ src/Generating/Prefabs/RainbowRoadPrefabs.h | 15 + src/Generating/RainbowRoadsGen.cpp | 115 ++ src/Generating/RainbowRoadsGen.h | 47 + 5 files changed, 1594 insertions(+), 3 deletions(-) create mode 100644 src/Generating/Prefabs/RainbowRoadPrefabs.cpp create mode 100644 src/Generating/Prefabs/RainbowRoadPrefabs.h create mode 100644 src/Generating/RainbowRoadsGen.cpp create mode 100644 src/Generating/RainbowRoadsGen.h (limited to 'src/Generating') diff --git a/src/Generating/ComposableGenerator.cpp b/src/Generating/ComposableGenerator.cpp index cf736ce64..1801b7375 100644 --- a/src/Generating/ComposableGenerator.cpp +++ b/src/Generating/ComposableGenerator.cpp @@ -24,6 +24,7 @@ #include "NetherFortGen.h" #include "Noise3DGenerator.h" #include "POCPieceGenerator.h" +#include "RainbowRoadsGen.h" #include "Ravines.h" #include "UnderwaterBaseGen.h" #include "VillageGen.h" @@ -391,6 +392,13 @@ void cComposableGenerator::InitFinishGens(cIniFile & a_IniFile) { m_FinishGens.push_back(new cFinishGenPreSimulator); } + else if (NoCaseCompare(*itr, "RainbowRoads") == 0) + { + int GridSize = a_IniFile.GetValueSetI("Generator", "RainbowRoadsGridSize", 512); + int MaxDepth = a_IniFile.GetValueSetI("Generator", "RainbowRoadsMaxDepth", 30); + int MaxSize = a_IniFile.GetValueSetI("Generator", "RainbowRoadsMaxSize", 260); + m_FinishGens.push_back(new cRainbowRoadsGen(Seed, GridSize, MaxDepth, MaxSize)); + } else if (NoCaseCompare(*itr, "Ravines") == 0) { m_FinishGens.push_back(new cStructGenRavines(Seed, 128)); @@ -409,9 +417,9 @@ void cComposableGenerator::InitFinishGens(cIniFile & a_IniFile) } else if (NoCaseCompare(*itr, "UnderwaterBases") == 0) { - int GridSize = a_IniFile.GetValueSetI("Generator", "UnderwaterBaseGridSize", 1024); - int MaxDepth = a_IniFile.GetValueSetI("Generator", "UnderwaterBaseMaxDepth", 7); - int MaxSize = a_IniFile.GetValueSetI("Generator", "UnderwaterBaseMaxSize", 128); + int GridSize = a_IniFile.GetValueSetI("Generator", "UnderwaterBaseGridSize", 1024); + int MaxDepth = a_IniFile.GetValueSetI("Generator", "UnderwaterBaseMaxDepth", 7); + int MaxSize = a_IniFile.GetValueSetI("Generator", "UnderwaterBaseMaxSize", 128); m_FinishGens.push_back(new cUnderwaterBaseGen(Seed, GridSize, MaxDepth, MaxSize, *m_BiomeGen)); } else if (NoCaseCompare(*itr, "Villages") == 0) diff --git a/src/Generating/Prefabs/RainbowRoadPrefabs.cpp b/src/Generating/Prefabs/RainbowRoadPrefabs.cpp new file mode 100644 index 000000000..1a3765c5a --- /dev/null +++ b/src/Generating/Prefabs/RainbowRoadPrefabs.cpp @@ -0,0 +1,1406 @@ + +// RainbowRoadPrefabs.cpp + +// Defines the prefabs in the group RainbowRoad + +// NOTE: This file has been generated automatically by GalExport! +// Any manual changes will be overwritten by the next automatic export! + +#include "Globals.h" +#include "RainbowRoadPrefabs.h" + + + + + +const cPrefab::sDef g_RainbowRoadPrefabs[] = +{ + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // CurveDouble: + // The data has been exported from the gallery Cube, area index 89, ID 467, created by Aloe_vera + { + // Size: + 14, 1, 14, // SizeX = 14, SizeY = 1, SizeZ = 14 + + // Hitbox (relative to bounding box): + 0, -2, 0, // MinX, MinY, MinZ + 13, 2, 13, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 35:11\n" /* wool */ + "b: 35: 3\n" /* wool */ + "c: 35: 5\n" /* wool */ + "d: 35: 4\n" /* wool */ + "e: 35: 1\n" /* wool */ + "f: 35:14\n" /* wool */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "aaaaaa........" + /* 1 */ "bbbbbba......." + /* 2 */ "cccccbbaaa...." + /* 3 */ "dddddccbbaa..." + /* 4 */ "eeeeeddccbaa.." + /* 5 */ "fffffeddccba.." + /* 6 */ "ffffffeedcbaa." + /* 7 */ "eeeefffeddcba." + /* 8 */ "dddeefffedcbba" + /* 9 */ "cccddefffedcba" + /* 10 */ "bbccdeeffedcba" + /* 11 */ "abbccdeffedcba" + /* 12 */ ".abbcdeffedcba" + /* 13 */ "..abcdeffedcba", + + // Connectors: + "2: 2, 1, 13: 3\n" /* Type 2, direction Z+ */ + "2: 0, 1, 0: 4\n" /* Type 2, direction X- */ + "-2: 0, 1, 11: 4\n" /* Type -2, direction X- */ + "-2: 13, 1, 13: 3\n" /* Type -2, direction Z+ */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + false, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + false, + }, // CurveDouble + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // CurveDownFromTopSingle: + // The data has been exported from the gallery Cube, area index 100, ID 478, created by Aloe_vera + { + // Size: + 11, 8, 11, // SizeX = 11, SizeY = 8, SizeZ = 11 + + // Hitbox (relative to bounding box): + 0, -2, 0, // MinX, MinY, MinZ + 10, 9, 10, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 35:14\n" /* wool */ + "b: 35: 5\n" /* wool */ + "c: 35: 4\n" /* wool */ + "d: 35: 1\n" /* wool */ + "e: 35:11\n" /* wool */ + "f: 35: 3\n" /* wool */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "..........." + /* 3 */ "..........." + /* 4 */ "..........." + /* 5 */ "..........." + /* 6 */ "..........." + /* 7 */ "..........." + /* 8 */ "..........a" + /* 9 */ ".......bcda" + /* 10 */ ".....efbcda" + + // Level 1 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "..........." + /* 3 */ "..........." + /* 4 */ "..........." + /* 5 */ "..........." + /* 6 */ "........cda" + /* 7 */ ".......bcda" + /* 8 */ ".......bcd." + /* 9 */ ".....ef...." + /* 10 */ "..........." + + // Level 2 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "..........." + /* 3 */ "..........." + /* 4 */ ".........a." + /* 5 */ ".......cdda" + /* 6 */ "......bc..." + /* 7 */ "......b...." + /* 8 */ ".....ff...." + /* 9 */ "....ee....." + /* 10 */ "..........." + + // Level 3 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "..........." + /* 3 */ "........aa." + /* 4 */ "......ccd.." + /* 5 */ ".....bb...." + /* 6 */ ".....f....." + /* 7 */ "....ef....." + /* 8 */ "....e......" + /* 9 */ "..........." + /* 10 */ "..........." + + // Level 4 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "......daa.." + /* 3 */ ".....ccd..." + /* 4 */ "....bb....." + /* 5 */ "....f......" + /* 6 */ "...ef......" + /* 7 */ "...ee......" + /* 8 */ "..........." + /* 9 */ "..........." + /* 10 */ "..........." + + // Level 5 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".....daa..." + /* 2 */ "...ccd....." + /* 3 */ "...bc......" + /* 4 */ "...b......." + /* 5 */ "..ff......." + /* 6 */ "..ee......." + /* 7 */ "..........." + /* 8 */ "..........." + /* 9 */ "..........." + /* 10 */ "..........." + + // Level 6 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "...aaa....." + /* 1 */ "..ddd......" + /* 2 */ ".cc........" + /* 3 */ ".bb........" + /* 4 */ ".ff........" + /* 5 */ ".e........." + /* 6 */ ".ee........" + /* 7 */ "..........." + /* 8 */ "..........." + /* 9 */ "..........." + /* 10 */ "..........." + + // Level 7 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "aaa........" + /* 1 */ "dd........." + /* 2 */ "cc........." + /* 3 */ "bb........." + /* 4 */ "ff........." + /* 5 */ "e.........." + /* 6 */ "..........." + /* 7 */ "..........." + /* 8 */ "..........." + /* 9 */ "..........." + /* 10 */ "...........", + + // Connectors: + "-1: 0, 8, 5: 4\n" /* Type -1, direction X- */ + "1: 5, 1, 10: 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, + }, // CurveDownFromTopSingle + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // CurveSingle: + // The data has been exported from the gallery Cube, area index 84, ID 462, created by Aloe_vera + { + // Size: + 11, 1, 11, // SizeX = 11, SizeY = 1, SizeZ = 11 + + // Hitbox (relative to bounding box): + 0, -2, 0, // MinX, MinY, MinZ + 10, 2, 10, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 35:14\n" /* wool */ + "b: 35: 1\n" /* wool */ + "c: 35: 4\n" /* wool */ + "d: 35: 5\n" /* wool */ + "e: 35: 3\n" /* wool */ + "f: 35:11\n" /* wool */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "aaaaaa....." + /* 1 */ "bbbbbbaa..." + /* 2 */ "cccccbbaa.." + /* 3 */ "ddddcccbaa." + /* 4 */ "eeedddccba." + /* 5 */ "ffeeeddcbba" + /* 6 */ ".fffeedccba" + /* 7 */ "...ffeddcba" + /* 8 */ "....feedcba" + /* 9 */ "....ffedcba" + /* 10 */ ".....fedcba", + + // Connectors: + "-1: 0, 1, 5: 4\n" /* Type -1, direction X- */ + "1: 5, 1, 10: 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, + }, // CurveSingle + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // CurveSingleLeft: + // The data has been exported from the gallery Cube, area index 97, ID 475, created by Aloe_vera + { + // Size: + 11, 1, 11, // SizeX = 11, SizeY = 1, SizeZ = 11 + + // Hitbox (relative to bounding box): + 0, -2, 0, // MinX, MinY, MinZ + 10, 2, 10, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 35:14\n" /* wool */ + "b: 35: 1\n" /* wool */ + "c: 35: 4\n" /* wool */ + "d: 35: 5\n" /* wool */ + "e: 35: 3\n" /* wool */ + "f: 35:11\n" /* wool */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ ".....abcdef" + /* 1 */ "....aabcdef" + /* 2 */ "....abbcdef" + /* 3 */ "...aabccdef" + /* 4 */ ".aaabbcddef" + /* 5 */ "aabbbccdeef" + /* 6 */ "bbbcccddef." + /* 7 */ "ccccdddeff." + /* 8 */ "dddddeeff.." + /* 9 */ "eeeeeeff..." + /* 10 */ "ffffff.....", + + // Connectors: + "-1: 0, 1, 10: 4\n" /* Type -1, direction X- */ + "1: 10, 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, + }, // CurveSingleLeft + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // CurveUpDouble: + // The data has been exported from the gallery Cube, area index 92, ID 470, created by Aloe_vera + { + // Size: + 14, 8, 14, // SizeX = 14, SizeY = 8, SizeZ = 14 + + // Hitbox (relative to bounding box): + 0, -2, 0, // MinX, MinY, MinZ + 13, 9, 13, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 35:11\n" /* wool */ + "b: 35: 3\n" /* wool */ + "c: 35: 5\n" /* wool */ + "d: 35: 4\n" /* wool */ + "e: 35: 1\n" /* wool */ + "f: 35:14\n" /* wool */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "a............." + /* 1 */ "b............." + /* 2 */ "c............." + /* 3 */ "d............." + /* 4 */ "e............." + /* 5 */ "f............." + /* 6 */ "f............." + /* 7 */ "e............." + /* 8 */ "d............." + /* 9 */ "c............." + /* 10 */ "b............." + /* 11 */ "a............." + /* 12 */ ".............." + /* 13 */ ".............." + + // Level 1 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ ".aa..........." + /* 1 */ ".bb..........." + /* 2 */ ".cc..........." + /* 3 */ ".dd..........." + /* 4 */ ".ee..........." + /* 5 */ ".f............" + /* 6 */ ".f............" + /* 7 */ ".e............" + /* 8 */ ".d............" + /* 9 */ ".c............" + /* 10 */ ".b............" + /* 11 */ ".b............" + /* 12 */ ".............." + /* 13 */ ".............." + + // Level 2 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ "...aaa........" + /* 1 */ "...bb........." + /* 2 */ "...cc........." + /* 3 */ "...dd........." + /* 4 */ "...ee........." + /* 5 */ "..ff.........." + /* 6 */ "..ff.........." + /* 7 */ "..ee.........." + /* 8 */ "..de.........." + /* 9 */ "..c..........." + /* 10 */ ".b............" + /* 11 */ ".b............" + /* 12 */ ".............." + /* 13 */ ".............." + + // Level 3 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ ".............." + /* 1 */ ".....baa......" + /* 2 */ ".....bbaaa...." + /* 3 */ "....dccbba...." + /* 4 */ "....eddcc....." + /* 5 */ "....fedd......" + /* 6 */ "....ffee......" + /* 7 */ "....ff........" + /* 8 */ "....e........." + /* 9 */ "...dd........." + /* 10 */ "..cc.........." + /* 11 */ "..b..........." + /* 12 */ ".a............" + /* 13 */ ".............." + + // Level 4 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ ".............." + /* 1 */ ".............." + /* 2 */ ".............." + /* 3 */ "..........a..." + /* 4 */ ".........ba..." + /* 5 */ "........cc...." + /* 6 */ ".......edc...." + /* 7 */ "......fedd...." + /* 8 */ ".....ff......." + /* 9 */ "....de........" + /* 10 */ "...cde........" + /* 11 */ "..b..........." + /* 12 */ ".a............" + /* 13 */ ".............." + + // Level 5 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ ".............." + /* 1 */ ".............." + /* 2 */ ".............." + /* 3 */ ".............." + /* 4 */ "...........a.." + /* 5 */ "..........ba.." + /* 6 */ "..........baa." + /* 7 */ "..........cba." + /* 8 */ ".......fedcb.." + /* 9 */ "......fffed..." + /* 10 */ ".....eef......" + /* 11 */ "...ccd........" + /* 12 */ "..b..........." + /* 13 */ ".............." + + // Level 6 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ ".............." + /* 1 */ ".............." + /* 2 */ ".............." + /* 3 */ ".............." + /* 4 */ ".............." + /* 5 */ ".............." + /* 6 */ ".............." + /* 7 */ ".............." + /* 8 */ "............ba" + /* 9 */ "...........cba" + /* 10 */ "........fedcba" + /* 11 */ "......effedc.." + /* 12 */ "..bbcdef......" + /* 13 */ "..a..........." + + // Level 7 + /* z\x* 1111 */ + /* * 01234567890123 */ + /* 0 */ ".............." + /* 1 */ ".............." + /* 2 */ ".............." + /* 3 */ ".............." + /* 4 */ ".............." + /* 5 */ ".............." + /* 6 */ ".............." + /* 7 */ ".............." + /* 8 */ ".............." + /* 9 */ ".............." + /* 10 */ ".............." + /* 11 */ "............ba" + /* 12 */ "........fedcba" + /* 13 */ "..abcdeffedcba", + + // Connectors: + "-2: 0, 1, 11: 4\n" /* Type -2, direction X- */ + "2: 0, 1, 0: 4\n" /* Type 2, direction X- */ + "2: 2, 8, 13: 3\n" /* Type 2, direction Z+ */ + "-2: 13, 8, 13: 3\n" /* Type -2, direction Z+ */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + false, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + false, + }, // CurveUpDouble + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // CurveUpSingle: + // The data has been exported from the gallery Cube, area index 87, ID 465, created by Aloe_vera + { + // Size: + 11, 8, 11, // SizeX = 11, SizeY = 8, SizeZ = 11 + + // Hitbox (relative to bounding box): + 0, -2, 0, // MinX, MinY, MinZ + 10, 9, 10, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 35:14\n" /* wool */ + "b: 35: 1\n" /* wool */ + "c: 35: 4\n" /* wool */ + "d: 35: 5\n" /* wool */ + "e: 35: 3\n" /* wool */ + "f: 35:11\n" /* wool */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "aaa........" + /* 1 */ "bb........." + /* 2 */ "cc........." + /* 3 */ "dd........." + /* 4 */ "ee........." + /* 5 */ "f.........." + /* 6 */ "..........." + /* 7 */ "..........." + /* 8 */ "..........." + /* 9 */ "..........." + /* 10 */ "..........." + + // Level 1 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "...aaa....." + /* 1 */ "..bbb......" + /* 2 */ ".cc........" + /* 3 */ ".dd........" + /* 4 */ ".ee........" + /* 5 */ ".f........." + /* 6 */ ".ff........" + /* 7 */ "..........." + /* 8 */ "..........." + /* 9 */ "..........." + /* 10 */ "..........." + + // Level 2 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ ".....baa..." + /* 2 */ "...ccb....." + /* 3 */ "...dc......" + /* 4 */ "...d......." + /* 5 */ "..ee......." + /* 6 */ "..ff......." + /* 7 */ "..........." + /* 8 */ "..........." + /* 9 */ "..........." + /* 10 */ "..........." + + // Level 3 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "......baa.." + /* 3 */ ".....ccb..." + /* 4 */ "....dd....." + /* 5 */ "....e......" + /* 6 */ "...fe......" + /* 7 */ "...ff......" + /* 8 */ "..........." + /* 9 */ "..........." + /* 10 */ "..........." + + // Level 4 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "..........." + /* 3 */ "........aa." + /* 4 */ "......ccb.." + /* 5 */ ".....dd...." + /* 6 */ ".....e....." + /* 7 */ "....fe....." + /* 8 */ "....f......" + /* 9 */ "..........." + /* 10 */ "..........." + + // Level 5 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "..........." + /* 3 */ "..........." + /* 4 */ ".........a." + /* 5 */ ".......cbba" + /* 6 */ "......dc..." + /* 7 */ "......d...." + /* 8 */ ".....ee...." + /* 9 */ "....ff....." + /* 10 */ "..........." + + // Level 6 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "..........." + /* 3 */ "..........." + /* 4 */ "..........." + /* 5 */ "..........." + /* 6 */ "........cba" + /* 7 */ ".......dcba" + /* 8 */ ".......dcb." + /* 9 */ ".....fe...." + /* 10 */ ".....f....." + + // Level 7 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." + /* 1 */ "..........." + /* 2 */ "..........." + /* 3 */ "..........." + /* 4 */ "..........." + /* 5 */ "..........." + /* 6 */ "..........." + /* 7 */ "..........." + /* 8 */ "..........a" + /* 9 */ ".......dcba" + /* 10 */ ".....fedcba", + + // Connectors: + "-1: 0, 1, 5: 4\n" /* Type -1, direction X- */ + "1: 5, 8, 10: 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, + }, // CurveUpSingle + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // SlopeDownFromTopSingle: + // The data has been exported from the gallery Cube, area index 98, ID 476, created by Aloe_vera + { + // Size: + 16, 8, 6, // SizeX = 16, SizeY = 8, SizeZ = 6 + + // Hitbox (relative to bounding box): + 0, -2, 0, // MinX, MinY, MinZ + 15, 9, 5, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 35:14\n" /* wool */ + "b: 35: 1\n" /* wool */ + "c: 35: 4\n" /* wool */ + "d: 35: 5\n" /* wool */ + "e: 35: 3\n" /* wool */ + "f: 35:11\n" /* wool */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "..............aa" + /* 1 */ "..............bb" + /* 2 */ "..............cc" + /* 3 */ "..............dd" + /* 4 */ "..............ee" + /* 5 */ "..............ff" + + // Level 1 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "............aa.." + /* 1 */ "............bb.." + /* 2 */ "............cc.." + /* 3 */ "............dd.." + /* 4 */ "............ee.." + /* 5 */ "............ff.." + + // Level 2 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "..........aa...." + /* 1 */ "..........bb...." + /* 2 */ "..........cc...." + /* 3 */ "..........dd...." + /* 4 */ "..........ee...." + /* 5 */ "..........ff...." + + // Level 3 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "........aa......" + /* 1 */ "........bb......" + /* 2 */ "........cc......" + /* 3 */ "........dd......" + /* 4 */ "........ee......" + /* 5 */ "........ff......" + + // Level 4 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "......aa........" + /* 1 */ "......bb........" + /* 2 */ "......cc........" + /* 3 */ "......dd........" + /* 4 */ "......ee........" + /* 5 */ "......ff........" + + // Level 5 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "....aa.........." + /* 1 */ "....bb.........." + /* 2 */ "....cc.........." + /* 3 */ "....dd.........." + /* 4 */ "....ee.........." + /* 5 */ "....ff.........." + + // Level 6 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "..aa............" + /* 1 */ "..bb............" + /* 2 */ "..cc............" + /* 3 */ "..dd............" + /* 4 */ "..ee............" + /* 5 */ "..ff............" + + // Level 7 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "aa.............." + /* 1 */ "bb.............." + /* 2 */ "cc.............." + /* 3 */ "dd.............." + /* 4 */ "ee.............." + /* 5 */ "ff..............", + + // Connectors: + "-1: 0, 8, 5: 4\n" /* Type -1, direction X- */ + "1: 15, 1, 5: 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, + }, // SlopeDownFromTopSingle + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // SlopeUpDouble: + // The data has been exported from the gallery Cube, area index 90, ID 468, created by Aloe_vera + { + // Size: + 16, 8, 12, // SizeX = 16, SizeY = 8, SizeZ = 12 + + // Hitbox (relative to bounding box): + 0, -2, 0, // MinX, MinY, MinZ + 15, 9, 11, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 35:11\n" /* wool */ + "b: 35: 3\n" /* wool */ + "c: 35: 5\n" /* wool */ + "d: 35: 4\n" /* wool */ + "e: 35: 1\n" /* wool */ + "f: 35:14\n" /* wool */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "aa.............." + /* 1 */ "bb.............." + /* 2 */ "cc.............." + /* 3 */ "dd.............." + /* 4 */ "ee.............." + /* 5 */ "ff.............." + /* 6 */ "ff.............." + /* 7 */ "ee.............." + /* 8 */ "dd.............." + /* 9 */ "cc.............." + /* 10 */ "bb.............." + /* 11 */ "aa.............." + + // Level 1 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "..aa............" + /* 1 */ "..bb............" + /* 2 */ "..cc............" + /* 3 */ "..dd............" + /* 4 */ "..ee............" + /* 5 */ "..ff............" + /* 6 */ "..ff............" + /* 7 */ "..ee............" + /* 8 */ "..dd............" + /* 9 */ "..cc............" + /* 10 */ "..bb............" + /* 11 */ "..aa............" + + // Level 2 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "....aa.........." + /* 1 */ "....bb.........." + /* 2 */ "....cc.........." + /* 3 */ "....dd.........." + /* 4 */ "....ee.........." + /* 5 */ "....ff.........." + /* 6 */ "....ff.........." + /* 7 */ "....ee.........." + /* 8 */ "....dd.........." + /* 9 */ "....cc.........." + /* 10 */ "....bb.........." + /* 11 */ "....aa.........." + + // Level 3 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "......aa........" + /* 1 */ "......bb........" + /* 2 */ "......cc........" + /* 3 */ "......dd........" + /* 4 */ "......ee........" + /* 5 */ "......ff........" + /* 6 */ "......ff........" + /* 7 */ "......ee........" + /* 8 */ "......dd........" + /* 9 */ "......cc........" + /* 10 */ "......bb........" + /* 11 */ "......aa........" + + // Level 4 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "........aa......" + /* 1 */ "........bb......" + /* 2 */ "........cc......" + /* 3 */ "........dd......" + /* 4 */ "........ee......" + /* 5 */ "........ff......" + /* 6 */ "........ff......" + /* 7 */ "........ee......" + /* 8 */ "........dd......" + /* 9 */ "........cc......" + /* 10 */ "........bb......" + /* 11 */ "........aa......" + + // Level 5 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "..........aa...." + /* 1 */ "..........bb...." + /* 2 */ "..........cc...." + /* 3 */ "..........dd...." + /* 4 */ "..........ee...." + /* 5 */ "..........ff...." + /* 6 */ "..........ff...." + /* 7 */ "..........ee...." + /* 8 */ "..........dd...." + /* 9 */ "..........cc...." + /* 10 */ "..........bb...." + /* 11 */ "..........aa...." + + // Level 6 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "............aa.." + /* 1 */ "............bb.." + /* 2 */ "............cc.." + /* 3 */ "............dd.." + /* 4 */ "............ee.." + /* 5 */ "............ff.." + /* 6 */ "............ff.." + /* 7 */ "............ee.." + /* 8 */ "............dd.." + /* 9 */ "............cc.." + /* 10 */ "............bb.." + /* 11 */ "............aa.." + + // Level 7 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "..............aa" + /* 1 */ "..............bb" + /* 2 */ "..............cc" + /* 3 */ "..............dd" + /* 4 */ "..............ee" + /* 5 */ "..............ff" + /* 6 */ "..............ff" + /* 7 */ "..............ee" + /* 8 */ "..............dd" + /* 9 */ "..............cc" + /* 10 */ "..............bb" + /* 11 */ "..............aa", + + // Connectors: + "-2: 0, 1, 11: 4\n" /* Type -2, direction X- */ + "2: 0, 1, 0: 4\n" /* Type 2, direction X- */ + "-2: 15, 8, 0: 5\n" /* Type -2, direction X+ */ + "2: 15, 8, 11: 5\n" /* Type 2, direction X+ */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + false, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + false, + }, // SlopeUpDouble + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // SlopeUpSingle: + // The data has been exported from the gallery Cube, area index 85, ID 463, created by Aloe_vera + { + // Size: + 16, 8, 6, // SizeX = 16, SizeY = 8, SizeZ = 6 + + // Hitbox (relative to bounding box): + 0, -2, 0, // MinX, MinY, MinZ + 15, 9, 5, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 35:14\n" /* wool */ + "b: 35: 1\n" /* wool */ + "c: 35: 4\n" /* wool */ + "d: 35: 5\n" /* wool */ + "e: 35: 3\n" /* wool */ + "f: 35:11\n" /* wool */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "aa.............." + /* 1 */ "bb.............." + /* 2 */ "cc.............." + /* 3 */ "dd.............." + /* 4 */ "ee.............." + /* 5 */ "ff.............." + + // Level 1 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "..aa............" + /* 1 */ "..bb............" + /* 2 */ "..cc............" + /* 3 */ "..dd............" + /* 4 */ "..ee............" + /* 5 */ "..ff............" + + // Level 2 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "....aa.........." + /* 1 */ "....bb.........." + /* 2 */ "....cc.........." + /* 3 */ "....dd.........." + /* 4 */ "....ee.........." + /* 5 */ "....ff.........." + + // Level 3 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "......aa........" + /* 1 */ "......bb........" + /* 2 */ "......cc........" + /* 3 */ "......dd........" + /* 4 */ "......ee........" + /* 5 */ "......ff........" + + // Level 4 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "........aa......" + /* 1 */ "........bb......" + /* 2 */ "........cc......" + /* 3 */ "........dd......" + /* 4 */ "........ee......" + /* 5 */ "........ff......" + + // Level 5 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "..........aa...." + /* 1 */ "..........bb...." + /* 2 */ "..........cc...." + /* 3 */ "..........dd...." + /* 4 */ "..........ee...." + /* 5 */ "..........ff...." + + // Level 6 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "............aa.." + /* 1 */ "............bb.." + /* 2 */ "............cc.." + /* 3 */ "............dd.." + /* 4 */ "............ee.." + /* 5 */ "............ff.." + + // Level 7 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "..............aa" + /* 1 */ "..............bb" + /* 2 */ "..............cc" + /* 3 */ "..............dd" + /* 4 */ "..............ee" + /* 5 */ "..............ff", + + // Connectors: + "-1: 0, 1, 5: 4\n" /* Type -1, direction X- */ + "1: 15, 8, 5: 5\n" /* Type 1, direction X+ */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + false, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + -1000, + + // MoveToGround: + false, + }, // SlopeUpSingle + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // SplitTee: + // The data has been exported from the gallery Cube, area index 93, ID 471, created by Aloe_vera + { + // Size: + 16, 1, 14, // SizeX = 16, SizeY = 1, SizeZ = 14 + + // Hitbox (relative to bounding box): + 0, -2, 0, // MinX, MinY, MinZ + 15, 2, 13, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 35:11\n" /* wool */ + "b: 35: 3\n" /* wool */ + "c: 35: 5\n" /* wool */ + "d: 35: 4\n" /* wool */ + "e: 35: 1\n" /* wool */ + "f: 35:14\n" /* wool */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "aaaaaa.........." + /* 1 */ "bbbbbbaaa......." + /* 2 */ "ccccccbbbaaa...." + /* 3 */ "ddddddcccbbbaaaa" + /* 4 */ "eeeeeedddcccbbbb" + /* 5 */ "ffffffeeedddcccc" + /* 6 */ "fffffffffeeedddd" + /* 7 */ "eeeeff...fffeeee" + /* 8 */ "dddeeff.....ffff" + /* 9 */ "cccddeff........" + /* 10 */ "bbbccdeef......." + /* 11 */ "aaabbcddef......" + /* 12 */ "...aabcddef....." + /* 13 */ ".....abcdef.....", + + // Connectors: + "-2: 0, 1, 11: 4\n" /* Type -2, direction X- */ + "2: 0, 1, 0: 4\n" /* Type 2, direction X- */ + "-1: 15, 1, 3: 5\n" /* Type -1, direction X+ */ + "1: 5, 1, 13: 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, + }, // SplitTee + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // StraightDouble: + // The data has been exported from the gallery Cube, area index 88, ID 466, created by Aloe_vera + { + // Size: + 16, 1, 12, // SizeX = 16, SizeY = 1, SizeZ = 12 + + // Hitbox (relative to bounding box): + 0, -2, 0, // MinX, MinY, MinZ + 15, 2, 11, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 35:11\n" /* wool */ + "b: 35: 3\n" /* wool */ + "c: 35: 5\n" /* wool */ + "d: 35: 4\n" /* wool */ + "e: 35: 1\n" /* wool */ + "f: 35:14\n" /* wool */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "aaaaaaaaaaaaaaaa" + /* 1 */ "bbbbbbbbbbbbbbbb" + /* 2 */ "cccccccccccccccc" + /* 3 */ "dddddddddddddddd" + /* 4 */ "eeeeeeeeeeeeeeee" + /* 5 */ "ffffffffffffffff" + /* 6 */ "ffffffffffffffff" + /* 7 */ "eeeeeeeeeeeeeeee" + /* 8 */ "dddddddddddddddd" + /* 9 */ "cccccccccccccccc" + /* 10 */ "bbbbbbbbbbbbbbbb" + /* 11 */ "aaaaaaaaaaaaaaaa", + + // Connectors: + "-2: 0, 1, 11: 4\n" /* Type -2, direction X- */ + "2: 0, 1, 0: 4\n" /* Type 2, direction X- */ + "-2: 15, 1, 0: 5\n" /* Type -2, direction X+ */ + "2: 15, 1, 11: 5\n" /* Type 2, direction X+ */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + false, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 0, + + // MoveToGround: + false, + }, // StraightDouble +}; // 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 + { + // Size: + 16, 1, 6, // SizeX = 16, SizeY = 1, SizeZ = 6 + + // Hitbox (relative to bounding box): + 0, -2, 0, // MinX, MinY, MinZ + 15, 2, 5, // MaxX, MaxY, MaxZ + + // Block definitions: + ".: 0: 0\n" /* air */ + "a: 35:14\n" /* wool */ + "b: 35: 1\n" /* wool */ + "c: 35: 4\n" /* wool */ + "d: 35: 5\n" /* wool */ + "e: 35: 3\n" /* wool */ + "f: 35:11\n" /* wool */ + "m: 19: 0\n" /* sponge */, + + // Block data: + // Level 0 + /* z\x* 111111 */ + /* * 0123456789012345 */ + /* 0 */ "aaaaaaaaaaaaaaaa" + /* 1 */ "bbbbbbbbbbbbbbbb" + /* 2 */ "cccccccccccccccc" + /* 3 */ "dddddddddddddddd" + /* 4 */ "eeeeeeeeeeeeeeee" + /* 5 */ "ffffffffffffffff", + + // Connectors: + "-1: 0, 1, 5: 4\n" /* Type -1, direction X- */ + "1: 15, 1, 5: 5\n" /* Type 1, direction X+ */, + + // AllowedRotations: + 7, /* 1, 2, 3 CCW rotation allowed */ + + // Merge strategy: + cBlockArea::msSpongePrint, + + // ShouldExtendFloor: + false, + + // DefaultWeight: + 100, + + // DepthWeight: + "", + + // AddWeightIfSame: + 500, + + // MoveToGround: + false, + }, // StraightSingle +}; + + + + + +// The prefab counts: + +const size_t g_RainbowRoadPrefabsCount = ARRAYCOUNT(g_RainbowRoadPrefabs); + +const size_t g_RainbowRoadStartingPrefabsCount = ARRAYCOUNT(g_RainbowRoadStartingPrefabs); + diff --git a/src/Generating/Prefabs/RainbowRoadPrefabs.h b/src/Generating/Prefabs/RainbowRoadPrefabs.h new file mode 100644 index 000000000..ab0a0fbb2 --- /dev/null +++ b/src/Generating/Prefabs/RainbowRoadPrefabs.h @@ -0,0 +1,15 @@ + +// RainbowRoadPrefabs.h + +// Declares the prefabs in the group RainbowRoad + +#include "../Prefab.h" + + + + + +extern const cPrefab::sDef g_RainbowRoadPrefabs[]; +extern const cPrefab::sDef g_RainbowRoadStartingPrefabs[]; +extern const size_t g_RainbowRoadPrefabsCount; +extern const size_t g_RainbowRoadStartingPrefabsCount; diff --git a/src/Generating/RainbowRoadsGen.cpp b/src/Generating/RainbowRoadsGen.cpp new file mode 100644 index 000000000..d1e1f4bda --- /dev/null +++ b/src/Generating/RainbowRoadsGen.cpp @@ -0,0 +1,115 @@ + +// RainbowRoadsGen.cpp + +// Implements the cRainbowRoadsGen class representing the rainbow road generator + +#include "Globals.h" +#include "RainbowRoadsGen.h" +#include "Prefabs/RainbowRoadPrefabs.h" +#include "PieceGenerator.h" + + + + + +static cPrefabPiecePool g_RainbowRoads(g_RainbowRoadPrefabs, g_RainbowRoadPrefabsCount, g_RainbowRoadStartingPrefabs, g_RainbowRoadStartingPrefabsCount); + + + + + +/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// cRainbowRoadsGen::cRainbowRoads: + +class cRainbowRoadsGen::cRainbowRoads : + public cGridStructGen::cStructure +{ + typedef cGridStructGen::cStructure super; + +public: + cRainbowRoads( + int a_Seed, + int a_OriginX, int a_OriginZ, + int a_MaxDepth, + int a_MaxSize + ) : + super(a_OriginX, a_OriginZ), + m_Seed(a_Seed), + m_Noise(a_Seed), + m_MaxSize(a_MaxSize), + m_Borders(a_OriginX - a_MaxSize, 0, a_OriginZ - a_MaxSize, a_OriginX + a_MaxSize, 255, a_OriginZ + a_MaxSize) + { + // Generate the pieces for this base: + cBFSPieceGenerator pg(g_RainbowRoads, a_Seed); + pg.PlacePieces(a_OriginX, 190, a_OriginZ, a_MaxDepth, m_Pieces); + if (m_Pieces.empty()) + { + return; + } + } + + ~cRainbowRoads() + { + 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 village (radius from the origin) */ + int m_MaxSize; + + /** Borders of the vilalge - no item may reach out of this cuboid. */ + cCuboid m_Borders; + + /** The village 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[] + } +} ; + + + + + +/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// cRainbowRoadsGen: + + + + + +cRainbowRoadsGen::cRainbowRoadsGen(int a_Seed, int a_GridSize, int a_MaxDepth, int a_MaxSize) : + super(a_Seed, a_GridSize, a_GridSize, a_MaxSize, a_MaxSize, 100), + m_Noise(a_Seed + 9000), + m_MaxDepth(a_MaxDepth), + m_MaxSize(a_MaxSize) +{ +} + + + + + +cGridStructGen::cStructurePtr cRainbowRoadsGen::CreateStructure(int a_OriginX, int a_OriginZ) +{ + // Create a base based on the chosen prefabs: + return cStructurePtr(new cRainbowRoads(m_Seed, a_OriginX, a_OriginZ, m_MaxDepth, m_MaxSize)); +} + + + + diff --git a/src/Generating/RainbowRoadsGen.h b/src/Generating/RainbowRoadsGen.h new file mode 100644 index 000000000..acbd5abf9 --- /dev/null +++ b/src/Generating/RainbowRoadsGen.h @@ -0,0 +1,47 @@ + +// RainbowRoadsGen.h + +// Declares the cRainbowRoadsGen class representing the underwater base generator + + + + + +#pragma once + +#include "GridStructGen.h" +#include "PrefabPiecePool.h" + + + + + +class cRainbowRoadsGen : + public cGridStructGen +{ + typedef cGridStructGen super; + +public: + cRainbowRoadsGen(int a_Seed, int a_GridSize, int a_MaxDepth, int a_MaxSize); + +protected: + class cRainbowRoads; // fwd: RainbowRoadsGen.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_OriginX, int a_OriginZ) override; +} ; + + + + -- cgit v1.2.3 From 0544b96f8041e5dd31b4da84b52d23883d0853f0 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Sat, 7 Jun 2014 13:59:10 +0200 Subject: docs/Generator: Added the easy Finishers. --- src/Generating/CompoGen.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src/Generating') diff --git a/src/Generating/CompoGen.cpp b/src/Generating/CompoGen.cpp index 578bb2481..688d19c40 100644 --- a/src/Generating/CompoGen.cpp +++ b/src/Generating/CompoGen.cpp @@ -561,10 +561,16 @@ void cCompoGenNether::ComposeTerrain(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] = + //* + FloorLo[INTERPOL_X * x + 17 * 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; + //*/ + /* + FloorLo[INTERPOL_X * x + 17 * INTERPOL_Z * z] = + m_Noise1.IntNoise3DInt(BaseX + INTERPOL_X * x, 0, BaseZ + INTERPOL_Z * z) / 256; + //*/ } // for x, z - FloorLo[] LinearUpscale2DArrayInPlace<17, 17, INTERPOL_X, INTERPOL_Z>(FloorLo); @@ -574,10 +580,16 @@ void cCompoGenNether::ComposeTerrain(cChunkDesc & a_ChunkDesc) // First update the high floor: for (int z = 0; z <= 16 / INTERPOL_Z; z++) for (int x = 0; x <= 16 / INTERPOL_X; x++) { + //* FloorHi[INTERPOL_X * x + 17 * INTERPOL_Z * z] = m_Noise1.IntNoise3DInt(BaseX + INTERPOL_X * x, Segment + SEGMENT_HEIGHT, BaseZ + INTERPOL_Z * z) * m_Noise2.IntNoise3DInt(BaseX + INTERPOL_Z * x, Segment + SEGMENT_HEIGHT, BaseZ + INTERPOL_Z * z) / 256; + //*/ + /* + FloorHi[INTERPOL_X * x + 17 * INTERPOL_Z * z] = + m_Noise1.IntNoise3DInt(BaseX + INTERPOL_X * x, Segment + SEGMENT_HEIGHT, BaseZ + INTERPOL_Z * z) / 256; + //*/ } // for x, z - FloorLo[] LinearUpscale2DArrayInPlace<17, 17, INTERPOL_X, INTERPOL_Z>(FloorHi); -- cgit v1.2.3 From 9ff0ef87d4bca688b7fab8c7f4c9f9fcf683c06f Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Mon, 9 Jun 2014 23:40:51 +0200 Subject: Added an experimental height generator, Mountains. --- src/Generating/HeiGen.cpp | 66 +++++++++++++++++++++++++++++++++++++++++++++++ src/Generating/HeiGen.h | 21 +++++++++++++++ 2 files changed, 87 insertions(+) (limited to 'src/Generating') diff --git a/src/Generating/HeiGen.cpp b/src/Generating/HeiGen.cpp index 3621421c2..25ac912fd 100644 --- a/src/Generating/HeiGen.cpp +++ b/src/Generating/HeiGen.cpp @@ -47,6 +47,10 @@ cTerrainHeightGen * cTerrainHeightGen::CreateHeightGen(cIniFile &a_IniFile, cBio { res = new cEndGen(a_Seed); } + else if (NoCaseCompare(HeightGenName, "Mountains") == 0) + { + res = new cHeiGenMountains(a_Seed); + } else if (NoCaseCompare(HeightGenName, "Noise3D") == 0) { res = new cNoise3DComposable(a_Seed); @@ -300,6 +304,68 @@ void cHeiGenClassic::InitializeHeightGen(cIniFile & a_IniFile) +/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// cHeiGenMountains: + +cHeiGenMountains::cHeiGenMountains(int a_Seed) : + m_Seed(a_Seed), + m_Noise(a_Seed) +{ +} + + + + + +void cHeiGenMountains::GenHeightMap(int a_ChunkX, int a_ChunkZ, cChunkDef::HeightMap & a_HeightMap) +{ + NOISE_DATATYPE StartX = (NOISE_DATATYPE)(a_ChunkX * cChunkDef::Width); + NOISE_DATATYPE EndX = (NOISE_DATATYPE)(a_ChunkX * cChunkDef::Width + cChunkDef::Width - 1); + NOISE_DATATYPE StartZ = (NOISE_DATATYPE)(a_ChunkZ * cChunkDef::Width); + NOISE_DATATYPE EndZ = (NOISE_DATATYPE)(a_ChunkZ * cChunkDef::Width + cChunkDef::Width - 1); + NOISE_DATATYPE Workspace[16 * 16]; + NOISE_DATATYPE Noise[16 * 16]; + NOISE_DATATYPE PerlinNoise[16 * 16]; + m_Noise.Generate2D(Noise, 16, 16, StartX, EndX, StartZ, EndZ, Workspace); + m_Perlin.Generate2D(PerlinNoise, 16, 16, StartX, EndX, StartZ, EndZ, Workspace); + for (int z = 0; z < cChunkDef::Width; z++) + { + int IdxZ = z * cChunkDef::Width; + for (int x = 0; x < cChunkDef::Width; x++) + { + int idx = IdxZ + x; + int hei = 100 - (int)((Noise[idx] + PerlinNoise[idx]) * 15); + if (hei < 10) + { + hei = 10; + } + if (hei > 250) + { + hei = 250; + } + cChunkDef::SetHeight(a_HeightMap, x , z, hei); + } // for x + } // for z +} + + + + + +void cHeiGenMountains::InitializeHeightGen(cIniFile & a_IniFile) +{ + // TODO: Read the params from an INI file + m_Noise.AddOctave(0.1f, 0.1f); + m_Noise.AddOctave(0.05f, 0.5f); + m_Noise.AddOctave(0.02f, 1.5f); + + m_Perlin.AddOctave(0.01f, 1.5f); +} + + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // cHeiGenBiomal: diff --git a/src/Generating/HeiGen.h b/src/Generating/HeiGen.h index 1376f2a25..5c106c7d9 100644 --- a/src/Generating/HeiGen.h +++ b/src/Generating/HeiGen.h @@ -106,6 +106,27 @@ protected: +class cHeiGenMountains : + public cTerrainHeightGen +{ +public: + cHeiGenMountains(int a_Seed); + +protected: + + int m_Seed; + cRidgedMultiNoise m_Noise; + cPerlinNoise m_Perlin; + + // cTerrainHeightGen overrides: + virtual void GenHeightMap(int a_ChunkX, int a_ChunkZ, cChunkDef::HeightMap & a_HeightMap) override; + virtual void InitializeHeightGen(cIniFile & a_IniFile) override; +} ; + + + + + class cHeiGenBiomal : public cTerrainHeightGen { -- cgit v1.2.3 From 1ff1a93866ab81e3868588a256f446a902a1a8c4 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Tue, 10 Jun 2014 22:59:45 +0200 Subject: Initial Mesa Bryce implementation. --- src/Generating/DistortedHeightmap.cpp | 4 +- src/Generating/DistortedHeightmap.h | 6 +-- src/Generating/HeiGen.cpp | 89 +++++++++++++++++++++++++++++++++++ src/Generating/HeiGen.h | 21 +++++++++ 4 files changed, 116 insertions(+), 4 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/DistortedHeightmap.cpp b/src/Generating/DistortedHeightmap.cpp index eb9fe92ba..e50f36d57 100644 --- a/src/Generating/DistortedHeightmap.cpp +++ b/src/Generating/DistortedHeightmap.cpp @@ -282,7 +282,7 @@ cDistortedHeightmap::cDistortedHeightmap(int a_Seed, cBiomeGen & a_BiomeGen) : m_OceanFloorSelect(a_Seed + 3000), m_MesaFloor(a_Seed + 4000), m_BiomeGen(a_BiomeGen), - m_UnderlyingHeiGen(a_Seed, a_BiomeGen), + m_UnderlyingHeiGen(a_Seed), m_HeightGen(m_UnderlyingHeiGen, 64), m_IsInitialized(false) { @@ -308,6 +308,8 @@ void cDistortedHeightmap::Initialize(cIniFile & a_IniFile) return; } + ((cTerrainHeightGen &)m_UnderlyingHeiGen).InitializeHeightGen(a_IniFile); + // Read the params from the INI file: m_SeaLevel = a_IniFile.GetValueSetI("Generator", "DistortedHeightmapSeaLevel", 62); m_FrequencyX = (NOISE_DATATYPE)a_IniFile.GetValueSetF("Generator", "DistortedHeightmapFrequencyX", 10); diff --git a/src/Generating/DistortedHeightmap.h b/src/Generating/DistortedHeightmap.h index e6b3c9d3f..31fb17df2 100644 --- a/src/Generating/DistortedHeightmap.h +++ b/src/Generating/DistortedHeightmap.h @@ -64,9 +64,9 @@ protected: int m_CurChunkZ; NOISE_DATATYPE m_DistortedHeightmap[17 * 257 * 17]; - cBiomeGen & m_BiomeGen; - cHeiGenBiomal m_UnderlyingHeiGen; // This generator provides us with base heightmap (before distortion) - cHeiGenCache m_HeightGen; // Cache above m_UnderlyingHeiGen + cBiomeGen & m_BiomeGen; + cHeiGenMesaBryce m_UnderlyingHeiGen; // This generator provides us with base heightmap (before distortion) + cHeiGenCache m_HeightGen; // Cache above m_UnderlyingHeiGen /// Heightmap for the current chunk, before distortion (from m_HeightGen). Used for optimization. cChunkDef::HeightMap m_CurChunkHeights; diff --git a/src/Generating/HeiGen.cpp b/src/Generating/HeiGen.cpp index 25ac912fd..dedf3fe3f 100644 --- a/src/Generating/HeiGen.cpp +++ b/src/Generating/HeiGen.cpp @@ -47,6 +47,10 @@ cTerrainHeightGen * cTerrainHeightGen::CreateHeightGen(cIniFile &a_IniFile, cBio { res = new cEndGen(a_Seed); } + else if (NoCaseCompare(HeightGenName, "MesaBryce") == 0) + { + res = new cHeiGenMesaBryce(a_Seed); + } else if (NoCaseCompare(HeightGenName, "Mountains") == 0) { res = new cHeiGenMountains(a_Seed); @@ -366,6 +370,91 @@ void cHeiGenMountains::InitializeHeightGen(cIniFile & a_IniFile) +/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// cHeiGenMesaBryce: + +cHeiGenMesaBryce::cHeiGenMesaBryce(int a_Seed) : + m_Seed(a_Seed), + m_PerlinHFHA(a_Seed), + m_PerlinLFLA(a_Seed + 10) +{ +} + + + + + +void cHeiGenMesaBryce::GenHeightMap(int a_ChunkX, int a_ChunkZ, cChunkDef::HeightMap & a_HeightMap) +{ + NOISE_DATATYPE StartX = (NOISE_DATATYPE)(a_ChunkX * cChunkDef::Width); + NOISE_DATATYPE EndX = (NOISE_DATATYPE)(a_ChunkX * cChunkDef::Width + cChunkDef::Width - 1); + NOISE_DATATYPE StartZ = (NOISE_DATATYPE)(a_ChunkZ * cChunkDef::Width); + NOISE_DATATYPE EndZ = (NOISE_DATATYPE)(a_ChunkZ * cChunkDef::Width + cChunkDef::Width - 1); + NOISE_DATATYPE Workspace[16 * 16]; + NOISE_DATATYPE Noise1[16 * 16]; + NOISE_DATATYPE Noise2[16 * 16]; + NOISE_DATATYPE Noise3[16 * 16]; + m_PerlinHFHA.Generate2D(Noise1, 16, 16, StartX, EndX, StartZ, EndZ, Workspace); + m_PerlinLFLA.Generate2D(Noise2, 16, 16, StartX, EndX, StartZ, EndZ, Workspace); + m_PerlinTops.Generate2D(Noise3, 16, 16, StartX, EndX, StartZ, EndZ, Workspace); + for (int z = 0; z < cChunkDef::Width; z++) + { + int IdxZ = z * cChunkDef::Width; + for (int x = 0; x < cChunkDef::Width; x++) + { + int idx = IdxZ + x; + // int hei = 70 + (int)(std::min(Noise1[idx], Noise2[idx]) * 15); + int hei; + if (Noise1[idx] > 1.5f) + { + hei = 83 + (int)floor(Noise3[idx]); + } + else + { + hei = 63 + (int)floor(Noise2[idx]); + } + /* + NOISE_DATATYPE v1 = sqrt(sqrt(std::max(Noise1[idx], (NOISE_DATATYPE)0))) - 50; + int hei = 60 + (int)floor(std::max(v1, 5 + Noise2[idx])); + */ + if (hei < 10) + { + hei = 10; + } + if (hei > 250) + { + hei = 250; + } + cChunkDef::SetHeight(a_HeightMap, x , z, hei); + } // for x + } // for z +} + + + + + +void cHeiGenMesaBryce::InitializeHeightGen(cIniFile & a_IniFile) +{ + // TODO: Read the params from an INI file + // m_PerlinHFHA.AddOctave(0.32f, 0.1); + /* + m_PerlinHFHA.AddOctave(0.13f, 17800000); + m_PerlinHFHA.AddOctave(0.12f, 19000000); + */ + m_PerlinHFHA.AddOctave(0.13f, 2); + m_PerlinHFHA.AddOctave(0.12f, 2); + + m_PerlinLFLA.AddOctave(0.04f, 1); + m_PerlinLFLA.AddOctave(0.02f, 2); + + m_PerlinTops.AddOctave(0.1f, 8); +} + + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // cHeiGenBiomal: diff --git a/src/Generating/HeiGen.h b/src/Generating/HeiGen.h index 5c106c7d9..5fc4f4abc 100644 --- a/src/Generating/HeiGen.h +++ b/src/Generating/HeiGen.h @@ -127,6 +127,27 @@ protected: +class cHeiGenMesaBryce : + public cTerrainHeightGen +{ +public: + cHeiGenMesaBryce(int a_Seed); + +protected: + int m_Seed; + cPerlinNoise m_PerlinHFHA; // HighFrequencyHighAmplitude, for the hills + cPerlinNoise m_PerlinLFLA; // LowFrequencyLowAmplitude, for the floor + cPerlinNoise m_PerlinTops; + + // cTerrainHeightGen overrides: + virtual void GenHeightMap(int a_ChunkX, int a_ChunkZ, cChunkDef::HeightMap & a_HeightMap) override; + virtual void InitializeHeightGen(cIniFile & a_IniFile) override; +} ; + + + + + class cHeiGenBiomal : public cTerrainHeightGen { -- cgit v1.2.3 From 7e4abcfe2d2b1b5d5f73ebb990b24427323624e8 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Wed, 11 Jun 2014 14:14:54 +0200 Subject: Revert "Initial Mesa Bryce implementation." This reverts commit 1ff1a93866ab81e3868588a256f446a902a1a8c4. --- src/Generating/DistortedHeightmap.cpp | 4 +- src/Generating/DistortedHeightmap.h | 6 +-- src/Generating/HeiGen.cpp | 89 ----------------------------------- src/Generating/HeiGen.h | 21 --------- 4 files changed, 4 insertions(+), 116 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/DistortedHeightmap.cpp b/src/Generating/DistortedHeightmap.cpp index e50f36d57..eb9fe92ba 100644 --- a/src/Generating/DistortedHeightmap.cpp +++ b/src/Generating/DistortedHeightmap.cpp @@ -282,7 +282,7 @@ cDistortedHeightmap::cDistortedHeightmap(int a_Seed, cBiomeGen & a_BiomeGen) : m_OceanFloorSelect(a_Seed + 3000), m_MesaFloor(a_Seed + 4000), m_BiomeGen(a_BiomeGen), - m_UnderlyingHeiGen(a_Seed), + m_UnderlyingHeiGen(a_Seed, a_BiomeGen), m_HeightGen(m_UnderlyingHeiGen, 64), m_IsInitialized(false) { @@ -308,8 +308,6 @@ void cDistortedHeightmap::Initialize(cIniFile & a_IniFile) return; } - ((cTerrainHeightGen &)m_UnderlyingHeiGen).InitializeHeightGen(a_IniFile); - // Read the params from the INI file: m_SeaLevel = a_IniFile.GetValueSetI("Generator", "DistortedHeightmapSeaLevel", 62); m_FrequencyX = (NOISE_DATATYPE)a_IniFile.GetValueSetF("Generator", "DistortedHeightmapFrequencyX", 10); diff --git a/src/Generating/DistortedHeightmap.h b/src/Generating/DistortedHeightmap.h index 31fb17df2..e6b3c9d3f 100644 --- a/src/Generating/DistortedHeightmap.h +++ b/src/Generating/DistortedHeightmap.h @@ -64,9 +64,9 @@ protected: int m_CurChunkZ; NOISE_DATATYPE m_DistortedHeightmap[17 * 257 * 17]; - cBiomeGen & m_BiomeGen; - cHeiGenMesaBryce m_UnderlyingHeiGen; // This generator provides us with base heightmap (before distortion) - cHeiGenCache m_HeightGen; // Cache above m_UnderlyingHeiGen + cBiomeGen & m_BiomeGen; + cHeiGenBiomal m_UnderlyingHeiGen; // This generator provides us with base heightmap (before distortion) + cHeiGenCache m_HeightGen; // Cache above m_UnderlyingHeiGen /// Heightmap for the current chunk, before distortion (from m_HeightGen). Used for optimization. cChunkDef::HeightMap m_CurChunkHeights; diff --git a/src/Generating/HeiGen.cpp b/src/Generating/HeiGen.cpp index dedf3fe3f..25ac912fd 100644 --- a/src/Generating/HeiGen.cpp +++ b/src/Generating/HeiGen.cpp @@ -47,10 +47,6 @@ cTerrainHeightGen * cTerrainHeightGen::CreateHeightGen(cIniFile &a_IniFile, cBio { res = new cEndGen(a_Seed); } - else if (NoCaseCompare(HeightGenName, "MesaBryce") == 0) - { - res = new cHeiGenMesaBryce(a_Seed); - } else if (NoCaseCompare(HeightGenName, "Mountains") == 0) { res = new cHeiGenMountains(a_Seed); @@ -370,91 +366,6 @@ void cHeiGenMountains::InitializeHeightGen(cIniFile & a_IniFile) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// cHeiGenMesaBryce: - -cHeiGenMesaBryce::cHeiGenMesaBryce(int a_Seed) : - m_Seed(a_Seed), - m_PerlinHFHA(a_Seed), - m_PerlinLFLA(a_Seed + 10) -{ -} - - - - - -void cHeiGenMesaBryce::GenHeightMap(int a_ChunkX, int a_ChunkZ, cChunkDef::HeightMap & a_HeightMap) -{ - NOISE_DATATYPE StartX = (NOISE_DATATYPE)(a_ChunkX * cChunkDef::Width); - NOISE_DATATYPE EndX = (NOISE_DATATYPE)(a_ChunkX * cChunkDef::Width + cChunkDef::Width - 1); - NOISE_DATATYPE StartZ = (NOISE_DATATYPE)(a_ChunkZ * cChunkDef::Width); - NOISE_DATATYPE EndZ = (NOISE_DATATYPE)(a_ChunkZ * cChunkDef::Width + cChunkDef::Width - 1); - NOISE_DATATYPE Workspace[16 * 16]; - NOISE_DATATYPE Noise1[16 * 16]; - NOISE_DATATYPE Noise2[16 * 16]; - NOISE_DATATYPE Noise3[16 * 16]; - m_PerlinHFHA.Generate2D(Noise1, 16, 16, StartX, EndX, StartZ, EndZ, Workspace); - m_PerlinLFLA.Generate2D(Noise2, 16, 16, StartX, EndX, StartZ, EndZ, Workspace); - m_PerlinTops.Generate2D(Noise3, 16, 16, StartX, EndX, StartZ, EndZ, Workspace); - for (int z = 0; z < cChunkDef::Width; z++) - { - int IdxZ = z * cChunkDef::Width; - for (int x = 0; x < cChunkDef::Width; x++) - { - int idx = IdxZ + x; - // int hei = 70 + (int)(std::min(Noise1[idx], Noise2[idx]) * 15); - int hei; - if (Noise1[idx] > 1.5f) - { - hei = 83 + (int)floor(Noise3[idx]); - } - else - { - hei = 63 + (int)floor(Noise2[idx]); - } - /* - NOISE_DATATYPE v1 = sqrt(sqrt(std::max(Noise1[idx], (NOISE_DATATYPE)0))) - 50; - int hei = 60 + (int)floor(std::max(v1, 5 + Noise2[idx])); - */ - if (hei < 10) - { - hei = 10; - } - if (hei > 250) - { - hei = 250; - } - cChunkDef::SetHeight(a_HeightMap, x , z, hei); - } // for x - } // for z -} - - - - - -void cHeiGenMesaBryce::InitializeHeightGen(cIniFile & a_IniFile) -{ - // TODO: Read the params from an INI file - // m_PerlinHFHA.AddOctave(0.32f, 0.1); - /* - m_PerlinHFHA.AddOctave(0.13f, 17800000); - m_PerlinHFHA.AddOctave(0.12f, 19000000); - */ - m_PerlinHFHA.AddOctave(0.13f, 2); - m_PerlinHFHA.AddOctave(0.12f, 2); - - m_PerlinLFLA.AddOctave(0.04f, 1); - m_PerlinLFLA.AddOctave(0.02f, 2); - - m_PerlinTops.AddOctave(0.1f, 8); -} - - - - - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // cHeiGenBiomal: diff --git a/src/Generating/HeiGen.h b/src/Generating/HeiGen.h index 5fc4f4abc..5c106c7d9 100644 --- a/src/Generating/HeiGen.h +++ b/src/Generating/HeiGen.h @@ -127,27 +127,6 @@ protected: -class cHeiGenMesaBryce : - public cTerrainHeightGen -{ -public: - cHeiGenMesaBryce(int a_Seed); - -protected: - int m_Seed; - cPerlinNoise m_PerlinHFHA; // HighFrequencyHighAmplitude, for the hills - cPerlinNoise m_PerlinLFLA; // LowFrequencyLowAmplitude, for the floor - cPerlinNoise m_PerlinTops; - - // cTerrainHeightGen overrides: - virtual void GenHeightMap(int a_ChunkX, int a_ChunkZ, cChunkDef::HeightMap & a_HeightMap) override; - virtual void InitializeHeightGen(cIniFile & a_IniFile) override; -} ; - - - - - class cHeiGenBiomal : public cTerrainHeightGen { -- cgit v1.2.3 From 7cf544079f910ac8068b67ad39178ad040816367 Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Wed, 11 Jun 2014 19:12:29 +0200 Subject: Roads in villages are made out of wooden planks if they generate on water. --- src/Generating/VillageGen.cpp | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/VillageGen.cpp b/src/Generating/VillageGen.cpp index b9cb056ad..9917141ed 100644 --- a/src/Generating/VillageGen.cpp +++ b/src/Generating/VillageGen.cpp @@ -116,7 +116,8 @@ public: int a_Density, cPiecePool & a_Prefabs, cTerrainHeightGen & a_HeightGen, - BLOCKTYPE a_RoadBlock + BLOCKTYPE a_RoadBlock, + BLOCKTYPE a_WaterRoadBlock ) : super(a_OriginX, a_OriginZ), m_Seed(a_Seed), @@ -126,7 +127,8 @@ public: m_Borders(a_OriginX - a_MaxSize, 0, a_OriginZ - a_MaxSize, a_OriginX + a_MaxSize, 255, a_OriginZ + a_MaxSize), m_Prefabs(a_Prefabs), m_HeightGen(a_HeightGen), - m_RoadBlock(a_RoadBlock) + m_RoadBlock(a_RoadBlock), + m_WaterRoadBlock(a_WaterRoadBlock) { // Generate the pieces for this village; don't care about the Y coord: cBFSPieceGenerator pg(*this, a_Seed); @@ -179,6 +181,9 @@ protected: /** The block to use for the roads. */ BLOCKTYPE m_RoadBlock; + + /** The block used for the roads if the road is on water. */ + BLOCKTYPE m_WaterRoadBlock; // cGridStructGen::cStructure overrides: @@ -239,7 +244,14 @@ protected: { for (int x = MinX; x <= MaxX; x++) { - a_Chunk.SetBlockType(x, cChunkDef::GetHeight(a_HeightMap, x, z), z, m_RoadBlock); + if (IsBlockWater(a_Chunk.GetBlockType(x, cChunkDef::GetHeight(a_HeightMap, x, z), z))) + { + a_Chunk.SetBlockType(x, cChunkDef::GetHeight(a_HeightMap, x, z), z, m_WaterRoadBlock); + } + else + { + a_Chunk.SetBlockType(x, cChunkDef::GetHeight(a_HeightMap, x, z), z, m_RoadBlock); + } } } } @@ -374,6 +386,7 @@ cGridStructGen::cStructurePtr cVillageGen::CreateStructure(int a_OriginX, int a_ // If just one is not, no village is created, because it's likely that an unfriendly biome is too close cVillagePiecePool * VillagePrefabs = NULL; BLOCKTYPE RoadBlock = E_BLOCK_GRAVEL; + BLOCKTYPE WaterRoadBlock = E_BLOCK_PLANKS; int rnd = m_Noise.IntNoise2DInt(a_OriginX, a_OriginZ) / 11; cVillagePiecePool * PlainsVillage = g_PlainsVillagePools[rnd % ARRAYCOUNT(g_PlainsVillagePools)]; cVillagePiecePool * DesertVillage = g_DesertVillagePools[rnd % ARRAYCOUNT(g_DesertVillagePools)]; @@ -422,7 +435,7 @@ cGridStructGen::cStructurePtr cVillageGen::CreateStructure(int a_OriginX, int a_ { return cStructurePtr(); } - return cStructurePtr(new cVillage(m_Seed, a_OriginX, a_OriginZ, m_MaxDepth, m_MaxSize, Density, *VillagePrefabs, m_HeightGen, RoadBlock)); + return cStructurePtr(new cVillage(m_Seed, a_OriginX, a_OriginZ, m_MaxDepth, m_MaxSize, Density, *VillagePrefabs, m_HeightGen, RoadBlock, WaterRoadBlock)); } -- cgit v1.2.3 From ee50790398791c38e563eee04cf12780fab74baf Mon Sep 17 00:00:00 2001 From: Tycho Date: Mon, 16 Jun 2014 15:12:50 +0100 Subject: Merge branch 'master' of github.com:mc-server/MCServer --- src/Generating/Caves.cpp | 10 +- src/Generating/Caves.h | 4 +- src/Generating/ComposableGenerator.cpp | 36 +- src/Generating/GridStructGen.cpp | 31 +- src/Generating/GridStructGen.h | 33 +- src/Generating/MineShafts.cpp | 16 +- src/Generating/MineShafts.h | 4 +- src/Generating/NetherFortGen.cpp | 15 +- src/Generating/NetherFortGen.h | 4 +- .../Prefabs/SandFlatRoofVillagePrefabs.cpp | 669 ++++++++++++--------- src/Generating/RainbowRoadsGen.cpp | 11 +- src/Generating/RainbowRoadsGen.h | 4 +- src/Generating/Ravines.cpp | 12 +- src/Generating/Ravines.h | 2 +- src/Generating/UnderwaterBaseGen.cpp | 11 +- src/Generating/UnderwaterBaseGen.h | 4 +- src/Generating/VillageGen.cpp | 11 +- src/Generating/VillageGen.h | 4 +- 18 files changed, 508 insertions(+), 373 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/Caves.cpp b/src/Generating/Caves.cpp index 872e3341d..6aa7fd4cb 100644 --- a/src/Generating/Caves.cpp +++ b/src/Generating/Caves.cpp @@ -125,7 +125,7 @@ public: int m_BlockX; int m_BlockZ; - cCaveSystem(int a_OriginX, int a_OriginZ, int a_MaxOffset, int a_Size, cNoise & a_Noise); + cCaveSystem(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ, int a_MaxOffset, int a_Size, cNoise & a_Noise); ~cCaveSystem(); protected: @@ -574,8 +574,8 @@ AString cCaveTunnel::ExportAsSVG(int a_Color, int a_OffsetX, int a_OffsetZ) cons /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // cStructGenWormNestCaves::cCaveSystem: -cStructGenWormNestCaves::cCaveSystem::cCaveSystem(int a_OriginX, int a_OriginZ, int a_MaxOffset, int a_Size, cNoise & a_Noise) : - super(a_OriginX, a_OriginZ), +cStructGenWormNestCaves::cCaveSystem::cCaveSystem(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ, int a_MaxOffset, int a_Size, cNoise & a_Noise) : + super(a_GridX, a_GridZ, a_OriginX, a_OriginZ), m_Size(a_Size) { int Num = 1 + a_Noise.IntNoise2DInt(a_OriginX, a_OriginZ) % 3; @@ -690,9 +690,9 @@ int cStructGenWormNestCaves::cCaveSystem::GetRadius(cNoise & a_Noise, int a_Orig /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // cStructGenWormNestCaves: -cGridStructGen::cStructurePtr cStructGenWormNestCaves::CreateStructure(int a_OriginX, int a_OriginZ) +cGridStructGen::cStructurePtr cStructGenWormNestCaves::CreateStructure(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ) { - return cStructurePtr(new cCaveSystem(a_OriginX, a_OriginZ, m_MaxOffset, m_Size, m_Noise)); + return cStructurePtr(new cCaveSystem(a_GridX, a_GridZ, a_OriginX, a_OriginZ, m_MaxOffset, m_Size, m_Noise)); } diff --git a/src/Generating/Caves.h b/src/Generating/Caves.h index 254dcddbd..0e17acf9e 100644 --- a/src/Generating/Caves.h +++ b/src/Generating/Caves.h @@ -69,7 +69,7 @@ class cStructGenWormNestCaves : typedef cGridStructGen super; public: cStructGenWormNestCaves(int a_Seed, int a_Size = 64, int a_Grid = 96, int a_MaxOffset = 128) : - super(a_Seed, a_Grid, a_Grid, a_Size + a_MaxOffset, a_Size + a_MaxOffset, 100), + super(a_Seed, a_Grid, a_Grid, a_MaxOffset, a_MaxOffset, a_Size, a_Size, 100), m_Noise(a_Seed), m_Size(a_Size), m_MaxOffset(a_MaxOffset), @@ -86,7 +86,7 @@ protected: int m_Grid; // average spacing of the nests // cGridStructGen override: - virtual cStructurePtr CreateStructure(int a_OriginX, int a_OriginZ) override; + virtual cStructurePtr CreateStructure(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ) override; } ; diff --git a/src/Generating/ComposableGenerator.cpp b/src/Generating/ComposableGenerator.cpp index 1801b7375..22941dcbe 100644 --- a/src/Generating/ComposableGenerator.cpp +++ b/src/Generating/ComposableGenerator.cpp @@ -357,12 +357,13 @@ void cComposableGenerator::InitFinishGens(cIniFile & a_IniFile) else if (NoCaseCompare(*itr, "MineShafts") == 0) { int GridSize = a_IniFile.GetValueSetI("Generator", "MineShaftsGridSize", 512); + int MaxOffset = a_IniFile.GetValueSetI("Generator", "MineShaftsMaxOffset", 256); int MaxSystemSize = a_IniFile.GetValueSetI("Generator", "MineShaftsMaxSystemSize", 160); int ChanceCorridor = a_IniFile.GetValueSetI("Generator", "MineShaftsChanceCorridor", 600); int ChanceCrossing = a_IniFile.GetValueSetI("Generator", "MineShaftsChanceCrossing", 200); int ChanceStaircase = a_IniFile.GetValueSetI("Generator", "MineShaftsChanceStaircase", 200); m_FinishGens.push_back(new cStructGenMineShafts( - Seed, GridSize, MaxSystemSize, + Seed, GridSize, MaxOffset, MaxSystemSize, ChanceCorridor, ChanceCrossing, ChanceStaircase )); } @@ -376,9 +377,10 @@ void cComposableGenerator::InitFinishGens(cIniFile & a_IniFile) } else if (NoCaseCompare(*itr, "NetherForts") == 0) { - int GridSize = a_IniFile.GetValueSetI("Generator", "NetherFortsGridSize", 512); - int MaxDepth = a_IniFile.GetValueSetI("Generator", "NetherFortsMaxDepth", 12); - m_FinishGens.push_back(new cNetherFortGen(Seed, GridSize, MaxDepth)); + int GridSize = a_IniFile.GetValueSetI("Generator", "NetherFortsGridSize", 512); + int MaxOffset = a_IniFile.GetValueSetI("Generator", "NetherFortMaxOffset", 128); + int MaxDepth = a_IniFile.GetValueSetI("Generator", "NetherFortsMaxDepth", 12); + m_FinishGens.push_back(new cNetherFortGen(Seed, GridSize, MaxOffset, MaxDepth)); } else if (NoCaseCompare(*itr, "OreNests") == 0) { @@ -394,10 +396,11 @@ void cComposableGenerator::InitFinishGens(cIniFile & a_IniFile) } else if (NoCaseCompare(*itr, "RainbowRoads") == 0) { - int GridSize = a_IniFile.GetValueSetI("Generator", "RainbowRoadsGridSize", 512); - int MaxDepth = a_IniFile.GetValueSetI("Generator", "RainbowRoadsMaxDepth", 30); - int MaxSize = a_IniFile.GetValueSetI("Generator", "RainbowRoadsMaxSize", 260); - m_FinishGens.push_back(new cRainbowRoadsGen(Seed, GridSize, MaxDepth, MaxSize)); + 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); + m_FinishGens.push_back(new cRainbowRoadsGen(Seed, GridSize, MaxOffset, MaxDepth, MaxSize)); } else if (NoCaseCompare(*itr, "Ravines") == 0) { @@ -417,19 +420,21 @@ void cComposableGenerator::InitFinishGens(cIniFile & a_IniFile) } else if (NoCaseCompare(*itr, "UnderwaterBases") == 0) { - int GridSize = a_IniFile.GetValueSetI("Generator", "UnderwaterBaseGridSize", 1024); - int MaxDepth = a_IniFile.GetValueSetI("Generator", "UnderwaterBaseMaxDepth", 7); - int MaxSize = a_IniFile.GetValueSetI("Generator", "UnderwaterBaseMaxSize", 128); - m_FinishGens.push_back(new cUnderwaterBaseGen(Seed, GridSize, MaxDepth, MaxSize, *m_BiomeGen)); + int GridSize = a_IniFile.GetValueSetI("Generator", "UnderwaterBaseGridSize", 1024); + int MaxOffset = a_IniFile.GetValueSetI("Generator", "UnderwaterBaseMaxOffset", 128); + int MaxDepth = a_IniFile.GetValueSetI("Generator", "UnderwaterBaseMaxDepth", 7); + int MaxSize = a_IniFile.GetValueSetI("Generator", "UnderwaterBaseMaxSize", 128); + m_FinishGens.push_back(new cUnderwaterBaseGen(Seed, GridSize, MaxOffset, MaxDepth, MaxSize, *m_BiomeGen)); } else if (NoCaseCompare(*itr, "Villages") == 0) { int GridSize = a_IniFile.GetValueSetI("Generator", "VillageGridSize", 384); + int MaxOffset = a_IniFile.GetValueSetI("Generator", "VillageMaxOffset", 128); int MaxDepth = a_IniFile.GetValueSetI("Generator", "VillageMaxDepth", 2); int MaxSize = a_IniFile.GetValueSetI("Generator", "VillageMaxSize", 128); int MinDensity = a_IniFile.GetValueSetI("Generator", "VillageMinDensity", 50); int MaxDensity = a_IniFile.GetValueSetI("Generator", "VillageMaxDensity", 80); - m_FinishGens.push_back(new cVillageGen(Seed, GridSize, MaxDepth, MaxSize, MinDensity, MaxDensity, *m_BiomeGen, *m_HeightGen)); + m_FinishGens.push_back(new cVillageGen(Seed, GridSize, MaxOffset, MaxDepth, MaxSize, MinDensity, MaxDensity, *m_BiomeGen, *m_HeightGen)); } else if (NoCaseCompare(*itr, "WaterLakes") == 0) { @@ -442,7 +447,10 @@ void cComposableGenerator::InitFinishGens(cIniFile & a_IniFile) } else if (NoCaseCompare(*itr, "WormNestCaves") == 0) { - m_FinishGens.push_back(new cStructGenWormNestCaves(Seed)); + int Size = a_IniFile.GetValueSetI("Generator", "WormNestCavesSize", 64); + int Grid = a_IniFile.GetValueSetI("Generator", "WormNestCavesGrid", 96); + int MaxOffset = a_IniFile.GetValueSetI("Generator", "WormNestMaxOffset", 32); + m_FinishGens.push_back(new cStructGenWormNestCaves(Seed, Size, Grid, MaxOffset)); } else { diff --git a/src/Generating/GridStructGen.cpp b/src/Generating/GridStructGen.cpp index 474242557..2931df3eb 100644 --- a/src/Generating/GridStructGen.cpp +++ b/src/Generating/GridStructGen.cpp @@ -21,8 +21,8 @@ class cEmptyStructure : typedef cGridStructGen::cStructure super; public: - cEmptyStructure(int a_OriginX, int a_OriginZ) : - super(a_OriginX, a_OriginZ) + cEmptyStructure(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ) : + super(a_GridX, a_GridZ, a_OriginX, a_OriginZ) { } @@ -40,17 +40,20 @@ protected: cGridStructGen::cGridStructGen( int a_Seed, int a_GridSizeX, int a_GridSizeZ, + int a_MaxOffsetX, int a_MaxOffsetZ, 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), + m_MaxOffsetX(a_MaxOffsetX), + m_MaxOffsetZ(a_MaxOffsetZ), m_MaxStructureSizeX(a_MaxStructureSizeX), m_MaxStructureSizeZ(a_MaxStructureSizeZ), m_MaxCacheSize(a_MaxCacheSize) { - size_t NumStructuresPerQuery = (size_t)((m_MaxStructureSizeX / m_GridSizeX + 1) * (m_MaxStructureSizeZ / 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) { m_MaxCacheSize = NumStructuresPerQuery * 4; @@ -68,10 +71,10 @@ cGridStructGen::cGridStructGen( void cGridStructGen::GetStructuresForChunk(int a_ChunkX, int a_ChunkZ, cStructurePtrs & a_Structures) { // Calculate the min and max grid coords of the structures to be returned: - int MinBlockX = a_ChunkX * cChunkDef::Width - m_MaxStructureSizeX; - int MinBlockZ = a_ChunkZ * cChunkDef::Width - m_MaxStructureSizeZ; - int MaxBlockX = a_ChunkX * cChunkDef::Width + m_MaxStructureSizeX + cChunkDef::Width - 1; - int MaxBlockZ = a_ChunkZ * cChunkDef::Width + m_MaxStructureSizeZ + cChunkDef::Width - 1; + int MinBlockX = a_ChunkX * cChunkDef::Width - m_MaxStructureSizeX - m_MaxOffsetX; + int MinBlockZ = a_ChunkZ * cChunkDef::Width - m_MaxStructureSizeZ - m_MaxOffsetZ; + int MaxBlockX = a_ChunkX * cChunkDef::Width + m_MaxStructureSizeX + m_MaxOffsetX + cChunkDef::Width - 1; + int MaxBlockZ = a_ChunkZ * cChunkDef::Width + m_MaxStructureSizeZ + m_MaxOffsetZ + cChunkDef::Width - 1; int MinGridX = MinBlockX / m_GridSizeX; int MinGridZ = MinBlockZ / m_GridSizeZ; int MaxGridX = (MaxBlockX + m_GridSizeX - 1) / m_GridSizeX; @@ -103,14 +106,14 @@ void cGridStructGen::GetStructuresForChunk(int a_ChunkX, int a_ChunkZ, cStructur // Create those structures that haven't been in the cache: for (int x = MinGridX; x < MaxGridX; x++) { - int OriginX = x * m_GridSizeX; + int GridX = x * m_GridSizeX; for (int z = MinGridZ; z < MaxGridZ; z++) { - int OriginZ = z * m_GridSizeZ; + int GridZ = z * m_GridSizeZ; bool Found = false; for (cStructurePtrs::const_iterator itr = a_Structures.begin(), end = a_Structures.end(); itr != end; ++itr) { - if (((*itr)->m_OriginX == OriginX) && ((*itr)->m_OriginZ == OriginZ)) + if (((*itr)->m_GridX == GridX) && ((*itr)->m_GridZ == GridZ)) { Found = true; break; @@ -118,10 +121,12 @@ void cGridStructGen::GetStructuresForChunk(int a_ChunkX, int a_ChunkZ, cStructur } // for itr - a_Structures[] if (!Found) { - cStructurePtr Structure = CreateStructure(OriginX, OriginZ); + int OriginX = GridX + ((m_Noise.IntNoise2DInt(GridX + 3, GridZ + 5) / 7) % (m_MaxOffsetX * 2)) - m_MaxOffsetX; + int OriginZ = GridZ + ((m_Noise.IntNoise2DInt(GridX + 5, GridZ + 3) / 7) % (m_MaxOffsetZ * 2)) - m_MaxOffsetZ; + cStructurePtr Structure = CreateStructure(GridX, GridZ, OriginX, OriginZ); if (Structure.get() == NULL) { - Structure.reset(new cEmptyStructure(OriginX, OriginZ)); + Structure.reset(new cEmptyStructure(GridX, GridZ, OriginX, OriginZ)); } a_Structures.push_back(Structure); } diff --git a/src/Generating/GridStructGen.h b/src/Generating/GridStructGen.h index 630a5e44e..03131fce9 100644 --- a/src/Generating/GridStructGen.h +++ b/src/Generating/GridStructGen.h @@ -10,6 +10,7 @@ #pragma once #include "ComposableGenerator.h" +#include "../Noise.h" @@ -19,7 +20,12 @@ Defines a grid in the XZ space with predefined cell size in each direction. Each cell then receives exactly one structure (provided by the descendant class). The structure is placed within the cell, but doesn't need to be bounded by the cell, it can be well outside the cell; the generator uses the MaxStructureSize parameter -to determine how far away from the cell the structure can be at most. +to determine how far away from the cell the structure can be at most. Each structure has an offset from the +grid's center point, the offset is generated randomly from a range given to this class as a parameter. + +Each structure thus contains the coords of its grid center (m_GridX, m_GridZ) and the actual origin from +which it's built (m_OriginX, m_OriginZ). + This class provides a cache for the structures generated for successive chunks and manages that cache. It also provides the cFinishGen override that uses the cache to actually generate the structure into chunk data. @@ -43,12 +49,17 @@ public: class cStructure { public: - /** The origin (the coords of the gridpoint for which the structure is generated) */ + /** The grid point for which the structure is generated. */ + int m_GridX, m_GridZ; + + /** The origin (the coords for which the structure is generated) */ int m_OriginX, m_OriginZ; - /** Creates a structure that has its originset at the specified coords. */ - cStructure (int a_OriginX, int a_OriginZ) : + /** Creates a structure that has its origin set at the specified coords. */ + cStructure (int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ) : + m_GridX(a_GridX), + m_GridZ(a_GridZ), m_OriginX(a_OriginX), m_OriginZ(a_OriginZ) { @@ -70,20 +81,30 @@ public: cGridStructGen( int a_Seed, int a_GridSizeX, int a_GridSizeZ, + int a_MaxOffsetX, int a_MaxOffsetZ, int a_MaxStructureSizeX, int a_MaxStructureSizeZ, size_t a_MaxCacheSize ); protected: - /** Seed for generating the semi-random grid. */ + /** Seed for generating grid offsets and also available for descendants. */ int m_Seed; + /** The noise used for generating grid offsets. */ + cNoise m_Noise; + /** The size of each grid's cell in the X axis */ int m_GridSizeX; /** The size of each grid's cell in the Z axis */ int m_GridSizeZ; + /** The maximum offset of the structure's origin from the grid midpoint, in X coord. */ + int m_MaxOffsetX; + + /** The maximum offset of the structure's origin from the grid midpoint, in Z coord. */ + int m_MaxOffsetZ; + /** Maximum theoretical size of the structure in the X axis. This limits the structures considered for a single chunk, so the lesser the number, the better performance. Structures large than this may get cropped. */ @@ -115,7 +136,7 @@ protected: // Functions for the descendants to override: /** Create a new structure at the specified gridpoint */ - virtual cStructurePtr CreateStructure(int a_OriginX, int a_OriginZ) = 0; + virtual cStructurePtr CreateStructure(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ) = 0; } ; diff --git a/src/Generating/MineShafts.cpp b/src/Generating/MineShafts.cpp index 81ae6481d..ab9b1aa29 100644 --- a/src/Generating/MineShafts.cpp +++ b/src/Generating/MineShafts.cpp @@ -248,7 +248,8 @@ public: /** Creates and generates the entire system */ cMineShaftSystem( - int a_OriginX, int a_OriginZ, int a_GridSize, int a_MaxSystemSize, cNoise & a_Noise, + int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ, + int a_GridSize, int a_MaxSystemSize, cNoise & a_Noise, int a_ProbLevelCorridor, int a_ProbLevelCrossing, int a_ProbLevelStaircase ); @@ -278,10 +279,11 @@ public: // cStructGenMineShafts::cMineShaftSystem: cStructGenMineShafts::cMineShaftSystem::cMineShaftSystem( - int a_OriginX, int a_OriginZ, int a_GridSize, int a_MaxSystemSize, cNoise & a_Noise, + int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ, + int a_GridSize, int a_MaxSystemSize, cNoise & a_Noise, int a_ProbLevelCorridor, int a_ProbLevelCrossing, int a_ProbLevelStaircase ) : - super(a_OriginX, a_OriginZ), + super(a_GridX, a_GridZ, a_OriginX, a_OriginZ), m_GridSize(a_GridSize), m_MaxRecursion(8), // TODO: settable m_ProbLevelCorridor(a_ProbLevelCorridor), @@ -1280,10 +1282,10 @@ void cMineShaftStaircase::ProcessChunk(cChunkDesc & a_ChunkDesc) // cStructGenMineShafts: cStructGenMineShafts::cStructGenMineShafts( - int a_Seed, int a_GridSize, int a_MaxSystemSize, + int a_Seed, int a_GridSize, int a_MaxOffset, int a_MaxSystemSize, int a_ChanceCorridor, int a_ChanceCrossing, int a_ChanceStaircase ) : - super(a_Seed, a_GridSize, a_GridSize, a_MaxSystemSize, a_MaxSystemSize, 100), + super(a_Seed, a_GridSize, a_GridSize, a_MaxOffset, a_MaxOffset, a_MaxSystemSize, a_MaxSystemSize, 100), m_Noise(a_Seed), m_GridSize(a_GridSize), m_MaxSystemSize(a_MaxSystemSize), @@ -1297,9 +1299,9 @@ cStructGenMineShafts::cStructGenMineShafts( -cGridStructGen::cStructurePtr cStructGenMineShafts::CreateStructure(int a_OriginX, int a_OriginZ) +cGridStructGen::cStructurePtr cStructGenMineShafts::CreateStructure(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ) { - return cStructurePtr(new cMineShaftSystem(a_OriginX, a_OriginZ, m_GridSize, m_MaxSystemSize, m_Noise, m_ProbLevelCorridor, m_ProbLevelCrossing, m_ProbLevelStaircase)); + return cStructurePtr(new cMineShaftSystem(a_GridX, a_GridZ, a_OriginX, a_OriginZ, m_GridSize, m_MaxSystemSize, m_Noise, m_ProbLevelCorridor, m_ProbLevelCrossing, m_ProbLevelStaircase)); } diff --git a/src/Generating/MineShafts.h b/src/Generating/MineShafts.h index c29b6cdac..2850db571 100644 --- a/src/Generating/MineShafts.h +++ b/src/Generating/MineShafts.h @@ -23,7 +23,7 @@ class cStructGenMineShafts : public: cStructGenMineShafts( - int a_Seed, int a_GridSize, int a_MaxSystemSize, + int a_Seed, int a_GridSize, int a_MaxOffset, int a_MaxSystemSize, int a_ChanceCorridor, int a_ChanceCrossing, int a_ChanceStaircase ); @@ -43,7 +43,7 @@ protected: int m_ProbLevelStaircase; ///< Probability level of a branch object being the staircase, minus Crossing // cGridStructGen overrides: - virtual cStructurePtr CreateStructure(int a_OriginX, int a_OriginZ) override; + virtual cStructurePtr CreateStructure(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ) override; } ; diff --git a/src/Generating/NetherFortGen.cpp b/src/Generating/NetherFortGen.cpp index 3867ec80c..23fa56048 100644 --- a/src/Generating/NetherFortGen.cpp +++ b/src/Generating/NetherFortGen.cpp @@ -26,8 +26,8 @@ public: cPlacedPieces m_Pieces; - cNetherFort(cNetherFortGen & a_ParentGen, int a_OriginX, int a_OriginZ, int a_GridSize, int a_MaxDepth, int a_Seed) : - super(a_OriginX, a_OriginZ), + cNetherFort(cNetherFortGen & a_ParentGen, int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ, int a_GridSize, int a_MaxDepth, int a_Seed) : + super(a_GridX, a_GridZ, a_OriginX, a_OriginZ), m_ParentGen(a_ParentGen), m_GridSize(a_GridSize), m_Seed(a_Seed) @@ -108,8 +108,8 @@ cPrefabPiecePool cNetherFortGen::m_PiecePool(g_NetherFortPrefabs, g_NetherFortPr -cNetherFortGen::cNetherFortGen(int a_Seed, int a_GridSize, int a_MaxDepth) : - super(a_Seed, a_GridSize, a_GridSize, a_MaxDepth * 10, a_MaxDepth * 10, 200), +cNetherFortGen::cNetherFortGen(int a_Seed, int a_GridSize, int a_MaxOffset, int a_MaxDepth) : + super(a_Seed, a_GridSize, a_GridSize, a_MaxOffset, a_MaxOffset, a_MaxDepth * 10, a_MaxDepth * 10, 200), m_MaxDepth(a_MaxDepth) { /* @@ -124,8 +124,11 @@ cNetherFortGen::cNetherFortGen(int a_Seed, int a_GridSize, int a_MaxDepth) : -cGridStructGen::cStructurePtr cNetherFortGen::CreateStructure(int a_OriginX, int a_OriginZ) +cGridStructGen::cStructurePtr cNetherFortGen::CreateStructure(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ) { - return cStructurePtr(new cNetherFort(*this, a_OriginX, a_OriginZ, m_GridSizeX, m_MaxDepth, m_Seed)); + return cStructurePtr(new cNetherFort(*this, a_GridX, a_GridZ, a_OriginX, a_OriginZ, m_GridSizeX, m_MaxDepth, m_Seed)); } + + + diff --git a/src/Generating/NetherFortGen.h b/src/Generating/NetherFortGen.h index f35801a3c..9b31aa0e2 100644 --- a/src/Generating/NetherFortGen.h +++ b/src/Generating/NetherFortGen.h @@ -23,7 +23,7 @@ class cNetherFortGen : typedef cGridStructGen super; public: - cNetherFortGen(int a_Seed, int a_GridSize, int a_MaxDepth); + cNetherFortGen(int a_Seed, int a_GridSize, int a_MaxOffset, int a_MaxDepth); protected: friend class cNetherFortPerfTest; // fwd: NetherFortGen.cpp @@ -37,7 +37,7 @@ protected: // cGridStructGen overrides: - virtual cStructurePtr CreateStructure(int a_OriginX, int a_OriginZ) override; + virtual cStructurePtr CreateStructure(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ) override; } ; diff --git a/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.cpp b/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.cpp index 4f0efdcc6..eb01cf59e 100644 --- a/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.cpp +++ b/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.cpp @@ -20,18 +20,18 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = // The data has been exported from the gallery Desert, area index 32, ID 173, created by Aloe_vera { // Size: - 12, 5, 10, // SizeX = 12, SizeY = 5, SizeZ = 10 + 12, 6, 10, // SizeX = 12, SizeY = 6, SizeZ = 10 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 11, 4, 9, // MaxX, MaxY, MaxZ + 11, 5, 9, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a:128: 2\n" /* sandstonestairs */ - "b:128: 1\n" /* sandstonestairs */ - "c:128: 0\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:171:15\n" /* carpet */ "g: 64: 6\n" /* wooddoorblock */ @@ -54,35 +54,49 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = // Level 0 /* z\x* 11 */ /* * 012345678901 */ - /* 0 */ "aaaaaab....." - /* 1 */ "cdddddddddd." - /* 2 */ "cdddddddddd." - /* 3 */ "cdddddddddd." - /* 4 */ "cdddddddddd." - /* 5 */ "edddddddddd." - /* 6 */ ".dddddddddd." - /* 7 */ ".dddddddddd." - /* 8 */ ".dddddddddd." - /* 9 */ "............" + /* 0 */ "aaaaaaammmmm" + /* 1 */ "aaaaaaaaaaam" + /* 2 */ "aaaaaaaaaaam" + /* 3 */ "aaaaaaaaaaam" + /* 4 */ "aaaaaaaaaaam" + /* 5 */ "aaaaaaaaaaam" + /* 6 */ "maaaaaaaaaam" + /* 7 */ "maaaaaaaaaam" + /* 8 */ "maaaaaaaaaam" + /* 9 */ "mmmmmmmmmmmm" // Level 1 /* z\x* 11 */ /* * 012345678901 */ - /* 0 */ "............" - /* 1 */ ".d....ddddd." - /* 2 */ "......dfffd." - /* 3 */ "......ghfhd." - /* 4 */ "......diiid." - /* 5 */ ".d....dhfhd." - /* 6 */ ".djddjdfffd." - /* 7 */ ".ddkkddl..d." - /* 8 */ ".dddddddddd." + /* 0 */ "bcccccd....." + /* 1 */ "baaaaaaaaaa." + /* 2 */ "baaaaaaaaaa." + /* 3 */ "baaaaaaaaaa." + /* 4 */ "baaaaaaaaaa." + /* 5 */ "eaaaaaaaaaa." + /* 6 */ ".aaaaaaaaaa." + /* 7 */ ".aaaaaaaaaa." + /* 8 */ ".aaaaaaaaaa." /* 9 */ "............" // Level 2 /* z\x* 11 */ /* * 012345678901 */ /* 0 */ "............" + /* 1 */ ".a....aaaaa." + /* 2 */ "......afffa." + /* 3 */ "......ghfha." + /* 4 */ "......aiiia." + /* 5 */ ".a....ahfha." + /* 6 */ ".ajaajafffa." + /* 7 */ ".aakkaal..a." + /* 8 */ ".aaaaaaaaaa." + /* 9 */ "............" + + // Level 3 + /* z\x* 11 */ + /* * 012345678901 */ + /* 0 */ "............" /* 1 */ ".n....nn.nn." /* 2 */ "......n...n." /* 3 */ "......o...n." @@ -93,36 +107,36 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = /* 8 */ ".nnn.nnn.nn." /* 9 */ "............" - // Level 3 + // Level 4 /* z\x* 11 */ /* * 012345678901 */ /* 0 */ "............" - /* 1 */ ".d....ddddd." - /* 2 */ "......d...d." - /* 3 */ "......d...d." - /* 4 */ "......dp..d." - /* 5 */ ".d....d...d." - /* 6 */ ".dqqqqd...d." - /* 7 */ ".d....d...d." - /* 8 */ ".dddddddddd." + /* 1 */ ".a....aaaaa." + /* 2 */ "......a...a." + /* 3 */ "......a...a." + /* 4 */ "......ap..a." + /* 5 */ ".a....a...a." + /* 6 */ ".aqqqqa...a." + /* 7 */ ".a....a...a." + /* 8 */ ".aaaaaaaaaa." /* 9 */ "............" - // Level 4 + // Level 5 /* z\x* 11 */ /* * 012345678901 */ /* 0 */ "rsssssssssss" - /* 1 */ "rddddddddddt" - /* 2 */ "rddddddddddt" - /* 3 */ "rddddddddddt" - /* 4 */ "rddddddddddt" - /* 5 */ "rddddddddddt" - /* 6 */ "rddddddddddt" - /* 7 */ "rddddddddddt" - /* 8 */ "rddddddddddt" + /* 1 */ "raaaaaaaaaat" + /* 2 */ "raaaaaaaaaat" + /* 3 */ "raaaaaaaaaat" + /* 4 */ "raaaaaaaaaat" + /* 5 */ "raaaaaaaaaat" + /* 6 */ "raaaaaaaaaat" + /* 7 */ "raaaaaaaaaat" + /* 8 */ "raaaaaaaaaat" /* 9 */ "uuuuuuuuuuut", // Connectors: - "-1: 3, 0, 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 */ @@ -153,18 +167,18 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = // The data has been exported from the gallery Desert, area index 31, ID 172, created by Aloe_vera { // Size: - 13, 5, 9, // SizeX = 13, SizeY = 5, SizeZ = 9 + 13, 6, 9, // SizeX = 13, SizeY = 6, SizeZ = 9 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 12, 4, 8, // MaxX, MaxY, MaxZ + 12, 5, 8, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a:128: 0\n" /* sandstonestairs */ - "b:128: 2\n" /* sandstonestairs */ - "c:128: 1\n" /* sandstonestairs */ - "d: 24: 0\n" /* sandstone */ + "a: 24: 0\n" /* sandstone */ + "b:128: 0\n" /* sandstonestairs */ + "c:128: 2\n" /* sandstonestairs */ + "d:128: 1\n" /* sandstonestairs */ "e: 64: 7\n" /* wooddoorblock */ "f:171: 0\n" /* carpet */ "g:171:15\n" /* carpet */ @@ -185,33 +199,46 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = // Level 0 /* z\x* 111 */ /* * 0123456789012 */ - /* 0 */ "..abc........" - /* 1 */ ".ddddddddddd." - /* 2 */ ".ddddddddddd." - /* 3 */ ".ddddddddddd." - /* 4 */ ".ddddddddddd." - /* 5 */ ".ddddddddddd." - /* 6 */ ".ddddddddddd." - /* 7 */ ".ddddddddddd." - /* 8 */ "............." + /* 0 */ "mmaaammmmmmmm" + /* 1 */ "maaaaaaaaaaam" + /* 2 */ "maaaaaaaaaaam" + /* 3 */ "maaaaaaaaaaam" + /* 4 */ "maaaaaaaaaaam" + /* 5 */ "maaaaaaaaaaam" + /* 6 */ "maaaaaaaaaaam" + /* 7 */ "maaaaaaaaaaam" + /* 8 */ "mmmmmmmmmmmmm" // Level 1 /* z\x* 111 */ /* * 0123456789012 */ - /* 0 */ "............." - /* 1 */ ".ddedddddddd." - /* 2 */ ".dffgggggffd." - /* 3 */ ".dfghhhhhgfd." - /* 4 */ ".dfghfffhgfd." - /* 5 */ ".dfghhhhhgfd." - /* 6 */ ".dffgggggffd." - /* 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 */ ".aaeaaaaaaaa." + /* 2 */ ".affgggggffa." + /* 3 */ ".afghhhhhgfa." + /* 4 */ ".afghfffhgfa." + /* 5 */ ".afghhhhhgfa." + /* 6 */ ".affgggggffa." + /* 7 */ ".aaaaaaaaaaa." + /* 8 */ "............." + + // Level 3 + /* z\x* 111 */ + /* * 0123456789012 */ + /* 0 */ "............." /* 1 */ ".iiji.iii.ii." /* 2 */ ".i.........i." /* 3 */ ".i.........i." @@ -221,34 +248,34 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = /* 7 */ ".ii.ii.ii.ii." /* 8 */ "............." - // Level 3 + // Level 4 /* z\x* 111 */ /* * 0123456789012 */ /* 0 */ "............." - /* 1 */ ".ddddddddddd." - /* 2 */ ".d..k..k...d." - /* 3 */ ".d.........d." - /* 4 */ ".dl.......nd." - /* 5 */ ".d.........d." - /* 6 */ ".d....o....d." - /* 7 */ ".ddddddddddd." + /* 1 */ ".aaaaaaaaaaa." + /* 2 */ ".a..k..k...a." + /* 3 */ ".a.........a." + /* 4 */ ".al.......na." + /* 5 */ ".a.........a." + /* 6 */ ".a....o....a." + /* 7 */ ".aaaaaaaaaaa." /* 8 */ "............." - // Level 4 + // Level 5 /* z\x* 111 */ /* * 0123456789012 */ /* 0 */ "pqqqqqqqqqqqq" - /* 1 */ "pdddddddddddr" - /* 2 */ "pdddddddddddr" - /* 3 */ "pdddddddddddr" - /* 4 */ "pdddddddddddr" - /* 5 */ "pdddddddddddr" - /* 6 */ "pdddddddddddr" - /* 7 */ "pdddddddddddr" + /* 1 */ "paaaaaaaaaaar" + /* 2 */ "paaaaaaaaaaar" + /* 3 */ "paaaaaaaaaaar" + /* 4 */ "paaaaaaaaaaar" + /* 5 */ "paaaaaaaaaaar" + /* 6 */ "paaaaaaaaaaar" + /* 7 */ "paaaaaaaaaaar" /* 8 */ "ssssssssssssr", // Connectors: - "-1: 3, 0, 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 */ @@ -279,18 +306,18 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = // The data has been exported from the gallery Desert, area index 25, ID 166, created by Aloe_vera { // Size: - 7, 5, 6, // SizeX = 7, SizeY = 5, SizeZ = 6 + 7, 6, 6, // SizeX = 7, SizeY = 6, SizeZ = 6 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 6, 4, 5, // MaxX, MaxY, MaxZ + 6, 5, 5, // 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:171: 0\n" /* carpet */ "g:171:14\n" /* carpet */ @@ -306,51 +333,60 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = // Block data: // Level 0 /* z\x* 0123456 */ - /* 0 */ "..abc.." - /* 1 */ ".ddddd." - /* 2 */ ".ddddd." - /* 3 */ ".ddddd." - /* 4 */ ".ddddd." - /* 5 */ "......." + /* 0 */ "mmaaamm" + /* 1 */ "maaaaam" + /* 2 */ "maaaaam" + /* 3 */ "maaaaam" + /* 4 */ "maaaaam" + /* 5 */ "mmmmmmm" // Level 1 /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".ddedd." - /* 2 */ ".dfgfd." - /* 3 */ ".dfgfd." - /* 4 */ ".ddddd." + /* 0 */ "..bcd.." + /* 1 */ ".aaaaa." + /* 2 */ ".aaaaa." + /* 3 */ ".aaaaa." + /* 4 */ ".aaaaa." /* 5 */ "......." // Level 2 /* z\x* 0123456 */ /* 0 */ "......." + /* 1 */ ".aaeaa." + /* 2 */ ".afgfa." + /* 3 */ ".afgfa." + /* 4 */ ".aaaaa." + /* 5 */ "......." + + // Level 3 + /* z\x* 0123456 */ + /* 0 */ "......." /* 1 */ ".hhihh." /* 2 */ ".h...h." /* 3 */ ".h...h." /* 4 */ ".hh.hh." /* 5 */ "......." - // Level 3 + // Level 4 /* z\x* 0123456 */ /* 0 */ "......." - /* 1 */ ".ddddd." - /* 2 */ ".dj.jd." - /* 3 */ ".d...d." - /* 4 */ ".ddddd." + /* 1 */ ".aaaaa." + /* 2 */ ".aj.ja." + /* 3 */ ".a...a." + /* 4 */ ".aaaaa." /* 5 */ "......." - // Level 4 + // Level 5 /* z\x* 0123456 */ /* 0 */ "kllllln" - /* 1 */ "kdddddn" - /* 2 */ "kdddddn" - /* 3 */ "kdddddn" - /* 4 */ "kdddddn" + /* 1 */ "kaaaaan" + /* 2 */ "kaaaaan" + /* 3 */ "kaaaaan" + /* 4 */ "kaaaaan" /* 5 */ "oooooon", // Connectors: - "-1: 3, 0, 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 */ @@ -381,18 +417,18 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = // The data has been exported from the gallery Desert, area index 26, ID 167, created by Aloe_vera { // Size: - 7, 5, 7, // SizeX = 7, SizeY = 5, SizeZ = 7 + 7, 6, 7, // SizeX = 7, SizeY = 6, SizeZ = 7 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 6, 4, 6, // MaxX, MaxY, MaxZ + 6, 5, 6, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a:128: 0\n" /* sandstonestairs */ - "b:128: 2\n" /* sandstonestairs */ - "c:128: 1\n" /* sandstonestairs */ - "d: 24: 0\n" /* sandstone */ + "a: 24: 0\n" /* sandstone */ + "b:128: 0\n" /* sandstonestairs */ + "c:128: 2\n" /* sandstonestairs */ + "d:128: 1\n" /* sandstonestairs */ "e: 64: 7\n" /* wooddoorblock */ "f:171: 0\n" /* carpet */ "g:171:15\n" /* carpet */ @@ -409,27 +445,37 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = // Block data: // Level 0 /* z\x* 0123456 */ - /* 0 */ "..abc.." - /* 1 */ ".ddddd." - /* 2 */ ".ddddd." - /* 3 */ ".ddddd." - /* 4 */ ".ddddd." - /* 5 */ ".ddddd." - /* 6 */ "......." + /* 0 */ "mmaaamm" + /* 1 */ "maaaaam" + /* 2 */ "maaaaam" + /* 3 */ "maaaaam" + /* 4 */ "maaaaam" + /* 5 */ "maaaaam" + /* 6 */ "mmmmmmm" // Level 1 /* z\x* 0123456 */ - /* 0 */ "......." - /* 1 */ ".ddedd." - /* 2 */ ".dfffd." - /* 3 */ ".dghgd." - /* 4 */ ".dfffd." - /* 5 */ ".ddddd." + /* 0 */ "..bcd.." + /* 1 */ ".aaaaa." + /* 2 */ ".aaaaa." + /* 3 */ ".aaaaa." + /* 4 */ ".aaaaa." + /* 5 */ ".aaaaa." /* 6 */ "......." // Level 2 /* z\x* 0123456 */ /* 0 */ "......." + /* 1 */ ".aaeaa." + /* 2 */ ".afffa." + /* 3 */ ".aghga." + /* 4 */ ".afffa." + /* 5 */ ".aaaaa." + /* 6 */ "......." + + // Level 3 + /* z\x* 0123456 */ + /* 0 */ "......." /* 1 */ ".iijii." /* 2 */ ".i...i." /* 3 */ "......." @@ -437,28 +483,28 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = /* 5 */ ".ii.ii." /* 6 */ "......." - // Level 3 + // Level 4 /* z\x* 0123456 */ /* 0 */ "......." - /* 1 */ ".ddddd." - /* 2 */ ".dk.kd." - /* 3 */ ".d...d." - /* 4 */ ".d...d." - /* 5 */ ".ddddd." + /* 1 */ ".aaaaa." + /* 2 */ ".ak.ka." + /* 3 */ ".a...a." + /* 4 */ ".a...a." + /* 5 */ ".aaaaa." /* 6 */ "......." - // Level 4 + // Level 5 /* z\x* 0123456 */ /* 0 */ "lnnnnno" - /* 1 */ "ldddddo" - /* 2 */ "ldddddo" - /* 3 */ "ldddddo" - /* 4 */ "ldddddo" - /* 5 */ "ldddddo" + /* 1 */ "laaaaao" + /* 2 */ "laaaaao" + /* 3 */ "laaaaao" + /* 4 */ "laaaaao" + /* 5 */ "laaaaao" /* 6 */ "ppppppo", // Connectors: - "-1: 3, 0, 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 */ @@ -489,18 +535,18 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = // The data has been exported from the gallery Desert, area index 27, ID 168, created by Aloe_vera { // Size: - 9, 5, 7, // SizeX = 9, SizeY = 5, SizeZ = 7 + 9, 6, 7, // SizeX = 9, SizeY = 6, SizeZ = 7 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 8, 4, 6, // MaxX, MaxY, MaxZ + 8, 5, 6, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a:128: 0\n" /* sandstonestairs */ - "b:128: 2\n" /* sandstonestairs */ - "c:128: 1\n" /* sandstonestairs */ - "d: 24: 0\n" /* sandstone */ + "a: 24: 0\n" /* sandstone */ + "b:128: 0\n" /* sandstonestairs */ + "c:128: 2\n" /* sandstonestairs */ + "d:128: 1\n" /* sandstonestairs */ "e: 64: 7\n" /* wooddoorblock */ "f:171:14\n" /* carpet */ "g:171: 0\n" /* carpet */ @@ -517,27 +563,37 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = // Block data: // Level 0 /* z\x* 012345678 */ - /* 0 */ "..abc...." - /* 1 */ ".ddddddd." - /* 2 */ ".ddddddd." - /* 3 */ ".ddddddd." - /* 4 */ ".ddddddd." - /* 5 */ ".ddddddd." - /* 6 */ "........." + /* 0 */ "mmaaammmm" + /* 1 */ "maaaaaaam" + /* 2 */ "maaaaaaam" + /* 3 */ "maaaaaaam" + /* 4 */ "maaaaaaam" + /* 5 */ "maaaaaaam" + /* 6 */ "mmmmmmmmm" // Level 1 /* z\x* 012345678 */ - /* 0 */ "........." - /* 1 */ ".ddedddd." - /* 2 */ ".dfffffd." - /* 3 */ ".dghhhgd." - /* 4 */ ".dfffffd." - /* 5 */ ".ddddddd." + /* 0 */ "..bcd...." + /* 1 */ ".aaaaaaa." + /* 2 */ ".aaaaaaa." + /* 3 */ ".aaaaaaa." + /* 4 */ ".aaaaaaa." + /* 5 */ ".aaaaaaa." /* 6 */ "........." // Level 2 /* z\x* 012345678 */ /* 0 */ "........." + /* 1 */ ".aaeaaaa." + /* 2 */ ".afffffa." + /* 3 */ ".aghhhga." + /* 4 */ ".afffffa." + /* 5 */ ".aaaaaaa." + /* 6 */ "........." + + // Level 3 + /* z\x* 012345678 */ + /* 0 */ "........." /* 1 */ ".iiji.ii." /* 2 */ ".i.....i." /* 3 */ "........." @@ -545,28 +601,28 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = /* 5 */ ".iii.iii." /* 6 */ "........." - // Level 3 + // Level 4 /* z\x* 012345678 */ /* 0 */ "........." - /* 1 */ ".ddddddd." - /* 2 */ ".dk.k..d." - /* 3 */ ".d.....d." - /* 4 */ ".d.....d." - /* 5 */ ".ddddddd." + /* 1 */ ".aaaaaaa." + /* 2 */ ".ak.k..a." + /* 3 */ ".a.....a." + /* 4 */ ".a.....a." + /* 5 */ ".aaaaaaa." /* 6 */ "........." - // Level 4 + // Level 5 /* z\x* 012345678 */ /* 0 */ "lnnnnnnnn" - /* 1 */ "ldddddddo" - /* 2 */ "ldddddddo" - /* 3 */ "ldddddddo" - /* 4 */ "ldddddddo" - /* 5 */ "ldddddddo" + /* 1 */ "laaaaaaao" + /* 2 */ "laaaaaaao" + /* 3 */ "laaaaaaao" + /* 4 */ "laaaaaaao" + /* 5 */ "laaaaaaao" /* 6 */ "ppppppppo", // Connectors: - "-1: 3, 0, 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 */ @@ -597,18 +653,18 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = // The data has been exported from the gallery Desert, area index 28, ID 169, created by Aloe_vera { // Size: - 10, 5, 7, // SizeX = 10, SizeY = 5, SizeZ = 7 + 10, 6, 7, // SizeX = 10, SizeY = 6, SizeZ = 7 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 9, 4, 6, // MaxX, MaxY, MaxZ + 9, 5, 6, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a:128: 0\n" /* sandstonestairs */ - "b:128: 2\n" /* sandstonestairs */ - "c:128: 1\n" /* sandstonestairs */ - "d: 24: 0\n" /* sandstone */ + "a: 24: 0\n" /* sandstone */ + "b:128: 0\n" /* sandstonestairs */ + "c:128: 2\n" /* sandstonestairs */ + "d:128: 1\n" /* sandstonestairs */ "e: 64: 7\n" /* wooddoorblock */ "f:171: 0\n" /* carpet */ "g:171:14\n" /* carpet */ @@ -626,29 +682,40 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = // Level 0 /* z\x* */ /* * 0123456789 */ - /* 0 */ "..abc....." - /* 1 */ ".dddddddd." - /* 2 */ ".dddddddd." - /* 3 */ ".dddddddd." - /* 4 */ ".dddddddd." - /* 5 */ ".dddddddd." - /* 6 */ ".........." + /* 0 */ "mmaaammmmm" + /* 1 */ "maaaaaaaam" + /* 2 */ "maaaaaaaam" + /* 3 */ "maaaaaaaam" + /* 4 */ "maaaaaaaam" + /* 5 */ "maaaaaaaam" + /* 6 */ "mmmmmmmmmm" // Level 1 /* z\x* */ /* * 0123456789 */ - /* 0 */ ".........." - /* 1 */ ".ddeddddd." - /* 2 */ ".dfghhgfd." - /* 3 */ ".dfhffhfd." - /* 4 */ ".dfghhgfd." - /* 5 */ ".dddddddd." + /* 0 */ "..bcd....." + /* 1 */ ".aaaaaaaa." + /* 2 */ ".aaaaaaaa." + /* 3 */ ".aaaaaaaa." + /* 4 */ ".aaaaaaaa." + /* 5 */ ".aaaaaaaa." /* 6 */ ".........." // Level 2 /* z\x* */ /* * 0123456789 */ /* 0 */ ".........." + /* 1 */ ".aaeaaaaa." + /* 2 */ ".afghhgfa." + /* 3 */ ".afhffhfa." + /* 4 */ ".afghhgfa." + /* 5 */ ".aaaaaaaa." + /* 6 */ ".........." + + // Level 3 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ ".........." /* 1 */ ".iijii.ii." /* 2 */ ".i......i." /* 3 */ ".........." @@ -656,30 +723,30 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = /* 5 */ ".ii.ii.ii." /* 6 */ ".........." - // Level 3 + // Level 4 /* z\x* */ /* * 0123456789 */ /* 0 */ ".........." - /* 1 */ ".dddddddd." - /* 2 */ ".dk.k...d." - /* 3 */ ".d......d." - /* 4 */ ".d......d." - /* 5 */ ".dddddddd." + /* 1 */ ".aaaaaaaa." + /* 2 */ ".ak.k...a." + /* 3 */ ".a......a." + /* 4 */ ".a......a." + /* 5 */ ".aaaaaaaa." /* 6 */ ".........." - // Level 4 + // Level 5 /* z\x* */ /* * 0123456789 */ /* 0 */ "lnnnnnnnnn" - /* 1 */ "lddddddddo" - /* 2 */ "lddddddddo" - /* 3 */ "lddddddddo" - /* 4 */ "lddddddddo" - /* 5 */ "lddddddddo" + /* 1 */ "laaaaaaaao" + /* 2 */ "laaaaaaaao" + /* 3 */ "laaaaaaaao" + /* 4 */ "laaaaaaaao" + /* 5 */ "laaaaaaaao" /* 6 */ "pppppppppo", // Connectors: - "-1: 3, 0, 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 */ @@ -710,18 +777,18 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = // The data has been exported from the gallery Desert, area index 29, ID 170, created by Aloe_vera { // Size: - 10, 5, 9, // SizeX = 10, SizeY = 5, SizeZ = 9 + 10, 6, 9, // SizeX = 10, SizeY = 6, SizeZ = 9 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 9, 4, 8, // MaxX, MaxY, MaxZ + 9, 5, 8, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a:128: 0\n" /* sandstonestairs */ - "b:128: 2\n" /* sandstonestairs */ - "c:128: 1\n" /* sandstonestairs */ - "d: 24: 0\n" /* sandstone */ + "a: 24: 0\n" /* sandstone */ + "b:128: 0\n" /* sandstonestairs */ + "c:128: 2\n" /* sandstonestairs */ + "d:128: 1\n" /* sandstonestairs */ "e: 64: 7\n" /* wooddoorblock */ "f:171: 0\n" /* carpet */ "g:171:14\n" /* carpet */ @@ -741,33 +808,46 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = // Level 0 /* z\x* */ /* * 0123456789 */ - /* 0 */ "..abc....." - /* 1 */ ".dddddddd." - /* 2 */ ".dddddddd." - /* 3 */ ".dddddddd." - /* 4 */ ".dddddddd." - /* 5 */ ".dddddddd." - /* 6 */ ".dddddddd." - /* 7 */ ".dddddddd." - /* 8 */ ".........." + /* 0 */ "mmaaammmmm" + /* 1 */ "maaaaaaaam" + /* 2 */ "maaaaaaaam" + /* 3 */ "maaaaaaaam" + /* 4 */ "maaaaaaaam" + /* 5 */ "maaaaaaaam" + /* 6 */ "maaaaaaaam" + /* 7 */ "maaaaaaaam" + /* 8 */ "mmmmmmmmmm" // Level 1 /* z\x* */ /* * 0123456789 */ - /* 0 */ ".........." - /* 1 */ ".ddeddddd." - /* 2 */ ".dfghhgfd." - /* 3 */ ".dfhffhfd." - /* 4 */ ".dfhgghfd." - /* 5 */ ".dfhffhfd." - /* 6 */ ".dfghhgfd." - /* 7 */ ".dddddddd." + /* 0 */ "..bcd....." + /* 1 */ ".aaaaaaaa." + /* 2 */ ".aaaaaaaa." + /* 3 */ ".aaaaaaaa." + /* 4 */ ".aaaaaaaa." + /* 5 */ ".aaaaaaaa." + /* 6 */ ".aaaaaaaa." + /* 7 */ ".aaaaaaaa." /* 8 */ ".........." // Level 2 /* z\x* */ /* * 0123456789 */ /* 0 */ ".........." + /* 1 */ ".aaeaaaaa." + /* 2 */ ".afghhgfa." + /* 3 */ ".afhffhfa." + /* 4 */ ".afhgghfa." + /* 5 */ ".afhffhfa." + /* 6 */ ".afghhgfa." + /* 7 */ ".aaaaaaaa." + /* 8 */ ".........." + + // Level 3 + /* z\x* */ + /* * 0123456789 */ + /* 0 */ ".........." /* 1 */ ".iijii.ii." /* 2 */ ".i......i." /* 3 */ ".i......i." @@ -777,34 +857,34 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = /* 7 */ ".ii.ii.ii." /* 8 */ ".........." - // Level 3 + // Level 4 /* z\x* */ /* * 0123456789 */ /* 0 */ ".........." - /* 1 */ ".dddddddd." - /* 2 */ ".d..k...d." - /* 3 */ ".d......d." - /* 4 */ ".dl....nd." - /* 5 */ ".d......d." - /* 6 */ ".d......d." - /* 7 */ ".dddddddd." + /* 1 */ ".aaaaaaaa." + /* 2 */ ".a..k...a." + /* 3 */ ".a......a." + /* 4 */ ".al....na." + /* 5 */ ".a......a." + /* 6 */ ".a......a." + /* 7 */ ".aaaaaaaa." /* 8 */ ".........." - // Level 4 + // Level 5 /* z\x* */ /* * 0123456789 */ /* 0 */ "oppppppppp" - /* 1 */ "oddddddddq" - /* 2 */ "oddddddddq" - /* 3 */ "oddddddddq" - /* 4 */ "oddddddddq" - /* 5 */ "oddddddddq" - /* 6 */ "oddddddddq" - /* 7 */ "oddddddddq" + /* 1 */ "oaaaaaaaaq" + /* 2 */ "oaaaaaaaaq" + /* 3 */ "oaaaaaaaaq" + /* 4 */ "oaaaaaaaaq" + /* 5 */ "oaaaaaaaaq" + /* 6 */ "oaaaaaaaaq" + /* 7 */ "oaaaaaaaaq" /* 8 */ "rrrrrrrrrq", // Connectors: - "-1: 3, 0, 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 */ @@ -835,18 +915,18 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = // The data has been exported from the gallery Desert, area index 30, ID 171, created by Aloe_vera { // Size: - 11, 5, 9, // SizeX = 11, SizeY = 5, SizeZ = 9 + 11, 6, 9, // SizeX = 11, SizeY = 6, SizeZ = 9 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 10, 4, 8, // MaxX, MaxY, MaxZ + 10, 5, 8, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ - "a:128: 0\n" /* sandstonestairs */ - "b:128: 2\n" /* sandstonestairs */ - "c:128: 1\n" /* sandstonestairs */ - "d: 24: 0\n" /* sandstone */ + "a: 24: 0\n" /* sandstone */ + "b:128: 0\n" /* sandstonestairs */ + "c:128: 2\n" /* sandstonestairs */ + "d:128: 1\n" /* sandstonestairs */ "e: 64: 7\n" /* wooddoorblock */ "f:171: 0\n" /* carpet */ "g:171:15\n" /* carpet */ @@ -867,33 +947,46 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = // Level 0 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "..abc......" - /* 1 */ ".ddddddddd." - /* 2 */ ".ddddddddd." - /* 3 */ ".ddddddddd." - /* 4 */ ".ddddddddd." - /* 5 */ ".ddddddddd." - /* 6 */ ".ddddddddd." - /* 7 */ ".ddddddddd." - /* 8 */ "..........." + /* 0 */ "mmaaammmmmm" + /* 1 */ "maaaaaaaaam" + /* 2 */ "maaaaaaaaam" + /* 3 */ "maaaaaaaaam" + /* 4 */ "maaaaaaaaam" + /* 5 */ "maaaaaaaaam" + /* 6 */ "maaaaaaaaam" + /* 7 */ "maaaaaaaaam" + /* 8 */ "mmmmmmmmmmm" // Level 1 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "..........." - /* 1 */ ".ddedddddd." - /* 2 */ ".dffgggffd." - /* 3 */ ".dfghhhgfd." - /* 4 */ ".dfghfhgfd." - /* 5 */ ".dfghhhgfd." - /* 6 */ ".dffgggffd." - /* 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 */ ".aaeaaaaaa." + /* 2 */ ".affgggffa." + /* 3 */ ".afghhhgfa." + /* 4 */ ".afghfhgfa." + /* 5 */ ".afghhhgfa." + /* 6 */ ".affgggffa." + /* 7 */ ".aaaaaaaaa." + /* 8 */ "..........." + + // Level 3 + /* z\x* 1 */ + /* * 01234567890 */ + /* 0 */ "..........." /* 1 */ ".iijii.iii." /* 2 */ ".i.......i." /* 3 */ ".i.......i." @@ -903,34 +996,34 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = /* 7 */ ".ii.iii.ii." /* 8 */ "..........." - // Level 3 + // Level 4 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "..........." - /* 1 */ ".ddddddddd." - /* 2 */ ".d..k....d." - /* 3 */ ".d.......d." - /* 4 */ ".dl.....nd." - /* 5 */ ".d.......d." - /* 6 */ ".d...o...d." - /* 7 */ ".ddddddddd." + /* 1 */ ".aaaaaaaaa." + /* 2 */ ".a..k....a." + /* 3 */ ".a.......a." + /* 4 */ ".al.....na." + /* 5 */ ".a.......a." + /* 6 */ ".a...o...a." + /* 7 */ ".aaaaaaaaa." /* 8 */ "..........." - // Level 4 + // Level 5 /* z\x* 1 */ /* * 01234567890 */ /* 0 */ "pqqqqqqqqqq" - /* 1 */ "pdddddddddr" - /* 2 */ "pdddddddddr" - /* 3 */ "pdddddddddr" - /* 4 */ "pdddddddddr" - /* 5 */ "pdddddddddr" - /* 6 */ "pdddddddddr" - /* 7 */ "pdddddddddr" + /* 1 */ "paaaaaaaaar" + /* 2 */ "paaaaaaaaar" + /* 3 */ "paaaaaaaaar" + /* 4 */ "paaaaaaaaar" + /* 5 */ "paaaaaaaaar" + /* 6 */ "paaaaaaaaar" + /* 7 */ "paaaaaaaaar" /* 8 */ "ssssssssssr", // Connectors: - "-1: 3, 0, 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 */ diff --git a/src/Generating/RainbowRoadsGen.cpp b/src/Generating/RainbowRoadsGen.cpp index d1e1f4bda..3b0ff7df8 100644 --- a/src/Generating/RainbowRoadsGen.cpp +++ b/src/Generating/RainbowRoadsGen.cpp @@ -29,11 +29,12 @@ class cRainbowRoadsGen::cRainbowRoads : public: cRainbowRoads( int a_Seed, + int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ, int a_MaxDepth, int a_MaxSize ) : - super(a_OriginX, a_OriginZ), + super(a_GridX, a_GridZ, a_OriginX, a_OriginZ), m_Seed(a_Seed), m_Noise(a_Seed), m_MaxSize(a_MaxSize), @@ -92,8 +93,8 @@ protected: -cRainbowRoadsGen::cRainbowRoadsGen(int a_Seed, int a_GridSize, int a_MaxDepth, int a_MaxSize) : - super(a_Seed, a_GridSize, a_GridSize, a_MaxSize, a_MaxSize, 100), +cRainbowRoadsGen::cRainbowRoadsGen(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 + 9000), m_MaxDepth(a_MaxDepth), m_MaxSize(a_MaxSize) @@ -104,10 +105,10 @@ cRainbowRoadsGen::cRainbowRoadsGen(int a_Seed, int a_GridSize, int a_MaxDepth, i -cGridStructGen::cStructurePtr cRainbowRoadsGen::CreateStructure(int a_OriginX, int a_OriginZ) +cGridStructGen::cStructurePtr cRainbowRoadsGen::CreateStructure(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ) { // Create a base based on the chosen prefabs: - return cStructurePtr(new cRainbowRoads(m_Seed, a_OriginX, a_OriginZ, m_MaxDepth, m_MaxSize)); + return cStructurePtr(new cRainbowRoads(m_Seed, a_GridX, a_GridZ, a_OriginX, a_OriginZ, m_MaxDepth, m_MaxSize)); } diff --git a/src/Generating/RainbowRoadsGen.h b/src/Generating/RainbowRoadsGen.h index acbd5abf9..5813e1d14 100644 --- a/src/Generating/RainbowRoadsGen.h +++ b/src/Generating/RainbowRoadsGen.h @@ -22,7 +22,7 @@ class cRainbowRoadsGen : typedef cGridStructGen super; public: - cRainbowRoadsGen(int a_Seed, int a_GridSize, int a_MaxDepth, int a_MaxSize); + cRainbowRoadsGen(int a_Seed, int a_GridSize, int a_MaxOffset, int a_MaxDepth, int a_MaxSize); protected: class cRainbowRoads; // fwd: RainbowRoadsGen.cpp @@ -39,7 +39,7 @@ protected: // cGridStructGen overrides: - virtual cStructurePtr CreateStructure(int a_OriginX, int a_OriginZ) override; + virtual cStructurePtr CreateStructure(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ) override; } ; diff --git a/src/Generating/Ravines.cpp b/src/Generating/Ravines.cpp index 2722e4ca3..24f2cc3ab 100644 --- a/src/Generating/Ravines.cpp +++ b/src/Generating/Ravines.cpp @@ -61,7 +61,7 @@ class cStructGenRavines::cRavine : public: - cRavine(int a_BlockX, int a_BlockZ, int a_Size, cNoise & a_Noise); + cRavine(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ, int a_Size, cNoise & a_Noise); #ifdef _DEBUG /// Exports itself as a SVG line definition @@ -81,7 +81,7 @@ protected: // cStructGenRavines: cStructGenRavines::cStructGenRavines(int a_Seed, int a_Size) : - super(a_Seed, a_Size, a_Size, a_Size * 2, a_Size * 2, 100), + super(a_Seed, a_Size, a_Size, a_Size, a_Size, a_Size * 2, a_Size * 2, 100), m_Noise(a_Seed), m_Size(a_Size) { @@ -91,9 +91,9 @@ cStructGenRavines::cStructGenRavines(int a_Seed, int a_Size) : -cGridStructGen::cStructurePtr cStructGenRavines::CreateStructure(int a_OriginX, int a_OriginZ) +cGridStructGen::cStructurePtr cStructGenRavines::CreateStructure(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ) { - return cStructurePtr(new cRavine(a_OriginX, a_OriginZ, m_Size, m_Noise)); + return cStructurePtr(new cRavine(a_GridX, a_GridZ, a_OriginX, a_OriginZ, m_Size, m_Noise)); } @@ -104,8 +104,8 @@ cGridStructGen::cStructurePtr cStructGenRavines::CreateStructure(int a_OriginX, /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // cStructGenRavines::cRavine -cStructGenRavines::cRavine::cRavine(int a_OriginX, int a_OriginZ, int a_Size, cNoise & a_Noise) : - super(a_OriginX, a_OriginZ) +cStructGenRavines::cRavine::cRavine(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ, int a_Size, cNoise & a_Noise) : + super(a_GridX, a_GridZ, a_OriginX, a_OriginZ) { // Calculate the ravine shape-defining points: GenerateBaseDefPoints(a_OriginX, a_OriginZ, a_Size, a_Noise); diff --git a/src/Generating/Ravines.h b/src/Generating/Ravines.h index 30b47e9ec..3e41c5ce6 100644 --- a/src/Generating/Ravines.h +++ b/src/Generating/Ravines.h @@ -32,7 +32,7 @@ protected: // cGridStructGen overrides: - virtual cStructurePtr CreateStructure(int a_OriginX, int a_OriginZ) override; + virtual cStructurePtr CreateStructure(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ) override; } ; diff --git a/src/Generating/UnderwaterBaseGen.cpp b/src/Generating/UnderwaterBaseGen.cpp index ff6f17dde..d3abae9b7 100644 --- a/src/Generating/UnderwaterBaseGen.cpp +++ b/src/Generating/UnderwaterBaseGen.cpp @@ -29,11 +29,12 @@ class cUnderwaterBaseGen::cUnderwaterBase : public: cUnderwaterBase( int a_Seed, + int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ, int a_MaxDepth, int a_MaxSize ) : - super(a_OriginX, a_OriginZ), + super(a_GridX, a_GridZ, a_OriginX, a_OriginZ), m_Seed(a_Seed), m_Noise(a_Seed), m_MaxSize(a_MaxSize), @@ -92,8 +93,8 @@ protected: -cUnderwaterBaseGen::cUnderwaterBaseGen(int a_Seed, int a_GridSize, int a_MaxDepth, int a_MaxSize, cBiomeGen & a_BiomeGen) : - super(a_Seed, a_GridSize, a_GridSize, a_MaxSize, a_MaxSize, 100), +cUnderwaterBaseGen::cUnderwaterBaseGen(int a_Seed, int a_GridSize, int a_MaxOffset, int a_MaxDepth, int a_MaxSize, cBiomeGen & a_BiomeGen) : + 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), @@ -105,7 +106,7 @@ cUnderwaterBaseGen::cUnderwaterBaseGen(int a_Seed, int a_GridSize, int a_MaxDept -cGridStructGen::cStructurePtr cUnderwaterBaseGen::CreateStructure(int a_OriginX, int a_OriginZ) +cGridStructGen::cStructurePtr cUnderwaterBaseGen::CreateStructure(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ) { // Generate the biomes for the chunk surrounding the origin: int ChunkX, ChunkZ; @@ -134,7 +135,7 @@ cGridStructGen::cStructurePtr cUnderwaterBaseGen::CreateStructure(int a_OriginX, } // for i - Biomes[] // Create a base based on the chosen prefabs: - return cStructurePtr(new cUnderwaterBase(m_Seed, a_OriginX, a_OriginZ, m_MaxDepth, m_MaxSize)); + return cStructurePtr(new cUnderwaterBase(m_Seed, a_GridX, a_GridZ, a_OriginX, a_OriginZ, m_MaxDepth, m_MaxSize)); } diff --git a/src/Generating/UnderwaterBaseGen.h b/src/Generating/UnderwaterBaseGen.h index 0aefbb4c7..d6267b602 100644 --- a/src/Generating/UnderwaterBaseGen.h +++ b/src/Generating/UnderwaterBaseGen.h @@ -22,7 +22,7 @@ class cUnderwaterBaseGen : typedef cGridStructGen super; public: - cUnderwaterBaseGen(int a_Seed, int a_GridSize, int a_MaxDepth, int a_MaxSize, cBiomeGen & a_BiomeGen); + cUnderwaterBaseGen(int a_Seed, int a_GridSize, int a_MaxOffset, int a_MaxDepth, int a_MaxSize, cBiomeGen & a_BiomeGen); protected: class cUnderwaterBase; // fwd: UnderwaterBaseGen.cpp @@ -42,7 +42,7 @@ protected: // cGridStructGen overrides: - virtual cStructurePtr CreateStructure(int a_OriginX, int a_OriginZ) override; + virtual cStructurePtr CreateStructure(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ) override; } ; diff --git a/src/Generating/VillageGen.cpp b/src/Generating/VillageGen.cpp index 9917141ed..2b7ecc837 100644 --- a/src/Generating/VillageGen.cpp +++ b/src/Generating/VillageGen.cpp @@ -110,6 +110,7 @@ class cVillageGen::cVillage : public: cVillage( int a_Seed, + int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ, int a_MaxRoadDepth, int a_MaxSize, @@ -119,7 +120,7 @@ public: BLOCKTYPE a_RoadBlock, BLOCKTYPE a_WaterRoadBlock ) : - super(a_OriginX, a_OriginZ), + super(a_GridX, a_GridZ, a_OriginX, a_OriginZ), m_Seed(a_Seed), m_Noise(a_Seed), m_MaxSize(a_MaxSize), @@ -358,8 +359,8 @@ static cVillagePiecePool * g_PlainsVillagePools[] = -cVillageGen::cVillageGen(int a_Seed, int a_GridSize, int a_MaxDepth, int a_MaxSize, int a_MinDensity, int a_MaxDensity, cBiomeGen & a_BiomeGen, cTerrainHeightGen & a_HeightGen) : - super(a_Seed, a_GridSize, a_GridSize, a_MaxSize, a_MaxSize, 100), +cVillageGen::cVillageGen(int a_Seed, int a_GridSize, int a_MaxOffset, int a_MaxDepth, int a_MaxSize, int a_MinDensity, int a_MaxDensity, cBiomeGen & a_BiomeGen, cTerrainHeightGen & a_HeightGen) : + 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), @@ -374,7 +375,7 @@ cVillageGen::cVillageGen(int a_Seed, int a_GridSize, int a_MaxDepth, int a_MaxSi -cGridStructGen::cStructurePtr cVillageGen::CreateStructure(int a_OriginX, int a_OriginZ) +cGridStructGen::cStructurePtr cVillageGen::CreateStructure(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ) { // Generate the biomes for the chunk surrounding the origin: int ChunkX, ChunkZ; @@ -435,7 +436,7 @@ cGridStructGen::cStructurePtr cVillageGen::CreateStructure(int a_OriginX, int a_ { return cStructurePtr(); } - return cStructurePtr(new cVillage(m_Seed, a_OriginX, a_OriginZ, m_MaxDepth, m_MaxSize, Density, *VillagePrefabs, m_HeightGen, RoadBlock, WaterRoadBlock)); + return cStructurePtr(new cVillage(m_Seed, a_GridX, a_GridZ, a_OriginX, a_OriginZ, m_MaxDepth, m_MaxSize, Density, *VillagePrefabs, m_HeightGen, RoadBlock, WaterRoadBlock)); } diff --git a/src/Generating/VillageGen.h b/src/Generating/VillageGen.h index 5faaae8a6..694ea2358 100644 --- a/src/Generating/VillageGen.h +++ b/src/Generating/VillageGen.h @@ -21,7 +21,7 @@ class cVillageGen : { typedef cGridStructGen super; public: - cVillageGen(int a_Seed, int a_GridSize, int a_MaxDepth, int a_MaxSize, int a_MinDensity, int a_MaxDensity, cBiomeGen & a_BiomeGen, cTerrainHeightGen & a_HeightGen); + cVillageGen(int a_Seed, int a_GridSize, int a_MaxOffset, int a_MaxDepth, int a_MaxSize, int a_MinDensity, int a_MaxDensity, cBiomeGen & a_BiomeGen, cTerrainHeightGen & a_HeightGen); protected: class cVillage; // fwd: VillageGen.cpp @@ -49,7 +49,7 @@ protected: // cGridStructGen overrides: - virtual cStructurePtr CreateStructure(int a_OriginX, int a_OriginZ) override; + virtual cStructurePtr CreateStructure(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ) override; } ; -- cgit v1.2.3 From e8143de01bff31f9e153949d7ab5b0df82629541 Mon Sep 17 00:00:00 2001 From: archshift Date: Thu, 19 Jun 2014 01:49:56 -0700 Subject: Nullify deleted pointers. --- src/Generating/BioGen.cpp | 2 ++ src/Generating/CompoGen.cpp | 2 ++ src/Generating/HeiGen.cpp | 2 ++ 3 files changed, 6 insertions(+) (limited to 'src/Generating') diff --git a/src/Generating/BioGen.cpp b/src/Generating/BioGen.cpp index 47ba080c6..3e3a034b2 100644 --- a/src/Generating/BioGen.cpp +++ b/src/Generating/BioGen.cpp @@ -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; } diff --git a/src/Generating/CompoGen.cpp b/src/Generating/CompoGen.cpp index 688d19c40..2da285d72 100644 --- a/src/Generating/CompoGen.cpp +++ b/src/Generating/CompoGen.cpp @@ -672,7 +672,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/HeiGen.cpp b/src/Generating/HeiGen.cpp index 25ac912fd..202f7db7e 100644 --- a/src/Generating/HeiGen.cpp +++ b/src/Generating/HeiGen.cpp @@ -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; } -- cgit v1.2.3 From 9db9445e9fec2ce0ab52434e50cc21f30d4ef313 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Fri, 20 Jun 2014 17:10:18 +0200 Subject: Optimized Voronoi calculation. Fixes #818. --- src/Generating/BioGen.cpp | 21 +++++++++++++-------- src/Generating/BioGen.h | 7 ++++++- 2 files changed, 19 insertions(+), 9 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/BioGen.cpp b/src/Generating/BioGen.cpp index 3e3a034b2..a17555f37 100644 --- a/src/Generating/BioGen.cpp +++ b/src/Generating/BioGen.cpp @@ -747,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) { } @@ -769,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); @@ -788,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: -- cgit v1.2.3 From b4ba86d75897900b63186fa6a6420619f8cdd897 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Fri, 20 Jun 2014 22:45:08 +0200 Subject: Updated all prefabs to current Gallery content. --- src/Generating/Prefabs/SandVillagePrefabs.cpp | 1472 ++++++++++++---------- src/Generating/Prefabs/UnderwaterBasePrefabs.cpp | 2 +- 2 files changed, 824 insertions(+), 650 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/Prefabs/SandVillagePrefabs.cpp b/src/Generating/Prefabs/SandVillagePrefabs.cpp index a062f8cd4..72881a678 100644 --- a/src/Generating/Prefabs/SandVillagePrefabs.cpp +++ b/src/Generating/Prefabs/SandVillagePrefabs.cpp @@ -20,11 +20,11 @@ const cPrefab::sDef g_SandVillagePrefabs[] = // 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 */ @@ -94,18 +107,18 @@ const cPrefab::sDef g_SandVillagePrefabs[] = // 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 */ @@ -217,18 +241,18 @@ const cPrefab::sDef g_SandVillagePrefabs[] = // 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 */ @@ -363,18 +400,18 @@ const cPrefab::sDef g_SandVillagePrefabs[] = // 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 */ @@ -484,18 +532,18 @@ const cPrefab::sDef g_SandVillagePrefabs[] = // 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 */ @@ -630,18 +691,18 @@ const cPrefab::sDef g_SandVillagePrefabs[] = // 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 */ @@ -776,18 +850,18 @@ const cPrefab::sDef g_SandVillagePrefabs[] = // 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 */ @@ -922,18 +1009,18 @@ const cPrefab::sDef g_SandVillagePrefabs[] = // 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 */ @@ -1036,18 +1133,18 @@ const cPrefab::sDef g_SandVillagePrefabs[] = // 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 */ @@ -1151,18 +1258,18 @@ const cPrefab::sDef g_SandVillagePrefabs[] = // 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 */ @@ -1290,147 +1409,164 @@ const cPrefab::sDef g_SandVillagePrefabs[] = // 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 */ @@ -1461,18 +1597,18 @@ const cPrefab::sDef g_SandVillagePrefabs[] = // 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 */ @@ -1616,11 +1768,11 @@ const cPrefab::sDef g_SandVillagePrefabs[] = // 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 */ @@ -1686,11 +1849,11 @@ const cPrefab::sDef g_SandVillagePrefabs[] = // 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 */ @@ -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 */ ".......", diff --git a/src/Generating/Prefabs/UnderwaterBasePrefabs.cpp b/src/Generating/Prefabs/UnderwaterBasePrefabs.cpp index 39748a223..691d8aa9d 100644 --- a/src/Generating/Prefabs/UnderwaterBasePrefabs.cpp +++ b/src/Generating/Prefabs/UnderwaterBasePrefabs.cpp @@ -366,7 +366,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] = true, // DefaultWeight: - 100, + 200, // DepthWeight: "", -- cgit v1.2.3 From 0e8c4ca5ab14c1f0b8f3bf8c1f4d96e3109860d9 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Sat, 21 Jun 2014 15:02:40 +0200 Subject: Updated prefabs to the latest Gallery content. --- src/Generating/Prefabs/AlchemistVillagePrefabs.cpp | 3698 +++++++++++--------- src/Generating/Prefabs/JapaneseVillagePrefabs.cpp | 384 +- src/Generating/Prefabs/PlainsVillagePrefabs.cpp | 431 +-- .../Prefabs/SandFlatRoofVillagePrefabs.cpp | 180 +- 4 files changed, 2644 insertions(+), 2049 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp b/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp index eb0d30fdf..5cb864d53 100644 --- a/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp +++ b/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp @@ -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:12\n" /* trapdoor */ + "s:128: 5\n" /* sandstonestairs */ + "t:107: 0\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 */ "...........", @@ -267,161 +269,175 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = // 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: 0\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: 5\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 */ @@ -452,127 +468,146 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = // 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 */ @@ -603,180 +638,196 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = // 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 */ @@ -876,149 +927,162 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = // 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 */ @@ -1049,86 +1113,97 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = // 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 */ @@ -1159,107 +1234,123 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = // 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 */ @@ -1290,85 +1381,96 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = // 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 */ @@ -1399,112 +1501,127 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = // 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 */ @@ -1535,97 +1652,110 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = // 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 */ @@ -1656,102 +1786,117 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = // 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 */ @@ -1782,107 +1927,122 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = // 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 */ @@ -1909,120 +2069,263 @@ 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: + false, + }, // 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 */ @@ -2053,141 +2356,156 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = // 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: 12: 0\n" /* sand */ + "e: 13: 0\n" /* gravel */ + "f: 5: 0\n" /* wood */ + "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 */ "acccccccccadddd" + /* 3 */ "cccccccccccdddd" + /* 4 */ "cccccccccccdddd" + /* 5 */ "cccccccccccdddd" + /* 6 */ "cccccccccccdddd" + /* 7 */ "cccccccccccdddd" + /* 8 */ "acccccccccadddd" // 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 */ "mmmaeeeammmmmmm" + /* 1 */ "mmmmeeemmmmmmmm" + /* 2 */ "accccfccccadddd" + /* 3 */ "cfffffffffcdddd" + /* 4 */ "cfffffffffcdddd" + /* 5 */ "cffffffffffdddd" + /* 6 */ "cfffffffffcdddd" + /* 7 */ "cfffffffffcdddd" + /* 8 */ "acccccccccadddd" // 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 */ @@ -2218,130 +2536,145 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = // 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 */ @@ -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 */ @@ -2630,107 +2963,122 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = // 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 */ @@ -2761,162 +3109,176 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = // 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 */ @@ -2953,201 +3315,245 @@ const cPrefab::sDef g_AlchemistVillageStartingPrefabs[] = // 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/JapaneseVillagePrefabs.cpp b/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp index 5ec222f84..79f7a5272 100644 --- a/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp +++ b/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp @@ -129,6 +129,176 @@ 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, 7, 13, // SizeX = 11, SizeY = 7, SizeZ = 13 + + // Hitbox (relative to bounding box): + 0, 0, 0, // MinX, MinY, MinZ + 10, 6, 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 */ + "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.", + + // 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: + false, + }, // Farm + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Forge: // The data has been exported from the gallery Plains, area index 79, ID 145, created by Aloe_vera @@ -2025,12 +2195,12 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = // Level 1 /* z\x* 0123456 */ - /* 0 */ "bbbbbbb" - /* 1 */ "bbbbbbb" - /* 2 */ "bbbbbbb" - /* 3 */ "bbbabbb" - /* 4 */ "bbbbbbb" - /* 5 */ "bbbbbbb" + /* 0 */ "bmmmmmm" + /* 1 */ "bmmmmmm" + /* 2 */ "bmmmmmm" + /* 3 */ "bmmmmmm" + /* 4 */ "bmmmmmm" + /* 5 */ "bmmmmmm" /* 6 */ "bbbbbbb" // Level 2 @@ -3005,159 +3175,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/PlainsVillagePrefabs.cpp b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp index f5c5b7a20..9e5e06769 100644 --- a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp +++ b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp @@ -362,29 +362,29 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // 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 */ @@ -509,12 +509,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 */ @@ -2544,7 +2544,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = true, // DefaultWeight: - 100, + 20, // DepthWeight: "", @@ -2746,8 +2746,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 */ @@ -3000,9 +3000,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 */ @@ -3141,31 +3141,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 +3206,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 +3216,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- */, @@ -3626,7 +3627,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // Level 0 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "aaabbbbaaaa" + /* 0 */ "aaaabbbaaaa" /* 1 */ "abbbbbbbbba" /* 2 */ "abbbbbbbbba" /* 3 */ "abbbbbbbbba" @@ -4509,10 +4510,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 +4525,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 +4540,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 +4555,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 +4570,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 +4585,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- */, @@ -4837,9 +4838,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 +4848,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 +4864,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 +4880,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 +4896,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 +4912,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 +4928,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 +4944,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 +4960,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 +4976,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 +4992,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 +5008,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 +5024,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 +5040,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 +5056,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 +5072,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 +5088,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+ */, @@ -5472,13 +5473,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 +5786,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 +5836,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 */ ".......", diff --git a/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.cpp b/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.cpp index eb01cf59e..44e947952 100644 --- a/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.cpp +++ b/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.cpp @@ -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 */ @@ -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 */ @@ -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 */ @@ -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 */ @@ -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 */ @@ -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 */ @@ -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 */ @@ -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 */ @@ -1054,18 +1054,18 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = // 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 */ @@ -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 */ @@ -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 */ -- cgit v1.2.3 From 9a57c590cd99d7ff9871849fb8ce3017570c1c2a Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Sat, 21 Jun 2014 20:17:17 +0200 Subject: Fixed a caching bug in GridStructGen. The elements in cache were queried wrong, so sometimes they wouldn't be used even if they were the ones to use. --- src/Generating/GridStructGen.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/GridStructGen.cpp b/src/Generating/GridStructGen.cpp index 2931df3eb..95f8c38bc 100644 --- a/src/Generating/GridStructGen.cpp +++ b/src/Generating/GridStructGen.cpp @@ -88,8 +88,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 -- cgit v1.2.3 From 0a95d04ab38b81f87d4fa421601d25f37df1f6a1 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Sat, 21 Jun 2014 20:19:44 +0200 Subject: Added a TestRails generator. This is for debugging purposes only. --- src/Generating/ComposableGenerator.cpp | 5 + src/Generating/Prefabs/TestRailsPrefabs.cpp | 484 ++++++++++++++++++++++++++++ src/Generating/Prefabs/TestRailsPrefabs.h | 15 + src/Generating/TestRailsGen.cpp | 116 +++++++ src/Generating/TestRailsGen.h | 47 +++ 5 files changed, 667 insertions(+) create mode 100644 src/Generating/Prefabs/TestRailsPrefabs.cpp create mode 100644 src/Generating/Prefabs/TestRailsPrefabs.h create mode 100644 src/Generating/TestRailsGen.cpp create mode 100644 src/Generating/TestRailsGen.h (limited to 'src/Generating') diff --git a/src/Generating/ComposableGenerator.cpp b/src/Generating/ComposableGenerator.cpp index 22941dcbe..7b6234161 100644 --- a/src/Generating/ComposableGenerator.cpp +++ b/src/Generating/ComposableGenerator.cpp @@ -26,6 +26,7 @@ #include "POCPieceGenerator.h" #include "RainbowRoadsGen.h" #include "Ravines.h" +#include "TestRailsGen.h" #include "UnderwaterBaseGen.h" #include "VillageGen.h" @@ -414,6 +415,10 @@ void cComposableGenerator::InitFinishGens(cIniFile & a_IniFile) { m_FinishGens.push_back(new cFinishGenSprinkleFoliage(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/Prefabs/TestRailsPrefabs.cpp b/src/Generating/Prefabs/TestRailsPrefabs.cpp new file mode 100644 index 000000000..3444cb1fa --- /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/TestRailsGen.cpp b/src/Generating/TestRailsGen.cpp new file mode 100644 index 000000000..c40c1a9b6 --- /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; +} ; + + + + -- cgit v1.2.3 From 82dcc0b4db030f2a463a990652e0d75b67bdf835 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Sun, 22 Jun 2014 21:30:06 +0200 Subject: Prefabs don't draw into chunk if they don't intersect. --- src/Generating/Prefab.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/Generating') diff --git a/src/Generating/Prefab.cpp b/src/Generating/Prefab.cpp index 2ab1455b9..7d876909a 100644 --- a/src/Generating/Prefab.cpp +++ b/src/Generating/Prefab.cpp @@ -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) -- cgit v1.2.3 From 25a0264cc46d97f52bd836280fa5d2908846ac02 Mon Sep 17 00:00:00 2001 From: worktycho Date: Thu, 26 Jun 2014 19:04:56 +0100 Subject: Check GridSize for 0 Fixes CID 68226 and CID 66437 --- src/Generating/GridStructGen.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/Generating') diff --git a/src/Generating/GridStructGen.cpp b/src/Generating/GridStructGen.cpp index 95f8c38bc..a3578de6f 100644 --- a/src/Generating/GridStructGen.cpp +++ b/src/Generating/GridStructGen.cpp @@ -53,6 +53,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) { -- cgit v1.2.3 From f2419afac5e138d64cbe968aad5a0838809f997c Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Tue, 8 Jul 2014 23:11:06 +0200 Subject: Updated generator prefabs to current Gallery contents. --- src/Generating/Prefabs/AlchemistVillagePrefabs.cpp | 10 +++++----- src/Generating/Prefabs/JapaneseVillagePrefabs.cpp | 2 +- src/Generating/Prefabs/PlainsVillagePrefabs.cpp | 3 ++- 3 files changed, 8 insertions(+), 7 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp b/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp index 5cb864d53..976f8490e 100644 --- a/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp +++ b/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp @@ -58,9 +58,9 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = "o: 50: 4\n" /* torch */ "p: 13: 0\n" /* gravel */ "q: 5: 0\n" /* wood */ - "r: 96:12\n" /* trapdoor */ + "r: 96: 8\n" /* trapdoor */ "s:128: 5\n" /* sandstonestairs */ - "t:107: 0\n" /* fencegate */ + "t:107: 2\n" /* fencegate */ "u:128: 4\n" /* sandstonestairs */ "v:134: 3\n" /* 134 */ "w: 85: 0\n" /* fence */ @@ -288,7 +288,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = "d: 13: 0\n" /* gravel */ "e: 5: 0\n" /* wood */ "f:128: 5\n" /* sandstonestairs */ - "g:107: 0\n" /* fencegate */ + "g:107: 2\n" /* fencegate */ "h:128: 4\n" /* sandstonestairs */ "i:134: 1\n" /* 134 */ "j:134: 3\n" /* 134 */ @@ -298,7 +298,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = "n:134: 5\n" /* 134 */ "o:134: 7\n" /* 134 */ "p:134: 4\n" /* 134 */ - "q:107: 5\n" /* fencegate */ + "q:107: 1\n" /* fencegate */ "r: 64: 1\n" /* wooddoorblock */ "s: 65: 3\n" /* ladder */ "t: 50: 3\n" /* torch */ @@ -2195,7 +2195,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = 0, // MoveToGround: - false, + true, }, // LittleHouse8 diff --git a/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp b/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp index 79f7a5272..d22153d87 100644 --- a/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp +++ b/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp @@ -294,7 +294,7 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = 0, // MoveToGround: - false, + true, }, // Farm diff --git a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp index 9e5e06769..bba493bf1 100644 --- a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp +++ b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp @@ -356,6 +356,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = "e: 8: 0\n" /* water */ "f: 50: 5\n" /* torch */ "g: 59: 7\n" /* crops */ + "h:111: 0\n" /* lilypad */ "m: 19: 0\n" /* sponge */, // Block data: @@ -407,7 +408,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 3 */ ".g.......gg.gg." /* 4 */ ".gg..g...gg.gg." /* 5 */ ".gg..g...gg.gg." - /* 6 */ "..g..g...gg.gg." + /* 6 */ "..g..g...gghgg." /* 7 */ "..g.g....gg.gg." /* 8 */ "f.....f.f.....f" -- cgit v1.2.3 From a6d30a72544a626680eec6facf5b7a67ebb8fda5 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Thu, 10 Jul 2014 12:20:55 +0200 Subject: Removed lilypad from plains village prefabs. --- src/Generating/Prefabs/PlainsVillagePrefabs.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp index bba493bf1..bad8dae74 100644 --- a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp +++ b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp @@ -356,7 +356,8 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = "e: 8: 0\n" /* water */ "f: 50: 5\n" /* torch */ "g: 59: 7\n" /* crops */ - "h:111: 0\n" /* lilypad */ + "h: 59: 0\n" /* crops */ + "i: 59: 1\n" /* crops */ "m: 19: 0\n" /* sponge */, // Block data: @@ -404,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...gghgg." - /* 7 */ "..g.g....gg.gg." + /* 2 */ ".gh.hg...gg.gg." + /* 3 */ ".gh.ih...gg.gg." + /* 4 */ ".gg.hg...gg.gg." + /* 5 */ ".gg.hg...gg.gg." + /* 6 */ ".ig.hg...gg.gg." + /* 7 */ ".hg.gh...gg.gg." /* 8 */ "f.....f.f.....f" // Level 4 -- cgit v1.2.3 From bfc485bfe2093dde665bc17588ea53218f964312 Mon Sep 17 00:00:00 2001 From: worktycho Date: Sun, 13 Jul 2014 15:05:54 +0100 Subject: Fix CopyPaste error that ment a_MaxRelX wasdn't checked Fixes CID 70464 --- src/Generating/ChunkDesc.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/Generating') diff --git a/src/Generating/ChunkDesc.cpp b/src/Generating/ChunkDesc.cpp index 7711723fc..570332615 100644 --- a/src/Generating/ChunkDesc.cpp +++ b/src/Generating/ChunkDesc.cpp @@ -290,7 +290,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; -- cgit v1.2.3 From 64697f0cabeeadf1d50717892f0815d8309f8b8a Mon Sep 17 00:00:00 2001 From: worktycho Date: Sun, 13 Jul 2014 15:29:43 +0100 Subject: Another COpyPaste Error Fixes CID 70461 --- src/Generating/ChunkDesc.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/Generating') diff --git a/src/Generating/ChunkDesc.cpp b/src/Generating/ChunkDesc.cpp index 570332615..c63ca6689 100644 --- a/src/Generating/ChunkDesc.cpp +++ b/src/Generating/ChunkDesc.cpp @@ -332,7 +332,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; -- cgit v1.2.3 From 132b367316b2723ef573476a9fb78bcba6f09294 Mon Sep 17 00:00:00 2001 From: worktycho Date: Sun, 13 Jul 2014 15:32:44 +0100 Subject: CopyPaste Error Fixes CID 70460. --- src/Generating/ChunkDesc.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/Generating') diff --git a/src/Generating/ChunkDesc.cpp b/src/Generating/ChunkDesc.cpp index c63ca6689..e4b305022 100644 --- a/src/Generating/ChunkDesc.cpp +++ b/src/Generating/ChunkDesc.cpp @@ -311,7 +311,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; -- cgit v1.2.3 From 7195c7dfe2d0cc927c2a065662eba9be99817f70 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Tue, 15 Jul 2014 08:28:10 +0200 Subject: Added missing member initialization to cGridStructGen. Fixes CID 68228. --- src/Generating/GridStructGen.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src/Generating') diff --git a/src/Generating/GridStructGen.cpp b/src/Generating/GridStructGen.cpp index a3578de6f..fd1d5e49f 100644 --- a/src/Generating/GridStructGen.cpp +++ b/src/Generating/GridStructGen.cpp @@ -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), -- cgit v1.2.3 From 2423fbf2efa39e28cc348acc11b9269e573dcdef Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Thu, 17 Jul 2014 22:15:34 +0200 Subject: Normalized comments. This was mostly done automatically and then visually inspected for obvious errors. All //-style comments should have a 2-space separation from the code, and 1 space after the comment sign. --- src/Generating/BioGen.cpp | 18 +++--- src/Generating/Caves.cpp | 10 +-- src/Generating/ChunkGenerator.cpp | 4 +- src/Generating/CompoGen.cpp | 12 ++-- src/Generating/ComposableGenerator.cpp | 4 +- src/Generating/DistortedHeightmap.cpp | 10 +-- src/Generating/EndGen.cpp | 2 +- src/Generating/FinishGen.cpp | 22 +++---- src/Generating/GridStructGen.cpp | 2 +- src/Generating/HeiGen.cpp | 14 ++--- src/Generating/MineShafts.cpp | 14 ++--- src/Generating/NetherFortGen.cpp | 6 +- src/Generating/Noise3DGenerator.cpp | 4 +- src/Generating/POCPieceGenerator.cpp | 2 +- src/Generating/PieceGenerator.cpp | 16 ++--- src/Generating/Prefabs/AlchemistVillagePrefabs.cpp | 40 ++++++------ src/Generating/Prefabs/JapaneseVillagePrefabs.cpp | 38 ++++++------ src/Generating/Prefabs/NetherFortPrefabs.cpp | 68 ++++++++++---------- src/Generating/Prefabs/PlainsVillagePrefabs.cpp | 72 +++++++++++----------- src/Generating/Prefabs/RainbowRoadPrefabs.cpp | 24 ++++---- .../Prefabs/SandFlatRoofVillagePrefabs.cpp | 24 ++++---- src/Generating/Prefabs/SandVillagePrefabs.cpp | 32 +++++----- src/Generating/Prefabs/TestRailsPrefabs.cpp | 10 +-- src/Generating/Prefabs/UnderwaterBasePrefabs.cpp | 28 ++++----- src/Generating/RainbowRoadsGen.cpp | 4 +- src/Generating/Ravines.cpp | 4 +- src/Generating/StructGen.cpp | 12 ++-- src/Generating/TestRailsGen.cpp | 4 +- src/Generating/Trees.cpp | 10 +-- src/Generating/UnderwaterBaseGen.cpp | 4 +- src/Generating/VillageGen.cpp | 2 +- 31 files changed, 258 insertions(+), 258 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/BioGen.cpp b/src/Generating/BioGen.cpp index a17555f37..d314fc13e 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) @@ -108,7 +108,7 @@ void cBioGenConstant::InitializeBiomeGen(cIniFile & a_IniFile) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cBioGenCache: cBioGenCache::cBioGenCache(cBiomeGen * a_BioGenToCache, int a_CacheSize) : @@ -209,7 +209,7 @@ void cBioGenCache::InitializeBiomeGen(cIniFile & a_IniFile) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cBiomeGenList: void cBiomeGenList::InitializeBiomes(const AString & a_Biomes) @@ -290,7 +290,7 @@ void cBiomeGenList::InitializeBiomes(const AString & a_Biomes) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cBioGenCheckerboard: void cBioGenCheckerboard::GenBiomes(int a_ChunkX, int a_ChunkZ, cChunkDef::BiomeMap & a_BiomeMap) @@ -324,7 +324,7 @@ void cBioGenCheckerboard::InitializeBiomeGen(cIniFile & a_IniFile) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cBioGenVoronoi : void cBioGenVoronoi::GenBiomes(int a_ChunkX, int a_ChunkZ, cChunkDef::BiomeMap & a_BiomeMap) @@ -357,7 +357,7 @@ void cBioGenVoronoi::InitializeBiomeGen(cIniFile & a_IniFile) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cBioGenDistortedVoronoi: void cBioGenDistortedVoronoi::GenBiomes(int a_ChunkX, int a_ChunkZ, cChunkDef::BiomeMap & a_BiomeMap) @@ -418,7 +418,7 @@ void cBioGenDistortedVoronoi::Distort(int a_BlockX, int a_BlockZ, int & a_Distor -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cBioGenMultiStepMap : cBioGenMultiStepMap::cBioGenMultiStepMap(int a_Seed) : @@ -739,7 +739,7 @@ void cBioGenMultiStepMap::FreezeWaterBiomes(cChunkDef::BiomeMap & a_BiomeMap, co -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cBioGenTwoLevel: cBioGenTwoLevel::cBioGenTwoLevel(int a_Seed) : diff --git a/src/Generating/Caves.cpp b/src/Generating/Caves.cpp index 6aa7fd4cb..f543846d2 100644 --- a/src/Generating/Caves.cpp +++ b/src/Generating/Caves.cpp @@ -151,7 +151,7 @@ protected: -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cCaveTunnel: cCaveTunnel::cCaveTunnel( @@ -571,7 +571,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 +687,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,7 +700,7 @@ cGridStructGen::cStructurePtr cStructGenWormNestCaves::CreateStructure(int a_Gri -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cStructGenMarbleCaves: static float GetMarbleNoise( float x, float y, float z, cNoise & a_Noise ) @@ -752,7 +752,7 @@ void cStructGenMarbleCaves::GenFinish(cChunkDesc & a_ChunkDesc) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cStructGenDualRidgeCaves: void cStructGenDualRidgeCaves::GenFinish(cChunkDesc & a_ChunkDesc) diff --git a/src/Generating/ChunkGenerator.cpp b/src/Generating/ChunkGenerator.cpp index 73f0223e8..3f8f77f09 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) : @@ -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/CompoGen.cpp b/src/Generating/CompoGen.cpp index 2da285d72..160d095ed 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) @@ -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) : @@ -645,7 +645,7 @@ void cCompoGenNether::InitializeCompoGen(cIniFile & a_IniFile) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cCompoGenCache: cCompoGenCache::cCompoGenCache(cTerrainCompositionGen & a_Underlying, int a_CacheSize) : diff --git a/src/Generating/ComposableGenerator.cpp b/src/Generating/ComposableGenerator.cpp index 7b6234161..167fbab37 100644 --- a/src/Generating/ComposableGenerator.cpp +++ b/src/Generating/ComposableGenerator.cpp @@ -34,7 +34,7 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cTerrainCompositionGen: cTerrainCompositionGen * cTerrainCompositionGen::CreateCompositionGen(cIniFile & a_IniFile, cBiomeGen & a_BiomeGen, cTerrainHeightGen & a_HeightGen, int a_Seed) @@ -114,7 +114,7 @@ cTerrainCompositionGen * cTerrainCompositionGen::CreateCompositionGen(cIniFile & -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cComposableGenerator: cComposableGenerator::cComposableGenerator(cChunkGenerator & a_ChunkGenerator) : diff --git a/src/Generating/DistortedHeightmap.cpp b/src/Generating/DistortedHeightmap.cpp index eb9fe92ba..b46850a81 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. diff --git a/src/Generating/EndGen.cpp b/src/Generating/EndGen.cpp index f466039b9..abbf050f7 100644 --- a/src/Generating/EndGen.cpp +++ b/src/Generating/EndGen.cpp @@ -29,7 +29,7 @@ enum -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cEndGen: cEndGen::cEndGen(int a_Seed) : diff --git a/src/Generating/FinishGen.cpp b/src/Generating/FinishGen.cpp index f2d66af70..dd1ab045d 100644 --- a/src/Generating/FinishGen.cpp +++ b/src/Generating/FinishGen.cpp @@ -40,12 +40,12 @@ 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 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)); @@ -125,7 +125,7 @@ void cFinishGenNetherClumpFoliage::TryPlaceClump(cChunkDesc & a_ChunkDesc, int a float zz = (float) a_ChunkDesc.GetChunkZ() * cChunkDef::Width + z; for (int y = a_RelY - 2; y < a_RelY + 2; y++) { - if (a_ChunkDesc.GetBlockType(x, y, z) != E_BLOCK_AIR) // Don't replace non air blocks. + if (a_ChunkDesc.GetBlockType(x, y, z) != E_BLOCK_AIR) // Don't replace non air blocks. { continue; } @@ -136,7 +136,7 @@ void cFinishGenNetherClumpFoliage::TryPlaceClump(cChunkDesc & a_ChunkDesc, int a 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)) { @@ -159,7 +159,7 @@ void cFinishGenNetherClumpFoliage::TryPlaceClump(cChunkDesc & a_ChunkDesc, int a -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cFinishGenSprinkleFoliage: bool cFinishGenSprinkleFoliage::TryAddSugarcane(cChunkDesc & a_ChunkDesc, int a_RelX, int a_RelY, int a_RelZ) @@ -309,7 +309,7 @@ void cFinishGenSprinkleFoliage::GenFinish(cChunkDesc & a_ChunkDesc) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cFinishGenSnow: void cFinishGenSnow::GenFinish(cChunkDesc & a_ChunkDesc) @@ -345,7 +345,7 @@ void cFinishGenSnow::GenFinish(cChunkDesc & a_ChunkDesc) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cFinishGenIce: void cFinishGenIce::GenFinish(cChunkDesc & a_ChunkDesc) @@ -385,7 +385,7 @@ void cFinishGenIce::GenFinish(cChunkDesc & a_ChunkDesc) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cFinishGenLilypads: int cFinishGenSingleBiomeSingleTopBlock::GetNumToGen(const cChunkDef::BiomeMap & a_BiomeMap) @@ -447,7 +447,7 @@ void cFinishGenSingleBiomeSingleTopBlock::GenFinish(cChunkDesc & a_ChunkDesc) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cFinishGenBottomLava: void cFinishGenBottomLava::GenFinish(cChunkDesc & a_ChunkDesc) @@ -470,7 +470,7 @@ void cFinishGenBottomLava::GenFinish(cChunkDesc & a_ChunkDesc) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cFinishGenPreSimulator: cFinishGenPreSimulator::cFinishGenPreSimulator(void) @@ -637,7 +637,7 @@ void cFinishGenPreSimulator::StationarizeFluid( -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cFinishGenFluidSprings: cFinishGenFluidSprings::cFinishGenFluidSprings(int a_Seed, BLOCKTYPE a_Fluid, cIniFile & a_IniFile, eDimension a_Dimension) : diff --git a/src/Generating/GridStructGen.cpp b/src/Generating/GridStructGen.cpp index fd1d5e49f..7090f14b1 100644 --- a/src/Generating/GridStructGen.cpp +++ b/src/Generating/GridStructGen.cpp @@ -9,7 +9,7 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cEmptyStructure: /** A cStructure descendant representing an empty structure. diff --git a/src/Generating/HeiGen.cpp b/src/Generating/HeiGen.cpp index 202f7db7e..537e30a31 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) : @@ -234,7 +234,7 @@ bool cHeiGenCache::GetHeightAt(int a_ChunkX, int a_ChunkZ, int a_RelX, int a_Rel -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cHeiGenClassic: cHeiGenClassic::cHeiGenClassic(int a_Seed) : @@ -255,7 +255,7 @@ float cHeiGenClassic::GetNoise(float x, float y) 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; @@ -306,7 +306,7 @@ void cHeiGenClassic::InitializeHeightGen(cIniFile & a_IniFile) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cHeiGenMountains: cHeiGenMountains::cHeiGenMountains(int a_Seed) : @@ -368,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..e951b90fa 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) : @@ -1100,7 +1100,7 @@ void cMineShaftCrossing::ProcessChunk(cChunkDesc & a_ChunkDesc) -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cMineShaftStaircase: cMineShaftStaircase::cMineShaftStaircase( @@ -1278,7 +1278,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..fe1005dba 100644 --- a/src/Generating/PieceGenerator.cpp +++ b/src/Generating/PieceGenerator.cpp @@ -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/Prefabs/AlchemistVillagePrefabs.cpp b/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp index 976f8490e..8c935c2a5 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 { @@ -264,7 +264,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // BarWithoutBasement: // The data has been exported from the gallery Desert, area index 81, ID 597, created by STR_Warrior { @@ -463,7 +463,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // BlackSmith: // The data has been exported from the gallery Desert, area index 97, ID 642, created by STR_Warrior { @@ -633,7 +633,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // LargeHouse1: // The data has been exported from the gallery Desert, area index 77, ID 577, created by STR_Warrior { @@ -922,7 +922,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // LargeTower: // The data has been exported from the gallery Desert, area index 80, ID 596, created by STR_Warrior { @@ -1108,7 +1108,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // LittleHouse: // The data has been exported from the gallery Desert, area index 65, ID 551, created by STR_Warrior { @@ -1229,7 +1229,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // LittleHouse2: // The data has been exported from the gallery Desert, area index 72, ID 562, created by STR_Warrior { @@ -1376,7 +1376,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // LittleHouse3: // The data has been exported from the gallery Desert, area index 66, ID 553, created by STR_Warrior { @@ -1496,7 +1496,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // LittleHouse4: // The data has been exported from the gallery Desert, area index 70, ID 560, created by STR_Warrior { @@ -1647,7 +1647,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // LittleHouse5: // The data has been exported from the gallery Desert, area index 68, ID 558, created by STR_Warrior { @@ -1781,7 +1781,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // LittleHouse6: // The data has been exported from the gallery Desert, area index 69, ID 559, created by STR_Warrior { @@ -1922,7 +1922,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // LittleHouse7: // The data has been exported from the gallery Desert, area index 73, ID 563, created by xoft { @@ -2068,7 +2068,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // LittleHouse8: // The data has been exported from the gallery Desert, area index 99, ID 739, created by STR_Warrior { @@ -2200,7 +2200,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // LittleTower: // The data has been exported from the gallery Desert, area index 79, ID 595, created by STR_Warrior { @@ -2351,7 +2351,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // MediumHouse1: // The data has been exported from the gallery Desert, area index 71, ID 561, created by STR_Warrior { @@ -2531,7 +2531,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // MediumHouse2: // The data has been exported from the gallery Desert, area index 74, ID 573, created by STR_Warrior { @@ -2740,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 { @@ -2958,7 +2958,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // SmallHouse9: // The data has been exported from the gallery Desert, area index 67, ID 556, created by STR_Warrior { @@ -3104,7 +3104,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // Temple: // The data has been exported from the gallery Desert, area index 83, ID 599, created by STR_Warrior { @@ -3310,7 +3310,7 @@ 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 { diff --git a/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp b/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp index d22153d87..c49015e36 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,7 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // Farm: // The data has been exported from the gallery Plains, area index 166, ID 554, created by Aloe_vera { @@ -299,7 +299,7 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // Forge: // The data has been exported from the gallery Plains, area index 79, ID 145, created by Aloe_vera { @@ -565,7 +565,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 { @@ -717,7 +717,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 { @@ -893,7 +893,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 { @@ -1004,7 +1004,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 { @@ -1128,7 +1128,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 { @@ -1249,7 +1249,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 { @@ -1362,7 +1362,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 { @@ -1510,7 +1510,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 { @@ -1756,7 +1756,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 { @@ -1950,7 +1950,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 { @@ -2158,7 +2158,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 { @@ -2312,7 +2312,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 { @@ -2566,7 +2566,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 { @@ -2697,7 +2697,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 { @@ -2808,7 +2808,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 { @@ -3159,7 +3159,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 { diff --git a/src/Generating/Prefabs/NetherFortPrefabs.cpp b/src/Generating/Prefabs/NetherFortPrefabs.cpp index 2c97f28ea..ee3a8899b 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,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // BridgeFunnelDown: // The data has been exported from the gallery Nether, area index 0, ID 2, created by Aloe_vera { @@ -1653,7 +1653,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 +1985,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 +2107,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 +2270,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 +2374,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 +2478,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 +2576,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // CorridorCorner5: // The data has been exported from the gallery Nether, area index 10, ID 40, created by xoft { @@ -2718,7 +2718,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 +2861,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 +2989,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 +3144,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 +3248,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 +3508,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 +3842,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 { @@ -4123,7 +4123,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 +4314,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // StairsToOpen1: // The data has been exported from the gallery Nether, area index 27, ID 277, created by Aloe_vera { @@ -4460,7 +4460,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 +4606,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 +4726,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 +4858,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 +4957,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 +5057,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 +5159,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 +5283,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 bad8dae74..714a66559 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 { @@ -492,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 { @@ -692,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 { @@ -784,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 { @@ -861,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 { @@ -946,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 { @@ -1064,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 { @@ -1189,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 { @@ -1370,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 { @@ -1469,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 { @@ -1719,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 { @@ -1819,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 { @@ -1898,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 { @@ -1983,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 { @@ -2108,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 { @@ -2418,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 { @@ -2560,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 { @@ -2729,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 { @@ -2856,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 { @@ -2983,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 { @@ -3117,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 { @@ -3287,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 { @@ -3428,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 { @@ -3590,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 { @@ -3806,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 { @@ -3971,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 { @@ -4223,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 { @@ -4450,7 +4450,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // WoodenHouseL9x9: // The data has been exported from the gallery Plains, area index 42, ID 93, created by xoft { @@ -4619,7 +4619,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // WoodenHouseU13x9: // The data has been exported from the gallery Plains, area index 43, ID 94, created by xoft { @@ -4786,7 +4786,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 { @@ -5121,7 +5121,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 { @@ -5307,7 +5307,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 { @@ -5448,7 +5448,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 { @@ -5897,7 +5897,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 44e947952..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 { @@ -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 { @@ -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 { @@ -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 { @@ -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 { @@ -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 { @@ -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 { @@ -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 { @@ -1049,7 +1049,7 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // HouseL13x12: // The data has been exported from the gallery Desert, area index 53, ID 345, created by jakibaki { @@ -1220,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 { @@ -1330,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 { @@ -1472,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 72881a678..c63f8161b 100644 --- a/src/Generating/Prefabs/SandVillagePrefabs.cpp +++ b/src/Generating/Prefabs/SandVillagePrefabs.cpp @@ -15,7 +15,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = { - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // DoubleField: // The data has been exported from the gallery Desert, area index 5, ID 75, created by tonibm1999 { @@ -102,7 +102,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // House11x7: // The data has been exported from the gallery Desert, area index 6, ID 81, created by Aloe_vera { @@ -236,7 +236,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // House11x9: // The data has been exported from the gallery Desert, area index 11, ID 115, created by xoft { @@ -395,7 +395,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // House13x7: // The data has been exported from the gallery Desert, area index 15, ID 125, created by Aloe_vera { @@ -527,7 +527,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // House13x9: // The data has been exported from the gallery Desert, area index 12, ID 116, created by xoft { @@ -686,7 +686,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // House15x9: // The data has been exported from the gallery Desert, area index 13, ID 118, created by xoft { @@ -845,7 +845,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // House16x9: // The data has been exported from the gallery Desert, area index 16, ID 126, created by Aloe_vera { @@ -1004,7 +1004,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // House7x7: // The data has been exported from the gallery Desert, area index 8, ID 112, created by Aloe_vera { @@ -1128,7 +1128,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // House9x7: // The data has been exported from the gallery Desert, area index 9, ID 113, created by xoft { @@ -1253,7 +1253,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // House9x9: // The data has been exported from the gallery Desert, area index 10, ID 114, created by xoft { @@ -1404,7 +1404,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // HouseL14x12: // The data has been exported from the gallery Desert, area index 14, ID 124, created by Aloe_vera { @@ -1592,7 +1592,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // HouseL14x12: // The data has been exported from the gallery Desert, area index 7, ID 82, created by Aloe_vera { @@ -1763,7 +1763,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // SingleField: // The data has been exported from the gallery Desert, area index 17, ID 127, created by Aloe_vera { @@ -1844,7 +1844,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // SmallHut: // The data has been exported from the gallery Desert, area index 4, ID 68, created by tonibm1999 { @@ -1955,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 { @@ -2155,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 index 3444cb1fa..f58b95225 100644 --- a/src/Generating/Prefabs/TestRailsPrefabs.cpp +++ b/src/Generating/Prefabs/TestRailsPrefabs.cpp @@ -15,7 +15,7 @@ const cPrefab::sDef g_TestRailsPrefabs[] = { - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // ActivatorRail: // The data has been exported from the gallery Plains, area index 251, ID 746, created by Aloe_vera { @@ -104,7 +104,7 @@ const cPrefab::sDef g_TestRailsPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // DetectorRail: // The data has been exported from the gallery Plains, area index 250, ID 745, created by Aloe_vera { @@ -193,7 +193,7 @@ const cPrefab::sDef g_TestRailsPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // PowerRail: // The data has been exported from the gallery Plains, area index 248, ID 743, created by Aloe_vera { @@ -284,7 +284,7 @@ const cPrefab::sDef g_TestRailsPrefabs[] = - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// // RegularRail: // The data has been exported from the gallery Plains, area index 247, ID 742, created by Aloe_vera { @@ -383,7 +383,7 @@ const cPrefab::sDef 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 { diff --git a/src/Generating/Prefabs/UnderwaterBasePrefabs.cpp b/src/Generating/Prefabs/UnderwaterBasePrefabs.cpp index 691d8aa9d..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 { @@ -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..8f62669e7 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) : diff --git a/src/Generating/StructGen.cpp b/src/Generating/StructGen.cpp index 636364e17..2e41243d6 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) @@ -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) @@ -532,7 +532,7 @@ void cStructGenLakes::CreateLakeImage(int a_ChunkX, int a_ChunkZ, cBlockArea & a -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cStructGenDirectOverhangs: cStructGenDirectOverhangs::cStructGenDirectOverhangs(int a_Seed) : @@ -648,7 +648,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 index c40c1a9b6..66ab8b33f 100644 --- a/src/Generating/TestRailsGen.cpp +++ b/src/Generating/TestRailsGen.cpp @@ -18,7 +18,7 @@ static cPrefabPiecePool g_TestRails(g_TestRailsPrefabs, g_TestRailsPrefabsCount, -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cTestRailsGen::cTestRails: class cTestRailsGen::cTestRails : @@ -86,7 +86,7 @@ protected: -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cTestRailsGen: diff --git a/src/Generating/Trees.cpp b/src/Generating/Trees.cpp index 522f45148..7478be69b 100644 --- a/src/Generating/Trees.cpp +++ b/src/Generating/Trees.cpp @@ -66,7 +66,7 @@ static const sCoords BigO3[] = {-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}, @@ -773,10 +773,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/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..fdec2425d 100644 --- a/src/Generating/VillageGen.cpp +++ b/src/Generating/VillageGen.cpp @@ -333,7 +333,7 @@ protected: -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// // cVillageGen: static cVillagePiecePool g_SandVillage(g_SandVillagePrefabs, g_SandVillagePrefabsCount, g_SandVillageStartingPrefabs, g_SandVillageStartingPrefabsCount); -- cgit v1.2.3 From 5e198c673009cf8ca9d92cf59848999bc96bbc37 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Thu, 17 Jul 2014 22:50:58 +0200 Subject: Basic style fixes. --- src/Generating/ChunkDesc.h | 2 +- src/Generating/CompoGen.cpp | 4 ++-- src/Generating/ComposableGenerator.cpp | 6 +++--- src/Generating/FinishGen.cpp | 4 ++-- src/Generating/HeiGen.cpp | 2 +- src/Generating/PieceGenerator.cpp | 2 +- src/Generating/PieceGenerator.h | 4 ++-- src/Generating/Prefab.cpp | 2 +- src/Generating/Prefab.h | 2 +- src/Generating/StructGen.cpp | 14 +++++++------- src/Generating/Trees.cpp | 8 ++++---- 11 files changed, 25 insertions(+), 25 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/ChunkDesc.h b/src/Generating/ChunkDesc.h index 8edc2800b..b306b1ee5 100644 --- a/src/Generating/ChunkDesc.h +++ b/src/Generating/ChunkDesc.h @@ -186,7 +186,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; } diff --git a/src/Generating/CompoGen.cpp b/src/Generating/CompoGen.cpp index 160d095ed..faf2ac243 100644 --- a/src/Generating/CompoGen.cpp +++ b/src/Generating/CompoGen.cpp @@ -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, @@ -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; //*/ diff --git a/src/Generating/ComposableGenerator.cpp b/src/Generating/ComposableGenerator.cpp index 167fbab37..09921abb0 100644 --- a/src/Generating/ComposableGenerator.cpp +++ b/src/Generating/ComposableGenerator.cpp @@ -234,7 +234,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; @@ -252,7 +252,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); @@ -260,7 +260,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; diff --git a/src/Generating/FinishGen.cpp b/src/Generating/FinishGen.cpp index dd1ab045d..13871bbd8 100644 --- a/src/Generating/FinishGen.cpp +++ b/src/Generating/FinishGen.cpp @@ -214,7 +214,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; @@ -678,7 +678,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/HeiGen.cpp b/src/Generating/HeiGen.cpp index 537e30a31..b02e06951 100644 --- a/src/Generating/HeiGen.cpp +++ b/src/Generating/HeiGen.cpp @@ -267,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++) diff --git a/src/Generating/PieceGenerator.cpp b/src/Generating/PieceGenerator.cpp index fe1005dba..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" 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 7d876909a..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) 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/StructGen.cpp b/src/Generating/StructGen.cpp index 2e41243d6..5deded17d 100644 --- a/src/Generating/StructGen.cpp +++ b/src/Generating/StructGen.cpp @@ -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); } @@ -500,7 +500,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 +511,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) { @@ -573,8 +573,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[] diff --git a/src/Generating/Trees.cpp b/src/Generating/Trees.cpp index 7478be69b..eac086de6 100644 --- a/src/Generating/Trees.cpp +++ b/src/Generating/Trees.cpp @@ -83,7 +83,7 @@ static const sCoords BigO4[] = // Part of Big Jungle tree -typedef struct +typedef struct { const sCoords * Coords; size_t Count; @@ -203,7 +203,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); } @@ -598,11 +598,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: -- cgit v1.2.3 From c03161f75d22a7965aea20fb9843ae580a07079a Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Thu, 17 Jul 2014 23:15:53 +0200 Subject: Fixed tabs used for alignment. --- src/Generating/Caves.cpp | 12 ++++++------ src/Generating/ChunkGenerator.cpp | 6 +++--- src/Generating/FinishGen.h | 2 +- src/Generating/Ravines.cpp | 22 +++++++++++----------- src/Generating/VillageGen.cpp | 2 +- 5 files changed, 22 insertions(+), 22 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/Caves.cpp b/src/Generating/Caves.cpp index f543846d2..3571b29d4 100644 --- a/src/Generating/Caves.cpp +++ b/src/Generating/Caves.cpp @@ -555,14 +555,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, "m_BlockX, a_OffsetZ + itr->m_BlockZ); Prefix = 'L'; - } - SVG.append("\"/>\n"); + } + SVG.append("\"/>\n"); return SVG; } #endif // _DEBUG diff --git a/src/Generating/ChunkGenerator.cpp b/src/Generating/ChunkGenerator.cpp index 3f8f77f09..0947eeae5 100644 --- a/src/Generating/ChunkGenerator.cpp +++ b/src/Generating/ChunkGenerator.cpp @@ -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: diff --git a/src/Generating/FinishGen.h b/src/Generating/FinishGen.h index 2e5732929..fdeb86e73 100644 --- a/src/Generating/FinishGen.h +++ b/src/Generating/FinishGen.h @@ -199,7 +199,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/Ravines.cpp b/src/Generating/Ravines.cpp index 8f62669e7..86e27d8ed 100644 --- a/src/Generating/Ravines.cpp +++ b/src/Generating/Ravines.cpp @@ -283,25 +283,25 @@ void cStructGenRavines::cRavine::FinishLinear(void) AString cStructGenRavines::cRavine::ExportAsSVG(int a_Color, int a_OffsetX, int a_OffsetZ) const { AString SVG; - AppendPrintf(SVG, "m_BlockX, a_OffsetZ + itr->m_BlockZ); Prefix = 'L'; - } - SVG.append("\"/>\n"); - - // Base point highlight: - AppendPrintf(SVG, "\n", + } + SVG.append("\"/>\n"); + + // Base point highlight: + AppendPrintf(SVG, "\n", a_OffsetX + m_OriginX - 5, a_OffsetZ + m_OriginZ, a_OffsetX + m_OriginX + 5, a_OffsetZ + m_OriginZ ); - AppendPrintf(SVG, "\n", + AppendPrintf(SVG, "\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, "\n", + AppendPrintf(SVG, "\n", a_OffsetX + m_OriginX, a_OffsetZ + m_OriginZ, a_OffsetX + m_Points.front().m_BlockX, a_OffsetZ + m_Points.front().m_BlockZ ); diff --git a/src/Generating/VillageGen.cpp b/src/Generating/VillageGen.cpp index fdec2425d..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); } -} ; +}; -- cgit v1.2.3 From b2716c720eb237b961470c569ef491558fcc34d3 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Thu, 17 Jul 2014 23:25:21 +0200 Subject: Fixed code style in Trees.cpp. The src folder now has zero BasicStyle violations. --- src/Generating/Trees.cpp | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/Trees.cpp b/src/Generating/Trees.cpp index eac086de6..b7a08999d 100644 --- a/src/Generating/Trees.cpp +++ b/src/Generating/Trees.cpp @@ -41,42 +41,42 @@ 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 { - {-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}, } ; -- cgit v1.2.3 From 32b25ec7f799ca15fdcdc3e9e9535c798d0cc523 Mon Sep 17 00:00:00 2001 From: archshift Date: Thu, 17 Jul 2014 18:34:47 -0700 Subject: Generator: removed rnd definitions that are never read --- src/Generating/MineShafts.cpp | 1 - src/Generating/StructGen.cpp | 1 - 2 files changed, 2 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/MineShafts.cpp b/src/Generating/MineShafts.cpp index e951b90fa..0532aff39 100644 --- a/src/Generating/MineShafts.cpp +++ b/src/Generating/MineShafts.cpp @@ -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; diff --git a/src/Generating/StructGen.cpp b/src/Generating/StructGen.cpp index 5deded17d..054eec345 100644 --- a/src/Generating/StructGen.cpp +++ b/src/Generating/StructGen.cpp @@ -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++) -- cgit v1.2.3 From 2df5e26d3b7f08ef7d120511705fa0b75a44783e Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Fri, 18 Jul 2014 09:57:34 +0200 Subject: Fixed spaces before commas. --- src/Generating/FinishGen.cpp | 4 ++-- src/Generating/HeiGen.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/FinishGen.cpp b/src/Generating/FinishGen.cpp index 13871bbd8..00a93023d 100644 --- a/src/Generating/FinishGen.cpp +++ b/src/Generating/FinishGen.cpp @@ -193,8 +193,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; diff --git a/src/Generating/HeiGen.cpp b/src/Generating/HeiGen.cpp index b02e06951..3df1a90ff 100644 --- a/src/Generating/HeiGen.cpp +++ b/src/Generating/HeiGen.cpp @@ -283,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 } @@ -345,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 } -- cgit v1.2.3 From 06bef093bf3a035e03bf22808e82f8d82638dbfc Mon Sep 17 00:00:00 2001 From: archshift Date: Fri, 18 Jul 2014 00:20:38 -0700 Subject: Generating/CMakeLists.txt: Replaced glob with list of files --- src/Generating/CMakeLists.txt | 59 +++++++++++++++++++++++++++++++++++++++---- 1 file changed, 54 insertions(+), 5 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/CMakeLists.txt b/src/Generating/CMakeLists.txt index 3dacb5066..b3960914c 100644 --- a/src/Generating/CMakeLists.txt +++ b/src/Generating/CMakeLists.txt @@ -4,11 +4,60 @@ 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 + 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 + StructGen.h + TestRailsGen.h + Trees.h + UnderwaterBaseGen.h + VillageGen.h) + +add_library(Generating ${SRCS} ${HDRS}) target_link_libraries(Generating OSSupport iniFile Blocks) -- cgit v1.2.3 From de48688fdbca822a09a9b8abad2010768ab36a20 Mon Sep 17 00:00:00 2001 From: archshift Date: Fri, 18 Jul 2014 00:34:21 -0700 Subject: Generating/Prefabs/CMakeLists.txt: Replaced glob with list of files --- src/Generating/Prefabs/CMakeLists.txt | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/Prefabs/CMakeLists.txt b/src/Generating/Prefabs/CMakeLists.txt index a1f09112d..d53098b4e 100644 --- a/src/Generating/Prefabs/CMakeLists.txt +++ b/src/Generating/Prefabs/CMakeLists.txt @@ -4,11 +4,28 @@ 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) + +add_library(Generating_Prefabs ${SRCS} ${HDRS}) target_link_libraries(Generating_Prefabs OSSupport iniFile Blocks) -- cgit v1.2.3 From 725d1fd1e2995b1720673c280fea1125ac338b3c Mon Sep 17 00:00:00 2001 From: archshift Date: Fri, 18 Jul 2014 13:26:43 -0700 Subject: Subdirs: Only add_library if not using MSVC --- src/Generating/CMakeLists.txt | 6 ++++-- src/Generating/Prefabs/CMakeLists.txt | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/CMakeLists.txt b/src/Generating/CMakeLists.txt index b3960914c..9063abd97 100644 --- a/src/Generating/CMakeLists.txt +++ b/src/Generating/CMakeLists.txt @@ -58,6 +58,8 @@ SET (HDRS UnderwaterBaseGen.h VillageGen.h) -add_library(Generating ${SRCS} ${HDRS}) +if(NOT MSVC) + add_library(Generating ${SRCS} ${HDRS}) -target_link_libraries(Generating OSSupport iniFile Blocks) + target_link_libraries(Generating OSSupport iniFile Blocks) +endif() diff --git a/src/Generating/Prefabs/CMakeLists.txt b/src/Generating/Prefabs/CMakeLists.txt index d53098b4e..2c62aa73d 100644 --- a/src/Generating/Prefabs/CMakeLists.txt +++ b/src/Generating/Prefabs/CMakeLists.txt @@ -26,6 +26,8 @@ SET (HDRS TestRailsPrefabs.h UnderwaterBasePrefabs.h) -add_library(Generating_Prefabs ${SRCS} ${HDRS}) +if(NOT MSVC) + add_library(Generating_Prefabs ${SRCS} ${HDRS}) -target_link_libraries(Generating_Prefabs OSSupport iniFile Blocks) + target_link_libraries(Generating_Prefabs OSSupport iniFile Blocks) +endif() -- cgit v1.2.3 From f86eefa2ae07c32772f4353f14de9625dc9c20de Mon Sep 17 00:00:00 2001 From: archshift Date: Sat, 19 Jul 2014 02:54:44 -0700 Subject: Trees.cpp: removed unused "debug" fields --- src/Generating/Trees.cpp | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/Trees.cpp b/src/Generating/Trees.cpp index b7a08999d..c40322630 100644 --- a/src/Generating/Trees.cpp +++ b/src/Generating/Trees.cpp @@ -10,13 +10,6 @@ -// DEBUG: -int gTotalLargeJungleTrees = 0; -int gOversizeLargeJungleTrees = 0; - - - - typedef struct { @@ -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++) -- cgit v1.2.3 From 00c524519ef6c7ceaf4ac91307617cfd65d7cf21 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Sat, 19 Jul 2014 14:53:41 +0200 Subject: Fixed style: spaces after commas. --- src/Generating/Caves.cpp | 2 +- src/Generating/ChunkGenerator.cpp | 2 +- src/Generating/Ravines.cpp | 12 ++++++------ src/Generating/Trees.h | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/Caves.cpp b/src/Generating/Caves.cpp index 3571b29d4..21bfd98b8 100644 --- a/src/Generating/Caves.cpp +++ b/src/Generating/Caves.cpp @@ -559,7 +559,7 @@ AString cCaveTunnel::ExportAsSVG(int a_Color, int a_OffsetX, int a_OffsetZ) cons 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, "%c %d, %d ", Prefix, a_OffsetX + itr->m_BlockX, a_OffsetZ + itr->m_BlockZ); Prefix = 'L'; } SVG.append("\"/>\n"); diff --git a/src/Generating/ChunkGenerator.cpp b/src/Generating/ChunkGenerator.cpp index 0947eeae5..9383a3adf 100644 --- a/src/Generating/ChunkGenerator.cpp +++ b/src/Generating/ChunkGenerator.cpp @@ -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; diff --git a/src/Generating/Ravines.cpp b/src/Generating/Ravines.cpp index 86e27d8ed..70b9d0b62 100644 --- a/src/Generating/Ravines.cpp +++ b/src/Generating/Ravines.cpp @@ -287,34 +287,34 @@ AString cStructGenRavines::cRavine::ExportAsSVG(int a_Color, int a_OffsetX, int 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, "%c %d, %d ", Prefix, a_OffsetX + itr->m_BlockX, a_OffsetZ + itr->m_BlockZ); Prefix = 'L'; } SVG.append("\"/>\n"); // Base point highlight: - AppendPrintf(SVG, "\n", + AppendPrintf(SVG, "\n", a_OffsetX + m_OriginX - 5, a_OffsetZ + m_OriginZ, a_OffsetX + m_OriginX + 5, a_OffsetZ + m_OriginZ ); - AppendPrintf(SVG, "\n", + AppendPrintf(SVG, "\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, "\n", + AppendPrintf(SVG, "\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, "\n", + AppendPrintf(SVG, "\n", a_OffsetX, a_OffsetX ); } if (a_OffsetZ > 0) { - AppendPrintf(SVG, "\n", + AppendPrintf(SVG, "\n", a_OffsetZ, a_OffsetZ ); } 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); -- cgit v1.2.3 From 7bf9da74413c69cbd79a9db81ba098e13b847904 Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Sun, 20 Jul 2014 16:23:45 +0200 Subject: First attempt for a new foliage finisher --- src/Generating/ComposableGenerator.cpp | 4 ++++ src/Generating/FinishGen.cpp | 32 ++++++++++++++++++++++++++++ src/Generating/FinishGen.h | 38 ++++++++++++++++++++++++++++++++++ 3 files changed, 74 insertions(+) (limited to 'src/Generating') diff --git a/src/Generating/ComposableGenerator.cpp b/src/Generating/ComposableGenerator.cpp index 7b6234161..21626e76b 100644 --- a/src/Generating/ComposableGenerator.cpp +++ b/src/Generating/ComposableGenerator.cpp @@ -338,6 +338,10 @@ void cComposableGenerator::InitFinishGens(cIniFile & a_IniFile) float Threshold = (float)a_IniFile.GetValueSetF("Generator", "DualRidgeCavesThreshold", 0.3); m_FinishGens.push_back(new cStructGenDualRidgeCaves(Seed, Threshold)); } + else if (NoCaseCompare(*itr, "Foliage") == 0) + { + m_FinishGens.push_back(new cFinishGenFoliage(Seed)); + } else if (NoCaseCompare(*itr, "Ice") == 0) { m_FinishGens.push_back(new cFinishGenIce); diff --git a/src/Generating/FinishGen.cpp b/src/Generating/FinishGen.cpp index f2d66af70..06c1dcbbe 100644 --- a/src/Generating/FinishGen.cpp +++ b/src/Generating/FinishGen.cpp @@ -159,6 +159,38 @@ void cFinishGenNetherClumpFoliage::TryPlaceClump(cChunkDesc & a_ChunkDesc, int a +/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// cFinishGenFoliage: + +void cFinishGenFoliage::GenFinish(cChunkDesc & a_ChunkDesc) +{ + for (int x = 1; x < cChunkDef::Width; x++) + { + int xx = x + a_ChunkDesc.GetChunkX(); + for (int z = 1; z < cChunkDef::Width; z++) + { + int zz = z + a_ChunkDesc.GetChunkZ(); + //if (true) + if (m_Noise.CubicNoise2D((float) xx + m_Noise.CubicNoise1D(xx), zz + m_Noise.CubicNoise1D(zz)) < GetBiomeDensity(a_ChunkDesc.GetBiome(x, z))) + { + for (int y = a_ChunkDesc.GetHeight(x, z) + 1; y >= 1; y--) + { + if ( + (a_ChunkDesc.GetBlockType(x, y, z) == E_BLOCK_AIR) && + (a_ChunkDesc.GetBlockType(x, y - 1, z) == E_BLOCK_GRASS) + ) + { + a_ChunkDesc.SetBlockTypeMeta(x, y, z, E_BLOCK_TALL_GRASS, m_Noise.CubicNoise2D(xx * 100, zz * 100) > -0.2 ? 1 : 2); + } + } + } + } + } +} + + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // cFinishGenSprinkleFoliage: diff --git a/src/Generating/FinishGen.h b/src/Generating/FinishGen.h index 2e5732929..ea322c7ae 100644 --- a/src/Generating/FinishGen.h +++ b/src/Generating/FinishGen.h @@ -69,6 +69,44 @@ protected: +class cFinishGenFoliage : + public cFinishGen +{ +public: + cFinishGenFoliage(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; + + float GetBiomeDensity(EMCSBiome a_Biome) + { + switch (a_Biome) + { + case biSavanna: + case biSavannaM: + case biSavannaPlateau: + case biSavannaPlateauM: + case biPlains: + { + return 0.0; + } + default: + { + return -0.4; + } + } + return -0.3; + } +}; + + + + + class cFinishGenSprinkleFoliage : public cFinishGen { -- cgit v1.2.3 From 51ad6cd1b22914aecd7e27d6a4a35853459fdb94 Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Sun, 20 Jul 2014 16:31:28 +0200 Subject: Fixed warnings --- src/Generating/FinishGen.cpp | 3 +-- src/Generating/FinishGen.h | 6 +++--- 2 files changed, 4 insertions(+), 5 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/FinishGen.cpp b/src/Generating/FinishGen.cpp index 06c1dcbbe..86f5711a7 100644 --- a/src/Generating/FinishGen.cpp +++ b/src/Generating/FinishGen.cpp @@ -170,8 +170,7 @@ void cFinishGenFoliage::GenFinish(cChunkDesc & a_ChunkDesc) for (int z = 1; z < cChunkDef::Width; z++) { int zz = z + a_ChunkDesc.GetChunkZ(); - //if (true) - if (m_Noise.CubicNoise2D((float) xx + m_Noise.CubicNoise1D(xx), zz + m_Noise.CubicNoise1D(zz)) < GetBiomeDensity(a_ChunkDesc.GetBiome(x, z))) + if (m_Noise.CubicNoise2D((float) xx + m_Noise.CubicNoise1D(xx), (float) zz + m_Noise.CubicNoise1D(zz)) < GetBiomeDensity(a_ChunkDesc.GetBiome(x, z))) { for (int y = a_ChunkDesc.GetHeight(x, z) + 1; y >= 1; y--) { diff --git a/src/Generating/FinishGen.h b/src/Generating/FinishGen.h index ea322c7ae..d2968e592 100644 --- a/src/Generating/FinishGen.h +++ b/src/Generating/FinishGen.h @@ -92,14 +92,14 @@ protected: case biSavannaPlateauM: case biPlains: { - return 0.0; + return 0.0f; } default: { - return -0.4; + return -0.4f; } } - return -0.3; + return -0.3f; } }; -- cgit v1.2.3 From 76b79b51adfd8e71312cf777595483bb1ec68910 Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Sun, 20 Jul 2014 19:22:41 +0200 Subject: Renamed cFinishGenFoliage to cFinishGenTallGrass Better grass density Added double tall grass. --- src/Generating/ComposableGenerator.cpp | 8 ++++---- src/Generating/FinishGen.cpp | 34 ++++++++++++++++++++++++++-------- src/Generating/FinishGen.h | 9 ++++----- 3 files changed, 34 insertions(+), 17 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/ComposableGenerator.cpp b/src/Generating/ComposableGenerator.cpp index 21626e76b..2717f4e41 100644 --- a/src/Generating/ComposableGenerator.cpp +++ b/src/Generating/ComposableGenerator.cpp @@ -338,10 +338,6 @@ void cComposableGenerator::InitFinishGens(cIniFile & a_IniFile) float Threshold = (float)a_IniFile.GetValueSetF("Generator", "DualRidgeCavesThreshold", 0.3); m_FinishGens.push_back(new cStructGenDualRidgeCaves(Seed, Threshold)); } - else if (NoCaseCompare(*itr, "Foliage") == 0) - { - m_FinishGens.push_back(new cFinishGenFoliage(Seed)); - } else if (NoCaseCompare(*itr, "Ice") == 0) { m_FinishGens.push_back(new cFinishGenIce); @@ -419,6 +415,10 @@ 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)); diff --git a/src/Generating/FinishGen.cpp b/src/Generating/FinishGen.cpp index 86f5711a7..3ee657e38 100644 --- a/src/Generating/FinishGen.cpp +++ b/src/Generating/FinishGen.cpp @@ -162,24 +162,42 @@ void cFinishGenNetherClumpFoliage::TryPlaceClump(cChunkDesc & a_ChunkDesc, int a /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // cFinishGenFoliage: -void cFinishGenFoliage::GenFinish(cChunkDesc & a_ChunkDesc) +void cFinishGenTallGrass::GenFinish(cChunkDesc & a_ChunkDesc) { - for (int x = 1; x < cChunkDef::Width; x++) + for (int x = 0; x < cChunkDef::Width; x++) { - int xx = x + a_ChunkDesc.GetChunkX(); - for (int z = 1; z < cChunkDef::Width; z++) + float xx = (float) x + a_ChunkDesc.GetChunkX(); + for (int z = 0; z < cChunkDef::Width; z++) { - int zz = z + a_ChunkDesc.GetChunkZ(); - if (m_Noise.CubicNoise2D((float) xx + m_Noise.CubicNoise1D(xx), (float) zz + m_Noise.CubicNoise1D(zz)) < GetBiomeDensity(a_ChunkDesc.GetBiome(x, z))) + float zz = (float) z + a_ChunkDesc.GetChunkZ(); + float BiomeDensity = GetBiomeDensity(a_ChunkDesc.GetBiome(x, z)); + if (m_Noise.CubicNoise2D(xx + m_Noise.CubicNoise1D(xx), zz + m_Noise.CubicNoise1D(zz)) < BiomeDensity) { for (int y = a_ChunkDesc.GetHeight(x, z) + 1; y >= 1; y--) { 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_GRASS) || (a_ChunkDesc.GetBlockType(x, y - 1, z) == E_BLOCK_DIRT)) ) { - a_ChunkDesc.SetBlockTypeMeta(x, y, z, E_BLOCK_TALL_GRASS, m_Noise.CubicNoise2D(xx * 100, zz * 100) > -0.2 ? 1 : 2); + float GrassType = m_Noise.CubicNoise2D(xx * 50, zz * 50); + if (GrassType < 0.2f) + { + a_ChunkDesc.SetBlockTypeMeta(x, y, z, E_BLOCK_TALL_GRASS, 1); + } + else if (GrassType < 0.8f) + { + a_ChunkDesc.SetBlockTypeMeta(x, y, z, E_BLOCK_TALL_GRASS, 2); + } + else + { + if (a_ChunkDesc.GetBlockType(x, y + 1, z) == E_BLOCK_AIR) + { + NIBBLETYPE Meta = m_Noise.CubicNoise2D(xx * 100, zz * 100) > -0.5f ? 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); + } + } } } } diff --git a/src/Generating/FinishGen.h b/src/Generating/FinishGen.h index d2968e592..17a807e9b 100644 --- a/src/Generating/FinishGen.h +++ b/src/Generating/FinishGen.h @@ -69,11 +69,11 @@ protected: -class cFinishGenFoliage : +class cFinishGenTallGrass : public cFinishGen { public: - cFinishGenFoliage(int a_Seed) : m_Noise(a_Seed), m_Seed(a_Seed) {} + cFinishGenTallGrass(int a_Seed) : m_Noise(a_Seed), m_Seed(a_Seed) {} protected: cNoise m_Noise; @@ -92,14 +92,13 @@ protected: case biSavannaPlateauM: case biPlains: { - return 0.0f; + return 0.4f; } default: { - return -0.4f; + return -0.6f; } } - return -0.3f; } }; -- cgit v1.2.3 From a4470da876f8588fb71733a961701461f320e084 Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Sun, 20 Jul 2014 22:43:31 +0200 Subject: Changed CubicNoiseXX to IntNoiseXX Added some comments --- src/Generating/FinishGen.cpp | 63 +++++++++++++++++++++++++------------------- src/Generating/FinishGen.h | 26 +++++++++--------- 2 files changed, 49 insertions(+), 40 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/FinishGen.cpp b/src/Generating/FinishGen.cpp index 3ee657e38..b332c4f9b 100644 --- a/src/Generating/FinishGen.cpp +++ b/src/Generating/FinishGen.cpp @@ -166,38 +166,47 @@ void cFinishGenTallGrass::GenFinish(cChunkDesc & a_ChunkDesc) { for (int x = 0; x < cChunkDef::Width; x++) { - float xx = (float) x + a_ChunkDesc.GetChunkX(); + int xx = x + a_ChunkDesc.GetChunkX() * cChunkDef::Width; for (int z = 0; z < cChunkDef::Width; z++) { - float zz = (float) z + a_ChunkDesc.GetChunkZ(); - float BiomeDensity = GetBiomeDensity(a_ChunkDesc.GetBiome(x, z)); - if (m_Noise.CubicNoise2D(xx + m_Noise.CubicNoise1D(xx), zz + m_Noise.CubicNoise1D(zz)) < BiomeDensity) + 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) { - for (int y = a_ChunkDesc.GetHeight(x, z) + 1; y >= 1; y--) - { - 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; + } + + for (int y = a_ChunkDesc.GetHeight(x, z) + 1; y >= 1; y--) + { + // 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) { - float GrassType = m_Noise.CubicNoise2D(xx * 50, zz * 50); - if (GrassType < 0.2f) - { - a_ChunkDesc.SetBlockTypeMeta(x, y, z, E_BLOCK_TALL_GRASS, 1); - } - else if (GrassType < 0.8f) - { - a_ChunkDesc.SetBlockTypeMeta(x, y, z, E_BLOCK_TALL_GRASS, 2); - } - else - { - if (a_ChunkDesc.GetBlockType(x, y + 1, z) == E_BLOCK_AIR) - { - NIBBLETYPE Meta = m_Noise.CubicNoise2D(xx * 100, zz * 100) > -0.5f ? 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); - } - } + 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); } } } diff --git a/src/Generating/FinishGen.h b/src/Generating/FinishGen.h index 17a807e9b..f673ac2c2 100644 --- a/src/Generating/FinishGen.h +++ b/src/Generating/FinishGen.h @@ -82,22 +82,22 @@ protected: // cFinishGen override: virtual void GenFinish(cChunkDesc & a_ChunkDesc) override; - float GetBiomeDensity(EMCSBiome a_Biome) + int GetBiomeDensity(EMCSBiome a_Biome) { switch (a_Biome) { - case biSavanna: - case biSavannaM: - case biSavannaPlateau: - case biSavannaPlateauM: - case biPlains: - { - return 0.4f; - } - default: - { - return -0.6f; - } + case biSavanna: + case biSavannaM: + case biSavannaPlateau: + case biSavannaPlateauM: + case biPlains: + { + return 70; + } + default: + { + return 20; + } } } }; -- cgit v1.2.3 From 0c816dd6973ea15863b3e6f0a842b9b1e5fe2f3d Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Mon, 21 Jul 2014 10:58:13 +0200 Subject: Fixed indentation --- src/Generating/FinishGen.h | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/FinishGen.h b/src/Generating/FinishGen.h index f673ac2c2..0688e1162 100644 --- a/src/Generating/FinishGen.h +++ b/src/Generating/FinishGen.h @@ -86,18 +86,18 @@ protected: { switch (a_Biome) { - case biSavanna: - case biSavannaM: - case biSavannaPlateau: - case biSavannaPlateauM: - case biPlains: - { - return 70; - } - default: - { - return 20; - } + case biSavanna: + case biSavannaM: + case biSavannaPlateau: + case biSavannaPlateauM: + case biPlains: + { + return 70; + } + default: + { + return 20; + } } } }; -- cgit v1.2.3 From ce956bcdf276daa288c35d702885bba90f6ce283 Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Mon, 21 Jul 2014 16:01:16 +0200 Subject: Removed y for-loop. Only the top block now gets long grass. --- src/Generating/FinishGen.cpp | 54 ++++++++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 27 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/FinishGen.cpp b/src/Generating/FinishGen.cpp index b332c4f9b..26149f363 100644 --- a/src/Generating/FinishGen.cpp +++ b/src/Generating/FinishGen.cpp @@ -178,36 +178,36 @@ void cFinishGenTallGrass::GenFinish(cChunkDesc & a_ChunkDesc) continue; } - for (int y = a_ChunkDesc.GetHeight(x, z) + 1; y >= 1; y--) + // 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)) + ) { - // 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; - } + 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 + // 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) { - // 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); - } + 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); } } } -- cgit v1.2.3 From 39623251c4e41e882abba767123f21b49a181ffc Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Mon, 21 Jul 2014 16:34:35 +0200 Subject: Fixed a missing enter. --- src/Generating/FinishGen.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src/Generating') diff --git a/src/Generating/FinishGen.cpp b/src/Generating/FinishGen.cpp index 26149f363..e6c31e43f 100644 --- a/src/Generating/FinishGen.cpp +++ b/src/Generating/FinishGen.cpp @@ -217,6 +217,7 @@ void cFinishGenTallGrass::GenFinish(cChunkDesc & a_ChunkDesc) + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // cFinishGenSprinkleFoliage: -- cgit v1.2.3 From 93d29555e58df172bafba530afbc593c16ec66a3 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Mon, 21 Jul 2014 15:19:48 +0200 Subject: Style: Normalized to no spaces before closing parenthesis. --- src/Generating/Caves.cpp | 6 +++--- src/Generating/ChunkGenerator.cpp | 2 +- src/Generating/FinishGen.cpp | 8 ++++---- src/Generating/HeiGen.cpp | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/Caves.cpp b/src/Generating/Caves.cpp index 21bfd98b8..3b71efb57 100644 --- a/src/Generating/Caves.cpp +++ b/src/Generating/Caves.cpp @@ -703,10 +703,10 @@ 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 +730,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) { diff --git a/src/Generating/ChunkGenerator.cpp b/src/Generating/ChunkGenerator.cpp index 9383a3adf..0baf1e991 100644 --- a/src/Generating/ChunkGenerator.cpp +++ b/src/Generating/ChunkGenerator.cpp @@ -229,7 +229,7 @@ void cChunkGenerator::Execute(void) } cChunkCoords coords = m_Queue.front(); // Get next coord from queue - m_Queue.erase( m_Queue.begin() ); // Remove coordinate from queue + m_Queue.erase( m_Queue.begin()); // Remove coordinate from queue bool SkipEnabled = (m_Queue.size() > QUEUE_SKIP_LIMIT); Lock.Unlock(); // Unlock ASAP m_evtRemoved.Set(); diff --git a/src/Generating/FinishGen.cpp b/src/Generating/FinishGen.cpp index 00a93023d..dca346e52 100644 --- a/src/Generating/FinishGen.cpp +++ b/src/Generating/FinishGen.cpp @@ -239,14 +239,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); diff --git a/src/Generating/HeiGen.cpp b/src/Generating/HeiGen.cpp index 3df1a90ff..870ceef7f 100644 --- a/src/Generating/HeiGen.cpp +++ b/src/Generating/HeiGen.cpp @@ -253,7 +253,7 @@ 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 flatness *= flatness * flatness; -- cgit v1.2.3 From bea574bf5425215bbed49ad4b3814804fd8757fc Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Mon, 21 Jul 2014 18:53:56 +0200 Subject: ExtremeHillsPlus and ExtremeHills spawn with grass only Turns out only the M variants have stone and gravel in them. --- src/Generating/DistortedHeightmap.cpp | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/DistortedHeightmap.cpp b/src/Generating/DistortedHeightmap.cpp index b46850a81..74d30c327 100644 --- a/src/Generating/DistortedHeightmap.cpp +++ b/src/Generating/DistortedHeightmap.cpp @@ -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: { -- cgit v1.2.3 From 31b22e14b719e84d2e828ae474d9c6f596024a37 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Tue, 22 Jul 2014 10:04:53 +0200 Subject: Updated prefabs to current Gallery content. --- src/Generating/Prefabs/AlchemistVillagePrefabs.cpp | 38 +- src/Generating/Prefabs/JapaneseVillagePrefabs.cpp | 48 ++- src/Generating/Prefabs/PlainsVillagePrefabs.cpp | 383 ++++++++++----------- 3 files changed, 243 insertions(+), 226 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp b/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp index 8c935c2a5..c08e53ef6 100644 --- a/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp +++ b/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp @@ -2367,9 +2367,9 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = "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 */ + "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 */ @@ -2392,26 +2392,26 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] = /* * 012345678901234 */ /* 0 */ "mmmabbbammmmmmm" /* 1 */ "mmmmbbbmmmmmmmm" - /* 2 */ "acccccccccadddd" - /* 3 */ "cccccccccccdddd" - /* 4 */ "cccccccccccdddd" - /* 5 */ "cccccccccccdddd" - /* 6 */ "cccccccccccdddd" - /* 7 */ "cccccccccccdddd" - /* 8 */ "acccccccccadddd" + /* 2 */ "acccccccccacccc" + /* 3 */ "ccccccccccccccc" + /* 4 */ "ccccccccccccccc" + /* 5 */ "ccccccccccccccc" + /* 6 */ "ccccccccccccccc" + /* 7 */ "ccccccccccccccc" + /* 8 */ "acccccccccacccc" // Level 1 /* z\x* 11111 */ /* * 012345678901234 */ - /* 0 */ "mmmaeeeammmmmmm" - /* 1 */ "mmmmeeemmmmmmmm" - /* 2 */ "accccfccccadddd" - /* 3 */ "cfffffffffcdddd" - /* 4 */ "cfffffffffcdddd" - /* 5 */ "cffffffffffdddd" - /* 6 */ "cfffffffffcdddd" - /* 7 */ "cfffffffffcdddd" - /* 8 */ "acccccccccadddd" + /* 0 */ "mmmadddammmmmmm" + /* 1 */ "mmmmdddmmmmmmmm" + /* 2 */ "acccceccccaffff" + /* 3 */ "ceeeeeeeeecffff" + /* 4 */ "ceeeeeeeeecffff" + /* 5 */ "ceeeeeeeeeeffff" + /* 6 */ "ceeeeeeeeecffff" + /* 7 */ "ceeeeeeeeecffff" + /* 8 */ "acccccccccaffff" // Level 2 /* z\x* 11111 */ diff --git a/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp b/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp index c49015e36..0362c9406 100644 --- a/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp +++ b/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp @@ -134,11 +134,11 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = // The data has been exported from the gallery Plains, area index 166, ID 554, created by Aloe_vera { // Size: - 11, 7, 13, // SizeX = 11, SizeY = 7, SizeZ = 13 + 11, 8, 13, // SizeX = 11, SizeY = 8, SizeZ = 13 // Hitbox (relative to bounding box): 0, 0, 0, // MinX, MinY, MinZ - 10, 6, 12, // MaxX, MaxY, MaxZ + 10, 7, 12, // MaxX, MaxY, MaxZ // Block definitions: ".: 0: 0\n" /* air */ @@ -150,6 +150,7 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = "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: @@ -270,7 +271,24 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = /* 9 */ "..........." /* 10 */ ".h.......h." /* 11 */ "hhh.....hhh" - /* 12 */ ".h.......h.", + /* 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+ */, @@ -2195,33 +2213,33 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] = // Level 1 /* z\x* 0123456 */ - /* 0 */ "bmmmmmm" - /* 1 */ "bmmmmmm" - /* 2 */ "bmmmmmm" - /* 3 */ "bmmmmmm" - /* 4 */ "bmmmmmm" - /* 5 */ "bmmmmmm" + /* 0 */ "bbbbbbb" + /* 1 */ "bbbbbbb" + /* 2 */ "bbbbbbb" + /* 3 */ "bbbabbb" + /* 4 */ "bbbbbbb" + /* 5 */ "bbbbbbb" /* 6 */ "bbbbbbb" // 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 */ diff --git a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp index 714a66559..4613f76e2 100644 --- a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp +++ b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp @@ -356,8 +356,8 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = "e: 8: 0\n" /* water */ "f: 50: 5\n" /* torch */ "g: 59: 7\n" /* crops */ - "h: 59: 0\n" /* crops */ - "i: 59: 1\n" /* crops */ + "h: 59: 3\n" /* crops */ + "i: 59: 5\n" /* crops */ "m: 19: 0\n" /* sponge */, // Block data: @@ -368,7 +368,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* 1 */ "aaaaaaaaaaaaaaa" /* 2 */ "aaaaaaaaaaaaaaa" /* 3 */ "aaaaaaaaaaaaaaa" - /* 4 */ "aaaaaaaaaaaaaaa" + /* 4 */ "aaaaaaabaaaaaaa" /* 5 */ "aaaaaaabaaaaaaa" /* 6 */ "aaaaaaabaaaaaaa" /* 7 */ "aaaaaaabaaaaaaa" @@ -405,12 +405,12 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = /* * 012345678901234 */ /* 0 */ "f.....f.f.....f" /* 1 */ ".gg.gg...gg.gg." - /* 2 */ ".gh.hg...gg.gg." - /* 3 */ ".gh.ih...gg.gg." - /* 4 */ ".gg.hg...gg.gg." - /* 5 */ ".gg.hg...gg.gg." - /* 6 */ ".ig.hg...gg.gg." - /* 7 */ ".hg.gh...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 @@ -3603,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 */ @@ -3629,19 +3629,19 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] = // Level 0 /* z\x* 1 */ /* * 01234567890 */ - /* 0 */ "aaaabbbaaaa" - /* 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 */ @@ -3654,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 */ @@ -3671,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 */ @@ -3689,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 */ @@ -3706,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 */ @@ -3723,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 */ @@ -3740,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 */ @@ -3757,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 */ @@ -3774,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- */, @@ -4237,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 @@ -4274,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 */ @@ -4409,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- */, -- cgit v1.2.3 From 5b148c30f71874d62b55a5134fd4c7897ebe106a Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Tue, 22 Jul 2014 14:44:26 +0200 Subject: Extreme Hills M variant only spawn with grass and stone Removed gravel. --- src/Generating/DistortedHeightmap.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/Generating') diff --git a/src/Generating/DistortedHeightmap.cpp b/src/Generating/DistortedHeightmap.cpp index 74d30c327..1337896ab 100644 --- a/src/Generating/DistortedHeightmap.cpp +++ b/src/Generating/DistortedHeightmap.cpp @@ -759,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; } -- cgit v1.2.3 From 9080f14dc2a1010d4169ba690c4bda8da1188ae9 Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Wed, 23 Jul 2014 11:02:42 +0200 Subject: Fixed possible crash in the NetherClumpFoliage finisher. --- src/Generating/FinishGen.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/Generating') diff --git a/src/Generating/FinishGen.cpp b/src/Generating/FinishGen.cpp index 444af5022..c67cc574e 100644 --- a/src/Generating/FinishGen.cpp +++ b/src/Generating/FinishGen.cpp @@ -125,6 +125,11 @@ void cFinishGenNetherClumpFoliage::TryPlaceClump(cChunkDesc & a_ChunkDesc, int a float zz = (float) a_ChunkDesc.GetChunkZ() * cChunkDef::Width + z; for (int y = a_RelY - 2; y < a_RelY + 2; y++) { + if ((y < 1) || (y > cChunkDef::Height)) + { + continue; + } + if (a_ChunkDesc.GetBlockType(x, y, z) != E_BLOCK_AIR) // Don't replace non air blocks. { continue; -- cgit v1.2.3 From 7e38c123fcce1956f04aec2a57ee86c882e7840a Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Wed, 23 Jul 2014 11:23:35 +0200 Subject: TallGrass: Less grass on mountains. --- src/Generating/FinishGen.h | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/Generating') diff --git a/src/Generating/FinishGen.h b/src/Generating/FinishGen.h index a8a0e1e3b..810bb4a91 100644 --- a/src/Generating/FinishGen.h +++ b/src/Generating/FinishGen.h @@ -94,6 +94,17 @@ protected: { return 70; } + + case biExtremeHillsEdge: + case biExtremeHillsPlus: + case biExtremeHills: + case biExtremeHillsPlusM: + case biExtremeHillsM: + case biIceMountains: + { + return 3; + } + default: { return 20; -- cgit v1.2.3 From 4191be7ddba820af4ed0c505a8d62416c2b7a8b4 Mon Sep 17 00:00:00 2001 From: archshift Date: Tue, 22 Jul 2014 15:36:13 -0700 Subject: Removed redundant semicolons and re-added warning --- src/Generating/ChunkGenerator.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/Generating') 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); -- cgit v1.2.3 From 0f298c8b84756cf5bc055ff82d43ffa9ea8d577b Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Fri, 25 Jul 2014 14:23:36 +0200 Subject: Speed up the NetherClumpFoliage finisher. Using IntNoiseXX instead of CubicNoiseXX. --- src/Generating/FinishGen.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/FinishGen.cpp b/src/Generating/FinishGen.cpp index c67cc574e..b2585bfee 100644 --- a/src/Generating/FinishGen.cpp +++ b/src/Generating/FinishGen.cpp @@ -48,8 +48,8 @@ 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)); + NOISE_DATATYPE Val1 = m_Noise.IntNoise2D((int) (ChunkX * ChunkZ * 0.01f), (int) (ChunkZ / ChunkX * 0.01f)); + NOISE_DATATYPE Val2 = m_Noise.IntNoise2D((int) (ChunkX / ChunkZ / 0.01f), (int) (ChunkZ * ChunkX / 0.01f)); if (Val1 < 0) { @@ -88,12 +88,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); @@ -119,10 +121,10 @@ void cFinishGenNetherClumpFoliage::TryPlaceClump(cChunkDesc & a_ChunkDesc, int a for (int x = a_RelX - 4; x < a_RelX + 4; x++) { - float xx = (float) a_ChunkDesc.GetChunkX() * cChunkDef::Width + x; + int xx = a_ChunkDesc.GetChunkX() * cChunkDef::Width + x; for (int z = a_RelZ - 4; z < a_RelZ + 4; z++) { - float zz = (float) a_ChunkDesc.GetChunkZ() * cChunkDef::Width + z; + int zz = a_ChunkDesc.GetChunkZ() * cChunkDef::Width + z; for (int y = a_RelY - 2; y < a_RelY + 2; y++) { if ((y < 1) || (y > cChunkDef::Height)) @@ -149,9 +151,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); } -- cgit v1.2.3 From a39e19e94a1086cc2c5974cecc5d383cd26b3d12 Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Fri, 25 Jul 2014 21:01:40 +0200 Subject: Tweaks to NetherClumpFoliage Simplefied the way NetherClupFoliage creates the X and Z coordinate. --- src/Generating/FinishGen.cpp | 40 ++++++---------------------------------- 1 file changed, 6 insertions(+), 34 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/FinishGen.cpp b/src/Generating/FinishGen.cpp index b2585bfee..4c40270e8 100644 --- a/src/Generating/FinishGen.cpp +++ b/src/Generating/FinishGen.cpp @@ -45,42 +45,14 @@ static inline bool IsWater(BLOCKTYPE a_BlockType) 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.IntNoise2D((int) (ChunkX * ChunkZ * 0.01f), (int) (ChunkZ / ChunkX * 0.01f)); - NOISE_DATATYPE Val2 = m_Noise.IntNoise2D((int) (ChunkX / ChunkZ / 0.01f), (int) (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++) { -- cgit v1.2.3 From 77f4297c6ee4daca51220f60b626658a22a22ea2 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Sun, 27 Jul 2014 00:03:26 +0200 Subject: RoughRavines: Initial generator implementation. This provides the basic shape of the ravines, with the basic settings based on GridStructGen, and good default values. --- src/Generating/CMakeLists.txt | 2 + src/Generating/ComposableGenerator.cpp | 14 ++- src/Generating/RoughRavines.cpp | 214 +++++++++++++++++++++++++++++++++ src/Generating/RoughRavines.h | 37 ++++++ 4 files changed, 264 insertions(+), 3 deletions(-) create mode 100644 src/Generating/RoughRavines.cpp create mode 100644 src/Generating/RoughRavines.h (limited to 'src/Generating') diff --git a/src/Generating/CMakeLists.txt b/src/Generating/CMakeLists.txt index 9063abd97..58df9d421 100644 --- a/src/Generating/CMakeLists.txt +++ b/src/Generating/CMakeLists.txt @@ -25,6 +25,7 @@ SET (SRCS PrefabPiecePool.cpp RainbowRoadsGen.cpp Ravines.cpp + RoughRavines.cpp StructGen.cpp TestRailsGen.cpp Trees.cpp @@ -52,6 +53,7 @@ SET (HDRS PrefabPiecePool.h RainbowRoadsGen.h Ravines.h + RoughRavines.h StructGen.h TestRailsGen.h Trees.h diff --git a/src/Generating/ComposableGenerator.cpp b/src/Generating/ComposableGenerator.cpp index ab6accee7..757f6ddb7 100644 --- a/src/Generating/ComposableGenerator.cpp +++ b/src/Generating/ComposableGenerator.cpp @@ -26,6 +26,7 @@ #include "POCPieceGenerator.h" #include "RainbowRoadsGen.h" #include "Ravines.h" +#include "RoughRavines.h" #include "TestRailsGen.h" #include "UnderwaterBaseGen.h" #include "VillageGen.h" @@ -397,16 +398,23 @@ void cComposableGenerator::InitFinishGens(cIniFile & a_IniFile) } 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", 64); + m_FinishGens.push_back(new cRoughRavines(Seed, MaxSize, GridSize, MaxOffset)); + } else if (NoCaseCompare(*itr, "Snow") == 0) { m_FinishGens.push_back(new cFinishGenSnow); diff --git a/src/Generating/RoughRavines.cpp b/src/Generating/RoughRavines.cpp new file mode 100644 index 000000000..1b1351a19 --- /dev/null +++ b/src/Generating/RoughRavines.cpp @@ -0,0 +1,214 @@ + +// 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_MaxSize, int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ) : + super(a_GridX, a_GridZ, a_OriginX, a_OriginZ), + m_Noise(a_Seed + 100), + m_MaxSize(a_MaxSize) + { + // Create the basic structure - 2 lines meeting at the centerpoint: + m_DefPoints.resize(a_MaxSize + 1); + int Half = a_MaxSize / 2; // m_DefPoints[Half] will be the centerpoint + int rnd = m_Noise.IntNoise2DInt(a_OriginX, a_OriginZ) / 7; + float Len = (float)(3 * a_MaxSize / 4 + rnd % (a_MaxSize / 4)); // Random number between 3 / 4 * a_MaxSize and a_MaxSize + rnd = rnd / a_MaxSize; + 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, 42, 34); + m_DefPoints[Half].Set ((float)a_OriginX, (float)a_OriginZ, Len / 10, 62, 16); + m_DefPoints[a_MaxSize].Set(a_OriginX + OfsX, a_OriginZ + OfsZ, 1, 44, 32); + + // Calculate the points in between, recursively: + SubdivideLine(0, Half); + SubdivideLine(Half, a_MaxSize); + } + +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 sRavineDefPoints; + + cNoise m_Noise; + + int m_MaxSize; + + sRavineDefPoints m_DefPoints; + + + /** 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 / 10; + MidZ -= dx / 10; + } + else + { + MidX -= dz / 10; + MidZ += dx / 10; + } + 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); + } + } + + + 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) < BlockStartX) || + (floorf(itr->m_X - itr->m_Radius) > BlockEndX) || + (ceilf (itr->m_Z + itr->m_Radius) < BlockStartZ) || + (floorf(itr->m_Z - itr->m_Radius) > BlockEndZ) + ) + { + // Cannot intersect, bail out early + continue; + } + + // Carve out a cylinder around the xz point, m_Radius in diameter, from Bottom to Top: + float RadiusSq = itr->m_Radius * itr->m_Radius; // instead of doing sqrt for each distance, we do sqr of the radius + 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 + + float DistSq = (DifX + x) * (DifX + x) + (DifZ + z) * (DifZ + z); + if (DistSq <= RadiusSq) + { + 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++) + { + switch (a_ChunkDesc.GetBlockType(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_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: + { + a_ChunkDesc.SetBlockType(x, y, z, E_BLOCK_AIR); + break; + } + default: break; + } + } + } + } // for x, z - a_BlockTypes + } // for itr - m_Points[] + } +}; + + + + + +//////////////////////////////////////////////////////////////////////////////// +// cRoughRavines: + +cRoughRavines::cRoughRavines(int a_Seed, int a_MaxSize, 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) +{ + if (m_MaxSize < 1) + { + m_MaxSize = 16; + LOGWARNING("RoughRavines: MaxSize too small, adjusting request from %d to %d", a_MaxSize, m_MaxSize); + } +} + + + + + +cGridStructGen::cStructurePtr cRoughRavines::CreateStructure(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ) +{ + return cStructurePtr(new cRoughRavine(m_Seed, m_MaxSize, 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..68c628d84 --- /dev/null +++ b/src/Generating/RoughRavines.h @@ -0,0 +1,37 @@ + +// 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_GridSize, int a_MaxOffset); + +protected: + int m_Seed; + + /** Maximum size of the ravine, in each of the X / Z axis */ + int m_MaxSize; + + // cGridStructGen overrides: + virtual cStructurePtr CreateStructure(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ) override; +}; + + + + -- cgit v1.2.3 From ce54936f01a832e8bcbd6320d95b4208bad3487f Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Sun, 27 Jul 2014 00:08:25 +0200 Subject: Updated NetherFort prefabs to latest Gallery content. --- src/Generating/Prefabs/NetherFortPrefabs.cpp | 789 +++++++++++++++++++++++++-- 1 file changed, 752 insertions(+), 37 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/Prefabs/NetherFortPrefabs.cpp b/src/Generating/Prefabs/NetherFortPrefabs.cpp index ee3a8899b..fb0e93daa 100644 --- a/src/Generating/Prefabs/NetherFortPrefabs.cpp +++ b/src/Generating/Prefabs/NetherFortPrefabs.cpp @@ -1410,6 +1410,383 @@ 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: + 100, + + // 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 @@ -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+ */ @@ -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 */ @@ -4314,6 +4696,339 @@ 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: + 100, + + // 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 -- cgit v1.2.3 From 50fc1a54699b437aa7f5fccc22f594707d31238d Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Sun, 27 Jul 2014 11:59:54 +0200 Subject: NetherClumpFoliage: Fixed assert --- src/Generating/FinishGen.cpp | 47 ++++++++++++++++++++++++++++++++++++-------- 1 file changed, 39 insertions(+), 8 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/FinishGen.cpp b/src/Generating/FinishGen.cpp index 4c40270e8..03137f616 100644 --- a/src/Generating/FinishGen.cpp +++ b/src/Generating/FinishGen.cpp @@ -91,19 +91,50 @@ 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. + { + 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 = a_RelZ - 4; z < a_RelZ + 4; z++) + for (int z = MinZ; z < MaxZ; z++) { int zz = a_ChunkDesc.GetChunkZ() * cChunkDef::Width + z; - for (int y = a_RelY - 2; y < a_RelY + 2; y++) + for (int y = MinY; y < MaxY; y++) { - if ((y < 1) || (y > cChunkDef::Height)) - { - continue; - } - if (a_ChunkDesc.GetBlockType(x, y, z) != E_BLOCK_AIR) // Don't replace non air blocks. { continue; -- cgit v1.2.3 From fe7018bd005adb8dadf849bd988696d638919f23 Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Sun, 27 Jul 2014 13:12:45 +0200 Subject: Added a ceiling to disguise the bedrock above it. --- src/Generating/CompoGen.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/Generating') diff --git a/src/Generating/CompoGen.cpp b/src/Generating/CompoGen.cpp index faf2ac243..655d629b7 100644 --- a/src/Generating/CompoGen.cpp +++ b/src/Generating/CompoGen.cpp @@ -628,7 +628,15 @@ 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); + int CeilingDisguiseHeight = Height - 2 - (m_Noise1.IntNoise2DInt(a_ChunkDesc.GetChunkX() * cChunkDef::Width + x, a_ChunkDesc.GetChunkZ() * cChunkDef::Width + z) % 3); + + for (int y = Height - 1; y > CeilingDisguiseHeight; y--) + { + a_ChunkDesc.SetBlockType(x, y, z, E_BLOCK_NETHERRACK); + } } } -- cgit v1.2.3 From 472f70a6762369eb3375eb1ed874a95faaf2de71 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Sun, 27 Jul 2014 13:54:27 +0200 Subject: RoughRavines: More settings - size, width, roughness --- src/Generating/ComposableGenerator.cpp | 18 +++++++--- src/Generating/RoughRavines.cpp | 66 ++++++++++++++++++++++++---------- src/Generating/RoughRavines.h | 23 +++++++++++- 3 files changed, 84 insertions(+), 23 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/ComposableGenerator.cpp b/src/Generating/ComposableGenerator.cpp index 757f6ddb7..3326dda36 100644 --- a/src/Generating/ComposableGenerator.cpp +++ b/src/Generating/ComposableGenerator.cpp @@ -410,10 +410,20 @@ void cComposableGenerator::InitFinishGens(cIniFile & a_IniFile) } 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", 64); - m_FinishGens.push_back(new cRoughRavines(Seed, MaxSize, GridSize, MaxOffset)); + 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); + m_FinishGens.push_back(new cRoughRavines( + Seed, MaxSize, MinSize, + (float)MaxCenterWidth, (float)MinCenterWidth, + (float)MaxRoughness, (float)MinRoughness, + GridSize, MaxOffset + )); } else if (NoCaseCompare(*itr, "Snow") == 0) { diff --git a/src/Generating/RoughRavines.cpp b/src/Generating/RoughRavines.cpp index 1b1351a19..ddc1a0351 100644 --- a/src/Generating/RoughRavines.cpp +++ b/src/Generating/RoughRavines.cpp @@ -20,27 +20,27 @@ class cRoughRavine : typedef cGridStructGen::cStructure super; public: - cRoughRavine(int a_Seed, int a_MaxSize, int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ) : + cRoughRavine(int a_Seed, int a_Size, float a_CenterWidth, float a_Roughness, int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ) : super(a_GridX, a_GridZ, a_OriginX, a_OriginZ), m_Noise(a_Seed + 100), - m_MaxSize(a_MaxSize) + m_Roughness(a_Roughness) { // Create the basic structure - 2 lines meeting at the centerpoint: - m_DefPoints.resize(a_MaxSize + 1); - int Half = a_MaxSize / 2; // m_DefPoints[Half] will be 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)(3 * a_MaxSize / 4 + rnd % (a_MaxSize / 4)); // Random number between 3 / 4 * a_MaxSize and a_MaxSize - rnd = rnd / a_MaxSize; + 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, 42, 34); - m_DefPoints[Half].Set ((float)a_OriginX, (float)a_OriginZ, Len / 10, 62, 16); - m_DefPoints[a_MaxSize].Set(a_OriginX + OfsX, a_OriginZ + OfsZ, 1, 44, 32); + m_DefPoints[0].Set (a_OriginX - OfsX, a_OriginZ - OfsZ, 1, 42, 34); + m_DefPoints[Half].Set((float)a_OriginX, (float)a_OriginZ, a_CenterWidth, 62, 16); + m_DefPoints[Max].Set (a_OriginX + OfsX, a_OriginZ + OfsZ, 1, 44, 32); // Calculate the points in between, recursively: SubdivideLine(0, Half); - SubdivideLine(Half, a_MaxSize); + SubdivideLine(Half, Max); } protected: @@ -69,6 +69,8 @@ protected: sRavineDefPoints m_DefPoints; + float m_Roughness; + /** 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 @@ -89,13 +91,13 @@ protected: float dz = p2.m_Z - p1.m_Z; if ((m_Noise.IntNoise2DInt((int)MidX, (int)MidZ) / 11) % 2 == 0) { - MidX += dz / 10; - MidZ -= dx / 10; + MidX += dz * m_Roughness; + MidZ -= dx * m_Roughness; } else { - MidX -= dz / 10; - MidZ += dx / 10; + MidX -= dz * m_Roughness; + MidZ += dx * m_Roughness; } int MidIdx = (a_Idx1 + a_Idx2) / 2; m_DefPoints[MidIdx].Set(MidX, MidZ, MidR, MidT, MidB); @@ -188,16 +190,41 @@ protected: //////////////////////////////////////////////////////////////////////////////// // cRoughRavines: -cRoughRavines::cRoughRavines(int a_Seed, int a_MaxSize, int a_GridSize, int a_MaxOffset) : +cRoughRavines::cRoughRavines( + int a_Seed, + int a_MaxSize, int a_MinSize, + float a_MaxCenterWidth, float a_MinCenterWidth, + float a_MaxRoughness, float a_MinRoughness, + 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_MaxSize(a_MaxSize), + m_MinSize(a_MinSize), + m_MaxCenterWidth(a_MaxCenterWidth), + m_MinCenterWidth(a_MinCenterWidth), + m_MaxRoughness(a_MaxRoughness), + m_MinRoughness(a_MinRoughness) { - if (m_MaxSize < 1) + 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; + } } @@ -206,7 +233,10 @@ cRoughRavines::cRoughRavines(int a_Seed, int a_MaxSize, int a_GridSize, int a_Ma cGridStructGen::cStructurePtr cRoughRavines::CreateStructure(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ) { - return cStructurePtr(new cRoughRavine(m_Seed, m_MaxSize, a_GridX, a_GridZ, a_OriginX, a_OriginZ)); + 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_MinCenterWidth + abs(m_Noise.IntNoise2D(a_GridX, a_GridZ + 10)) * (m_MaxCenterWidth - m_MinCenterWidth); // Random float from m_MinCenterWidth to m_MaxCenterWidth + float Roughness = m_MinRoughness + abs(m_Noise.IntNoise2D(a_GridX + 10, a_GridZ)) * (m_MaxRoughness - m_MinRoughness); // Random float from m_MinRoughness to m_MaxRoughness + return cStructurePtr(new cRoughRavine(m_Seed, Size, CenterWidth, Roughness, a_GridX, a_GridZ, a_OriginX, a_OriginZ)); } diff --git a/src/Generating/RoughRavines.h b/src/Generating/RoughRavines.h index 68c628d84..dce2f9ba7 100644 --- a/src/Generating/RoughRavines.h +++ b/src/Generating/RoughRavines.h @@ -20,13 +20,34 @@ class cRoughRavines : typedef cGridStructGen super; public: - cRoughRavines(int a_Seed, int a_MaxSize, int a_GridSize, int a_MaxOffset); + cRoughRavines( + int a_Seed, + int a_MaxSize, int a_MinSize, + float a_MaxCenterWidth, float a_MinCenterWidth, + float a_MaxRoughness, float a_MinRoughness, + 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; // cGridStructGen overrides: virtual cStructurePtr CreateStructure(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ) override; -- cgit v1.2.3 From bfad1be567ac4fd2393398f52c615496422a67f8 Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Sun, 27 Jul 2014 14:03:23 +0200 Subject: Made nether ceiling smooth. --- src/Generating/CompoGen.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/Generating') diff --git a/src/Generating/CompoGen.cpp b/src/Generating/CompoGen.cpp index 655d629b7..87557afa0 100644 --- a/src/Generating/CompoGen.cpp +++ b/src/Generating/CompoGen.cpp @@ -631,7 +631,14 @@ void cCompoGenNether::ComposeTerrain(cChunkDesc & a_ChunkDesc) int Height = a_ChunkDesc.GetHeight(x, z); a_ChunkDesc.SetBlockType(x, Height, z, E_BLOCK_BEDROCK); - int CeilingDisguiseHeight = Height - 2 - (m_Noise1.IntNoise2DInt(a_ChunkDesc.GetChunkX() * cChunkDef::Width + x, a_ChunkDesc.GetChunkZ() * cChunkDef::Width + z) % 3); + // int CeilingDisguiseHeight = Height - 2 - (m_Noise1.IntNoise2DInt(a_ChunkDesc.GetChunkX() * cChunkDef::Width + x, a_ChunkDesc.GetChunkZ() * cChunkDef::Width + z) % 3); + 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 - CeilingDisguise * 3; for (int y = Height - 1; y > CeilingDisguiseHeight; y--) { -- cgit v1.2.3 From 3addd4890c8e09a561b93e84b542a2ab08ee0496 Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Sun, 27 Jul 2014 14:04:34 +0200 Subject: Removed forgotten comment --- src/Generating/CompoGen.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/Generating') diff --git a/src/Generating/CompoGen.cpp b/src/Generating/CompoGen.cpp index 87557afa0..912d74248 100644 --- a/src/Generating/CompoGen.cpp +++ b/src/Generating/CompoGen.cpp @@ -631,7 +631,7 @@ void cCompoGenNether::ComposeTerrain(cChunkDesc & a_ChunkDesc) int Height = a_ChunkDesc.GetHeight(x, z); a_ChunkDesc.SetBlockType(x, Height, z, E_BLOCK_BEDROCK); - // int CeilingDisguiseHeight = Height - 2 - (m_Noise1.IntNoise2DInt(a_ChunkDesc.GetChunkX() * cChunkDef::Width + x, a_ChunkDesc.GetChunkZ() * cChunkDef::Width + z) % 3); + 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) { -- cgit v1.2.3 From 960ab982b96d23485b6c42df1ed2b08a251a0c22 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Sun, 27 Jul 2014 16:05:45 +0200 Subject: RoughRavines: Added per-height radius modifier. Ledges! --- src/Generating/RoughRavines.cpp | 105 ++++++++++++++++++++++++++++------------ 1 file changed, 73 insertions(+), 32 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/RoughRavines.cpp b/src/Generating/RoughRavines.cpp index ddc1a0351..8dec791c9 100644 --- a/src/Generating/RoughRavines.cpp +++ b/src/Generating/RoughRavines.cpp @@ -22,6 +22,7 @@ class cRoughRavine : public: cRoughRavine(int a_Seed, int a_Size, float a_CenterWidth, float a_Roughness, 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) { @@ -41,6 +42,9 @@ public: // Calculate the points in between, recursively: SubdivideLine(0, Half); SubdivideLine(Half, Max); + + // Initialize the per-height radius modifiers: + InitPerHeightRadius(a_GridX, a_GridZ); } protected: @@ -63,6 +67,8 @@ protected: }; typedef std::vector sRavineDefPoints; + int m_Seed; + cNoise m_Noise; int m_MaxSize; @@ -71,6 +77,9 @@ protected: 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 @@ -114,6 +123,29 @@ protected: } + 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; @@ -123,18 +155,20 @@ protected: for (sRavineDefPoints::const_iterator itr = m_DefPoints.begin(), end = m_DefPoints.end(); itr != end; ++itr) { if ( - (ceilf (itr->m_X + itr->m_Radius) < BlockStartX) || - (floorf(itr->m_X - itr->m_Radius) > BlockEndX) || - (ceilf (itr->m_Z + itr->m_Radius) < BlockStartZ) || - (floorf(itr->m_Z - itr->m_Radius) > BlockEndZ) + (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, m_Radius in diameter, from Bottom to Top: - float RadiusSq = itr->m_Radius * itr->m_Radius; // instead of doing sqrt for each distance, we do sqr of the radius + // 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++) @@ -147,37 +181,44 @@ protected: } #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) + 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++) { - 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; + } + switch (a_ChunkDesc.GetBlockType(x, y, z)) { - switch (a_ChunkDesc.GetBlockType(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_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: { - // 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_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: - { - a_ChunkDesc.SetBlockType(x, y, z, E_BLOCK_AIR); - break; - } - default: break; + a_ChunkDesc.SetBlockType(x, y, z, E_BLOCK_AIR); + break; } - } - } + default: break; + } // switch (BlockType) + } // for y } // for x, z - a_BlockTypes } // for itr - m_Points[] } -- cgit v1.2.3 From 30893e7ee2f4dbaa3e4348b07cdc77aada168e1f Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Sun, 27 Jul 2014 19:57:47 +0200 Subject: RoughRavines: Made floor and ceiling settings-adjustable. The world.ini has settings for the minimum and maximum height for each at the ravines' center and edges. --- src/Generating/ComposableGenerator.cpp | 32 ++++++++++++++------- src/Generating/RoughRavines.cpp | 51 ++++++++++++++++++++++++++++------ src/Generating/RoughRavines.h | 30 +++++++++++++++++++- 3 files changed, 93 insertions(+), 20 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/ComposableGenerator.cpp b/src/Generating/ComposableGenerator.cpp index 3326dda36..0d9bedf45 100644 --- a/src/Generating/ComposableGenerator.cpp +++ b/src/Generating/ComposableGenerator.cpp @@ -410,18 +410,30 @@ void cComposableGenerator::InitFinishGens(cIniFile & a_IniFile) } 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); + 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)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 )); } diff --git a/src/Generating/RoughRavines.cpp b/src/Generating/RoughRavines.cpp index 8dec791c9..badc7768e 100644 --- a/src/Generating/RoughRavines.cpp +++ b/src/Generating/RoughRavines.cpp @@ -20,7 +20,13 @@ class cRoughRavine : typedef cGridStructGen::cStructure super; public: - cRoughRavine(int a_Seed, int a_Size, float a_CenterWidth, float a_Roughness, int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ) : + 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), @@ -35,9 +41,9 @@ public: 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, 42, 34); - m_DefPoints[Half].Set((float)a_OriginX, (float)a_OriginZ, a_CenterWidth, 62, 16); - m_DefPoints[Max].Set (a_OriginX + OfsX, a_OriginZ + OfsZ, 1, 44, 32); + 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); @@ -235,7 +241,11 @@ 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_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), @@ -245,7 +255,15 @@ cRoughRavines::cRoughRavines( m_MaxCenterWidth(a_MaxCenterWidth), m_MinCenterWidth(a_MinCenterWidth), m_MaxRoughness(a_MaxRoughness), - m_MinRoughness(a_MinRoughness) + 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) { @@ -274,10 +292,25 @@ cRoughRavines::cRoughRavines( cGridStructGen::cStructurePtr cRoughRavines::CreateStructure(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ) { + // Pick a random value for each of the ravine's parameters: int Size = m_MinSize + (m_Noise.IntNoise2DInt(a_GridX, a_GridZ) / 7) % (m_MaxSize - m_MinSize); // Random int from m_MinSize to m_MaxSize - float CenterWidth = m_MinCenterWidth + abs(m_Noise.IntNoise2D(a_GridX, a_GridZ + 10)) * (m_MaxCenterWidth - m_MinCenterWidth); // Random float from m_MinCenterWidth to m_MaxCenterWidth - float Roughness = m_MinRoughness + abs(m_Noise.IntNoise2D(a_GridX + 10, a_GridZ)) * (m_MaxRoughness - m_MinRoughness); // Random float from m_MinRoughness to m_MaxRoughness - return cStructurePtr(new cRoughRavine(m_Seed, Size, CenterWidth, Roughness, a_GridX, a_GridZ, a_OriginX, a_OriginZ)); + 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 index dce2f9ba7..4c905b641 100644 --- a/src/Generating/RoughRavines.h +++ b/src/Generating/RoughRavines.h @@ -24,7 +24,11 @@ public: int a_Seed, int a_MaxSize, int a_MinSize, float a_MaxCenterWidth, float a_MinCenterWidth, - float a_MaxRoughness, float a_MinRoughness, + 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 ); @@ -49,6 +53,30 @@ protected: /** 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; }; -- cgit v1.2.3 From 003f0e69a9fb8a6d617f498b238543c903cff313 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Sun, 27 Jul 2014 20:04:09 +0200 Subject: Updated NetherForts' weights. --- src/Generating/Prefabs/NetherFortPrefabs.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/Prefabs/NetherFortPrefabs.cpp b/src/Generating/Prefabs/NetherFortPrefabs.cpp index fb0e93daa..a3e3da158 100644 --- a/src/Generating/Prefabs/NetherFortPrefabs.cpp +++ b/src/Generating/Prefabs/NetherFortPrefabs.cpp @@ -1773,7 +1773,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = true, // DefaultWeight: - 100, + 20, // DepthWeight: "", @@ -5015,7 +5015,7 @@ const cPrefab::sDef g_NetherFortPrefabs[] = true, // DefaultWeight: - 100, + 20, // DepthWeight: "", -- cgit v1.2.3 From d61f1d0f4a1565d4de7e8100d9bf766d6fd458d1 Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Sun, 27 Jul 2014 20:48:39 +0200 Subject: NetherClumpGenerator: Fixed generating stuff on halfslabs and fences --- src/Generating/FinishGen.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/Generating') diff --git a/src/Generating/FinishGen.cpp b/src/Generating/FinishGen.cpp index 03137f616..9f0c8f3fa 100644 --- a/src/Generating/FinishGen.cpp +++ b/src/Generating/FinishGen.cpp @@ -141,7 +141,7 @@ void cFinishGenNetherClumpFoliage::TryPlaceClump(cChunkDesc & a_ChunkDesc, int a } 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; } -- cgit v1.2.3 From 5b69b2ce4faf5a14e6ab5d5974b790d2bd751a95 Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Mon, 28 Jul 2014 12:30:16 +0200 Subject: DistortedHeightmap: Now generates gravel in deep ocean. --- src/Generating/DistortedHeightmap.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/Generating') diff --git a/src/Generating/DistortedHeightmap.cpp b/src/Generating/DistortedHeightmap.cpp index 1337896ab..c18c402da 100644 --- a/src/Generating/DistortedHeightmap.cpp +++ b/src/Generating/DistortedHeightmap.cpp @@ -809,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); -- cgit v1.2.3 From bf1aa7993202c2f57de88b068d999d262f1874f6 Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Mon, 28 Jul 2014 14:23:29 +0200 Subject: Renamed cFinishGenSingleBiomeSingleTopBlock to cFinishGenSingleTopBlock Now accepts a vector of biomes and a vector of allowed blocks. --- src/Generating/ComposableGenerator.cpp | 31 +++++++++++++++++++-- src/Generating/FinishGen.cpp | 21 ++++++++------ src/Generating/FinishGen.h | 50 +++++++++++++++++++++++++++------- 3 files changed, 82 insertions(+), 20 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/ComposableGenerator.cpp b/src/Generating/ComposableGenerator.cpp index ab6accee7..ed1e7f6c1 100644 --- a/src/Generating/ComposableGenerator.cpp +++ b/src/Generating/ComposableGenerator.cpp @@ -323,7 +323,24 @@ 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(biMesaPlateauF); + AllowedBiomes.push_back(biMesaPlateauFM); + AllowedBiomes.push_back(biMesaPlateauM); + + // A list with all the allowed blocks that can be below the lilypad. + 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) { @@ -370,7 +387,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) { diff --git a/src/Generating/FinishGen.cpp b/src/Generating/FinishGen.cpp index 9f0c8f3fa..4c99c7f86 100644 --- a/src/Generating/FinishGen.cpp +++ b/src/Generating/FinishGen.cpp @@ -456,12 +456,12 @@ void cFinishGenIce::GenFinish(cChunkDesc & a_ChunkDesc) //////////////////////////////////////////////////////////////////////////////// // cFinishGenLilypads: -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++; } @@ -473,7 +473,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 @@ -486,11 +486,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) { @@ -502,13 +504,16 @@ 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); + } } diff --git a/src/Generating/FinishGen.h b/src/Generating/FinishGen.h index 810bb4a91..1b885df88 100644 --- a/src/Generating/FinishGen.h +++ b/src/Generating/FinishGen.h @@ -143,32 +143,62 @@ 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 BlockList; + typedef std::vector BiomeList; + + 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_Biomes(a_Biomes), m_Amount(a_Amount), - m_AllowedBelow1(a_AllowedBelow1), - m_AllowedBelow2(a_AllowedBelow2) + m_AllowedBelow(a_AllowedBelow) { } 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 + + BlockList m_AllowedBelow; + BiomeList m_Biomes; int GetNumToGen(const cChunkDef::BiomeMap & a_BiomeMap); + + // Returns true if the given biome is a biome that is allowed. + bool IsAllowedBiome(EMCSBiome a_Biome) + { + for (BiomeList::iterator itr = m_Biomes.begin(); itr != m_Biomes.end(); ++itr) + { + if (a_Biome == *itr) + { + return true; + } + } + return false; + } + + // Returns true if the given blocktype may be below m_BlockType + bool IsAllowedBlockBelow(BLOCKTYPE a_BlockBelow) + { + for (BlockList::iterator itr = m_AllowedBelow.begin(); itr != m_AllowedBelow.end(); ++itr) + { + if (*itr == a_BlockBelow) + { + return true; + } + } + return false; + } + // cFinishGen override: virtual void GenFinish(cChunkDesc & a_ChunkDesc) override; -- cgit v1.2.3 From 579f850506a1cc72f8f205f9e8c686f434e63023 Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Mon, 28 Jul 2014 14:28:16 +0200 Subject: Forgot Mesa Plateau biome. --- src/Generating/ComposableGenerator.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src/Generating') diff --git a/src/Generating/ComposableGenerator.cpp b/src/Generating/ComposableGenerator.cpp index ed1e7f6c1..a8c1a842f 100644 --- a/src/Generating/ComposableGenerator.cpp +++ b/src/Generating/ComposableGenerator.cpp @@ -330,6 +330,7 @@ void cComposableGenerator::InitFinishGens(cIniFile & a_IniFile) 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); -- cgit v1.2.3 From e74984675cf74f3a74d2694dda10802b158f734c Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Mon, 28 Jul 2014 16:53:01 +0200 Subject: Using suggestions --- src/Generating/FinishGen.h | 45 ++++++++++++++++++++------------------------- 1 file changed, 20 insertions(+), 25 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/FinishGen.h b/src/Generating/FinishGen.h index 1b885df88..a856b2cda 100644 --- a/src/Generating/FinishGen.h +++ b/src/Generating/FinishGen.h @@ -147,9 +147,12 @@ class cFinishGenSingleTopBlock : public cFinishGen { public: - typedef std::vector BlockList; + bool m_IsAllowedBelow[256]; + typedef std::vector BiomeList; + bool m_IsBiomeAllowed[256]; + cFinishGenSingleTopBlock( int a_Seed, BLOCKTYPE a_BlockType, BiomeList a_Biomes, int a_Amount, @@ -157,46 +160,38 @@ public: ) : m_Noise(a_Seed), m_BlockType(a_BlockType), - m_Biomes(a_Biomes), - m_Amount(a_Amount), - m_AllowedBelow(a_AllowedBelow) + m_Amount(a_Amount) { + // Load the allowed blocks into m_IsAllowedBelow + for (BlockList::iterator itr = a_AllowedBelow.begin(); itr != a_AllowedBelow.end(); ++itr) + { + m_IsAllowedBelow[*itr] = true; + } + + // 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; int m_Amount; ///< Relative amount of blocks to try adding. 1 = one block per 256 biome columns. - - BlockList m_AllowedBelow; - BiomeList m_Biomes; int GetNumToGen(const cChunkDef::BiomeMap & a_BiomeMap); // Returns true if the given biome is a biome that is allowed. - bool IsAllowedBiome(EMCSBiome a_Biome) + inline bool IsAllowedBiome(EMCSBiome a_Biome) { - for (BiomeList::iterator itr = m_Biomes.begin(); itr != m_Biomes.end(); ++itr) - { - if (a_Biome == *itr) - { - return true; - } - } - return false; + return m_IsBiomeAllowed[a_Biome]; } // Returns true if the given blocktype may be below m_BlockType - bool IsAllowedBlockBelow(BLOCKTYPE a_BlockBelow) + inline bool IsAllowedBlockBelow(BLOCKTYPE a_BlockBelow) { - for (BlockList::iterator itr = m_AllowedBelow.begin(); itr != m_AllowedBelow.end(); ++itr) - { - if (*itr == a_BlockBelow) - { - return true; - } - } - return false; + return m_IsAllowedBelow[a_BlockBelow]; } -- cgit v1.2.3 From 57bb03148af3ad2adf2e613cf11ec8bc1852e00e Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Tue, 29 Jul 2014 13:13:23 +0200 Subject: SingleTopBlock: All blocktypes and biometypes get initialized properly --- src/Generating/FinishGen.h | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/FinishGen.h b/src/Generating/FinishGen.h index a856b2cda..2500ab344 100644 --- a/src/Generating/FinishGen.h +++ b/src/Generating/FinishGen.h @@ -161,13 +161,25 @@ public: m_Noise(a_Seed), m_BlockType(a_BlockType), m_Amount(a_Amount) - { + { + // Initialize all the block types. + for (int 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 (int 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) { -- cgit v1.2.3 From c8c01b055d49496f1e0ed340b816dfc57f9edd68 Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Tue, 29 Jul 2014 15:24:11 +0200 Subject: Fixed comment above cFinishGenSingleTopBlock --- src/Generating/FinishGen.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/Generating') diff --git a/src/Generating/FinishGen.cpp b/src/Generating/FinishGen.cpp index 4c99c7f86..842c9ccc5 100644 --- a/src/Generating/FinishGen.cpp +++ b/src/Generating/FinishGen.cpp @@ -454,7 +454,7 @@ void cFinishGenIce::GenFinish(cChunkDesc & a_ChunkDesc) //////////////////////////////////////////////////////////////////////////////// -// cFinishGenLilypads: +// cFinishGenSingleTopBlock: int cFinishGenSingleTopBlock::GetNumToGen(const cChunkDef::BiomeMap & a_BiomeMap) { -- cgit v1.2.3 From 4ccf14f3b3f7deb19a32afd4253c506d5a224c54 Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Tue, 29 Jul 2014 17:01:15 +0200 Subject: Some finishing touches Removed whitespace fixed dead bush comment --- src/Generating/ComposableGenerator.cpp | 2 +- src/Generating/FinishGen.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'src/Generating') diff --git a/src/Generating/ComposableGenerator.cpp b/src/Generating/ComposableGenerator.cpp index a8c1a842f..5231b499f 100644 --- a/src/Generating/ComposableGenerator.cpp +++ b/src/Generating/ComposableGenerator.cpp @@ -335,7 +335,7 @@ void cComposableGenerator::InitFinishGens(cIniFile & a_IniFile) AllowedBiomes.push_back(biMesaPlateauFM); AllowedBiomes.push_back(biMesaPlateauM); - // A list with all the allowed blocks that can be below the lilypad. + // 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); diff --git a/src/Generating/FinishGen.h b/src/Generating/FinishGen.h index 2500ab344..ed32768b3 100644 --- a/src/Generating/FinishGen.h +++ b/src/Generating/FinishGen.h @@ -161,7 +161,7 @@ public: m_Noise(a_Seed), m_BlockType(a_BlockType), m_Amount(a_Amount) - { + { // Initialize all the block types. for (int idx = 0; idx < ARRAYCOUNT(m_IsAllowedBelow); ++idx) { -- cgit v1.2.3 From 4f5d73b7704e351365a987b421c35f1384afa240 Mon Sep 17 00:00:00 2001 From: Tiger Wang Date: Tue, 29 Jul 2014 20:50:30 +0100 Subject: Slight cleanup after portals --- src/Generating/CompoGen.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/Generating') diff --git a/src/Generating/CompoGen.cpp b/src/Generating/CompoGen.cpp index 912d74248..178673e32 100644 --- a/src/Generating/CompoGen.cpp +++ b/src/Generating/CompoGen.cpp @@ -638,7 +638,7 @@ void cCompoGenNether::ComposeTerrain(cChunkDesc & a_ChunkDesc) CeilingDisguise = -CeilingDisguise; } - int CeilingDisguiseHeight = Height - 2 - CeilingDisguise * 3; + int CeilingDisguiseHeight = Height - 2 - (int)CeilingDisguise * 3; for (int y = Height - 1; y > CeilingDisguiseHeight; y--) { -- cgit v1.2.3