summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--MCServer/Plugins/APIDump/Hooks/OnKilled.lua22
-rw-r--r--MCServer/Plugins/APIDump/Hooks/OnKilling.lua6
-rw-r--r--src/Bindings/Plugin.h1
-rw-r--r--src/Bindings/PluginLua.cpp24
-rw-r--r--src/Bindings/PluginLua.h1
-rw-r--r--src/Bindings/PluginManager.cpp19
-rw-r--r--src/Bindings/PluginManager.h2
-rw-r--r--src/Entities/Entity.cpp7
-rw-r--r--src/Entities/Player.cpp25
-rw-r--r--src/Generating/Prefabs/AlchemistVillagePrefabs.cpp111
-rw-r--r--src/Generating/Prefabs/JapaneseVillagePrefabs.cpp100
-rw-r--r--src/Generating/Prefabs/PlainsVillagePrefabs.cpp430
-rw-r--r--src/Generating/Prefabs/SandFlatRoofVillagePrefabs.cpp36
-rw-r--r--src/Generating/Prefabs/SandVillagePrefabs.cpp91
-rw-r--r--src/Generating/Prefabs/UnderwaterBasePrefabs.cpp185
-rw-r--r--src/NetherPortalScanner.cpp4
16 files changed, 563 insertions, 501 deletions
diff --git a/MCServer/Plugins/APIDump/Hooks/OnKilled.lua b/MCServer/Plugins/APIDump/Hooks/OnKilled.lua
new file mode 100644
index 000000000..2eaf23904
--- /dev/null
+++ b/MCServer/Plugins/APIDump/Hooks/OnKilled.lua
@@ -0,0 +1,22 @@
+return
+{
+ HOOK_KILLED =
+ {
+ CalledWhen = "A player or a mob died.",
+ DefaultFnName = "OnKilled",
+ Desc = [[
+ This hook is called whenever player or a mob dies. It can be used to change the death message.
+ ]]
+ Params =
+ {
+ { Name = "Victim", Type = "{{cEntity}}", Notes = "The player or mob that died" },
+ { Name = "TDI", Type = "{{TakeDamageInfo}}", Notes = "Informations about the death" },
+ { Name = "DeathMessage", Type = "string", Notes = "The default death message. An empty string if the victim is not a player" },
+ },
+ Returns = [[
+ The function may return two values. The first value is a boolean specifying whether other plugins should be called. If it is true, the other plugins won't get notified of the death. If it is false, the other plugins will get notified.</p>
+ <p>The second value is a string containing the death message. If the victim is a player, this death message is broadcasted instead of the default death message. If it is empty, no death message is broadcasted. If it is nil, the message is left unchanged. If the victim is not a player, the death message is never broadcasted.</p>
+ <p>In either case, the victim is dead.
+ ]],
+ }, -- HOOK_KILLED
+}
diff --git a/MCServer/Plugins/APIDump/Hooks/OnKilling.lua b/MCServer/Plugins/APIDump/Hooks/OnKilling.lua
index 5e84009db..d2339e60b 100644
--- a/MCServer/Plugins/APIDump/Hooks/OnKilling.lua
+++ b/MCServer/Plugins/APIDump/Hooks/OnKilling.lua
@@ -7,11 +7,7 @@ return
Desc = [[
This hook is called whenever a {{cPawn|pawn}}'s (a player's or a mob's) health reaches zero. This
means that the pawn is about to be killed, unless a plugin "revives" them by setting their health
- back to a positive value.</p>
- <p>
- FIXME: There is no HOOK_KILLED notification hook yet; this is deliberate because HOOK_KILLED has
- been recently renamed to HOOK_KILLING, and plugins need to be updated. Once updated, the HOOK_KILLED
- notification will be implemented.
+ back to a positive value.
]],
Params =
{
diff --git a/src/Bindings/Plugin.h b/src/Bindings/Plugin.h
index 1330bca0d..2fdf73a65 100644
--- a/src/Bindings/Plugin.h
+++ b/src/Bindings/Plugin.h
@@ -64,6 +64,7 @@ public:
virtual bool OnHandshake (cClientHandle & a_Client, const AString & a_Username) = 0;
virtual bool OnHopperPullingItem (cWorld & a_World, cHopperEntity & a_Hopper, int a_DstSlotNum, cBlockEntityWithItems & a_SrcEntity, int a_SrcSlotNum) = 0;
virtual bool OnHopperPushingItem (cWorld & a_World, cHopperEntity & a_Hopper, int a_SrcSlotNum, cBlockEntityWithItems & a_DstEntity, int a_DstSlotNum) = 0;
+ virtual bool OnKilled (cEntity & a_Victim, TakeDamageInfo & a_TDI, AString & a_DeathMessage) = 0;
virtual bool OnKilling (cEntity & a_Victim, cEntity * a_Killer, TakeDamageInfo & a_TDI) = 0;
virtual bool OnLogin (cClientHandle & a_Client, int a_ProtocolVersion, const AString & a_Username) = 0;
virtual bool OnPlayerAnimation (cPlayer & a_Player, int a_Animation) = 0;
diff --git a/src/Bindings/PluginLua.cpp b/src/Bindings/PluginLua.cpp
index d3ffcd0f4..9be4e0eb4 100644
--- a/src/Bindings/PluginLua.cpp
+++ b/src/Bindings/PluginLua.cpp
@@ -750,6 +750,30 @@ bool cPluginLua::OnHopperPushingItem(cWorld & a_World, cHopperEntity & a_Hopper,
+bool cPluginLua::OnKilled(cEntity & a_Victim, TakeDamageInfo & a_TDI, AString & a_DeathMessage)
+{
+ cCSLock Lock(m_CriticalSection);
+ if (!m_LuaState.IsValid())
+ {
+ return false;
+ }
+ bool res = false;
+ cLuaRefs & Refs = m_HookMap[cPluginManager::HOOK_KILLED];
+ for (cLuaRefs::iterator itr = Refs.begin(), end = Refs.end(); itr != end; ++itr)
+ {
+ m_LuaState.Call((int)(**itr), &a_Victim, &a_TDI, a_DeathMessage, cLuaState::Return, res, a_DeathMessage);
+ if (res)
+ {
+ return true;
+ }
+ }
+ return false;
+}
+
+
+
+
+
bool cPluginLua::OnKilling(cEntity & a_Victim, cEntity * a_Killer, TakeDamageInfo & a_TDI)
{
cCSLock Lock(m_CriticalSection);
diff --git a/src/Bindings/PluginLua.h b/src/Bindings/PluginLua.h
index a763cdfdf..7de70ef1f 100644
--- a/src/Bindings/PluginLua.h
+++ b/src/Bindings/PluginLua.h
@@ -123,6 +123,7 @@ public:
virtual bool OnHandshake (cClientHandle & a_Client, const AString & a_Username) override;
virtual bool OnHopperPullingItem (cWorld & a_World, cHopperEntity & a_Hopper, int a_DstSlotNum, cBlockEntityWithItems & a_SrcEntity, int a_SrcSlotNum) override;
virtual bool OnHopperPushingItem (cWorld & a_World, cHopperEntity & a_Hopper, int a_SrcSlotNum, cBlockEntityWithItems & a_DstEntity, int a_DstSlotNum) override;
+ virtual bool OnKilled (cEntity & a_Victim, TakeDamageInfo & a_TDI, AString & a_DeathMessage) override;
virtual bool OnKilling (cEntity & a_Victim, cEntity * a_Killer, TakeDamageInfo & a_TDI) override;
virtual bool OnLogin (cClientHandle & a_Client, int a_ProtocolVersion, const AString & a_Username) override;
virtual bool OnPlayerAnimation (cPlayer & a_Player, int a_Animation) override;
diff --git a/src/Bindings/PluginManager.cpp b/src/Bindings/PluginManager.cpp
index 5b6bec728..712c385c7 100644
--- a/src/Bindings/PluginManager.cpp
+++ b/src/Bindings/PluginManager.cpp
@@ -675,6 +675,25 @@ bool cPluginManager::CallHookHopperPushingItem(cWorld & a_World, cHopperEntity &
+bool cPluginManager::CallHookKilled(cEntity & a_Victim, TakeDamageInfo & a_TDI, AString & a_DeathMessage)
+{
+ FIND_HOOK(HOOK_KILLED);
+ VERIFY_HOOK;
+
+ for (PluginList::iterator itr = Plugins->second.begin(); itr != Plugins->second.end(); ++itr)
+ {
+ if ((*itr)->OnKilled(a_Victim, a_TDI, a_DeathMessage))
+ {
+ return true;
+ }
+ }
+ return false;
+}
+
+
+
+
+
bool cPluginManager::CallHookKilling(cEntity & a_Victim, cEntity * a_Killer, TakeDamageInfo & a_TDI)
{
FIND_HOOK(HOOK_KILLING);
diff --git a/src/Bindings/PluginManager.h b/src/Bindings/PluginManager.h
index 6bcef87bf..153f4996d 100644
--- a/src/Bindings/PluginManager.h
+++ b/src/Bindings/PluginManager.h
@@ -94,6 +94,7 @@ public:
HOOK_HANDSHAKE,
HOOK_HOPPER_PULLING_ITEM,
HOOK_HOPPER_PUSHING_ITEM,
+ HOOK_KILLED,
HOOK_KILLING,
HOOK_LOGIN,
HOOK_PLAYER_BREAKING_BLOCK,
@@ -211,6 +212,7 @@ public:
bool CallHookHandshake (cClientHandle & a_ClientHandle, const AString & a_Username);
bool CallHookHopperPullingItem (cWorld & a_World, cHopperEntity & a_Hopper, int a_DstSlotNum, cBlockEntityWithItems & a_SrcEntity, int a_SrcSlotNum);
bool CallHookHopperPushingItem (cWorld & a_World, cHopperEntity & a_Hopper, int a_SrcSlotNum, cBlockEntityWithItems & a_DstEntity, int a_DstSlotNum);
+ bool CallHookKilled (cEntity & a_Victim, TakeDamageInfo & a_TDI, AString & a_DeathMessage);
bool CallHookKilling (cEntity & a_Victim, cEntity * a_Killer, TakeDamageInfo & a_TDI);
bool CallHookLogin (cClientHandle & a_Client, int a_ProtocolVersion, const AString & a_Username);
bool CallHookPlayerAnimation (cPlayer & a_Player, int a_Animation);
diff --git a/src/Entities/Entity.cpp b/src/Entities/Entity.cpp
index 108f79e82..500204a98 100644
--- a/src/Entities/Entity.cpp
+++ b/src/Entities/Entity.cpp
@@ -744,6 +744,13 @@ void cEntity::KilledBy(TakeDamageInfo & a_TDI)
return;
}
+ // If the victim is a player the hook is handled by the cPlayer class
+ if (!IsPlayer())
+ {
+ AString emptystring = AString("");
+ cRoot::Get()->GetPluginManager()->CallHookKilled(*this, a_TDI, emptystring);
+ }
+
// Drop loot:
cItems Drops;
GetDrops(Drops, a_TDI.Attacker);
diff --git a/src/Entities/Player.cpp b/src/Entities/Player.cpp
index 0ca560d75..97e2eca3a 100644
--- a/src/Entities/Player.cpp
+++ b/src/Entities/Player.cpp
@@ -920,11 +920,11 @@ void cPlayer::KilledBy(TakeDamageInfo & a_TDI)
{
Pickups.Add(cItem(E_ITEM_RED_APPLE));
}
-
m_Stats.AddValue(statItemsDropped, (StatValue)Pickups.Size());
m_World->SpawnItemPickups(Pickups, GetPosX(), GetPosY(), GetPosZ(), 10);
SaveToDisk(); // Save it, yeah the world is a tough place !
+ cPluginManager * PluginManager = cRoot::Get()->GetPluginManager();
if ((a_TDI.Attacker == nullptr) && m_World->ShouldBroadcastDeathMessages())
{
@@ -950,7 +950,12 @@ void cPlayer::KilledBy(TakeDamageInfo & a_TDI)
case dtExplosion: DamageText = "blew up"; break;
default: DamageText = "died, somehow; we've no idea how though"; break;
}
- GetWorld()->BroadcastChatDeath(Printf("%s %s", GetName().c_str(), DamageText.c_str()));
+ AString DeathMessage = Printf("%s %s", GetName().c_str(), DamageText.c_str());
+ PluginManager->CallHookKilled(*this, a_TDI, DeathMessage);
+ if (DeathMessage != AString(""))
+ {
+ GetWorld()->BroadcastChatDeath(DeathMessage);
+ }
}
else if (a_TDI.Attacker == nullptr) // && !m_World->ShouldBroadcastDeathMessages() by fallthrough
{
@@ -959,15 +964,23 @@ void cPlayer::KilledBy(TakeDamageInfo & a_TDI)
else if (a_TDI.Attacker->IsPlayer())
{
cPlayer * Killer = (cPlayer *)a_TDI.Attacker;
-
- GetWorld()->BroadcastChatDeath(Printf("%s was killed by %s", GetName().c_str(), Killer->GetName().c_str()));
+ AString DeathMessage = Printf("%s was killed by %s", GetName().c_str(), Killer->GetName().c_str());
+ PluginManager->CallHookKilled(*this, a_TDI, DeathMessage);
+ if (DeathMessage != AString(""))
+ {
+ GetWorld()->BroadcastChatDeath(DeathMessage);
+ }
}
else
{
AString KillerClass = a_TDI.Attacker->GetClass();
KillerClass.erase(KillerClass.begin()); // Erase the 'c' of the class (e.g. "cWitch" -> "Witch")
-
- GetWorld()->BroadcastChatDeath(Printf("%s was killed by a %s", GetName().c_str(), KillerClass.c_str()));
+ AString DeathMessage = Printf("%s was killed by a %s", GetName().c_str(), KillerClass.c_str());
+ PluginManager->CallHookKilled(*this, a_TDI, DeathMessage);
+ if (DeathMessage != AString(""))
+ {
+ GetWorld()->BroadcastChatDeath(DeathMessage);
+ }
}
m_Stats.AddValue(statDeaths);
diff --git a/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp b/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp
index c08e53ef6..7567cc5fc 100644
--- a/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp
+++ b/src/Generating/Prefabs/AlchemistVillagePrefabs.cpp
@@ -32,7 +32,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
"B: 50: 3\n" /* torch */
"C:171: 8\n" /* carpet */
"D:101: 0\n" /* ironbars */
- "E: 64: 8\n" /* wooddoorblock */
+ "E: 64: 9\n" /* wooddoorblock */
"F:128: 2\n" /* sandstonestairs */
"G: 24: 1\n" /* sandstone */
"H: 44: 9\n" /* step */
@@ -65,7 +65,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
"v:134: 3\n" /* 134 */
"w: 85: 0\n" /* fence */
"x:134: 7\n" /* 134 */
- "y:107: 5\n" /* fencegate */
+ "y:107: 1\n" /* fencegate */
"z: 64: 1\n" /* wooddoorblock */,
// Block data:
@@ -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: 2\n" /* fencegate */
+ "g:107: 0\n" /* fencegate */
"h:128: 4\n" /* sandstonestairs */
"i:134: 1\n" /* 134 */
"j:134: 3\n" /* 134 */
@@ -298,13 +298,13 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
"n:134: 5\n" /* 134 */
"o:134: 7\n" /* 134 */
"p:134: 4\n" /* 134 */
- "q:107: 1\n" /* fencegate */
+ "q:107: 3\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 */
+ "w: 64: 9\n" /* wooddoorblock */
"x:128: 2\n" /* sandstonestairs */
"y: 24: 1\n" /* sandstone */
"z: 44: 9\n" /* step */,
@@ -489,7 +489,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
"k: 10: 0\n" /* lava */
"l: 54: 5\n" /* chest */
"m: 19: 0\n" /* sponge */
- "n: 64: 8\n" /* wooddoorblock */
+ "n: 64: 9\n" /* wooddoorblock */
"o: 50: 3\n" /* torch */
"p:101: 0\n" /* ironbars */
"q: 50: 1\n" /* torch */
@@ -675,7 +675,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
"p:101: 0\n" /* ironbars */
"q: 50: 1\n" /* torch */
"r:140: 0\n" /* flowerpotblock */
- "s: 64: 8\n" /* wooddoorblock */
+ "s: 64: 9\n" /* wooddoorblock */
"t: 50: 3\n" /* torch */
"u: 69:12\n" /* lever */
"v: 50: 4\n" /* torch */
@@ -948,7 +948,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
"k:128: 3\n" /* sandstonestairs */
"l: 77: 4\n" /* stonebutton */
"m: 19: 0\n" /* sponge */
- "n: 71: 8\n" /* irondoorblock */
+ "n: 71: 9\n" /* irondoorblock */
"o: 77: 3\n" /* stonebutton */
"p:128: 6\n" /* sandstonestairs */
"q:128: 4\n" /* sandstonestairs */
@@ -1129,7 +1129,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
"f: 64: 3\n" /* wooddoorblock */
"g: 61: 2\n" /* furnace */
"h: 65: 2\n" /* ladder */
- "i: 64: 8\n" /* wooddoorblock */
+ "i: 64: 9\n" /* wooddoorblock */
"j:101: 0\n" /* ironbars */
"k: 50: 4\n" /* torch */
"l:128: 2\n" /* sandstonestairs */
@@ -1252,7 +1252,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
"h: 65: 5\n" /* ladder */
"i: 85: 0\n" /* fence */
"j:101: 0\n" /* ironbars */
- "k: 64: 8\n" /* wooddoorblock */
+ "k: 64: 9\n" /* wooddoorblock */
"l: 50: 3\n" /* torch */
"m: 19: 0\n" /* sponge */
"n:128: 2\n" /* sandstonestairs */
@@ -1396,7 +1396,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
"e: 5: 0\n" /* wood */
"f: 64: 3\n" /* wooddoorblock */
"g: 65: 2\n" /* ladder */
- "h: 64: 8\n" /* wooddoorblock */
+ "h: 64: 9\n" /* wooddoorblock */
"i:101: 0\n" /* ironbars */
"j: 50: 4\n" /* torch */
"k:128: 2\n" /* sandstonestairs */
@@ -1523,7 +1523,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
"l:134: 6\n" /* 134 */
"m: 19: 0\n" /* sponge */
"n:134: 4\n" /* 134 */
- "o: 64: 8\n" /* wooddoorblock */
+ "o: 64: 9\n" /* wooddoorblock */
"p: 50: 2\n" /* torch */
"q:101: 0\n" /* ironbars */
"r:171: 8\n" /* carpet */
@@ -1667,7 +1667,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
"e: 5: 0\n" /* wood */
"f: 64: 3\n" /* wooddoorblock */
"g: 65: 2\n" /* ladder */
- "h: 64: 8\n" /* wooddoorblock */
+ "h: 64: 9\n" /* wooddoorblock */
"i:101: 0\n" /* ironbars */
"j: 50: 1\n" /* torch */
"k: 50: 4\n" /* torch */
@@ -1810,7 +1810,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
"m: 19: 0\n" /* sponge */
"n: 38: 5\n" /* rose */
"o: 65: 2\n" /* ladder */
- "p: 64: 8\n" /* wooddoorblock */
+ "p: 64: 9\n" /* wooddoorblock */
"q:101: 0\n" /* ironbars */
"r: 50: 1\n" /* torch */
"s: 50: 4\n" /* torch */
@@ -1943,7 +1943,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
"f: 64: 3\n" /* wooddoorblock */
"g: 65: 2\n" /* ladder */
"h:101: 0\n" /* ironbars */
- "i: 64: 8\n" /* wooddoorblock */
+ "i: 64: 9\n" /* wooddoorblock */
"j: 50: 1\n" /* torch */
"k: 50: 2\n" /* torch */
"l:128: 2\n" /* sandstonestairs */
@@ -2089,7 +2089,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
"f: 64: 2\n" /* wooddoorblock */
"g: 65: 2\n" /* ladder */
"h:101: 0\n" /* ironbars */
- "i: 64: 8\n" /* wooddoorblock */
+ "i: 64: 9\n" /* wooddoorblock */
"j: 50: 1\n" /* torch */
"k:128: 6\n" /* sandstonestairs */
"l:126: 8\n" /* woodenslab */
@@ -2220,7 +2220,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
"e: 5: 0\n" /* wood */
"f: 64: 3\n" /* wooddoorblock */
"g: 65: 5\n" /* ladder */
- "h: 64: 8\n" /* wooddoorblock */
+ "h: 64: 9\n" /* wooddoorblock */
"i:101: 0\n" /* ironbars */
"j: 50: 4\n" /* torch */
"k:128: 2\n" /* sandstonestairs */
@@ -2374,17 +2374,18 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
"h: 85: 0\n" /* fence */
"i: 64: 0\n" /* wooddoorblock */
"j: 65: 5\n" /* ladder */
- "k: 64: 8\n" /* wooddoorblock */
+ "k: 64: 9\n" /* wooddoorblock */
"l:101: 0\n" /* ironbars */
"m: 19: 0\n" /* sponge */
- "n: 50: 4\n" /* torch */
- "o:128: 2\n" /* sandstonestairs */
- "p:126: 8\n" /* woodenslab */
- "q:128: 4\n" /* sandstonestairs */
- "r:128: 7\n" /* sandstonestairs */
- "s: 44: 1\n" /* step */
- "t: 50: 3\n" /* torch */
- "u:128: 6\n" /* sandstonestairs */,
+ "n: 64: 8\n" /* wooddoorblock */
+ "o: 50: 4\n" /* torch */
+ "p:128: 2\n" /* sandstonestairs */
+ "q:126: 8\n" /* woodenslab */
+ "r:128: 4\n" /* sandstonestairs */
+ "s:128: 7\n" /* sandstonestairs */
+ "t: 44: 1\n" /* step */
+ "u: 50: 3\n" /* torch */
+ "v:128: 6\n" /* sandstonestairs */,
// Block data:
// Level 0
@@ -2434,36 +2435,36 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
/* 2 */ "acccckcccca...."
/* 3 */ "c.........c...."
/* 4 */ "l.........c...."
- /* 5 */ "l.........k...."
+ /* 5 */ "l.........n...."
/* 6 */ "l.........c...."
- /* 7 */ "c..n...n..cj..."
+ /* 7 */ "c..o...o..cj..."
/* 8 */ "accclllccca...."
// Level 4
/* z\x* 11111 */
/* * 012345678901234 */
- /* 0 */ "mmmo...ommmmmmm"
+ /* 0 */ "mmmp...pmmmmmmm"
/* 1 */ "mmmc...cmmmmmmm"
/* 2 */ "accccccccca...."
- /* 3 */ "cpppppppppc...."
- /* 4 */ "qpppppppppc...."
- /* 5 */ "qpppppppppc...."
- /* 6 */ "qpppppppppc...."
- /* 7 */ "cpppppppppcj..."
- /* 8 */ "acccrrrccca...."
+ /* 3 */ "cqqqqqqqqqc...."
+ /* 4 */ "rqqqqqqqqqc...."
+ /* 5 */ "rqqqqqqqqqc...."
+ /* 6 */ "rqqqqqqqqqc...."
+ /* 7 */ "cqqqqqqqqqcj..."
+ /* 8 */ "acccsssccca...."
// Level 5
/* z\x* 11111 */
/* * 012345678901234 */
/* 0 */ "mmm.....mmmmmmm"
/* 1 */ "mmm.....mmmmmmm"
- /* 2 */ "csssscssssc...."
- /* 3 */ "s..accca..s...."
- /* 4 */ "s..c...c..s...."
+ /* 2 */ "cttttcttttc...."
+ /* 3 */ "t..accca..t...."
+ /* 4 */ "t..c...c..t...."
/* 5 */ "c.........c...."
- /* 6 */ "s..c...c..s...."
- /* 7 */ "s..accca..s...."
- /* 8 */ "csssscssssc...."
+ /* 6 */ "t..c...c..t...."
+ /* 7 */ "t..accca..t...."
+ /* 8 */ "cttttcttttc...."
// Level 6
/* z\x* 11111 */
@@ -2472,7 +2473,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
/* 1 */ "..............."
/* 2 */ "..............."
/* 3 */ "...aclca......."
- /* 4 */ "...ct..c......."
+ /* 4 */ "...cu..c......."
/* 5 */ "..............."
/* 6 */ "...c...c......."
/* 7 */ "...aclca......."
@@ -2484,11 +2485,11 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
/* 0 */ "..............."
/* 1 */ "..............."
/* 2 */ "..............."
- /* 3 */ "...acuca......."
- /* 4 */ "...cpppc......."
- /* 5 */ "...cpppc......."
- /* 6 */ "...cpppc......."
- /* 7 */ "...acrca......."
+ /* 3 */ "...acvca......."
+ /* 4 */ "...cqqqc......."
+ /* 5 */ "...cqqqc......."
+ /* 6 */ "...cqqqc......."
+ /* 7 */ "...acsca......."
/* 8 */ "..............."
// Level 8
@@ -2497,11 +2498,11 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
/* 0 */ "..............."
/* 1 */ "..............."
/* 2 */ "..............."
- /* 3 */ "...cscsc......."
- /* 4 */ "...s...s......."
+ /* 3 */ "...ctctc......."
+ /* 4 */ "...t...t......."
/* 5 */ "...c...c......."
- /* 6 */ "...s...s......."
- /* 7 */ "...cscsc......."
+ /* 6 */ "...t...t......."
+ /* 7 */ "...ctctc......."
/* 8 */ "...............",
// Connectors:
@@ -2574,7 +2575,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
"q:101: 0\n" /* ironbars */
"r: 50: 2\n" /* torch */
"s: 47: 0\n" /* bookshelf */
- "t: 64: 8\n" /* wooddoorblock */
+ "t: 64: 9\n" /* wooddoorblock */
"u: 50: 3\n" /* torch */
"v:171: 8\n" /* carpet */
"w:128: 6\n" /* sandstonestairs */
@@ -2769,7 +2770,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
"n: 50: 1\n" /* torch */
"o: 50: 2\n" /* torch */
"p:101: 0\n" /* ironbars */
- "q: 64: 8\n" /* wooddoorblock */
+ "q: 64: 9\n" /* wooddoorblock */
"r:128: 2\n" /* sandstonestairs */
"s:128: 6\n" /* sandstonestairs */
"t:126: 8\n" /* woodenslab */
@@ -2978,7 +2979,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
"e: 5: 0\n" /* wood */
"f: 64: 3\n" /* wooddoorblock */
"g: 65: 2\n" /* ladder */
- "h: 64: 8\n" /* wooddoorblock */
+ "h: 64: 9\n" /* wooddoorblock */
"i:101: 0\n" /* ironbars */
"j: 50: 2\n" /* torch */
"k: 50: 1\n" /* torch */
@@ -3133,7 +3134,7 @@ const cPrefab::sDef g_AlchemistVillagePrefabs[] =
"l:118: 3\n" /* cauldronblock */
"m: 19: 0\n" /* sponge */
"n:155: 1\n" /* quartzblock */
- "o: 64: 8\n" /* wooddoorblock */
+ "o: 64: 9\n" /* wooddoorblock */
"p: 50: 3\n" /* torch */
"q:101: 0\n" /* ironbars */
"r:140: 0\n" /* flowerpotblock */
diff --git a/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp b/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp
index 0362c9406..d917722b6 100644
--- a/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp
+++ b/src/Generating/Prefabs/JapaneseVillagePrefabs.cpp
@@ -145,12 +145,14 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] =
"a: 3: 0\n" /* dirt */
"b: 60: 7\n" /* tilleddirt */
"c: 8: 0\n" /* water */
- "d: 43: 0\n" /* doubleslab */
- "e: 44: 0\n" /* step */
- "f: 59: 7\n" /* crops */
- "g: 83: 0\n" /* reedblock */
- "h:113: 0\n" /* netherbrickfence */
- "i: 50: 5\n" /* torch */
+ "d: 60: 5\n" /* tilleddirt */
+ "e: 60: 6\n" /* tilleddirt */
+ "f: 43: 0\n" /* doubleslab */
+ "g: 44: 0\n" /* step */
+ "h: 59: 7\n" /* crops */
+ "i: 83: 0\n" /* reedblock */
+ "j:113: 0\n" /* netherbrickfence */
+ "k: 50: 5\n" /* torch */
"m: 19: 0\n" /* sponge */,
// Block data:
@@ -181,8 +183,8 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] =
/* 4 */ "mabbbbbbbam"
/* 5 */ "mabbbbbbbam"
/* 6 */ "mabcccccaam"
- /* 7 */ "mabbbbbbbam"
- /* 8 */ "mabbbbbbbam"
+ /* 7 */ "mabdbbebbam"
+ /* 8 */ "mabbbbbbeam"
/* 9 */ "mabbbbbbbam"
/* 10 */ "mabbbbbbbam"
/* 11 */ "maaaaaaaaam"
@@ -192,58 +194,58 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] =
/* 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."
+ /* 1 */ ".fgggggggf."
+ /* 2 */ ".ghhhhhhhg."
+ /* 3 */ ".ghhhhhhhg."
+ /* 4 */ ".ghhhhhhhg."
+ /* 5 */ ".ghiiiiihg."
+ /* 6 */ ".gi.....ig."
+ /* 7 */ ".ghiiiiihg."
+ /* 8 */ ".ghhhhhhhg."
+ /* 9 */ ".ghhhhhhhg."
+ /* 10 */ ".ghhhhhhhg."
+ /* 11 */ ".fgggggggf."
/* 12 */ "..........."
// Level 3
/* z\x* 1 */
/* * 01234567890 */
/* 0 */ "..........."
- /* 1 */ ".h.......h."
+ /* 1 */ ".j.......j."
/* 2 */ "..........."
/* 3 */ "..........."
/* 4 */ "..........."
- /* 5 */ "...ggggg..."
- /* 6 */ "..g.....g.."
- /* 7 */ "...ggggg..."
+ /* 5 */ "...iiiii..."
+ /* 6 */ "..i.....i.."
+ /* 7 */ "...iiiii..."
/* 8 */ "..........."
/* 9 */ "..........."
/* 10 */ "..........."
- /* 11 */ ".h.......h."
+ /* 11 */ ".j.......j."
/* 12 */ "..........."
// Level 4
/* z\x* 1 */
/* * 01234567890 */
/* 0 */ "..........."
- /* 1 */ ".h.......h."
+ /* 1 */ ".j.......j."
/* 2 */ "..........."
/* 3 */ "..........."
/* 4 */ "..........."
- /* 5 */ "...ggggg..."
- /* 6 */ "..g.....g.."
- /* 7 */ "...ggggg..."
+ /* 5 */ "...iiiii..."
+ /* 6 */ "..i.....i.."
+ /* 7 */ "...iiiii..."
/* 8 */ "..........."
/* 9 */ "..........."
/* 10 */ "..........."
- /* 11 */ ".h.......h."
+ /* 11 */ ".j.......j."
/* 12 */ "..........."
// Level 5
/* z\x* 1 */
/* * 01234567890 */
/* 0 */ "..........."
- /* 1 */ ".h.......h."
+ /* 1 */ ".j.......j."
/* 2 */ "..........."
/* 3 */ "..........."
/* 4 */ "..........."
@@ -253,15 +255,15 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] =
/* 8 */ "..........."
/* 9 */ "..........."
/* 10 */ "..........."
- /* 11 */ ".h.......h."
+ /* 11 */ ".j.......j."
/* 12 */ "..........."
// Level 6
/* z\x* 1 */
/* * 01234567890 */
- /* 0 */ ".h.......h."
- /* 1 */ "hhh.....hhh"
- /* 2 */ ".h.......h."
+ /* 0 */ ".j.......j."
+ /* 1 */ "jjj.....jjj"
+ /* 2 */ ".j.......j."
/* 3 */ "..........."
/* 4 */ "..........."
/* 5 */ "..........."
@@ -269,16 +271,16 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] =
/* 7 */ "..........."
/* 8 */ "..........."
/* 9 */ "..........."
- /* 10 */ ".h.......h."
- /* 11 */ "hhh.....hhh"
- /* 12 */ ".h.......h."
+ /* 10 */ ".j.......j."
+ /* 11 */ "jjj.....jjj"
+ /* 12 */ ".j.......j."
// Level 7
/* z\x* 1 */
/* * 01234567890 */
- /* 0 */ ".i.......i."
- /* 1 */ "i.i.....i.i"
- /* 2 */ ".i.......i."
+ /* 0 */ ".k.......k."
+ /* 1 */ "k.k.....k.k"
+ /* 2 */ ".k.......k."
/* 3 */ "..........."
/* 4 */ "..........."
/* 5 */ "..........."
@@ -286,9 +288,9 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] =
/* 7 */ "..........."
/* 8 */ "..........."
/* 9 */ "..........."
- /* 10 */ ".i.......i."
- /* 11 */ "i.i.....i.i"
- /* 12 */ ".i.......i.",
+ /* 10 */ ".k.......k."
+ /* 11 */ "k.k.....k.k"
+ /* 12 */ ".k.......k.",
// Connectors:
"-1: 10, 2, 6: 5\n" /* Type -1, direction X+ */,
@@ -1039,13 +1041,13 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] =
"b: 17: 9\n" /* tree */
"c: 17: 1\n" /* tree */
"d: 35: 0\n" /* wool */
- "e: 64: 7\n" /* wooddoorblock */
+ "e: 64: 3\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 */
+ "k: 64: 9\n" /* wooddoorblock */
"l: 85: 0\n" /* fence */
"m: 19: 0\n" /* sponge */
"n: 44: 8\n" /* step */
@@ -1283,9 +1285,9 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] =
"a: 5: 2\n" /* wood */
"b: 17: 1\n" /* tree */
"c: 35: 0\n" /* wool */
- "d: 64: 7\n" /* wooddoorblock */
+ "d: 64: 3\n" /* wooddoorblock */
"e: 50: 4\n" /* torch */
- "f: 64:12\n" /* wooddoorblock */
+ "f: 64: 9\n" /* wooddoorblock */
"g: 85: 0\n" /* fence */
"h: 44: 8\n" /* step */
"i: 43: 0\n" /* doubleslab */
@@ -1398,11 +1400,11 @@ const cPrefab::sDef g_JapaneseVillagePrefabs[] =
"c: 35: 0\n" /* wool */
"d:171: 0\n" /* carpet */
"e:126: 1\n" /* woodenslab */
- "f: 64: 5\n" /* wooddoorblock */
+ "f: 64: 1\n" /* wooddoorblock */
"g: 85: 0\n" /* fence */
"h: 50: 1\n" /* torch */
"i: 50: 2\n" /* torch */
- "j: 64:12\n" /* wooddoorblock */
+ "j: 64: 9\n" /* wooddoorblock */
"k:126:11\n" /* woodenslab */
"l: 17: 5\n" /* tree */
"m: 19: 0\n" /* sponge */
diff --git a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp
index 4613f76e2..a41f8f403 100644
--- a/src/Generating/Prefabs/PlainsVillagePrefabs.cpp
+++ b/src/Generating/Prefabs/PlainsVillagePrefabs.cpp
@@ -34,9 +34,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
"d: 17: 0\n" /* tree */
"e: 60: 7\n" /* tilleddirt */
"f: 8: 0\n" /* water */
- "g: 85: 0\n" /* fence */
- "h: 59: 7\n" /* crops */
- "i: 50: 5\n" /* torch */
+ "g: 60: 6\n" /* tilleddirt */
+ "h: 85: 0\n" /* fence */
+ "i: 59: 7\n" /* crops */
+ "j: 50: 5\n" /* torch */
"m: 19: 0\n" /* sponge */,
// Block data:
@@ -79,35 +80,35 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 1 */ "deefeefeefeed"
/* 2 */ "deefeefeefeed"
/* 3 */ "deefeefeefeed"
- /* 4 */ "deefeefeefeed"
+ /* 4 */ "deefegfeefeed"
/* 5 */ "deefeefeefeed"
/* 6 */ "deefeefeefeed"
/* 7 */ "deefeefeefeed"
/* 8 */ "deefeefeefeed"
- /* 9 */ "deefeefeefeed"
+ /* 9 */ "deefgefeefeed"
/* 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"
+ /* 0 */ "h..h..h..h..h"
+ /* 1 */ "hii.i..ii.iih"
+ /* 2 */ "hii..i.ii.iih"
+ /* 3 */ "hii.i..i..iih"
+ /* 4 */ "hii.ii.i..iih"
+ /* 5 */ "hii.i..ii.iih"
+ /* 6 */ "hii.ii.ii.iih"
+ /* 7 */ "hii....i..iih"
+ /* 8 */ "hii..i....iih"
+ /* 9 */ "hii.....i.iih"
+ /* 10 */ "hii.ii.i..iih"
+ /* 11 */ "h..h..h..h..h"
// Level 4
/* z\x* 111 */
/* * 0123456789012 */
- /* 0 */ "i..i..i..i..i"
+ /* 0 */ "j..j..j..j..j"
/* 1 */ "............."
/* 2 */ "............."
/* 3 */ "............."
@@ -118,7 +119,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 8 */ "............."
/* 9 */ "............."
/* 10 */ "............."
- /* 11 */ "i..i..i..i..i"
+ /* 11 */ "j..j..j..j..j"
// Level 5
/* z\x* 111 */
@@ -212,14 +213,14 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
"b: 67: 0\n" /* stairs */
"c: 67: 2\n" /* stairs */
"d: 67: 1\n" /* stairs */
- "e: 64: 7\n" /* wooddoorblock */
+ "e: 64: 3\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 */
+ "l: 64: 9\n" /* wooddoorblock */
"m: 19: 0\n" /* sponge */
"n: 50: 3\n" /* torch */
"o: 72: 0\n" /* woodplate */
@@ -356,8 +357,6 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
"e: 8: 0\n" /* water */
"f: 50: 5\n" /* torch */
"g: 59: 7\n" /* crops */
- "h: 59: 3\n" /* crops */
- "i: 59: 5\n" /* crops */
"m: 19: 0\n" /* sponge */,
// Block data:
@@ -365,9 +364,9 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* z\x* 11111 */
/* * 012345678901234 */
/* 0 */ "aaaaaaabaaaaaaa"
- /* 1 */ "aaaaaaaaaaaaaaa"
- /* 2 */ "aaaaaaaaaaaaaaa"
- /* 3 */ "aaaaaaaaaaaaaaa"
+ /* 1 */ "aaaaaaabaaaaaaa"
+ /* 2 */ "aaaaaaabaaaaaaa"
+ /* 3 */ "aaaaaaabaaaaaaa"
/* 4 */ "aaaaaaabaaaaaaa"
/* 5 */ "aaaaaaabaaaaaaa"
/* 6 */ "aaaaaaabaaaaaaa"
@@ -405,8 +404,8 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* * 012345678901234 */
/* 0 */ "f.....f.f.....f"
/* 1 */ ".gg.gg...gg.gg."
- /* 2 */ ".gg.hg...gg.gg."
- /* 3 */ ".gg.gi...gg.gg."
+ /* 2 */ ".gg.gg...gg.gg."
+ /* 3 */ ".gg.gg...gg.gg."
/* 4 */ ".gg.gg...gg.gg."
/* 5 */ ".gg.gg...gg.gg."
/* 6 */ ".gg.gg...gg.gg."
@@ -511,12 +510,12 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
"d: 67: 1\n" /* stairs */
"e: 17: 0\n" /* tree */
"f: 5: 0\n" /* wood */
- "g: 64: 2\n" /* wooddoorblock */
+ "g: 64: 0\n" /* wooddoorblock */
"h: 10: 0\n" /* lava */
"i: 54: 2\n" /* chest */
"j: 61: 2\n" /* furnace */
"k:102: 0\n" /* glasspane */
- "l: 64: 8\n" /* wooddoorblock */
+ "l: 64: 9\n" /* wooddoorblock */
"m: 19: 0\n" /* sponge */
"n:139: 0\n" /* cobblestonewall */
"o:101: 0\n" /* ironbars */
@@ -666,7 +665,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 10 */ "............",
// Connectors:
- "-1: 7, 1, -1: 2\n" /* Type -1, direction Z- */,
+ "-1: 7, 1, 0: 2\n" /* Type -1, direction Z- */,
// AllowedRotations:
7, /* 1, 2, 3 CCW rotation allowed */
@@ -1999,8 +1998,9 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
"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 */
+ "d: 60: 6\n" /* tilleddirt */
+ "e: 8: 0\n" /* water */
+ "f: 59: 7\n" /* crops */
"m: 19: 0\n" /* sponge */,
// Block data:
@@ -2020,8 +2020,8 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* * 0123456789 */
/* 0 */ "bbbbbbbbbb"
/* 1 */ "bccccccccb"
- /* 2 */ "bccccccccb"
- /* 3 */ "bddddddddb"
+ /* 2 */ "bcccccdccb"
+ /* 3 */ "beeeeeeeeb"
/* 4 */ "bccccccccb"
/* 5 */ "bccccccccb"
/* 6 */ "bbbbbbbbbb"
@@ -2030,11 +2030,11 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* z\x* */
/* * 0123456789 */
/* 0 */ ".........."
- /* 1 */ ".eeeeeeee."
- /* 2 */ ".eeeeeeee."
+ /* 1 */ ".ffffffff."
+ /* 2 */ ".ffffffff."
/* 3 */ ".........."
- /* 4 */ ".eeeeeeee."
- /* 5 */ ".eeeeeeee."
+ /* 4 */ ".ffffffff."
+ /* 5 */ ".ffffffff."
/* 6 */ ".........."
// Level 3
@@ -2116,7 +2116,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
7, 15, 13, // SizeX = 7, SizeY = 15, SizeZ = 13
// Hitbox (relative to bounding box):
- -1, -1, 0, // MinX, MinY, MinZ
+ -1, 0, 0, // MinX, MinY, MinZ
7, 14, 13, // MaxX, MaxY, MaxZ
// Block definitions:
@@ -2129,11 +2129,11 @@ 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: 1\n" /* wooddoorblock */
"h: 65: 3\n" /* ladder */
"i: 53: 3\n" /* woodstairs */
"j: 53: 7\n" /* woodstairs */
- "k: 64:12\n" /* wooddoorblock */
+ "k: 64: 9\n" /* wooddoorblock */
"l:102: 0\n" /* glasspane */
"m: 19: 0\n" /* sponge */
"n: 50: 1\n" /* torch */
@@ -2579,16 +2579,16 @@ 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: 5\n" /* wooddoorblock */
- "i: 53: 3\n" /* woodstairs */
- "j: 85: 0\n" /* fence */
- "k: 53: 2\n" /* woodstairs */
- "l: 53: 1\n" /* woodstairs */
+ "g: 64: 3\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: 53: 0\n" /* woodstairs */
- "o:102: 0\n" /* glasspane */
- "p: 64:12\n" /* wooddoorblock */
+ "n:102: 0\n" /* glasspane */
+ "o: 64: 8\n" /* wooddoorblock */
+ "p: 64: 9\n" /* wooddoorblock */
"q: 50: 3\n" /* torch */
"r: 72: 0\n" /* woodplate */
"s: 53: 7\n" /* woodstairs */
@@ -2628,12 +2628,12 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* z\x* 11 */
/* * 012345678901 */
/* 0 */ "............"
- /* 1 */ ".efffghfffe."
+ /* 1 */ ".efffggfffe."
/* 2 */ ".f........f."
- /* 3 */ ".fi......if."
- /* 4 */ ".fj......jf."
- /* 5 */ ".fk......kf."
- /* 6 */ ".f.ljnljn.f."
+ /* 3 */ ".fh......hf."
+ /* 4 */ ".fi......if."
+ /* 5 */ ".fj......jf."
+ /* 6 */ ".f.kilkil.f."
/* 7 */ ".effffffffe."
/* 8 */ "............"
@@ -2641,19 +2641,19 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* z\x* 11 */
/* * 012345678901 */
/* 0 */ "............"
- /* 1 */ ".eoofppfooe."
- /* 2 */ ".o..q..q..o."
- /* 3 */ ".o........o."
+ /* 1 */ ".ennfopfnne."
+ /* 2 */ ".n..q..q..n."
+ /* 3 */ ".n........n."
/* 4 */ ".fr......rf."
- /* 5 */ ".o........o."
- /* 6 */ ".o..r..r..o."
- /* 7 */ ".eoofoofooe."
+ /* 5 */ ".n........n."
+ /* 6 */ ".n..r..r..n."
+ /* 7 */ ".ennfnnfnne."
/* 8 */ "............"
// Level 4
/* z\x* 11 */
/* * 012345678901 */
- /* 0 */ "kkkkkkkkkkkk"
+ /* 0 */ "jjjjjjjjjjjj"
/* 1 */ "sffffffffffs"
/* 2 */ ".fttttttttf."
/* 3 */ ".f........f."
@@ -2661,19 +2661,19 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 5 */ ".f........f."
/* 6 */ ".fttttttttf."
/* 7 */ "wffffffffffw"
- /* 8 */ "iiiiiiiiiiii"
+ /* 8 */ "hhhhhhhhhhhh"
// Level 5
/* z\x* 11 */
/* * 012345678901 */
/* 0 */ "............"
- /* 1 */ "kkkkkkkkkkkk"
+ /* 1 */ "jjjjjjjjjjjj"
/* 2 */ "sffffffffffs"
/* 3 */ ".fttttttttf."
/* 4 */ ".f........f."
/* 5 */ ".fttttttttf."
/* 6 */ "wffffffffffw"
- /* 7 */ "iiiiiiiiiiii"
+ /* 7 */ "hhhhhhhhhhhh"
/* 8 */ "............"
// Level 6
@@ -2681,11 +2681,11 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* * 012345678901 */
/* 0 */ "............"
/* 1 */ "............"
- /* 2 */ "kkkkkkkkkkkk"
+ /* 2 */ "jjjjjjjjjjjj"
/* 3 */ "sffffffffffs"
/* 4 */ ".f........f."
/* 5 */ "wffffffffffw"
- /* 6 */ "iiiiiiiiiiii"
+ /* 6 */ "hhhhhhhhhhhh"
/* 7 */ "............"
/* 8 */ "............"
@@ -2695,9 +2695,9 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 0 */ "............"
/* 1 */ "............"
/* 2 */ "............"
- /* 3 */ "kkkkkkkkkkkk"
+ /* 3 */ "jjjjjjjjjjjj"
/* 4 */ "ffffffffffff"
- /* 5 */ "iiiiiiiiiiii"
+ /* 5 */ "hhhhhhhhhhhh"
/* 6 */ "............"
/* 7 */ "............"
/* 8 */ "............",
@@ -2749,7 +2749,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
"e: 17: 0\n" /* tree */
"f: 5: 0\n" /* wood */
"g: 64: 3\n" /* wooddoorblock */
- "h: 64: 8\n" /* wooddoorblock */
+ "h: 64: 9\n" /* wooddoorblock */
"i:102: 0\n" /* glasspane */
"j: 53: 2\n" /* woodstairs */
"k: 53: 7\n" /* woodstairs */
@@ -2875,9 +2875,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: 9\n" /* wooddoorblock */
"j: 53: 2\n" /* woodstairs */
"k: 53: 7\n" /* woodstairs */
"l: 50: 3\n" /* torch */
@@ -3004,7 +3004,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
"f: 5: 0\n" /* wood */
"g: 64: 3\n" /* wooddoorblock */
"h:102: 0\n" /* glasspane */
- "i: 64: 8\n" /* wooddoorblock */
+ "i: 64: 9\n" /* wooddoorblock */
"j: 53: 2\n" /* woodstairs */
"k: 53: 7\n" /* woodstairs */
"l: 50: 3\n" /* torch */
@@ -3144,15 +3144,14 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
"l: 53: 0\n" /* woodstairs */
"m: 19: 0\n" /* sponge */
"n: 64: 2\n" /* wooddoorblock */
- "o: 64: 4\n" /* wooddoorblock */
+ "o: 64: 0\n" /* wooddoorblock */
"p:102: 0\n" /* glasspane */
"q: 72: 0\n" /* woodplate */
- "r: 64: 8\n" /* wooddoorblock */
- "s: 64:12\n" /* wooddoorblock */
- "t: 53: 5\n" /* woodstairs */
- "u: 53: 4\n" /* woodstairs */
- "v: 50: 1\n" /* torch */
- "w: 50: 2\n" /* torch */,
+ "r: 64: 9\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
@@ -3208,7 +3207,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 2 */ ".p.q.pmmmm"
/* 3 */ ".p...p...."
/* 4 */ ".c...c...."
- /* 5 */ ".r...s...."
+ /* 5 */ ".r...r...."
/* 6 */ ".c...c...."
/* 7 */ ".p...p...."
/* 8 */ ".p...p...."
@@ -3218,22 +3217,22 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
// Level 4
/* z\x* */
/* * 0123456789 */
- /* 0 */ "lt...ujmmm"
+ /* 0 */ "ls...tjmmm"
/* 1 */ "licccijmmm"
/* 2 */ "lc...cjmmm"
/* 3 */ "lc...cj..."
- /* 4 */ "lcv.wcj..."
+ /* 4 */ "lcu.vcj..."
/* 5 */ "lc...cj..."
- /* 6 */ "lcv.wcj..."
+ /* 6 */ "lcu.vcj..."
/* 7 */ "lc...cj..."
/* 8 */ "lc...cj..."
/* 9 */ "licccijmmm"
- /* 10 */ "lt...ujmmm"
+ /* 10 */ "ls...tjmmm"
// Level 5
/* z\x* */
/* * 0123456789 */
- /* 0 */ ".lt.uj.mmm"
+ /* 0 */ ".ls.tj.mmm"
/* 1 */ ".lcccj.mmm"
/* 2 */ ".lc.cj.mmm"
/* 3 */ ".lc.cj...."
@@ -3243,7 +3242,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 7 */ ".lc.cj...."
/* 8 */ ".lc.cj...."
/* 9 */ ".lcccj.mmm"
- /* 10 */ ".lt.uj.mmm"
+ /* 10 */ ".ls.tj.mmm"
// Level 6
/* z\x* */
@@ -3306,7 +3305,7 @@ 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: 53: 3\n" /* woodstairs */
"i: 85: 0\n" /* fence */
"j: 53: 2\n" /* woodstairs */
@@ -3314,7 +3313,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
"l: 53: 0\n" /* woodstairs */
"m: 19: 0\n" /* sponge */
"n:102: 0\n" /* glasspane */
- "o: 64:12\n" /* wooddoorblock */
+ "o: 64: 9\n" /* wooddoorblock */
"p: 50: 3\n" /* torch */
"q: 72: 0\n" /* woodplate */
"r: 53: 7\n" /* woodstairs */
@@ -3447,9 +3446,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: 9\n" /* wooddoorblock */
"j: 53: 2\n" /* woodstairs */
"k: 53: 7\n" /* woodstairs */
"l: 50: 3\n" /* torch */
@@ -3595,149 +3594,133 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
// The data has been exported from the gallery Plains, area index 48, ID 99, created by Aloe_vera
{
// Size:
- 11, 9, 13, // SizeX = 11, SizeY = 9, SizeZ = 13
+ 11, 8, 13, // SizeX = 11, SizeY = 8, SizeZ = 13
// Hitbox (relative to bounding box):
-1, 0, 0, // MinX, MinY, MinZ
- 11, 8, 13, // MaxX, MaxY, MaxZ
+ 11, 7, 13, // MaxX, MaxY, MaxZ
// Block definitions:
".: 0: 0\n" /* air */
- "a: 3: 0\n" /* dirt */
- "b: 2: 0\n" /* grass */
- "c: 4: 0\n" /* cobblestone */
- "d: 67: 0\n" /* stairs */
- "e: 67: 2\n" /* stairs */
- "f: 67: 1\n" /* stairs */
- "g: 43: 0\n" /* doubleslab */
+ "a: 4: 0\n" /* cobblestone */
+ "b: 3: 0\n" /* dirt */
+ "c: 67: 0\n" /* stairs */
+ "d: 67: 2\n" /* stairs */
+ "e: 67: 1\n" /* stairs */
+ "f: 43: 0\n" /* doubleslab */
+ "g: 2: 0\n" /* grass */
"h: 17: 0\n" /* tree */
"i: 5: 0\n" /* wood */
- "j: 64: 7\n" /* wooddoorblock */
+ "j: 64: 3\n" /* wooddoorblock */
"k: 53: 3\n" /* woodstairs */
"l: 85: 0\n" /* fence */
"m: 19: 0\n" /* sponge */
"n: 53: 2\n" /* woodstairs */
- "o:102: 0\n" /* glasspane */
- "p: 64:12\n" /* wooddoorblock */
- "q: 72: 0\n" /* woodplate */
- "r: 53: 7\n" /* woodstairs */
- "s: 50: 1\n" /* torch */
- "t: 50: 2\n" /* torch */
- "u: 53: 6\n" /* woodstairs */,
+ "o: 64: 1\n" /* wooddoorblock */
+ "p:102: 0\n" /* glasspane */
+ "q: 64: 9\n" /* wooddoorblock */
+ "r: 72: 0\n" /* woodplate */
+ "s: 53: 7\n" /* woodstairs */
+ "t: 50: 1\n" /* torch */
+ "u: 50: 2\n" /* torch */
+ "v: 53: 6\n" /* woodstairs */,
// Block data:
// Level 0
/* z\x* 1 */
/* * 01234567890 */
- /* 0 */ "aaaaaaaaaaa"
- /* 1 */ "aaaaaaaaaaa"
- /* 2 */ "aaaaaaaaaaa"
- /* 3 */ "aaaaaaaaaaa"
- /* 4 */ "aaaaaaaaaab"
- /* 5 */ "baaaaaaaaab"
- /* 6 */ "aaaaaaaaaaa"
- /* 7 */ "baaaaaaaaaa"
- /* 8 */ "baaaaaaaaaa"
- /* 9 */ "baaaaaaaaab"
- /* 10 */ "aaaaaaaaaaa"
- /* 11 */ "aaaaaaaaaba"
- /* 12 */ "aaaaaaaaaba"
+ /* 0 */ "mmmmaaammmm"
+ /* 1 */ "maaaaaaaaam"
+ /* 2 */ "maaaaaaaaam"
+ /* 3 */ "maaaaaaaaam"
+ /* 4 */ "maaaaaaaaam"
+ /* 5 */ "maaaaaaaaam"
+ /* 6 */ "maaaaaaaaam"
+ /* 7 */ "maaaaaaaaam"
+ /* 8 */ "mmbbbbbbbmm"
+ /* 9 */ "mmbbbbbbbmm"
+ /* 10 */ "mmbbbbbbbmm"
+ /* 11 */ "mmbbbbbbbmm"
+ /* 12 */ "mmbbbbbbbmm"
// Level 1
/* z\x* 1 */
/* * 01234567890 */
- /* 0 */ "mmmmcccmmmm"
- /* 1 */ "mcccccccccm"
- /* 2 */ "mcccccccccm"
- /* 3 */ "mcccccccccm"
- /* 4 */ "mcccccccccm"
- /* 5 */ "mcccccccccm"
- /* 6 */ "mcccccccccm"
- /* 7 */ "mcccccccccm"
- /* 8 */ "mmaaaaaaamm"
- /* 9 */ "mmaaaaaaamm"
- /* 10 */ "mmaaaaaaamm"
- /* 11 */ "mmaaaaaaamm"
- /* 12 */ "mmaaaaaaamm"
+ /* 0 */ "....cde...."
+ /* 1 */ ".aaaaaaaaa."
+ /* 2 */ ".affffaaaa."
+ /* 3 */ ".affffaaaa."
+ /* 4 */ ".affffaaaa."
+ /* 5 */ ".affffaaaa."
+ /* 6 */ ".affffaaaa."
+ /* 7 */ ".aaaaaaaaa."
+ /* 8 */ "..ggggggg.."
+ /* 9 */ "mmgggggggmm"
+ /* 10 */ "mmgggggggmm"
+ /* 11 */ "mmgggggggmm"
+ /* 12 */ "mmgggggggmm"
// Level 2
/* z\x* 1 */
/* * 01234567890 */
- /* 0 */ "....def...."
- /* 1 */ ".ccccccccc."
- /* 2 */ ".cggggcccc."
- /* 3 */ ".cggggcccc."
- /* 4 */ ".cggggcccc."
- /* 5 */ ".cggggcccc."
- /* 6 */ ".cggggcccc."
- /* 7 */ ".ccccccccc."
- /* 8 */ "..bbbbbbb.."
- /* 9 */ "mmbbbbbbbmm"
- /* 10 */ "mmbbbbbbbmm"
- /* 11 */ "mmbbbbbbbmm"
- /* 12 */ "mmbbbbbbbmm"
-
- // Level 3
- /* z\x* 1 */
- /* * 01234567890 */
/* 0 */ "..........."
/* 1 */ ".hiiijiiih."
- /* 2 */ ".i.g....ki."
- /* 3 */ ".i.g....li."
- /* 4 */ ".i.g....ni."
+ /* 2 */ ".i.f....ki."
+ /* 3 */ ".i.f....li."
+ /* 4 */ ".i.f....ni."
/* 5 */ ".i.......i."
/* 6 */ ".i.......i."
- /* 7 */ ".hiiijiiih."
+ /* 7 */ ".hiiioiiih."
/* 8 */ "..l.....l.."
/* 9 */ "mml.....lmm"
/* 10 */ "mml.....lmm"
/* 11 */ "mml.....lmm"
/* 12 */ "mmlllllllmm"
- // Level 4
+ // Level 3
/* z\x* 1 */
/* * 01234567890 */
/* 0 */ "..........."
- /* 1 */ ".hooipiooh."
- /* 2 */ ".o.......o."
- /* 3 */ ".o......qo."
+ /* 1 */ ".hppiqipph."
+ /* 2 */ ".p.......p."
+ /* 3 */ ".p......rp."
/* 4 */ ".i.......i."
- /* 5 */ ".o.......o."
- /* 6 */ ".o.......o."
- /* 7 */ ".hooipiooh."
+ /* 5 */ ".p.......p."
+ /* 6 */ ".p.......p."
+ /* 7 */ ".hppiqipph."
/* 8 */ "..........."
/* 9 */ "mm.......mm"
/* 10 */ "mm.......mm"
/* 11 */ "mm.......mm"
/* 12 */ "mm.......mm"
- // Level 5
+ // Level 4
/* z\x* 1 */
/* * 01234567890 */
/* 0 */ "nnnnnnnnnnn"
- /* 1 */ "riiiiiiiiir"
+ /* 1 */ "siiiiiiiiis"
/* 2 */ ".i.......i."
/* 3 */ ".i.......i."
- /* 4 */ ".is.....ti."
+ /* 4 */ ".it.....ui."
/* 5 */ ".i.......i."
/* 6 */ ".i.......i."
- /* 7 */ "uiiiiiiiiiu"
+ /* 7 */ "viiiiiiiiiv"
/* 8 */ "kkkkkkkkkkk"
/* 9 */ "mm.......mm"
/* 10 */ "mm.......mm"
/* 11 */ "mm.......mm"
/* 12 */ "mm.......mm"
- // Level 6
+ // Level 5
/* z\x* 1 */
/* * 01234567890 */
/* 0 */ "..........."
/* 1 */ "nnnnnnnnnnn"
- /* 2 */ "riiiiiiiiir"
+ /* 2 */ "siiiiiiiiis"
/* 3 */ ".i.......i."
/* 4 */ ".i.......i."
/* 5 */ ".i.......i."
- /* 6 */ "uiiiiiiiiiu"
+ /* 6 */ "viiiiiiiiiv"
/* 7 */ "kkkkkkkkkkk"
/* 8 */ "..........."
/* 9 */ "mm.......mm"
@@ -3745,15 +3728,15 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 11 */ "mm.......mm"
/* 12 */ "mm.......mm"
- // Level 7
+ // Level 6
/* z\x* 1 */
/* * 01234567890 */
/* 0 */ "..........."
/* 1 */ "..........."
/* 2 */ "nnnnnnnnnnn"
- /* 3 */ "riiiiiiiiir"
+ /* 3 */ "siiiiiiiiis"
/* 4 */ ".i.......i."
- /* 5 */ "uiiiiiiiiiu"
+ /* 5 */ "viiiiiiiiiv"
/* 6 */ "kkkkkkkkkkk"
/* 7 */ "..........."
/* 8 */ "..........."
@@ -3762,7 +3745,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 11 */ "mm.......mm"
/* 12 */ "mm.......mm"
- // Level 8
+ // Level 7
/* z\x* 1 */
/* * 01234567890 */
/* 0 */ "..........."
@@ -3780,7 +3763,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 12 */ "mm.......mm",
// 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 */
@@ -3826,18 +3809,19 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
"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 */
+ "h: 64: 3\n" /* wooddoorblock */
+ "i: 64: 1\n" /* wooddoorblock */
+ "j:102: 0\n" /* glasspane */
+ "k: 64: 9\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: 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
@@ -3876,46 +3860,46 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 4 */ ".f.......f."
/* 5 */ ".g.......g."
/* 6 */ ".g.......g."
- /* 7 */ ".fggfhfggf."
+ /* 7 */ ".fggfifggf."
/* 8 */ "..........."
// Level 3
/* z\x* 1 */
/* * 01234567890 */
/* 0 */ "..........."
- /* 1 */ ".fiifjfiif."
- /* 2 */ ".i.......i."
- /* 3 */ ".i.......i."
+ /* 1 */ ".fjjfkfjjf."
+ /* 2 */ ".j.......j."
+ /* 3 */ ".j.......j."
/* 4 */ ".f.......f."
- /* 5 */ ".i.......i."
- /* 6 */ ".i.......i."
- /* 7 */ ".fiifjfiif."
+ /* 5 */ ".j.......j."
+ /* 6 */ ".j.......j."
+ /* 7 */ ".fjjfkfjjf."
/* 8 */ "..........."
// Level 4
/* z\x* 1 */
/* * 01234567890 */
- /* 0 */ "kkkkkkkkkkk"
- /* 1 */ "lfnnnnnnnfl"
- /* 2 */ ".o..p.p..o."
- /* 3 */ ".o.......o."
- /* 4 */ ".o.......o."
- /* 5 */ ".o.......o."
- /* 6 */ ".o..q.q..o."
- /* 7 */ "rfnnnnnnnfr"
- /* 8 */ "sssssssssss"
+ /* 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 5
/* z\x* 1 */
/* * 01234567890 */
/* 0 */ "..........."
- /* 1 */ "kkkkkkkkkkk"
- /* 2 */ "lgggggggggl"
+ /* 1 */ "lllllllllll"
+ /* 2 */ "ngggggggggn"
/* 3 */ ".g.......g."
/* 4 */ ".g.......g."
/* 5 */ ".g.......g."
- /* 6 */ "rgggggggggr"
- /* 7 */ "sssssssssss"
+ /* 6 */ "sgggggggggs"
+ /* 7 */ "ttttttttttt"
/* 8 */ "..........."
// Level 6
@@ -3923,11 +3907,11 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* * 01234567890 */
/* 0 */ "..........."
/* 1 */ "..........."
- /* 2 */ "kkkkkkkkkkk"
- /* 3 */ "lgggggggggl"
+ /* 2 */ "lllllllllll"
+ /* 3 */ "ngggggggggn"
/* 4 */ ".g.......g."
- /* 5 */ "rgggggggggr"
- /* 6 */ "sssssssssss"
+ /* 5 */ "sgggggggggs"
+ /* 6 */ "ttttttttttt"
/* 7 */ "..........."
/* 8 */ "..........."
@@ -3937,9 +3921,9 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
/* 0 */ "..........."
/* 1 */ "..........."
/* 2 */ "..........."
- /* 3 */ "kkkkkkkkkkk"
+ /* 3 */ "lllllllllll"
/* 4 */ "ggggggggggg"
- /* 5 */ "sssssssssss"
+ /* 5 */ "ttttttttttt"
/* 6 */ "..........."
/* 7 */ "..........."
/* 8 */ "...........",
@@ -3995,7 +3979,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
"e: 43: 0\n" /* doubleslab */
"f: 17: 0\n" /* tree */
"g: 5: 0\n" /* wood */
- "h: 64: 7\n" /* wooddoorblock */
+ "h: 64: 3\n" /* wooddoorblock */
"i: 96: 8\n" /* trapdoor */
"j: 61: 2\n" /* furnace */
"k: 53: 3\n" /* woodstairs */
@@ -4006,7 +3990,7 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
"p: 53: 0\n" /* woodstairs */
"q: 47: 0\n" /* bookshelf */
"r:102: 0\n" /* glasspane */
- "s: 64:12\n" /* wooddoorblock */
+ "s: 64: 9\n" /* wooddoorblock */
"t: 72: 0\n" /* woodplate */
"u: 17: 4\n" /* tree */
"v: 17: 8\n" /* tree */
@@ -4243,10 +4227,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
"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 */
+ "h: 64: 3\n" /* wooddoorblock */
+ "i: 64: 1\n" /* wooddoorblock */
"j:102: 0\n" /* glasspane */
- "k: 64:12\n" /* wooddoorblock */
+ "k: 64: 9\n" /* wooddoorblock */
"l: 53: 2\n" /* woodstairs */
"m: 19: 0\n" /* sponge */
"n: 53: 1\n" /* woodstairs */
@@ -4468,9 +4452,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: 9\n" /* wooddoorblock */
"j: 53: 2\n" /* woodstairs */
"k: 53: 7\n" /* woodstairs */
"l: 53: 1\n" /* woodstairs */
@@ -4637,9 +4621,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: 9\n" /* wooddoorblock */
"j: 53: 2\n" /* woodstairs */
"k: 53: 0\n" /* woodstairs */
"l: 53: 1\n" /* woodstairs */
@@ -4806,10 +4790,10 @@ const cPrefab::sDef g_PlainsVillagePrefabs[] =
"f: 5: 0\n" /* wood */
"g: 54: 4\n" /* chest */
"h:154: 4\n" /* hopper */
- "i: 64: 4\n" /* wooddoorblock */
+ "i: 64: 0\n" /* wooddoorblock */
"j:102: 0\n" /* glasspane */
"k: 85: 0\n" /* fence */
- "l: 64:12\n" /* wooddoorblock */
+ "l: 64: 9\n" /* wooddoorblock */
"m: 19: 0\n" /* sponge */
"n: 50: 2\n" /* torch */
"o: 35: 0\n" /* wool */
diff --git a/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.cpp b/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.cpp
index 3328ee210..2737d35bb 100644
--- a/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.cpp
+++ b/src/Generating/Prefabs/SandFlatRoofVillagePrefabs.cpp
@@ -34,7 +34,7 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] =
"d:128: 1\n" /* sandstonestairs */
"e:128: 3\n" /* sandstonestairs */
"f:171:15\n" /* carpet */
- "g: 64: 6\n" /* wooddoorblock */
+ "g: 64: 2\n" /* wooddoorblock */
"h:171: 0\n" /* carpet */
"i:171:14\n" /* carpet */
"j: 61: 2\n" /* furnace */
@@ -42,7 +42,7 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] =
"l: 54: 2\n" /* chest */
"m: 19: 0\n" /* sponge */
"n: 24: 2\n" /* sandstone */
- "o: 64:12\n" /* wooddoorblock */
+ "o: 64: 9\n" /* wooddoorblock */
"p: 50: 1\n" /* torch */
"q:101: 0\n" /* ironbars */
"r:128: 4\n" /* sandstonestairs */
@@ -179,12 +179,12 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] =
"b:128: 0\n" /* sandstonestairs */
"c:128: 2\n" /* sandstonestairs */
"d:128: 1\n" /* sandstonestairs */
- "e: 64: 7\n" /* wooddoorblock */
+ "e: 64: 3\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 */
+ "j: 64: 9\n" /* wooddoorblock */
"k: 50: 3\n" /* torch */
"l: 50: 1\n" /* torch */
"m: 19: 0\n" /* sponge */
@@ -318,11 +318,11 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] =
"b:128: 0\n" /* sandstonestairs */
"c:128: 2\n" /* sandstonestairs */
"d:128: 1\n" /* sandstonestairs */
- "e: 64: 7\n" /* wooddoorblock */
+ "e: 64: 3\n" /* wooddoorblock */
"f:171: 0\n" /* carpet */
"g:171:14\n" /* carpet */
"h: 24: 2\n" /* sandstone */
- "i: 64:12\n" /* wooddoorblock */
+ "i: 64: 9\n" /* wooddoorblock */
"j: 50: 3\n" /* torch */
"k:128: 4\n" /* sandstonestairs */
"l:128: 6\n" /* sandstonestairs */
@@ -429,12 +429,12 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] =
"b:128: 0\n" /* sandstonestairs */
"c:128: 2\n" /* sandstonestairs */
"d:128: 1\n" /* sandstonestairs */
- "e: 64: 7\n" /* wooddoorblock */
+ "e: 64: 3\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 */
+ "j: 64: 9\n" /* wooddoorblock */
"k: 50: 3\n" /* torch */
"l:128: 4\n" /* sandstonestairs */
"m: 19: 0\n" /* sponge */
@@ -547,12 +547,12 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] =
"b:128: 0\n" /* sandstonestairs */
"c:128: 2\n" /* sandstonestairs */
"d:128: 1\n" /* sandstonestairs */
- "e: 64: 7\n" /* wooddoorblock */
+ "e: 64: 3\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 */
+ "j: 64: 9\n" /* wooddoorblock */
"k: 50: 3\n" /* torch */
"l:128: 4\n" /* sandstonestairs */
"m: 19: 0\n" /* sponge */
@@ -665,12 +665,12 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] =
"b:128: 0\n" /* sandstonestairs */
"c:128: 2\n" /* sandstonestairs */
"d:128: 1\n" /* sandstonestairs */
- "e: 64: 7\n" /* wooddoorblock */
+ "e: 64: 3\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 */
+ "j: 64: 9\n" /* wooddoorblock */
"k: 50: 3\n" /* torch */
"l:128: 4\n" /* sandstonestairs */
"m: 19: 0\n" /* sponge */
@@ -789,12 +789,12 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] =
"b:128: 0\n" /* sandstonestairs */
"c:128: 2\n" /* sandstonestairs */
"d:128: 1\n" /* sandstonestairs */
- "e: 64: 7\n" /* wooddoorblock */
+ "e: 64: 3\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 */
+ "j: 64: 9\n" /* wooddoorblock */
"k: 50: 3\n" /* torch */
"l: 50: 1\n" /* torch */
"m: 19: 0\n" /* sponge */
@@ -927,12 +927,12 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] =
"b:128: 0\n" /* sandstonestairs */
"c:128: 2\n" /* sandstonestairs */
"d:128: 1\n" /* sandstonestairs */
- "e: 64: 7\n" /* wooddoorblock */
+ "e: 64: 3\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 */
+ "j: 64: 9\n" /* wooddoorblock */
"k: 50: 3\n" /* torch */
"l: 50: 1\n" /* torch */
"m: 19: 0\n" /* sponge */
@@ -1067,13 +1067,13 @@ const cPrefab::sDef g_SandFlatRoofVillagePrefabs[] =
"c:128: 2\n" /* sandstonestairs */
"d:128: 1\n" /* sandstonestairs */
"e: 43: 1\n" /* doubleslab */
- "f: 64: 7\n" /* wooddoorblock */
+ "f: 64: 3\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 */
+ "l: 64: 9\n" /* wooddoorblock */
"m: 19: 0\n" /* sponge */
"n: 50: 3\n" /* torch */
"o: 50: 1\n" /* torch */
diff --git a/src/Generating/Prefabs/SandVillagePrefabs.cpp b/src/Generating/Prefabs/SandVillagePrefabs.cpp
index c63f8161b..021d18b2d 100644
--- a/src/Generating/Prefabs/SandVillagePrefabs.cpp
+++ b/src/Generating/Prefabs/SandVillagePrefabs.cpp
@@ -119,9 +119,9 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
"b:128: 0\n" /* sandstonestairs */
"c:128: 2\n" /* sandstonestairs */
"d:128: 1\n" /* sandstonestairs */
- "e: 64: 7\n" /* wooddoorblock */
+ "e: 64: 3\n" /* wooddoorblock */
"f:102: 0\n" /* glasspane */
- "g: 64:12\n" /* wooddoorblock */
+ "g: 64: 9\n" /* wooddoorblock */
"h:128: 7\n" /* sandstonestairs */
"i: 50: 3\n" /* torch */
"j: 50: 4\n" /* torch */
@@ -253,9 +253,9 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
"b:128: 0\n" /* sandstonestairs */
"c:128: 2\n" /* sandstonestairs */
"d:128: 1\n" /* sandstonestairs */
- "e: 64: 7\n" /* wooddoorblock */
+ "e: 64: 3\n" /* wooddoorblock */
"f:102: 0\n" /* glasspane */
- "g: 64:12\n" /* wooddoorblock */
+ "g: 64: 9\n" /* wooddoorblock */
"h:128: 7\n" /* sandstonestairs */
"i: 50: 3\n" /* torch */
"j: 50: 4\n" /* torch */
@@ -412,9 +412,9 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
"b:128: 0\n" /* sandstonestairs */
"c:128: 2\n" /* sandstonestairs */
"d:128: 1\n" /* sandstonestairs */
- "e: 64: 7\n" /* wooddoorblock */
+ "e: 64: 3\n" /* wooddoorblock */
"f:102: 0\n" /* glasspane */
- "g: 64:12\n" /* wooddoorblock */
+ "g: 64: 9\n" /* wooddoorblock */
"h:128: 7\n" /* sandstonestairs */
"i: 50: 3\n" /* torch */
"j: 50: 4\n" /* torch */
@@ -544,9 +544,9 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
"b:128: 0\n" /* sandstonestairs */
"c:128: 2\n" /* sandstonestairs */
"d:128: 1\n" /* sandstonestairs */
- "e: 64: 7\n" /* wooddoorblock */
+ "e: 64: 3\n" /* wooddoorblock */
"f:102: 0\n" /* glasspane */
- "g: 64:12\n" /* wooddoorblock */
+ "g: 64: 9\n" /* wooddoorblock */
"h:128: 7\n" /* sandstonestairs */
"i: 50: 3\n" /* torch */
"j: 50: 4\n" /* torch */
@@ -703,9 +703,9 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
"b:128: 0\n" /* sandstonestairs */
"c:128: 2\n" /* sandstonestairs */
"d:128: 1\n" /* sandstonestairs */
- "e: 64: 7\n" /* wooddoorblock */
+ "e: 64: 3\n" /* wooddoorblock */
"f:102: 0\n" /* glasspane */
- "g: 64:12\n" /* wooddoorblock */
+ "g: 64: 9\n" /* wooddoorblock */
"h:128: 7\n" /* sandstonestairs */
"i: 50: 3\n" /* torch */
"j: 50: 4\n" /* torch */
@@ -862,9 +862,9 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
"b:128: 0\n" /* sandstonestairs */
"c:128: 2\n" /* sandstonestairs */
"d:128: 1\n" /* sandstonestairs */
- "e: 64: 7\n" /* wooddoorblock */
+ "e: 64: 3\n" /* wooddoorblock */
"f:102: 0\n" /* glasspane */
- "g: 64:12\n" /* wooddoorblock */
+ "g: 64: 9\n" /* wooddoorblock */
"h:128: 7\n" /* sandstonestairs */
"i: 50: 3\n" /* torch */
"j: 50: 4\n" /* torch */
@@ -1021,9 +1021,9 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
"b:128: 0\n" /* sandstonestairs */
"c:128: 2\n" /* sandstonestairs */
"d:128: 1\n" /* sandstonestairs */
- "e: 64: 7\n" /* wooddoorblock */
+ "e: 64: 3\n" /* wooddoorblock */
"f:102: 0\n" /* glasspane */
- "g: 64:12\n" /* wooddoorblock */
+ "g: 64: 9\n" /* wooddoorblock */
"h:128: 7\n" /* sandstonestairs */
"i: 50: 3\n" /* torch */
"j:128: 6\n" /* sandstonestairs */
@@ -1145,9 +1145,9 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
"b:128: 0\n" /* sandstonestairs */
"c:128: 2\n" /* sandstonestairs */
"d:128: 1\n" /* sandstonestairs */
- "e: 64: 7\n" /* wooddoorblock */
+ "e: 64: 3\n" /* wooddoorblock */
"f:102: 0\n" /* glasspane */
- "g: 64:12\n" /* wooddoorblock */
+ "g: 64: 9\n" /* wooddoorblock */
"h:128: 7\n" /* sandstonestairs */
"i: 50: 3\n" /* torch */
"j: 50: 4\n" /* torch */
@@ -1270,9 +1270,9 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
"b:128: 0\n" /* sandstonestairs */
"c:128: 2\n" /* sandstonestairs */
"d:128: 1\n" /* sandstonestairs */
- "e: 64: 7\n" /* wooddoorblock */
+ "e: 64: 3\n" /* wooddoorblock */
"f:102: 0\n" /* glasspane */
- "g: 64:12\n" /* wooddoorblock */
+ "g: 64: 9\n" /* wooddoorblock */
"h:128: 7\n" /* sandstonestairs */
"i: 50: 3\n" /* torch */
"j: 50: 4\n" /* torch */
@@ -1425,16 +1425,17 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
"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 */
+ "i: 64: 9\n" /* wooddoorblock */
+ "j: 64: 8\n" /* wooddoorblock */
+ "k:128: 7\n" /* sandstonestairs */
+ "l: 50: 3\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: 50: 2\n" /* torch */
+ "o: 50: 4\n" /* torch */
+ "p:128: 6\n" /* sandstonestairs */
+ "q: 50: 1\n" /* torch */
+ "r:128: 5\n" /* sandstonestairs */
+ "s:128: 4\n" /* sandstonestairs */,
// Block data:
// Level 0
@@ -1495,7 +1496,7 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
/* 4 */ ".a..........a."
/* 5 */ ".h..........h."
/* 6 */ ".h..........h."
- /* 7 */ ".ahhaia.....a."
+ /* 7 */ ".ahhaja.....a."
/* 8 */ "......h.....h."
/* 9 */ "mmmmm.h.....h."
/* 10 */ "mmmmm.ahhahha."
@@ -1505,33 +1506,33 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
/* z\x* 1111 */
/* * 01234567890123 */
/* 0 */ "cccccccccccccc"
- /* 1 */ "jaaaaaaaaaaaad"
- /* 2 */ ".a..k.k.....ad"
+ /* 1 */ "kaaaaaaaaaaaad"
+ /* 2 */ ".a..l.l.....ad"
/* 3 */ ".a..........ad"
- /* 4 */ ".a.........lad"
+ /* 4 */ ".a.........nad"
/* 5 */ ".a..........ad"
- /* 6 */ ".a..n.n.....ad"
- /* 7 */ "oaaaaaap...lad"
+ /* 6 */ ".a..o.o.....ad"
+ /* 7 */ "paaaaaaq...nad"
/* 8 */ "eeeeeba.....ad"
/* 9 */ "mmmmmba.....ad"
/* 10 */ "mmmmmbaaaaaaad"
- /* 11 */ "mmmmmbq.....rd"
+ /* 11 */ "mmmmmbr.....sd"
// Level 5
/* z\x* 1111 */
/* * 01234567890123 */
/* 0 */ ".............."
/* 1 */ "ccccccccccccd."
- /* 2 */ "jaaaaaaaaaaad."
+ /* 2 */ "kaaaaaaaaaaad."
/* 3 */ ".a.........ad."
/* 4 */ ".a.........ad."
/* 5 */ ".a.........ad."
- /* 6 */ "oaaaaaaa...ad."
+ /* 6 */ "paaaaaaa...ad."
/* 7 */ "eeeeeeba...ad."
/* 8 */ "......ba...ad."
/* 9 */ "mmmmm.ba...ad."
/* 10 */ "mmmmm.baaaaad."
- /* 11 */ "mmmmm.bq...rd."
+ /* 11 */ "mmmmm.br...sd."
// Level 6
/* z\x* 1111 */
@@ -1539,15 +1540,15 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
/* 0 */ ".............."
/* 1 */ ".............."
/* 2 */ "cccccccccccc.."
- /* 3 */ "jaaaaaaaaaad.."
+ /* 3 */ "kaaaaaaaaaad.."
/* 4 */ ".a........ad.."
- /* 5 */ "oaaaaaaaa.ad.."
+ /* 5 */ "paaaaaaaa.ad.."
/* 6 */ "eeeeeeeea.ad.."
/* 7 */ ".......ba.ad.."
/* 8 */ ".......ba.ad.."
/* 9 */ "mmmmm..ba.ad.."
/* 10 */ "mmmmm..baaad.."
- /* 11 */ "mmmmm..bq.rd.."
+ /* 11 */ "mmmmm..br.sd.."
// Level 7
/* z\x* 1111 */
@@ -1610,10 +1611,10 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
"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 */
+ "f: 64: 3\n" /* wooddoorblock */
+ "g: 64: 1\n" /* wooddoorblock */
"h:102: 0\n" /* glasspane */
- "i: 64:12\n" /* wooddoorblock */
+ "i: 64: 9\n" /* wooddoorblock */
"j:128: 7\n" /* sandstonestairs */
"k: 50: 3\n" /* torch */
"l: 50: 4\n" /* torch */
@@ -1863,8 +1864,8 @@ const cPrefab::sDef g_SandVillagePrefabs[] =
"d: 50: 5\n" /* torch */
"e: 26:10\n" /* bedblock */
"f: 26: 2\n" /* bedblock */
- "g: 64: 5\n" /* wooddoorblock */
- "h: 64:12\n" /* wooddoorblock */
+ "g: 64: 1\n" /* wooddoorblock */
+ "h: 64: 9\n" /* wooddoorblock */
"m: 19: 0\n" /* sponge */,
// Block data:
diff --git a/src/Generating/Prefabs/UnderwaterBasePrefabs.cpp b/src/Generating/Prefabs/UnderwaterBasePrefabs.cpp
index 1655f50b9..112531641 100644
--- a/src/Generating/Prefabs/UnderwaterBasePrefabs.cpp
+++ b/src/Generating/Prefabs/UnderwaterBasePrefabs.cpp
@@ -32,9 +32,9 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] =
"b: 20: 0\n" /* glass */
"c: 5: 5\n" /* wood */
"d: 8: 0\n" /* water */
- "e: 64: 4\n" /* wooddoorblock */
- "f: 64:12\n" /* wooddoorblock */
- "g: 64:13\n" /* wooddoorblock */
+ "e: 64: 0\n" /* wooddoorblock */
+ "f: 64: 8\n" /* wooddoorblock */
+ "g: 64: 9\n" /* wooddoorblock */
"m: 19: 0\n" /* sponge */,
// Block data:
@@ -280,18 +280,16 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] =
".: 0: 0\n" /* air */
"a: 5: 5\n" /* wood */
"b: 5: 0\n" /* wood */
- "c: 64: 5\n" /* wooddoorblock */
- "d: 64: 2\n" /* wooddoorblock */
- "e: 64: 4\n" /* wooddoorblock */
- "f: 64: 1\n" /* wooddoorblock */
- "g: 20: 0\n" /* glass */
- "h: 64:12\n" /* wooddoorblock */
- "i: 76: 3\n" /* redstonetorchon */
- "j: 64: 8\n" /* wooddoorblock */
- "k: 76: 4\n" /* redstonetorchon */
- "l: 76: 2\n" /* redstonetorchon */
- "m: 19: 0\n" /* sponge */
- "n: 76: 1\n" /* redstonetorchon */,
+ "c: 64: 2\n" /* wooddoorblock */
+ "d: 64: 1\n" /* wooddoorblock */
+ "e: 20: 0\n" /* glass */
+ "f: 64: 9\n" /* wooddoorblock */
+ "g: 76: 3\n" /* redstonetorchon */
+ "h: 64: 8\n" /* wooddoorblock */
+ "i: 76: 4\n" /* redstonetorchon */
+ "j: 76: 2\n" /* redstonetorchon */
+ "k: 76: 1\n" /* redstonetorchon */
+ "m: 19: 0\n" /* sponge */,
// Block data:
// Level 0
@@ -313,28 +311,28 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] =
/* * 0123456789 */
/* 0 */ "abbbbbmmmm"
/* 1 */ "c.....bbmm"
- /* 2 */ "d.......bm"
+ /* 2 */ "c.......bm"
/* 3 */ "abb.....bm"
/* 4 */ "mmmbb....b"
/* 5 */ "mmmmmb...b"
/* 6 */ "mmmmmb...b"
/* 7 */ "mmmmmmb..b"
/* 8 */ "mmmmmmb..b"
- /* 9 */ "mmmmmmaefa"
+ /* 9 */ "mmmmmmadda"
// Level 2
/* z\x* */
/* * 0123456789 */
- /* 0 */ "abggbbmmmm"
- /* 1 */ "h...i.bbmm"
- /* 2 */ "j.......bm"
- /* 3 */ "abbk....bm"
+ /* 0 */ "abeebbmmmm"
+ /* 1 */ "f...g.bbmm"
+ /* 2 */ "h.......bm"
+ /* 3 */ "abbi....bm"
/* 4 */ "mmmbb....b"
- /* 5 */ "mmmmmb..lb"
- /* 6 */ "mmmmmbn..g"
- /* 7 */ "mmmmmmb..g"
+ /* 5 */ "mmmmmb..jb"
+ /* 6 */ "mmmmmbk..e"
+ /* 7 */ "mmmmmmb..e"
/* 8 */ "mmmmmmb..b"
- /* 9 */ "mmmmmmahja"
+ /* 9 */ "mmmmmmafha"
// Level 3
/* z\x* */
@@ -396,20 +394,17 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] =
"a: 5: 5\n" /* wood */
"b: 5: 0\n" /* wood */
"c: 64: 3\n" /* wooddoorblock */
- "d: 64: 6\n" /* wooddoorblock */
- "e: 64: 5\n" /* wooddoorblock */
- "f: 64: 0\n" /* wooddoorblock */
- "g: 64: 2\n" /* wooddoorblock */
- "h: 64: 1\n" /* wooddoorblock */
- "i: 64: 8\n" /* wooddoorblock */
- "j: 64:12\n" /* wooddoorblock */
- "k: 20: 0\n" /* glass */
- "l: 76: 1\n" /* redstonetorchon */
+ "d: 64: 2\n" /* wooddoorblock */
+ "e: 64: 0\n" /* wooddoorblock */
+ "f: 64: 1\n" /* wooddoorblock */
+ "g: 64: 8\n" /* wooddoorblock */
+ "h: 64: 9\n" /* wooddoorblock */
+ "i: 20: 0\n" /* glass */
+ "j: 76: 1\n" /* redstonetorchon */
+ "k: 76: 2\n" /* redstonetorchon */
+ "l: 76: 3\n" /* redstonetorchon */
"m: 19: 0\n" /* sponge */
- "n: 76: 2\n" /* redstonetorchon */
- "o: 76: 3\n" /* redstonetorchon */
- "p: 76: 4\n" /* redstonetorchon */
- "q: 64: 9\n" /* wooddoorblock */,
+ "n: 76: 4\n" /* redstonetorchon */,
// Block data:
// Level 0
@@ -435,42 +430,42 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] =
// Level 1
/* z\x* 111111 */
/* * 0123456789012345 */
- /* 0 */ "mmmmmmacdammmmmm"
+ /* 0 */ "mmmmmmaccammmmmm"
/* 1 */ "mmmmmmb..bmmmmmm"
/* 2 */ "mmmmmmb..bmmmmmm"
/* 3 */ "mmmmmmb..bmmmmmm"
/* 4 */ "mmmmmmb..bmmmmmm"
/* 5 */ "mmmmmmb..bmmmmmm"
/* 6 */ "abbbbbb..bbbbbba"
- /* 7 */ "e..............f"
- /* 8 */ "g..............f"
+ /* 7 */ "d..............e"
+ /* 8 */ "d..............e"
/* 9 */ "abbbbbb..bbbbbba"
/* 10 */ "mmmmmmb..bmmmmmm"
/* 11 */ "mmmmmmb..bmmmmmm"
/* 12 */ "mmmmmmb..bmmmmmm"
/* 13 */ "mmmmmmb..bmmmmmm"
/* 14 */ "mmmmmmb..bmmmmmm"
- /* 15 */ "mmmmmmahhammmmmm"
+ /* 15 */ "mmmmmmaffammmmmm"
// Level 2
/* z\x* 111111 */
/* * 0123456789012345 */
- /* 0 */ "mmmmmmaijammmmmm"
+ /* 0 */ "mmmmmmaghammmmmm"
/* 1 */ "mmmmmmb..bmmmmmm"
- /* 2 */ "mmmmmmk..kmmmmmm"
- /* 3 */ "mmmmmmk..kmmmmmm"
- /* 4 */ "mmmmmmblnbmmmmmm"
+ /* 2 */ "mmmmmmi..immmmmm"
+ /* 3 */ "mmmmmmi..immmmmm"
+ /* 4 */ "mmmmmmbjkbmmmmmm"
/* 5 */ "mmmmmmb..bmmmmmm"
- /* 6 */ "abkkbbb..bbbkkba"
- /* 7 */ "j...o......o...i"
- /* 8 */ "i...p......p...q"
- /* 9 */ "abkkbbb..bbbkkba"
+ /* 6 */ "abiibbb..bbbiiba"
+ /* 7 */ "h...l......l...g"
+ /* 8 */ "g...n......n...h"
+ /* 9 */ "abiibbb..bbbiiba"
/* 10 */ "mmmmmmb..bmmmmmm"
- /* 11 */ "mmmmmmblnbmmmmmm"
- /* 12 */ "mmmmmmk..kmmmmmm"
- /* 13 */ "mmmmmmk..kmmmmmm"
+ /* 11 */ "mmmmmmbjkbmmmmmm"
+ /* 12 */ "mmmmmmi..immmmmm"
+ /* 13 */ "mmmmmmi..immmmmm"
/* 14 */ "mmmmmmb..bmmmmmm"
- /* 15 */ "mmmmmmaqiammmmmm"
+ /* 15 */ "mmmmmmahgammmmmm"
// Level 3
/* z\x* 111111 */
@@ -549,8 +544,6 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] =
"h: 64: 8\n" /* wooddoorblock */
"i: 76: 4\n" /* redstonetorchon */
"j: 64: 0\n" /* wooddoorblock */
- "k: 64: 7\n" /* wooddoorblock */
- "l: 64:12\n" /* wooddoorblock */
"m: 19: 0\n" /* sponge */,
// Block data:
@@ -607,7 +600,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] =
/* * 0123456789012345 */
/* 0 */ "mmmmmmmbbbbbbbba"
/* 1 */ "mmmmmmmb.......j"
- /* 2 */ "mmmmmmmb.......k"
+ /* 2 */ "mmmmmmmb.......j"
/* 3 */ "mmmmmmmbbbbbbbba"
// Level 7
@@ -615,7 +608,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] =
/* * 0123456789012345 */
/* 0 */ "mmmmmmmmbbbeebba"
/* 1 */ "mmmmmmmmb.g....h"
- /* 2 */ "mmmmmmmmb.i....l"
+ /* 2 */ "mmmmmmmmb.i....f"
/* 3 */ "mmmmmmmmbbbeebba"
// Level 8
@@ -672,19 +665,16 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] =
"a: 5: 5\n" /* wood */
"b: 5: 0\n" /* wood */
"c: 64: 3\n" /* wooddoorblock */
- "d: 64: 6\n" /* wooddoorblock */
- "e: 64: 5\n" /* wooddoorblock */
- "f: 64: 0\n" /* wooddoorblock */
- "g: 64: 2\n" /* wooddoorblock */
- "h: 64: 8\n" /* wooddoorblock */
- "i: 64:12\n" /* wooddoorblock */
- "j: 20: 0\n" /* glass */
- "k: 76: 1\n" /* redstonetorchon */
- "l: 76: 2\n" /* redstonetorchon */
- "m: 19: 0\n" /* sponge */
- "n: 76: 3\n" /* redstonetorchon */
- "o: 76: 4\n" /* redstonetorchon */
- "p: 64: 9\n" /* wooddoorblock */,
+ "d: 64: 2\n" /* wooddoorblock */
+ "e: 64: 0\n" /* wooddoorblock */
+ "f: 64: 8\n" /* wooddoorblock */
+ "g: 64: 9\n" /* wooddoorblock */
+ "h: 20: 0\n" /* glass */
+ "i: 76: 1\n" /* redstonetorchon */
+ "j: 76: 2\n" /* redstonetorchon */
+ "k: 76: 3\n" /* redstonetorchon */
+ "l: 76: 4\n" /* redstonetorchon */
+ "m: 19: 0\n" /* sponge */,
// Block data:
// Level 0
@@ -704,30 +694,30 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] =
// Level 1
/* z\x* 111111 */
/* * 0123456789012345 */
- /* 0 */ "mmmmmmacdammmmmm"
+ /* 0 */ "mmmmmmaccammmmmm"
/* 1 */ "mmmmmmb..bmmmmmm"
/* 2 */ "mmmmmmb..bmmmmmm"
/* 3 */ "mmmmmmb..bmmmmmm"
/* 4 */ "mmmmmmb..bmmmmmm"
/* 5 */ "mmmmmmb..bmmmmmm"
/* 6 */ "abbbbbb..bbbbbba"
- /* 7 */ "e..............f"
- /* 8 */ "g..............f"
+ /* 7 */ "d..............e"
+ /* 8 */ "d..............e"
/* 9 */ "abbbbbbbbbbbbbba"
// Level 2
/* z\x* 111111 */
/* * 0123456789012345 */
- /* 0 */ "mmmmmmahiammmmmm"
+ /* 0 */ "mmmmmmafgammmmmm"
/* 1 */ "mmmmmmb..bmmmmmm"
- /* 2 */ "mmmmmmj..jmmmmmm"
- /* 3 */ "mmmmmmj..jmmmmmm"
- /* 4 */ "mmmmmmbklbmmmmmm"
+ /* 2 */ "mmmmmmh..hmmmmmm"
+ /* 3 */ "mmmmmmh..hmmmmmm"
+ /* 4 */ "mmmmmmbijbmmmmmm"
/* 5 */ "mmmmmmb..bmmmmmm"
- /* 6 */ "abjjbbb..bbbjjba"
- /* 7 */ "i...n......n...h"
- /* 8 */ "h...o......o...p"
- /* 9 */ "abjjbbbjjbbbjjba"
+ /* 6 */ "abhhbbb..bbbhhba"
+ /* 7 */ "g...k......k...f"
+ /* 8 */ "f...l......l...g"
+ /* 9 */ "abhhbbbhhbbbhhba"
// Level 3
/* z\x* 111111 */
@@ -974,14 +964,12 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] =
"a: 5: 0\n" /* wood */
"b: 5: 5\n" /* wood */
"c: 20: 0\n" /* glass */
- "d: 64: 5\n" /* wooddoorblock */
+ "d: 64: 2\n" /* wooddoorblock */
"e: 64: 0\n" /* wooddoorblock */
- "f: 64: 2\n" /* wooddoorblock */
- "g: 76: 3\n" /* redstonetorchon */
- "h: 64:12\n" /* wooddoorblock */
- "i: 64: 8\n" /* wooddoorblock */
- "j: 64: 9\n" /* wooddoorblock */
- "k: 76: 4\n" /* redstonetorchon */
+ "f: 76: 3\n" /* redstonetorchon */
+ "g: 64: 9\n" /* wooddoorblock */
+ "h: 64: 8\n" /* wooddoorblock */
+ "i: 76: 4\n" /* redstonetorchon */
"m: 19: 0\n" /* sponge */,
// Block data:
@@ -1001,7 +989,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] =
/* 0 */ "mmaccccccccccamm"
/* 1 */ "ba............ab"
/* 2 */ "d..............e"
- /* 3 */ "f..............e"
+ /* 3 */ "d..............e"
/* 4 */ "ba............ab"
/* 5 */ "mmaccccccccccamm"
@@ -1009,10 +997,10 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] =
/* z\x* 111111 */
/* * 0123456789012345 */
/* 0 */ "mmaccccccccccamm"
- /* 1 */ "bag..........gab"
- /* 2 */ "h..............i"
- /* 3 */ "i..............j"
- /* 4 */ "bak..........kab"
+ /* 1 */ "baf..........fab"
+ /* 2 */ "g..............h"
+ /* 3 */ "h..............g"
+ /* 4 */ "bai..........iab"
/* 5 */ "mmaccccccccccamm"
// Level 3
@@ -1673,7 +1661,8 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] =
"j: 76: 4\n" /* redstonetorchon */
"k: 64: 1\n" /* wooddoorblock */
"l: 64: 8\n" /* wooddoorblock */
- "m: 19: 0\n" /* sponge */,
+ "m: 19: 0\n" /* sponge */
+ "n: 64: 9\n" /* wooddoorblock */,
// Block data:
// Level 0
@@ -1721,7 +1710,7 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] =
// Level 2
/* z\x* 1111 */
/* * 01234567890123 */
- /* 0 */ "mmmmallammmmmm"
+ /* 0 */ "mmmmalnammmmmm"
/* 1 */ "mmmmb..bmmmmmm"
/* 2 */ "mmmmc..cmmmmmm"
/* 3 */ "mmmcc..ccmmmmm"
@@ -1729,14 +1718,14 @@ const cPrefab::sDef g_UnderwaterBasePrefabs[] =
/* 5 */ "mcc......ccmmm"
/* 6 */ "mc........ccba"
/* 7 */ "c............l"
- /* 8 */ "c............l"
+ /* 8 */ "c............n"
/* 9 */ "mc........ccba"
/* 10 */ "mcc......ccmmm"
/* 11 */ "mmcc....ccmmmm"
/* 12 */ "mmmcc..ccmmmmm"
/* 13 */ "mmmmc..cmmmmmm"
/* 14 */ "mmmmb..bmmmmmm"
- /* 15 */ "mmmmallammmmmm"
+ /* 15 */ "mmmmanlammmmmm"
/* 16 */ "dddddddddddddd"
// Level 3
diff --git a/src/NetherPortalScanner.cpp b/src/NetherPortalScanner.cpp
index fe563509d..7bc2d4b7e 100644
--- a/src/NetherPortalScanner.cpp
+++ b/src/NetherPortalScanner.cpp
@@ -109,9 +109,9 @@ bool cNetherPortalScanner::OnAllChunksAvailable(void)
// Find the bottom of this portal
while (m_World->GetBlock(m_PortalLoc.x, m_PortalLoc.y, m_PortalLoc.z) == E_BLOCK_NETHER_PORTAL)
{
- m_PortalLoc.y -= 1.0;
+ m_PortalLoc.y -= 1;
}
- m_PortalLoc.y += 1.0;
+ m_PortalLoc.y += 1;
// Figure out which way the portal is facing
int BXP = m_World->GetBlock(m_PortalLoc.x + 1, m_PortalLoc.y, m_PortalLoc.z);