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.
This commit is contained in:
parent
3660ce6834
commit
f5fdbdaf29
@ -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);
|
||||
|
@ -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 */
|
||||
|
@ -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 */
|
||||
|
@ -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<cItem> cItemPtr;
|
||||
typedef std::vector<cItemPtr> 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));
|
||||
}
|
||||
|
||||
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user